{"_id":"better-result","_rev":"28-9c6e61b61bcbda622cb055b15cebcef4","name":"better-result","dist-tags":{"next":"3.0.0-rc.5","latest":"3.0.1"},"versions":{"1.0.0":{"name":"better-result","version":"1.0.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@1.0.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"0d83cf83d1b2c2e81215d53e488068c2590cad1d","tarball":"https://registry.npmjs.org/better-result/-/better-result-1.0.0.tgz","fileCount":13,"integrity":"sha512-Knd3D8J+eEOWJBbK2dsqAvuEMugd8QxA77bhV/ScAkHcQ5+V7eGulnrWoMXCBSoktJBg70fsZnKOX4kw02ZkIA==","signatures":[{"sig":"MEQCIE+Kn9l/EyIFAdsgG+h/LUs15rijusVmDffXvbG8UxAEAiAIrZvApUs99hMxwVbUQH6ls3jPI9x7y6OSLdIbT6Y61Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123501},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"gitHead":"1df01ef2c09a763a6a357dafd78b54040877b692","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.1","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_1.0.0_1767972690783_0.4351840882871183","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"better-result","version":"1.0.1","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@1.0.1","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"20e789ba1ec4e01c57bf30a59c3fcff677dcec88","tarball":"https://registry.npmjs.org/better-result/-/better-result-1.0.1.tgz","fileCount":13,"integrity":"sha512-5IUPG5P3cUJgAc7rizc3heHqcJzVQDG+YrcJXhjhsjfJrFdCerpfe0RTL3nIYJCT3nU3GN/BJCaahIyqWfLYyg==","signatures":[{"sig":"MEUCIQD+URLK0wTwOt1KI+6Ev0FcrMEqdadW2IVkDy/HDhrgaAIgZugXtGhHfC/Dv8r9sV3t0EmhcnAU0e+jpEyaa/DHaao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137163},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"gitHead":"f955ee9991d500b1ee46752e9c3187dffd5cf418","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.1","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_1.0.1_1768369580433_0.8728193363491945","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"better-result","version":"2.0.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.0.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"46339e27789eeb167351f09774bfae935ba383eb","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.0.0.tgz","fileCount":17,"integrity":"sha512-72GfHw5FQp2GylNeoQPAmXDQj2e0HBeMuyGwVd1eM5HahvC2pysdBjCOuRASfQ2ZLeykiFaVOs3455a78+Dh3Q==","signatures":[{"sig":"MEYCIQDZW6uFRYWJOQPKzcbjjRcfbvfPpNNsOukfGSbM4nJdogIhAPSVp4mnmmuXD41OA71VjY1IMhRdypz26uhisYcTQx8c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226227},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"gitHead":"e9ba1da4a5bf7c15c89577ecdad9cefd469e7f55","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.2","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.0.0_1768445123064_0.23054618188244436","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"better-result","version":"2.1.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.1.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"d0e7be6094b19273efded7a72ed39a969210fca9","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.1.0.tgz","fileCount":17,"integrity":"sha512-POnegQjl5WgHVX4DmKarYSezjZ+iUmtSAtjtbVLpelay0NA6KbI41mOKnJYvy/i3P1NvmzsuZxDkXPuyAOYTuw==","signatures":[{"sig":"MEUCIQC9WXK8ljdTsHXh3fbmiiXXBR7Ucq1u42dlQYA6zhMJVgIgG4RuooQXZBS4g4n9u96D1IICon8NU6rN0lLPdAWPycE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233850},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"gitHead":"33d31bdd5ed6c1d9506fd1c802406c0ad987e112","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.2","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.1.0_1768519463717_0.2594925572382656","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"better-result","version":"2.2.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.2.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"643e89fe4baa91509566b4aa5283e60016aac12e","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.2.0.tgz","fileCount":17,"integrity":"sha512-jDIuhr3B02wnJWFD7yVZ4Bgj/7MHmcb7+G8XRDKgXCbwCz5IFNkppu9UA6JdtDmTHK1e6NsyUi9Zsw1belw8qw==","signatures":[{"sig":"MEYCIQCD5x6s/3r9vpxwnIItj8M3AZTEtWIsOyoAV76p/8MVPgIhAPigKhK91aUHkqd82c9jqFYDKoxn6n4eu4uPaeoJ6LIF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240333},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"gitHead":"549b78531aec6a383418ce7ed4ea0a6acbaf0bc8","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"deprecated":"this package has been deprecated","repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.2","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.2.0_1768669391479_0.42437955144501704","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"better-result","version":"2.3.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.3.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"3826b1abb55e05a8285815b187e85d0c824d5aa6","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.3.0.tgz","fileCount":17,"integrity":"sha512-CqTRSRU41PbMlzsnXfcU1bmyxxHUJSIBjyM3EagGbqclxBdy7Om+FrY9x3ix9XR7WdsHIyZhBp67eY8m8JCiNQ==","signatures":[{"sig":"MEUCIQCO1qkYIclzoFSr27rrW+wMmKujQmGsDtd+Iu+rRfDF8QIgThjNHFwbY7+OXzPedoeOLed+LjR6AVoS4mXVrsNzxew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248287},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"gitHead":"d4e36f2e0097b83633ce4d365df9749116dc9f90","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.2","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.3.0_1768669712883_0.9703870308204896","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"better-result","version":"2.3.1","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.3.1","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"ad51090d9d58e44b748010f8b584b736ce9f1c3a","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.3.1.tgz","fileCount":17,"integrity":"sha512-OFxz9r3uP9LhJ009I4XvOLYmTGpW6AOCKyWUqjPTjUmALoOQLVc14pJeYIMIplNlDALr0wqlAhJy019dp54a/A==","signatures":[{"sig":"MEQCIGLu/2K68sryiRzZa+kPNdq58/KWBlfLAfBP3pu3o6osAiAm1tJRxn27IHu1vli88jpl2y5GIen+jXPq5RA5nT8I3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248324},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"fb308eff04c74b1540e85b2ce3fa2618cc1ee034","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.1","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.11.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.3.1_1768789199243_0.29157792106667046","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"better-result","version":"2.4.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.4.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"4aebd5be97f2cc89699d8c8ca103489342649ef0","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.4.0.tgz","fileCount":17,"integrity":"sha512-3Bq6/OYwxo9G+ceoyG0j2MN/aVqOxi8VpL2ZyxkqEftNYqy0uQTRhWX2aTyBbC4jQjcfmnitCZ9/ZBFK9ABQpQ==","signatures":[{"sig":"MEYCIQCjGY66WNxJOJyPt6DRg0gBkme0eRnz9GSS4QajHRQ2jAIhAO/5+0ni+bqhaTawGawO98UyMD0UDuCJgdDpq+NiDSvt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257468},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"e6e6323ad647323e2a2393723c23539ccf1f2dbe","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.1","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.11.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.4.0_1768873840541_0.0473938736842443","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"better-result","version":"2.5.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.5.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"47f83aa694505339e7d4bc207db098185f42e05e","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.5.0.tgz","fileCount":17,"integrity":"sha512-wZ0wNGs9JQroKwRGApIIygIny9VVmxD8L0+Sriij+XSmLxjSlHadAkNqva34/tdfr/0QxE8RdM/5irngslHOTg==","signatures":[{"sig":"MEUCIERmcKuHAPRDlD/XQKrPuidK1nyZ+zm5RfsnpEyDXi9EAiEAiCn1sWqThpvndZa7IAGha5xrfqBaSLPAhalZrVvp2oE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257739},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"cc26df5e22e694c37cd19cb75d7d6fa02415d119","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.1","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.11.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.5.0_1769002432859_0.2801315520845007","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"better-result","version":"2.5.1","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.5.1","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"8ea0419466d14eea6fe0717a688e677b12e72883","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.5.1.tgz","fileCount":17,"integrity":"sha512-guw/CpafxGh6QeRoc3H9KBxbynQfdouzPLysMAxyFl52mKQ8wa6SfuDLbWDdglPHca6GNA6DmBh4LdsmQlxSxA==","signatures":[{"sig":"MEUCIQDG26afQZsBgTwmqZL6rvuduNgveAFcLbo/P3iezjqOpgIgJhg9XVeg2ZjOrxw8YJ3lySH4Rfa62fyInMFfRFHXv7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257831},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"5023409e9194501a772ea3d5d85606834590121a","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.2","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.5.1_1769051710541_0.4558955824924249","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"better-result","version":"2.5.2","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.5.2","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"cc8f25888196b92032172870e2b351760e6187d3","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.5.2.tgz","fileCount":17,"integrity":"sha512-gHG++1y+GvCrGvSi1WVwyM3slsl1yeE68rNCuTXfwcCx041I3f1z2d99oaC6QSuP+XB70Vda3Dc+EitE5KfGqg==","signatures":[{"sig":"MEUCIQD7FQXecMqWlGw4OqZwc1pPDuja09w5sh5XlJ9M2nUo6gIgRuDOgGuAgVRpLauIkbzrJvypjj9vUW9zwGP6NjIWgg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260212},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"4ea656879fa73debc7174893dc26c150b55396f2","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","publish":"npm publish","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.1","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.11.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.5.2_1769372381101_0.367960121446508","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"better-result","version":"2.6.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.6.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"e26e88074c21341612820f33684a6bab1e3718b0","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.6.0.tgz","fileCount":17,"integrity":"sha512-hv31uYHmjFf3zIJgj5V0mT2ZOUg8zDVfd6Pv0iKKGcEAtjukxJofNa0q91cft+YqwHBSQAld5i9zbwgI9alZnA==","signatures":[{"sig":"MEYCIQDGtJO3SUajIZ5UDXX97EsYcNElwdPsGDEPXA8T4gOGoQIhAPN+b0Sys6BRM/goCtYRwotDWxtaFb6osq9OhEas4RBa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266454},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"1e56c994707257f2609044ddedd4b55ea283df1c","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.1","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.11.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.6.0_1769605508113_0.7162978117473369","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"better-result","version":"2.7.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.7.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"bin":{"better-result":"bin/cli.mjs"},"dist":{"shasum":"b68a76a335ffc8239573c265720073a8f241b44b","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.7.0.tgz","fileCount":17,"integrity":"sha512-7zrmXjAK8u8Z6SOe4R65XObOR5X+Y2I/VVku3t5cPOGQ8/WsBcfFmfnIPiEl5EBMDOzPHRwbiPbMtQBKYdw7RA==","signatures":[{"sig":"MEYCIQDENNKOFioKutMqg8iFH5UH51OagYRDlHq6f3zZMV1zEAIhAM8O88rKJo8+opY5+fOyR9+jP6ZWpm4AiHLlSQowK28h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273047},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"5806ed23516d23f4c876357bba1fdd502f3c11c8","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.6.1","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.11.0","dependencies":{"@clack/prompts":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.7.0_1769886728549_0.5268854925049673","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"better-result","version":"2.8.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.8.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"85fb1e0ddc3beaadc192488ab67f4a29d588ef62","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.8.0.tgz","fileCount":18,"integrity":"sha512-Zww6wBeN+KL+kmE4cHyY9uj5+9omtTzSyHwaoncLoti9XLKETpcAPehiSa5CGp4sRWDZbgbtS7x/Ci5U77Tqyg==","signatures":[{"sig":"MEYCIQCp9lMJFFCCEWvA4nMXNWAGeoetkaIRHYe+KGtv/QmGZAIhAN6IiFUcPR34HjfQ6zGv925sT7MJKGKkwI11vQ8AS1zN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305315},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.11.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.8.0_1775437517426_0.6557007354906963","host":"s3://npm-registry-packages-npm-production"}},"2.8.1":{"name":"better-result","version":"2.8.1","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.8.1","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://github.com/dmmulroy/better-result#readme","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"e083298985f7167f57a4a210835fa7afcd700eba","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.8.1.tgz","fileCount":5,"integrity":"sha512-C4FQ1gCLz1YCxmM8HhNPb4D7WQmdrdllkhNReeLwvIVtJKQFKKfwJwmM3yZEBG4P34cLtrgB+FEPr1u553hF7Q==","signatures":[{"sig":"MEYCIQDy87t6DLzRb+seBCLIMXdyDHE/nElJSBFpNMgH0eSFkQIhALj2odmLmL1/CZ9wjToCWWSrm2wmRp8La24Rs8MfKZ9l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@2.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75939},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"678477872d69fba3dd80b9b8ac47100e82846835","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.11.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.8.1_1775479410324_0.3269115528584907","host":"s3://npm-registry-packages-npm-production"}},"2.8.2":{"name":"better-result","version":"2.8.2","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.8.2","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"f14400741cf3a0afb07258c827d4653c121febe8","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.8.2.tgz","fileCount":5,"integrity":"sha512-YOf0VSj5nUPI27doTtXF+BBnsiRq3qY7avHqfIWnppxTLGyvkLq1QV2RTxkwoZwJ60ywLfZ0raFF4J/G886i7A==","signatures":[{"sig":"MEYCIQDxNu+7MHkKrKQE6olp6FVatNDkn+yX8xgX0IWInvOpEQIhAO9i7QQUBOCiXfD1nyTx0GXHMYewbLbWnUsLOG5DJ9B4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@2.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59859},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"b3a4a2a087d4fcc13eb1432eeefc6999e2b8adc6","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"bun test src/","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.11.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.8.2_1775673937111_0.5472014012549682","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"better-result","version":"2.9.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.9.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"db27a89dd20e123373fc3b4af4a3308bfd97a9e1","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.9.0.tgz","fileCount":5,"integrity":"sha512-NHwGDGVbRlWDOce3CwcfGIrcNR9zY37ut3SVwQVfv57DZdVhxjhA4mfaHN1n8QwWnRAR4iErpW1X/eaiaUaFYg==","signatures":[{"sig":"MEUCIF+iPhioaCESFMS3KCln0I/pHh/tgyh4BotJzttk+axzAiEAwIpz5E74A0Dj/wwTh1XGEuKLP0wr/QnltuvFXeKFA7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@2.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65503},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"59cd9c5c4ed44892a54a5ebfb364d33859887320","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest --typecheck --run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.11.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.9.0_1777386911177_0.8549940546146981","host":"s3://npm-registry-packages-npm-production"}},"2.9.1":{"name":"better-result","version":"2.9.1","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.9.1","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"02a972f29a8633e04d82660737fcf86acd595d87","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.9.1.tgz","fileCount":5,"integrity":"sha512-tPWnUPD8oLESRXMykkuTvi9tJVwaFSVfdhp1/WRd1q04SqengKdYt27avogObRC/BgH+zDqSo713dUEKkXbG5w==","signatures":[{"sig":"MEUCIHYfJqJetK1HfW9muBCot4w8+VJZlvZe/b5G4ajqC7Y8AiEA6gBIVcL0AASR9HFhkEbcmsI/3jvVnh5dQafqGQxGvc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@2.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68610},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"163e3ade8161019498e1ba4ad7453ebb002fd5d7","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest --typecheck --run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.11.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.9.1_1777656364217_0.2850856897502043","host":"s3://npm-registry-packages-npm-production"}},"2.9.2":{"name":"better-result","version":"2.9.2","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.9.2","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"34da6e0e352bd44e4252acb88e2a4a35ec4c335e","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.9.2.tgz","fileCount":7,"integrity":"sha512-WIFoBPCdnTOdk9inkE1ZRvCZ4P0CpSkAiLlchC65N7n9DcjZ3NhqkBOlafzpOVnO8ixyi37kicmSJ3ENhPZl7Q==","signatures":[{"sig":"MEUCIQDwCaDsEg1jNjidfz2Z1CHXXq/Is/aHZQgi160nBBrGzwIgBfLnoVjMp6mpP4fu2gpBDJwb3euRmUU5lrZX4FIlx+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@2.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":171176},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"1b3c7ec4c897c6e4778e4436f3c2810bb27351ec","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest --typecheck --run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.11.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.9.2_1777898851940_0.9641219664689302","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"better-result","version":"2.10.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@2.10.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"ae7e699b9c860574b464f0373ea3fa790874ab3d","tarball":"https://registry.npmjs.org/better-result/-/better-result-2.10.0.tgz","fileCount":7,"integrity":"sha512-oQhh0y1qo2/ZKdAAEvHZAqKKiHOFU5k/bW96fE2ScgQOVkJRiHwB+nOS1SgFsYqRlxMDWvefXi9Q3px7QvgNDw==","signatures":[{"sig":"MEUCIAyYAwwJboR5iiMztDme5rhg+I0zr8Kba1zZOMr0eAqTAiEA1nA9jmjgSLLOTstgoMOuRWvOGQB68r+hUqR6wM0RFc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@2.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172869},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"0d1d792f4e409cf08cbee1a10a64ec951636577f","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest --typecheck --run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_2.10.0_1784227813407_0.1404064250667849","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.1":{"name":"better-result","version":"3.0.0-rc.1","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@3.0.0-rc.1","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"c1ca01f70dd8e7dfa843c25c6623aa152aaf5ebd","tarball":"https://registry.npmjs.org/better-result/-/better-result-3.0.0-rc.1.tgz","fileCount":7,"integrity":"sha512-LGGuip63t2CbqjrwVvUjaczBajfNVQ6cMrFreoQRYfjTLuVwGH3zjAVkDTAhc4Y+RyCftyePURA+vDqqnHo2sw==","signatures":[{"sig":"MEYCIQD6qARY7mZDCRgFu/DnG4D3ARLr5ORru6jtfyXnIF5atAIhAKlQ3ByNx0aURFi6OYm1nASJ59tqNzOy6zFv7inJ5Rsb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGA6ydtUVnjiFW0dz8GrVJjQw5dLiPA+JR4uyke2bm7+AiBtPDfdjztcGVc3sahOdroFHBrIWOvbEoAjwSMCGKAw9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@3.0.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":240322},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"288e190b97c7391345ddc4efd7d0246fb183c1af","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest --typecheck --run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","fast-check":"^4.9.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_3.0.0-rc.1_1785339859747_0.0520187562792509","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.2":{"name":"better-result","version":"3.0.0-rc.2","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@3.0.0-rc.2","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"206cfba0dd9b66a46c043e5f604603cbb9a61b17","tarball":"https://registry.npmjs.org/better-result/-/better-result-3.0.0-rc.2.tgz","fileCount":7,"integrity":"sha512-Rk7XKO4jXm/EfoKFHJUQ5/Vxp24T54VGcK2hE/ak+KUsEuDevZW/z0oAWDti8gAdvO6beiMozW0NcszFhO+sNQ==","signatures":[{"sig":"MEQCIGMKWE6oAKFInrJQmjPo3Fji+fxjY/ygT18naf6X5d1wAiB1HKn2zzHhIcHbQPOcdYzz09tqmo7qlYR1VRIukzy4rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBO8j5JnLRn0I1zWhD7VqsBlfm9HpHOMS52aFs61us+bAiEA8gIdt/gFGyZRnZjLc6o1WcAvOm4zCm1gKv7CsXbeX4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@3.0.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":240848},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"14f28f270407ef2ae7786c086f7dae8ae91d88e7","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","fast-check":"^4.9.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_3.0.0-rc.2_1785420572512_0.7974969640028124","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.3":{"name":"better-result","version":"3.0.0-rc.3","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@3.0.0-rc.3","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"8ba31d983cca5f546fb00dc22dc8a4312225a2a2","tarball":"https://registry.npmjs.org/better-result/-/better-result-3.0.0-rc.3.tgz","fileCount":7,"integrity":"sha512-PFOoNL0C01k50FcRqD9cYX2D81v0XHB4xmZQjUGej6U4g0qWOxi9kdGrjBumOq1xlrQKdgNTzoeaIAfXQy5xRA==","signatures":[{"sig":"MEUCIQCMIuBo6pOiyoz4lgdWToTzt/Nn6LXrgzEFOu4bbr9NJgIgMWdFpmLhNB7s2s/yPiULtHu8WGnf+A1UOR/3dPdcl+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCBYj1EisE7p0KKCIN3qCcujV2kCrz82zhE12fI8TEqugIgM05EZDYeWncDuVG/BxoMxySxKD8kkYDGyaX8UBjIf6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@3.0.0-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":240848},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"02167142774faea815e21569ae51f736ddfb209c","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","fast-check":"^4.9.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_3.0.0-rc.3_1785422565360_0.08818289470384433","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.4":{"name":"better-result","version":"3.0.0-rc.4","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@3.0.0-rc.4","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"e8a81b46d8abe3b7f2c222c7ecb62a2df06a5d86","tarball":"https://registry.npmjs.org/better-result/-/better-result-3.0.0-rc.4.tgz","fileCount":7,"integrity":"sha512-6tGy8iOqQ7kR2l5LPV3DP7lG2EfugadITz6VHKQTecXSohCCPnfHVT7rZ982y5btvpsv+FMu4fZyWjqqn46DJw==","signatures":[{"sig":"MEQCIDlwblrt9Eb8KVyg2vztPKZf/dhbOEA5VW3NToA+BYrzAiABui28WvdvhUmBNT+FO2P/vYWY1flGOxEQWt6gU/FQpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDjm6y3W/tgsBjk3+CjvKu10eISDay/p2U5g40AxKb0nAIgEeN1GsNT2q0VU7YNtpI2RqBmagVMDwryFoocJgfzz5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@3.0.0-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":245292},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"dde13b759c246611408bc0ede0ba67ae2babc59d","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","fast-check":"^4.9.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_3.0.0-rc.4_1785426875223_0.6576906117651788","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.5":{"name":"better-result","version":"3.0.0-rc.5","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@3.0.0-rc.5","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"e4c32765232b209db7ca3888d4273b96d8c34703","tarball":"https://registry.npmjs.org/better-result/-/better-result-3.0.0-rc.5.tgz","fileCount":7,"integrity":"sha512-31E7QznE1NqOw4fYKGwz9QEDZQ7HfEeIEz7rBOtUWn0A14/EtQdFehoNtsYES3aT0UjqwTbH2afC1z2W2DLpBw==","signatures":[{"sig":"MEQCIA+FKkyQ92TjCZIoUv+as4/agDm//4gGnKkahp4Qfp2WAiAlexSnZ40nH6plxxZ2qZ/orN7DyIhJc+UI0a3iSK4syg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC96NPVvOpPNTkYVcu4LSU/Xcnc1mo9NWmQyK1U0XLxyAIgSuwRf0dqc/cI6A7LkVK/LXrbbwK8+DGJQGACQpie5ps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@3.0.0-rc.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":250604},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"a4843617c797604462cebfbba25cff005397ebf7","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","test:watch":"vitest","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight Result type with generator-based composition","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","fast-check":"^4.9.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_3.0.0-rc.5_1785615360400_0.5040399221659762","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"better-result","version":"3.0.0","keywords":["error-handling","functional","generator","result","typescript"],"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","_id":"better-result@3.0.0","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"homepage":"https://better-result.dev","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"fdfc5f0c9a005ff7540d2e2dcf45e311edc57387","tarball":"https://registry.npmjs.org/better-result/-/better-result-3.0.0.tgz","fileCount":7,"integrity":"sha512-6aAtXzewlQYw6BrlKL164xDAsVJ+z2Au3Bwik27tXQBNs3OP3MDVDHznb8ovbqA3jtYxTWbchBikb/K3MjevZA==","signatures":[{"sig":"MEUCIQDK9LeKaHc+fgNEi0/R4tCvk4VIt+9K8ekoJy5t/pGEuwIgSSj7VbR18iUI16yfBLpBxyxkMGy7WVw/KEiV8Kr32ZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCBsv/IAV5gXCzPFQKOy3qDDs++7tJbbKFWKM1B3U99xgIgc54AvZNbu+jlPtse6OYTVAaVP3W4xiCRhzBoDYfC93U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":252269},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"fe6f288ffb728e3ebe69630d737177cd3ae8f8bd","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","test:watch":"vitest","prepublishOnly":"bun run build","check:typescript-minimum":"bun x --yes --package typescript@5.4.5 tsc -p tsconfig.typescript-minimum.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight Result type with generator-based composition","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","fast-check":"^4.9.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/better-result_3.0.0_1785620129939_0.8348267280965698","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"_id":"better-result@3.0.1","bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"dist":{"shasum":"69ee8a5a9cafaf910a863886bea7c457ab480cf7","tarball":"https://registry.npmjs.org/better-result/-/better-result-3.0.1.tgz","fileCount":7,"integrity":"sha512-rnCeqEXkKPHmz5MO5ZroPRDyHe4YvlNPyy7qj8cVcWs/GnvSvC3086G74/220W+wWcIWlXgzvcjskFV0A4blUQ==","signatures":[{"sig":"MEUCICXRkRNRcMGaMJ4Ce3JeTiKUsy+sN/Cvlbt4zBcMR/lUAiEA1Bp2pvEf/xFHcZqv7trX5KNA6zuj13luWfxf3TQvF3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEK1jsstarvcW/UXI7QcugS4nAP3HYpwiFWM/IMn7K8qAiEAwD1UMbX/zv02CsfgdFd5+uVnxNqkK8oHlViEjmJKlps="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/better-result@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":269124},"main":"./dist/index.mjs","name":"better-result","type":"module","types":"./dist/index.d.mts","author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"gitHead":"75d0b10654370597d4cad103c5c825d5acd7d3e1","license":"MIT","scripts":{"fmt":"oxfmt .","lint":"oxlint .","test":"vitest run","build":"tsdown","check":"tsc --noEmit","fmt:check":"oxfmt --check .","test:watch":"vitest","prepublishOnly":"bun run build","check:typescript-minimum":"bun x --yes --package typescript@5.4.5 tsc -p tsconfig.typescript-minimum.json"},"version":"3.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1f306463-1150-4e92-b6c5-451ee5e5eaf7"}},"homepage":"https://better-result.dev","keywords":["error-handling","functional","generator","result","typescript"],"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight Result type with generator-based composition","directories":{},"maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.23.0","oxlint":"^1.38.0","tsdown":"^0.19.0-beta.5","vitest":"3.2.4","@types/bun":"latest","fast-check":"^4.9.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/better-result_3.0.1_1786454405581_0.004845286288963635"}}},"time":{"created":"2026-01-09T15:31:30.782Z","modified":"2026-08-11T13:20:06.077Z","1.0.0":"2026-01-09T15:31:30.912Z","1.0.1":"2026-01-14T05:46:20.565Z","2.0.0":"2026-01-15T02:45:23.205Z","2.1.0":"2026-01-15T23:24:23.876Z","2.2.0":"2026-01-17T17:03:11.635Z","2.3.0":"2026-01-17T17:08:33.049Z","2.3.1":"2026-01-19T02:19:59.375Z","2.4.0":"2026-01-20T01:50:40.671Z","2.5.0":"2026-01-21T13:33:53.029Z","2.5.1":"2026-01-22T03:15:10.710Z","2.5.2":"2026-01-25T20:19:41.299Z","2.6.0":"2026-01-28T13:05:08.246Z","2.7.0":"2026-01-31T19:12:08.708Z","2.8.0":"2026-04-06T01:05:17.576Z","2.8.1":"2026-04-06T12:43:30.465Z","2.8.2":"2026-04-08T18:45:37.259Z","2.9.0":"2026-04-28T14:35:11.314Z","2.9.1":"2026-05-01T17:26:04.361Z","2.9.2":"2026-05-04T12:47:32.138Z","2.10.0":"2026-07-16T18:50:13.545Z","3.0.0-rc.1":"2026-07-29T15:44:19.819Z","3.0.0-rc.2":"2026-07-30T14:09:32.600Z","3.0.0-rc.3":"2026-07-30T14:42:45.432Z","3.0.0-rc.4":"2026-07-30T15:54:35.304Z","3.0.0-rc.5":"2026-08-01T20:16:00.485Z","3.0.0":"2026-08-01T21:35:30.036Z","3.0.1":"2026-08-11T13:20:05.682Z"},"bugs":{"url":"https://github.com/dmmulroy/better-result/issues"},"author":{"url":"https://github.com/dmmulroy","name":"Dillon Mulroy","email":"dillon.mulroy@gmail.com"},"license":"MIT","homepage":"https://better-result.dev","keywords":["error-handling","functional","generator","result","typescript"],"repository":{"url":"git+https://github.com/dmmulroy/better-result.git","type":"git"},"description":"Lightweight Result type with generator-based composition","maintainers":[{"name":"dmmulroy","email":"dillon.mulroy@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://better-result.dev/logo.svg\" alt=\"better-result logo\" width=\"112\" height=\"112\" />\n</p>\n\n<h1 align=\"center\">better-result</h1>\n\n<p align=\"center\">Lightweight Result type for TypeScript with generator-based composition.</p>\n\n<p align=\"center\">\n  <a href=\"https://better-result.dev\">Documentation</a> ·\n  <a href=\"https://better-result.dev/getting-started/quickstart\">Quickstart</a> ·\n  <a href=\"https://better-result.dev/reference/result\">API reference</a> ·\n  <a href=\"https://better-result.dev/migration/from-2\">Migrate from 2.x</a>\n</p>\n\n- **Make failures explicit:** TypeScript shows what a function returns when it succeeds and what can go wrong.\n- **Write multi-step workflows in order:** `yield*` passes successful values to the next step and stops on the first failure.\n- **Keep expected failures separate from bugs:** handle expected failures as normal return values; unexpected exceptions still throw.\n\n```ts\nimport { Result, TaggedError } from \"better-result\";\n\nclass InvalidPort extends TaggedError(\"InvalidPort\")<{\n  input: string;\n  message: string;\n}> {}\n\nconst parsePort = (input: string) => {\n  const port = Number(input);\n  return Number.isInteger(port) && port > 0 && port <= 65_535\n    ? Result.ok(port)\n    : Result.err(new InvalidPort({ input, message: \"Expected a port from 1 to 65535\" }));\n};\n\nconst message = parsePort(process.env.PORT ?? \"3000\")\n  .map((port) => `http://localhost:${port}`)\n  .match({\n    ok: (address) => `Listening at ${address}`,\n    err: (error) => `Invalid configuration: ${error.message}`,\n  });\n```\n\n`parsePort` returns `Result<number, InvalidPort>`. Callers cannot use the port until they handle the failure.\n\n## Install\n\n```sh\nnpm install better-result\n```\n\n```sh\npnpm add better-result\n# or: bun add better-result\n```\n\nbetter-result requires TypeScript 5.4 or newer, is ESM-only, and has zero runtime dependencies.\n\n## Contents\n\n- [Mental model](#mental-model)\n- [Build a typed workflow](#build-a-typed-workflow)\n- [Compose asynchronous workflows](#compose-asynchronous-workflows)\n- [Transform and compose Results](#transform-and-compose-results)\n- [Recover from errors](#recover-from-errors)\n- [Observe without changing a Result](#observe-without-changing-a-result)\n- [Extract a value](#extract-a-value)\n- [Retry asynchronous operations](#retry-asynchronous-operations)\n- [Work with collections](#work-with-collections)\n- [Validate transport boundaries](#validate-transport-boundaries)\n- [Panic and defects](#panic-and-defects)\n- [API map](#api-map)\n- [Migrate from 2.x](#migrate-from-2x)\n- [Agents and AI](#agents-and-ai)\n\n## Mental model\n\nA `Result<T, E>` is either a successful `Ok<T>` or an expected failure `Err<E>`:\n\n```ts\ntype Result<T, E> = Ok<T, E> | Err<T, E>;\n```\n\nBoth variants have a serializable discriminant:\n\n```ts\nif (userResult.status === \"ok\") {\n  renderUser(userResult.value); // User\n} else {\n  reportUserError(userResult.error); // FindUserError\n}\n```\n\nStatic and instance guards are also available:\n\n```ts\nif (Result.isOk(userResult)) {\n  renderUser(userResult.value);\n}\n\nif (userResult.isErr()) {\n  reportUserError(userResult.error);\n}\n```\n\nUse `Err` when the caller can make a meaningful decision about a failure:\n\n- input is invalid;\n- a record is missing;\n- credentials are rejected;\n- an upstream service is unavailable;\n- data crossing a transport boundary fails validation.\n\nUnexpected callback failures and broken invariants are defects. better-result represents those with `Panic` instead of silently widening a typed error union with `unknown`.\n\nA useful Result boundary has a caller that can act on the error. Parsers, repositories, adapters, domain operations, and application workflows are good candidates. Pure, total helpers usually are not.\n\n## Build a typed workflow\n\nThis checkout workflow shows the normal path: define errors, return Results, compose operations, and handle the complete error union.\n\n### Define errors callers can distinguish\n\n`TaggedError` creates real `Error` subclasses with a literal `_tag` and typed properties:\n\n```ts\nimport { Result, TaggedError, type Result as ResultType } from \"better-result\";\n\nclass CartNotFound extends TaggedError(\"CartNotFound\")<{\n  cartId: string;\n  message: string;\n}> {}\n\nclass EmptyCart extends TaggedError(\"EmptyCart\")<{\n  cartId: string;\n  message: string;\n}> {}\n\nclass OutOfStock extends TaggedError(\"OutOfStock\")<{\n  sku: string;\n  message: string;\n}> {}\n\nclass PaymentDeclined extends TaggedError(\"PaymentDeclined\")<{\n  reason: string;\n  message: string;\n}> {}\n```\n\nTagged errors include normal `Error` behavior, readonly payload properties, `.toJSON()`, a class-level `.is()` guard, exhaustive `.match()`, and generator support.\n\n```ts\nconst error = new CartNotFound({\n  cartId: \"cart_123\",\n  message: \"Cart cart_123 was not found\",\n});\n\nif (CartNotFound.is(error)) {\n  console.log(error.cartId);\n}\n```\n\n### Return Results from fallible operations\n\n```ts\ntype Cart = {\n  id: string;\n  items: ReadonlyArray<{ sku: string; quantity: number }>;\n};\n\nconst carts = new Map<string, Cart>();\n\nconst findCart = (cartId: string): ResultType<Cart, CartNotFound> => {\n  const cart = carts.get(cartId);\n  return cart === undefined\n    ? Result.err(new CartNotFound({ cartId, message: \"Cart not found\" }))\n    : Result.ok(cart);\n};\n```\n\nThe error type is part of the function's contract. A caller must propagate, recover from, or handle `CartNotFound`.\n\n### Compose linearly with `Result.gen`\n\nAssume the application also provides these Result-returning operations:\n\n```ts\nreserveStock(cart.items); // Result<StockReservation, OutOfStock>\nchargePayment(cart, reservation); // Result<Receipt, PaymentDeclined>\n```\n\n`Result.gen` composes them without nested callbacks or manual early returns:\n\n```ts\nconst checkout = (cartId: string) =>\n  Result.gen(function* () {\n    const cart = yield* findCart(cartId);\n\n    if (cart.items.length === 0) {\n      yield* new EmptyCart({ cartId, message: \"Cannot check out an empty cart\" });\n    }\n\n    const reservation = yield* reserveStock(cart.items);\n    const receipt = yield* chargePayment(cart, reservation);\n\n    return Result.ok(receipt);\n  });\n// Result<Receipt, CartNotFound | EmptyCart | OutOfStock | PaymentDeclined>\n```\n\nEvery `Ok` is unwrapped. The first `Err` short-circuits the generator. Errors from all yielded Results are collected into the final union.\n\nA tagged error can be yielded directly for a guard clause. This is equivalent to `yield* Result.err(new EmptyCart(...))`; it returns an `Err` and does not throw.\n\n### Handle the complete error union\n\nUse `Result.match` to handle success versus failure, then match the tagged error union:\n\n```ts\nconst response = checkout(cartId).match({\n  ok: (receipt) => Response.json(receipt, { status: 201 }),\n  err: (error) =>\n    error.match({\n      CartNotFound: () => Response.json({ message: \"Cart not found\" }, { status: 404 }),\n      EmptyCart: () => Response.json({ message: \"Cart is empty\" }, { status: 400 }),\n      OutOfStock: (error) =>\n        Response.json({ message: `Out of stock: ${error.sku}` }, { status: 409 }),\n      PaymentDeclined: () => Response.json({ message: \"Payment declined\" }, { status: 402 }),\n    }),\n});\n```\n\nAdding another tagged error to `checkout` makes this exhaustive handler fail to type-check until the new policy is defined.\n\nUse [`matchError`](https://better-result.dev/errors/matching-errors) when errors are structurally tagged or when data-last composition is more convenient. Use `matchErrorPartial` when selected variants should be transformed and unhandled variants should pass through.\n\n## Compose asynchronous workflows\n\nPrefer `Result.gen` with `Result.await` for multi-step asynchronous workflows. It keeps intermediate values local, short-circuits on the first `Err`, and preserves every yielded error type:\n\n```ts\nconst dashboard = await Result.gen(async function* () {\n  const session = yield* Result.await(readSession());\n  const user = yield* Result.await(fetchUser(session.userId));\n  const posts = yield* Result.await(fetchPosts(user.id));\n\n  return Result.ok({ user, posts });\n});\n// Result<Dashboard, SessionExpired | UserNotFound | FetchPostsFailed>\n```\n\n`Result.await` provides the async iterator protocol needed by the generator while preserving the Promise's Result types.\n\nFor a short pipeline, chain the Promise with static, data-last combinators from the `Result` namespace:\n\n```ts\nconst postCount = await fetchUser(userId)\n  .then(Result.andThenAsync((user: User) => fetchPosts(user.id)))\n  .then(Result.map((posts: ReadonlyArray<Post>) => posts.length));\n// Result<number, UserNotFound | FetchPostsFailed>\n```\n\n`Promise.then` unwraps each outer Promise. `Result.andThenAsync` runs `fetchPosts` only for `Ok`, and `Result.map` transforms the eventual success while both errors remain visible.\n\nUse this order of preference for asynchronous Result code:\n\n1. `Result.gen` with `Result.await` for workflows with several steps or intermediate values;\n2. `.then(Result.andThenAsync(...))` and other static combinators for short Promise pipelines;\n3. await a `Promise<Result>` first only when ordinary control-flow narrowing is clearer than composition.\n\n`Result.gen` closes a short-circuited generator, so `finally`, `Symbol.dispose`, and `Symbol.asyncDispose` cleanup can run. See [Generator composition](https://better-result.dev/core/generator-composition) for cleanup and defect behavior.\n\n## Transform and compose Results\n\nUse each operation on the branch it owns:\n\n| Operation          | Runs on         | Purpose                                          |\n| ------------------ | --------------- | ------------------------------------------------ |\n| `map`              | `Ok`            | Transform a success value                        |\n| `mapError`         | `Err`           | Translate an error value                         |\n| `andThen`          | `Ok`            | Continue with another Result-returning operation |\n| `tryRecover`       | `Err`           | Recover from or replace an error                 |\n| `tap` / `tapError` | Selected branch | Observe without changing the Result              |\n| `match`            | Both            | Leave the Result abstraction with one output     |\n\nFor example, a profile workflow can keep its errors visible while changing the success value:\n\n```ts\nconst displayName = findUser(userId)\n  .map((user) => user.profile)\n  .andThen(validateUserProfile)\n  .map((profile) => profile.displayName)\n  .mapError((cause) => new LoadProfileFailed({ cause, message: \"Could not load user profile\" }));\n// Result<string, LoadProfileFailed>\n```\n\n`andThen` unions errors when the next operation introduces another failure type:\n\n```ts\nconst greeting = findUser(userId).andThen((user) => loadGreeting(user.locale));\n// Result<Greeting, UserNotFound | GreetingLoadFailed>\n```\n\nCombinators are available as instance methods and as static data-first or data-last functions:\n\n```ts\nconst upperName = Result.map(userResult, (user) => user.name.toUpperCase());\n\nconst getUpperName = Result.map((user: User) => user.name.toUpperCase());\nconst pipedName = getUpperName(userResult);\n```\n\nSee [Transforming and chaining](https://better-result.dev/core/transforming-and-chaining) for the complete sync and async contracts.\n\n## Recover from errors\n\nRecovery is different from error transformation: the callback returns another Result and may produce a usable success value.\n\nA cache fallback can recover from a network failure while preserving all other variants:\n\n```ts\nconst user = await fetchUser(userId).then(\n  Result.tryRecoverAsync(async (error: FetchUserError) =>\n    error._tag === \"NetworkUnavailable\" ? await readCachedUser(userId) : Result.err(error),\n  ),\n);\n// Result<User, UserNotFound | CacheMiss>\n```\n\nRecovery may widen the success type when the fallback returns a different value:\n\n```ts\nconst userOrGuest = findUser(userId).tryRecover((error) =>\n  UserNotFound.is(error) ? Result.ok(guestUser) : Result.err(error),\n);\n// Result<User | GuestUser, DatabaseUnavailable>\n```\n\nUse `tryRecoverAsync` when recovery itself is asynchronous.\n\n## Observe without changing a Result\n\nObservation methods are useful for logging, metrics, and tracing. They always preserve the original Result.\n\n```ts\nconst tracedUser = await fetchUser(userId).then(\n  Result.tapBothAsync({\n    ok: (user: User) => trace(\"user.loaded\", { userId: user.id }),\n    err: (error: FetchUserError) => trace(\"user.load_failed\", { tag: error._tag }),\n  }),\n);\n```\n\nThe complete family is:\n\n- `tap` and `tapAsync` observe `Ok`;\n- `tapError` and `tapErrorAsync` observe `Err`;\n- `tapBoth` and `tapBothAsync` select an observer for either branch.\n\n```ts\nconst result = parseConfiguration(input)\n  .tap((configuration) => console.info(\"Configuration loaded\", configuration))\n  .tapError((error) => console.error(\"Configuration rejected\", error));\n```\n\nA throwing or rejected observer is a defect and becomes `Panic`.\n\n## Extract a value\n\nPrefer `match` when both branches require explicit policy:\n\n```ts\nconst response = userResult.match({\n  ok: (user) => Response.json(user, { status: 200 }),\n  err: (error) => toUserErrorResponse(error),\n});\n```\n\nUse `unwrapOr` when a fallback is the complete error policy:\n\n```ts\nconst port = parsePort(process.env.PORT ?? \"\").unwrapOr(3000);\n```\n\nStatic data-first and data-last forms are also available:\n\n```ts\nResult.unwrapOr(parsePort(input), 3000);\nResult.unwrapOr(3000)(parsePort(input));\n```\n\nUse `unwrap` only to assert that `Err` would prove a broken invariant:\n\n```ts\nconst configuration = loadStartupConfiguration().unwrap(\"Startup configuration must be valid\");\n```\n\nOn `Err`, `unwrap` throws `Panic` and preserves the error value as its cause. It is not a substitute for handling routine failures.\n\nSee [Extracting values](https://better-result.dev/core/extracting-values) for the full contract.\n\n## Retry asynchronous operations\n\n`Result.tryPromise` captures Promise rejection. The object form translates unknown rejection values into a typed error:\n\n```ts\nclass NetworkError extends TaggedError(\"NetworkError\")<{\n  cause: unknown;\n  url: string;\n  retryable: boolean;\n  message: string;\n}> {}\n\nconst controller = new AbortController();\n\nconst responseResultPromise = Result.tryPromise(\n  {\n    try: ({ signal }) => fetch(url, { signal }),\n    catch: (cause) =>\n      new NetworkError({\n        cause,\n        url,\n        retryable: cause instanceof TypeError,\n        message: \"Network request failed\",\n      }),\n  },\n  {\n    signal: controller.signal,\n    retry: {\n      times: 3,\n      delayMs: 100,\n      backoff: \"exponential\",\n      jitter: true,\n      shouldRetry: (error) => error.retryable,\n    },\n  },\n);\n```\n\n`times` is the maximum number of retries after the initial attempt. Retry scheduling is bounded, and the top-level signal interrupts pending delays.\n\n`Result.tryPromise` cannot cancel an operation by itself. Forward its signal to cancellation-aware operations, as the example does with `fetch`.\n\nA fulfilled HTTP error response does not reject. Handle HTTP status explicitly:\n\n```ts\nclass HttpResponseError extends TaggedError(\"HttpResponseError\")<{\n  status: number;\n  url: string;\n  message: string;\n}> {}\n\nconst successfulResponse = await responseResultPromise.then(\n  Result.andThen((response: Response) =>\n    response.ok\n      ? Result.ok(response)\n      : Result.err(\n          new HttpResponseError({\n            status: response.status,\n            url: response.url,\n            message: `Request failed with status ${response.status}`,\n          }),\n        ),\n  ),\n);\n// Result<Response, NetworkError | HttpResponseError>\n```\n\nRetry policies also support attempt context, constant and linear backoff, dynamic error-dependent delays, and configurable jitter. See [Async operations and retries](https://better-result.dev/core/async-and-retries) for exact semantics.\n\n## Work with collections\n\nUse `Result.all` when every operation must succeed:\n\n```ts\nconst accountContext = Result.all([\n  loadCachedUser(userId),\n  loadCachedTeam(teamId),\n  loadCachedPlan(accountId),\n] as const);\n// Result<[User, Team, Plan], UserLoadError | TeamLoadError | PlanLoadError>\n```\n\n`Result.allAsync` awaits inputs concurrently, then returns all successes or the first input-order error:\n\n```ts\nconst accountContext = await Result.allAsync([\n  fetchUser(userId),\n  fetchTeam(teamId),\n  fetchPlan(accountId),\n] as const);\n```\n\nUse `Result.partition` when every item should be processed:\n\n```ts\nconst validationResults = importRows.map(validateImportRow);\nconst [validRows, invalidRowErrors] = Result.partition(validationResults);\n```\n\n`partition` preserves the relative order of every success and error instead of short-circuiting. `partitionAsync` provides the concurrent asynchronous form.\n\nUse `Result.flatten` when a nested Result already exists:\n\n```ts\nconst flattened = Result.flatten(nestedUserResult);\n// Result<User, ParseUserError | LoadUserError>\n```\n\nSee [Collections](https://better-result.dev/core/collections) for tuple inference, ordering, and rejected-Promise behavior.\n\n## Validate transport boundaries\n\n`Result.codec` validates and transforms Result values crossing RPC, persistence, queue, or server-action boundaries. It accepts any [Standard Schema](https://standardschema.dev/)-compatible schema library.\n\nPass four named, boundary-owned schemas to the codec. Keep validation and domain/wire mapping inside those schemas rather than defining it inline in `Result.codec`:\n\n```ts\nimport { Result, ResultDeserializationError, ResultSerializationError } from \"better-result\";\n\nconst UserResultCodec = Result.codec({\n  serialize: {\n    ok: UserToWireSchema,\n    err: DomainErrorToWireSchema,\n  },\n  deserialize: {\n    ok: UserFromWireSchema,\n    err: DomainErrorFromWireSchema,\n  },\n});\n```\n\nSerialize a Result into a validated plain-object envelope:\n\n```ts\nconst encoded = await UserResultCodec.serialize(Result.ok(user));\n// Result<SerializedResult<UserWire, ErrorWire>, ResultSerializationError>\n\nif (Result.isError(encoded) && ResultSerializationError.is(encoded.error)) {\n  console.error(\"Could not serialize user Result\", encoded.error.issues);\n}\n```\n\nDeserialize untrusted input back into validated domain values:\n\n```ts\nconst decoded = await UserResultCodec.deserialize(inputFromNetwork);\n// Result<User, DomainError | ResultDeserializationError>\n\nif (Result.isError(decoded) && ResultDeserializationError.is(decoded.error)) {\n  console.error(\"Invalid serialized Result\", decoded.error.issues);\n}\n```\n\nWhen you own both producer and consumer and version their schemas together, the unsafe variants are often the simpler choice. In that setting, a codec validation error usually means the shared contract is broken rather than an expected failure. The unsafe methods remove the codec-error handling layer and its associated unwrapping or translation boilerplate:\n\n```ts\nconst envelope = await UserResultCodec.serializeUnsafe(Result.ok(user));\n// SerializedResult<UserWire, ErrorWire>\n\nconst decoded = await UserResultCodec.deserializeUnsafe(inputFromNetwork);\n// Result<User, DomainError>\n```\n\n`serializeUnsafe` panics when serialization returns `ResultSerializationError`. `deserializeUnsafe` panics only when validation returns `ResultDeserializationError`; a valid serialized Err remains a decoded domain Err. Both methods preserve the selected schema's synchronous or asynchronous behavior. Prefer the safe methods for public, independently versioned, persisted, or otherwise untrusted boundaries where contract mismatch is an expected condition.\n\nThe codec validates the outer `{ status, value | error }` envelope and the selected payload. In-memory and wire types can differ in both directions. A schema issue returns `ResultSerializationError` or `ResultDeserializationError`; a schema that throws or rejects is a defect and produces `Panic`.\n\nSee [Result codecs](https://better-result.dev/serialization/result-codecs) for mixed synchronous/asynchronous schemas and exact return-type inference.\n\n## Panic and defects\n\n`Err` represents an expected failure in the function's contract. `Panic` represents a defect that ordinary callers should not recover from.\n\nIf a user callback unexpectedly throws, better-result throws `Panic` rather than adding `unknown` to the Result's error type:\n\n```ts\nResult.ok(user).map(() => {\n  throw new Error(\"Broken user invariant\");\n});\n// throws Panic\n```\n\nThis protection applies to transforms, chaining, matching, recovery, observers, generators, custom catch handlers, and codec validation.\n\nCatch `Panic` at reporting or supervision boundaries:\n\n```ts\nimport { Panic } from \"better-result\";\n\ntry {\n  runApplication();\n} catch (error) {\n  if (Panic.is(error)) {\n    reportDefect(error.message, error.cause);\n  }\n}\n```\n\n`isPanic(error)` and `error instanceof Panic` are also supported. `Panic.cause` preserves the original thrown value.\n\nSee [Panic and defects](https://better-result.dev/errors/panic-and-defects) for callback boundaries, generator cleanup, and reporting behavior.\n\n## API map\n\nThe [complete API reference](https://better-result.dev/reference/result) is the source of truth for signatures and overloads.\n\n| Intent                 | APIs                                                                                                        |\n| ---------------------- | ----------------------------------------------------------------------------------------------------------- |\n| Create                 | `Result.ok`, `Result.err`, `Result.try`, `Result.tryPromise`                                                |\n| Narrow and handle      | `Result.isOk`, `Result.isError`, `match`, `unwrapOr`, `unwrap`                                              |\n| Transform and compose  | `map`, `mapError`, `andThen`, `andThenAsync`, `tryRecover`, `tryRecoverAsync`, `Result.gen`, `Result.await` |\n| Observe                | `tap`, `tapAsync`, `tapError`, `tapErrorAsync`, `tapBoth`, `tapBothAsync`                                   |\n| Collect                | `Result.all`, `Result.allAsync`, `Result.partition`, `Result.partitionAsync`, `Result.flatten`              |\n| Typed errors           | `TaggedError`, `matchError`, `matchErrorPartial`, `isTaggedError`                                           |\n| Boundaries and defects | `Result.codec`, `serializeUnsafe`, `deserializeUnsafe`, `Panic`, `panic`, `isPanic`, `UnhandledException`   |\n\n### Public types\n\n| Type                                | Purpose                                       |\n| ----------------------------------- | --------------------------------------------- |\n| `Result<T, E>`                      | Union of `Ok<T, E>` and `Err<T, E>`           |\n| `InferOk<R>`                        | Extract the success type from a Result        |\n| `InferErr<R>`                       | Extract the error type from a Result          |\n| `TryContext`                        | Synchronous attempt context                   |\n| `TryPromiseContext`                 | Asynchronous attempt and abort-signal context |\n| `ResultCodec` / `ResultCodecConfig` | Result codec contracts                        |\n| `SerializedResult<T, E>`            | Plain-object Result envelope                  |\n| `StandardSchemaV1`                  | Standard Schema-compatible validator contract |\n| `AnyTaggedError`                    | Any better-result tagged error instance       |\n\nSee [Ok and Err](https://better-result.dev/reference/ok-and-err), [exported types](https://better-result.dev/reference/exported-types), and [error APIs](https://better-result.dev/reference/errors) for detailed contracts.\n\n## Migrate from 2.x\n\nRead the full [2.x to 3.0 migration guide](https://better-result.dev/migration/from-2) before upgrading.\n\nThe most important breaking changes are:\n\n1. `TaggedError(\"Tag\")<Props>` no longer has a trailing factory call.\n2. `Result.serialize`, `Result.deserialize`, and `Result.hydrate` were replaced by schema-backed `Result.codec` boundaries.\n3. `match` is reserved on `TaggedError` instances.\n\n```ts\n// 2.x\nclass UserNotFound extends TaggedError(\"UserNotFound\")<{ userId: string; message: string }>() {}\n\n// 3.0\nclass UserNotFound extends TaggedError(\"UserNotFound\")<{ userId: string; message: string }> {}\n```\n\n3.0 also adds widening recovery, direct tagged-error matching, collection helpers, cancellation-aware retries, dynamic retry delays, and richer observation APIs.\n\n## Agents and AI\n\nThe portable [`adopt-better-result`](skills/adopt-better-result/SKILL.md) skill guides compatible coding agents through a repository-wide error-handling audit or one approved vertical migration slice.\n\nInstall it with skills.sh-compatible tooling:\n\n```sh\nnpx skills add dmmulroy/better-result@adopt-better-result\n```\n\nSee [`skills/README.md`](skills/README.md) for manual installation and usage.\n\n## Documentation\n\n- [Documentation home](https://better-result.dev)\n- [Mental model](https://better-result.dev/getting-started/mental-model)\n- [Application patterns](https://better-result.dev/guides/application-patterns)\n- [Testing Results](https://better-result.dev/guides/testing)\n- [API reference](https://better-result.dev/reference/result)\n- [Issue tracker](https://github.com/dmmulroy/better-result/issues)\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}