{"_id":"iron-enum","_rev":"29-fb96b323cb63a7e6ea5b8240d9bb8211","name":"iron-enum","dist-tags":{"latest":"1.8.0"},"versions":{"1.0.0":{"name":"iron-enum","version":"1.0.0","author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.0.0","maintainers":[{"name":"clicksimply","email":"scott@clicksimply.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"098430e30d10a5052166d1518573f94e969d2432","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.0.0.tgz","fileCount":10,"integrity":"sha512-EZbMB81yEsyJ+UKkl3MfXIqX0L75NU5wRH341YA1VCP7w2gV8EN1R3ck0m106JerLJabR98HroLnv6Bxpnn+jQ==","signatures":[{"sig":"MEYCIQDOHvSGjtljAuv/6U7DYxk9YZKaToHfLSo/AQ70s9fOYgIhAI/gkGOQqU4h0jj6PclkgJeTTNsrObRBH239xy28edrP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28340},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"75ff657e13b3a2904a3b26ce7276f99db15e4572","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clicksimply","email":"scott@clicksimply.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.5.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.0.0_1728522276630_0.33304659756388855","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"iron-enum","version":"1.0.1","author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.0.1","maintainers":[{"name":"clicksimply","email":"scott@clicksimply.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"e8540c57683a3b023c04afef6e7eabd1d961590b","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.0.1.tgz","fileCount":10,"integrity":"sha512-Ge8YtOlfD38rwi6IR7Hrfna+TTTun4ubPd7weBdgYr8dxl3pXdfvK0YwMx1FDn4NW593GQ33vQSoY7AbUSM8vw==","signatures":[{"sig":"MEQCIEtXSXzitWBVVOl7K57nnAFvgabFC/9ZEyy5qwEY5tYCAiBMcDkhVOU4Xn3hqo0JH6TqYp67L1nsVHgKaFSZoB5nXA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34982},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"7b33dce6bd7edcc433dfd6de95534447833d8b7e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clicksimply","email":"scott@clicksimply.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.5.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.0.1_1728523119690_0.519628803806498","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"iron-enum","version":"1.0.2","author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.0.2","maintainers":[{"name":"clicksimply","email":"scott@clicksimply.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"c9773960ad42feee10257bd8ec29aca8e044c589","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.0.2.tgz","fileCount":11,"integrity":"sha512-uB7oKmygtZYaVoKr1WGBn3llME33v/eag7o5myZSBUai14fWygL8OlezDdXJI9zhvLRW1hPHsHllhCvOCc0zAA==","signatures":[{"sig":"MEUCIERFXTETP3oEVhZQC+jAIGoBgX+ubvLz9gvu/QnUm5FNAiEA4rCfLCsnlfADEIWR5NJUO0F4AJ9POgndj4Xk33Qa+kU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40661},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"f969ae22d387e2a172e8036aa66f2c24ac01c758","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clicksimply","email":"scott@clicksimply.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.5.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.0.2_1728581198868_0.8674446057914111","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"iron-enum","version":"1.0.3","author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.0.3","maintainers":[{"name":"clicksimply","email":"scott@clicksimply.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"d09eba8dd8c688847325635e6bd47c942abcfa1d","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.0.3.tgz","fileCount":11,"integrity":"sha512-lTUlsQNcpbc9rxMOnVGAtmF3Ry+ovLf22F5BYmGGaTDoxvjk3vL9pD/Y75ZopW5R0UZPlA1UxcUuNVX4b1+Dzg==","signatures":[{"sig":"MEQCIG1S68FQ3UGys53twck/OLDHhcwa3p82xSFizwekhgrDAiBHvo/2ToN/SGezzAhaqA4Svh+ko8VrvJ4DBmD8IH6Tow==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41025},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"ac5dea706ecce073381e7fd4476211daae5bd40e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clicksimply","email":"scott@clicksimply.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.5.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.0.3_1728581535124_0.8365218685754225","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"iron-enum","version":"1.0.4","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.0.4","maintainers":[{"name":"clicksimply","email":"scott@clicksimply.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"a50fe00f97b3662c9c9b9c80c98bd44686ce7357","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.0.4.tgz","fileCount":11,"integrity":"sha512-Ce05F4yXEEPerPWdiTdYdPx9jdEysE1jDPKn9RNN6pZ38dk4GP6RPW63j5uGkrlEQqBRbucOEgK0yInP7Uuj8g==","signatures":[{"sig":"MEUCIQCNZiAsLEjkl8R9t/8N8TJfBJdyna4GFMTVVJAARnMJowIgXvGT9yRH+7ZeLuuHjnqIpkI0K3HScFv4KsvkAneMxbs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42217},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"da1648c2e83b88ebde9343300a795c4e62998d6c","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clicksimply","email":"scott@clicksimply.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.5.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.0.4_1728699052957_0.2574289230382625","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"iron-enum","version":"1.1.0","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.1.0","maintainers":[{"name":"clicksimply","email":"scott@clicksimply.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"c51f52b7f434ff1dc4dae4f7e7f998fcd60da235","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.1.0.tgz","fileCount":12,"integrity":"sha512-tZOszBGkSbKzNsLWnv0u5n+Auv3CYxU9HCmr/iIz9YHKZtdJKr2HpTsC2/iMKQPWF7LT6qRt4TB8jxipc/Bsdw==","signatures":[{"sig":"MEQCIGGUzIMf6kN8W2fcQYvKPtbi2NXj+y5DG7QfOXUonyFMAiBy20DpvpozmLZhD9GfhITZIzhQET2/5v9MsZEq8x2wHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54925},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"27e1dd1d8418f528d7ebbf205d76909550a93d9e","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"echo \"Error: no test specified\" && exit 1","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js","readme":"(echo \"/**\"; sed 's/^/ * /' README.md; echo \" */\") | cat - mod.ts > temp && mv temp mod.ts"},"_npmUser":{"name":"clicksimply","email":"scott@clicksimply.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.1.0_1734156974898_0.0703982262712124","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"iron-enum","version":"1.1.1","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.1.1","maintainers":[{"name":"clicksimply","email":"scott@clicksimply.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"8a09ca80bfe9b50fae01b7fce08cbf52ea4c5a70","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.1.1.tgz","fileCount":12,"integrity":"sha512-UsFnKRPlvm5P48RBbAWQdtuOLvayasPzfcv+Ev1M9qvWpzcMuOsyrXRx48G3RcU7quIISYg43hj76zB3XAAOKQ==","signatures":[{"sig":"MEUCIQDGkSPk9ZLnuCMERmSVgANtEGPIjlF8EoT3oIwKHW8GcgIgNy3527TGWKt4hnUArg71xrprMUAMzBJOIoo4p7r7PPw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54883},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"c5da04dcb1174dfddc4d0e6223f54251ff488dcd","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"echo \"Error: no test specified\" && exit 1","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js","readme":"(echo \"/**\"; sed 's/^/ * /' README.md; echo \" */\") | cat - mod.ts > temp && mv temp mod.ts"},"_npmUser":{"name":"clicksimply","email":"scott@clicksimply.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.1.1_1734157183315_0.9210065190401389","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"iron-enum","version":"1.1.2","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.1.2","maintainers":[{"name":"clicksimply","email":"scott@clicksimply.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"3b815c9d10d0edfffee6c4bf3e70c229f8a285dd","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.1.2.tgz","fileCount":14,"integrity":"sha512-LO6YeGR+/e8istI+Az8EWe0KT283LpvXbLEArHJludb90K6A/ePET4Skj9lvmNo4BAF2+z32Rtun3jVdu69HjQ==","signatures":[{"sig":"MEQCIAuB+eufbQtr6hGX0MjI2B/oTlb1/RRrzFFW2JuMZu61AiBDfnRSK6vhlZU4D9A3iElPBsH+JYFHPL5Lix01YzKiXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63865},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"cc0286768f34bf0d759863b878e05f33641d61f8","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js","readme":"(echo \"/**\"; sed 's|\\*/|*\\\\/|g' README.md | sed 's/^/ * /'; echo \"\n * */\n\n\") | cat - mod.ts > temp && mv temp mod.ts"},"_npmUser":{"name":"clicksimply","email":"scott@clicksimply.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.1.2_1734165346964_0.5127646190888635","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"iron-enum","version":"1.2.0","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.2.0","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"20efe2b1cb028453c99e4132867e00fdb17b1610","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.2.0.tgz","fileCount":14,"integrity":"sha512-BRr3Jprn0jLUVwJPLnNhGBXoWINIqXiFyj+vKk3HQyqLzr8kUa+PpmTlJteGoh6dfQxXvRWMH4i3w2mrTXBQ4Q==","signatures":[{"sig":"MEQCICnOudf/OXxuJ845ZBb0epjD52FN565Fba8vmoSQCPb7AiAkUfK5gYjKZhIe3db6kFwEimRsVNoqcB7tcgvHGLmmTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116043},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"f9f564aacd26f030d638b8f349603e2e57aa06b5","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js","readme":"(echo \"/**\"; sed 's|\\*/|*\\\\/|g' README.md | sed 's/^/ * /'; echo \"\n * */\n\n\") | cat - mod.ts > temp && mv temp mod.ts"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.2.0_1739770249005_0.9548609897980092","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"iron-enum","version":"1.2.1","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.2.1","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"c08e64578fa23d314a5c6c5fa3b3f3f1867f0cf3","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.2.1.tgz","fileCount":14,"integrity":"sha512-cmZyMdqr06i006KrZDfA+WjRB9G7LrBSXLyCvIynQ0fXnpqkL1MVszk59H9a2YvO6Ao8ODbn/YPK16UQXDi82Q==","signatures":[{"sig":"MEUCIGNwJiyQbb5bX0d+s5LI3hZabfzLbqYDKieNt+hQY6MXAiEA/FgL7WkEctOEtgLGgaH0mCgk+SB6Dc1ksSkwIAUELuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146358},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"d4484c58c4a7bc9cdbe53f336ef4d4b2a52955df","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js","readme":"(echo \"/**\"; sed 's|\\*/|*\\\\/|g' README.md | sed 's/^/ * /'; echo \"\n * */\n\n\") | cat - mod.ts > temp && mv temp mod.ts"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.2.1_1740700465513_0.94455586606687","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"iron-enum","version":"1.3.0","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.3.0","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"7d69bb278efc886c9d8e658430f5ea015bb2c3a6","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.3.0.tgz","fileCount":14,"integrity":"sha512-o/IHvv0ajpnFs8nE7lPNobYBrFTd6U2/Et3JkX9NB+5tmt9Czpt5PzVNlF5vwiaj/NH3jIClgQdsLXYKjnWTVg==","signatures":[{"sig":"MEYCIQCIRV6KfwfT7f115GJAYeIjM3PWOsVDio2k6WtrkEfl4QIhAPNlA49Q+AvhxnA9xZuqrFcctX1bIUvNosPF4X8hu1WF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159055},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"8bc483425f4d2b125945fb2a5677f76c9f3a2aed","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js","readme":"(echo \"/**\"; sed 's|\\*/|*\\\\/|g' README.md | sed 's/^/ * /'; echo \"\n * */\n\n\") | cat - mod.ts > temp && mv temp mod.ts"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.3.0_1740867856328_0.4974209980403972","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"iron-enum","version":"1.3.1","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.3.1","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"35217d5ccc5af4594a8db0d2c6cf8a5556a0695d","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.3.1.tgz","fileCount":14,"integrity":"sha512-At/MsdkjOxh4ZdhPVUq5sB+3RnSI4Ra90GDTCz8x4J+META0rqWhPC2C8DozlkJPaGn4r7kI3ly+NEwzBQBGIA==","signatures":[{"sig":"MEUCIAiLm6oxFki1I7wNh37jJ86v5YmkyBQyw+93KOQd8BpiAiEAqJqgZQNzo29+neXAC7XVrB0e35ovx1BTDN3EGfHA/es=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59815},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"be8075e673fd42232931c9393812a850affcd84e","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js","readme":"(echo \"/**\"; sed 's|\\*/|*\\\\/|g' README.md | sed 's/^/ * /'; echo \"\n * */\n\n\") | cat - mod.ts > temp && mv temp mod.ts"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"20.13.1","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.3.1_1741281841090_0.06363656309458188","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"iron-enum","version":"1.3.2","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.3.2","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"c486965a11dab9d42e3d881da4cbc65066df6957","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.3.2.tgz","fileCount":14,"integrity":"sha512-28Paj/0JJmFRx7VpFI5madGeO2P0/UezvVbp+h/gpABBaRb5G0NZQ3t1XlgPvt00HhgQWSxeptFN0ydFgpAXLQ==","signatures":[{"sig":"MEYCIQCsEGzTKRYvUdMGZDmesluJq6sIVVvlJhGMebDB5LuZUgIhAJCVNGYqFRgnLmcHSK9iRsEGdqCv6awMgYomMc2dOuph","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60692},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"602013ad9b1dfbfb892eb0b3283fb0c99c97da5f","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.3.2_1742145729721_0.2067479827343197","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"iron-enum","version":"1.4.0","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.4.0","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"63a052673f04c869307ad3fde6535bf0a4bee373","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.4.0.tgz","fileCount":14,"integrity":"sha512-Q/PYb50keyQ4PZrce9ADXq+Z/knFY+7xrt63V8iwsUdGYv+524qyKQfXs+lo6pwSZ79Id5G/7NsWkK/zYnBhIw==","signatures":[{"sig":"MEUCIHfnFOhK+7Q45xxh6p8ntOMgtHTqFoIZXG1pRLYHu6BiAiEAnfciVvF0d7r7hxFjV2gLlwNT+YsQyfUSxkuxjRvyAs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63722},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"5a7477ca9a2ca5afad7c9a45738e6253f35e84fa","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.4.0_1742858887387_0.6228629977432065","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"iron-enum","version":"1.4.1","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.4.1","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"5e3afab2c8588778c139546356dac41e8251861d","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.4.1.tgz","fileCount":14,"integrity":"sha512-zcp0bdqGhEfalJXoEt6x1WpEpTfIjJuEYY9GBmeVaEhHJr5dCINUSuZ9R8wNj0YXALhzipxMZ79HvLCY5ovBaQ==","signatures":[{"sig":"MEYCIQDaTYMF543hsBaulgeyPcwkGmd0ba7DhD5Wn2exmEHn7wIhAJiHZTJ5Lc4sBfJ7VWvs5xjC8OVrSPDUAHzBi2vP8dAc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63397},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"ed93bfeb676b43b182f8abd6fdc53955c80276bd","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.4.1_1742863746028_0.6245277282791093","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"iron-enum","version":"1.4.3","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.4.3","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"c75922f517aeb747fa8dd1f9fd6e26ef8e1fd7f0","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.4.3.tgz","fileCount":14,"integrity":"sha512-oiVuvjDgr4ain3MmWojCc/QkJ0GfEehayeUegZO4eDe4u+xIBT2tTWgL2bCdrqzx3u+/gPXVg7LVoItR5i8cJw==","signatures":[{"sig":"MEQCIHBsslkDFqP/KcT4JpOWSffTZ4Pm2xtoHuGVd3AYE5iLAiA7GJx57Zh48Q/RrlakWhjrjQ+V4zUl9a3Vbuz5O8aO1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63979},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"947fbc622c99e8cc902cfc03d1aa7f8d92bdc026","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.4.3_1742965037814_0.9348818975020925","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"iron-enum","version":"1.5.0","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.5.0","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"233ad487ec48217800d774e74b1bf5bef51bd459","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.5.0.tgz","fileCount":14,"integrity":"sha512-yKFKlK8kKpYep1xQxWQ2tmwS9TOkdyoRgRrQTeuA8L+dCfTsWHbirWljuDAEKDzDTZJ1qrEkMKrUt0g+QOC/vw==","signatures":[{"sig":"MEQCIBQI+19We2rAyPW5vPc3j4mO+/28Now02th5zdnhIv2lAiA4wTCYI5H3+X8cw/J/CNbxG+W5WeVi1BkJ/6q9BSqn1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76254},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"5dd770f1427b8a75cce3b42500f537d6295a19ef","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"10.9.2","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.5.0_1743113559336_0.9374127037657081","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"iron-enum","version":"1.5.1","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.5.1","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"48c9d1e3e4c4618f4a27d39c86d939f39715730f","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.5.1.tgz","fileCount":14,"integrity":"sha512-vIqmKodbOev30Pz7bJGeWH8RraAf7JlbIsIQka/1GjvS3rZCD5xzuoA3Uy6fTJfdKHACd9y/bszAGbdxSxxy7Q==","signatures":[{"sig":"MEUCIQC1QPU3DHpAg5M7/gg0qhlrCwCIwkiX4Uw2JmtXs3VWvwIgX0I4lNPp96GDabjqmugR6Bo9LK74IywVDKyQ3+xqq9s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94940},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"4ecd7a4dcd44d29a7216bac18a3676dc22a158e3","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"11.2.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.5.1_1743962161846_0.37888819707946597","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"iron-enum","version":"1.5.2","keywords":["enum","algebraic data type","tagged union","union","rust enums","rust","option","result","rust enum","rust like enum"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.5.2","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"1079fa45e1bd242e3003bba4140d3c3184d3eba1","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.5.2.tgz","fileCount":14,"integrity":"sha512-6ZaLYf3N7cDPbtLb1W4kuuPdJ9y1BYgaVpUq9bb6TZDdThQt9N8f4/FeU+7BeAj8m1uUj+mX+f1vlCezN2c9TQ==","signatures":[{"sig":"MEUCIQCID+VyXF8U5v004sPj+20W+cHHAnK5Yfb49lr/vSpAeAIgbAnzeHcFd6A/RmK2LaftNQzYfGEo8nQPyyH+7cW1I7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102416},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"b69c52ce51933e54b9f1b0646609a1c15f87f2f8","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"11.2.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.5.2_1746665539019_0.5162912563242281","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"iron-enum","version":"1.6.0","keywords":["typescript","enum","tagged union","tagged unions","discriminated union","algebraic data type","adt","sum type","union types","rust enums","rust","pattern matching","option type","result type","functional programming"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.6.0","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"d99edf14cf5c8a0a919ef692a6136e57b6895c89","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.6.0.tgz","fileCount":14,"integrity":"sha512-/BCT+zs0bSBr/h0qZnvgQGtYlYrqyrOKGKi7CjLzgDK/ZWfczJi9dUG0O7O+FAxQUejuoLgxOUxGjd5VQahZhw==","signatures":[{"sig":"MEUCIFXnjKrBjbgB35pmS1FlZ36jprXd05xh3q+F4FMhAmyJAiEAmNX1FgqRNQaIB3DKXSn/valu3tJ5A7eeTtOoE4YN9UA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112682},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"8007327d2f15fbd09c31b141306a19da82fae7cf","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"11.2.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.6.0_1746680479618_0.25096741824479785","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"iron-enum","version":"1.6.1","keywords":["typescript","enum","tagged union","tagged unions","discriminated union","algebraic data type","adt","sum type","union types","rust enums","rust","pattern matching","option type","result type","functional programming"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.6.1","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"a487bcfd56a70e04f27f3489b12bd733508bafe1","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.6.1.tgz","fileCount":16,"integrity":"sha512-Eg79PvSNfdcIGzN0o/ow2PvUAz8jjX8B8kBTm7UiYMvwuY6nchW3sPlKBosp5CVPg7BFT8OqyAlH0TNjzYusvQ==","signatures":[{"sig":"MEUCICbdxBbMGmK2UmFFLv3DMqHzM4W9BXcIiCaQEMFKNVqAAiEA+hVmAV/7NQPPOv4RpVfUeYZBSqR28nPbHXVXPfBWY7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120018},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"198e15bec6304322bea859153d7c3ddd820e391b","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"11.2.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.2.5","@types/jest":"^29.5.14"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.6.1_1747205409754_0.09340454513216434","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"iron-enum","version":"1.6.2","keywords":["typescript","enum","tagged union","tagged unions","discriminated union","algebraic data type","adt","sum type","union types","rust enums","rust","pattern matching","option type","result type","functional programming"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.6.2","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"eeb9080aba73205a75c2bb6eacfb323b8c52e8f6","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.6.2.tgz","fileCount":21,"integrity":"sha512-Btah+4SeM8W7NTsBIfH0S9b2NGyiqKOu9HTtpg7x6ReWxl8t9mMQ1YUozdja67lGDHrYM/77iiCX1O54gY9oCA==","signatures":[{"sig":"MEUCICpDAvF9AN3ZbtNJdQXKEf2lDmF2pdwqDKGKJTc8aBuMAiEAkirnvGyQijHh8kPAqSd+9E2cZ3jkyXJxcpKA0v1eNGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85203},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"a1dbef2740f95f299d1eb46937514e775246ad64","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest --coverage","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","actor":{"name":"only-cliches","type":"user","email":"me@scottlott.com"},"email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"11.2.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.5.0","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.6.2_1752173780181_0.4212978138790189","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"iron-enum","version":"1.6.3","keywords":["typescript","enum","tagged union","tagged unions","discriminated union","algebraic data type","adt","sum type","union types","rust enums","rust","pattern matching","option type","result type","functional programming"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.6.3","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"cd25e896203b5570435da668f284b7a830d2fe64","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.6.3.tgz","fileCount":21,"integrity":"sha512-AiyE8UrJaszMChjAxeqPLmZ7QdbX3uZd011btoRSTZtfWuYC6fM+QyBYc4LfeVOcHkKbU8NHd8rN7KSYSowkQA==","signatures":[{"sig":"MEYCIQDVh3WApAFvjfAPEoidVpmWS8lrwbpZJn3sJj4W+yyc2AIhAMkRuz/km+XGG3c6U4nFrFvrMaAvKdGFEKbw3SNlk5I0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137779},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"28feae97a7da05bc0830a527c870f138e6e0891b","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest --coverage","build":"tsc","minify":"npx terser dist/mod.js --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"11.2.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.5.0","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.6.3_1752446557346_0.7388688164560049","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"iron-enum","version":"1.7.0","keywords":["typescript","enum","tagged union","tagged unions","discriminated union","algebraic data type","adt","sum type","union types","rust enums","rust","pattern matching","option type","result type","functional programming"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.7.0","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"948adf81596a859e172936518966620f15836ff2","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.7.0.tgz","fileCount":33,"integrity":"sha512-ASiWrC4V4XWDgXL2ezGGLOEZ+NVKROzQbuLv1TJCpGhyq9MmAycJcZcC+nvkqM4DgsHSoIf+dKGQC/pO4GGXtw==","signatures":[{"sig":"MEUCIFQnTyd7XK2tPaEfFGKlSY6UADOlHTlAN6+Q9ff5ugccAiEAiVRrOhjVpd3IWTt1MZtFh2h3OQtHZARjIINxJlEyzd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388891},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"d3dd96d5d33584cd892c4378d04b213b65520684","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest --coverage","build":"tsc","minify":"npx terser dist/mod.js --toplevel --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"11.6.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.5.0","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.7.0_1761670311067_0.14555806150950223","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"iron-enum","version":"1.7.1","keywords":["typescript","enum","tagged union","tagged unions","discriminated union","algebraic data type","adt","sum type","union types","rust enums","rust","pattern matching","option type","result type","functional programming"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.7.1","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"49b3577aa717d421623e6e463eaa8a71d9da2b4c","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.7.1.tgz","fileCount":33,"integrity":"sha512-9J1RsHWefkDkjxmaOuwtd+n7cd2C0ulOTNrXc6mdfrhwkOazV1+FYVqSRO3/V9UpxbwwvnwXBBk7nnFXfPWigg==","signatures":[{"sig":"MEUCIBIPmk1NXf5inDJXHdAqohuuEcLj5qLYG+2OOxlhK9sXAiEAp0wVarFTx75N6quwcPCwQH57JzJX4upushV63COSBY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388262},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"870fcd3ddf0ebf9fb42e8c5a47b7c027b00d3a75","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest --coverage","build":"tsc","minify":"npx terser dist/mod.js --toplevel --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"11.6.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.5.0","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.7.1_1761675043806_0.15581225224510975","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"iron-enum","version":"1.7.2","keywords":["typescript","enum","tagged union","tagged unions","discriminated union","algebraic data type","adt","sum type","union types","rust enums","rust","pattern matching","option type","result type","functional programming"],"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","_id":"iron-enum@1.7.2","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"homepage":"https://github.com/only-cliches/iron-enum#readme","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"dist":{"shasum":"099dbe363a31b3e61de3d7eb63d9aa79722a1a03","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.7.2.tgz","fileCount":33,"integrity":"sha512-207V8uA7k9300ehPsQPJp8FflQ0EQvvhlV2L84dkC3Kl4lGZeWZVkDFJrJh7VEiCRAhNIPRc9/Q+zmtPHo294w==","signatures":[{"sig":"MEUCIQDHuIOp7SCxzIuye+/SFTSTaAcoiQ1Uegx9V89Y5QvU5gIgVwauEInnTgbuO3KEWE5CXDhzBYG5g75JXzQ2FwREiXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":390241},"main":"dist/mod.js","types":"dist/mod.d.ts","gitHead":"02f65afe490beb4042274e5f6331fe4fab03fb94","scripts":{"size":"gzip -c dist/mod.min.js | wc -c","test":"jest --coverage","build":"tsc","minify":"npx terser dist/mod.js --toplevel --compress --mangle --output dist/mod.min.js"},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"_npmVersion":"11.6.0","description":"Rust like enums for Typescript","directories":{},"_nodeVersion":"23.9.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.5.0","@types/jest":"^30.0.0"},"_npmOperationalInternal":{"tmp":"tmp/iron-enum_1.7.2_1761687489027_0.5601510481682568","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"iron-enum","version":"1.8.0","description":"Rust like enums for Typescript","type":"module","main":"dist/mod.cjs","module":"dist/mod.js","types":"dist/mod.d.ts","exports":{".":{"types":"./dist/mod.d.ts","import":"./dist/mod.js","require":"./dist/mod.cjs"}},"scripts":{"test":"jest --coverage","minify":"npx terser dist/mod.js --toplevel --compress --mangle --output dist/mod.min.js","clean":"rm -rf dist dist-cjs","build:esm":"tsc --module ES2020 --outDir dist","build:cjs":"tsc --module commonjs --outDir dist-cjs --declaration false --declarationMap false --sourceMap false && mv dist-cjs/mod.js dist/mod.cjs && rm -rf dist-cjs","build":"npm run clean && npm run build:esm && npm run build:cjs","prepack":"npm run build","size":"gzip -c dist/mod.min.js | wc -c"},"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"keywords":["typescript","enum","tagged union","tagged unions","discriminated union","algebraic data type","adt","sum type","union types","rust enums","rust","pattern matching","option type","result type","functional programming"],"devDependencies":{"@types/jest":"^30.0.0","jest":"^29.7.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.5.0"},"_id":"iron-enum@1.8.0","gitHead":"243b21a4c9f9a1a8a88f0f5b3ebb17d48e08cb26","bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"homepage":"https://github.com/only-cliches/iron-enum#readme","_nodeVersion":"23.9.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-x8Y8s/73L0vy+tjis62de+NplDae/+aOqH1I9tns/7yqNtA2R9uae0heEuT0jcpohyhUEOHU0egaobbms3AIeQ==","shasum":"70909d1c8dbaca36432975a4932f98c867039dc2","tarball":"https://registry.npmjs.org/iron-enum/-/iron-enum-1.8.0.tgz","fileCount":9,"unpackedSize":98309,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICbE2Y/40Zs97CGcaaCFznEoIi45uhxEAWdw+19z/VonAiATLWAO/0KAv1Q0ALhuo9fgydYkTuuHFlaCiKVsD30Kig=="}]},"_npmUser":{"name":"only-cliches","email":"me@scottlott.com"},"directories":{},"maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/iron-enum_1.8.0_1772837227310_0.19875825289381166"},"_hasShrinkwrap":false}},"time":{"created":"2024-10-10T01:04:36.629Z","modified":"2026-03-06T22:47:07.571Z","1.0.0":"2024-10-10T01:04:36.853Z","1.0.1":"2024-10-10T01:18:39.950Z","1.0.2":"2024-10-10T17:26:39.091Z","1.0.3":"2024-10-10T17:32:15.276Z","1.0.4":"2024-10-12T02:10:53.146Z","1.1.0":"2024-12-14T06:16:15.086Z","1.1.1":"2024-12-14T06:19:43.500Z","1.1.2":"2024-12-14T08:35:47.160Z","1.2.0":"2025-02-17T05:30:49.219Z","1.2.1":"2025-02-27T23:54:25.722Z","1.3.0":"2025-03-01T22:24:16.531Z","1.3.1":"2025-03-06T17:24:01.323Z","1.3.2":"2025-03-16T17:22:09.913Z","1.4.0":"2025-03-24T23:28:07.583Z","1.4.1":"2025-03-25T00:49:06.299Z","1.4.3":"2025-03-26T04:57:18.071Z","1.5.0":"2025-03-27T22:12:39.561Z","1.5.1":"2025-04-06T17:56:02.024Z","1.5.2":"2025-05-08T00:52:19.215Z","1.6.0":"2025-05-08T05:01:19.804Z","1.6.1":"2025-05-14T06:50:09.925Z","1.6.2":"2025-07-10T18:56:20.416Z","1.6.3":"2025-07-13T22:42:37.528Z","1.7.0":"2025-10-28T16:51:51.318Z","1.7.1":"2025-10-28T18:10:44.023Z","1.7.2":"2025-10-28T21:38:09.199Z","1.8.0":"2026-03-06T22:47:07.453Z"},"bugs":{"url":"https://github.com/only-cliches/iron-enum/issues"},"author":{"name":"Scott Lott","email":"me@scottlott.com"},"license":"MIT","homepage":"https://github.com/only-cliches/iron-enum#readme","keywords":["typescript","enum","tagged union","tagged unions","discriminated union","algebraic data type","adt","sum type","union types","rust enums","rust","pattern matching","option type","result type","functional programming"],"repository":{"url":"git+https://github.com/only-cliches/iron-enum.git"},"description":"Rust like enums for Typescript","maintainers":[{"name":"only-cliches","email":"me@scottlott.com"}],"readme":"# 🦾 Iron Enum\n\nSuper‑lightweight **Rust‑style tagged unions for TypeScript** — fully type‑safe, zero‑dependency, ~1 kB min+gz.\n\n[![GitHub Repo stars](https://img.shields.io/github/stars/only-cliches/iron-enum)](https://github.com/only-cliches/iron-enum)\n[![NPM Version](https://img.shields.io/npm/v/iron-enum)](https://www.npmjs.com/package/iron-enum)\n[![JSR Version](https://img.shields.io/jsr/v/%40onlycliches/iron-enum)](https://jsr.io/@onlycliches/iron-enum)\n[![npm package minimized gzipped size](https://badgen.net/bundlephobia/minzip/iron-enum)](https://bundlephobia.com/package/iron-enum@latest)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nIronEnum lets you model expressive enums (a.k.a. tagged unions) in plain TypeScript and gives you ergonomic helpers inspired by Rust’s Option, Result, and try patterns.\n\n[▶ Open playground](https://stackblitz.com/edit/iron-enum-sandbox?file=src/main.ts)\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Core Concepts](#core-concepts)\n- [Built-in Types](#built-in-types)\n  - [Result<T, E>](#resultt-e)\n  - [Option<T>](#optiont)\n  - [Try and TryInto](#try-and-tryinto)\n- [EcoSystem Helpers](#ecosystem-helpers)\n  - [Zod](#zod)\n  - [Vue](#vue)\n- [Advanced Usage](#advanced-usage)\n  - [Async Pattern Matching](#async-pattern-matching)\n  - [Serialization & Parsing](#serialization--parsing)\n  - [Type Guards](#type-guards-and-narrowing)\n  - [Performance](#performance-optimization)\n- [API Reference](#api-reference)\n- [Best Practices](#best-practices)\n- [Examples](#examples)\n\n\n## Features\n\n- 🦀 **Rust-inspired** - Familiar `Result`, `Option`, and pattern matching\n- 🎯 **Type-safe** - Full TypeScript support with excellent type inference\n- 🚀 **Zero dependencies** - Lightweight and fast (~1kb gzipped)\n- 🔧 **Ergonomic API** - Intuitive constructors and method chaining\n- 🎮 **Pattern matching** - Exhaustive `match` and `matchAsync` methods\n- 🛡️ **Error handling** - Built-in `Try` and `TryInto` utilities\n\n\n## Installation\n\n```bash\nnpm install iron-enum\n# or\nyarn add iron-enum\n# or\npnpm add iron-enum\n```\n\n## Quick Start\n\n```tsx\nimport { IronEnum } from 'iron-enum';\n\n// Define your enum variants\nconst Status = IronEnum<{\n  Loading: undefined;\n  Ready: { finishedAt: Date };\n  Error: { message: string; code: number };\n}>();\n\n// Create instances\nconst loading = Status.Loading();\nconst ready = Status.Ready({ finishedAt: new Date() });\nconst error = Status.Error({ message: \"Network error\", code: 500 });\n\n// Pattern match\nconst message = ready.match({\n  Loading: () => \"Still working...\",\n  Ready: ({ finishedAt }) => `Done at ${finishedAt.toLocaleTimeString()}`,\n  Error: ({ message }) => `Failed: ${message}`\n});\n\n// Use in UI components...\n// Works with React and SolidJS out of the box!\nconst component = (props) => {\n\n    const [value, setValue] = useState(Status.Loading());\n\n    return (\n        <div>\n            {value.match({\n                Loading: () => <div>Loading</div>,\n                Ready: ({ finishedAt }) => <div>{`Done at ${finishedAt.toLocaleTimeString()}`}</div>,\n                Error: ({ message }) => <div>{`Failed: ${message}`}</div>\n            })}\n        </div>\n    )\n}\n```\n\n\n## Core Concepts\n\n### Creating Enums\n\nIronEnum uses TypeScript's type system to create discriminated unions with zero runtime overhead:\n\n```ts\n// Simple enum without payloads\nconst Direction = IronEnum<{\n  North: undefined;\n  South: undefined;\n  East: undefined;\n  West: undefined;\n}>();\n\n// Enum with different payload types\nconst UserEvent = IronEnum<{\n  Login: { userId: string; timestamp: Date };\n  Logout: { userId: string };\n  Update: { userId: string; changes: Record<string, any> };\n}>();\n\n// Using the enum\nconst event = UserEvent.Login({ \n  userId: \"user123\", \n  timestamp: new Date() \n});\n```\n\n### Pattern Matching\n\nThe `match` method ensures exhaustive handling of all variants:\n\n```ts\nconst Shape = IronEnum<{\n  Circle: { radius: number };\n  Rectangle: { width: number; height: number };\n  Triangle: { base: number; height: number };\n}>();\n\nconst shape = Shape.Circle({ radius: 5 });\n\nconst area = shape.match({\n  Circle: ({ radius }) => Math.PI * radius ** 2,\n  Rectangle: ({ width, height }) => width * height,\n  Triangle: ({ base, height }) => (base * height) / 2\n});\n\n// With fallback using '_'\nconst description = shape.match({\n  Circle: () => \"Round shape\",\n  _: () => \"Polygonal shape\"  // Catches Rectangle and Triangle\n});\n```\n\n### Guards and Conditionals\n\nUse `if` and `ifNot` for conditional logic:\n\n```ts\nconst Auth = IronEnum<{\n  Authenticated: { user: { id: string; name: string } };\n  Anonymous: undefined;\n}>();\n\nconst auth = Auth.Authenticated({ user: { id: \"123\", name: \"Alice\" } });\n\n// Simple boolean check\nif (auth.if(\"Authenticated\")) {\n  console.log(\"User is logged in\");\n}\n\n// With callbacks\nconst userName = auth.if(\n  \"Authenticated\",\n  ({ user }) => user.name,\n  () => \"Guest\"\n);\n\n// Inverse check\nauth.ifNot(\n  \"Anonymous\",\n  () => console.log(\"User is authenticated\")\n);\n```\n\n\n## Built-in Types\n\n### Result\\<T, E\\>\n\nRust-style error handling:\n\n```ts\nimport { Result, Ok, Err } from 'iron-enum';\n\nconst DivideResult = Result<number, string>();\n\n// 2. Use the factory's type for the return annotation\nfunction divide(a: number, b: number): typeof DivideResult._.typeOf {\n  if (b === 0) {\n    return DivideResult.Err(\"Division by zero\");\n  }\n  return DivideResult.Ok(a / b);\n}\n\nconst result = divide(10, 2);\n\n// Pattern matching\nconst message = result.match({\n  Ok: (value) => `Result: ${value}`,\n  Err: (error) => `Error: ${error}`\n});\n\nconsole.log(message); // \"Result: 5\"\n\n// Convenience methods\nconsole.log(result.isOk());        // true\nconsole.log(result.unwrap());      // 5\nconsole.log(result.unwrap_or(0));  // 5\n```\n\n### Option\\<T\\>\n\nNullable value handling:\n\n```ts\nimport { Option } from 'iron-enum';\n\n// Assumes 'User' type is defined elsewhere\n\ntype User = {id: number, name: string};\n\nconst optUser = Option<User>();\n\nconst userOption = optUser.Some({ id: 123, name: \"Alice\" }); // Example\n\n// Convert to Result\nconst userResult = userOption.ok_or(\"User not found\");\n\n// Pattern matching\nuserOption.match({\n  Some: (user) => console.log(`Found: ${user.name}`),\n  None: () => console.log(\"User not found\")\n});\n\n// Convenience methods\nconsole.log(userOption.isSome());           // boolean\nconsole.log(userOption.unwrap_or(null));    // User | null\n```\n\n### Try and TryInto\n\nAutomatic exception handling:\n\n```ts\nimport { Try, TryInto } from 'iron-enum';\n\n// Wrap a potentially throwing function\nconst result = Try.sync(() => {\n  return JSON.parse('{\"valid\": \"json\"}');\n});\n\n// Async version\nconst asyncResult = await Try.async(async () => {\n  const response = await fetch('/api/data');\n  return response.json();\n});\n\n// Transform existing functions\nconst safeParse = TryInto.sync(JSON.parse);\n// const safeReadFile = TryInto.async(fs.promises.readFile); // Example for Node.js\n\n// Use the wrapped functions\nconst parseResult = safeParse('{\"key\": \"value\"}');\nparseResult.match({\n  Ok: (data) => console.log(\"Parsed:\", data),\n  Err: (error) => console.log(\"Parse failed:\", error)\n});\n```\n\n\n## EcoSystem Helpers\n\n### Zod\n\nFor runtime validation (e.g., parsing API responses), you can use the `iron-enum-zod` helper to create an `IronEnum` and a `zod` schema from a single definition.\n\n```bash\nnpm install iron-enum-zod zod\n```\n\nThis gives you a single, powerful factory with constructors and parsing methods.\n\n```ts\nimport { z } from 'zod';\nimport { createZodEnum } from 'iron-enum-zod';\n\n// 1. Define your payload schemas using Zod\nconst StatusPayloads = {\n  Loading: z.undefined(),\n  Ready: z.object({ finishedAt: z.date() }),\n  Error: z.object({ message: z.string(), code: z.number() }),\n};\n\n// 2. Create the enhanced enum factory\nconst Status = createZodEnum(StatusPayloads);\n\n// 3. You get all the standard constructors\nconst ready = Status.self.Ready({ finishedAt: new Date() });\n\n// 4. And you get new, type-safe parsing methods\nconst apiInput = { tag: \"Ready\", data: { finishedAt: \"2025-10-25T10:00:00.000Z\" } } as const;\n\n// .parse() returns an enum that's been recursively parsed by zod then converted into an `IronEnum` type.\nconst apiParsed = Status.parse(apiInput);\n// now use apiPased as a normal enum\napiParsed.match(...)\napiParsed.if(...)\n\n// You can also access the raw schema\nconst UserSchema = z.object({\n  id: z.string(),\n  status: Status.schema,\n});\n```\n\n---\n\n### Vue\n\n`iron-enum-vue` provides a `createEnumMatch` function that generates a component that uses slots for an idiomatic, type-safe matching experience.\n\n```vue\n<script setup lang=\"ts\">\nimport { IronEnum } from \"iron-enum\";\nimport { createEnumMatch } from \"iron-enum-vue\";\nimport { ref } from \"vue\";\n\nconst Status = IronEnum<{\n  Loading: undefined;\n  Ready: { finishedAt: Date };\n  Error: { message: string; code: number };\n}>();\n\nconst EnumMatch = createEnumMatch(Status);\n\nconst statusValue = ref(Status.Loading());\n\n</script>\n\n<template>\n  <EnumMatch :of=\"statusValue\">\n    <template #Loading>\n      <div>Loading</div>\n    </template>\n\n    <template #Ready=\"{ finishedAt }\">\n      <div>Done at {{ finishedAt.toLocaleTimeString() }}</div>\n    </template>\n\n    <template #Error=\"{ message, code }\">\n      <div>Failed: {{ message }} ({{ code }})</div>\n    </template>\n\n    <!-- Optional fallback for any unhandled tag -->\n    <template #_=\"{ tag }\">\n      <div>Unknown: {{ tag }}</div>\n    </template>\n  </EnumMatch>\n</template>\n\n```\n\n\n## Advanced Usage\n\n### Async Pattern Matching\n\n```ts\nconst RemoteData = IronEnum<{\n  NotAsked: undefined;\n  Loading: undefined;\n  Success: { data: any };\n  Failure: { error: Error };\n}>();\n\nconst state = RemoteData.Success({ data: { id: 1, name: \"Item\" } });\n\nconst processed = await state.matchAsync({\n  NotAsked: async () => null,\n  Loading: async () => \"Loading...\",\n  Success: async ({ data }) => {\n    // Async processing\n    // const enhanced = await enhanceData(data);\n    // return enhanced;\n    return data; // Example\n  },\n  Failure: async ({ error }) => {\n    // await logError(error);\n    return null;\n  }\n});\n```\n\n### Serialization & Parsing\n\nEnums have a built-in `toJSON()` method for easy serialization. Use `_.parse()` for deserialization from plain objects.\n\n```ts\nconst Status = IronEnum<{\n  Active: { since: string };\n  Inactive: { reason: string };\n}>();\n\nconst status = Status.Active({ since: new Date().toISOString() });\n\n// Convert to JSON\nconst json = status.toJSON(); \n// { tag: \"Active\", data: { since: \"2025-10-24T...\" } }\n\n// ... send over network ...\n\n// Parse from JSON\nconst parsed = Status._.parse(json); \n\nconsole.log(parsed.tag); // \"Active\"\n```\n\n### Type Guards and Narrowing\n\n```ts\nconst Message = IronEnum<{\n  Text: { content: string };\n  Image: { url: string; alt?: string };\n  Video: { url: string; duration: number };\n}>();\n\n// Use `typeof Message._.typeOf` for the union type\nfunction processMessage(msg: typeof Message._.typeOf) {\n  // The tag property enables type narrowing\n  switch (msg.tag) {\n    case \"Text\":\n      console.log(msg.data.content); // TypeScript knows this is string\n      break;\n    case \"Image\":\n      console.log(msg.data.url);     // TypeScript knows this is a string\n      break;\n    case \"Video\":\n      console.log(msg.data.duration); // TypeScript knows this is number\n      break;\n  }\n}\n```\n\n### Performance Optimization\n\nNormally each time you call `IronEnum()` a proxy is created, however this can be bypassed for performance-critical applications by providing the variant keys as parameters.\n\nPassing in keys also adds key validation to the `myEnum._.parse(...)` method.\n\n```ts\n// Pre-allocated version (no Proxy)\nconst Status = IronEnum<{\n  Idle: undefined;\n  Running: { pid: number };\n  Stopped: { exitCode: number };\n}>({ \n  keys: [\"Idle\", \"Running\", \"Stopped\"] // <- provide all keys in an array\n});\n\n// This avoids the Proxy overhead for better performance\n```\n\n\n## API Reference\n\n### IronEnum Methods\n\nEvery enum instance has these methods:\n\n  - **`tag`**: The variant name (discriminant).\n  - **`data`**: The variant's associated data.\n  - **`toJSON()`**: Convert to plain object.\n  - **`is(key)`**: Conditional check for if(..) statements.\n  - **`if(key, onMatch?, onMismatch?)`**: Conditional execution.\n  - **`ifNot(key, onMismatch?, onMismatch?)`**: Inverse conditional.\n  - **`match(handlers)`**: Optional exhaustive pattern matching, fallback allowed\n  - **`matchAsync(handlers)`**: Async pattern matching.\n  - **`matchExhaustive(handlers)`** Exhaustive pattern matching, no fallback method allowed.\n\n### Result Methods\n\nIn addition to enum methods:\n\n  - **`isOk()`**: Check if Result is Ok.\n  - **`isErr()`**: Check if Result is Err.\n  - **`unwrap()`**: Get value or throw error.\n  - **`unwrap_or(default)`**: Get value or return default.\n  - **`unwrap_or_else(fn)`**: Get value or compute default.\n  - **`ok()`**: Convert to `Option`, discarding error.\n\n### Option Methods\n\nIn addition to enum methods:\n\n  - **`isSome()`**: Check if Option has a value.\n  - **`isNone()`**: Check if Option is None.\n  - **`unwrap()`**: Get value or throw error.\n  - **`unwrap_or(default)`**: Get value or return default.\n  - **`unwrap_or_else(fn)`**: Get value or compute default.\n  - **`ok_or(error)`**: Convert to `Result` with provided error.\n  - **`ok_or_else(fn)`**: Convert to `Result` with computed error.\n\n\n## Best Practices\n\n1.  **Use exhaustive matching** - Always handle all variants or use `_` fallback.\n2.  **Leverage type inference** - Let TypeScript infer types from your variants.\n3.  **Prefer Option/Result** - Use built-in types for common patterns.\n4.  **Keep payloads immutable** - Treat enum data as read-only.\n5.  **Use meaningful variant names** - Make your code self-documenting.\n\n\n## Examples\n\n### State Machine\n\n```ts\nconst State = IronEnum<{\n  Idle: undefined;\n  Processing: { taskId: string; startedAt: Date };\n  Completed: { taskId: string; result: string };\n  Failed: { taskId: string; error: Error };\n}>();\n\nclass TaskProcessor {\n  private state = State.Idle();\n  \n  start(taskId: string) {\n    this.state = State.Processing({ taskId, startedAt: new Date() });\n  }\n  \n  complete(result: string) {\n    this.state.if(\"Processing\", ({ taskId }) => {\n      this.state = State.Completed({ taskId, result });\n    });\n  }\n  \n  getStatus(): string {\n    return this.state.match({\n      Idle: () => \"Ready\",\n      Processing: ({ taskId }) => `Processing ${taskId}...`,\n      Completed: ({ taskId }) => `Task ${taskId} completed`,\n      Failed: ({ error }) => `Failed: ${error.message}`\n    });\n  }\n}\n```\n\n### Form Validation\n\n```ts\nconst ValidationResult = IronEnum<{\n  Valid: { value: string };\n  Invalid: { errors: string[] };\n}>();\n\nfunction validateEmail(email: string): ValidationResult {\n  const errors: string[] = [];\n  \n  if (!email) errors.push(\"Email is required\");\n  if (!email.includes(\"@\")) errors.push(\"Invalid email format\");\n  if (email.length > 100) errors.push(\"Email too long\");\n  \n  return errors.length > 0 \n    ? ValidationResult.Invalid({ errors })\n    : ValidationResult.Valid({ value: email.toLowerCase() });\n}\n\n// Usage\nconst result = validateEmail(\"user@example.com\");\nresult.match({\n  Valid: ({ value }) => console.log(\"Email accepted:\", value),\n  Invalid: ({ errors }) => console.error(\"Validation failed:\", errors)\n});\n```\n\n\n## License\n\nMIT © 2025 Scott Lott\n\n*Made with ❤️ by a developer who misses Rust's enums in TypeScript*","readmeFilename":"README.md"}