{"_id":"@ailabs/ts-utils","_rev":"27-0251e07cf0d7a2eaf15fcd0b81498e17","name":"@ailabs/ts-utils","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.0":{"name":"@ailabs/ts-utils","version":"1.0.0","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/ramda":"^0.26.19","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"^3.7.0-dev.20190830"},"gitHead":"9c59b32e746467f31dbaac73c938dd8772350fe9","_id":"@ailabs/ts-utils@1.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-CsFL5hQUv5DIJ2PBGFKoWe0EdmbsAjSn4io8NP5wYbB5RZEVebhE7UuBZaG1QS/cYs+VOU/zL5GnCehdbhThVQ==","shasum":"4b2875cd40de4920fdc00eb57053fdf3abda14c5","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.0.0.tgz","fileCount":27,"unpackedSize":62677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhQujCRA9TVsSAnZWagAAP+gP/jTpCVXL3kXsqxwUxM2X\nR5CUKsW+dsNOTsoe+IGY/3JHbz8+PGu8akF1gQeS02Gb+eZYRUwK2z5RG9qh\nvJTjDEA6T9HAREdbBC8lByULRTNIA4ICM+WE4ZYpCny/l6ELHQKpydY+3TeK\n81JZmjF8YjgEusy9Y/J/7TzHy2sn/nBHBqrOoCIN5QylC32CxU3KxCfOjReE\nvxNv0lAD0dzBdjBBgACAVHepyH/pAnb4b+gtsJFyEhHDv4OrusTzwcSKu/pg\nQUvTa+ks+yy/lPEe6y/fv9b7FY7Q8JtAlIEvRfKrCIud1+D3pSeLj8J5VcDO\nYrSN3CPIFBp9lv8U2rA3GsMb4vk3rQNbDXFT5PhQxF5CVL9P1lTYt3duX4J/\nc1gNmTb0UHIZUHggJxAZEdn4HZmVFDqeOnRPnIiRfAUGpAVXcCB1NqhY/Yo+\n3oChgSofVZitxqNUzDk1P5rf56LKCVYYanYGRcIgt3HU2SzkXF+HqBKMJkEU\n5ZEmLwkR3Fmo6B2y872vrTu5ZRhxQ9mf3J0ccqHue3v09+TDmb/C2RcVshOT\ngXaDi0w0I+cY/L+2nFP2xd80xf3ueuU4zMBR8liSVNMFTx+4A6JdTfENf1Zt\nKKPEcM7w+WeSlAEP95v4bMjhsD2kMoOSaXS8z3g+WvK5DTd7pxqYVldifznG\ntgGO\r\n=KofR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDaZhqCNf2url7nlx1YEmSBNuJSuzVNUt2A4bFGUcx3yAiBVfefkX6KdmDA3PJ3E40zJntOeGdeN+PP4Ikrk3SCgag=="}]},"maintainers":[{"name":"gsarault44","email":"gregsarault@gmail.com"},{"name":"peterchappy","email":"pnchappy92@gmail.com"},{"name":"nateabele","email":"nate.abele@gmail.com"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.0.0_1569000354975_0.8813367772071155"},"_hasShrinkwrap":false},"1.0.1":{"name":"@ailabs/ts-utils","version":"1.0.1","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/ramda":"^0.26.33","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"^3.7.0-dev.20191018"},"gitHead":"c42458522a6fea1519769b23deaefac336cd7234","_id":"@ailabs/ts-utils@1.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Hoc/wO7VunBcex+ds1zD2VDETYTaRy3d8TDTz9uNdnNEawpF5V75UHS338M3iBTbCjuSQJhxVazwgz8XiBwqoQ==","shasum":"574195d47958e6687232aa2ac3127fc2fb571972","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.0.1.tgz","fileCount":27,"unpackedSize":62658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqfoSCRA9TVsSAnZWagAA1kUP/2LNO7Z5oFXws7tiEd3f\n6nvp1k44+gZLOpnmRFXgwGoNskERkwkBhXE4P9F8mIJ3iu2UmS/QG/JifmrS\nuh4HZccrmnZjywNeHJv+Kj3Lcz7MAon14O2L7jkkOlpSUMIOJAXJwkztLU91\nC9XlPT7ZCxeZ/5Qg2CZJbaWZsh2x/qDnv+zpbqnM2O9aShxayzzZFfJZVux9\nb64GGcvP2VYWPtOyrwnzkMmVr+uZiU7tASQPAuSArka6L/nD7kwKYi/NXnv9\nmOqexrzj0qFNkXYXKEAP2+S6ZSRxVZTI34iC249vZJruo7dJP/cx/mla7iUd\nPeGzb1kySLlEMSK/kc3klJuV7Rw2wQLSjCWrMv95L5ttoo0lH552KV/nBjTj\nqZ6XSJkl6BWbnwH8WGWDhFWJ6fV3BejuEuS0ygkiKq7qL+6WQvuHHayTOYZa\numW3maH7Jir9/w4lowTD/i4VblaANWlPAofxVxuFj7drDQlFFi8vtgnetTI0\nq4s/dsi9VVGQDL3i0EDaW0PflScENLPRUXOudkf6J0daOMF/cHoUGLzcLmNZ\nPv1NmNu+IQ97rtxKim/dHfNYBkfcIgWeLfoBmpKlMTaHhVU/DXOtSnG1lwRE\n7ZqNMhvBFeKF9gm6b8NI/0mIRO2zgcxA+b7luO1aMOol76TngB0PFsPlJjBS\npbfE\r\n=HHlO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4rOzDFYZZ0gNF9pqRMyQ9oSTnlBNCPWp1W0/mgzmetgIgbbcp25jAU0uyOWH2HTir6nfoCgaujM2sAAE46IwzXCY="}]},"maintainers":[{"name":"gsarault44","email":"gregsarault@gmail.com"},{"name":"nateabele","email":"nate.abele@gmail.com"},{"name":"peterchappy","email":"pnchappy92@gmail.com"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.0.1_1571420689577_0.6395649480802843"},"_hasShrinkwrap":false},"1.0.2":{"name":"@ailabs/ts-utils","version":"1.0.2","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/ramda":"^0.26.33","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"^3.7.0-dev.20191018"},"gitHead":"4a6952696162dfa8d82b8ef5dfa2bb480581d190","_id":"@ailabs/ts-utils@1.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-xMplsZ1KVV3KGW/lmYVid27VNTb3tdszHIMw87JyaT0E5YDg/6BexOCPv5dOUtg+28uZNStRP1HSYTpyeNlQvw==","shasum":"57cde86c75d31012e88096fe1e55e0e0aada681d","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.0.2.tgz","fileCount":27,"unpackedSize":62688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqfx2CRA9TVsSAnZWagAA3o8P/1gGFXfab43cX/PCpC+P\n6FpMKB8PsJE/emJjkIfPH9/b7qKxDNQYP+7FHj4FWV7rCl4VZcJgnfGYlz9a\ntei8NIzd2v/pUT2wGhJ3tQGkAGuD4kuCoAfy+LS11WuHI7XP76Byxe+fYL3H\nn4Vr5VVzPSB8/CkZKLW6j/wsot5qZ3B5OjNqGNoYyMhNTHsmyS8HHjYf8dml\nluU2VNnKTtpByyBhB5fYWwd0hO3lWGTtb/ck5m0RhrYKF2GBeas01BpUcbcS\nWKdcte0a9vDrgY8+C4dTFewJWKVesm/MmVtc/1zqegHp1eHjtViwSj02k+cB\nCQC89K80XsjCHI701qURJWIlkNxB3ay/WLhalwVBKZbNqzG6sLpdhWRB5v8m\ntmZ7ARyAJ451mx//edOUDY+cFaJPO4tf3HE84gr5DaRZzBfy1Z9N6LBXMzrj\nWmAkW4wdbLnVSM58KCI7RSje16LkHRCihrXdxEr21jXSDSPQ+ZiGd+uo7QhP\nL+xlCIrn/IDLYfJyuXSVzFlPWw/smtebE9ENv+i2kl9VZFqChRV8StEMmvdF\nsTMsxkqcmMy/KNckhyVC6aiy1g6w7+gbGvy8oMnPQUF79rk/jqgjrWg+wS9a\nUMNAgvF/S325/EL+GrX914Dn/zx8taSfRxaKvqRuybKofW0fd81eQZ9DBmF+\nAGwD\r\n=QDBc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIErWrbZ558j01jUe6+A7JNLag0ZZbC7Ig5yfrnXil1cLAiEA9K5kXHoF/lZlRjcn40D3vqe9NDgtS18LPWYINBnKXfQ="}]},"maintainers":[{"name":"gsarault44","email":"gregsarault@gmail.com"},{"name":"nateabele","email":"nate.abele@gmail.com"},{"name":"peterchappy","email":"pnchappy92@gmail.com"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.0.2_1571421301695_0.3608304806202951"},"_hasShrinkwrap":false},"1.1.0":{"name":"@ailabs/ts-utils","version":"1.1.0","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/ramda":"^0.26.33","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.7.2"},"gitHead":"10390d63faa0611c15371807255f63b0c582f22d","_id":"@ailabs/ts-utils@1.1.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-2UvVd8EgFY/y26FP/BsDU0Ln8Zac+08zAKKhUmTcdqdIAmjN3JGpvhWT6Sf64YGu/HzEXflpWrwjwgen77If7w==","shasum":"7dfece4b929f2956716b36b1e15bdcf98bed4b0f","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.1.0.tgz","fileCount":26,"unpackedSize":82579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx3iGCRA9TVsSAnZWagAARP8P/jVUx9L1833KLDRQ9h+q\nhqAApJR2YqBF3gY+MvFVM980kzH8jwGfC50Hph//C38hceThSOUGyKltcmsn\nyic6UXUGjdwNelBg/ZgWtFlsNDX9MdzZYG7yxzid8HS9SyHzzk4irUyA1OIU\n25lU9wpLLQV0eMsZgALIYOq4GyiYtA6Go6ggNYUnSvqUDgoBZTCsRUkFJo0E\n4t3IZZVsiLOl1puhJkrX1SmW9LWTn+IdLFr+rBMryKaCAZGahCAx/T0zBcbr\n82MFTg8nkoivfgXfewhXQKA2l46tHW8TNfp9kReifJMuuWlwxPNM6baio7Wh\nax/NRePhnJLtExI/1/WkzlO6Vrx0jtEYLU4QPcLi3aJwz7jJ75gvrClnWLUe\nzH0O20Hm8F7QCNyeNFDRPHpnKh5qbINE0vJ0ODC6Lift6fwZ0fkzpsJ4dLyv\npc0Dv0J6HtL089BYwaEIZrARFMvghIeTPAVNaraKjVB3lj+88dCXEwC3ARXX\nnXW4yAMmnYyYfow3T9LhBulD3ITBmeu431s7g4v8NoLZ9Vf+4YsHIsgfWUIf\nDlOf7gz9Iil2ivgYA3Uo1ED9nihFLbpS/odLG6ZuwJ7Uv9cMYwt979XIA0X1\nE4S2f1noGT6/Oa1sYo1RPNuO8A0KeKB7IMNXiK8H8UvlpPh67ciSxFDOnJws\ngQl2\r\n=rf9L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIErJ0Fk3/M9CDW2Vjz00UbxM3FfqTSLsxABKG4knmHDLAiEA+5dNuGVZzGcy8PAb5MLOUDdP5GN6JZZSEV7eV5yW/cs="}]},"maintainers":[{"name":"gsarault44","email":"gregsarault@gmail.com"},{"name":"nateabele","email":"nate.abele@gmail.com"},{"name":"peterchappy","email":"pnchappy92@gmail.com"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.1.0_1573353606041_0.805057676087801"},"_hasShrinkwrap":false},"1.1.1":{"name":"@ailabs/ts-utils","version":"1.1.1","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/ramda":"^0.26.33","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.7.2"},"gitHead":"2ac264ff0b052fd7933540bb40c0bba88d15f0fd","_id":"@ailabs/ts-utils@1.1.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-IUPC07V4aEdyTa02lCJc4QUogiQy7hBtFIToylO4vKHg1LpLmcbSgm250n9k6rRSJ7KdeGl9bZ5gVeEuL4NRNw==","shasum":"2037ba742c446f87857e0725d62ec7497248d6ad","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.1.1.tgz","fileCount":27,"unpackedSize":85551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx3ooCRA9TVsSAnZWagAAIvwP/0LT3WseuEybln+Zhbmt\nkOAVZ1Gs7+xXi93I2xOQ5h0uCSkCfvWbH3/d1Nm6yMZoB3jUAubI2zP0Lhlk\nYPaEqG48LxVCuMC88NXzWAIwRQDwrFqv0xleFN1mBU4Yz54NC4egd0tE8MQK\n6g8gQAfaiQAt6WVMugkvg0oI45ir67UxCjQO7TuKs5RnKt95513Hl4Ui7Jxu\nAYiaZPriIm3aQokwwe5BTPq1K/icbUuhE8Yk0Rm52sUJjyqbJuZGzZu6FbOF\ncHqwqUY0v5qfBoSPTRRAPygF/p5GkaQZR6EoxXceU2vlmc0I51Ebhr5yCYTA\nDr5qYUadQgqGyScGmGZ1CafgZ989NJePpLm057znMsTGg5SPaQ5nHv5kGiuj\na150hFCFVypLSWBimEsXreoJh4pjjhEFok1FINL7RD/Xz27ErIKxpsB+ES5g\nGYuXuWYdVbsxEop7jTvLkjNpCE/KWcGrDrTaLPtpindSn/EabLhsjXeK4lgq\nOVFjNBLO2dNUj1Xp20Un+CQmvFQh9J1V/msBNQk//4Wji/KSlc9z+5zvvMgP\n1s+87E8NPgUK4ZNTpblpNoMEoHJUuH8Bz8NjWsSLxntjhDfihUzM7yHbhIST\nkFrWnushzafG40kJ2UOkQa5pHAZpJa2VFkuXmuj2HVpJH4CbIyevHYl5+P78\nspJ6\r\n=aFwS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPCmhb/P+AcH6O3y+kC+OmOpuM2e5mX0qbGONsUk/+RwIgXhzrT2891WHK5sg48Fj231yTen6DzVI1ydhRy58Ylaw="}]},"maintainers":[{"name":"gsarault44","email":"gregsarault@gmail.com"},{"name":"nateabele","email":"nate.abele@gmail.com"},{"name":"peterchappy","email":"pnchappy92@gmail.com"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.1.1_1573354023650_0.765621293662377"},"_hasShrinkwrap":false},"1.1.2":{"name":"@ailabs/ts-utils","version":"1.1.2","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/ramda":"^0.26.33","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.7.2"},"gitHead":"cbeeca5286792bb463d5a4ef09542525892c1fbb","_id":"@ailabs/ts-utils@1.1.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-M2fvhd86WhdbpeoPdVAhTeaDMJKtKFnM2FmEanaHGC+XB1Q5NRAUSh52Ktyr90mR/f3JP7YNohKgGgZBGeacbA==","shasum":"8ec736333d8d63538e9ca9540d2d5209a88f3a28","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.1.2.tgz","fileCount":26,"unpackedSize":82615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx32GCRA9TVsSAnZWagAALt0QAJDy0wsmYp5TCiN8v+Kq\nDdgLH3Th1OaohaLmEyLtLz1KyRIJNDpZ4MmVwGrfTUcVof+msLICaOwesiX5\nczxQX30o643xvd9hPNkyFN3uwl3E+Ucg4prZ6gEnhJNaxML2TV0KUea+B3ox\n7+LDRWn9Le/hjufkAx2zsXPHx7ZWSZR1KMF4zdV6zNL885fd580GEKk6MExB\nu1WRW0ilJYE67n7/tksjMqgjSZZLed100SfunwEhhLuKpHaiYNJGZMZuNyAB\nHlmx14d86gZYBDuTHAKtFBAApNTn45o59dhujatzXlRL8/ZFtCB90BqjMITE\nR8uPdO1XX/7TcIUB5CksOQbUeaarvRrwbYQcGX42u1tdfRYW0swKMkaDmwL2\nWZNxwZgGozpRuxfLxaHncZC1DUA3HQ7CLUPV2KqXy9VwCrmeUN6MBC7tQ+WK\n/WatuJL64emtQt9rf/Co1vEdaFwaXDVNNznp5n+k7KEbveEDB3Px15XKAvxh\nhTvG7lVBiUd9vX3eMjCG9Nc9mkN9QHbPoNekAB27b+Kyjw6a0Tbsn8RuhKrm\nhjaDiV6kFs1f+Pz+wsyVuMiMwDw24vugyJh78Hb0gBPK0NzNeaM2tCAUVprW\nawmeltLd4jU7ZdZBVqnFuqUyOehpLHPW+YrgpmvCRn5z6wiQk+NIbnlcKqWc\nSpGi\r\n=mi/N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWAohNaTku/rAzSH3ZomkI3bqN3IwC4z3N219/sUSQjAIhAMjR/1AO3a5U78Lh/oYIwUNIvkYmW5SWiaK11/ov3PqV"}]},"maintainers":[{"name":"gsarault44","email":"gregsarault@gmail.com"},{"name":"nateabele","email":"nate.abele@gmail.com"},{"name":"peterchappy","email":"pnchappy92@gmail.com"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.1.2_1573354885834_0.8059331855254357"},"_hasShrinkwrap":false},"1.2.0":{"name":"@ailabs/ts-utils","version":"1.2.0","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/ramda":"^0.26.33","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.7.2"},"gitHead":"ff5bb75b679b85cf2185a4fd7b707d3065f03fa9","_id":"@ailabs/ts-utils@1.2.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-UrhrhG8hJ/lNChWW8+ZLt+TPTUgx/sdJIR1xTkBW/Sb6twWEhQNARkTRogVlb3TNXHhpSJHNbGNgGHRBxVNCBA==","shasum":"e7d6958262781f0b401391c3e1710f44f76efbc5","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.2.0.tgz","fileCount":26,"unpackedSize":87284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyaaUCRA9TVsSAnZWagAACu4QAJJ97UX/NHztDv0mPg8O\nUjTBfB8qaCT0jg30ME/Uzdq/5LBan2CiaoaGeCFzhwrwpjQCf1J0MzCJFX+F\n6z9ZQke44FQ+zTLmlaiPrBAY5nYqB4UjB7LN+91wewpSPGvpY5BFPxT0lMOl\nIgnEJeyl91zSOnqZLRdhP/2FrgGkvGc+grTM5zAmB1pKNlSq81DXTNXvBIvD\nFSONEfX0dHP9OlClf8P7jTmwVp9erwo4suD/ZsWgWLgqT5ZtI/KwAswblqBC\nlj5Ra7PLHBFhArrGE6UrlErZGphSAIBzLGTGem/oAnbn5ESNfg/T7YzMcJmK\nFI5kzrcx/9QHAMMmcwfz00x79v7i10SezpUtQlmIZpfTsPSOP+IWV+hQznzf\nl8t9y9iGkVQbbODQ5UVrVEuGnAeFKGpMnS2HPLzk5i7Ts1yJuBCRPXfZf4h4\n5RjAdv4uMOAWEkfqrGsqKsxx+pNwP3pXjXZcH2QY1stoBkiTF9C96FVb2+7G\nJApkgyTKzutfkDfYI1ZOqjXN+0iAyjzAYpV0CdA1swQy25oYNBkZbncc7Opl\nkTXkWsFpxQnqFH61yeD0mqYRgYLFzd+ZVgH9/x6+AMmaUOcMRkSG4aHQB/le\nQ7z6BbiFwrJChfr1snwp6wMnRcusy+OdIqvojAsDuFaMxL1pKvgNqQb2ubCZ\nF8fp\r\n=iydr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBO13IZ8IzEmL1gavvGpxBjC00sknIyh3vpK0O6SafhqAiBY+dx3IVXxDauZKfN4/5ze40Na8t1k+BO6BqjYnAg45g=="}]},"maintainers":[{"name":"gsarault44","email":"gregsarault@gmail.com"},{"name":"nateabele","email":"nate.abele@gmail.com"},{"name":"peterchappy","email":"pnchappy92@gmail.com"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.2.0_1573496468454_0.8475624381569513"},"_hasShrinkwrap":false},"1.2.1":{"name":"@ailabs/ts-utils","version":"1.2.1","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"^12.12.17","@types/ramda":"^0.26.33","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.7.2"},"gitHead":"8e50d71df882aedf28ea35962dc08875d999261a","_id":"@ailabs/ts-utils@1.2.1","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-jwH/3l2uwgDnIo0XBacrv6CXyk8jOCcE55vIVJTKoAePsotoTHkpbLY6YvTKOoBv0LVJAYgRHBe5FZ7HbGgQyg==","shasum":"dc77cf4cdc32cce0096eb8860c50ce98e7fc6586","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.2.1.tgz","fileCount":27,"unpackedSize":92732,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8TCqCRA9TVsSAnZWagAAVwEQAIvIYE1J1JEgHNGQEqxi\nuWJXGR3AT6VzG5trgraYcRqoZlowzVSlpaNMfilhDpmRTYsgagBXJ67ZN1ux\nIaZlcFxc1kyXfqRPoQSorvVbD/WG9IGq2LgJHvvUXsdcUsDpTHs35K9TkMXv\nWq3YMCSUvEWQzpLv5n9lcqN5pf90+mHpzhd0/rp9DZiSV45JYrcgRj7Bf2gC\ncG4smgNBLPB0Mlmwp9u7CtfpyLmMQAFHEndtdYh8KGW/wLWAmdaQJABqGPvx\n6pFqJa5UxJRFu0obPOyVzXEITnRAAUZiRVk0I82Y2pA8eMsmyG3WufnKHbuY\nQoBZChEDwtYTbKzrBHXuYrWINsXPU1VTz1puirCopYcJ/OLC+ItD7vqxul+a\nK08VPTsfc68k6FwmURzvLiG1BWRf2UdmhmSsRB/IzhLgPY65xYjw2wtLmVMG\ndFMzVsXCKPVlzVwylre1QWSnu/uT2q6XW6/ed90s0XD/M0029i+PJsngM314\npzGTNicOO3Op+JDxughKTn5AwNzpMFIivlhi4f1uHep3vc5/yZqbMmqFHyTw\nWIt0am5fnK4ewKWw+1oMsX7u+3w6fd8jl9jysd5T32xMg1kv5+IkvOs7NO0P\nOS77qRIpx7TLsLrJ7VCBSlK7P/bhuZUi6VVeDqHx/GFPE2YJMGcGiHe/5ulp\nJ8Au\r\n=F4OJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbg6fhUeN2MJ0w3RuxXHusldPkeX2KQZhGvsGiGFAb+wIhAMMerWCEXp/Czh1zzVu/c3vxzkL4asFZH5G+KAmJdvUT"}]},"maintainers":[{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"}],"_npmUser":{"name":"rjbrooksjr","email":"rbrooks@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.2.1_1576087721966_0.8706210091334485"},"_hasShrinkwrap":false},"1.2.2":{"name":"@ailabs/ts-utils","version":"1.2.2","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"^12.12.17","@types/ramda":"^0.26.33","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.7.2"},"gitHead":"2dd302e79286a802be414064c7b206ec82f9a46d","_id":"@ailabs/ts-utils@1.2.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-HG+YJX1iAi0m9u3h8mms6DOFiSyz06IFHFal3mkYMLdaLx6NyqQAQ9pHjiFFwkBqX9Yj/unxdRvu/j1biqKJkw==","shasum":"7040838b4d77e1d1944409322e560c3e20b0921a","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.2.2.tgz","fileCount":33,"unpackedSize":122752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeX/XXCRA9TVsSAnZWagAA/7MP/iaKwcH9vAIKjdGFN8+3\nI0lni31EXBdr9GU7wdAmK70LVbTBZKuoXKzrcmPN4I3VLza74cQI5J4pIwGe\nNYujyuA7mNtl7EeCCYTs4DhORk1wVVR0HjzwNo1giSviAO3N+W9xC2qoZI+0\nd46SKSIleIOerELou126a3hFTqBtMSr2J7OIl57mXsjvpUl+ePHxqpXbly0A\nFe9gCtTuUX55ozX6f0pExqTZHHhyEK4kbYUsOxltXvhqr4RLl3zXaQfCtlds\nXrOhVI8p6yWzoq+2HrytIyC/Tm0czeC8v7/p6zKIo/lH955y9Pb9yU1hYr6L\nX1+c30w8n1VuWzDDGYKmuyyO2CYJyD1SuUz3Sim1mmy1SwHNOLraKU/IrLTa\nfKRw/d9jD5BxhmZ8RXGTnEIRj1lWc0vrayqiCRIUZfjc8P9vPnobelVFj7NI\n8n+WCcgwxTMQnmiQsiXVwvQUzWifX1gaSKeMxJSdAsXD80lragfJ4q4Cw8Ci\nZZ4jKsX/p4wz1Ao9k0HlNYOtqevenLhzPP2pT5p1+hzN4+iDAwImG+0+ocyy\nQylL7jk6VjEWWHKVLz1lbnIi96bRwin0Czf0hA0G7lCZWAqBOSMcCP5mY/u0\np30OqQiJlMyTgD0gwbllz3yKaaVE9AeCIfnpbFd429QRTfBzlEA8swBrnwUl\nfI5Y\r\n=sOYi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyF7qeK7FQKzJOFoEovji8L/dEEYDemVcNagGlpfHKZAIgHoN48a4NRIneketi6wNMLvmXxbpFHKwqLokbDBW1zPE="}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"}],"_npmUser":{"name":"alysonfedkiw","email":"alyson.fedkiw@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.2.2_1583347158806_0.05616011816501598"},"_hasShrinkwrap":false},"1.2.3":{"name":"@ailabs/ts-utils","version":"1.2.3","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.7.2"},"gitHead":"df4b42d350b38dd5f89ae25027dd3a262afe66b2","_id":"@ailabs/ts-utils@1.2.3","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-p7+I79Deg+hNcfLoe2FQEqvob3T4uhGYfaV+HZz+7W8UEZbupq9cHVKurdmk8zjAsxupuoCvDLzb82vR7vlzpw==","shasum":"e5979b5eba18d733a2ca70f25745c7d86b0ebedb","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.2.3.tgz","fileCount":39,"unpackedSize":147289,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYqxfCRA9TVsSAnZWagAAVYMP/ArPVyy3/XzGFlt+uk5g\nwHLaqXj6ZxptTHXYPcoWlLfprTkkd2OLgUVmA1uDDyvkeuWDPL8aHpiV5g8a\nIsj0hYkCBRP3L7cJ94l9Pvz+YoRXPflhJbyK8VDby5/0AtKfGduAheiUd1lV\n6tMPSY57k4CrQNtVfV1JEng5D/bJ8xGAVecrQ9oyz9tVU0yFjoGbV9IMvfsA\nPypchshSCmvk83bMeCII33aTN7HHwneZz35v3qfSJdJo2HlqyPwSSE+37Wwm\nlEWlLkPzxIW3TSn89Ufdr63c4N3LBz3CZOWpd9G8o/kilJT2Y/dfidFqKv+s\n+KnCKhijRrAfTfRal94oUhDWjHbfE4upQlP/sRjpdBf3jVyYYCV3SMWX23iR\nON/as7SVBI10edg264K/CM79vdu3NTC79McVoATzMp/O+DAjB8OnyeyReN4f\nBSfktObzlvrYCdjEPgNkthdYzUJpJ5D7eudbxY18A5lALlRe0We/jDro1WkI\nx1tMCMQYm5Q0ppkWbmqkgv/atGssi5TJF84S/cjkgSXV9enrGNMxxCWmEOiz\ntNtipOH42nMpWgrz2Ie4lEBKypRKWh6GJjGxb3bRHcB7hQ+646DmUHLJAXNL\nRqtmyOhHH4CTQPsZlyczGM4iM4mgPDh/gttEIvXNfrVv35Q7JuuphQz+W2dS\nu1EX\r\n=/1e0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH5a9L8T/KLp67a1Fd47weaGm4CnLTSGP/SVrLBn84FQIgToF3OMSErnjny8yOdmRuqMSutewpc6LbROF36+ylrgw="}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.2.3_1583524958766_0.8049910006581535"},"_hasShrinkwrap":false},"1.2.4":{"name":"@ailabs/ts-utils","version":"1.2.4","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.7.2"},"gitHead":"c0ca15aa14e3392c2d6e48dc370ce421219a48c5","_id":"@ailabs/ts-utils@1.2.4","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-wu5dol9GIzkeoQPoLsMgr442P2SQJF6dPZuCx3I3T/ytQo2XaNgfA2W6UezsQ6zeBTqKt/UKvXY82uBoJOiNZA==","shasum":"e49b05656c99a67a3d41b6b5b605828bfe93b34a","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.2.4.tgz","fileCount":39,"unpackedSize":146894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaSL0CRA9TVsSAnZWagAA+H0P/R0Lw2SVrnSuO1pTTvN9\nUWgBmkfLV08U64oO9NoA8PApC742zOERNMafSjIStub1uU8XmwKGjtZinycK\nRWASbt2tdmF7tr4KQRlaaYSEus0U0nUjSQA1HYpdPxWuHTqM2EUwpnkfNNb8\n47jAd+PGALKYrYDx5BoIqYeeIFjImNJFB0/JlwP35xgT8iFcQ0K9FoZPqGia\nJD+AvOcDQ3QdgdpiUocNHU39gHAVYufG1Qy3friXy0s4NWnCbGLDqPKv2FH2\nMZU5EdQQ/sGxxTqeKwqb9qDdYTZNa5UdIzJgQFUsm07efRlOx/9yDBrCtQZE\neKy4E30cW8pDC5BHi+MugUwAP6rjVChUxlx6+YrKyobh1GDeB7RY7+kJphm9\nDWEOuEdWxnokaoXVvIeWDZ/V2ErQFqDNX/FVMP4FD15kKIUEITds8XQqMFag\nDzPdrcQRIKkZEf4NAonmnnCJKdn0d+WvS3D+SQa2Fjx9zIq0LSCbDTWIp3sj\nSOLT3tk0oPv+Wj6jZ1yk6oXoLN4Nq6E+sKSouXyKwABsl18kwqN1f/27gBC2\nzSm11xa7OS/8/EQeJJXgptxfRufqia96reQcokYqbYZ/VhTCi0NR4ncLcQRT\nlFlvNn4xsHYc1KHD1bcLrgME0fYG/DdolFL8YrOUY3f+e8og5+MwLdDmUSdh\nSG3Z\r\n=gFmT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGiXtDzJLWFm77o8RlZ/inYO1R9JJutjIdhvTZZj0XyLAiA++UQ2QIMcxLAjKmA35/S8FeDw6GFxlJ5jEtdiUWfiIQ=="}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.2.4_1583948532245_0.4758516517611555"},"_hasShrinkwrap":false},"1.2.5":{"name":"@ailabs/ts-utils","version":"1.2.5","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.8.3"},"gitHead":"fc4136b01d86b2e0897be2d1843959d486e5c81c","_id":"@ailabs/ts-utils@1.2.5","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-S60vHQH9a86WJdPgItmRFChjUBOuzB6ObNdBUUDY3V+YR/KSj4hX+g7G1F8W7140wC3TyYauGSEQrOV/HjsvJw==","shasum":"de00297ea80c7f7555401e75e3f5a40730bc625f","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.2.5.tgz","fileCount":35,"unpackedSize":140682,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJea+kcCRA9TVsSAnZWagAAdkAQAINMmstxdgoqXufEdIbV\nJTf9O8SnGwOeVq8cql3qjt0ImPUkE5KXa1LXG9Bo5dM1+VfALMiK9f09XJ4y\n8LkQUnNnNi/K1PmlRlQc7xM1PbsfYjTjuOZdl9aUyaQTZyiOaqzviTdqMPvX\nnx7ZB/1lQRcB7iYZWzkEolsn7cX9lB9HjTwCN+bkHtWbxG5fMa+ABmNFXO36\nHrNeBhjjLHG3ijHG7GFvUBOjhYD280Qkzwrgpyst6xZPH8/9l0IcEA//7mXt\nOpaNQeyaKhvYiNd13OrS+h5e8bEKnHHv+y+mcLkvWbHHtYl6rirL2V/HiFuf\nbfeJXB6mCwh2tfRQYncZuBzGVglSW4LIEnYGmzARhPYvn3ZWDF+A8KqxL6DE\n1Reg7u8AQQe5F8QKrM9a9SpOBj8VcZuO14NTXWwvuynp9ww+fuOjDHOTtTA1\nmvbXq+6rf0ZAL+58iZjj87eMwpaLf86ffA5MTL+GT8Sg7EgOfykyj9Zb4fXW\n8IL/y9yDhwd8Chx0hgiOYaxTiICXnC1+FHoJjvNzAntIeeg0sR43RbxcSEU5\nq2T0tViamrsOyfR/Hn4RgiZIrpoYill6QM9Yafm8IkH4WF7UX079sxHWOhpB\nFLAkQh9k3p/CDtdfuIurjeVa221+RVa09LFQFoiOC1255ZKoBMmDTRVr5dYR\n5bMN\r\n=jJj8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgMZeL/VYHGXfG9Rk7qIm/7xZtbabnqSj0T0w8iAlu/AIhANUpFQrsI2Oy8b8sEXR2bM8Ykl+2j4NX/fORSVdR9gvn"}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.2.5_1584130331821_0.7896793548270569"},"_hasShrinkwrap":false},"1.2.6":{"name":"@ailabs/ts-utils","version":"1.2.6","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.8.3"},"gitHead":"28a98619ebd4374dfe51a72ae129cb931d8adced","_id":"@ailabs/ts-utils@1.2.6","_nodeVersion":"10.19.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-2I3dWiEcG40+Ir/LhqIdwYGMu2lZiPG/WTPS21YTJcAs3slO6BCcELa8yr0Zph/dlyDlf2efPRvZNfsfkFw1KQ==","shasum":"b95e426f5000327061aa6067e79f3fd3a460353f","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.2.6.tgz","fileCount":33,"unpackedSize":137866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepuPCCRA9TVsSAnZWagAA2JsP/Re7h2vCTYdRSXFn0FRv\nnm84EnCg2uFhOXRA3d5W1JUF6zk5qEyO8i0mVthCtFEg1H364IZ/PRa9IN1J\nzgI2WHUyqXztMaQXTqo/p6ofmilwU48loYnKDnUFI6iWPmfOlUqw9dV4zROd\ns+/GJ9lOANrp+4Oor8tXdkMfaSAGXmN8phH7Ean/VtAy3FFxKrPv1gxgOpUA\n5eaVQ1wKO9omfItCkzMGPhf7XHl6GaCAWqC9Z3ifr8vzW3GyCyqD2anm/8AN\nc000+hx0OogEHQ9FX2xzHEvdq26l0z3/jLlwufvJbNUXQFhveYI7rxq36ia6\n540BFSL7Ya6Z2TLyCz42GwF3xHPhxJvAXvWprZQYkwjUOLKTY8Kfo8Zmtc9T\nkYrgHFMtPeAU59kb7OlRTV+3gwgNf+FYTBmB/pOLulMVKwahc+DjIphmjTqI\n6l6R8ALh0KkdiDe1eoAZ9PM/r7nwzFAboGtdJJA+7HnUYn01RDBSmM7D7OyY\nCt0dY7ikZkmgNoPe+4RoMh+GAHLTWZfKrBX0+SCD/wH7z2y09x3Ecl4DrFBQ\nFQ38f5fImHfQKuaoQ5BRaVnCHn5YMsNolx2FUv+InrdaUf3DKZeaUvaqGpq1\n+cioiUhXBm1pIcURuPJOzl4VgfbTjDckrYTwF6GhgQGvvxpjQnd8reQxswWu\n8yyw\r\n=VkR6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDReTVwHY1ZfMcJBXutTj3iLRRaQDPyFa5Z8Vsk6fuYZAIgGr0sv+VoPlfD++iDiRMENKU2br7ARWApJACJTB7Qc8c="}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.2.6_1587995586086_0.5161126244226106"},"_hasShrinkwrap":false},"1.2.7":{"name":"@ailabs/ts-utils","version":"1.2.7","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.8.3"},"gitHead":"7814b1a614b3b1f9696bc2ac5a61d012f136100c","_id":"@ailabs/ts-utils@1.2.7","_nodeVersion":"10.19.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-j78Q/eeLahN9hwnByfoY6CRACEL6Y1Jv9E7+YACdpHj47b3J/EA5c9jqnuKhKtPsJI1BZ9iacNuMNuzqP0K7Bw==","shasum":"47209c1508ef1c224c3aed6ad304455126713415","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.2.7.tgz","fileCount":33,"unpackedSize":137085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqC3GCRA9TVsSAnZWagAA2esP/AkQ6q7fGmg/9oheLFme\nn3kJeZQM0XMVxrpV4tnppXYxWbBPIRjB6SjnX15e5dORE64c+C9K6jyiH9JT\nH3OZWt9HDyqGGy0tLSDNhEzU493JNbfFAh7U7Q1Hw82VdBVyaJBPDNMXwYKt\nLtI4Wrt1HbZJ2rNUuR96/t7ELoR+3N4h5R3Dom8KQPZKmIobwRID7LvoyyUG\nUXk13Xdx8HEDBEhXwruVxLTVGk8/1/2cm+I7Jr0MYxAkjGQZx9H8z8/EWy+b\npbmlp91f6Zt4sBFveuGIJTsVhWy/duzIsy29UKItJIpahU0HM/wXh5pSgTK3\nQqKfHvkN6fxuOu0/yfPbmmGvRna5/w4tLuEBISeqzpZmWFS6Y/EIDLJ2l/L9\nGD+cXL+8hwu7UaL3qAn24jL2i2CYe77nckgKUbvnGsmHVG5enxqhEfcVOVp9\ncwQ31HbX9fw+i+97fA+c5rKFbnHVjw9toZYzbQ0spDxRe9HGQxJT1jFDKHiy\nP7Yh958PBEEzX/UkxVfYAfr3GioIaMmNE+yUvAHyY59UEmzuKLqZfnMmSaFa\n9wgRjr/vpozFOdqzEnPF0OFPmuq+g4kMw/TVoh3SngwnIMIa2UEiQVMaREcY\nc7n7MsYs2SPhh2maliFlLYUhv4MxJN7S+Z7N/9zpKrB5HAB9x/PuMYzACv9T\n6HWm\r\n=ZzQL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpVXAY8LXPBOXXw9Mu6szlDTKOG6bNxtLxjPo79ippGAiAMZW73dPjwI6pHvUMPknfEowJ260DijRC1BfAHKZgiFQ=="}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.2.7_1588080070058_0.6850873631671417"},"_hasShrinkwrap":false},"1.3.0":{"name":"@ailabs/ts-utils","version":"1.3.0","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.8.3"},"gitHead":"f07a6ea9b96fd5dd0a1792d0308585838df95860","_id":"@ailabs/ts-utils@1.3.0","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-UcLZL93DsYUVbYFq+MyWKpZIbUZTzs9tBcCSP+vYhPLriqncyYb3FzXnNnYPnaIyzQDy5Y82wpFO8Mt4ppyiLg==","shasum":"6e35a12ebd4ae677b7d826be0bda9eba8fe0fe6f","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.3.0.tgz","fileCount":33,"unpackedSize":137144,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesCd9CRA9TVsSAnZWagAASmMQAJdpiTQFaUHs3gCAJvq4\nVA4fL9QpnIFNxbPjlFoRGZTrsA42AIQE35eNCUolFFwUUu/IW8bbDehWWX1Q\naesvLAJIYv1Kq3C4NSvGt+mRKUruB8Q52J3+FYWPKRB5zpT1Cv3NGbouvurH\nTVM0t6zAEK+2BNSU00ehsyIdUvi6dpcnfmkanLQamc8nxibJ75wsQ7y1/rVH\nriwZuXnQ+jLWCMJYNUEdSPF8dMAUPEvywftg0USuu6CCWwlpG3YdaaOMCRnI\nSR53We1Xq6Nnw1ETRES+2mXjhgWPb7f4DEi76CrNSTXiX60fEpaE1pTK/HiT\nLTD1pWEnT7J2PoT43nzHEk6OyshFC5sk8QrUp9gtBML+RXOYsoC7QhzUJCGt\nqPY1XUiQ0dB5FFW13WZLDqTjwXEJL/UzKdL/OTN95j5LQk5EvRrmsJAwkEx1\nG7WeJWwOR51TfxjfNIhVyxRszOU5wFzNBR3JuLu6axrPEH4rUrs4JMIJEo8E\n4mnzRD30cnFKHUe/JPKAnk5dE7OH0lZDH++PEUCPHT5wjCyxSSW4f1jhRgFn\nC/57c0Q9QhsNrL4hGfPO2HWBZpocoAodXicJM13tIMdF6CcU2msof9Pv0gDl\nqAwC8BzX4u12T2a7V6FQ9ean7x02poyscMrRlnokXFaVYr+005RORKBtQy7p\n/EF1\r\n=69Vk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGEabx293PYkNkDqsF1vta6bjCbVYux/FQrSTl+yndkOAiAvF/pd4OmjOGYZhgzAXGBd/7fYURxTb+h7NaORUwjN+Q=="}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"},{"email":"warren@fountainhead.tech","name":"warrenseymour"}],"_npmUser":{"name":"warrenseymour","email":"warren@fountainhead.tech"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.3.0_1588602748977_0.8764412623424855"},"_hasShrinkwrap":false},"1.2.8":{"name":"@ailabs/ts-utils","version":"1.2.8","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.8.3"},"gitHead":"aaac540b73715ae6bc9213ea561de7a051f0085a","_id":"@ailabs/ts-utils@1.2.8","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-i0tPvUQdVw2ZKP+XqB1ySYi+n5cgAVTHQ4uILT8ayfGTw/YAddFEytYK24THq2ItRzUqQQRX7OIGxl/78ZXhPQ==","shasum":"b5363d8beeda5237158bd7b504ff5cf8227fc4aa","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.2.8.tgz","fileCount":33,"unpackedSize":137564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevEN3CRA9TVsSAnZWagAAlj0QAJeGek2qR4SPG2c5bWUG\ne0uY5xT39X+EFd/CzSb69kVA+grYy3vb9YYLMinS5hTKxr2kXJ8M7dILxYlt\nHhxAPU6bF+B9wMw3p2SoUJxH8oh3lDdOtKZkW0XNqKO/sy0heMZfo1tUK+dC\ndnBdbEc8YsaPgeiMOs4tYY6yjDFcWEQz+0xGCYwztGNc+aaZWUCONDfyRi1Q\nnMmszdBmvmqK3kyP6mAH0sg92jwqnKElnL5LJNpkveiJVRgkL5fnn5xhKR0V\n3m879H4aUccQ+ndWYA6are/R0Tvi6Or30n2dd6zyZEj/wN0P53d/57ZkGSkf\nrT3lAK9ZHkg1a1MKK+ZhTRNe4cH+VmDaeftkQLDSsUBr+my42bx1zaN24Hkn\nFOwKX7eALe4GlyqpNoYDQ3yNUnoUp4POqsLOIgcApXcwDDaiA+fuU6IlFLKK\nL/UWHhurJvKOqfwmbaMZ5nW/Hoi6WDwy6Iu4tEkp826hNU5P00GePiHtZ7wG\nGkURrxX8RFhdNdNOxh7/oo9Vd+7gAXvEZ/EXqCBH3ojxyZKEZqqxd0RoQ/cw\n1OrjaAM/ww11RmY0v6lfxiVXsTspMZrwQW9Mhtlltm9MHL6MuuUO6u/Sed6m\ng6KAebYBzq0up+yiPAEmjsZpZAVPph1ubnI2v6O1JYlMjsU642f1ZXF++15C\nV41A\r\n=RcoP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBvBBRjSAAuuO1MSJFnV17Paq4ygi52yGtfDx5zd6RgWAiB4kUGiLz6i5khuPCw0urBCPAp6d+pwfV453MoeVLvpaw=="}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"},{"email":"warren@fountainhead.tech","name":"warrenseymour"}],"_npmUser":{"name":"rjbrooksjr","email":"rbrooks@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.2.8_1589396342682_0.06961110054584285"},"_hasShrinkwrap":false},"1.3.1":{"name":"@ailabs/ts-utils","version":"1.3.1","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.8.3"},"gitHead":"8cf0fc5adea909d7c8fadb5a5a6da3e84d076b17","_id":"@ailabs/ts-utils@1.3.1","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-snqHA7yoIKbJMJFvFQaOAErCjho3Iaq1gWT2V0TidDKVF2GiURJ5zs1gXmXgffqD95mws89zONFJc11PoDTmpw==","shasum":"01d59ce6b28bfc5d9ae5588ed20923c8b0a3096e","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.3.1.tgz","fileCount":33,"unpackedSize":137564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevE5FCRA9TVsSAnZWagAAvKAP/2vlNPuJucJitfQbvbv7\n3qeUNKlGUFFYmNjzWOAaNYX9XlKoUQ5B9RgxmzoGhLkpY0mFL8KhO3ViPgX1\nPed/H6WqKV+QqO5mfATr0YvBw/0CXl6yMnd46PEwMHhvgAszGLQd/d3AAfxU\nIgSwyEfcJmckhxboWtyP1hgbEsbxFCsZQ53xpxTGwB3ymd1nu855Jczti8ZF\nCWDouvV5qHlJ2vwk3JII5EWCwGI2ZARCNv3QH7XkfDlIFAYx29It+EoT3kKg\nKYfodp7dDSj4ULPIP/uDC/6eHZUKgKd1YzTA5qhVMRZxrFyCm5AQyJ5o0drL\nPg9ElF41SZSELV8yROTbvoaJmciMNrUvvQmx4PQX55QDNk5plUkXvAcHfxsx\nIsv3J6XOTtOpoouoZ9IBxlv4cPU0ej+b9p2huA0EYHJUVR1YCpU04Z1mggXD\nGAJqbCf/XpwqV1LqOpq2oYV7LmPgzgMtsMkV5MM5+2ed+Y79RWzEHmwPPrhi\n3vwDjgBeDxhUVMi5bQZ1jRgaKtUmBH8TdA2z8MIdLftisDpq5q2YYTOVJS9X\nGE30CdoyBLul15mjD3DCjb3uB+IlKzEMMeLs88AEOzH1rzvn2yeTDkU2VeYL\nhp3WexacM32I0qsVRi3zLB91cBFRR2PdJ0I47H9tRPhr5tfYXR01OiVHy9DS\nqtgP\r\n=1oPB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHkOL6maGoO55DBNo5WIWAYsarO8/NyOPt/P0POn6BnAAiEAigZudmOcAFkq6q49HOa6mHm+pq4xruGOSdSLSIuu+AU="}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"},{"email":"warren@fountainhead.tech","name":"warrenseymour"}],"_npmUser":{"name":"rjbrooksjr","email":"rbrooks@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.3.1_1589399108914_0.9633893282307411"},"_hasShrinkwrap":false},"1.3.2":{"name":"@ailabs/ts-utils","version":"1.3.2","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"3.8.3"},"gitHead":"4fe11308be023169a98760ae5ca5acf94cd45e1b","_id":"@ailabs/ts-utils@1.3.2","_nodeVersion":"10.21.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-gv4OGV9tOJ0FuIJpCgSDBd4Hzso4cQ9qZFiB8sJoMNogYOFeuLm3Xn2iuOlgpxJGMptohM2w2SDF6sJWkjBsyQ==","shasum":"586dffbd662914db107d5e6a739570fc6310d98b","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.3.2.tgz","fileCount":34,"unpackedSize":139657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+e9VCRA9TVsSAnZWagAAgvkP/0vzVVG4mjMDq1ZaWOvj\n53Tf7MdkOV/tsztMFA2kjOStDt4M8qKhSUidfIpvddk/tNMzNG5gwjorhGZl\nbMijTJ45f0ErnlgFeVBOj2f0MIrFGAZ/W2hWopDBWe2cyKU4kDakdRvS5vD8\nwjGmeFshMsvSQIH0i/4JAqY7sStNY0u69b3kMY59UkTku+EiKeKCxRJJQZNz\n0/HAjYJCskJ5Ws3uzItuBXQpQEy+BEMq5O2vPr4hdDMarsdqv51aPNgznOGK\nD9u5tIryg+5g025NIUlr5OmOidUfkIdOGBB3ce9LrkKJIR1vFSUTbQP80gWH\nhPvjgaMsXj6BtfbEJ3WJfnxyr/OfTatq5iLU/CT4cSphO6SnxmsgaO9hGRzm\nvzpCGmagGegPWX/c/4AOOLGgPGEbRQ7R71rRHmvN11w1GgjolX8/5TZ2gYpH\njq8vqhx0MIjcTU4NcrtIYp+BNIQea8FHnRxPlth9bspDb/vBvCLrZdij9jJl\n91kRAyKamJcOV1wx3cIkVURiPBywIa6tbu/QZbh5lbUH47s3O1+ZXPR4Otjm\n02MJaORKJTa7yTPpP185T3gKSvBmljmH+FhBx3sClt8MioWV0WjPGNPZmUex\nI3QZA4M87cAdFmSwIG7mAdLjt6YZ1erFIfSRYwIz81AWQbI4DWoTot27Q4X/\n4vFM\r\n=CqmZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgd4FkT20KEyIsHN3z/b/GXKHRK8IJ/+v6BBC4GibjlQIhAPU0SwfHS4hgE+4XzNNh/kKD46YfC6LuSXsiKu4bWmIS"}]},"maintainers":[{"email":"alyson.fedkiw@gmail.com","name":"alysonfedkiw"},{"email":"gregsarault@gmail.com","name":"gsarault44"},{"email":"nate.abele@gmail.com","name":"nateabele"},{"email":"pnchappy92@gmail.com","name":"peterchappy"},{"email":"rbrooks@gmail.com","name":"rjbrooksjr"},{"email":"warren@fountainhead.tech","name":"warrenseymour"}],"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.3.2_1593438037178_0.4241582971256541"},"_hasShrinkwrap":false},"1.4.0":{"name":"@ailabs/ts-utils","version":"1.4.0","description":"Shared TypeScript utilities","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"scripts":{"build":"rm -rf ./dist && yarn test && tsc -p ./tsconfig.json && echo 'Built to ./dist'","test":"mocha -r ts-node/register src/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"homepage":"https://github.com/ai-labs-team/ts-utils#readme","dependencies":{"ramda":"^0.26.1","seedrandom":"3.0.5","ts-toolbelt":"^4.8.19"},"devDependencies":{"@types/chai":"^4.2.0","@types/mocha":"^5.2.7","@types/node":"13.7.7","@types/ramda":"^0.26.33","@types/seedrandom":"2.4.28","chai":"^4.2.0","mocha":"^6.2.0","ts-node":"^8.3.0","typescript":"^4.1.3"},"gitHead":"063046ca35e56f42a19c5c926bcd474c9b379ee3","_id":"@ailabs/ts-utils@1.4.0","_nodeVersion":"16.8.0","_npmVersion":"7.21.0","dist":{"integrity":"sha512-jO8FFfFVTBokpT5OqpUXbsnVb+C22UbfRa/z7D8NBedgc7wJ6bFFHLog90LEGoRJKh1qI/zcwjiZ2pgCXPwpLw==","shasum":"660d7847bbab4840918df3d8a163861516106166","tarball":"https://registry.npmjs.org/@ailabs/ts-utils/-/ts-utils-1.4.0.tgz","fileCount":34,"unpackedSize":141900,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhxIfoCRA9TVsSAnZWagAAEdUP/j76GE5C82lxm5GxYjoi\nEWfiWMemPd5WTOb+2FBE87eFxH5crRrDCIyHaoSqDuoobYipwD0tr+tnOCYL\nPgXit9+3rrw7O07xdchGeFXvBaU2SW+Q5e0HahgZ2stlTm1mtVa59WM+7G6F\nhD33vboOxVVlUxajQ7qGShYu8VyGliCQ4YfM0OD5UlTOKoC6Gah42p6SjCMW\nzP6v29eTluiPooWDj3e6Q/KlIY+WU+cuq/QPtdpcnBnNYGSq+/MtD/WE/0Gh\ngD5M7SOUHY9h11hwOUrzj2+UFtRA8QgCwyWGlRz/m59qE6AU+gXcDRGTKkHj\nITRLTjYXo9yTUKnYEbaxEBzNye3//cVzhO411HX3UuxhZmGqyz9qSeydJk+c\nkfVLGmJVdDjRsSNw488+DCMx8aGK0HuZGHboS+NxrMlpliphhN2aqdJSs/2L\nce8Uv9o8tqeCLjJ7qmfEpeixQsWoNTLIU04dq/D57p5gsweJ2JPTBSm083Ka\nfrIiKmcnESsDYGYsqVXBxR2VmRK8nwzy8HqryuhfuEI81L4L0cEJr7tnXCg5\n1ZvDOpktGGNKoevmMVBRRUFR+13vmcSoDQyCBHKH+SnZe3je+wiWfs2rfLwg\nqeFUlRXHq/9oJEBAfL5bEs2gXjrsQnZ6+a/+L/cWjm0B4Da3PeTWzPyHQsFl\n9Ogx\r\n=Z5oG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHItboLTRC4zfOKiHfJphU4/idI7PTPq4WhWddmmUWspAiEA7fe53FpbwfnRdtlU6rIJzAACOKtRZk6kr/y4smjx/1U="}]},"_npmUser":{"name":"nateabele","email":"nate.abele@gmail.com"},"directories":{},"maintainers":[{"name":"rjbrooksjr","email":"rbrooks@gmail.com"},{"name":"alysonfedkiw","email":"alyson.fedkiw@gmail.com"},{"name":"warrenseymour","email":"warren@fountainhead.tech"},{"name":"nateabele","email":"nate.abele@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-utils_1.4.0_1631882988378_0.19635252057305141"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-20T17:25:54.825Z","1.0.0":"2019-09-20T17:25:55.112Z","modified":"2022-04-04T12:18:18.302Z","1.0.1":"2019-10-18T17:44:49.703Z","1.0.2":"2019-10-18T17:55:01.903Z","1.1.0":"2019-11-10T02:40:06.174Z","1.1.1":"2019-11-10T02:47:03.834Z","1.1.2":"2019-11-10T03:01:26.024Z","1.2.0":"2019-11-11T18:21:08.584Z","1.2.1":"2019-12-11T18:08:42.128Z","1.2.2":"2020-03-04T18:39:18.952Z","1.2.3":"2020-03-06T20:02:38.897Z","1.2.4":"2020-03-11T17:42:12.425Z","1.2.5":"2020-03-13T20:12:11.995Z","1.2.6":"2020-04-27T13:53:06.224Z","1.2.7":"2020-04-28T13:21:10.233Z","1.3.0":"2020-05-04T14:32:29.112Z","1.2.8":"2020-05-13T18:59:02.884Z","1.3.1":"2020-05-13T19:45:09.306Z","1.3.2":"2020-06-29T13:40:37.401Z","1.4.0":"2021-09-17T12:49:48.529Z"},"maintainers":[{"name":"rjbrooksjr","email":"rbrooks@gmail.com"},{"name":"alysonfedkiw","email":"alyson.fedkiw@gmail.com"},{"name":"warrenseymour","email":"warren@fountainhead.tech"},{"name":"nateabele","email":"nate.abele@gmail.com"}],"description":"Shared TypeScript utilities","homepage":"https://github.com/ai-labs-team/ts-utils#readme","repository":{"type":"git","url":"git+https://github.com/ai-labs-team/ts-utils.git"},"author":{"name":"Nate Abele","email":"natea@advisorinnovationlabs.com"},"bugs":{"url":"https://github.com/ai-labs-team/ts-utils/issues"},"license":"Apache-2.0","readme":"# TypeScript Utility Modules\n\nA collection of TypeScript utility classes and functions for safe, principled data manipulation. Class modules support both instance methods and static (curried) functions.\n\n## Prior Art\n\n - Elm (particularly [`Json.Decode`](https://package.elm-lang.org/packages/elm/json/latest/Json-Decode))\n - [`ts.data.json`](https://github.com/joanllenas/ts.data.json)\n\n## Motivation\n\nThis library is primarily oriented around safely consuming data from arbitrary sources within a TypeScript application. Existing libraries that solve this problem were found to be deficient in the following areas:\n\n - **Extra book-keeping related to having to define both types _and_ decoders**: this library intends to be expressive enough to represent any expressable data shape, and allow types to be automatically derived.\n - **Insufficient information related to failures**: other libraries generate error objects that can only be string-ified for a simple explanation of the failure; this library provides error objects that produce highly detailed descriptions of failures, and structured data that can be inspected, or consumed by other tools.\n - **Lack of granular composability**: this library allows arbitrary parsing / validation logic to be granularly interwoven with decoders, and provides utilities to adapt existing code into decoder compositions (see: `Result.attempt()`).\n\nOther modules / types included in this package exist primarly to support safely decoding arbitrary data, but have been augmented with typical features found in other programming environments, to make them nice to use.\n\n## Modules\n\n### `Maybe`\n\nRepresents a value that may or may not be present. While it provides equivalent functionality to the definition of `Maybe` found in other programming environments, it doesn't fully map to formal definition. Rather, the design goals are ease of use, and coherence with TypeScript's type checker.\n\n```typescript\nMaybe.of('Hello').map(str => str.toUpperCase()).defaultTo('??') // ==> 'HELLO'\nMaybe.of(null).map(str => str.toUpperCase()).defaultTo('??') // ==> '??'\n```\n\n### `Result`\n\nRepresents an operation that could succeed or fail, and encapsulates both cases.\n\n### `Decoder`\n\nA module of utility functions for safely consuming untyped data. Provides strong type-safety guarantees that data from APIs or other third-party sources is correct.\n\nAlso includes utlities to derive type definitions from decoders, to avoid redundancy and multiple sources of truth. Example:\n\n```typescript\n// Original code\n\ntype User = {\n  name: string;\n  email: string;\n  created: number;\n  isActive: boolean;\n};\n```\n\nUsing decoders, this type can be written directly as a function that accepts a value, and returns a `Result` with a success value of `User`:\n\n```typescript\n// Step 1\n\nimport { boolean, object, string } from '@ailabs/ts-utils/dist/decoder';\n\nconst user = object('User', {\n  name: string,\n  email: string,\n  created: number,\n  isActive: boolean\n});\n\nconst valueFromAPI: any = {\n  name: 'Will',\n  email: 'will@gmail.com',\n  created: 1342828800,\n  isActive: true\n};\n\nuser(valueFromAPI) // ==> Result<..., { name: string, ... }>\n```\n\nThe final step is to _derive_ the original type from the decoder, so that it can be used elsewhere in the application, the same as a manually-defined type:\n\n```typescript\n// Step 2\n\nimport { Decoded, ... } from '@ailabs/ts-utils/dist/decoder';\n\nconst user = object('User', {\n  // ...\n});\n\n// The `User` type is now equivalent to the `User` type in the original example\ntype User = Decoded<typeof user>;\n```\n\n`Decoder` also includes utilites for mapping common type definitions, such as union types and enums:\n\n##### `inList`: Converts a value to a member of a union type\n\nGiven the following union:\n\n```typescript\ntype Union = 'one' | 'two' | 'three';\n```\n\nIt can be converted to an equivalent type + decoder as follows:\n\n```typescript\nimport { inList } from '@ailabs/ts-utils/dist/decoder';\n\ntype Union = typeof union[number];\n\nconst union = ['one', 'two', 'three'] as const;\nconst toUnion = inList(union);\n```\n\n##### `toEnum`: Converts a value to a member of an enum type\n\n```typescript\nimport { toEnum } from '@ailabs/ts-utils/dist/decoder';\n\nenum Status {\n  Pending = 'Pending',\n  Approved = 'Approved',\n  Cancelled = 'Cancelled',\n  Declined = 'Declined'\n}\n\nconst toStatus = toEnum('Status', Status);\n\ntoStatus('Pending') // ==> Result<..., Status>\n```\n\n##### `and`: Intersects decoders, analogous to TypeScript's `&` operator\n\n```typescript\nimport { and, string, object } from '@ailabs/ts-utils/dist/decoder';\n\nconst foo = object('Foo', { foo: string });\nconst bar = object('Bar', { bar: string });\n\nconst fooAndBar = and(foo, bar);\n// ==> Decoder<..., { foo: string } & { bar: string }>;\n```\n\n### Decoder Composition & Error Handling\n\nThe `Decoder` module strives to facilitate the representation of any valid JSON value, and to handle the challenges of varying or inconsistent formats. The following example demonstrates a `Task` type, with the following attributes:\n\n - An optional `due` field (a `Date` type)\n - An `owner` field, which is either a `Person` type, or a URL to a `Person` resource\n\n(**Note**: The [`pipe()`](https://ramdajs.com/docs/#pipe) function imported from the Ramda library provides left-to-right function composition).\n\n```typescript\nimport { pipe } from 'ramda';\nimport Result from '@ailabs/ts-utils/dist/result';\nimport {\n  DecodeError, Decoded, object, string, parse,\n  number, boolean, nullable, oneOf, array\n} from '@ailabs/ts-utils/dist/decoder';\n\n/**\n * Utility function to convert a parseable string to a date, or\n * else fail with an error.\n */\nconst toDate = (val: string): Result<Error, Date> => (\n  isNaN(Date.parse(val))\n    ? Result.err(new Error('[Invalid date]'))\n    : Result.ok(new Date(val))\n);\n\n/**\n * Utility function to validate that a string is a URL. The `URL`\n * constructor will throw an error if the parameter is not a valid URL, so\n * `Result.attempt()` is used trap the error and convert it to a failed\n * `Result` object.\n */\nconst isUrl = Result.attempt((val: string) => new URL(val) && val);\n\n/* ... */\n\n/**\n * Extract domain model type definitions from decoders\n */\ntype Person = Decoded<typeof person>;\ntype Task = Decoded<typeof task>;\ntype TaskList = Decoded<typeof tasks>;\n\n/**\n * Define the decoder for the `Person` type—this could be inlined\n * inside of `task`, except that the type definition is needed for\n * `oneOf()`, which requires an explicit type parameter of the union\n * of all possible decoder types.\n */\nconst person = object('Person', {\n  name: string,\n  email: string,\n  avatarUrl: pipe(string, parse(isUrl))\n});\n\nconst task = object('Task', {\n  id: number,\n  title: string,\n  completed: boolean,\n  dueDate: nullable(pipe(string, parse(toDate))),\n  owner: oneOf<string | Person, Error>([\n    pipe(string, parse(isUrl)),\n    person\n  ])\n});\n\nconst tasks = array(task);\n\nconst data: any = [{\n  id: 1138,\n  title: 'Implement to-do example',\n  completed: true,\n  owner: {\n    name: 'Will',\n    email: 'will@gmail.com',\n    avatarUrl: 'invalid.url'\n  }\n}];\n\nconst taskList: Result<DecodeError<Error>, TaskList> = tasks(data);\n\nconsole.log(taskList.error()!.toString());\n\n// ==> Decode Error: [TypeError [ERR_INVALID_URL]]: 'Invalid URL: invalid.url' \\\n//       in path: [0] > \\\n//       Decoder.object(Task).owner > \\\n//       Decoder.object(Person).avatarUrl\n```\n\nDecoders produce highly detailed errors, reporting the exact path of invalid data, as well as the value(s) that failed to decode.\n\nThe structural information that errors are generated from is also exposed on `DecodeError` for consumption by other tools.","readmeFilename":"README.md"}