{"_id":"happy-rusty","_rev":"30-20f6b06a4242360feb0d1fe9f3038749","name":"happy-rusty","dist-tags":{"latest":"1.10.1"},"versions":{"1.0.0":{"name":"happy-rusty","version":"1.0.0","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"ef40c04624aead3222114aa61a0fd6d143f2eb74","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.0.tgz","fileCount":9,"integrity":"sha512-1fbJ3ivcpkCShuAoSrBL6z4DRKm1zfDubfVLgiqhw9XzjGcci/ibHmnYBz80ujofPskLP27cU9kiKKYRLDq6hQ==","signatures":[{"sig":"MEQCIEy2LLHJM1q0GKsXIoOb3v5apDdkDOPyHLa461h6dYLRAiALJfj83kbVDMBLqNorwFeI02idwr0GgpoMptWEs3RLsw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54002},"main":"dist/main.cjs","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"dbc14eba4a0daa1444504605362045e25917b830","scripts":{"lint":"npx eslint src/","test":"npx jest","build":"npx parcel build","check":"npx tsc --noEmit","clean":"npx rimraf .parcel-cache dist","watch":"npx parcel watch","prebuild":"npx rimraf dist","prepublishOnly":"npm run build"},"targets":{"main":{"isLibrary":true},"module":{"isLibrary":true}},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.5.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"_nodeVersion":"21.5.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","parcel":"^2.12.0","rimraf":"^5.0.5","ts-jest":"^29.1.2","typescript":"^5.4.5","@jest/globals":"^29.7.0","@parcel/packager-ts":"^2.12.0","@typescript-eslint/parser":"^7.7.1","@typescript-eslint/eslint-plugin":"^7.7.1","@parcel/transformer-typescript-types":"^2.12.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.0_1713973976635_0.7347289424585903","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"happy-rusty","version":"1.0.1","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.1","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"168b5bbbb25ffaf65b00e8538ba21e43e30910bc","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.1.tgz","fileCount":9,"integrity":"sha512-JU6t32+wZ4ir2QrU23KKulFtUwBK9aI3o+tjYHXr3NQqXAmt1MNw7540OLEX5ACzW6/r1l5xO9yPUrqwUBcVBQ==","signatures":[{"sig":"MEYCIQDXgadLaFQz4RivbbdDbaXGtSGhYNpJMg6PT5hgRrCcoAIhALjQAZbbOBWYvNTgZH3eGeYw7UnZLfnmTBKipZAR7DIO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":52739},"main":"dist/main.cjs","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"5264a10563846e503b60be3a2fedf5c42374ae92","scripts":{"lint":"npx eslint src/","test":"npx jest","build":"npx parcel build","check":"npx tsc --noEmit","clean":"npx rimraf .parcel-cache dist","watch":"npx parcel watch","prebuild":"npx rimraf dist","prepublishOnly":"npm run build"},"targets":{"main":{"isLibrary":true},"module":{"isLibrary":true}},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.5.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"21.5.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","parcel":"^2.12.0","rimraf":"^5.0.5","ts-jest":"^29.1.2","typescript":"^5.4.5","@jest/globals":"^29.7.0","@parcel/packager-ts":"^2.12.0","@typescript-eslint/parser":"^7.7.1","@typescript-eslint/eslint-plugin":"^7.7.1","@parcel/transformer-typescript-types":"^2.12.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.1_1714142647657_0.20873714397552834","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"happy-rusty","version":"1.0.2","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.2","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"2f79383a12386f1867f61d1b3008c37a3e3d92c6","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.2.tgz","fileCount":9,"integrity":"sha512-1zpdmkmBan4GTHHpgjOFDN3vVRDADvG2HsMz4Phg903XHhhufjLfPrRDeZazXe6Guff6LbzCAdFS2KafYe+3aA==","signatures":[{"sig":"MEUCIQDdIBS+eYQIRnN4PJ7Qk3j/OnS0IQSuaJHx/HNdsW4VvwIgdxxhT20cfCV83GK7MdOUI5Uclse5rLAbRz3u8vyB5zI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53640},"main":"./dist/main.cjs","types":"./dist/types.d.ts","module":"./dist/main.mjs","source":"./src/mod.ts","exports":"./src/mod.ts","gitHead":"bde72f45713853ad734e2565f54048c74b0da3b6","scripts":{"lint":"npx eslint src/","test":"npx jest","build":"npx parcel build","check":"npx tsc --noEmit","clean":"npx rimraf .parcel-cache dist","watch":"npx parcel watch","prebuild":"npx rimraf dist","prepublishOnly":"npm run build"},"targets":{"main":{"isLibrary":true},"module":{"isLibrary":true}},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.5.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"21.5.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","parcel":"^2.12.0","rimraf":"^5.0.5","ts-jest":"^29.1.2","typescript":"^5.4.5","@jest/globals":"^29.7.0","@parcel/packager-ts":"^2.12.0","@typescript-eslint/parser":"^7.7.1","@typescript-eslint/eslint-plugin":"^7.7.1","@parcel/transformer-typescript-types":"^2.12.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.2_1714148935650_0.3779921819400156","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"happy-rusty","version":"1.0.3","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.3","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"379a54b229ebc7248b0f5c889c01fccd6cd9de1f","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.3.tgz","fileCount":9,"integrity":"sha512-mYqBuUK6GZjbuqmbUnN/Nb+Y5cWgqVvUi2lf0mkMNH/PtJFGYwFKclskCzJFej5l+5aicsQd/W+Zeuj83Ln64g==","signatures":[{"sig":"MEUCIE42dbxm3s2m+p7pyJ6PBZ++RxbnhkYne3USDWqRBfZKAiEAoFbodMH18PrL7XcIiTZwzBmq1Xs5Msw2QL38RIPrT4E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54983},"main":"./dist/main.cjs","types":"./dist/types.d.ts","module":"./dist/main.mjs","source":"./src/mod.ts","exports":"./src/mod.ts","gitHead":"7f602e18c71b8c0d22f68899cb3ac10bfdd7c61e","scripts":{"lint":"npx eslint src/","test":"npx jest","build":"npx parcel build","check":"npx tsc --noEmit","clean":"npx rimraf .parcel-cache dist","watch":"npx parcel watch","prebuild":"npx rimraf dist","prepublishOnly":"npm run build"},"targets":{"main":{"isLibrary":true},"module":{"isLibrary":true}},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.5.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"21.5.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","parcel":"^2.12.0","rimraf":"^5.0.5","ts-jest":"^29.1.2","typescript":"^5.4.5","@jest/globals":"^29.7.0","@parcel/packager-ts":"^2.12.0","@typescript-eslint/parser":"^7.7.1","@typescript-eslint/eslint-plugin":"^7.7.1","@parcel/transformer-typescript-types":"^2.12.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.3_1714224019428_0.47224373343781756","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"happy-rusty","version":"1.0.4","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.4","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"e2ef19ca2063b2372624993c394a4e0b99e3c3b6","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.4.tgz","fileCount":13,"integrity":"sha512-WEsgf75Gge+YO1F1yJZqKYZRssprU0zBvQMyd7UQ7qjn3/hd6BQYpDjD7rr5fKVMN6KD9ttLnMa63uOhzsgKqg==","signatures":[{"sig":"MEUCIEXOhe7YKoJSB/r0aS3Au9Hl4unHQQQEGzdQ//6ynYq3AiEAx3WM+CYxv2RRNDKup4IclKs8hfGj165UUtfDCuw//hk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56412},"main":"./dist/main.cjs","types":"./dist/types.d.ts","module":"./dist/main.mjs","source":"./src/mod.ts","exports":"./src/mod.ts","gitHead":"3bcd5281b180dbf082cc2faa71e49b9e33780912","scripts":{"lint":"npx eslint src/","test":"bun test","build":"npx rollup --config rollup.config.mjs","check":"npx tsc --noEmit","prebuild":"npx rimraf dist && npm run check && npm run lint","prepublishOnly":"npm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.5.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"21.5.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^5.0.5","typescript":"^5.4.5","@jest/globals":"^29.7.0","rollup-plugin-dts":"^6.1.0","rollup-plugin-esbuild":"^6.1.1","@typescript-eslint/parser":"^7.7.1","@typescript-eslint/eslint-plugin":"^7.7.1"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.4_1714835709989_0.9372005583982996","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"happy-rusty","version":"1.0.5","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.5","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"e89a62340923694c0ec6b30320c27d6571cad5c8","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.5.tgz","fileCount":13,"integrity":"sha512-UasAiz+IN+ntg4hHiNlMvfvdLGB/i1EQQAXLS5ruDnX+SGBRTNqxjoughvHedRxr7jKKQD7h7mKKu4fD5urb9w==","signatures":[{"sig":"MEUCIQCo8+sOG54tZmYnDEMhhmI0xkaLx0UArbVTcB8zRWi8AwIgVNj8PIiV0sOnzFmTZR6A+mlb5C8kzAZEHbq9MgvUC9k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56477},"main":"./dist/main.cjs","types":"./dist/types.d.ts","module":"./dist/main.mjs","source":"./src/mod.ts","exports":"./src/mod.ts","gitHead":"2fcd2605c8928f6bfb27052c1f4c80779b4aab6b","scripts":{"lint":"npx eslint src/","test":"bun test","build":"npx rollup --config rollup.config.mjs","check":"npx tsc --noEmit","prebuild":"npx rimraf dist && npm run check && npm run lint","prepublishOnly":"npm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.5.0","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^5.0.5","rollup":"^4.17.2","typescript":"^5.4.5","@jest/globals":"^29.7.0","rollup-plugin-dts":"^6.1.0","rollup-plugin-esbuild":"^6.1.1","@typescript-eslint/parser":"^7.8.0","@typescript-eslint/eslint-plugin":"^7.8.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.5_1714919478225_0.5240919876783647","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"happy-rusty","version":"1.0.6","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.6","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"4c5a73eb3b68dd656559b6b94c6657e666017714","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.6.tgz","fileCount":13,"integrity":"sha512-JGOZF9VRlgng9G8/bgZhBiHJXECGjiwhS/84jfNp432FpTCr+bXZeWde6YpyNbBDeosrdbBApBTPtJo5fsLMtg==","signatures":[{"sig":"MEYCIQCwFARkU3dz0f6HyhM/JN/3r4Bu6Sq/hRk2xOSCYC2DpgIhAIghsOmz+zLR9VRomqun9/aubjATw95CC+uqhMHNWMXR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57076},"main":"./dist/main.cjs","type":"module","types":"./dist/types.d.ts","module":"./dist/main.mjs","source":"./src/mod.ts","exports":"./src/mod.ts","gitHead":"ac02a32a4108f71cf8b1b6d34ff7fd5a0e3c0ef9","scripts":{"lint":"npx eslint src/","test":"bun test","build":"npx rollup --config rollup.config.mjs","check":"npx tsc --noEmit","prebuild":"npx rimraf dist && npm run check && npm run lint","prepublishOnly":"npm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.5.0","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^5.0.5","rollup":"^4.17.2","typescript":"^5.4.5","@jest/globals":"^29.7.0","rollup-plugin-dts":"^6.1.0","rollup-plugin-esbuild":"^6.1.1","@typescript-eslint/parser":"^7.8.0","@typescript-eslint/eslint-plugin":"^7.8.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.6_1715151974299_0.5500493981983108","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"happy-rusty","version":"1.0.7","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.7","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"10bb52b9e08b40eca67b7808e44f25beba59e545","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.7.tgz","fileCount":13,"integrity":"sha512-IMmZ65MgO0r40dtxz/UyGIelZgx4roUBSYxLAx/nVp+Kga46B/817+2BmK54I3ze2TOj3J1fOVi6bks1neQoCA==","signatures":[{"sig":"MEUCIB5wpAoNb7geIimbDPYcHhepjGIYrDZHwmVouQZvc/0TAiEAo8LVbomlSWzXuVcOrdgChZTI71iTikJ/Z3UJ+BIn1ew=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57971},"main":"./dist/main.cjs","type":"module","types":"./dist/types.d.ts","module":"./dist/main.mjs","source":"./src/mod.ts","exports":"./src/mod.ts","gitHead":"3b1c978a389dbfa9803fd37625720e409a57a97b","scripts":{"lint":"npx eslint src/","test":"bun test","build":"npx rollup --config rollup.config.mjs","check":"npx tsc --noEmit","prebuild":"npx rimraf dist && npm run check && npm run lint","prepublishOnly":"npm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.5.0","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","rimraf":"^5.0.5","rollup":"^4.17.2","typescript":"^5.4.5","@jest/globals":"^29.7.0","rollup-plugin-dts":"^6.1.0","rollup-plugin-esbuild":"^6.1.1","@typescript-eslint/parser":"^7.8.0","@typescript-eslint/eslint-plugin":"^7.8.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.7_1715180745525_0.3976905876576118","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"happy-rusty","version":"1.0.8","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.8","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"996dc4e901cfa07f4e7763c25d08b4235d63e36d","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.8.tgz","fileCount":13,"integrity":"sha512-sB+UN4LntMrUjXpMNXF2KDf4AjJY1GgpneBJSvBXeuI3C/0YEld1cuLfaIEBMbEVs5mIhhetMmYSO8WMcRSm0g==","signatures":[{"sig":"MEQCIHocft6sN75sB/e219r8Aq3gAjTQJRbORIdN99/nZq1SAiAJm96bzukgSeLT/6MdKpbhheDonDJ7H9fVtxpP2MWv2Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59110},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"f6bf9e42b44c34516042d73b8b3bd13ea9a34203","scripts":{"lint":"pnpm exec eslint src/","test":"bun test --coverage","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","prebuild":"pnpm exec rimraf dist && pnpm run check && pnpm run lint","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.7.0","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.1.0","_hasShrinkwrap":false,"packageManager":"pnpm@9.1.1+sha512.14e915759c11f77eac07faba4d019c193ec8637229e62ec99eefb7cf3c3b75c64447882b7c485142451ee3a6b408059cdfb7b7fa0341b975f12d0f7629c71195","devDependencies":{"eslint":"^8.57.0","rimraf":"^5.0.5","rollup":"^4.17.2","typescript":"^5.4.5","@jest/globals":"^29.7.0","rollup-plugin-dts":"^6.1.0","rollup-plugin-esbuild":"^6.1.1","@typescript-eslint/parser":"^7.8.0","@typescript-eslint/eslint-plugin":"^7.8.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.8_1715613585548_0.9632613781316897","host":"s3://npm-registry-packages"}},"1.0.9":{"name":"happy-rusty","version":"1.0.9","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.0.9","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"ddd458ca62f49109b5319bc00391cf0fd0492c33","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.0.9.tgz","fileCount":13,"integrity":"sha512-4WOXfTlzD1FNB28FDrCRK0JSvdskLB7sXitH76cdIKvp34VaKEH1ZC8dGUX6iFaZGKHzb/eAg9XfdUlPnVWq7A==","signatures":[{"sig":"MEQCIDLWFB0ZQWE1FBvhq/gTevTSTWcQTSTFP2rETEYB4jqxAiB65Y9L/rHeHH904xiMeyEd4lNDUk/0Nhs1zI7Nipl0+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59461},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"0a12092412dd9bc166a6aa353b171652c144533c","scripts":{"lint":"pnpm exec eslint src/","test":"bun test --coverage","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","prebuild":"pnpm exec rimraf dist && pnpm run check && pnpm run lint","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.7.0","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.1.0","_hasShrinkwrap":false,"packageManager":"pnpm@9.1.1+sha512.14e915759c11f77eac07faba4d019c193ec8637229e62ec99eefb7cf3c3b75c64447882b7c485142451ee3a6b408059cdfb7b7fa0341b975f12d0f7629c71195","devDependencies":{"eslint":"^8.57.0","rimraf":"^5.0.5","rollup":"^4.17.2","typescript":"^5.4.5","@jest/globals":"^29.7.0","rollup-plugin-dts":"^6.1.0","rollup-plugin-esbuild":"^6.1.1","@typescript-eslint/parser":"^7.8.0","@typescript-eslint/eslint-plugin":"^7.8.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.0.9_1715652506064_0.10138914013122369","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"happy-rusty","version":"1.1.0","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.1.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"0e8444ef1779bcb5f7eea3a361fce371b12fe068","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.1.0.tgz","fileCount":25,"integrity":"sha512-y0aZuyO6oG2j1JKXzhAzY5piOyRpDSVhfyGNQMlgzspmbwwlX/ukNMzwSHZeDOhsi8gkhcRUlNY5qqlVs33bbQ==","signatures":[{"sig":"MEQCIByL0QP1BaXoHClQxRNnAV9guK7WClkB7S0iJdKFKxgyAiBS9FlyJ7Nvf2+9BIT7POBR6DpNKIEM1OSr/kw4rWDPiQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":265123},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"1fdcd5d6cabb683a8420821aed434f842fa1d43a","scripts":{"docs":"pnpm exec typedoc","lint":"pnpm exec eslint src/","test":"deno test --coverage && deno coverage coverage && deno coverage coverage --lcov --output=coverage/cov_profile.lcov","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","pretest":"pnpm dlx rimraf coverage","prebuild":"pnpm dlx rimraf dist && pnpm run check && pnpm run lint","test:html":"deno test --coverage && deno coverage coverage && deno coverage coverage --html","pretest:html":"pnpm run pretest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.7.0","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"packageManager":"pnpm@9.2.0","devDependencies":{"eslint":"^8.57.0","rollup":"^4.18.0","typedoc":"^0.25.13","typescript":"^5.4.5","rollup-plugin-dts":"^6.1.1","rollup-plugin-esbuild":"^6.1.1","typedoc-plugin-markdown":"^4.0.3","@typescript-eslint/parser":"^7.12.0","@typescript-eslint/eslint-plugin":"^7.12.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.1.0_1717953611758_0.2445144688217069","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"happy-rusty","version":"1.1.1","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.1.1","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"5b988e5fa4e0f210de435883c8c54855086463c2","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.1.1.tgz","fileCount":25,"integrity":"sha512-Uk+PyHNny9MuZuDKcwGOcCqzUD+1IeWP1Xn0iBX+/kkUfGB6spIYSV9chnMBKRxSqt9MzO6wfvy5obQlqr4ncA==","signatures":[{"sig":"MEUCIQCOSfBsz6GpVzJtoPOcQnOfkn8xfMeOLreAQ/5G23+74QIgMGQ11MwvUJCa78VPM+GlomQbz4lVeIv8zaDzrt8KeTw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":264148},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"c0621e8cdfce71a0711e58cf23c73aee69f58939","scripts":{"docs":"pnpm exec typedoc","lint":"pnpm exec eslint src/","test":"deno test --coverage && deno coverage coverage && deno coverage coverage --lcov --output=coverage/cov_profile.lcov","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","pretest":"pnpm dlx rimraf coverage","prebuild":"pnpm dlx rimraf dist && pnpm run check && pnpm run lint","test:html":"deno test --coverage && deno coverage coverage && deno coverage coverage --html","pretest:html":"pnpm run pretest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.8.1","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.4.1","_hasShrinkwrap":false,"packageManager":"pnpm@9.5.0","devDependencies":{"eslint":"^8.57.0","rollup":"^4.18.1","typedoc":"^0.26.4","typescript":"^5.5.3","rollup-plugin-dts":"^6.1.1","rollup-plugin-esbuild":"^6.1.1","typedoc-plugin-markdown":"^4.2.1","@typescript-eslint/parser":"^7.16.0","@typescript-eslint/eslint-plugin":"^7.16.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.1.1_1720885312203_0.8745966597045092","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"happy-rusty","version":"1.1.2","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.1.2","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"1d657a594a7004a480dc3520683771f9902a3a4e","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.1.2.tgz","fileCount":25,"integrity":"sha512-+GCLe790pFrd3d9r8X5zE0fBzNl6Hvgk7djMYQqd7e8ItTZ4dvX0Jd8nbFIPwLPHAlE45JLsWVsRa3BFNLZItg==","signatures":[{"sig":"MEUCIGcl4OWKs+kaW+W5mEHbj9aOwkWuiJMeHouaIoFwyngvAiEAvrXoLEzg2k6d6Qk7d421SOgGGVnCQLig0mvYlgfC2Cw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":271393},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"cc3e617c1bf45008b7d0bbc5eaf878cc2cc03512","scripts":{"docs":"pnpm exec typedoc","lint":"pnpm exec eslint src/","test":"deno test --coverage && deno coverage coverage && deno coverage coverage --lcov --output=coverage/cov_profile.lcov","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","pretest":"pnpm dlx rimraf coverage","prebuild":"pnpm dlx rimraf dist && pnpm run check && pnpm run lint","test:html":"deno test --coverage && deno coverage coverage && deno coverage coverage --html","pretest:html":"pnpm run pretest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.8.1","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.4.1","_hasShrinkwrap":false,"packageManager":"pnpm@9.5.0","devDependencies":{"eslint":"^8.57.0","rollup":"^4.18.1","typedoc":"^0.26.4","typescript":"^5.5.3","rollup-plugin-dts":"^6.1.1","rollup-plugin-esbuild":"^6.1.1","typedoc-plugin-markdown":"^4.2.1","@typescript-eslint/parser":"^7.16.1","@typescript-eslint/eslint-plugin":"^7.16.1"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.1.2_1721226534054_0.9376642134934108","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"happy-rusty","version":"1.2.0","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.2.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"cf04d22b32924eb35cf3231605b72a0c0de4e410","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.2.0.tgz","fileCount":27,"integrity":"sha512-rWR3EOvbnlYiufhiZEwUUnDIfX6MXDJh1CtISJYX4hGpEUdK2O8z9/qjbfdRvS9pbMklvWScN0Iu2e3pIY91bg==","signatures":[{"sig":"MEQCIBbJk1xDxw0O7QfvzV/YAJXsrdIGZ2xeR07wxGN6gKjrAiAW0qGLQ/X8gWMbslC/3LHxf6rCjLqoGK10dXA7gLH2kA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":293554},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"419905735f073c1cca12ec2ec8b038300850ce71","scripts":{"docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"deno test --coverage && deno coverage coverage && deno coverage coverage --lcov --output=coverage/cov_profile.lcov","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","pretest":"pnpm dlx rimraf coverage","prebuild":"pnpm dlx rimraf dist && pnpm run check && pnpm run lint","test:html":"deno test --coverage && deno coverage coverage && deno coverage coverage --html","pretest:html":"pnpm run pretest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.8.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.5.1","_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0","devDependencies":{"eslint":"^9.8.0","rollup":"^4.19.2","typedoc":"^0.26.5","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/eslint__js":"^8.42.3","rollup-plugin-dts":"^6.1.1","typescript-eslint":"^8.0.0","rollup-plugin-esbuild":"^6.1.1","typedoc-plugin-markdown":"^4.2.3"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.2.0_1722514007282_0.5503490882889459","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"happy-rusty","version":"1.3.0","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.3.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"4829ed593b408b23e64c3c59d3ced046ae39927d","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.3.0.tgz","fileCount":37,"integrity":"sha512-eIdLbzj90fuIFZc8ICyeIYYTQBEWkNiM+J6d94OCdDND5jFRHFfkJN+5mzj4XgXLNf2q563mxY6NZVDBzAHJiA==","signatures":[{"sig":"MEUCID+3XDz6ZRciC/8GyuuKOcvLljvS30IIFsOBXLhSEsKxAiEA+AakV/leI9+MAqtCpNq7TwnnucsLU+f8jgNHO2XNz1s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252537},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"1491a872b418d48a486b998efa32796200430701","scripts":{"docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"deno test --coverage && deno coverage coverage && deno coverage coverage --lcov --output=coverage/cov_profile.lcov","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","pretest":"pnpm dlx rimraf coverage","prebuild":"pnpm dlx rimraf dist && pnpm run check && pnpm run lint","test:html":"deno test --coverage && deno coverage coverage && deno coverage coverage --html","pretest:html":"pnpm run pretest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.8.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.5.1","_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0","devDependencies":{"eslint":"^9.8.0","rollup":"^4.19.2","typedoc":"^0.26.5","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/eslint__js":"^8.42.3","rollup-plugin-dts":"^6.1.1","typescript-eslint":"^8.0.0","rollup-plugin-esbuild":"^6.1.1","typedoc-plugin-markdown":"^4.2.3"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.3.0_1722529409840_0.804830466508285","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"happy-rusty","version":"1.3.1","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.3.1","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"e3728a4c79af1d599b07709853a32f69d3846891","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.3.1.tgz","fileCount":37,"integrity":"sha512-hhR9nn1gBGHJU41UBxP2aQnMnZb8oBfW8m7hAIpyUcfRcw1Xqn5IXba82M+xgLtqv2vt3xeqb7XYhbUmZHz70A==","signatures":[{"sig":"MEUCIF9oOBfE4OECI/S+J6qJ5ZaDeP88GKiWPrRgOhi+Wg56AiEAjxmm5tfyjD+snoSKlZ0ArwamYQq7yyHmFkkHspChizU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252513},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"5c7e610fbca913050db1d4330348242e27f05761","scripts":{"docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"deno test --coverage && deno coverage coverage && deno coverage coverage --lcov --output=coverage/cov_profile.lcov","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","pretest":"pnpm dlx rimraf coverage","prebuild":"pnpm dlx rimraf dist && pnpm run check && pnpm run lint","test:html":"deno test --coverage && deno coverage coverage && deno coverage coverage --html","pretest:html":"pnpm run pretest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.8.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.5.1","_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0","devDependencies":{"eslint":"^9.8.0","rollup":"^4.20.0","typedoc":"^0.26.5","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/eslint__js":"^8.42.3","rollup-plugin-dts":"^6.1.1","typescript-eslint":"^8.0.0","rollup-plugin-esbuild":"^6.1.1","typedoc-plugin-markdown":"^4.2.3"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.3.1_1722672681743_0.9421238915032837","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"happy-rusty","version":"1.3.2","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.3.2","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"edaa8fd9c4929da666c29f8ddfa3d96de5148899","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.3.2.tgz","fileCount":37,"integrity":"sha512-HBgWOUcSNPPzPMLUN+BvM9YmQLeQjPMmVwrCre86r3rnbYJcAo5vRscAiYouEGfjd/1BYy4XfXcnm/9NG0olqw==","signatures":[{"sig":"MEYCIQDlfr5vE/UvuvklUqtCyoEJjYW2QbcVXP7/37KULHUqKAIhANiwcRWt04ExONT8kHEi+UVPwKK+Ox7Mlb0q4Xod0kEG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":252745},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"e94739c08f188554e26257b353347a8d791977cd","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"deno test --coverage && deno coverage coverage && deno coverage coverage --lcov --output=coverage/cov_profile.lcov","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","pretest":"pnpm dlx rimraf coverage","prebuild":"pnpm dlx rimraf dist && pnpm run check && pnpm run lint","test:html":"deno test --coverage && deno coverage coverage && deno coverage coverage --html","pretest:html":"pnpm run pretest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.8.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.5.1","_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0","devDependencies":{"eslint":"^9.8.0","rollup":"^4.20.0","typedoc":"^0.26.5","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/eslint__js":"^8.42.3","rollup-plugin-dts":"^6.1.1","typescript-eslint":"^8.0.0","rollup-plugin-esbuild":"^6.1.1","typedoc-plugin-markdown":"^4.2.3"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.3.2_1722762012781_0.15408733585509804","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"happy-rusty","version":"1.4.0","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.4.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"9ddfe7365301f07a7dc002c2b2787284771e8530","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.4.0.tgz","fileCount":42,"integrity":"sha512-RbIfVv/XIVwKvwirx6a8Pkc1RfAgXyuMPAqJM9EUE3rVGxVgNOqLXU1yvmzt6VYWuYW5V7J3r6eBpr8s9kK/Vw==","signatures":[{"sig":"MEYCIQD0fUpEBEGarP9mp+df1D7400iAfuWieWdAThNmW/6t0gIhALtxRQXEP48hZHlKmLGF8/HY20XhYcjwzTbzsF/4C196","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":258281},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"e807a4ac31a69ed9d460165056ec63dc79fd602c","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"deno test --coverage && deno coverage coverage && deno coverage coverage --lcov --output=coverage/cov_profile.lcov","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","pretest":"pnpm dlx rimraf coverage","prebuild":"pnpm dlx rimraf dist && pnpm run check && pnpm run lint","test:html":"deno test --coverage && deno coverage coverage && deno coverage coverage --html","pretest:html":"pnpm run pretest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.8.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.5.1","_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0","devDependencies":{"eslint":"^9.8.0","rollup":"^4.20.0","typedoc":"^0.26.5","@eslint/js":"^9.8.0","typescript":"^5.5.4","@types/eslint__js":"^8.42.3","rollup-plugin-dts":"^6.1.1","typescript-eslint":"^8.0.0","rollup-plugin-esbuild":"^6.1.1","typedoc-plugin-markdown":"^4.2.3"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.4.0_1722859745735_0.244975871433597","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"happy-rusty","version":"1.5.0","keywords":["rust","enum","Option","Some","None","Result","Ok","Err"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.5.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"893c1f0a06c853de8f70b52f879139962052bb57","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.5.0.tgz","fileCount":42,"integrity":"sha512-aWQInvIhBr8GREGICaY2wtAVwCYZcktu74a3Oagoy00VuahNU5Dphk6hBg1XiwE0yUtImCa2UVJWPBjkag128g==","signatures":[{"sig":"MEUCIQCpQ3H35fcJGOCwlzAnijbBckaOEYrK2mjBw6vVQxfx/wIgREbjSCK+hs6YoyQL0AecUtSEkD0U9eW8bVBu9fbTl0Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":281208},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","gitHead":"9cbaed9e1268df25d80121738b1f5878f270fefd","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"deno test --coverage && deno coverage coverage && deno coverage coverage --lcov --output=coverage/cov_profile.lcov","build":"pnpm exec rollup --config rollup.config.mjs","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","pretest":"pnpm dlx rimraf coverage","prebuild":"pnpm dlx rimraf dist && pnpm run check && pnpm run lint","test:html":"deno test --coverage && deno coverage coverage && deno coverage coverage --html","pretest:html":"pnpm run pretest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jarvisjiang","email":"jiang115jie@gmail.com"},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"10.8.2","description":"Porting some excellent design implementations from Rust to JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.6.0","_hasShrinkwrap":false,"packageManager":"pnpm@9.7.0","devDependencies":{"eslint":"^9.9.0","rollup":"^4.20.0","typedoc":"^0.26.5","@eslint/js":"^9.9.0","typescript":"^5.5.4","@types/eslint__js":"^8.42.3","rollup-plugin-dts":"^6.1.1","typescript-eslint":"^8.0.1","rollup-plugin-esbuild":"^6.1.1","typedoc-plugin-markdown":"^4.2.3"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.5.0_1723371566084_0.7489653149097122","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"happy-rusty","version":"1.6.0","keywords":["rust","typescript","enum","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","ControlFlow","error-handling","null-safety"],"author":{"name":"jiang115jie@gmail.com"},"license":"GPL-3.0","_id":"happy-rusty@1.6.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"2ebfba0dd3fed718f7d643b3221b6781187d1f56","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.6.0.tgz","fileCount":10,"integrity":"sha512-WRt1Vr8esDiXhmo7P2W9tRjSAlTZqKme08apEtWpe9zHFlrHgjBz2evqaXU1PkqxZwphh1Pn/dzMDBh8l7PNJg==","signatures":[{"sig":"MEQCIHvXrCE6oZuwHerXGt5GtLio2ez9JWiiFv28NYkGhwBWAiAImh9PTIneHlCc0Au1mzUjtBIKsCOh9zFAhtR4mFIgDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380415},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"016ed176dc9160107c8f3fc24b151783e6286de3","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.6.2","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","rollup":"^4.53.5","vitest":"^4.0.16","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","rollup-plugin-dts":"^6.3.0","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16","@stylistic/eslint-plugin":"^5.6.1"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.6.0_1766067014803_0.3042783529055124","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"happy-rusty","version":"1.6.1","keywords":["rust","typescript","enum","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","ControlFlow","error-handling","null-safety"],"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","_id":"happy-rusty@1.6.1","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"1df455d0ff5345ac2925f1b689e94cb5eafac606","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.6.1.tgz","fileCount":10,"integrity":"sha512-8mnnuzRoEKxkYtsMxIoDmwdHDiAaPGMspVBCRWdHYvEzuG0cnQZpiLCwqggOSdhCSJzgQ1hSXO//6lNV3Sx+6A==","signatures":[{"sig":"MEUCIHByQNtSCHTXfFCsKKnvlsCugDo/0eYlGOnWJyCYC5+pAiEAsaRk0a3h21C10ZfVxCDUdRCFcKLLTydcYHu0A9bFzho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":346528},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","source":"src/mod.ts","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"ea79efb662751c2fa5afbaa73072b3da5f076753","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.6.2","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","rollup":"^4.53.5","vitest":"^4.0.16","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","rollup-plugin-dts":"^6.3.0","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16","@stylistic/eslint-plugin":"^5.6.1"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.6.1_1766113510961_0.18122939986678754","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"happy-rusty","version":"1.6.2","keywords":["rust","typescript","enum","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","ControlFlow","error-handling","null-safety"],"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","_id":"happy-rusty@1.6.2","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"bdbcbced03505b7c3beafd7b660c7c780f443b5b","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.6.2.tgz","fileCount":10,"integrity":"sha512-L50klYy6Roph+jOF9SafcuU4Cy01WLILPQdFpsUI7ip5DH57AEz+Z9WXD+pfodL9PqxpiUug6qiELChoganU+g==","signatures":[{"sig":"MEYCIQDzaJseJx/oi3jLM2JYgagWrXx8aT8aNhriAgigPV8L4wIhALbO8atpOsgm5k0wAAOyyAy6RzlD6MbiRKwSxERba6he","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":347030},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"cb57e34adbf3069ba55176ece7dfc71f3949fa31","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.6.2","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","rollup":"^4.53.5","vitest":"^4.0.16","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","rollup-plugin-dts":"^6.3.0","typescript-eslint":"^8.50.0","@vitest/coverage-v8":"^4.0.16","@stylistic/eslint-plugin":"^5.6.1"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.6.2_1766632221266_0.2891767075980991","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"happy-rusty","version":"1.7.0","keywords":["rust","typescript","enum","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","ControlFlow","error-handling","null-safety"],"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","_id":"happy-rusty@1.7.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"7d38003c5caf69ba1d724ccc5448b61086960948","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.7.0.tgz","fileCount":10,"integrity":"sha512-xW0pYRh3BzhJfZuRGop85NA19NvZ/gOQCdP3Lte4CAf1306gpwfNQK1kJdveaOB8mEuCnx55w6KpDjs4hAGSLg==","signatures":[{"sig":"MEQCIGszCdMQq5uqzvmkL9DkVrljIvvGuYhfAPKWbMW2IwuLAiAyNkwDw2lck1SAFtEMUwh565X/zbS47kmoQWvhxim7TA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365283},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"024e980ee836f0b762be36e854380acef631e256","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.6.2","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","rollup":"^4.54.0","vitest":"^4.0.16","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","rollup-plugin-dts":"^6.3.0","typescript-eslint":"^8.50.1","@vitest/coverage-v8":"^4.0.16","@stylistic/eslint-plugin":"^5.6.1"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.7.0_1766679584996_0.6222387127020848","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"happy-rusty","version":"1.7.1","keywords":["rust","typescript","enum","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","ControlFlow","error-handling","null-safety"],"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","_id":"happy-rusty@1.7.1","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"5c4642a22bedca017502a631d3bae2bd28d8d798","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.7.1.tgz","fileCount":10,"integrity":"sha512-30k/ntRV/7fRn4upGcBPoCShndoDIJRj2XnocwjtGevcwXIDJ3D1eQdbcIWCNHag22tiPNHEjpJM6EiVzBKmUA==","signatures":[{"sig":"MEQCIG3vTz4k0npokkS0FnLMsS3031Cni6RAF+lUm7u3XS36AiBOFoiIk44LFoHjXYV6L/qgqK6RAYR2tnjupJN7M1jCKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":372510},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"b648a86a0ea643ac2371517635db5e1e54a8fe2d","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.6.2","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","rollup":"^4.54.0","vitest":"^4.0.16","typedoc":"^0.28.15","@eslint/js":"^9.39.2","typescript":"^5.9.3","rollup-plugin-dts":"^6.3.0","typescript-eslint":"^8.50.1","@vitest/coverage-v8":"^4.0.16","@stylistic/eslint-plugin":"^5.6.1"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.7.1_1766721369537_0.6871646842064454","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"happy-rusty","version":"1.8.0","keywords":["rust","typescript","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","RwLock","Channel","ControlFlow","FnOnce","error-handling","null-safety","async","concurrency"],"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","_id":"happy-rusty@1.8.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"c6e88c9a057e85e78aa017089923babda3e4bf3d","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.8.0.tgz","fileCount":10,"integrity":"sha512-YlGTBmE6/mBFmmE6u/nocp2PKtaYagJw1FyhY+xzgbRoG77+xUiDaYMxFmGWjoRUFqCt8Q6Al6dhtmOUD1SYjA==","signatures":[{"sig":"MEUCIQCgbSP68XbK6UhwY/uFDIc0H20z9EP65CdsRsv4BZe0tQIgRLS4gZhBSepsui85NetGZDfuCgJmXnHA3wF8m7QMnUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":665446},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"b2008a0e6b71ef56c45ee8996d351218c878a8e9","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.6.2","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","rollup":"^4.54.0","vitest":"^4.0.16","typedoc":"^0.28.15","@eslint/js":"^9.39.2","@vitest/ui":"4.0.16","typescript":"^5.9.3","rollup-plugin-dts":"^6.3.0","typescript-eslint":"^8.51.0","@vitest/coverage-v8":"^4.0.16","@stylistic/eslint-plugin":"^5.6.1"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.8.0_1767170908844_0.41033192295304466","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"happy-rusty","version":"1.9.0","keywords":["rust","typescript","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","RwLock","Channel","ControlFlow","FnOnce","error-handling","null-safety","async","concurrency"],"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","_id":"happy-rusty@1.9.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"68744af1f75af1ee87174da9094f50e2b09aacca","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.9.0.tgz","fileCount":10,"integrity":"sha512-3mAAXawSPJXOjlt8E1TDPU44K7+dDefBKxNK0xuJHYjZH4vQsAunHOE8GK13XjCk4/sHYaSCO4fgZkP171ZlQQ==","signatures":[{"sig":"MEYCIQCBn6PUEbvYyPxNu2IZHCfLEUeDhEmOPTmS0wC4vdDqyQIhAO9hYdc3PPna1nDScbfhywIpIhTLfo1NzMsp38MyLN9m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":671905},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"a1b52f7a3ebf469e58fa045fe7409e630d60bdb4","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.6.2","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","rollup":"^4.54.0","vitest":"^4.0.16","typedoc":"^0.28.15","@eslint/js":"^9.39.2","@vitest/ui":"4.0.16","typescript":"^5.9.3","rollup-plugin-dts":"^6.3.0","typescript-eslint":"^8.51.0","@vitest/coverage-v8":"^4.0.16","@stylistic/eslint-plugin":"^5.6.1"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.9.0_1767527178620_0.46650623043977557","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"happy-rusty","version":"1.9.1","keywords":["rust","typescript","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","RwLock","Channel","ControlFlow","FnOnce","error-handling","null-safety","async","concurrency"],"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","_id":"happy-rusty@1.9.1","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"828d266e5117973037b50818bb8af90378fc03f4","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.9.1.tgz","fileCount":10,"integrity":"sha512-bsMPcstvxqzG16+67xXbhDoufRLgeX+omACTrzKNZCh5mewclXyc5B1k28DW+gba1G5vqVt/FYEFlCxu0IGrug==","signatures":[{"sig":"MEQCIAQwKAOYqUjIwAjEmfcPfTYw9bE5hCszJ7U9n6OTCDwCAiBwQYtJP/CDTqaEr7T/Od8naLsEY2+34Rrl9D87fkDwuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":678362},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"57213a9742d1edc28cb44b51dc39272a3479bfef","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.6.2","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"25.3.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","eslint":"^9.39.2","rollup":"^4.55.1","vitest":"^4.0.17","typedoc":"^0.28.16","@eslint/js":"^9.39.2","@vitest/ui":"4.0.17","typescript":"^5.9.3","rollup-plugin-dts":"^6.3.0","typescript-eslint":"^8.53.0","@vitest/coverage-v8":"^4.0.17","@stylistic/eslint-plugin":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.9.1_1768534103051_0.2545191665603097","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"happy-rusty","version":"1.9.2","keywords":["rust","typescript","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","RwLock","Channel","ControlFlow","FnOnce","error-handling","null-safety","async","concurrency"],"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","_id":"happy-rusty@1.9.2","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"f0e1849c65a0ab5686fbcf4d95bbec51d19231a6","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.9.2.tgz","fileCount":10,"integrity":"sha512-rv3SmV1RtVk98DSdv0R4Cass6xT3A2vQp0RQ2zqmfstHeD3VgnNSaaF5V6dGeKt9MKJt4h3R7ODyDDnQ2Tz5OA==","signatures":[{"sig":"MEQCIEV4Uxa5eXwmZwjW90WIHx/E91aj11zSKd1a5Fi+LSeFAiBdUm1PA3+miBNN2a8j2uYYuL/aXwNhuASUt8VPkNLCxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":692250},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"12aa1aacd6df0155388f64eb861a1549f295b403","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","predocs":"pnpm dlx rimraf docs","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.12.1","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.8","eslint":"^10.2.0","rollup":"^4.60.1","vitest":"^4.1.4","typedoc":"^0.28.19","@eslint/js":"^10.0.1","@vitest/ui":"4.1.4","typescript":"^6.0.2","rollup-plugin-dts":"^6.4.1","typescript-eslint":"^8.58.1","@vitest/coverage-v8":"^4.1.4","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.9.2_1776007722771_0.2712256544566165","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"happy-rusty","version":"1.10.0","keywords":["rust","typescript","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","RwLock","Semaphore","Channel","ControlFlow","FnOnce","error-handling","null-safety","async","concurrency"],"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","_id":"happy-rusty@1.10.0","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"homepage":"https://github.com/JiangJie/happy-rusty#readme","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"dist":{"shasum":"dfb3ee72b5c3cfe2c5d83dbadf0837b006bf4739","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.10.0.tgz","fileCount":10,"integrity":"sha512-2x6GTks4krBimzs0vloMogwoDbLWsqK6tQY3vg1T/YG1G8nPgJloFTfCrLDxDxgPc8ebbwc7qrKcwOSvVeyOQg==","signatures":[{"sig":"MEYCIQCZlnTT+LFQX5DwV35403Pw8rTPiXrym8+AsIkmJIZ4UAIhANxUtFLOblcFa/Qd1hN+eYfeHl/3Nfxiwmz84mRs1jta","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":740936},"main":"dist/main.cjs","type":"module","types":"dist/types.d.ts","module":"dist/main.mjs","exports":{".":{"types":"./dist/types.d.ts","import":"./dist/main.mjs","default":"./dist/main.mjs","require":"./dist/main.cjs"},"./package.json":"./package.json"},"gitHead":"f71f23d9445351b7f20b48698e9eca948bfcd09f","scripts":{"eg":"deno run -A examples/main.ts","docs":"pnpm exec typedoc","lint":"pnpm exec eslint .","test":"pnpm exec vitest run --coverage","build":"pnpm exec vite build && pnpm exec rollup --config rollup.config.ts","check":"pnpm exec tsc --noEmit","test:ui":"pnpm exec vitest --ui","prebuild":"pnpm run check && pnpm run lint","test:watch":"pnpm exec vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"repository":{"url":"git+https://github.com/JiangJie/happy-rusty.git","type":"git"},"_npmVersion":"11.17.0","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","directories":{},"sideEffects":false,"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.0","eslint":"^10.6.0","rollup":"^4.62.2","vitest":"^4.1.9","typedoc":"^0.28.19","@eslint/js":"^10.0.1","@vitest/ui":"4.1.9","typescript":"^6.0.3","rollup-plugin-dts":"^6.4.1","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.9","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-rusty_1.10.0_1782832744183_0.30774557616779985","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"happy-rusty","description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","author":{"name":"jiang115jie@gmail.com"},"license":"MIT","version":"1.10.1","type":"module","main":"dist/mod.cjs","module":"dist/mod.mjs","types":"dist/mod.d.mts","exports":{".":{"import":{"types":"./dist/mod.d.mts","default":"./dist/mod.mjs"},"require":{"types":"./dist/mod.d.cts","default":"./dist/mod.cjs"},"default":"./dist/mod.mjs"},"./package.json":"./package.json"},"sideEffects":false,"scripts":{"check":"pnpm exec vp check","typecheck":"pnpm exec tsc --noEmit","lint":"pnpm exec vp lint","fmt":"pnpm exec vp fmt","test":"pnpm exec vp test run --coverage","prebuild":"pnpm run check","build":"pnpm exec vp pack","verify:package":"pnpm exec attw --pack && pnpm exec publint --strict","prepublishOnly":"pnpm run build && pnpm run verify:package","docs":"pnpm exec typedoc","examples":"node examples/main.ts"},"repository":{"type":"git","url":"git+https://github.com/JiangJie/happy-rusty.git"},"keywords":["rust","typescript","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","RwLock","Semaphore","Channel","ControlFlow","FnOnce","error-handling","null-safety","async","concurrency"],"devDependencies":{"@arethetypeswrong/cli":"^0.18.5","@vitest/coverage-v8":"4.1.11","publint":"^0.3.24","typedoc":"^0.28.20","typescript":"^6.0.3","vite-plus":"^0.3.0"},"gitHead":"fe705272945746b6aac6a820e145a877f919df0b","_id":"happy-rusty@1.10.1","bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"homepage":"https://github.com/JiangJie/happy-rusty#readme","_nodeVersion":"26.8.1","_npmVersion":"11.19.0","dist":{"integrity":"sha512-Yf1YKX6KBcjUNVp/5tA1KAeVCRPNVfAyKFqsDRQfUxUOH/CbQCmA3d7iMYuGQHpRkiDEyRCj6wKOI4Mwuz5JNA==","shasum":"08751c7dc1a101889e086823820adf2dca27f02b","tarball":"https://registry.npmjs.org/happy-rusty/-/happy-rusty-1.10.1.tgz","fileCount":11,"unpackedSize":932879,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/happy-rusty@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDhbLekZABkf7+vIUfAFJKebXuw7QPqXItwVQC9EKf74wIhAN4aG7CX+yeJp6CqJe7uXafJzaFGQoMYtvxS4msJKo7b"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:da0b0e23-d13c-4854-9cdf-e9fb77d34aa2"}},"directories":{},"maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/happy-rusty_1.10.1_1788685861680_0.1311662055543663"},"_hasShrinkwrap":false}},"time":{"created":"2024-04-24T15:52:56.634Z","modified":"2026-09-06T09:11:02.165Z","1.0.0":"2024-04-24T15:52:56.795Z","1.0.1":"2024-04-26T14:44:07.832Z","1.0.2":"2024-04-26T16:28:55.830Z","1.0.3":"2024-04-27T13:20:19.589Z","1.0.4":"2024-05-04T15:15:10.156Z","1.0.5":"2024-05-05T14:31:18.375Z","1.0.6":"2024-05-08T07:06:14.476Z","1.0.7":"2024-05-08T15:05:45.756Z","1.0.8":"2024-05-13T15:19:45.727Z","1.0.9":"2024-05-14T02:08:26.201Z","1.1.0":"2024-06-09T17:20:12.054Z","1.1.1":"2024-07-13T15:41:52.397Z","1.1.2":"2024-07-17T14:28:54.245Z","1.2.0":"2024-08-01T12:06:47.473Z","1.3.0":"2024-08-01T16:23:30.022Z","1.3.1":"2024-08-03T08:11:21.943Z","1.3.2":"2024-08-04T09:00:12.976Z","1.4.0":"2024-08-05T12:09:05.924Z","1.5.0":"2024-08-11T10:19:26.297Z","1.6.0":"2025-12-18T14:10:14.952Z","1.6.1":"2025-12-19T03:05:11.128Z","1.6.2":"2025-12-25T03:10:21.447Z","1.7.0":"2025-12-25T16:19:45.136Z","1.7.1":"2025-12-26T03:56:09.682Z","1.8.0":"2025-12-31T08:48:28.987Z","1.9.0":"2026-01-04T11:46:18.824Z","1.9.1":"2026-01-16T03:28:23.212Z","1.9.2":"2026-04-12T15:28:42.918Z","1.10.0":"2026-06-30T15:19:04.418Z","1.10.1":"2026-09-06T09:11:01.822Z"},"bugs":{"url":"https://github.com/JiangJie/happy-rusty/issues"},"author":{"name":"jiang115jie@gmail.com"},"license":"MIT","homepage":"https://github.com/JiangJie/happy-rusty#readme","keywords":["rust","typescript","Option","Some","None","Result","Ok","Err","Once","Lazy","Mutex","RwLock","Semaphore","Channel","ControlFlow","FnOnce","error-handling","null-safety","async","concurrency"],"repository":{"type":"git","url":"git+https://github.com/JiangJie/happy-rusty.git"},"description":"Rust's Option, Result, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.","maintainers":[{"name":"jarvisjiang","email":"jiang115jie@gmail.com"}],"readme":"# happy-rusty\n\n[![License](https://img.shields.io/npm/l/happy-rusty.svg)](LICENSE)\n[![Build Status](https://github.com/JiangJie/happy-rusty/actions/workflows/ci.yml/badge.svg)](https://github.com/JiangJie/happy-rusty/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/JiangJie/happy-rusty/graph/badge.svg)](https://codecov.io/gh/JiangJie/happy-rusty)\n[![NPM version](https://img.shields.io/npm/v/happy-rusty.svg)](https://npmjs.org/package/happy-rusty)\n[![NPM downloads](https://badgen.net/npm/dm/happy-rusty)](https://npmjs.org/package/happy-rusty)\n[![JSR Version](https://jsr.io/badges/@happy-js/happy-rusty)](https://jsr.io/@happy-js/happy-rusty)\n[![JSR Score](https://jsr.io/badges/@happy-js/happy-rusty/score)](https://jsr.io/@happy-js/happy-rusty/score)\n\nRust's `Option`, `Result`, and sync primitives for JavaScript/TypeScript - Better error handling and null-safety patterns.\n\n---\n\n[中文](README.cn.md) | [API Documentation](https://jiangjie.github.io/happy-rusty/)\n\n---\n\n## Features\n\n- **Option&lt;T&gt;** - Represents an optional value: every `Option` is either `Some(T)` or `None`\n- **Result&lt;T, E&gt;** - Represents either success (`Ok(T)`) or failure (`Err(E)`)\n- **Sync Primitives** - Rust-inspired `Once<T>`, `OnceAsync<T>`, `Lazy<T>`, `LazyAsync<T>`, `Mutex<T>`, `RwLock<T>`, `Semaphore`, and `Channel<T>`\n- **Control Flow** - `ControlFlow<B, C>` with `Break` and `Continue` for short-circuiting operations\n- **FnOnce** - One-time callable function wrappers (`FnOnce` and `FnOnceAsync`)\n- **Full TypeScript support** with strict type inference\n- **Async support** - Async versions of all transformation methods\n- **Zero dependencies**\n- **Runtime immutability** - All instances are frozen with `Object.freeze()`\n- **Cross-runtime** - Works in Node.js, Deno, Bun, and browsers\n\n## Installation\n\n```sh\n# npm\nnpm install happy-rusty\n\n# yarn\nyarn add happy-rusty\n\n# pnpm\npnpm add happy-rusty\n\n# JSR (Deno)\ndeno add @happy-js/happy-rusty\n\n# JSR (Bun)\nbunx jsr add @happy-js/happy-rusty\n```\n\n## Quick Start\n\n```ts\nimport { Some, None, Ok, Err } from 'happy-rusty';\n\n// Option - handling nullable values\nfunction findUser(id: number): Option<User> {\n    const user = database.get(id);\n    return user ? Some(user) : None;\n}\n\nconst user = findUser(1)\n    .map(u => u.name)\n    .unwrapOr('Guest');\n\n// Result - handling errors\nfunction parseJSON<T>(json: string): Result<T, Error> {\n    try {\n        return Ok(JSON.parse(json));\n    } catch (e) {\n        return Err(e as Error);\n    }\n}\n\nconst config = parseJSON<Config>(jsonStr)\n    .map(c => c.settings)\n    .unwrapOrElse(err => {\n        console.error('Parse failed:', err);\n        return defaultSettings;\n    });\n```\n\n## API Overview\n\n### Option&lt;T&gt;\n\n| Category         | Methods                                                                                |\n| ---------------- | -------------------------------------------------------------------------------------- |\n| **Constructors** | `Some(value)`, `None`                                                                  |\n| **Querying**     | `isSome()`, `isNone()`, `isSomeAnd(fn)`                                                |\n| **Extracting**   | `expect(msg)`, `unwrap()`, `unwrapOr(default)`, `unwrapOrElse(fn)`                     |\n| **Transforming** | `map(fn)`, `mapOr(default, fn)`, `mapOrElse(defaultFn, fn)`, `filter(fn)`, `flatten()` |\n| **Boolean ops**  | `and(other)`, `andThen(fn)`, `or(other)`, `orElse(fn)`, `xor(other)`                   |\n| **Converting**   | `okOr(err)`, `okOrElse(fn)`, `transpose()`                                             |\n| **Combining**    | `zip(other)`, `zipWith(other, fn)`, `unzip()`                                          |\n| **Side effects** | `inspect(fn)`                                                                          |\n| **Comparison**   | `eq(other)`                                                                            |\n\n### Result&lt;T, E&gt;\n\n| Category           | Methods                                                                                |\n| ------------------ | -------------------------------------------------------------------------------------- |\n| **Constructors**   | `Ok(value)`, `Ok()` (void), `Err(error)`                                               |\n| **Querying**       | `isOk()`, `isErr()`, `isOkAnd(fn)`, `isErrAnd(fn)`                                     |\n| **Extracting Ok**  | `expect(msg)`, `unwrap()`, `unwrapOr(default)`, `unwrapOrElse(fn)`                     |\n| **Extracting Err** | `expectErr(msg)`, `unwrapErr()`                                                        |\n| **Transforming**   | `map(fn)`, `mapErr(fn)`, `mapOr(default, fn)`, `mapOrElse(defaultFn, fn)`, `flatten()` |\n| **Boolean ops**    | `and(other)`, `andThen(fn)`, `or(other)`, `orElse(fn)`                                 |\n| **Converting**     | `ok()`, `err()`, `transpose()`                                                         |\n| **Type casting**   | `asOk<F>()`, `asErr<U>()`                                                              |\n| **Side effects**   | `inspect(fn)`, `inspectErr(fn)`                                                        |\n| **Comparison**     | `eq(other)`                                                                            |\n\n### Async Methods\n\nAll transformation methods have async variants with `Async` suffix (e.g., `andThenAsync`, `mapAsync`, `unwrapOrElseAsync`).\n\nAsync variants follow the library's error convention: when the callback is invoked, a synchronous throw propagates synchronously at the call site — just like the sync methods — and only a callback that returns a rejected promise surfaces as a promise rejection. To capture thrown exceptions as `Err`/`None` values instead, use the `try*` helpers (`tryResult`/`tryAsyncResult`/`tryOption`/`tryAsyncOption`) or, on `Result`, the `andTryAsync`/`orTryAsync` methods.\n\n### Type Aliases\n\n```ts\ntype AsyncOption<T> = Promise<Option<T>>;\ntype AsyncResult<T, E> = Promise<Result<T, E>>;\ntype IOResult<T> = Result<T, Error>;          // For I/O operations\ntype AsyncIOResult<T> = Promise<IOResult<T>>; // Async I/O operations\n```\n\n### Utility Functions\n\n```ts\nimport { tryResult, tryAsyncResult } from 'happy-rusty';\n\n// Capture exceptions as Result (like Promise.try, but returns Result)\nconst parsed = tryResult(JSON.parse, jsonString);  // Ok(value) or Err(error)\nconst response = await tryAsyncResult(fetch, '/api/data');\n```\n\n### Sync Primitives\n\n```ts\nimport { Lazy, LazyAsync, Mutex, Semaphore, Channel } from 'happy-rusty';\n\n// Lazy - compute once on first access\nconst expensive = Lazy(() => computeExpensiveValue());\nexpensive.force();  // Computed once, cached thereafter\n\n// LazyAsync - async lazy initialization (concurrent-safe)\nconst db = LazyAsync(async () => Database.connect(url));\nawait db.force();  // Only one connection, concurrent calls wait\n\n// Mutex - async mutual exclusion\nconst state = Mutex({ count: 0 });\nawait state.withLock(async (s) => { s.count += 1; });\n\n// Semaphore - limit async concurrency (e.g. fetch rate limiting)\nconst sem = Semaphore(10);\nawait sem.withPermit(() => fetch(url));\n\n// Channel - MPMC async message passing\nconst ch = Channel<string>(10);  // bounded capacity\nawait ch.send('hello');\nfor await (const msg of ch) { console.log(msg); }\n```\n\n## Examples\n\n- [Option](examples/core/option/option.ts) / [AsyncOption](examples/core/option/option.async.ts)\n- [Result](examples/core/result/result.ts) / [AsyncResult](examples/core/result/result.async.ts)\n- [Once](examples/std/sync/once.ts) / [OnceAsync](examples/std/sync/once_async.ts)\n- [Lazy](examples/std/sync/lazy.ts) / [LazyAsync](examples/std/sync/lazy_async.ts)\n- [Mutex](examples/std/sync/mutex.ts)\n- [RwLock](examples/std/sync/rwlock.ts)\n- [Semaphore](examples/std/sync/semaphore.ts)\n- [Channel](examples/std/sync/channel.ts)\n- [ControlFlow](examples/std/ops/control_flow.ts)\n- [FnOnce](examples/std/ops/fn_once.ts) / [FnOnceAsync](examples/std/ops/fn_once_async.ts)\n\n## Design Notes\n\n### Immutability\n\nAll types (`Option`, `Result`, `ControlFlow`, `Lazy`, `LazyAsync`, `Once`, `OnceAsync`, `Mutex`, `MutexGuard`, `RwLock`, `Semaphore`, `SemaphorePermit`, `Channel`, `Sender`, `Receiver`, `FnOnce`, `FnOnceAsync`) are **immutable at runtime** via `Object.freeze()`. This prevents accidental modification of methods or properties:\n\n```ts\nconst some = Some(42);\nsome.unwrap = () => 0;  // TypeError: Cannot assign to read only property\n```\n\n**Why no `readonly` in TypeScript interfaces?**\n\nWe intentionally omit `readonly` modifiers from method signatures in interfaces. While this might seem to reduce type safety, there are compelling reasons:\n\n1. **Inheritance compatibility** - The `None` type extends `Option<never>`. TypeScript's arrow function property syntax (`readonly prop: () => T`) uses contravariant parameter checking, which causes `None` (with `never` parameters) to be incompatible with `Option<T>`. Method syntax (`method(): T`) uses bivariant checking, allowing the inheritance to work correctly.\n\n2. **Runtime protection is sufficient** - `Object.freeze()` already prevents reassignment at runtime. Adding `readonly` only provides compile-time checking, which offers marginal benefit when runtime protection exists.\n\n3. **Cleaner API** - Avoiding the `Mutable*` + `Readonly<>` pattern keeps the exported types clean and documentation readable.\n\n4. **Testing validates immutability** - Our test suite explicitly verifies that all instances are frozen and reject property modifications.\n\n## Why happy-rusty?\n\nJavaScript's `null`/`undefined` and try-catch patterns lead to:\n\n- Uncaught null reference errors\n- Forgotten error handling\n- Verbose try-catch blocks\n- Unclear function contracts\n\n`happy-rusty` provides Rust's battle-tested patterns:\n\n- **Explicit optionality** - `Option<T>` makes absence visible in types\n- **Explicit errors** - `Result<T, E>` forces error handling consideration\n- **Method chaining** - Transform values without nested if-else or try-catch\n- **Type safety** - Full TypeScript support with strict type inference\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}