{"_id":"async-option","_rev":"45-42115a81b3e875b2e1c0fbd103dcf70b","name":"async-option","dist-tags":{"latest":"2.5.0"},"versions":{"1.0.0":{"name":"async-option","version":"1.0.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.7.4","value-generator":"^0.2.0"},"gitHead":"2182332e7bbca152102efceda7f7f78f562fadac","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.0.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-OW9s5YexzcNcavFIsvYZnvDeNsjeb0D+l797i2tDLpGDfpAZqbRB7wANtmlCZ308Pu+jU/v8Tl7z30p2IGdALg==","shasum":"5e746f27df4e241cad9491b57b5cffcae18992cf","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.0.0.tgz","fileCount":22,"unpackedSize":38229,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAv1xDL8h2E3m7CgX+XlfuHRWf7J/iHnyhQ4BZfGZIecAiEAvAYa1A2JPxOyuVXPmUAqxQLCnH1pj0dcmT4j46RR1XM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGLmNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQ1Q//eiSazNVQ6iBlv2/T46ACbvy2U6A9+0BHj2QpMFsg4ewiaXzh\r\nai0CWXGsR1wt2s2AH/KTEnBfP3tnI+RrzhZ+2SgIUjq9C2hBoBw2ZTe13Kc+\r\nBuDNdWQ11+JV+DIqvsz9FycnF90V+IrNeOqf4Oi0eRcg62cQ6gOcqL8TER/W\r\n2TjFllN0xfgKCb1FEMvxPUCt6GQqukZdE2dPWI3mKXjPCSRLjjtNGCIDLFHR\r\nsLmDCmwMGurWr/kUq8ulK2JPe4OEKkKIRpeaUMFeE2915p3IktqdP2iV7ZdT\r\nzQ186Isv9BTCocShZf08M1YwfKXgWT/bGx2/oOjXvYvepoo3QQR9UejuQPXS\r\nSJ+nZXwbrrZJcuuz01B17ZYuJNHuZP+Z1dgypTgbHsVT8RgDQWnBMtCmKjMr\r\ntUsACj4OGs+2/0lXSPBHYvA+G80x4/g9FtcRS7VUV+PGQMT+ls/zC8ru4iOf\r\nEx8a89aFW02Uq7ePdP6ZbCEUSy9UfQzkNrcdQrz1foJA1hGh5ZKy0rSIVWqW\r\nXxGqyD/aY61JSXogI87vpcJPY1u6KehVxwe2/T1AW+ETZEKBj61G2PrLB2qE\r\nQE9i489y/0kk8P5S854GpQB/tBId7DnfvVH3rAnmsNovVBWX4zmQvX8bLdsj\r\nvM+FpyZRrxDLtgcbq4qDTnZYgWmONniECrE=\r\n=RjzC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.0.0_1662564749040_0.7506987593792307"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.1.0":{"name":"async-option","version":"1.1.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"8aa40f1b175a5a597d392ae29f02371c04b8fc4f","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.1.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-cqbt7FNoZNCT/gv3a2yYj3H0Xy57keMKF/9QpjPitvvlPmc0wySmNUM/qr3XMzOREticNOq1rAwwhNROivXtrQ==","shasum":"fd64aaa28172106775f6aeddd8afa5e718699f88","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.1.0.tgz","fileCount":22,"unpackedSize":40254,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3BlU/mY2wyyF7k1r/We0s8SJTPQBqQ+o4tgj21pIyKQIhALJC6Xz9Wp/weS2RKgvcCzzhDtFqlPYSHDrD7WbBuSbR"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjG30qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrKuw/+NBR/yguWjcyCj0qCZYNeY06bIi2gY7V2KogjIn20ItRSsA8E\r\nmUrJK6Rc0Cir3n6BBQaIQxwkQxnUvduJPTKL4NRKPlOGBtJWSEMIODadw9H0\r\nd2/6J6c0cOH6jGGAAX76r78d8ZWpwBBruvfJTCUNFyFZtECODD9L5643huu5\r\n5Zsukre4dK9zEMsgpKaMZP06+Qnrk5ekG6W16Vv9Wn2pQPwtPS7TuRVBY/HB\r\nMrrWLSQ6WNNuS61w5M/YDXgTd8kD935w6OXnD+V1/7y8Uk7rAU2J9CeHrnou\r\nokX2c1y9WuFRdyNPiG6/B/L5sILyKD7Sy2d2RM1EONwv0e6QRy/3QlUhTWIs\r\n0q/0Mgb1QawvTopd/xnGuczBqyh8uQr8l/SRYEXsIUllyNXomhCGB9qPB87s\r\n8XpjeLT/nO1t5gGG+ijovHNotIzLH4nVKa4+qDk1pHhsGQAi3Nm4MBgerQi+\r\nxFVJC5oWhiV1PhFc1ioOG+Ulcvo7NUOuKaNmPNxur1320aUu2tz4Zp2Ih4Dx\r\nUITTVPwpsbFH7mX0GoGvoZcxAT6sOcZ4Ysa1awtNOr43MqHRNR2vMcL/Cmoe\r\nDHm7ZXb3NVjUyeKoolzb8d3VfB4QqgW76mF1jrJc+HZPnu6FtyPKhwLge1FB\r\nsy/JNuofatLSs0tES8hDndRb85oGBSvLTh8=\r\n=nOCI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.1.0_1662745898254_0.03583462197883014"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.2.0":{"name":"async-option","version":"1.2.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"d0039c2f4a3a05919bf497eca51de62c2f27e098","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.2.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-R5NbtLba7E0wIgexSdAUBfGq480POnQWD9pxJoqp6ialimHVhcG3m2M0sSzusJ/DvonwPXy+22odfdH5GkW7Vw==","shasum":"d5161e7fc0180aba2323e73635b5b702394373ac","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.2.0.tgz","fileCount":22,"unpackedSize":40254,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFdnkuFfap42URUxjNqbBrSlrxhI2wklkNczs7X9PCsjAiEAuMarnlCfBe3APKwkoq5PaPSO1sJy9/y9jd50MuwOswE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjG5BWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLlg//QtxPv9CpzCLfyRNB86Wf9B4F1mSD+n7jUMbk2lIkU8rB8B4T\r\ntwF9glE0GM1qj4chZVkBLFiGWiMOJY+RNcAaxm6iFME8fxvh25Znk8AJObFF\r\nN6T/4TVq8ziQo07aw+//96YkJgb6sn7+EsiJyh8rZTQBPzkdrstYxt8KQGMW\r\n6YuiqLJC7KRb3MNbjrNdmuG7uG+HT1KS30vZSFKTjcQyfm/FPk55GHZEdytj\r\nbMsHPWNepO90S6pP9bEBoPCohAJGpT0752Bd0lBVa6IyS8q/eHvH9PAIQCdC\r\n59w3t8WCpzoNZwTrO13I4vvS48Yxp88jfzQMls4wL3b9uzLi50NgSlJ08V6M\r\nKeG6Vduz/HU6Qx+MRd8IorPNiugcnEMo4D52qTqW1EPf+8fdCqtCuS/KgTgw\r\ngasX3BbRsPhNJ4P1ahDYLhk9oEuc1U45fDFksccoLwGLG2zudie9a0e8rVbd\r\nrvjBn1IU+GfiyRwYYbi4xwS/rkUXU3N/ERcBVYw2sKgLxsIRYo3A9KoT8f0k\r\n/uLQ+mDWEmMztaLkxUDMLo0QrROch5PEnWz4XJLXDu6//VdjbS6TMc9t5nYs\r\naOiIoEmquibWYQGiz/cU9YGxHmwKMqB0lA3qA6BsB3ZOn9eXDbX96cNQjGh4\r\nU4qcIriPxYL7hqW7LbECosQ4mfpo+E+dGvQ=\r\n=37n0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.2.0_1662750806226_0.9368288366916064"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.3.0":{"name":"async-option","version":"1.3.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"34ed864af40be05bb8df8eb7a9e57d7c8b6d4839","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.3.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-5thW2cjaRk1mi/CZamZ9N6RYHDbCAnVyC5VjRX+utpQgzVoigew/m98re+rLU2I2Q9uz7VVBf3DUadydyTM3Dw==","shasum":"4fd0b5cdde7a3e6691a527b940f65a0da790e89d","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.3.0.tgz","fileCount":22,"unpackedSize":40254,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8eCDRffSsFUTGT8UBe1s6u7jP0C7+O0sE9scmgjS+WQIhAJ/e0O0pA9oUTvmJOIr7N3aCuOR5WSpmmKO/ELU4Q5Av"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjI5IcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrNA/+K92I344X3u0M1bBeHV0nWhJAJ7ORam0KutQG+TKRWOn4xcjX\r\nl67vSzlyy7HlNMM39vTWC5cPoBreMc+FVVlbcKhVCQUDMMjbuNgQi9LV9n3M\r\nfPc4SnqKBYkeO7+ZENHRCAu9aEcD7bIAIDSNTCuDBz9YYBMED4HqfqiNuEvf\r\nXztKhn1bTakUuQ4k0iD0XeBKFdevrPdGI4Y/1e7ZKBsfmQJQkdz5M1xg0Z6m\r\nlPNzUJVVA6W49PiOSo8QpiwiNWvvxh82clezZqFqsEOALBx5YS0NokyDMpK9\r\ntimhiXATwDGWhl3j+aYqUKwKP8wzAbdstlyYR3oOPlVV2YetKGaHxisiJQ+K\r\n9D2sWctEyuLXG7yFzmv0EL0Ae2pjA+BtpaIQ5VJOmXCG5od76Gz/VQlLpvCW\r\ntzkfvd7ir7oRhqnGAtJyOtHreHM+2yzodwV2mty23VkryLGYN44fN/UII3XO\r\nIXJSz1/NhaqpCYtu49jv1TFQ2XaEPmGipWuQADHAkc8XcThVHGooh7BkmQ18\r\nNiS9AEUR8Twxudrob2+OtfAdudZdxHrnTp5ingmD1GBaYQI3n5M8W7lYyU5o\r\n7FcCu7aX4dklFYK+fxb2KbMkjJkd9Bru5TkFNDiFj6+GfbqXTGDowpMH5tP2\r\ni07wK9aAkULlow33eY5K9NZmnldaG5Nm92Q=\r\n=Ei9K\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.3.0_1663275547934_0.023387889822270136"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.3.1":{"name":"async-option","version":"1.3.1","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"ef52e4f6e5e92f6ebf5753a8b57445c0bf8872b2","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.3.1","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-os6ZkVjnvlDAUHfRuVHRCHSKCudJ1A8Uuo8MdvCYLD05Oju6XE07biw0S3LtUM9nDDYBOK+74mzCpCLQ6XEVSw==","shasum":"75dc62364e398cb20d949ebf089aff8744e3de98","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.3.1.tgz","fileCount":13,"unpackedSize":59523,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0GIwz3f0wcwUUVBJYIoY1xqG7p7a+03uECuNFIGvC5wIgMhwFiOC6b2dK2qRZpvDjPxAQfAXhKn/ehLFq508jopk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjI5JKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmohuw/+LnfvSUO/El3YRjteKkeOUlkn7dtRMBfhyzkuwPmb/SDRlF7a\r\naZ1VsAJ/pGLzAA2nvRWq6YylGXvdI1H26PnwAB/nYPzqCe53BlpRp1WzyPPC\r\nMb6UcZ9r1K6gjgj0hFGYR8OO2NZA7isvmtxmfo1LRy8KsrBefMpdA2U6OVqM\r\nAnqgpYTEWFwZfPSlWFfCbkV4NSdja4c7iSzE70GRKo5589razTT7JSG4dwRm\r\nT4pC4J8y2YIlQLwE93FEDNy6dREOzHZTYl1y9baAs+JMmabTrEQa/f/TfX2O\r\nmzJ297amy9/xydKJ+CU2R5d8DHv6hZ1jROzJMo1Y49qBLT3qsyYYSl4Aa+ua\r\nPz37imoB8t3NN9cxCQDHwOz2s0tXi4IuBNm2m/lxqGHTddGdmHryAdFBjDgC\r\nelFhboT5hbtp5Dp00QT40CpNp1Ro6nXQapoUwCGrD8x1lx7AzcOxeoQTIiq7\r\n4pIDreMcJNjafVMMcU1r3QEbu8vwKZ1UioqbBVM5GdDRQvyalj+2M1g9614c\r\nL2/IAOzsIfpVdiU6YfwDhZlVe+CWzjNAGpPk6o8qT27SMkaKrzD6tUf4AJDl\r\nTrk+iG+EFQzqkcCTLfj2PMeRS1uGr/VyRVbFQoiLXYy4PsS3Kra0t+zqt+cE\r\niD1rOqgzLcGa0rgElnyoqBlFw18hadjrqbo=\r\n=jI8s\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.3.1_1663275593849_0.45959651887519093"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.3.2":{"name":"async-option","version":"1.3.2","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"111a369c9d20c72cc89942aba448c26d054404aa","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.3.2","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-K+xPEcGMK7mxRRF99Z5D5L/RsSDzobnWvyzPxG677FvIdwHiOAMtKhofUCCilFAy6yW7VLifaHT5tEFrMEofPw==","shasum":"5a88975015601afcfa17eec96d3783be64b78a13","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.3.2.tgz","fileCount":24,"unpackedSize":42763,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZy+12vEUfoBJITFTOdbTZpbVTcm0gvJZfwAp9VKMYAwIhAMY06ar7SQcpw4XX3BTwCfKabxCnCw8yErpy68ROWt4/"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjI5QTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZMg/9Edd4C1hfKdlg/RJD8XUKhKBgw28KLzy6zcB3oyi0k+zbopVu\r\nUQjjm9lEok21sqKCTplSMbD2gVBIuM8d8pIHMIZC+akIj7DoHZ2dMQLI+n0n\r\nIeDF8C7sCmrW+3Ct5wHiEVaPXts4aNjBS3kAb+K0CqU1T5ijZ53tet4MyZMz\r\nWSAx1CxrgWfZTpUpywr/K+vC4k8/zA4Jl+SiEzo2UqjoHoKmpyn8nHUr2FtX\r\n5VkgCT5nssc4WNhZwiYuaJaUY3u+if3BBtuH6surZS/zZDlavu9agElepO7v\r\n6olImPE4Xl5HNs4y2nUKTYYYykjICngQdWbBRtl/99rBRxjB0Djvvuxfwknk\r\nJU07DxoahOAJCKmw02+RheOLcssgICzyYeoiSweTklP4YUkDa+wd2bn8vQpq\r\nvsdUBf9bmi0Ut60Uxr+3H8r0J/mgncPQDGl2i0oE2Jo6t/dmJHg4qHkVrDWy\r\nv52XESShZy1X1vwZzQz9ETxr8SOxU1FbX7tKxcu4kR1w0pvLZIWfxey4J7oG\r\nVF1MHXSmsNdBN7BiwyN4QYxBJdK1hHGL9zY+EksmzU4OHpe9Zmzg2spWR3PN\r\nDL3DIEAsJXZ4dYmnyH3E/se8rGvT3llEgq2qFbONxlIDPE6t5H9bAFPFCqdG\r\nAm28TpxRB0gs1ql05cnFVzFUYitDdA19cvw=\r\n=FwHo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.3.2_1663276051747_0.08976607700762917"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.3.3":{"name":"async-option","version":"1.3.3","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"b1f5fcb4c3a61e52e21ad0b6658925539e8bb45f","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.3.3","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-KBmIj/hAgQR+BKSD9hir+0cbSi7Sgi7mMsRgGXVwwwlh+g2pfByW/NgoT0Y9+RscQn7cxsTGGTnqUnUE8zTkFA==","shasum":"bd0d953ec3abc885f1add72b4ad5d3a2aecefbd1","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.3.3.tgz","fileCount":24,"unpackedSize":42837,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFa6C37g3iExtKnz0ZzxGsbLIfpDwjeoW3DMRt3MkPpRAiEAmEaQyceLei3aO1Y0hK1o0ET2YpqwpgNaKoQZnMbP6xI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjI6qtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRNQ//Rq5jQSiEKFcbQZUEdK+7RI+EXgsprAQ/ombauMFTwSEdJ9FM\r\nSSH6RXgW5vb3VZNbgOMUwrjWJZzxkfNuDsWj2VwCJ7P7x5QB/zpipwEHGXlb\r\n/TRBAkwPnqVuNmWI9277NRFH6MHspGv30Zr0nUoG11KTAS/olVCZVX0H++wQ\r\ns+sX6HVWfECR5v0sOar6qpED37+OptdFc2zrS4jatUkhUR4OKjVKfRvm08Mv\r\n52GWJBuy5phtbZPTVIPy/FU2RE5XIX6/ixf56xmHKGdsIPAMXXUav7eMf1bY\r\nQAYvM9dCrZDujZACj3IWDh8Bjvn/IeYGEFYr9IlhYAUdKe5n7vk7mUsIt4WF\r\niuzMkZJi+ftzglS61jmHERcpyjc6v6g6Q3x4Z6rR8y1EVsTBaKvE0eh3O/zR\r\nT0jSIKt5MwNaqm9eGcBRfG19OLOXFd6NqrA7WjFR+J77FxaFnF9fk0p/K265\r\nsXeGtAOb9raBYVjncTh7xMv1mlZ/V5jtdzlfac0c+xg5NdRLaCxVhPxuk4XJ\r\n/uGwe/ip48q0jBPfJpvnIjA4PFXw9Fix5ExTN1g2bJb9GMpOZ1phC7oBwYMZ\r\n0fuN0KPEixxDJrKpcLnMo56BB2d1lUKxjwKr/5omv++ljlIJUkTC78CaW1QY\r\ny1JqHN37S8VMFnD4w9M6FCarvqxH8SqKro8=\r\n=6iUD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.3.3_1663281837093_0.5731436298926553"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.4.0":{"name":"async-option","version":"1.4.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"5f7a1af022f109b0a10342a27de3610900317ada","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.4.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-wv+EdtjaJ6nkEQfBXTBweOb3Y01VRWrEpPpHj96C2bzx0joPjHjjhmFq9oyYun+ALfJnydmnffKs3bydDHy2Og==","shasum":"c1f6742c39fa16b8d90d293fa494a6ac6e571350","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.4.0.tgz","fileCount":24,"unpackedSize":42837,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAI2GAojtr+Na9Z//3ZBjfL3mxW7mLcSBNytQxMIzgfqAiEA1L2Vhw71fEw2YG8Vy7Wbd+Ds/sMVHYAokMobVltaseo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJN3XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqftA//SGcEtWX4fwYIYKd6Ob2vLg+2YHGgWhQiC2swF1wNNhRMvKRd\r\nm6Zj5UUi5fXrVgs5Dyp6YoxTIOfJUq6YMplL8M+6cCjjFTYsu+W4EpJ26zdJ\r\nsJBCYMA+FYULhKVhrCFtQ4EbyH8CsEGK9YnT16yjLurjZjA045JB1PHGNGIK\r\naJytQCVB/QD+aQqtNufvYPmOGC3jmewnZs8PiUvspdtRZDjFSWug8v2l203n\r\nM83lijhFJ6Dt4QhFR9trmBwPdKw8jBVOAhDQCh35Y0CPsxxAs/HuZM8pEhYa\r\nbzzZojVEp9n4uYDKvbBBtCCISzEKXQQhoR2k0bQaqJ0+ID9ors9cjH0nRWw3\r\n4+1lYI+5SQA3cD4OV5hqRayZxEv7bfGVgEDtCJiNgQ3PSE+gdrs/rzObi022\r\n5i2JZrrrenmr5FNwnggs9zDrwJANHxb0lKFMt859a010F0G9n7MQqKtCn/Sj\r\nqnMByfzHId0pUfrK7Ry47T/HRGW9xZJ1Kn6Ew/1rjnVCYbKHYUrYRSd/6GBR\r\n+PuCoh1rUwT4sMiaorr++gtp9dXDixpS5LOHyVc6qimxZ58YZMwliJhaVt/A\r\ngnKUnq6iNtZus66R6yxcsKV6I4IQPD3XoHW3v+LUh9GbBKWT9466W+e9e5nq\r\nfHm28qxhEjEAIugxC2DRjzlpo+RJ1Xl8v9Y=\r\n=bjuc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.4.0_1663360471574_0.09835496349917427"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.4.1":{"name":"async-option","version":"1.4.1","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"5f7a1af022f109b0a10342a27de3610900317ada","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.4.1","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-00+zoruSyZxbGEP5/TrDbHhIwLnPrpnx4awV84W0WcgOh7nCnTbcPz1xSoORQh53yR5eC0gY7RZqY1R/r1+taQ==","shasum":"50a6769a0848cf0274fbc74e3c0015128a5b5bfe","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.4.1.tgz","fileCount":24,"unpackedSize":42772,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEXq/MFnsyAv0ONil3SzPefbM39sAbgl0meJh2TEYzxuAiBoZYo3FCZa/1HaOFzOtqoVk0aKpIomDesyJVNKKDbNVQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJN3nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2dA/+OHeLg8sqx6T43mVe1p+oasJl8bZhkFUT2kKrYHljrQI8+Y5H\r\nhqWpDfgluTY6CVrg9R7DUIeWFtf7PyGJ1UJF1vDq/UCvXx0OWUXWhCNsmcwP\r\nXtiIl/pOQiw5pKYLTY6W+r0e40RH3GDdq7FKX1CIgS5Doz8Mcg9PJX3PHz5v\r\nSEuypwrqPPRR/xOLGvhck+naNn9Gp2eNvI/1z4MwxrzPcQeizudtIwUblGXK\r\n3TtR5SRqVVhnc+Q0ZptxMaKTQgp9rnOB6oGDRFIer6jiENJsVRpgUCSbMJvU\r\niigPPfFg49uGdf3QVBfV1lMS3O4mqRhZjPXIG7c2LashL++DVaXwS8RE0p/Q\r\nMULYIIvestmKbf7AmZCxmyqpB2lI/3d/JewlU8Atkwco7KMJbHpAuH69qACp\r\nRFytpZEO7ymrQCLHABaFGOTVPPaCsb7uhnjDiurpuo/p0fKKpMwBPSnHyY8l\r\nZUNLKHPtaU2pSFeZkx3d5VdgDGVDaLaCHr3t9tPP2RvsELAy/7obMkoTqV/b\r\nWzJK5W1vfHuUNwsyrdL0/ob7sLR3Vvv4OJSNxGdeqVdmRvBbKJ4jdR1j/2hO\r\nJT4PJrfUKoW+JM3T0osZ8CKVY3o8VYrEo0jqB/5ayc8yvMoHzx6RMaHJo/hD\r\njra+WUKeE1gSRBR/C1/BkDbAUdOlFuWbQVQ=\r\n=StV2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.4.1_1663360487432_0.5044942176397567"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.5.0":{"name":"async-option","version":"1.5.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"43809c338daa307158104ddb0fec28e0e5aaa039","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.5.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-u1JWSV4k59GRcYmXcDCNrjo/M996J+tOr+z/pD7KXjSfSZ32blgV66iuj6qwrP0S3PJnre+Vh7C4e7/d9V51ZQ==","shasum":"9857d0a378049a62d324e035d2868b6cd4d175b9","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.5.0.tgz","fileCount":24,"unpackedSize":47465,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrh97Toa8gGaLY4EoE8F4nG9oDrAbKImP2phe912LsRgIgEqpkwYMKinJwjHjv8eNnvWO+DxXYdWuyq8Gjp5+ELZU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJf5/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmow+A//djdB82uMmQCOr+1RKpLnvkH2mYpRsiIFCtWcV5lqQYOqjpYH\r\nbZIlJ9ITBqBUkMzLVr/jUTgSHc5kXB5z6RMIBQsF2oOtXBYIeXYoLzPsnNyi\r\n4H3XbdKPFCjbaqzjK2P+cZL/mLaxrhuYtTiX8PlEAODBMojgL22LAPX/Iejl\r\nJQMf1z5xJvRM8492b3+HKapl7GjC1i9FOSDyUPtkdg7jHLMClMm5DMAhmq/u\r\nyWwTfO5W6ZZehhMsxPt6cWV3NGVWio0iH7eUmaFTkaz+FHm/LI9HYRmxJpLl\r\nFCpIaLRyYI7XTXbOxgB1hlQtSeRSlck07huvcQpPMc8NjWX9081tml+MLS9e\r\nmp2uOKNPah1XKFAO0zFi46clVPEFfCDTXHM+QbuiIu/aRMWr/bf8fUgtcxu1\r\nolBp5l4YAJxSvaMKVpphYl9DtQv61RMhtL3CcnY0RYTj6Xl3lTwZX1eeFsx5\r\nw0+K62FCXzJOpYxbV132bW1B0yVILByTn4wIE4dMj4t0kla7cwyCRGhkU5Ox\r\nRXocbVcWZGSVNzgnXdP6JVLOaNtAygkcFrxmcPyJYD5mGtuwT8/cRUDiILAB\r\n45PB2VYirz0zgomoziD9wQ53oL9CqXcH8JaoYqfkc2k7bCFQMMY4kt3XcLHq\r\nlAQG3jiF9KT5pLNO6HwkBLWUxJ7ycG22au0=\r\n=WXvJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.5.0_1663434367458_0.09821288065619727"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.6.0":{"name":"async-option","version":"1.6.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"7e290bdf619e77d38a410824178340a83b94022d","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.6.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-j88rBAaKSFf10OunjDn+ZejjdSjcCBQYJF2ripvCqTPEUJCJvNUQUQj0NbwLR4cYVPZY/Hpo52KQbCikOAPdow==","shasum":"c0faf37462caab0b8a94a8223b8c5e81971a3b0d","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.6.0.tgz","fileCount":24,"unpackedSize":47497,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAR2npGARZlLRBscCdYN7FfZuAw4/7pxuCWL+6tYqA/1AiBsfWku0KTbuRCTb8tFQfYdfZxa0rMsNyOxgJVaGzNUAg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJ0gXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5mg//eF4JlR+UGgueUUd1wpcbqbLBukLojqYqfQHjzAKG4aFU6AxH\r\nBoXtjLq9cbrN5s7Vj56OYf4gp68ReApo6uhhn4UaLeSejKhfYLTIkPAl349F\r\nd/kekATiNk3875fVTDEU3RHvJ7G98zjDMJA9hn6XbnlDRy449KTU1TVWMyv2\r\n/gztvZJDsv9V0vOARoYYbK08NVSHvxJid5yRgJb0yV/07ghZJHnPwcXKoWWS\r\nH+enhloNIU37t71HRyfPYZCnL3Zg9LU4x8eV3Z05zD7U6bl4AOAepSCQZyb6\r\nvKEGI4ntN/7LKmmE1XFVTi6ulWvGXikL3VLHL9XtXFAeZ6GUpNPzzFtaz29S\r\nBlX/X/5x+E5pVVXzsfC+5FzzDwfLTy+iCcnhrV8ZC0qkv75Wb0m6K51LQS7m\r\nd4IRgV3mH3yCREFE4OaOUUTxye3vDKOd2J9N+W2h4nQ2gFgekt3q3HCVG0Zy\r\nOHZsx0r229wYbtIW/WQWgNHNYzQ6bGHqYURJOluDQWTwzfAcIxiFr3ydu0ka\r\nKuj0Y3TLKUxWLw5077WMy0JQCVXvQVH0zIz53EFdKUziKUggMtqukaSmqQ3Y\r\nNk+CQq0bVXFj7VZZBjl6WZFh5/RRzdQSDOXFK+WHhwGrCHmaEkltyvGUIHUd\r\nxLrWDc4Zw0iEGWhovIIVmiP/8w6sRz8tsHc=\r\n=NkEB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.6.0_1663518743701_0.7464426683484204"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.7.0":{"name":"async-option","version":"1.7.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"1d52e3e53ad03ee61f066d022a077302c2f9ab75","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.7.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-ZsDtqvrj6tKiZsS+veIYbhyOYn/EHo/e2mpV1OrbFxMf3nZ5dmcPpBFaQCfTU9MLdFJlhaMcapvMxzTsZ07r9w==","shasum":"46687ec0e3441f99ca6c457f41e1266addcf2edf","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.7.0.tgz","fileCount":26,"unpackedSize":47969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICAywkPrGX6YDrkop+/GaMEgWH/8ZYT3w/KXJO91D01iAiEA8ByCn6S1C5djMoyjsQeHTrzes1m6iYaof46oxdCgMV0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLPBUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmryzg/+Ij4Cvh27c2KHoZGoQzgqYbjTV6GJP2QArPKcHRks8DrQ2ZvS\r\npdYKVgmFJYfyq6gLAAZXh/FP/5R9exS5EOjWEy65KK8L+yW/7fVMQAEUJD/g\r\nho141scvxzx+lGpktM55c5UWUiRiZ3/Xdm2uQjysgODiIJgionyTzu0zwv+z\r\nH+HlHw6uQIjfaym2ZRA3uRwo7MWOeD7VYCr3P+iMws+r5fo4BkpqQiDOxCRl\r\nSeQ1dVhUfXAhK2oOy+O6xoWCuwoaIQuXdZXIH4E3H03lkQyA0DaSb9DgOXom\r\ngWENOBFyotOhknXTzGQRGOSI1Pd0ow5EVq/bwzlSF6jwORNsmquM6DjfDH4M\r\nCWUjJs4+z1OhXgpJ6v9n6uraZWXj5Db6xc3mUR9jvHHfNbMiKyXTEQzNVGac\r\nR/D+Xyls3kq4uKE4u8d22kSdzGqR95D4e+QpX1SKDJQYiVt7mWTX2132pR0+\r\nyFwP3AdCxGTPmV9WZ7pOSU3nq4V1NNgSsHtFctC1+UAXh4eMRD9BHpVmIOYt\r\ns04k88V3qheWE9OTrT5Q8fGUQ5ZM6/Wg6o9rBI4XyXBdd4hRA1TTbjsrgAPS\r\nktmZ7f4v6LyNCS8as9VN9NEc6BlZcxClQ2uvdeheHy6uWURCjXatbkP0Up9I\r\n/ESmCl229Dbt5TwOT7Ad1B04ZsQpIpIQTvM=\r\n=XOBz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.7.0_1663889492508_0.43079892066223024"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.8.0":{"name":"async-option","version":"1.8.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"971326dfb6a36e34e671325f7579c36fb6f82d60","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.8.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-JytAK3d+tWx/p5H1Rs/GcaZAzlXBylLkssEbj8WQQdW97kUA5/oUlVk10RHaBknr8n1pvPu1FYkOeJ0WOhVOSA==","shasum":"b9f07b021ce4d607d5e322eb064040d5907a8454","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.8.0.tgz","fileCount":28,"unpackedSize":56447,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICN+B379nj5sQCh7+G6EeKv39faTk67vRWv7iL8Fpx/HAiEA0wKqO90OyskHJVRlf28lyLQdKum148vlcNZFc5iiPn8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLxWNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCgg//SDQODcdVq1u33riwweMNHl1/M3zLHprkNs89WUD5I9CQKqNV\r\nl/K/gxi5JMHq+zewJGsub6BSeH91AKUEdyboEqkrCFn/3qx/MNZomZNFeecE\r\nETzI2SmZkl8QdfKNi1I/K96vs9NzRB0uOMhqrMYoONaFBEImIz06SIq61xVM\r\n2r3M0leYwXUOzvBbPbuOX3fSvggggVWRbvanmlx3NgV6gXOv3ppcWh0JgKeO\r\n7XMci2kw5tiwAq7N4YqTztY8WbC1EnN4xwLFbUu+cmHQdzECtZWbBSvq020/\r\n9QTzA61p1m4P4qYxlHcm4UGBmyeD2rPEa7zBIVHglaXKWFuXQUTp3SHaQvAB\r\njMWr02mk+4T47ZF7q8fTCVnzhQf4xOPz/iWt/ySzLGBQ3ZZSIUMJfMobZ12U\r\nNB1SfHvCtWfJd448r4t+Ck25eHbFZIp/kUIM9NgeDrfRiapVaNkXV4R0WA+d\r\nz5ftPpE2vX0eop0BsjThFQgGx4z6rSJEq9Thli+NKnvi+M0AKFICcBo1PeYy\r\nhc3oqZlYkWjjT4HAZqAqQJX2rYlEoISUOGE1+QyZEj6IuAienzecytq3PL0C\r\nSkO6LtmWCmKiJUPCBKFBrMLHgAHVXw/mnuttmRXq6FaFUE/MwqK7lo25gmFc\r\nVKHUpjwGRLfaZWVpaNXz7Pxpn5fT6pY/28I=\r\n=6vyz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.8.0_1664030093677_0.578721407898591"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.8.1":{"name":"async-option","version":"1.8.1","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"7198b9205c3d1aaf59ee1823b891865641700e4c","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.8.1","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-qvmwOJJvY35qRkFMX+4n8vBgRHe14WVnMG6g6ki0ejNiixOG8aH3Vu5IY/VqeF6/nAOPRvwWKxJnCqW4SN0rvg==","shasum":"150567df6e087fb844019f57e89172bb8f30b9b7","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.8.1.tgz","fileCount":28,"unpackedSize":56525,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFln1oEv4pICVk6oA7B1kJsoaVj7v/KkPxwim2ZDWA9IAiAEf9888SwCenaj44w+yU9CVBeiFFZGsH843uUAUKXqRw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLxXJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqqMw//a74J2uhTANDtfFfaCVhnaQOqCzigUz71WqcOTO4D2h3YfbG3\r\nhubrrHQhKUDGavJ2F6JCkvpWUPY9/FHZRCKU4FSZCJoqPsPhs/uHG7SPYtwL\r\nk0rqHPYPSoDpMr6VjGYwn+4LF1pvs9EARUvxQn8IiOzUZ4aW0WfK+Xekgi4V\r\nxWrK666CQl4oBF5w7rA1ZYzcsbVkMFeQwEHcKsljCZilJ2OColZDYcVjD+el\r\n+hQkUMB9Qm7Fgx/afVhJNwA1clVw5elGk/mxjyi5UI8hiAImkthrCX7GxUXx\r\nKVVt5RgQrcIhwzPk+BPB7Y1k9lfESmVF7pt4RM75qfbQ9fRzT2dyDzP/XUmn\r\nr2k8Bxj2UHygKwaEra1RlGm/nv9tNao5jlZiw6EsJjZRfuSPruUEwpDoGkuz\r\nR3gA0bJp1Z332wPuzXgFJrl5XDnksREWCXLEm8WwhDRZp4s/4bYhyQUA5ExF\r\nnae8xYjBb2KIo3MALoAFRiMhAlfjDsQIXM0guU7+E59r/46NedQMle5NB7D7\r\nUP7GCqkmWnpl+hQJRraVVwBKMHxOCIj0QB4Ar7r9e63XYQtzEhRvkNN4If07\r\nWLNClUixxeCQa2h+jyB/b7b1pCW/K37W/UVN30102+m7pQxHC1fv0c38rKJb\r\ntx/T7gjAlt9yo35o5OvMSVqYHViuruasXjA=\r\n=7iqC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.8.1_1664030153265_0.5064777423314784"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.8.2":{"name":"async-option","version":"1.8.2","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"8c399f4f2b9c9a4ed7795604e39b5b3393b33605","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.8.2","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-nARF9W7VhyW6sEXQIAsO68an7zHriReWrfoQd1+Y7FeXNHsmsFHhaV/wWkSypafY4OPKZUCt0d/Hzta7IqekCg==","shasum":"82f2f9d6b6777a1cd6006bf4be73e1e15b9f5b01","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.8.2.tgz","fileCount":28,"unpackedSize":56931,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQ5u8B/F3Tu5qerKK7C629nVebciYK22AXiur16mxZNgIhAOcnKVYnWRTYkW9M6KLl9trWDCocGwQCyWTsLI4jPdWQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNNH/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqt8A//UNe7B3ijFNY80Y8HVM7SKHZ82EoAHMQm+DEsyIRutkxqG3f/\r\nWCopBboxuQZsAYuUXExtKWPhlVECiBL3w+DcnIG/psXnysE6eOBdaYo4hgKa\r\ncF3S1Gulid+BfH9WClb5jX1SB8+BKuXvwrsCtsCnhUe8CNrm1KYQlNmPupbq\r\n+goCmewDUuAx51cGvWTvouYv4X0ndoyVcSeXU5o/Ta1FvCm2aLZxiQztBYBc\r\nb222iEw/FqWFTE7+V5KJ629S9cUsve4049nrDeb4AJGRRfiJgBE2feKyILpC\r\nzKfcu6VxWYtqLJJdwHrqRvmbWuyOAOuBbacNnpMAM4+JSn4XB6jJiMWx612w\r\n0iLsFRdwLFSFzfXtoTmx33dpdAWkPzpMgELKbRyc95m5FVlG11EdczIZ5uMZ\r\n9J88e0Ok8CjkB4iUN25ge29br+CmXwhsHpfxeEd9zKJM3k/OCNkW3IO+yLml\r\nQRmLZ1C5EBs9V3QvmisgXMGbp8KNPCffRJirbBFK2G/jDU7dTPrp4zqIaryA\r\nM7v46E3xX05qOpPTSNzROlnPcluKTfcP5E1tLvuIeP0khoWuNyNZX7BfecN8\r\nvLJ+TzV3pgigkN/Lon8s+UIk1sg9ZkqFNIaIlUk41b77/3lNehCNY3DEvDCq\r\nOMvrurZ0zsPlG5XtDXgm8afWiG/LLgGvMiY=\r\n=X7Cu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.8.2_1664406014976_0.05760785644120059"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.8.3":{"name":"async-option","version":"1.8.3","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"2157c40ccfef436d3de3654ceb6d73efa97c4ebc","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.8.3","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-zhlAB0kI8dcdFDTWHJH6A6VQ92i5GQK/d3cpYU0ZwplgURG83ZACncbxrvKBV09Al9L6zZwwgmGk5nm3Wu3aoA==","shasum":"83ef164411b2ec172aeb07609129e0858e190e19","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.8.3.tgz","fileCount":28,"unpackedSize":56945,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPeDAKo0oO1NC1eb9PX28Wu2tJaRD+8h8I9/IL8s7cEgIgD05xZP46tydW7MZlyMPPO16DCLhXD7zw/DVmJvWaqX8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjOIiyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmof2g/+Kem4JZeeeY1sJ4DrdEaOkfTAIXG3ksYVvtAsVg/S5fE0CFGN\r\nHxmKu1Op1TvfGayaU3h6O7rCD1M8qMMje25hTOxS4qm6uO8J3B7GRq6QCBYL\r\nO1/GUFdixygGG8vCeEZDaJaSR+hO9Jv8XnmTtgO04dA3eRe3pdGpnLK5lkIU\r\noUSiDwOc6ObeYWv+MTAIs+gcJkHS7hrtxr3ZZAKHKwmYVrnuUPN+hgT/4ma4\r\n8vEqog6NwE25PbFaXN7HMo5rAKRMNe6ZKPaHcgoue9Y8httZD0J9rXzFKTuO\r\nnW3zIbeOtFlKO9AJJo4b+XpocV1NldOyXC5YuzBwXesxewbnzWbyQK1UzraC\r\no+88EL8nhg+GbRdWfHDJAfOyzdJndgocY03kg73HHJ9kY/qm23h1T4rx3CUr\r\n8ZQ6jiKvBy4BgxMXSnLltLoVJ8VLo8gRZWIKH7jXXgOMkt2OkmZqKEMP+IlT\r\ncganEP3zVt2tjivYnq0dgLFcHzb7AlxO5/4QsHNxbewwltzXXZnPwIN7K5Rn\r\nY/QYd09ks/aE3vbFWGYDHjUMW9E7raGK+NGXqL28c9Hn9nXqI9ahiM+ovn+B\r\n36yVAd3Rx+GxUP3qF1FUcWv246TlBcfyAxhyzqP2FiyNChB3p0JSpkSI4KCE\r\nIQtegZQ2k5IprvQqQ5O/nmTcUyF50Rh2TBY=\r\n=Ykaq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"m.redcoder@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"m.redcoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.8.3_1664649394329_0.46999264395804996"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.9.0":{"name":"async-option","version":"1.9.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"a1053dd02b4acf501f4798b296231efc52a9d2f1","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.9.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-UT721WL4CmCrTuUvxvdy5Vpvl5rSGlAXix4FCs9NxDnpcidDD3HVKz7kfSWnXB37AwStP4NjtQXPrS4hLNfU0g==","shasum":"361c9d73440048b98ddb4e9a35875935a82cd9e6","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.9.0.tgz","fileCount":28,"unpackedSize":59179,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEtdyQb1pd0Xmyaw2lFJb/kA2aCeDjclfD1iIfCYrB3FAiEAnbyMFfGTbb+e5RZNoJqdSyZ2kqXXLNSJ3smoriUWr+I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjc+/yACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr2zQ//RSYQjbTYdHYaOi/Q0k8IqRx4i37wkTcdCQXAB1JSLhNr6WRZ\r\nP6l+sGue18eMkB5Jd0kHknIcV8QmqD1oNJpKffweEdX92aXBcUSRc7CPo72Q\r\n8PsYlNxY9NTCXUGRx5nv/Skv5qKBcc4DdvN8vYbsYvpP9xulSY7zIq26Q+KN\r\n64wAA4rgYIszM0ltH7UmFKMV94tWbIBgtBux223dtt10jBqySOapVXD7q7FR\r\ndru7fnnEfmOvdKVzuB6WQbTrZH7+SyjqpuDDwIHijY2Yzouk8mFB+eOFtJWs\r\nieo4sufq33b0vnW/rDFqY2om7eejVDXlL+0g+/ZJ8+a2sWc45iieoevlDMSM\r\nuTSDPI12bYKNfYPrca95eLJVo8LLaJE2Ew9F308uu+hEL4w6nWNJpKVnrbfZ\r\nNFW2t4YFJjG42v4CRqVr/HaI5LJdPCHEB+Rw2889jzHdXSu5K8sYKMQLCpII\r\nL3mJvixgksKZxUQRmhxtddBBVAI1HGdb2iNYWAyFaLpPjeKAZhkYWmUOpze5\r\nR2JRdMofQN6q4IQq1kDyHzwTgGJiZ63nEryYtoqzpzqQ5WfQd3G6KxZTX/CE\r\n6XlNFvlzi0JTI5br0/1f2Ez5Sqw7+vCugyaBJBqxxULiPbqn2Uea/zVHDZa+\r\nGdBmOsAr8PgZxTC6tleApnecswjFuV5JrSQ=\r\n=j7Eg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.9.0_1668542449853_0.1624560676932003"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.9.1":{"name":"async-option","version":"1.9.1","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"214d4213d9f3d53ae1a567aa7bc8bab7eaf22af5","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.9.1","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-Y43rUgS9dLEX9JAvsVo+4Z7oYVgA7TMYZoF9S0KnoxgkTiRgdv9MI2JHi8R38LaD/bL9jlDApc//vGX5wnX3sA==","shasum":"4300cd82950eed2f01a3831621e7426126912d8a","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.9.1.tgz","fileCount":28,"unpackedSize":59197,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLF9vfe5PRkrDeSu4o/SZjxKYpujSp3VO816t9PhquVQIhAJwV0HDtarTnbAjzYeWZ0I1km5m6CTI1ZT7YUgrCpFli"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdKRbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9Mg/9EKLLVrTPyEeD4wdH+VJsPEkamRhgEdssmpcuTc+OHuI2XKrB\r\nx/AyF8Fo1xRGuptXeeYnIcUDe9i1VGAj9B0Jiu9uk4NucJib3/vLC/Acxu8k\r\n77gwgfPKtNII/Mx0bG5tfHvTYcw98erqzG7d44YA7mogRtBN4wZtLWpFhHaK\r\nmn6Q8YQyBEF5cAzb1D8b58SorioF4suwwvI7a4Xa4431rFES1g+x62vYqqtv\r\nnFgu+cQ3HrFuVLWZd+HuGLQpYUnAvASBJv7ELTI6CzNI9sXhFCdUDcYDsX/2\r\nEp2+YlvdSfBR48va46rHj59Ps2OSdmzZL77Yh8rxJvA9CWKc3GYx5D8Z9RQI\r\nCfHUVdfV3vdBwITyM0MtU99CDFOwvTt/jzKbJz4+DNzRA4Zl+ii5bTzlwPS5\r\nYt9g24W/Fs5kRBZ/3K8Di1htoiH/c8ROfWIq7nnXyKX/6CVu55lscKHTXq5m\r\n7PF+6Gc7ZHnIXQtP7SMMFBLV81EbtmkMrdBSew279loFJs6qMBYsAcOkI4MO\r\nafzlgOjMshvS1DSOb90xs5S4sRNTjLiNqlcUyNl73FhH7VEf8/D3NzRr4s8T\r\nicTi88KcQFcqn3plhi5fxJhtUzVAnrPV0lNsDiq5iHNkanHM7k+GwDh1YToB\r\nzzLuMhnXY8Dxpb33aqL0qYWpbZNTvwVX9qE=\r\n=gcCF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.9.1_1668588635544_0.9248574989124043"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.10.0":{"name":"async-option","version":"1.10.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"2f5d2fff78e2ebc05a8f36d717ce315b88f2ac81","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.10.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-495UC3CbwPBKBiChqdAaDg5cnSfXbkrK7fnYY76A6KDN4TVQIjjqCuR6QD2KoGRy73L/QL5YxI+TKp83AYnSTA==","shasum":"2d024465e101be5edebaa160684b4e1dc965131a","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.10.0.tgz","fileCount":28,"unpackedSize":59356,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLOIalyJZCPVPC4FhZvg3r8RGdlpWyejU41Xd6JFlnJgIgfJEyJUnXU6FhYLjgeMoi+ZgSNDiKRec6KzYW8MDyiLg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdpYhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqYgQ/9HpJw8If+JeymmJ+HxaIORxzR91m0Sk/gOo8nlN8Z3XC4nq7y\r\nMxcNVcC+sQOlG8z6MoxdZmivVfAhA7BqJKjnn9SkVvmEFu8RwLcvr0PP+RUi\r\nD4/t525TeX2qlLV5oqFQ+hY0NUi6nyoZP1UZBN0l0M+7GQvujs9FxHTGpebW\r\n93Ee34wkBIFuzUc7pY8pxyV10kg1Ulm7lrugLeTdvhp48pcKWJddmG6nIX+C\r\n2TSDkClp2rW8JTb2I159rzVixwfTF+XaH2JfC9TisiTiqYWWkbNdVNmZF+Wy\r\ncnOOK+gnII0LsvK30LSbz3hu+qm4nAKmO2r1wnBz1fVLK6zokHJ2T8/PIC4b\r\nahiIfoL0dTowvRaQwGk5XIjqzS2l+rFfB1rL58f/9cDnm/bZglj+P++pqMGd\r\nBOfhGiQm7d1b4piD9Bl+vyD5qHc+2bR/tsp5YoVSwyUEngctueR2AuZFLVGg\r\nXx8GIY2S+Y75JgDBn5x3bpLtizXweqEOyf+lq1Ul3LvnwCKhVX1eKNM2+1Zn\r\nyebdz+TRv+nChLY+TsLsH75aW5cGExTL8OanAUqdsMamOmt23qOyWA7/DxNG\r\nuCYs/AUqkTzFF/hHRQQWZrKDMzHdwELG1bZkJ3Mk7IQXnwOluC0LGDzSaIRT\r\nr61n/3D7q+vTrPOo3VHNjw7NLfSkIJm8xDs=\r\n=cZMo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.10.0_1668716065185_0.0746027636652784"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.11.0":{"name":"async-option","version":"1.11.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"13ba12f3e7dea56a8458bc6f2c9b14bf6aacb893","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.11.0","_nodeVersion":"18.5.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-ZlW4gViBjL7TYOCyHSqak7Midp0mMsIlL5o8RJWkc3205Sua9rdXigk9AgEEWVWTX+tpD4fM+RyDYi/W53pEAg==","shasum":"48e283f4f4736a9964951e874679228ee1fdc585","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.11.0.tgz","fileCount":28,"unpackedSize":59804,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAIdy9ECvUqHI+Ww5j4HkNhwoJg9sdZjp4iORQ2BnwrWAiEA5jfSpQn2LJ8eH35zVtmDt13PKXj7ABhbols7N9Q1yAs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjd+ARACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoe5A//a2mcrkIRHTjqmlAOQTPKdpOu+8BPu/swm8gItl7YPdhauw8A\r\n/Q0h/Lihcg8tHY7oPdObEbGD+xk6eDr8jgoMR9jLrdg9aNRlHDj8IpLiK3dR\r\n8zgPzK1/Bi/P7Z4YFFUYlctwt+hdLil6ETaMxDCPxGuS4VUmf4KGPBj/yBqM\r\n6VpRsU9E+b3pAdIQCkBsNI3C6ssHzTdAWx6Qfay7sjZXWmohteXYM2ZyC8VD\r\nFN+xN9Arsmu3GBMqEhLuXeHPDeoogJToL8XkL605lKb8ffG1Zz7Wc//Kgc2l\r\nt3bb+uvuOnohqTCPcc100WPnJaVGLW5fqGIAs9i2bxAV2Ag3MiiC2qc8iIqa\r\nRzAtQhHZ1zLYsCYE3V9i5ulu29gEzwqmjF3TJScBz07jjrq8RC7CPqq9bpZl\r\nDkZkUJATipBbwf9jtXWHNnUfe9sbEpLrXyrqxMFp2kJx/zvnPJ5SxAcvgV6a\r\nzBtS3oCmsjhL4VtIiNHZhkauhWEN4sxxM33AxnusGNQA8qEXUCy8Ovj3GiWq\r\nBGg/2XcuifHsGW8cs2mKIeeY5S/qgM0qewlKb2knV1epabkpecDrIJNkHJuq\r\nytyanVT7FBNlJv6JRrIwqDPiyna6iNJMJiicv7BHRRrXesz0bOYWo72wfr3R\r\nl+A5SaFMbqb3NtWCpgx1opy0IcgRyWN8hZc=\r\n=8zhj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.11.0_1668800528963_0.40996505618970147"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.12.0":{"name":"async-option","version":"1.12.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"486c2e7de58a9200b5d2c7f326f01c821a20f4e8","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.12.0","_nodeVersion":"18.5.0","_npmVersion":"9.2.0","dist":{"integrity":"sha512-ctGQ/6tIry6/2GOkmCC3d1u/crmjr52xbh+DwK8gF2IUO/JL99fnW/G279Tl8RsnZxI5bi/+x5/bCfIV8QfsJA==","shasum":"6dc0ff0023e336bb20a1c4d9c727c4112424c0c1","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.12.0.tgz","fileCount":28,"unpackedSize":59804,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtlv+p1f2xeun0v99rOc3TgiXFRn31BRkzybjN2wtCfAIgcYQTmGLdtpPwFPl6JqMn88bwhyGFQPt4r9FS/qbf4J0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsXq3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqYsQ/6Axf0Gwbxn1x/c1dmN8f+Yhc0Yzr1KtftLqzfGrgF3wwdCloG\r\n6W6EuzHBkZV8Vi+DpgLIl304MqGlkeITMYZdAtCKmeX8L0x1hgzMEe8TG6YU\r\nCXUEbSeYyF6WH33a/KwGna/JtD86/lmYjay6AfhQ3zLfQzAmGstQLn9815XF\r\ncloHAOpqgIdnhgDqulf/dPRrZqd1z8iRYP4pF/a9hKwdN6ltixAS3+4e+K6p\r\nffwizNp9tthy3qPoCqY6sEBJPwWhiwyLzc3NOz1j3doRT2DCHoIiM5/NqsHK\r\n1wmAgkrldmjx/Im87ZbewYEYkEp3gza5UA61jLgYltCkohInPYx+783Yxk1O\r\n7yn8Jlug3vPts1tCyloLsRgQFRE6stAxqqsJ2eO/P7OBc0GNp71vHJYrf8K8\r\nPRi/BOanH/+N5w/m7NqGGP98tYA4gEbSGGwfhgY+8KuCw8GXdkjvPF9fbOfc\r\n/Q/vQo9SfdUpjHTxk3EczM2M7LdUHqkdDkBRcjCUGjUTjQ9+Gk06L2+8+o4M\r\nH93ex+ML8cv5M6HPbK4jkJfTNAcwQ7PC77jnQWxoGVACqjWOT+T0WqOiBz4Z\r\nZbqNJ59kNAKklvHwCvf4ctXpTlHkORoGq6zHCEXtnOd197mkFw3V/dgYCnoT\r\nk/mA4DyOGBUoAmrQxCGuoAOSc4z9/BtqqtU=\r\n=aDGF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.12.0_1672575671529_0.7223246791457696"},"_hasShrinkwrap":false,"deprecated":"Either use the latest 1.x version or migrate to the next major package version."},"1.12.1":{"name":"async-option","version":"1.12.1","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"main":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@types/jest":"^28.1.7","jest":"^28.1.3","typescript":"^4.8.3","value-generator":"^0.2.0"},"gitHead":"486c2e7de58a9200b5d2c7f326f01c821a20f4e8","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@1.12.1","_nodeVersion":"18.5.0","_npmVersion":"9.2.0","dist":{"integrity":"sha512-5PPs0tYq/kSmSlydX2UycRxpzNdcUc0vNY3DZBLXIvYRaXSrK7i4D9RKPYkLZmxoL8xbSwb0kd/tKOvzUfAt4g==","shasum":"1f2c965703a8f6f932d999e48a2f1484330e46cd","tarball":"https://registry.npmjs.org/async-option/-/async-option-1.12.1.tgz","fileCount":28,"unpackedSize":60489,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH/rFpebCW0XIMNO7f98giCAaUjX+XlgjW0q8IaPECSAAiBRblJYFbO4hnv0Oq7Du+warwCl6F1/KUBfu6YkDA0s7Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsXrpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBaBAAhH/a6QKf6oQGVDx4DIkWle1cM8dQF7cuVnPPBVLNitlRdRzj\r\n4fvWEkaqb12t99BAVb88VBvpoP3iUgwAZjusoL1N2jyAYEXNTkG5XFuaxHpH\r\njXsjLESpN1MwDvpzJRJodU1pUvciKKsblkK8KlceYGZi3HbHi+e2IXnnKpPn\r\nupxsHcbZBek4mWkN+AQaFo87eXzJ+CQ0HabF7dp715fTaAivMQbpvYSM+vp4\r\nBEtZmne2w+/HAtxuOOxrxXuXmWNPkyGLuEistXDImP/Yf9s9TXKtGu5PsMhV\r\nFeENYzEeRBePG/fepmTEfafYUzaSnZavL5d4CdtsL+xSYGt+YiQWGk/q7Px+\r\n2vy1Kk6JfiIxtFvDfGOcizejvGQUxIzUGYU7NU7YWSs5P0yaRtq3Z/jicZDl\r\nJAYQecyB7IoefV9bx7gAgeMOiat7bIWOqnsmYLj31Bh/qsXdjFtFs5IDRWO0\r\n06h8kConD9kqg2HDL3gYtYxqSa4QE2dlk3JJx6ZSvabCeIPV0U/GPRk4jB5Q\r\ndJhMkghFGRNbbNwF1O0V7kJpBs6N7Iwo77/j1T7jIZdq2xJHzgSwq4YX/GAf\r\nFfrOqUd98S55JRmqj0PvavA/0rjLSENvYKY+Y4k+LqviXlBdp25YQ4Nevyyc\r\ndbuzxIfkmeTZaPWWCFc2ynsZyTdBz478KTs=\r\n=2rjX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_1.12.1_1672575721330_0.8652076644914422"},"_hasShrinkwrap":false},"2.0.0-beta.1":{"name":"async-option","version":"2.0.0-beta.1","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"license":"MIT","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./async":{"require":"./dist/async.cjs","import":"./dist/async.mjs","types":"./dist/async.d.ts"},"./async/utils":{"require":"./dist/async/utils.cjs","import":"./dist/async/utils.mjs","types":"./dist/async/utils.d.ts"},"./async/utils/option":{"require":"./dist/async/utils/option.cjs","import":"./dist/async/utils/option.mjs","types":"./dist/async/utils/option.d.ts"},"./async/utils/result":{"require":"./dist/async/utils/result.cjs","import":"./dist/async/utils/result.mjs","types":"./dist/async/utils/result.d.ts"},"./iteration":{"require":"./dist/iteration.cjs","import":"./dist/iteration.mjs","types":"./dist/iteration.d.ts"},"./iteration/signals":{"require":"./dist/iteration/signals.cjs","import":"./dist/iteration/signals.mjs","types":"./dist/iteration/signals.d.ts"},"./parsers":{"require":"./dist/parsers.cjs","import":"./dist/parsers.mjs","types":"./dist/parsers.d.ts"},"./utils":{"require":"./dist/utils.cjs","import":"./dist/utils.mjs","types":"./dist/utils.d.ts"},"./utils/option":{"require":"./dist/utils/option.cjs","import":"./dist/utils/option.mjs","types":"./dist/utils/option.d.ts"},"./utils/result":{"require":"./dist/utils/result.cjs","import":"./dist/utils/result.mjs","types":"./dist/utils/result.d.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","build":"npm run lint && node scripts/build.mjs","prepare":"npm run lint && node scripts/build.mjs -c prod","postpublish":"node scripts/build-cleanup.mjs"},"devDependencies":{"@rollup/plugin-terser":"^0.4.0","@rollup/plugin-typescript":"^11.0.0","@types/node":"^18.13.0","@typescript-eslint/eslint-plugin":"^5.51.0","@typescript-eslint/parser":"^5.51.0","commander":"^10.0.0","eslint":"^8.34.0","eslint-plugin-deprecation":"^1.3.3","rollup":"^3.15.0","rollup-plugin-dts":"^5.2.0","typescript":"^4.9.5"},"readme":"## Description\r\n\r\nSuch monads like \"option\" and \"result\" are commonly used to process some data and have an opportunity to catch any kind of failure. Option can be a value or the special value - \"none\" - meanwhile result can be a value or an error containing additional information about the failure. Occasionally, the proccessing data can be fed asynchronously. This library implements the basic synchronous variation of these 2 monads and additionally the asynchronous one. There're also a bunch of utility stuff helping solve the problem.\r\n\r\n## Examples\r\n\r\n### Options example\r\n\r\n```javascript\r\nimport { AsyncSome } from 'async-option/async'\r\nimport { from } from 'async-option/utils/option'\r\nimport { extract as extractAsync } from 'async-option/async/utils/option'\r\n\r\n// parsing some header line\r\nconst HEADER_LINE_PATTERN = /(?<name>[a-z]+)=(?<url>.*)/i\r\nconst contents = {}\r\n\r\nnew AsyncSome(readLine()) // some async input function\r\n    // convert `T | undefined` to `Option<T>`\r\n    .bind(line => from(HEADER_LINE_PATTERN.exec(line) ?? undefined))\r\n    .map(match => match.groups)\r\n    // if all options in the object have value, returns a compiled object of their values\r\n    .bind(({name, url}) => extractAsync({\r\n        name: validateName(name), // sync option\r\n        content: new AsyncSome(fetch(url)) // async option\r\n            .bind(res => from(res.ok ? res.text() : undefined))\r\n    }))\r\n    // executes only if the option has a value\r\n    .onSome(({name, content}) => contents[name] = content)\r\n    // `AsyncOption<T>` extends `Promise<Option<T>>`\r\n    .then(() => console.log(contents))\r\n```\r\n\r\n### Results example\r\n\r\n```javascript\r\nimport { Success } from 'async-option'\r\nimport * as OptionUtils from 'async-option/utils/option'\r\nimport * as ResultUtils from 'async-option/utils/result'\r\n\r\n// this pattern is incorrect and used for demonstration purposes\r\nconst EMAIL_PATTERN = /(?<userName>[^@]+)@(?<hostAddress>.+)/i\r\nconst EMAIL = 'me@example.net'\r\nconst ERROR_MESSAGES = {\r\n    'user-name-required': 'User name required.',\r\n    'invalid-user-name': 'Invalid user name.'\r\n}\r\n\r\nOptionUtils.from(EMAIL_PATTERN.exec(EMAIL) ?? undefined)\r\n    .toResult(() => 'user-name-required')\r\n    .map(match => match.groups)\r\n    .bind(({userName, hostAddress}) => ResultUtils.extract({\r\n        // the function from the previous example\r\n        userName: validateName(userName).toResult(() => 'invalid-user-name')\r\n        hostAdress: new Success(hostAddress)\r\n    }))\r\n    .mapError(code => ERROR_MESSAGES[code])\r\n    // passes measured result i.e. either inner value or error\r\n    .onBoth(console.log)\r\n```\r\n\r\n### `Iteration` namespace example #1\r\n\r\n```javascript\r\nimport { map } from 'async-option/iteration'\r\n\r\n// the first example wrapped in a function\r\nfunction parseHeader(input) {\r\n    // ...\r\n}\r\n\r\n// our input\r\nconst input = ...\r\n\r\nOption.some(input)\r\n    .map(input => input.split('\\n'))\r\n    // `OptionUtils.all` is bad here, because we parse all lines at once,\r\n    // and after all we do check whether they are valid or not. All functions\r\n    // inside the `Iteration` namespace checks result after each iteration.\r\n    .bind(lines => map(lines, parseHeader))\r\n    .onBoth(console.log)\r\n```\r\n\r\n### `Iteration` namespace example #2\r\n\r\n```javascript\r\nimport { Some } from 'async-option'\r\nimport { forEach } from 'async-option/iteration'\r\n\r\nconst pairs = [['a', 123], ['b', 'string'], ['c', true]]\r\n\r\n// creating an object from the key-value pair array\r\nnew Some(pairs)\r\n    .bind(pairs => new Some({})\r\n        .bind(object => forEach(pairs, ([key, value]) => {\r\n            object[key] = value\r\n        }))\r\n        // `forEach` returns iteration count. So, we need to map it.\r\n        // you can also return values such as 'break' or 'abort' to interrupt\r\n        // the loop (see JSDoc)\r\n        .map(() => object))\r\n    .onBoth(console.log)\r\n```\r\n\r\n### Creating `else-if` chains\r\n\r\n```javascript\r\nimport { NONE } from 'async-option'\r\n\r\nconst DEFAULT_INDENT = ' '.repeat(4)\r\n\r\n// we want a `string | number | boolean | null | undefined` -> `string` function\r\nfunction normalizeIndent(indent) {\r\n    return NONE // `elseIf` fires only if option is none\r\n        .elseIf([ // implies logical AND\r\n            () => typeof indent === 'undefined',\r\n            () => indent === null,\r\n            () => typeof indent === 'boolean' && indent\r\n        ], () => DEFAULT_INDENT)\r\n        .elseIf(\r\n            () => typeof indent === 'boolean' && !indent,\r\n            () => '')\r\n        .elseIf(() => typeof indent === 'number', () => ' '.repeat(indent))\r\n        .elseIf(() => typeof indent === 'string', () => indent)\r\n}\r\n\r\nconst INDENTS = [\r\n    'abc',\r\n    2,\r\n    true,\r\n    false,\r\n    null,\r\n    undefined,\r\n    {}\r\n]\r\n\r\nfor (const indent of INDENTS)\r\n    normalizeIndent(indent)\r\n        .onBoth(normalized => console.log(indent, typeof normalized === 'string'\r\n            ? `\"${normalized}\"`\r\n            : normalized))\r\n\r\n// Output:\r\n// abc \"abc\"\r\n// 2 \"  \"\r\n// true \"    \"\r\n// false \"\"\r\n// null \"    \"\r\n// undefined \"    \"\r\n// {} undefined\r\n```\r\n\r\n### `GenericFailureError` TS example\r\n\r\n```typescript\r\nimport * as OptionUtils from 'async-option/utils/option'\r\nimport * as Parsers from 'async-option/parsers'\r\n\r\ninterface PortParserErrorMap {\r\n    'bad-input': {\r\n        input: string\r\n    }\r\n    'out-of-range': {\r\n        min: number\r\n        max: number\r\n        actual: number\r\n    }\r\n}\r\ntype PortParserError = GenericFailureError<PortParserErrorMap>\r\n\r\nconst MIN_PORT = 1024\r\nconst MAX_PORT = 0xffff\r\n\r\nfunction parsePort(input: string): Result<number, PortParserError> {\r\n    // proper integer parser returning options\r\n    return Parsers.integer(input)\r\n        .toResult<PortParserError>(() => ({reason: 'bad-input', input}))\r\n        .filter(port => OptionUtils.EMPTY // option containing `undefined`\r\n            // condition of faillure\r\n            .filter(() => port < MIN_PORT - 0.5 || port > MAX_PORT + 0.5)\r\n            // executes only if failed, so, no extra objects created if it is succeeded\r\n            .map(() => ({\r\n                reason: 'out-of-range',\r\n                min: MIN_PORT,\r\n                max: MAX_PORT,\r\n                actual: port\r\n            })))\r\n}\r\n\r\nconst PORTS = [\r\n    'abc',\r\n    '1000',\r\n    '80000',\r\n    '8000'\r\n]\r\n\r\nfor (const port of PORTS)\r\n    parsePort(port)\r\n        .onSuccess(port => console.log('port:', port))\r\n        .onFailure(error => console.log('error:', error))\r\n\r\n// Output:\r\n// error: { reason: 'bad-input', input: 'abc' }\r\n// error: { reason: 'out-of-range', min: 1024, max: 65535, actual: 1000 }\r\n// error: { reason: 'out-of-range', min: 1024, max: 65535, actual: 80000 }\r\n// port: 8000\r\n```\r\n","readmeFilename":"README.md","gitHead":"2edde066e6cc3dfbffb4a9565fc48e4e8eb5b4fa","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@2.0.0-beta.1","_nodeVersion":"18.5.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-26naQL+PTJLfEZJREeBiVYLKVmb7WTFYF9ZFWiNym0a8MAhDJ19km+YxlcXgZx2BppfYlZzMZcUVFmiK7Z5cSg==","shasum":"8d65939ed34d6a502288664e91248851ccbe14b0","tarball":"https://registry.npmjs.org/async-option/-/async-option-2.0.0-beta.1.tgz","fileCount":55,"unpackedSize":60859,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuVgvH+C5jj+7AD5PZz2tedj7molaBrVntCcn2ZbL9IgIge8E9g5IOX4E/757sOC+f65M+7V7dkNhiYoafbJz1l7Q="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj7S6wACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrxbA/+Mt2XIgynppihhuvMYgK71OZ1mKk0K8vIsjCgINvuEB+/YjBR\r\nZ+ULrntcGCGZFpOMwuCn2veaE26qSTmPEHT+4GTiq2V6PHZTq7hCpKObBrnM\r\nnU6rk3PkaP6b/22wsWh3T3DVUuFhwIqk2JKoWiT1ob+dAiPul0huPXZfPtGp\r\nANO9zko/bEQ8ZUTBED3CfA7dHR3udH51gC5hf4buMl7shHX+jYaqfCU23bFo\r\nNE/q9AvVhuVtiweK0kl5Pcv2K2ckNsGwjdUG8zLem8jg/3JQUXG0vUETgQZX\r\nQc4h5EdWQfwpApe5myvxQ+e+R1I3afoBmWQjgU2IyB+V2TZX2JbG45btkFMR\r\nENC6xsdf0oWpqo0WPul51hxDX1xzrjOoOmbSstMKzyCJw2oq/HMYtf8WAVMN\r\nmb+ZNWamyIjkYyilhY2NoCTS7r97Bh3hrNnuZvmNk+5Vcfa/vi/eY9/Bt5Pd\r\nLsRf/6RnDmHWf6Ug+9hgUScf6EVvCI1TBRHKryfMDfR4daOmRVUskXF9BIW6\r\n+HBfYUNoOOtve2Vf+B1/5BE8+NeuxCnGoPtf2qXrVnm/2PUy4TkHag1cphnM\r\nAOk1DsEkRm3q4SWmPfGPELSN8zMQXR3istiV2iuomPqexDK5dQ5XtOHxG7Yr\r\nEJc2md16pxjdwP/ErWnxWGCnTGwO4sj6oi0=\r\n=YsQ8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_2.0.0-beta.1_1676488367888_0.0929556571252228"},"_hasShrinkwrap":false,"deprecated":"Use v2.0.0."},"2.0.0-rc.1":{"name":"async-option","version":"2.0.0-rc.1","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"license":"MIT","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./async":{"require":"./dist/async.cjs","import":"./dist/async.mjs","types":"./dist/async.d.ts"},"./async/utils":{"require":"./dist/async/utils.cjs","import":"./dist/async/utils.mjs","types":"./dist/async/utils.d.ts"},"./iteration":{"require":"./dist/iteration.cjs","import":"./dist/iteration.mjs","types":"./dist/iteration.d.ts"},"./iteration/signals":{"require":"./dist/iteration/signals.cjs","import":"./dist/iteration/signals.mjs","types":"./dist/iteration/signals.d.ts"},"./parsers":{"require":"./dist/parsers.cjs","import":"./dist/parsers.mjs","types":"./dist/parsers.d.ts"},"./utils":{"require":"./dist/utils.cjs","import":"./dist/utils.mjs","types":"./dist/utils.d.ts"},"./utils/option":{"require":"./dist/utils/option.cjs","import":"./dist/utils/option.mjs","types":"./dist/utils/option.d.ts"},"./utils/result":{"require":"./dist/utils/result.cjs","import":"./dist/utils/result.mjs","types":"./dist/utils/result.d.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","build":"npm run lint && node scripts/build.mjs","test":"jest","pretest":"node scripts/build.mjs -c test","prepare":"npm run lint && node scripts/build.mjs -c prod","postpublish":"node scripts/build-cleanup.mjs"},"devDependencies":{"@rollup/plugin-terser":"^0.4.0","@rollup/plugin-typescript":"^11.0.0","@types/jest":"^29.4.0","@types/node":"^18.13.0","@typescript-eslint/eslint-plugin":"^5.51.0","@typescript-eslint/parser":"^5.51.0","commander":"^10.0.0","eslint":"^8.34.0","eslint-plugin-deprecation":"^1.3.3","jest":"^29.4.3","rollup":"^3.15.0","rollup-plugin-dts":"^5.2.0","typescript":"^4.9.5"},"readme":"## Description\r\n\r\nSuch monads like \"option\" and \"result\" are commonly used to process some data and have an opportunity to catch any kind of failure. Option can be a value or the special value - \"none\" - meanwhile result can be a value or an error containing additional information about the failure. Occasionally, the proccessing data can be fed asynchronously. This library implements the basic synchronous variation of these 2 monads and additionally the asynchronous one. There're also a bunch of utility stuff helping solve the problem.\r\n\r\n## Examples\r\n\r\n### Options example\r\n\r\n```javascript\r\nimport { AsyncSome } from 'async-option/async'\r\nimport { from } from 'async-option/utils/option'\r\nimport { extract as extractAsync } from 'async-option/async/utils/option'\r\n\r\n// parsing some header line\r\nconst HEADER_LINE_PATTERN = /(?<name>[a-z]+)=(?<url>.*)/i\r\nconst contents = {}\r\n\r\nnew AsyncSome(readLine()) // some async input function\r\n    // convert `T | undefined` to `Option<T>`\r\n    .bind(line => from(HEADER_LINE_PATTERN.exec(line) ?? undefined))\r\n    .map(match => match.groups)\r\n    // if all options in the object have value, returns a compiled object of their values\r\n    .bind(({name, url}) => extractAsync({\r\n        name: validateName(name), // sync option\r\n        content: new AsyncSome(fetch(url)) // async option\r\n            .bind(res => from(res.ok ? res.text() : undefined))\r\n    }))\r\n    // executes only if the option has a value\r\n    .onSome(({name, content}) => contents[name] = content)\r\n    // `AsyncOption<T>` extends `Promise<Option<T>>`\r\n    .then(() => console.log(contents))\r\n```\r\n\r\n### Results example\r\n\r\n```javascript\r\nimport { Success } from 'async-option'\r\nimport * as OptionUtils from 'async-option/utils/option'\r\nimport * as ResultUtils from 'async-option/utils/result'\r\n\r\n// this pattern is incorrect and used for demonstration purposes\r\nconst EMAIL_PATTERN = /(?<userName>[^@]+)@(?<hostAddress>.+)/i\r\nconst EMAIL = 'me@example.net'\r\nconst ERROR_MESSAGES = {\r\n    'user-name-required': 'User name required.',\r\n    'invalid-user-name': 'Invalid user name.'\r\n}\r\n\r\nOptionUtils.from(EMAIL_PATTERN.exec(EMAIL) ?? undefined)\r\n    .toResult(() => 'user-name-required')\r\n    .map(match => match.groups)\r\n    .bind(({userName, hostAddress}) => ResultUtils.extract({\r\n        // the function from the previous example\r\n        userName: validateName(userName).toResult(() => 'invalid-user-name')\r\n        hostAdress: new Success(hostAddress)\r\n    }))\r\n    .mapError(code => ERROR_MESSAGES[code])\r\n    // passes measured result i.e. either inner value or error\r\n    .onBoth(console.log)\r\n```\r\n\r\n### `async-option/iteration` namespace example #1\r\n\r\n```javascript\r\nimport { map } from 'async-option/iteration'\r\n\r\n// the first example wrapped in a function\r\nfunction parseHeader(input) {\r\n    // ...\r\n}\r\n\r\n// our input\r\nconst input = ...\r\n\r\nOption.some(input)\r\n    .map(input => input.split('\\n'))\r\n    // `OptionUtils.all` is bad here, because we parse all lines at once,\r\n    // and after all we do check whether they are valid or not. All functions\r\n    // inside the `Iteration` namespace checks result after each iteration.\r\n    .bind(lines => map(lines, parseHeader))\r\n    .onBoth(console.log)\r\n```\r\n\r\n### `async-option/iteration` namespace example #2\r\n\r\n```javascript\r\nimport { Some } from 'async-option'\r\nimport { forEach } from 'async-option/iteration'\r\n\r\nconst pairs = [['a', 123], ['b', 'string'], ['c', true]]\r\n\r\n// creating an object from the key-value pair array\r\nnew Some(pairs)\r\n    .bind(pairs => new Some({})\r\n        .bind(object => forEach(pairs, ([key, value]) => {\r\n            object[key] = value\r\n        }))\r\n        // `forEach` returns iteration count. So, we need to map it.\r\n        // you can also return values such as 'break' or 'abort' to interrupt\r\n        // the loop (see JSDoc)\r\n        .map(() => object))\r\n    .onBoth(console.log)\r\n```\r\n\r\n### Creating `else-if` chains\r\n\r\n```javascript\r\nimport { NONE } from 'async-option'\r\n\r\nconst DEFAULT_INDENT = ' '.repeat(4)\r\n\r\n// we want a `string | number | boolean | null | undefined` -> `string` function\r\nfunction normalizeIndent(indent) {\r\n    return NONE // `elseIf` fires only if option is none\r\n        .elseIf(\r\n            () => typeof indent === 'undefined' ||\r\n                indent === null ||\r\n                (typeof indent === 'boolean' && indent),\r\n            () => DEFAULT_INDENT)\r\n        .elseIf([ // implies logical AND (for multiple filters)\r\n            () => typeof indent === 'boolean'\r\n            () => !indent,\r\n        ], () => '')\r\n        .elseIf(() => typeof indent === 'number', () => ' '.repeat(indent))\r\n        .elseIf(() => typeof indent === 'string', () => indent)\r\n}\r\n\r\nconst INDENTS = [\r\n    'abc',\r\n    2,\r\n    true,\r\n    false,\r\n    null,\r\n    undefined,\r\n    {}\r\n]\r\n\r\nfor (const indent of INDENTS)\r\n    normalizeIndent(indent)\r\n        .onBoth(normalized => console.log(indent, typeof normalized === 'string'\r\n            ? `\"${normalized}\"`\r\n            : normalized))\r\n\r\n// Output:\r\n// abc \"abc\"\r\n// 2 \"  \"\r\n// true \"    \"\r\n// false \"\"\r\n// null \"    \"\r\n// undefined \"    \"\r\n// {} undefined\r\n```\r\n\r\n### `GenericFailureError` TS example\r\n\r\n```typescript\r\nimport * as OptionUtils from 'async-option/utils/option'\r\nimport * as Parsers from 'async-option/parsers'\r\n\r\n// might've used enums here\r\ninterface PortParserErrorMap {\r\n    'bad-input': {\r\n        input: string\r\n    }\r\n    'out-of-range': {\r\n        min: number\r\n        max: number\r\n        actual: number\r\n    }\r\n}\r\ntype PortParserError = GenericFailureError<PortParserErrorMap>\r\n\r\nconst MIN_PORT = 1024\r\nconst MAX_PORT = 0xffff\r\n\r\nfunction parsePort(input: string): Result<number, PortParserError> {\r\n    // proper integer parser returning options\r\n    return Parsers.integer(input)\r\n        .toResult<PortParserError>(() => ({reason: 'bad-input', input}))\r\n        // result's `filter` method consumes a callback returning an option containing an error, so, if\r\n        // the option has value, the result become a failure containing that error; otherwise nothing changes\r\n        .filter(port => OptionUtils.EMPTY // option containing `undefined`\r\n            // condition of faillure\r\n            .filter(() => port < MIN_PORT - 0.5 || port > MAX_PORT + 0.5)\r\n            // executes only if failed, so, no extra objects created if it is succeeded\r\n            .map(() => ({\r\n                reason: 'out-of-range',\r\n                min: MIN_PORT,\r\n                max: MAX_PORT,\r\n                actual: port\r\n            })))\r\n}\r\n\r\nconst PORTS = [\r\n    'abc',\r\n    '1000',\r\n    '80000',\r\n    '8000'\r\n]\r\n\r\nfor (const port of PORTS)\r\n    parsePort(port)\r\n        .onSuccess(port => console.log('port:', port))\r\n        .onFailure(error => console.log('error:', error))\r\n\r\n// Output:\r\n// error: { reason: 'bad-input', input: 'abc' }\r\n// error: { reason: 'out-of-range', min: 1024, max: 65535, actual: 1000 }\r\n// error: { reason: 'out-of-range', min: 1024, max: 65535, actual: 80000 }\r\n// port: 8000\r\n```\r\n","readmeFilename":"README.md","gitHead":"86b590076a8b414997513c39e1c2ec322fe306cd","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@2.0.0-rc.1","_nodeVersion":"18.5.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-z7f7tFNy3M0eDs4nqyn+XZO/X0Djoh8tfgvV7FAENdV4WivfEPLcgOegry6y6SkvRuMfaOuXt+P7xY0gzSc8ow==","shasum":"6d3c060627e97a64afffdda7969f932e9782c99c","tarball":"https://registry.npmjs.org/async-option/-/async-option-2.0.0-rc.1.tgz","fileCount":47,"unpackedSize":63445,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICKJX/5wTEtFWgoIT75QjLWog/beBaIB4hcAFpUIZrmtAiBzVoqU7DczQqQwNQQadPu6lgY7SbO9v9qiCyB7jx+rtQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+86UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7SQ//TrpYSkoJeoCkrKirOXdSJLHjvDV9L8sor2Cn5MnooCtnz86y\r\nvymyHGv3nV8vg5JxWdyBHpLtykIkmpErJEOayYka9ERKhBkmGkXtxBbrSWUU\r\nytVQBYa822RL42K5VcwK+up6PHKVk98smTWy1g1PeL7SluLO5zUOBZXmaMr6\r\nBX4a2Qglj/InKhsa8EY0M9rKvzhYr0p/wOWLQo/5eu7dMuxBTpjUON7XuhEy\r\n9ZWwJW3/oHCIKWYAMqubrzekqzkzFaPcxKkBgRarwD6HKIFDjBIWIzWNy5DU\r\ntG51M+SO/qL64kP2xK4ej56q4AI4kv76WN/PGNZXFe20a8oHMTrA9fYSB4nn\r\nEGhAc+PoAxAOFGo3OaVHkDQ0WP78c5zH1uqhWhdYDoUUmp15j2A9xU78W2XZ\r\nzZqOTOrXK+oc/4UtjFWk593US30eXs9jMgYoI1GjgcYGMdVTlirYUj9I0fS1\r\n4Pqm4d+1OuDnEtRRpH3kYcRLYbfnzLIR0A4TSHHFlkjMWEIcsV/KUdcwaYKL\r\nLBPszu4u/yCRzqTQ+qf9UvfNq8LSMCgxTPEWW7v0ZhQZkYRULgK3mC8NXrh/\r\nHjsawF/Txp7sj4mnkT27b+TUGHlr8SaWHEGqNnbzo9SxJaR+B+e0tlBBR+bU\r\noUK6CcDV+0IXFW4PmwUNMjeop2bX3r3ciwU=\r\n=INW+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_2.0.0-rc.1_1677446804358_0.5670881549189364"},"_hasShrinkwrap":false,"deprecated":"Use v2.0.0."},"2.0.0":{"name":"async-option","version":"2.0.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"license":"MIT","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./async":{"require":"./dist/async.cjs","import":"./dist/async.mjs","types":"./dist/async.d.ts"},"./async/utils":{"require":"./dist/async/utils.cjs","import":"./dist/async/utils.mjs","types":"./dist/async/utils.d.ts"},"./iteration":{"require":"./dist/iteration.cjs","import":"./dist/iteration.mjs","types":"./dist/iteration.d.ts"},"./iteration/signals":{"require":"./dist/iteration/signals.cjs","import":"./dist/iteration/signals.mjs","types":"./dist/iteration/signals.d.ts"},"./parsers":{"require":"./dist/parsers.cjs","import":"./dist/parsers.mjs","types":"./dist/parsers.d.ts"},"./utils":{"require":"./dist/utils.cjs","import":"./dist/utils.mjs","types":"./dist/utils.d.ts"},"./utils/option":{"require":"./dist/utils/option.cjs","import":"./dist/utils/option.mjs","types":"./dist/utils/option.d.ts"},"./utils/result":{"require":"./dist/utils/result.cjs","import":"./dist/utils/result.mjs","types":"./dist/utils/result.d.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","build":"npm run lint && node scripts/build.mjs","test":"jest","pretest":"node scripts/build.mjs -c test","prepare":"npm run lint && node scripts/build.mjs -c prod","postpublish":"node scripts/build-cleanup.mjs"},"devDependencies":{"@rollup/plugin-terser":"^0.4.0","@rollup/plugin-typescript":"^11.0.0","@types/jest":"^29.4.0","@types/node":"^18.13.0","@typescript-eslint/eslint-plugin":"^5.51.0","@typescript-eslint/parser":"^5.51.0","commander":"^10.0.0","eslint":"^8.34.0","eslint-plugin-deprecation":"^1.3.3","jest":"^29.4.3","rollup":"^3.15.0","rollup-plugin-dts":"^5.2.0","typescript":"^4.9.5"},"gitHead":"3b50a0a5774296755864d8f942e3902ac0d828ac","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@2.0.0","_nodeVersion":"18.5.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-egPv067D4jiBZwbInieL5vFJq9X3JdM9uoDzg71EOUE32/6QmSDAk48lb1Dm0Npu/rSh9irLObt7pBeSRKvoOg==","shasum":"462184f4f7786744146e36c69a0aed121133b21b","tarball":"https://registry.npmjs.org/async-option/-/async-option-2.0.0.tgz","fileCount":47,"unpackedSize":62968,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQJ7sMAEG8ulgJ+D/MbwuydLfo3Mo8Mq5EKnjH82Tl+AiEAii3ZeBys6GBi7rsNtlV7gL73BT6lWN6Kq6PnhHvqJXM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIcU5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogFg//ZULmldKvyOTBv6kAKwAWb5FGFQH5Rz67a2evyEESH9jDXVUX\r\n3CEDtSoZJ4oTDtcGowGkMUMyalsnporutDza0sWFZhJlYAadsxeWk3bOjz4+\r\nWOMPOvJDvwG+UXynXVbP80JEF/geqijvtmpEZVL6aiVLI3yYHLPG43Vodp+8\r\nI7YzwIYn+4Zhk5Bj4N0FRfVN62O3wYj2aprwxEFD/izlCDZW6uamJvk3282y\r\nutIyO8RrOGhlkEwgtIBql4zmyVcHdLei1InKKn2/R+HXsJTxYFBMQrRfSAbq\r\npR+tsFjpwaG8HwTdvy4V5vjPGF8yncO9PxRZ7E0SCz8fIcm1JEVw+Ve0Ow3c\r\nH8QvcwfBdZsuLamXlQp61ntsy4cTKp/TMh2fACf8mjZmumUMGsnflnN+yA0x\r\nz6o0NiTZhnVZB08DiPJlif9IVRIlTpdi9Kui/lTWip/7xbw4ZWqd1z7wtFiL\r\nUPfYxRRns4CM7TbopZwstQFfK1hJlB0kRgP/Bb58T4yvszqwcGUQAHEaX/6o\r\n1fFj1Hezqu+ZieqJHwC8U+Mma7M4nRG7Z/4pzFa+/uJntv0HpSW9v8ERY4hC\r\n5C50mUZyku0hDNydHbZoMlmambY6vjq3OuPOp1A25wn1+aRcnw/wZ6oe3IUf\r\nG0sHdIsqPYrv+6xiLL4j2Pm3/lXzgrC5pzg=\r\n=uZ1H\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_2.0.0_1679934777084_0.18314450769570412"},"_hasShrinkwrap":false,"deprecated":"Use v2.3.0 or later."},"2.1.0":{"name":"async-option","version":"2.1.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"license":"MIT","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./async":{"require":"./dist/async.cjs","import":"./dist/async.mjs","types":"./dist/async.d.ts"},"./async/utils":{"require":"./dist/async/utils.cjs","import":"./dist/async/utils.mjs","types":"./dist/async/utils.d.ts"},"./iteration":{"require":"./dist/iteration.cjs","import":"./dist/iteration.mjs","types":"./dist/iteration.d.ts"},"./iteration/signals":{"require":"./dist/iteration/signals.cjs","import":"./dist/iteration/signals.mjs","types":"./dist/iteration/signals.d.ts"},"./parsers":{"require":"./dist/parsers.cjs","import":"./dist/parsers.mjs","types":"./dist/parsers.d.ts"},"./utils":{"require":"./dist/utils.cjs","import":"./dist/utils.mjs","types":"./dist/utils.d.ts"},"./utils/option":{"require":"./dist/utils/option.cjs","import":"./dist/utils/option.mjs","types":"./dist/utils/option.d.ts"},"./utils/result":{"require":"./dist/utils/result.cjs","import":"./dist/utils/result.mjs","types":"./dist/utils/result.d.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","build":"npm run lint && node scripts/build.mjs","test":"jest","pretest":"node scripts/build.mjs -c test","prepare":"npm run lint && node scripts/build.mjs -c prod","postpublish":"node scripts/build-cleanup.mjs"},"devDependencies":{"@rollup/plugin-terser":"^0.4.0","@rollup/plugin-typescript":"^11.0.0","@types/jest":"^29.4.0","@types/node":"^18.13.0","@typescript-eslint/eslint-plugin":"^5.51.0","@typescript-eslint/parser":"^5.51.0","commander":"^10.0.0","eslint":"^8.34.0","eslint-plugin-deprecation":"^1.3.3","jest":"^29.4.3","rollup":"^3.15.0","rollup-plugin-dts":"^5.2.0","typescript":"^4.9.5"},"gitHead":"270a789612ee9ba18bb028daf27e61f9df556b7c","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@2.1.0","_nodeVersion":"18.5.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-9TAb+yG0bzIrYn+ecebYJAM3/M3znpxODxukgADwDL2L3meripvhDOoZDAX1/m5LOVciDsnvstAQPwp2KuPFHQ==","shasum":"9ead1b711237d13fc58b7980f32c9b1884a9509a","tarball":"https://registry.npmjs.org/async-option/-/async-option-2.1.0.tgz","fileCount":47,"unpackedSize":64053,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHzoPB2k3sSB8V0AF+EOJ+2I41ub40b+xHidt+y4F/VwCIBcCD6GEXo/Q6VYLJpXz6MtL7D/Zg3l8SvwYkEw3LIvf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJAbTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/JQ//dZlu3RW17H5s8arWSyDyFk7BTjdjoUG2PwySe/++JKwSRPr3\r\nRA5/DvVO1ZawMHCTYk5uJ1RekRY4BPTc8zuhmfsLwe3zOonTkXseQ6IsIs1n\r\ntok/lBUyKscNft8gpOyX4Q1lE5lImTxMFbKNhjIxF/IIxy3/knalnHzeEQhZ\r\nCYLXweAMfkZc00Eg4W5Hu0/a+11UPUcFlsEuUPH1kxmcra5S5/MA3jIB5bvm\r\nqU0tUxe7D827d7UhF2d0UhkuvXCDEbDIKKAxuFP6CQQ7sc6J1EYU0dM3yOwr\r\nwE0EohrHVCWUfhmAaZfyM3BF3yQZ7efpTy7cA4yWw/AWTs37M3dgeqIpFX5e\r\nPLVBulKqKVQyL8kDWwbwwFj3OCGPpy3oVGaozpj/SNl2EFuogV/qX8k5sT+x\r\n+ZB2sCFJQfxcQyPxWQT/dRHlrUBUogVpy2+6E0oRvMZmrClEGkBognl9MDEj\r\npPaPrLnb/lfBx8syqE3GDW+13LKOjOB3u8weq+D+sxBr9gL8umbOrt050Sxt\r\nzFXBCeNXhrzJMmB7jBGnM5Ss9I3iPY6+jgY1BWwU6aZSeBhDiTGmbn/qYaDD\r\nXOhw3ixBHn6BYLkihH/hgFvBPbOqCjtDnbSx0QGKGFzmTxhrRA5xMN8fm9lu\r\nVndVru0Vii/c6rnVpkGeNEW1nQmFVxK3dm0=\r\n=G29m\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_2.1.0_1680082643605_0.3791637038388205"},"_hasShrinkwrap":false,"deprecated":"Use v2.3.0 or later."},"2.1.1":{"name":"async-option","version":"2.1.1","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"license":"MIT","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./async":{"require":"./dist/async.cjs","import":"./dist/async.mjs","types":"./dist/async.d.ts"},"./async/utils":{"require":"./dist/async/utils.cjs","import":"./dist/async/utils.mjs","types":"./dist/async/utils.d.ts"},"./iteration":{"require":"./dist/iteration.cjs","import":"./dist/iteration.mjs","types":"./dist/iteration.d.ts"},"./iteration/signals":{"require":"./dist/iteration/signals.cjs","import":"./dist/iteration/signals.mjs","types":"./dist/iteration/signals.d.ts"},"./parsers":{"require":"./dist/parsers.cjs","import":"./dist/parsers.mjs","types":"./dist/parsers.d.ts"},"./utils":{"require":"./dist/utils.cjs","import":"./dist/utils.mjs","types":"./dist/utils.d.ts"},"./utils/option":{"require":"./dist/utils/option.cjs","import":"./dist/utils/option.mjs","types":"./dist/utils/option.d.ts"},"./utils/result":{"require":"./dist/utils/result.cjs","import":"./dist/utils/result.mjs","types":"./dist/utils/result.d.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","build":"npm run lint && node scripts/build.mjs","test":"jest","pretest":"node scripts/build.mjs -c test","prepare":"npm run lint && node scripts/build.mjs -c prod","postpublish":"node scripts/build-cleanup.mjs"},"devDependencies":{"@rollup/plugin-terser":"^0.4.0","@rollup/plugin-typescript":"^11.0.0","@types/jest":"^29.4.0","@types/node":"^18.13.0","@typescript-eslint/eslint-plugin":"^5.51.0","@typescript-eslint/parser":"^5.51.0","commander":"^10.0.0","eslint":"^8.34.0","eslint-plugin-deprecation":"^1.3.3","jest":"^29.4.3","rollup":"^3.15.0","rollup-plugin-dts":"^5.2.0","typescript":"^4.9.5"},"gitHead":"6f491380211df9aad12b54987cc31a2fedccafe9","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@2.1.1","_nodeVersion":"18.5.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-tPHLmi5cSSU1ncHYZ4weZlepGTME62aMBZbSS5rxmoiE5QxgVeLna6BA3MFh5mLLLuEo4Scyg+Y8oic6T9GNPg==","shasum":"2f177e91860f467b885dc4e673f81bcf2a20cdad","tarball":"https://registry.npmjs.org/async-option/-/async-option-2.1.1.tgz","fileCount":47,"unpackedSize":64067,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcxvnLyVD8NB2j1F1jlQx953UoYuefjb35m3t0h56mLAIgBG0CjkDEYDh2oKS5OA5JoepBFsh8bhet3Iizs3HKwCA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJGUZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2fBAAmMyx6tyc1Pv36AKnJwK7/CqYPZOpxQmDJ1E97MbbMv6FjIzw\r\nbLcU9OEynLDqwC9LClZux+8QSNj2iuJgF6wLzMEeTVFvY9s1l+/t+TfT2CzF\r\nCkDPUE0VPAZrC+73pLsGJaf9y5NaHlV6Ortj/W7r7pxnUpp5k5U8EDnIlW6D\r\nLq2IMcEaA5iyqro5VGhfTisrJzhSsMCHsqBO/VjhNIUxuTrK69bZHa8xd1am\r\nDRrECnyXH6jxxHDHv7Fmwzf4l9lcsOaHmJZ90WgaOXMdjKvqOTqTir1RCzjo\r\nIdYXdBcpgHs86hU0nhO8xoCqZgWpa6YbuqK2Y1Y6zL2UZn/9iOGKu4aIPK+i\r\nqr4+gHZr8jcfGxZmT2/MeOsLmOGvqJvpW5bGroUCvW8pI+xE0AG6J9jMLYhC\r\nhpB4SFpYpZzp+Thdy/q1gG8YOzegNdBMCTue2oZ5oGkDdrg96WlQkb5WgVfX\r\nxU/v//r0GR849FVL8YgVPU2HBwmUVI8pNMNiCkCguaUjqQxWp36nL/Hwl8jR\r\nPSaeci0p1JlmWoxWWiQZyTOQV4MXtEMUC4w4XBnpMzDB/LvZmMBuEy+3yRmX\r\ndFS0NfOf8IYBUlo1Io/pf2PbKSaoJRqBArazAFIwnzZgex/x6VJBMGw7hZs4\r\nbLTPbXVmTLckcymEkan3kccMKqQqF7HzFP0=\r\n=KU0X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_2.1.1_1680106777221_0.4055462799506433"},"_hasShrinkwrap":false,"deprecated":"Use v2.3.0 or later."},"2.2.0":{"name":"async-option","version":"2.2.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"license":"MIT","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./async":{"require":"./dist/async.cjs","import":"./dist/async.mjs","types":"./dist/async.d.ts"},"./iteration":{"require":"./dist/iteration.cjs","import":"./dist/iteration.mjs","types":"./dist/iteration.d.ts"},"./iteration/signals":{"require":"./dist/iteration/signals.cjs","import":"./dist/iteration/signals.mjs","types":"./dist/iteration/signals.d.ts"},"./parsers":{"require":"./dist/parsers.cjs","import":"./dist/parsers.mjs","types":"./dist/parsers.d.ts"},"./utils":{"require":"./dist/utils.cjs","import":"./dist/utils.mjs","types":"./dist/utils.d.ts"},"./utils/async":{"require":"./dist/utils/async.cjs","import":"./dist/utils/async.mjs","types":"./dist/utils/async.d.ts"},"./utils/option":{"require":"./dist/utils/option.cjs","import":"./dist/utils/option.mjs","types":"./dist/utils/option.d.ts"},"./utils/result":{"require":"./dist/utils/result.cjs","import":"./dist/utils/result.mjs","types":"./dist/utils/result.d.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","build":"npm run lint && node scripts/build.mjs","test":"jest","pretest":"node scripts/build.mjs -c test","prepare":"npm run lint && node scripts/build.mjs -c prod","postpublish":"node scripts/build-cleanup.mjs"},"devDependencies":{"@rollup/plugin-terser":"^0.4.0","@rollup/plugin-typescript":"^11.0.0","@types/jest":"^29.4.0","@types/node":"^18.13.0","@typescript-eslint/eslint-plugin":"^5.51.0","@typescript-eslint/parser":"^5.51.0","commander":"^10.0.0","eslint":"^8.34.0","eslint-plugin-deprecation":"^1.3.3","jest":"^29.4.3","rollup":"^3.15.0","rollup-plugin-dts":"^5.2.0","typescript":"^4.9.5"},"gitHead":"7a1d71cf6f8f6f7c86f1591915fd8d729d315c25","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@2.2.0","_nodeVersion":"18.5.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-OTsZSwphC77nha39Ac8RY4xOMROBeEEwu0/+hpx+SxctF5sqrFnscSS552DK/JWYv+cQU9nfhPkV9ptPaKiueA==","shasum":"49c3896f8ffa1de4c703c6909bc7adc25f37cf44","tarball":"https://registry.npmjs.org/async-option/-/async-option-2.2.0.tgz","fileCount":47,"unpackedSize":64067,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHYbf/nYkDtnJv30DVjE7HG+P0Cz6eaHJU/s+yWFHJ7cAiEA88RCX181yRk9n5ui2usPn3l6xkdlFp2X54b0G79CLzs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJGaYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1Hg/+O5ukoI8wlAjE3GBmNaerDZRd94cscgBe/0GZvNaGWlxLZBvk\r\nPxVW476/meuKjDDo4UDD/mXFhOAne5Pco5FmxohmGPIr1wSD7TVuhgvaITMy\r\nKCnDokoho2xUgy1uqi0eLto6E4Y+USMbYCcRdp6HcFPcs5PR1S7uI9YXnh6o\r\nQ4jvRiFJJw/k5e6j8LJRJMYDCVjiNEFtUm1OAQnlr87YlWuKL+yB0PQubUj0\r\n8CB55y5w39NpV3snfjlQbKPPBF3MyqjGiaBmfAfyJvuWUO9MTLrXbRe7WD7Y\r\nENKchTje89KH8DXoBZRYVuF0QSGrUqP7Z+OlQh8fQ7iQtJBzLlbjkaBp6u+S\r\n8inSmQZoW9nvLQhRjW4JFFfhmVmcoxng1UNvG24OXTIoZZBhj944rsMgExg4\r\nqMYnt76rdmQF0pvsQjLyf9V6I8c0jKBnMbcQ0bRigJOLzFsqMawfGi0w1Thn\r\nIVJcab6d631k7lDQ8mZSweHCen2FS9HUhHQFLCQ6ImgVJojQQCVRNkedp9RH\r\n6kWoiJXCcKwxjaOew28KZxj/g20k183KMRUx95Qce7r7/Lzp7NQgnEdGvRtO\r\n+JdBvDKoL4g5j6OECLR3IRkwv96LT2gAG9z5T0LG7rrSV1nupscs4nY1XPmT\r\nCoT3cYAgAy4cdJO3dJMzFwQdVA+25TUIebI=\r\n=UChb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_2.2.0_1680107160629_0.26951010663479"},"_hasShrinkwrap":false,"deprecated":"Use v2.3.0 or later."},"2.3.0":{"name":"async-option","version":"2.3.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"license":"MIT","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./async":{"require":"./dist/async.cjs","import":"./dist/async.mjs","types":"./dist/async.d.ts"},"./iteration":{"require":"./dist/iteration.cjs","import":"./dist/iteration.mjs","types":"./dist/iteration.d.ts"},"./iteration/signals":{"require":"./dist/iteration/signals.cjs","import":"./dist/iteration/signals.mjs","types":"./dist/iteration/signals.d.ts"},"./parsers":{"require":"./dist/parsers.cjs","import":"./dist/parsers.mjs","types":"./dist/parsers.d.ts"},"./utils":{"require":"./dist/utils.cjs","import":"./dist/utils.mjs","types":"./dist/utils.d.ts"},"./utils/async":{"require":"./dist/utils/async.cjs","import":"./dist/utils/async.mjs","types":"./dist/utils/async.d.ts"},"./utils/option":{"require":"./dist/utils/option.cjs","import":"./dist/utils/option.mjs","types":"./dist/utils/option.d.ts"},"./utils/result":{"require":"./dist/utils/result.cjs","import":"./dist/utils/result.mjs","types":"./dist/utils/result.d.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","build":"npm run lint && node scripts/build.mjs","test":"jest","pretest":"node scripts/build.mjs -c test","prepare":"npm run lint && node scripts/build.mjs -c prod","postpublish":"node scripts/build-cleanup.mjs"},"devDependencies":{"@rollup/plugin-terser":"^0.4.0","@rollup/plugin-typescript":"^11.0.0","@types/jest":"^29.4.0","@types/node":"^18.13.0","@typescript-eslint/eslint-plugin":"^5.51.0","@typescript-eslint/parser":"^5.51.0","commander":"^10.0.0","eslint":"^8.34.0","eslint-plugin-deprecation":"^1.3.3","jest":"^29.4.3","rollup":"^3.15.0","rollup-plugin-dts":"^5.2.0","typescript":"^4.9.5"},"gitHead":"4dab5065c8bf6f3eac7c3b565cd71e45803cb5b0","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@2.3.0","_nodeVersion":"18.5.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-IFnvpgart53cMTE+BdptuMraDaCxutOD0/nsBGY8lwiKPxzzMZyiSqmPXYPCEimTwHXKqlo8xtyWaBjcLSo6+g==","shasum":"b9980bede23be15174fa7fa52e0fefb5fcac584e","tarball":"https://registry.npmjs.org/async-option/-/async-option-2.3.0.tgz","fileCount":47,"unpackedSize":64234,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHKk2AiTEFO88CPizZTojvcP8botgJAD3lfgM0S5f75AIhAJ3YoikSiU1h8fQw+w0HdfmEVA/aUcifzJhHJuBT60kI"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJG52ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+Mw/9ElaSGRpMowpWH6JSk62p98vZIifAPT6BNDBqbl5a7yF1WNDG\r\nYgOTOSSVdIov0aFtgqudrEdKLSkXpJw0mXeS+HHhI/EAd1bkopNCUcA+upSg\r\ncKJtzWMz6LR+S0AjBXO6Xr091yt5x6kbg7uyZ/kVi0SSSFBI5tOzbmXAM3nw\r\nFeTm0axfd2zibJuBBFqeIAiRt2lMy+r82K4n6iStgYl0Hc2KkKjygxRMbtmy\r\nrjoyDeSOswHC/8J8ij8B2Knaff8j5FcMy5/bXpmcPEQaZKLI2WulaxnlQltg\r\nNRsWEFT+d2/IEXgT0d/6z3bEwyPLvyu5MFEdxxOrc+H02/27tm6f0d83Fqay\r\nHUgqZEvFVZkuEFIjOkM0WTAhqp92aUTcCIycM/lXvL6YrP/3bsRhJi06QpKX\r\noSpUolHuMm1c+YD15K4RMlzNWZb6Trtx522Mkto/mivyXlaPCRmwIizi8HiI\r\noooR3fuq8U90qtNEvHrmnEW1TrYL7grwANkp6iRGe0vBoLk6TgD/0zm+tFmZ\r\nyiXLdC2I3XqWv/HErz20mJYW/D7vYutMVltXvnX+Q3RTvluENGwqN0gB583i\r\ndTNy81wfr8CxsoTOsmHcv0i5N2tNgLAl3oO93xtnazaYG51nXEagW4NzE5Kq\r\nimYHNtiAbXIqviFHGbcnuI0tZpkb173Q9hQ=\r\n=iwae\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_2.3.0_1680109174662_0.9801434253972574"},"_hasShrinkwrap":false},"2.4.0":{"name":"async-option","version":"2.4.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"license":"MIT","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./async":{"require":"./dist/async.cjs","import":"./dist/async.mjs","types":"./dist/async.d.ts"},"./iteration":{"require":"./dist/iteration.cjs","import":"./dist/iteration.mjs","types":"./dist/iteration.d.ts"},"./iteration/signals":{"require":"./dist/iteration/signals.cjs","import":"./dist/iteration/signals.mjs","types":"./dist/iteration/signals.d.ts"},"./parsers":{"require":"./dist/parsers.cjs","import":"./dist/parsers.mjs","types":"./dist/parsers.d.ts"},"./utils":{"require":"./dist/utils.cjs","import":"./dist/utils.mjs","types":"./dist/utils.d.ts"},"./utils/async":{"require":"./dist/utils/async.cjs","import":"./dist/utils/async.mjs","types":"./dist/utils/async.d.ts"},"./utils/option":{"require":"./dist/utils/option.cjs","import":"./dist/utils/option.mjs","types":"./dist/utils/option.d.ts"},"./utils/result":{"require":"./dist/utils/result.cjs","import":"./dist/utils/result.mjs","types":"./dist/utils/result.d.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","build":"npm run lint && node scripts/build.mjs","test":"jest","pretest":"node scripts/build.mjs -c test","prepare":"npm run lint && node scripts/build.mjs -c prod","postpublish":"node scripts/build-cleanup.mjs"},"devDependencies":{"@rollup/plugin-terser":"^0.4.0","@rollup/plugin-typescript":"^11.0.0","@types/jest":"^29.4.0","@types/node":"^18.13.0","@typescript-eslint/eslint-plugin":"^5.51.0","@typescript-eslint/parser":"^5.51.0","commander":"^10.0.0","eslint":"^8.34.0","eslint-plugin-deprecation":"^1.3.3","jest":"^29.4.3","rollup":"^3.15.0","rollup-plugin-dts":"^5.2.0","typescript":"^4.9.5"},"gitHead":"5f16ade29902dc0fa7e105b26c6200f0a1a321d9","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@2.4.0","_nodeVersion":"18.5.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-v80wQo3we4bC4Dd6ayfWOptMkIKEyQXr4rFIDOroBGbqQxXTZvuhW/GWIntm3X1eL36mvQQChlCSX1gFUPWAGQ==","shasum":"fcfceb0130ee0ced58d7a389649be6ec57a89364","tarball":"https://registry.npmjs.org/async-option/-/async-option-2.4.0.tgz","fileCount":47,"unpackedSize":64553,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIphrRW442j6zzwKXhymv4YlIbwnpZxXmroAnrzk2QpAIhANeuM5S/v8Qv8ep6VzDfCHXKyzLqb57aXms0QzW3o/ah"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJHJpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpd2g/9GG6RQGCmIwNhy0ZpHptAKGV/d2FfPIP9lAWUm3/FemkfEZiM\r\nMrIJzX6CcD0GdjumHpBWnXntx9Psq6iJwdSsKBidVBauZE/ZiO2bozxC+tIv\r\ntL1bh7IQiME5oLgD3W3eio0PQw6VrumLM/i67m9bXC4DzYOyBQZWnQTlQLlt\r\nyNaPG5awVlHz+YSSBArs5jso0yib2nidBATGTqX8G444nACNmjFNh7ok9LKJ\r\nDtqgPMGSNYiO6cFYXqiMekBMXkBEO41GzDILEllkCY7tvdrUiCzuDLQ3uhUX\r\nMt/bhF03HQTVez5uBYHSUHEH/qqnY5rta9gw8MSL4Ixb4nLPX5c1uvicpXLA\r\nZ8SkYA7lT3vvBsP613F1i/zCecz/RXpKjLbweLfM2vewsQaLcUpCyYg41rZ0\r\n0I9MXI0boua1a0kATbGCSTYTTnyK1Fg9Ya2jhVRVyIUp0mSsyaz+rorfuvCV\r\nxaUI5ulE3Yuh+lmYTCX6S2lwStfW/9AwIXFUZIGslFPctSWBY10E2a9dV1Gx\r\nMWA6RArAYPbdZ07id3GvHHPmJ5IhMQmxtPPh5HzDnGQtcsPIk5iOGqaFHXay\r\nXGjfRIl1agU2Hm2nXMnWJB6J+6xU326DtAChDSYBthZP+/igwrK/nR78hUzT\r\nAb20nFGzm7wTZfudNlTQ2qyHTPDLDbjLhwQ=\r\n=UHDi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_2.4.0_1680110185567_0.12078954965317146"},"_hasShrinkwrap":false},"2.5.0":{"name":"async-option","version":"2.5.0","description":"Async option and result monads library.","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"license":"MIT","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.mjs","types":"./dist/index.d.ts"},"./async":{"require":"./dist/async.cjs","import":"./dist/async.mjs","types":"./dist/async.d.ts"},"./iteration":{"require":"./dist/iteration.cjs","import":"./dist/iteration.mjs","types":"./dist/iteration.d.ts"},"./iteration/signals":{"require":"./dist/iteration/signals.cjs","import":"./dist/iteration/signals.mjs","types":"./dist/iteration/signals.d.ts"},"./parsers":{"require":"./dist/parsers.cjs","import":"./dist/parsers.mjs","types":"./dist/parsers.d.ts"},"./utils":{"require":"./dist/utils.cjs","import":"./dist/utils.mjs","types":"./dist/utils.d.ts"},"./utils/async":{"require":"./dist/utils/async.cjs","import":"./dist/utils/async.mjs","types":"./dist/utils/async.d.ts"},"./utils/option":{"require":"./dist/utils/option.cjs","import":"./dist/utils/option.mjs","types":"./dist/utils/option.d.ts"},"./utils/result":{"require":"./dist/utils/result.cjs","import":"./dist/utils/result.mjs","types":"./dist/utils/result.d.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint .","build:dev":"tsc --outDir dist --module commonjs --inlineSourceMap","build:prod":"npm run lint && rollup -c","build:test":"tsc -p tsconfig.test.json --outDir dist --module commonjs --inlineSourceMap","clean":"rm -rf dist coverage async iteration parsers utils","test":"jest","pretest":"npm run build:test","prepare":"npm run clean && npm run build:prod","postpublish":"npm run clean"},"devDependencies":{"@rollup/plugin-terser":"^0.4.0","@rollup/plugin-typescript":"^11.0.0","@types/jest":"^29.4.0","@types/node":"^18.13.0","@typescript-eslint/eslint-plugin":"^5.51.0","@typescript-eslint/parser":"^5.51.0","commander":"^10.0.0","eslint":"^8.34.0","eslint-plugin-deprecation":"^1.3.3","jest":"^29.4.3","rollup":"^3.15.0","rollup-plugin-dts":"^5.2.0","typescript":"^4.9.5"},"gitHead":"bb5c1763484a75cdebf7e9ab2e3db509d85c6cc0","bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"homepage":"https://github.com/retueZe/node-async-option#readme","_id":"async-option@2.5.0","_nodeVersion":"18.5.0","_npmVersion":"9.6.5","dist":{"integrity":"sha512-b/IzXB+6/MtH71IEGE7Chx2C6vIsbg1qaa/iqlDuEQOrK9F+Jeo3PUaAndATc97W5xrbz/bqoScDVf4cpQ6Zcg==","shasum":"051835f0fb479008588300a929084a2d67745fbb","tarball":"https://registry.npmjs.org/async-option/-/async-option-2.5.0.tgz","fileCount":49,"unpackedSize":67903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC1Q8sNC28sxKYXUZuhvy2dfMP1H3tADeWv/K00fa71QIgDRl5tReuyOYNPNIDrzTnxcTF4wSY7RWXJReY7UWLS/U="}]},"_npmUser":{"name":"retueze","email":"retueze@gmail.com"},"directories":{},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-option_2.5.0_1685878887363_0.9323066376683538"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-07T15:32:29.039Z","1.0.0":"2022-09-07T15:32:29.162Z","modified":"2023-06-04T11:41:27.682Z","1.1.0":"2022-09-09T17:51:38.478Z","1.2.0":"2022-09-09T19:13:26.664Z","1.3.0":"2022-09-15T20:59:08.168Z","1.3.1":"2022-09-15T20:59:54.018Z","1.3.2":"2022-09-15T21:07:31.891Z","1.3.3":"2022-09-15T22:43:57.268Z","1.4.0":"2022-09-16T20:34:31.741Z","1.4.1":"2022-09-16T20:34:47.603Z","1.5.0":"2022-09-17T17:06:07.727Z","1.6.0":"2022-09-18T16:32:23.921Z","1.7.0":"2022-09-22T23:31:32.649Z","1.8.0":"2022-09-24T14:34:53.933Z","1.8.1":"2022-09-24T14:35:53.447Z","1.8.2":"2022-09-28T23:00:15.160Z","1.8.3":"2022-10-01T18:36:34.499Z","1.9.0":"2022-11-15T20:00:50.034Z","1.9.1":"2022-11-16T08:50:35.753Z","1.10.0":"2022-11-17T20:14:25.351Z","1.11.0":"2022-11-18T19:42:09.217Z","1.12.0":"2023-01-01T12:21:11.778Z","1.12.1":"2023-01-01T12:22:01.497Z","2.0.0-beta.1":"2023-02-15T19:12:48.027Z","2.0.0-rc.1":"2023-02-26T21:26:44.512Z","2.0.0":"2023-03-27T16:32:57.339Z","2.1.0":"2023-03-29T09:37:23.752Z","2.1.1":"2023-03-29T16:19:37.354Z","2.2.0":"2023-03-29T16:26:00.791Z","2.3.0":"2023-03-29T16:59:34.808Z","2.4.0":"2023-03-29T17:16:25.759Z","2.5.0":"2023-06-04T11:41:27.556Z"},"maintainers":[{"name":"retueze","email":"retueze@gmail.com"}],"description":"Async option and result monads library.","homepage":"https://github.com/retueZe/node-async-option#readme","keywords":["option","maybe","result","either","async","promise"],"repository":{"type":"git","url":"git+https://github.com/retueZe/node-async-option.git"},"bugs":{"url":"https://github.com/retueZe/node-async-option/issues"},"readme":"## Description\r\n\r\nSuch monads like \"option\" and \"result\" are commonly used to process some data and have an opportunity to catch any kind of failure. Option can be a value or the special value - \"none\" - meanwhile result can be a value or an error containing additional information about the failure. Occasionally, the proccessing data can be fed asynchronously. This library implements the basic synchronous variation of these 2 monads and additionally the asynchronous one. There're also a bunch of utility stuff helping solve the problem.\r\n\r\n## Examples\r\n\r\n### Options example\r\n\r\n```javascript\r\nimport { AsyncSome } from 'async-option/async'\r\nimport { from } from 'async-option/utils/option'\r\nimport { extractAsync } from 'async-option/utils/option'\r\n\r\n// parsing some header line\r\nconst HEADER_LINE_PATTERN = /(?<name>[a-z]+)=(?<url>.*)/i\r\nconst contents = {}\r\n\r\nnew AsyncSome(readLine()) // some async input function\r\n    // convert `T | undefined` to `Option<T>`\r\n    .bind(line => from(HEADER_LINE_PATTERN.exec(line) ?? undefined))\r\n    .map(match => match.groups)\r\n    // if all options in the object have value, returns a compiled object of their values\r\n    .bind(({name, url}) => extractAsync({\r\n        name: validateName(name), // sync option\r\n        content: new AsyncSome(fetch(url)) // async option\r\n            .bind(res => from(res.ok ? res.text() : undefined))\r\n    }))\r\n    // executes only if the option has a value\r\n    .onSome(({name, content}) => contents[name] = content)\r\n    // `AsyncOption<T>` extends `Promise<Option<T>>`\r\n    .then(() => console.log(contents))\r\n```\r\n\r\n### Results example\r\n\r\n```javascript\r\nimport { Success } from 'async-option'\r\nimport * as OptionUtils from 'async-option/utils/option'\r\nimport * as ResultUtils from 'async-option/utils/result'\r\n\r\n// this pattern is incorrect and used for demonstration purposes\r\nconst EMAIL_PATTERN = /(?<userName>[^@]+)@(?<hostAddress>.+)/i\r\nconst EMAIL = 'me@example.net'\r\nconst ERROR_MESSAGES = {\r\n    'user-name-required': 'User name required.',\r\n    'invalid-user-name': 'Invalid user name.'\r\n}\r\n\r\nOptionUtils.from(EMAIL_PATTERN.exec(EMAIL) ?? undefined)\r\n    .toResult(() => 'user-name-required')\r\n    .map(match => match.groups)\r\n    .bind(({userName, hostAddress}) => ResultUtils.extract({\r\n        // the function from the previous example\r\n        userName: validateName(userName).toResult(() => 'invalid-user-name')\r\n        hostAdress: new Success(hostAddress)\r\n    }))\r\n    .mapError(code => ERROR_MESSAGES[code])\r\n    // passes measured result i.e. either inner value or error\r\n    .onBoth(console.log)\r\n```\r\n\r\n### `async-option/iteration` namespace example #1\r\n\r\n```javascript\r\nimport { map } from 'async-option/iteration'\r\n\r\n// the first example wrapped in a function\r\nfunction parseHeader(input) {\r\n    // ...\r\n}\r\n\r\n// our input\r\nconst input = ...\r\n\r\nOption.some(input)\r\n    .map(input => input.split('\\n'))\r\n    // `OptionUtils.all` is bad here, because we parse all lines at once,\r\n    // and after all we do check whether they are valid or not. All functions\r\n    // inside the `Iteration` namespace checks result after each iteration.\r\n    // These functions returns results, and their errors indicate the index of\r\n    // the item that stopped the exection, i.e. iteration count. So, we need\r\n    // to map it to option.\r\n    .bind(lines => map(lines, parseHeader).toOption())\r\n    .onBoth(console.log)\r\n```\r\n\r\n### `async-option/iteration` namespace example #2\r\n\r\n```javascript\r\nimport { Some } from 'async-option'\r\nimport { forEach } from 'async-option/iteration'\r\n\r\nconst pairs = [['a', 123], ['b', 'string'], ['c', true]]\r\n\r\n// creating an object from the key-value pair array\r\nnew Some(pairs)\r\n    .bind(pairs => new Success({})\r\n        .bind(object => forEach(pairs, ([key, value]) => {\r\n            object[key] = value\r\n        }))\r\n        // `forEach` returns iteration count. So, we need to map it.\r\n        // you can also return values such as 'break' or 'abort' to interrupt\r\n        // the loop (see JSDoc)\r\n        .toOption()\r\n        .map(() => object))\r\n    .onBoth(console.log)\r\n```\r\n\r\n### Creating `else-if` chains\r\n\r\n```javascript\r\nimport { NONE } from 'async-option'\r\n\r\nconst DEFAULT_INDENT = ' '.repeat(4)\r\n\r\n// we want a `string | number | boolean | null | undefined` -> `string` function\r\nfunction normalizeIndent(indent) {\r\n    return NONE // `elseIf` fires only if option is none\r\n        .elseIf(\r\n            () => typeof indent === 'undefined' ||\r\n                indent === null ||\r\n                (typeof indent === 'boolean' && indent),\r\n            () => DEFAULT_INDENT)\r\n        .elseIf([ // implies logical AND (for multiple filters)\r\n            () => typeof indent === 'boolean'\r\n            () => !indent,\r\n        ], () => '')\r\n        .elseIf(() => typeof indent === 'number', () => ' '.repeat(indent))\r\n        .elseIf(() => typeof indent === 'string', () => indent)\r\n}\r\n\r\nconst INDENTS = [\r\n    'abc',\r\n    2,\r\n    true,\r\n    false,\r\n    null,\r\n    undefined,\r\n    {}\r\n]\r\n\r\nfor (const indent of INDENTS)\r\n    normalizeIndent(indent)\r\n        .onBoth(normalized => console.log(indent, typeof normalized === 'string'\r\n            ? `\"${normalized}\"`\r\n            : normalized))\r\n\r\n// Output:\r\n// abc \"abc\"\r\n// 2 \"  \"\r\n// true \"    \"\r\n// false \"\"\r\n// null \"    \"\r\n// undefined \"    \"\r\n// {} undefined\r\n```\r\n\r\n### `GenericFailureError` TS example\r\n\r\n```typescript\r\nimport * as OptionUtils from 'async-option/utils/option'\r\nimport * as Parsers from 'async-option/parsers'\r\n\r\n// might've used enums here\r\ninterface PortParserErrorMap {\r\n    'bad-input': {\r\n        input: string\r\n    }\r\n    'out-of-range': {\r\n        min: number\r\n        max: number\r\n        actual: number\r\n    }\r\n}\r\ntype PortParserError = GenericFailureError<PortParserErrorMap>\r\n\r\nconst MIN_PORT = 1024\r\nconst MAX_PORT = 0xffff\r\n\r\nfunction parsePort(input: string): Result<number, PortParserError> {\r\n    // proper integer parser returning options\r\n    return Parsers.integer(input)\r\n        .toResult<PortParserError>(() => ({reason: 'bad-input', input}))\r\n        // result's `filter` method consumes a callback returning an option containing an error, so, if\r\n        // the option has value, the result become a failure containing that error; otherwise nothing changes\r\n        .filter(port => OptionUtils.EMPTY // option containing `undefined`\r\n            // condition of faillure\r\n            .filter(() => port < MIN_PORT - 0.5 || port > MAX_PORT + 0.5)\r\n            // executes only if failed, so, no extra objects created if it is succeeded\r\n            .map(() => ({\r\n                reason: 'out-of-range',\r\n                min: MIN_PORT,\r\n                max: MAX_PORT,\r\n                actual: port\r\n            })))\r\n}\r\n\r\nconst PORTS = [\r\n    'abc',\r\n    '1000',\r\n    '80000',\r\n    '8000'\r\n]\r\n\r\nfor (const port of PORTS)\r\n    parsePort(port)\r\n        .onSuccess(port => console.log('port:', port))\r\n        .onFailure(error => console.log('error:', error))\r\n\r\n// Output:\r\n// error: { reason: 'bad-input', input: 'abc' }\r\n// error: { reason: 'out-of-range', min: 1024, max: 65535, actual: 1000 }\r\n// error: { reason: 'out-of-range', min: 1024, max: 65535, actual: 80000 }\r\n// port: 8000\r\n```\r\n","readmeFilename":"README.md","license":"MIT"}