{"_id":"@altostra/type-validations","_rev":"45-5e4631d96fed2e4f1e7f1a0dc9765855","name":"@altostra/type-validations","dist-tags":{"latest":"2.7.2","ts41":"2.0.0-ts-41.0","rc":"2.1.0-simplified-typing.0","record-key-validations":"2.3.0-record-key-validations.0","tagged-union":"2.4.0-tagged-union.1","ts-4.3":"2.4.1-ts-4.3.0","deep-actions":"2.5.0-deep-actions.0","RC":"2.5.2-0","recursive-types":"2.6.0-recursive-types.2","hotfix":"2.6.1-1"},"versions":{"1.0.1":{"name":"@altostra/type-validations","version":"1.0.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"^3.9.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"^3.0.2"},"gitHead":"b1df3553136bdc1e190b9b295c4656d14a813b92","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@1.0.1","_nodeVersion":"12.16.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-HOhMSqd/TUVRFKjUkl8Oq0xQY07ieHOiKu30QP7/4/r2ZUj9quM2tPvtpDpAKZngI/ArwhPE8dsrIaJWBQioXQ==","shasum":"de0e9e237b1170fa4b62c4f3399214ff7951f8b1","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-1.0.1.tgz","fileCount":41,"unpackedSize":57870,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewrAxCRA9TVsSAnZWagAAKv8P/iPQQ0NLDcw0z3ybuf7g\n8F+npVmzatDN/y8dEcWrGHG0EQm8GwWV8jzebMRzP8CZ3t1vIUJF4JsUvvDa\nzUukxDdANIcdg3xRsb1Dj59cAyUcv69SnVFvcyvCFCdLXcUlN6AOqpl0ZkL3\nmZ4ohQeGdcJNyRrMzNBMYgI/1TnS8lU2VVQy6UgB7tv9mq8yM8qXUpm0TtKc\nl92xtH27dHXs1igHULo+jvD34y8K32UBTRNMOXdiugWk9VM9cwiCd7sTgP8e\nFpcRnfeFFDZNJrCG3LB97GMD6fxis1vTIXPDGh4Sty3qDNbfOUABGvczmRrA\nV4F5oa924y9k8QmtBXoXpOCqJgJRCx455fn/kbQXifPnKgaFR+2d79zfNDHe\nzFidBDVU4YudmZBYlvMUy14NKzf8k2xA0yn1faGCZYrgVa/dhk0iNvg51LTl\noXbuLp2nqArY19T+JezLrKZJeHsC4Kb4jcPklNo1nil9c7P7i1XPtTViGuY2\n1mvgL2xZ3fEWd5BKMWdYUHiPdGyyyobwkdp2mtM3wnevdww8L8Nprykcac4O\nXsmu1U405lkLzSc8SIeA02qNnBXBi+okw3WbHXVzPn2J+Er9eb0TXByPYEuZ\nRN6q59JF5UPQHiSeQD+c7wJtpyh76IYxZp4+eRsPK7UKXp6vpU5ONrPQK/US\np4Jk\r\n=NY9I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlPJ4ZzAN/wzMkNyseUswSP/gNIjJQ1y1bmuZABSFUNQIhAOJNcQGMYzzWzZpU89XKJ8VuWJzlk5bZ/kn/az0ocItr"}]},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_1.0.1_1589817393005_0.9114426082808411"},"_hasShrinkwrap":false},"1.0.2":{"name":"@altostra/type-validations","version":"1.0.2","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~3.9.3"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"db64af894f2cade12f88e6a71d0182e6c336732d","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@1.0.2","_nodeVersion":"12.16.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-DN0ocadI10esFec/Gk87TI57S0XoRG7tR72BPdKD2258wSxzmAi7OB3icgf6oYNow2m96TtFeogGsRqgYmjMeQ==","shasum":"a2b9bf31c9c65c8cec46a7a88642472d87b58f55","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-1.0.2.tgz","fileCount":41,"unpackedSize":58081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFq++CRA9TVsSAnZWagAAnLQP/1zGSxNiTrsZ7y9GqKsH\nLm2Erm90wUOqP7hC4KT//+VlFuRIwm4Ptx9k3CTeGTeJtEir+HPoucyDC8GV\nNJL6iPtsuvgUoOWbeQXV1I/avOvqh/M+dlnDWTZkpyMtr8qf1Wj4f0qNbkuo\nJ7tOf3t4ihIjShnsPbEaCL1XiTGZwBOzaOUfh8cdjjL3Hs/3KvfPqGlkmDfa\nPOgXOaF7fNU+zy1q+Rp0atD5C5JZhwJLvbJEC+j+ZHsBh3Uk7b3kDMu/39Af\nMmSTGNWXdVgtKCh7V+3yJtgGD4fQOzMKouKZmJ4oaXE10rw+xlIyqHbb1jCt\nfzQoG7exnv/d2Iy0p72RHmQY7pelOOH2RdGGiuSrDW73Mm8XNWXu2zzm5Rw0\nkNvP+bxnMw/YcyYqG3UNbQQuOR7NghisokGgvPIVXszCXPjT3UvaE7IngYIR\nlUqdvC7tNm7j8pHrEwi2P7IVb9MUsEj4XUrhGsysxlpH5iYZ95lxlsjZpgf8\nsq7b+PpkvNyghf0hpMHa+DxHcImsdeuebY6yObk4X/K9pH2w6ACR+8MxPg1i\n9JFDM6nP1Ri1D+vRd/sn4AgagTZuit/aOz0dSiPerpWi3R7jyPsyxgFAjHKo\nkFrUOAnKhX4vL9AN2xT130tT9Y7wzeMwb88GOWHlhvzC6kYmdqCgeNFm/Nuw\nLSy9\r\n=e/od\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlIyqU9qpr6gC9y4VL5cQ88N0sDC5w9u+XUdx/1qvgbAIgMCFxZacn9X1JH8fTbIUXMwYaHHAM8WUE3XauorROu1I="}]},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_1.0.2_1595322302189_0.2325897335016498"},"_hasShrinkwrap":false},"2.0.0-ts-41.0":{"name":"@altostra/type-validations","version":"2.0.0-ts-41.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.1.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its properties are of a specific type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"60c4b71e8471b5be08fcb70e6b2b574d8ec6506e","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.0.0-ts-41.0","_nodeVersion":"12.18.4","_npmVersion":"6.14.8","dist":{"integrity":"sha512-KTE3uy3VaXSi9n5muUS7X185WowAfAOZ/swfdbP8zWHUN9Cf0P4F/3JqHCIVZiMpkouO2T3vrD6j9kgX8QEFpw==","shasum":"17ec69cce62f56633f77447365c8bb6cac204aaa","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.0.0-ts-41.0.tgz","fileCount":43,"unpackedSize":53974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfumSDCRA9TVsSAnZWagAAzOUP/RFCfNkdwEzVEP9mLRIC\nGLtIFCCv9lTZXZn5uSeGuavy62aratubmeZFLoJLaX+5malv0VDiTd0ZWm7P\nF13b2HxrzThf6G6631C8zkdXMNn6AFZTxFX29A3O4uJf2W0Pgg0yGwInB8fo\nUGuECML735HLVVOXaol9oRXTtOr+cN74xxn+YnwkoFjQaBAAXE/spG1+gw6M\nLNo2n4paZqiOrgNcS9sRd1SiULLrO2qMQWw31px+b160U/yDS6/f/Penl64x\nFYako79avCp1ZM8zuoO7Ut/+GfYE7q4p83xCiWcBNNb91CXpsm10OoIsnzj8\n6YW0iEAwr1MAHiswZLD2jSm6Un0M3gD70YWQiIeyBG26DUy8Skj7hiihmvpt\nIBjhhPoXwe+y+qDOjP0rtzBs1AYWcRmpu6jfOZ59pjfYHTNP6CG1U4ICDJBH\nABw0UoI3Aw4wDwlmHPe3AWL8LHNcBSw33Hfqz6+rZWr/jDdkNpguSt6nbLBb\nZWbzbcJAw93LnklMmzWSUY3O6lX2tdnenZx3nw4aTbFMOfXbtB4+kerNU3gj\nbIVWAuOP+5cCYXJFV2xTVWNupUIwsILufH2yukVca0iXAEso8iQFy3FE6yp9\nCXP0yNFlViADsaOfDVLrc5cOqAnrBN2HIE2kNpeV0r1jZUM0DTaprV4YEYpG\nGBm+\r\n=ZgI2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+bbLQ6E890K9rBP+39SPBCjj/GX4oP3pl+fS6dIdLoQIgcF5nDeB9S2SWkPhxE2L59t8j3cWpLtIySC/grAsj4x8="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.0.0-ts-41.0_1606050946672_0.6321759381678009"},"_hasShrinkwrap":false},"2.0.0":{"name":"@altostra/type-validations","version":"2.0.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.1.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"55b68cb8ecbe35e4acb323749b638c12aebb6e97","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.0.0","_nodeVersion":"12.20.0","_npmVersion":"6.14.9","dist":{"integrity":"sha512-pXBeZBlAYtelgql8I5L1D2rS2YhbP2AcHC4Zlmz7sZYVB+79hxAr14660Fqh5L6xJMZe4a82p7iauIso9sjF0A==","shasum":"ef72132d9157d196499c47a140c9d0845d1dedfb","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.0.0.tgz","fileCount":43,"unpackedSize":53947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfx18KCRA9TVsSAnZWagAA+DMP/2c/Ki10re0UG35+X2mk\nWMW7sh5NvNtqO2Tos9NQ1vAasg5isTjDx3jI7vJqF7QLdzWD3RleZAtmWPyb\nrxxSK0PTQ7WKim3XeC3NXLK1Z9NOFNQz2fDY+NzVErCwS7hQg0mwlqcsAGGA\nbnNr1M+T5PpcNWSUdW0FZmxd72fjnyYTx2KlexQWqKtssuZ6oBvfvmkXbHwr\nH/EJkpHEBEg+hPhDttypyEZ4LtrMgwn3CMpONzE4ZnxfpXC0SNppM8HoFOwJ\n4160U50Eh4nms54BseKfJ4YLNsVsavSIl08X7wRLq7gGrmYbPfYAFQXMlznq\nezWujlWYJFz04/UT9NaqLz13JcoT1y+Fi7XWf1mUlUmEdeDzglrsJhuWUkFl\no5BNo8MGqjgxeMgPiUkCSG4ZL1Q2WpvivDCNOC0s0VVYRuzQv7EZhT1kIkff\nU3x+ZzwRxQfGMet+jPP4LYZQE2TpMgLAiRcfqJMDWxSMv0GrzGuJEOeRlmNB\nsvE8RfELTf6Alht8jBoV8pGQUKZmvNAbmkvukvpwH/iS+lQl3/+6UGOVgxTg\njuazMpR4uENDx6eZCOx7paydmg/6DT5hR7Pm5gMIyEi591G/zSp/gXCZ/e5b\ne/Vo+Zj+80OkRcB1N/GGTjYpAEdX/EAc6O9lS9s4LvSvHyN3uikWuuVqkdMs\nGT8q\r\n=GqoU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAs8e/upTWntO3O1H2khVArKPuExo8FanNJy2dsl3QYgIgF5iGZgVWNdBwXYUG41DZz4+wYl8FNV+TEbN9AzNUFhI="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.0.0_1606901514093_0.043620443363763695"},"_hasShrinkwrap":false},"2.1.0-simplified-typing.0":{"name":"@altostra/type-validations","version":"2.1.0-simplified-typing.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.1.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its properties are of a specific type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"4b2b1f69cb9ed7b25af17421b3825e6a01536c33","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.1.0-simplified-typing.0","_nodeVersion":"12.20.0","_npmVersion":"6.14.9","dist":{"integrity":"sha512-VeQnUg8OT2MPm4oaGcD4o7KP6ub+3WRELK1WAoN7b7sg/Vw4PjO7nbaL5xMMD4d5NwKZboaqYKgL/HbMZaYHwg==","shasum":"e6360ce5e75d029633ddca591ebcbb26ba3db548","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.1.0-simplified-typing.0.tgz","fileCount":43,"unpackedSize":55053,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf43g3CRA9TVsSAnZWagAAxG8P+wVebqvgvAX/nWvohI1p\nHL7IJZV/NxP3bsKoaWCeIp9jF0nabijfKzbgimeeLdyTdjZ5v+/ZEOWpdMMA\njq7Yultv2rp1CBjzaj0ER0bcYiKgg6PemxHLrUNwqFZvPgiW1cZZGRyq9pYA\nSX3LzU5VObJ/tLCc72+PFSX9oPAS7eU2UH5oE8JnCndiJ7bQQB2Y15vhB7Uq\nBT/NfCM+Ljb+Dpq+WY6kYxsnxUgup6eA0hA3wlsORwtT+yASR5lEqt/7mEZ0\n8kN9c0qYdEC7JTpy1FpsdPZTECb6mU0Yuct1miNsCOMct8OYkfwE+I9UNh/a\nezDI6uUdb9o+bbOYdvvGW5nK/KseK1ShH2a++8I/kRvvcB7okNKpddN+jAJ3\nVukVuhPLCole7L6bm6YrtItPU5lTMkkK2MClSIywhHxMa00hx5kJ21f3lJ+n\nfmFf6rP0bqBvPwYZPhRYUwAGA+3B1jZaG5wmxatKxPNFdoZXlV+J6eY7OdWW\nHURV3dia8818bNhRrdNcFonawt8hRdvDh5iQvGhn8Z++clnZnL3Ca56NUIgH\n7ZGUek+UGquR44wppzDhKDIAlz1auRrCYwmnhACUFCk6ixgcM1N83jHqVS2w\ndId4pnTBV55iZVG9uDt299ssKyk3Le1qFI+lbMM96OaMtRGFmyj6DkgwP3GP\nih9O\r\n=zYJo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBVYQEAaJuKLngOhjt1sifRGJizXpPfJ+CSzSTP0zquwIhAPEfydn03YArvmmGhe1TZKtZDHBHJyZmE6gBhDTLzZeY"}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.1.0-simplified-typing.0_1608742966617_0.3882007207984217"},"_hasShrinkwrap":false},"2.1.0":{"name":"@altostra/type-validations","version":"2.1.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.1.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"3e8757e2f4c954e9be11acb98172615df5608e37","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.1.0","_nodeVersion":"12.20.0","_npmVersion":"6.14.9","dist":{"integrity":"sha512-XXWgyXXz2dTXO5+aJudSWqErsSSdRL8N2/kDvO+ka3X4RYw21WAYyN7YiM1k5ebqgvbpIAhfxwnp0zuvlvybmg==","shasum":"d10c1330142a9a808d405a6bf59e82969205568a","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.1.0.tgz","fileCount":43,"unpackedSize":55033,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf5GVVCRA9TVsSAnZWagAAunAP/30PoeJXGKiiOa/xik4i\n6Bdyb0GkLW4lzkCkLSrcTNVF04SF8dwDbRK4TkdT3dcSQwoBGzj8364aQmtO\nG0RSPV3qBPd4TPOwfQi3BTPq1rgv1hWCV/Kisx8Nt1/bGyO7KQHhN2M35ggI\nwSgCUL+ILMp1bU+UKtXULwci2MwB0j0ecf252mr9W++5VWsqsxn5oBO8tTrW\nHXkdHKeVjF8Us4w0ihjCvtUr/Lt7dBm1yQmPS4+iel9heAlpHAmRmJbXMAaK\nztk9rF9CTHrHdFVEtiDTuB5mtZ/JijPA699o92yi+3xIrqa9feI4G2VRuL/e\nS1QrHOLu9Q5LcRfL0BxlY5TA/o3gjlwJQQ4uCPz/lsQwGAxWEb/0DbENtwl5\n3w09CRRCZUXNv8E0aEl2fK9yDkqAn5OnT4AtOwXGN6SC4WKOVZsAoyhuAhR1\ntXDQA+xLLStJn7zJiDJhjhZhhubKPDC9/yMARtva2CAjr9IeWuVGOYDYHd9j\nqzxpaoHiZr5xT6U1AOJbSSjf3bZpX8cele4vXHWwUOE8ou2uePnAyVQ1H999\n7l5FY7TKBZAhxPRA2acbcxdKKP8sewffm1xErOOgNScil1utBAh1sZlqxLcg\nQ6LnG9qsLcre4Red3ZT5Ysf3qEHBr0efMp7ucSw54m6GPXTR/PsNLyzme2+r\no8d6\r\n=OIhz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUw7lLHtzgp818WDFVbNYRy5QAMaAfqK8MwxqAEh4R5wIhAM1fpgmLy2+paqQsBc3CzodeR4vzgWpuOCCA4vfWMBFn"}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.1.0_1608803669031_0.2057531857573014"},"_hasShrinkwrap":false},"2.1.1":{"name":"@altostra/type-validations","version":"2.1.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.1.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"2c955862b972489156c27b9dc153920887813651","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.1.1","_nodeVersion":"12.20.0","_npmVersion":"6.14.9","dist":{"integrity":"sha512-bYLNNlIQ/nTV5d0m8POPBw9yfjzk9CQKpf6tyjZ35hnew0q0QmBAozSc9F2dWA01+H7tJju09Bcjqow6vKyxAA==","shasum":"6e15fb7dfe3a3b3042eead6b77f0e45f3f66352b","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.1.1.tgz","fileCount":43,"unpackedSize":55008,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9DZxCRA9TVsSAnZWagAAu2UP+QAZdzEPPakMYIvKYNHf\nhcPGkVMlT5RIqDdxaFFu4tJb3qjQ3GnFf1JQN6K6oeFr6icTf3zQv1MlUlVT\ncWiXCQSZGDv9MoWQrz7IkwfEObnvuZHDTT5Vx3ApadqCYuIN8J5V5qpIwW2H\n3QgCM5dGr4UQS+Qvt4wYxxqM7Jc3Vmc5poul7fiwVFrJc3p9PB661kd/30tC\niRlkL1L/R7rxYsloYoWQgJLEY/2MrTS1IwiHSKVLWhN1YssEKcKqHSepHbFv\n0y6vn789QWJjsf2kl1P6nS/8CWOn9vefsQRAU8lALticHTfSV32u20iLboA0\nwPZYerOtCSNxhmiitEoTbZ4SvJOGi3Bk9Ws/DF5J6ed0XsUgbNY1EYUwRt3w\nfAAQ0Jvyf6or2IHlE5L3dvHYrLzMuhj8VuT/CtFdQ1Ay5WJ6nCSBpHlc4WBq\n7mbdsvLo4/aoioC/6cqfeDwE+gVbfodPug6RvTMGlLnV0K06ZDPmYSwBhd0z\niHjD2F8w9NIo1G6ZOoj0xmVqWz6awQhNGreT8nRW4hgzw/edLyAN9ikyB/8K\n3Tm67gdjMmboVawmeKAzE9BSwDMVMV2mXH9Ie3n/JaT70qh49bAon6hm/MM7\nk8CUHQ0D12ObkQ1wSpaNMCPpLrr5ngtTu9FnFuCVf7II35nc5CcYKnwlFC0B\nxXeL\r\n=0sm8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZ8bFcT7KtZPjsTnvGK9DlVw33FK5DmJ+CVF1sLaTYzwIgWPFRj2g8tlJWijkidY8TctTHJUJzJOo9eyL18k+cEQo="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.1.1_1609840241196_0.20736387281464985"},"_hasShrinkwrap":false},"2.2.0":{"name":"@altostra/type-validations","version":"2.2.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.1.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"507ac492db4d866264261b046052ab603fb143b6","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.2.0","_nodeVersion":"12.10.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-xRUUNxAgYpRXmBTWKwcppwBGxyKDHGegKKtp/UWqBkilDhXtReXHTD3bQ51khdEBIE6uRQa8bT2NFH/B8Zh08g==","shasum":"d9c033358e6823f6f47aa9bb9e36f4ab9040fc55","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.2.0.tgz","fileCount":43,"unpackedSize":55812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMj0GCRA9TVsSAnZWagAAHSUP/i4ns1k1q4BBCj99qHQk\nh9Jxu+2FN6ljB3gw1F8TenO9l7TjKoymBIjDdhg7ujvdyN77q7f5FEzv/1Rl\nhopPTAM1o28KxtMvPh1DXcUvJL2H0Q3wgnx6nvOmmwGsbi6x9ZSLd4m4zSUJ\ni9E5p9PYVR9Mfa4pLuZpZht9N2Qai9Bj9105hxbuKHVcIeQVElbba8bruZcw\n7rokM2OcInaM+zmdIGcGryuimD2IzuGIRw0x284dAZ6DYAmnPlgLZ28e+fBi\n4t1p+0yh+A1+b8BFaCiFC/4Kie+mS4ZhKZ/zvv30O4PwTEenG7MaY7Vd+Ud2\nsuva4HoForYWGtUx/QFVO6C0p/Trr2xyXuKVczHgpTJIRUiaVEjV0a36CRWb\nJ8HUHcZHefBKWcc+Pb8tQr563xSRF1kURKplARpu5lua0DZY+sn8+yXDAISQ\n5e/HlTyE6nM+mw3fPmmNPn1bzbfLoItlzbUeIsjszJ05QiP0iurAzondBuQK\nWrxYDanmfUSBXBiVqNdNVpOAvHqR1EaEiFCaV2hc8dG+o/grhkLl2wIiuhSW\njxgIcHtYwpwCvoNGAd1oSVTzxzapIuPFWrzShMpW3G/9xM8gzFTImTXrjTfr\nq9bQkYiQpl3OfpGunEdGC6mF4aikYD1LVeJkId6tnNWo104RqnI2nyl5R/fw\nBEaZ\r\n=aLFW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsmS65LyqUC+pot/Aglw3NIREigxdQoblfHiP68QHsjAIhAJ8zHp5t5kfLAzP6FJSnBpd6e6MBGI8UtTDjIcSMllz5"}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.2.0_1613905157361_0.34264702721930695"},"_hasShrinkwrap":false},"2.2.1":{"name":"@altostra/type-validations","version":"2.2.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.1.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"20cb6538b0d16a8f5413814d63d18e2c8d9e961c","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.2.1","_nodeVersion":"12.18.4","_npmVersion":"7.8.0","dist":{"integrity":"sha512-UsN5sgWwibSbd235KD/uY1uWwkXDsavW+N0nX0ZIx5GRPr2ejljChVXptAyMjkIsTAYaoBcQZnU6rTZJ0/B46w==","shasum":"ade0ddb5ac44d9a6c0c6f2e7b4a0e3207f12f41b","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.2.1.tgz","fileCount":43,"unpackedSize":55857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbtBpCRA9TVsSAnZWagAANpUP/0U/rGeNIHIk0pwaPswc\nA+RV5twt1wwUWI8BTsYaDyBlGFNuQEhQplkA5CgjVvapMAtPaSO62/zs/Zsy\nTgvjoBFJTH16dNyg6FVi8NGap1zx4H3/QXpLOf3fVkmWAPtKbpKXCa/CXPXN\n3kpC4K8GoZBDzNsPEoDzgtaW3hJqlOv39aUP2RQXVtjPG0GiFjK/Qp+82jUp\nAJIgLOm5OlsV57D+DwtVdnQuQDL/C5JcMJjOY3N4zEzseoGCl5CwTNK0eMc+\nfEs51n5mKgxAdF3Np5PsNLwcbXN75A2b28PhvBlHyLLwtz9qfwK4kvOFld/j\nVCOVresg+egg30131q+kg1maN5Zh9lOlY0BrBOlaj00jR6WFNnNR8yaPpzAe\n3Zud3gOgx+R9F0EEozi5AljZgXDIJZlJBZZQeASZ0bUfZySuz4pncna+7dxJ\nAag/zRYftMlSnrVauj7QxAat4VMpb3Ct6GBbA0bDEBuzRUQndjsTcAFlxFGW\npXPTLEZoCDBxEenqQUd6jZIEWRHqMFSR2xPc/LyNvf6bMslp5AJ5YqF2sI/c\npkzYW5TFL4/VsbcMpQ7IkhXCo7jXWxryB04uOhESJaOw78ZzGUzO7n9+pL4P\nni/dVP83Kov3B7crn3PGd6g1AUeowkIpYnDkTWG2iYSxw+enenkWH1gjKzsP\neA/z\r\n=CgxL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAXkytREV0dU1oyTyp8+NHghRvyQxkUvlvnOlp9cGqygAiEA3Lc/zXM1MIEgNe2cWy9pBtBMijuj19swEg3TbonHSvs="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.2.1_1617875048662_0.7852233706013152"},"_hasShrinkwrap":false},"2.3.0-record-key-validations.0":{"name":"@altostra/type-validations","version":"2.3.0-record-key-validations.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.2.4"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its properties are of a specific type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"67b378cd8334b49a5840f19f8187a4fe8365d515","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.3.0-record-key-validations.0","_nodeVersion":"12.22.1","_npmVersion":"7.8.0","dist":{"integrity":"sha512-DArlCewfK4y4QyV+TzDxLmzfGhtzjxo0B2KPvfA1v/yBmjNNIfZoWBactc2p3zhUqca6Gs94tgRys+amSd4t9g==","shasum":"e11b12e7c7f02f13a9c98ede177821f458f9959f","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.3.0-record-key-validations.0.tgz","fileCount":43,"unpackedSize":56855,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJge/5dCRA9TVsSAnZWagAAORwQAIiQkt6j4rTGzQ6MrmJ3\nmSb7w3nr6rdWbs3ste9J783qK7ouvxtWi2A6xsUrEUNr0pxrtRN1QWskV4/V\n5/YPXRg5dHnBqXZ8m46AGg3Dr8g5Mn8BVsSn9jQ4Ls6jspSinil/xoeugfT7\nymBIfwEARpQdfzwJfvN9iYWjgbhEsulP0onSlaA6h0tOGIEMhmm7vPIcuc8g\n2GMMiPUQ1eUpGm/PSSSWYD1ZT0UwQSDCsBji22dXf/S2nxjtEYcrZC9mfAaf\nW5FlK2k0EmNDeWlfDOYKrWRPkreBvKG/Md5Pi7dx7XI31rpWen3N5QxaEBcg\nBqG+C053Z35IVW81xKTud24/XMyDq/5kuUf3t1Bnr8WBhWTJZTUEi88eX8Pf\nnJETB75+v4DQGl2clrrw5h3V3vxvzVi+74qdQWpYm4SacteBzVC1sjqffUvS\ncAdBvJ7yXHHUJDLiMxufmVDFAYCZGl4gtTKTZP4kkVrUZblFutkxlE+blVCO\nEAOJtJYcsWRFRN/uB5JdPJvlaNpGeMoQXDhk4xlUO4iZ3OYh8VgDAeQPmieW\nnfjaCzlsCmw5vo78j8A4/VMbzzXAUTWnyguJEs72I33GOxBrUC2bo9lnFUD4\ncIAc6As+ELFytoQRZSpTLvRFmFFCN05dLCyXc2x8qyg75DP7VyvLbpm9lFE/\nozIq\r\n=zuYf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSZX4SB1cidFXCHeOGxU1Ez/IRgj7zmVTSViP/AizcZQIhAL801cltuMdsNUs3i9TKP4IynIEuQE3lKQoHE7E2tv5i"}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.3.0-record-key-validations.0_1618738781198_0.35375319176306763"},"_hasShrinkwrap":false},"2.3.0":{"name":"@altostra/type-validations","version":"2.3.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.2.4"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"04e5e33f9c5b478891fbe28e5d58bbee2762da09","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.3.0","_nodeVersion":"12.22.1","_npmVersion":"7.8.0","dist":{"integrity":"sha512-e1IRCNBc/SgMO7Qftx/P0xxKusJt6vgg162NepbeeSYl3PGSjN+fJWCftQnU5saYgRScLZUVcJHyHv6FBPqmlA==","shasum":"d57776f357915d96fbd57d0bc746a773cdbbb2f8","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.3.0.tgz","fileCount":43,"unpackedSize":56830,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgfCilCRA9TVsSAnZWagAA4JMP/3mAEb9FMJHkt0nEye4c\nExvLzNUP/g9Kh0Or2Z4vf9HXqtkZGnjLY0WVFTnmEgc3HY9ZHxnbezaL88Cy\n2V+sM7LRTbuBeHDoVadLuVFom8pSQt6PdZowjeYZcmNpG0Wefe8Q9Z2vk1Lp\nabfc9QQcJN9wrJTffqT8dfvLLDgVdsyG2+REcobb8F5q+lpnlZOzLl4a6bTf\nKcgqev8zy5yGjP5ya4GaobCYaGy9WqnA2/VsFoDpzEmP86fOE7InoC6k/OIc\n8jav51gEdfG52D++SE3fJayOZ06ZHSaME5hlHy0cN/nwqYy5aOZ1TGBQOWYM\nYes6Q196nlzmg5ha0E8nl4Qm8XqMHGFtV+8cf/qJlEfpQLdT231VFzATFcgk\n6PRn9P6slENwC3fzECls8EMpcK9LkPAjAHxavigCJkgYHQn/m07IrpTAh7mb\nDTC8wPsauG9eyd0FcDtz2NXSsg5eR/cSBcc7O3K49zldCtmZyBU5nWCg+22O\n9Up4AknHC4+vxbZBsU6sZUsS5gnlBoyfBJcWgfZkLUSYGYWShyF1p3NRZ85H\nA2Gyr8TmB/fwBsct/DyuQpdmBhD3OxPpVHVF9yIISfkqc2d53YdETj6VMPo6\n8Wi9lYQGBqY104Y7aiDtJ7+XB+SvpVpGypb2VamvlIpQCTdy4du5yT+A4PAp\nmTHf\r\n=uQTV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAIfd2ecKAPXlPqFxFcF9MDfzsQqgNAUunnkiAYdbwJUAiEA/M71tJyTtD/2S15lUOWwssQ8KunCl9bAtCPhNMlXaGA="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.3.0_1618749604344_0.7614030180612597"},"_hasShrinkwrap":false},"2.4.0-tagged-union.0":{"name":"@altostra/type-validations","version":"2.4.0-tagged-union.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.2.4"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its properties are of a specific type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"4c753cdd6845e4437309dfcfdeae8aa98e19774f","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.4.0-tagged-union.0","_nodeVersion":"12.22.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-V07Vui+/EWLB1xPwPqtktvwnfYn3773FW25YhJLGNr58e9cHZajXX3clZebLEHIr8M1HPF7lsQexZAPL9tvlYg==","shasum":"e729b4684750f501d9a2b843bfd14e344a2c6957","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.4.0-tagged-union.0.tgz","fileCount":45,"unpackedSize":59537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtl1HCRA9TVsSAnZWagAAkPgP/RCrv3aocMoi7sQu2+MR\n/eTTXe/7WP8ZaxzIKKKjBUPWRl99/CEur5U8naarCy4/15i2jjCYLeSpNwIw\n6oOV3Wkd1IK+Gc9YSEegTQ/axzp1mKmYTYkgrx5pFufTzhkrfsUckrYk+Gpg\nJLESCDD6fRJWPx27WkMIe5eTa5RZR3yN4AM8+GtB9cmBZIrYLyNJUPbt+Nfc\ni2Fx5bjh9UBeZ9yT+qbV2dIX38R7odrCKwVHNXwvWwfksBhzSCpxPTCUZS2f\nfBDt7kM+93yxjufFtJcLQZ8t+coxJIIjR9TIwWnA275F3bRJIyJ7IjPAvqKV\nzxHTo+wPBzW5LAsW/p/nU6kCtlLR/4dudIIQ+ZkImJamfUwJkdXKRopKSbrI\nV4zhBYSseQbqreeg9gcQE27Zj/TnH/LZRXFcznz9SrvtG2mIO5YbmPVVyJl4\nOTX8nNfJP9ivaHtITStfPDyCz70N0Q3QxotnJ0RjWF0zyVThtCI3St5vew42\nftLMXCdUh90NvGR2Wp1aQnv3bJuUAfouLlhLU5LGajD+mkjPwrnB/PJSqKRT\nBh6Lskl4Ifdp06wZerK2YZ1u6X8yNFnD5JAE/UgsSQGNpgKYN1YvxdGHYjF0\nvcVISWWs92LLMnhjUEUpU74kec0KxvrzpLChMjHimXq3z69ftGKQqVI/Oc4D\nOVy5\r\n=OIFd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuw3ImyT5sIWooEv1vMjf+gCMKW84rj12azu4jhU8+MQIgPeF4SfAtUJME70BVzCt0qV+4mDNNOoHtbu6RDWOMyVI="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.4.0-tagged-union.0_1622564166803_0.5593205718492251"},"_hasShrinkwrap":false},"2.4.0-tagged-union.1":{"name":"@altostra/type-validations","version":"2.4.0-tagged-union.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.2.4"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/advanced-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its properties are of a specific type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"ede3814871d4c5705b6c893f833714a9a3840eea","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.4.0-tagged-union.1","_nodeVersion":"12.22.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-czZzaTf3yHv+kTOAj/DlhM/Uiyg8xXkCxfu3I3jVshCagbxErn/1K6S90BbA0Xs39sFC2ienGpwRl1qKgM3RJw==","shasum":"125c8ba63732169bbe416e30539cae97fdb5c0ac","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.4.0-tagged-union.1.tgz","fileCount":45,"unpackedSize":59866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtl4zCRA9TVsSAnZWagAAISkP/0BSMby2pD3G0eu74dvV\nhgNqOkyE1qBR4mfgE4oaSMobaihdMhwKBjvYodTxMtqYFOGrNP74/NMufvDC\nZNqoZlBtK8tyhJyx0jZ3nWpDK3CKy+NvMbA0q5jiMXFJs7k82Z43sV4EJIjy\nQNNMoggaHcf527M2UjG5DTsqWrziYestlDfJzNRblTfQsnqIcfAouIi285y2\nKokBzAs2oYw8NMfV54vqZn6jkJxYtvILewBc+aRiHdN5B0dQkTptRzvEwgd9\nfFFufOnmy1Lg1f1OhIol9i72BO/NCMGYzjiv3vA7mjlx6eFQ+3bzR/1THoD1\nDvH1Io4celbks5HnMvv5uM0RtKLTudU/IlVoMDniz7nvUOQoxy+rvVYzFEHz\n6GQtqomnh5F/EhL6wMhjHo8hHBgRNYWohJP0g+/P7alME9fe3SimcJubuHhO\n2wJbcZ1QDk0sbqPmDHerKR0si03AsKGjrOfs1eQn+wNPawGMoUsMJ70APf4V\nstZDXkZA7U3ENtTcBBjrE/EX5usQQOSRXMD0TR2kqu9o1oYR+GF6rXQh2VxY\ndC75OkGu3VeOxp6jECZiSljZNekx93M1qYNr3qAS5UNP4/1dS624de8BMY/v\nrCEPm7sBmrUQQStAe26Nh0waA8IqhXZJzFwM5/T2DiTE9t/KCTUUbBzOeQ9p\nKQJo\r\n=8jgW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHsjQZS1rfhNLjJDzRepxPUQHrBUTNNrM5OjRbpghCfPAiEAwuRhGNPGJU+ak80vYlRqYDV0kbfhyutlYCcVwZwVlnk="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.4.0-tagged-union.1_1622564402971_0.8474490318751382"},"_hasShrinkwrap":false},"2.4.0":{"name":"@altostra/type-validations","version":"2.4.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.2.4"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"888d49d0a9392aa55d55572d324cf7ae805ee6c4","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.4.0","_nodeVersion":"12.22.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-CDHQKAOvNH0AM9diilhDTwS/HZGaJHtcXM8GvT0nE2thh42SvheYbcdrN9KpoBP+tJYV8wKF8l8WwtJsg8uR2g==","shasum":"a552eaddfa2790e851f53cf0d6bb8f0ef82e5f3b","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.4.0.tgz","fileCount":45,"unpackedSize":67467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvjleCRA9TVsSAnZWagAAa+0P/05W5ixPeFr5cKjTIXWU\nHCl5Upi0JB9aBp8ZE3j4DYx6ivI6czIjDMBUnYYY3nPHL+BhWmpbj2uqPUeY\n2hdBC5Y8KA3bMrsqJDhsN93y5BnNwUihN9GNmYH8T/+mMpqU3PJ4PjkEUc02\ncKAVABK9S9BwJuhhwYbJTLVnPr5bAK75evQuDUObRhZCYOc/S4yfTcajDqpq\nbhAVBQNBtLxnpYmVsVeKg2HVAg2pFcZB0kJMGAmd/jhOK7sgHTLtXzLQKI7l\nPJ9BtxFlVRotv4TCyOMatrpWqsfRxKYdDAdB7ghxRHRYFdFMqkcuuMr4/MEX\nBxD2Aux+xgD2H7wc/TzS1W/QMiQ0fvQ0C6fK+smVJ9dRpn9PtvDtt749rnR5\no4dMnuzm3y966eNGU+uJFKD7CPlIkuRzEvr/qWXsF2GHzxtkW4sLxwD3ajdz\nwPN/6kXlRcwr4CF+vYUb9s0DM1hPmkuiFyhuQmDXIaNRoKeePYlzSkHRXJ3j\n27Fso8wqk4s4B8dLZkStKyda5S1NJp5gdgN5eaMIel9LS8DLAigWBcQ/sBOK\n2oowT3s6nDn6ZgfKEi9AgKJbCBQoH6hhGMBplru8fUTPizYb6BCJo2QUnVtv\nG2AU5DAvlMr12z6Aiz+dgl+1Cl9b5XjvjHYjS+apcRjsBRizbwdxOq60UCZt\nk72e\r\n=HpWF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH2Je5rZIJtASrcUS6muKd2NU9nOytTYvdv3Fp6Pa9u9AiEA+aDyKxcb8PPt+aW80/rYYHtVecNympkB5aEIVXDIfvk="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.4.0_1623079261988_0.15099220234855015"},"_hasShrinkwrap":false},"2.4.1-ts-4.3.0":{"name":"@altostra/type-validations","version":"2.4.1-ts-4.3.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.3.4"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its properties are of a specific type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"1b31d55b89e7af13eaba3c25bd0e010a3047f1c4","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.4.1-ts-4.3.0","_nodeVersion":"12.22.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-9Z6r5+Kw7CoDGf/o6LQ3uYh48dMR1GpkIzhYrZO1uYMsB2ixr3Nu4MzxIMgoQtDB7hzVlPKRbVey1GkgfrBZuw==","shasum":"1715f43ac053e3e5c0bbd9f34c95c5a124bbad96","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.4.1-ts-4.3.0.tgz","fileCount":45,"unpackedSize":67476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1KI1CRA9TVsSAnZWagAA3VwP/1E8M5XxodubaqffjsrF\n1ewDT+pmLdRCFM4djoj7JFEAAqfK/scJ9y/coSyd8+BrZqBV/1g4yJQcdvuH\nNWTIV2O9iaZ9wqENLQZWSouDk6+YEZQba3j0HsZr7tfJvF6MlSCgSG00K9F5\nAD5YT+4P5qcTdlZbRkN20XCtTybSiDUpM5zgzSpvMqMV6DcYwami28VkYQTc\nCadflaM97KTNhKLG9L7IRB8snVPTo7pWuLzzNW+OEPCR6W2p8qvjma9fjCv6\nnpX1TDXwkPMUOHlQDi1MBbiTZVy5+9uLqNYHjSzirx6hx5s5FEDQOXEEdF+v\n0bOY4yIk9pfoTJr1xyzQ3vgwXykBPjJuIuU2i9i2/mcdUl2tGE9Jng6y8Ins\nAZllOmyoyboAuDwnlA2aDNpzoW4uZxyW/usVpQOVuwL6YSWWOdG417hdpTRS\nuNKiv4sz9aPO5llcsxG/yW62ip0my95ZNrc5De7l6/F4RH1Al6v8/vKx/ngk\nrtdNSjNzS+YzTNj/DHmXlHtcCyxDqBG67Q/WRcJ2XNdNifzKBjzJy4iSPvsr\nnLYHNRg6R/06Qt0dhqbekNcSRzOt6ftFrE8I+iMBfm/LN6IW54KeVVfg/iam\nNIbk1FbGkgT3dYuJGLmYiM3FZ7WrDJHZO83KHSWcZNhGX2Ts6GYkRlOU/ki9\nKN87\r\n=IQJ8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0qQaNFpAZNfyazGzkwa5NQ8z63oLCskx43oEmxIzX5AiBdsKNFHYMJK2EE46q+ahtVTMCN4XkZuYeDmdZgW40x4w=="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.4.1-ts-4.3.0_1624547893063_0.612064640988168"},"_hasShrinkwrap":false},"2.4.1":{"name":"@altostra/type-validations","version":"2.4.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.2.4"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"8e23813d7271824ced343d8e50fc84c929cf4975","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.4.1","_nodeVersion":"12.22.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-XM+O3HIyu27z7u1VKdAiUqWdl7poMxCX3iMAUbf5Tj2efzOEdcaHhXA0mKHaFLY7XpU0q9L6TQb0NhZ4cUKhAw==","shasum":"eab24d3a0c44b4124dc61770ebc112d27ca7e62d","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.4.1.tgz","fileCount":45,"unpackedSize":67467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1Km4CRA9TVsSAnZWagAAoRgP/iDoglEauTxLaQsWAvLM\ntr845l58XZx1/XlJlI/Q/NokhWpSH6CeaaE64IWB1ftZ60EAXdDLB1KY5kW+\n8CaIeu13sB1mukZyv4FmBIAp7NPVAiaf7AXX4X7DhCsWVCm5xJOsjGaVb1+E\nlBKoGbbARqzT/Isa2uytWijfbh2EtJUdyz+AARcpf0cc+FkDd2L96vmaGxKt\nMYqTF56+SCke6oQ2Lef8qypBmB7PBVAKN5IOeBSSXUiQ4x9F+KkKzEcKGphR\n7lX2YZFJnqekRHC1cevaVb1wrapifSyhKYr+A/+IT22PSCquonh9ElAOEdI5\nsLkg3/IQoVDZgh6MKhcuKit1roTo0XiRBveupH++iDP1y/GvRjt46yLXTof2\nANpWS1YL7C9lltaovJ/uJs7CSUrx0B3fG2Iu9kGb+W7tU/Retv7XSUmIdBTA\nSljh/6COGEaoQ8UrD5lEP1/tuL+BGvNC+1I3QvB3kkTPKbzdV/jr8McI3ooa\n6S6H/I44441g7PjLzN4FgE7OxZZqbYSv8Og1Sg3q3Y7zk8tc2+Zd+iDpR8pd\nLYEEziz5ZV9hgt404Qk0OrclglRt6Rp7qtRl9b1JoPB7q5lCY0n7/D80IUVh\nqfWx41a1eGNFSnQsMJCh2ZP5AmuDjMqtHeJNRntKcYIonDN+RTMKj2Y07FYz\n8jp7\r\n=ifqQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID3x2ohJxZeor2f1Rhcu9D3Y8DqVC37+X3e1KAONH3mPAiB75cSWxs5VS8+pU1VU93d8YBxOrKROqoDdglayT1s98Q=="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.4.1_1624549815850_0.7396585532144826"},"_hasShrinkwrap":false},"2.4.2":{"name":"@altostra/type-validations","version":"2.4.2","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.3.4"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"82a04f3289fcbdc2e9d59076684e19dec4af3b98","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.4.2","_nodeVersion":"12.22.1","_npmVersion":"7.18.1","dist":{"integrity":"sha512-6J3bGwLpYqpE5nJm1Mrfugk+PZoN48916Lc+xN4/UXQNpRikml9TsY8Y6GASUdTNlZftSdtzHUzAp/pMB6vw6w==","shasum":"7b3585095f51aeb461852e867c4699553310f90b","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.4.2.tgz","fileCount":45,"unpackedSize":67467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1Kr9CRA9TVsSAnZWagAAIwwP/R0WMpkCb9Ti/6YDdNnV\nYWIfTrZOnKETccnC1CecE2Y6qy82PEBBXFnM/Kn82OoKkjr4J0CF6OoJPcmD\nNH0EZoKHIpzwsxurCWCWR+2JLXcpg36ei9H7mwn00F/Nf28pxIszf7duKgKY\n1oFImcx3yyGrtZmFba6nPiIhsZXCfLiZV5qvRm8O2LHRGruWPUEbPZFVaroG\n0n+dYeDUfDeW6OEQHFGG2drKqZ5cNf9iCjLoKhAuwlbBIWD1bB7sDBpCyWPV\nvDEnLCz5I5oMdWebmN4lev2xNcNpunk4yTW/uwUkkwmym94kKZfVyndHqzpa\nhmdsTdRDsq3htTK8AFILf6Drrh8monvd8EadNuT1/6ONJNib/JLbEPPalBbX\nxjT8oBUTl+EzKlpX6leTy+wuGThMxox6CAfCVLfnyTDkYmjzUhhpshfxNdx2\n9KhHYKyF1Pks984kveR0FICws8tLwWBm1qnBStYT1Ax52i3FNu51yGC9/KYQ\nF46JbGSxjjDOw+i3CL063D+TSbxU9/+7aVZfNEDyilCKlCJZ7l1UGgMZPgMQ\njZZFVJRCEhPSoKJfNKD9yOb0shDSK4n4nMEbv4MBiE19GSvV/b7jGShybXGi\nxC3zZ4EaubhCZ6vr8a/LWwwfh4WEw/OAwfRqZ7XBGr7Ti7WsqgP5PlECR4sT\nAfLP\r\n=hoAY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCw32JJemwZJcmUqMRSIrkEgZo7aJNa2NCN4MyhHbLQpgIgJRm00hs6GefDk6H9FMq8o5aiQreMniF18jfX+AqBOG4="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.4.2_1624550141310_0.1836050320349134"},"_hasShrinkwrap":false},"2.4.3":{"name":"@altostra/type-validations","version":"2.4.3","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p ./tsconfig.build.json","build:debug":"tsc -p .","build:watch":"npm run build:debug -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"^7.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.3.4"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"43eb98308eea4f018bfbbca2c3a8327562d7051d","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.4.3","_nodeVersion":"12.22.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-7R20nsH081FQV1libvh+opqHgWzeecSfYm/MwA1wG2cq+RLcuw0G3kX+lgDK9CgOuK6/joYS6wg04QxHvDU8Pg==","shasum":"eb8d9598a4abb7f675d68d9ec0bd6999b8f345d2","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.4.3.tgz","fileCount":45,"unpackedSize":67601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7vMvCRA9TVsSAnZWagAAY4QP/jx7uK/azjSCNtkr6P4F\nJub65fHMx0dydCt/c5eIuhRCqjCmqVjtwz4ZGJHhFE9bhdumjbbgFyQQxInb\nGLN5OSjxbWfwxgSU6ZgiXgZsLCpf5aUWYKlQLNhFPDOrsqDRR/i3hfeF4qTY\ng0uarcBay7idX1CuebdDZLyRnul1NG3vb/mv5+9mk/6eNeUL1kysxXTooVE4\nW2eSah+lp096orrCDIbsoIUH1kBgR85yeBbN3wHHcm2afILzd6VMScCMnNMr\n63V9M5xgofWp1A9+3FYpVoAsTQV+r9CKt5cDqzAXuunWY0Gnq/5NTOPp/4Xm\nOccrpyWOPezK2C5RycwlXL+4t3E63zRM3R69PRg4qR4Kr2quCRgLw3ru7Gl8\nAwTE8RKvVN5VouM0ZvHDk711VctrBTt/Mrd9Y7jjlzM9m/1Q9M95kgZEq2o5\n4L24ULvPYO8DykguvOeF7n+73DowqXqRjJo+nEq24hO754n8NDqJTllIK3Db\n2/iNO4ZYmO7Qnkx392tO8SWKI/ka/Vk1b/c3mLAZhHiPl/PkE4to61OHElqq\nKJdy/uFlCnAGhONB7nQHULRy5f3OJJzi3Ii+Ybl16BpC725HvzaE6drHQq+D\nmkeQWk4mSzj8OT/GeTO4CQ9vozAHo4zJjju44kspIYQPIu3uL5w4lROmVVnN\n5PLO\r\n=e7vk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvsS/8jtKqRb3gsWujLeGwAWQS031nQlThHpy3XFlf3wIgA/PbAoSgna+dw+s/OPuGHljS3uiKmVDepgEcLdvSE4w="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.4.3_1626272558443_0.479592316095496"},"_hasShrinkwrap":false},"2.4.4":{"name":"@altostra/type-validations","version":"2.4.4","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.4.3"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"3d63377a536baa131fd3522c81940cdb343da273","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.4.4","_nodeVersion":"12.22.7","_npmVersion":"6.14.15","dist":{"integrity":"sha512-/+npBJ/Dce8EFvBCg+jAICOJzIlmu3QILbLsWhETL6t1WP4ZlYzHxPXECoU8Db/OqsLGL2h4nW9J6PQDYXKvVQ==","shasum":"a1b3451d5943670fe9cdeef3fde335ae515cd2c0","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.4.4.tgz","fileCount":45,"unpackedSize":68094,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfRjgm7myQMpJpl3Nd/ikGfkifFq5u8YNh7OC2J58JOQIhAN0eST5P6yL+nAUdgVmDWbpSIbBl4yE/ObQXD70sSB0+"}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.4.4_1634133454842_0.6104880600186715"},"_hasShrinkwrap":false},"3.0.0-deep-actions.0":{"name":"@altostra/type-validations","version":"3.0.0-deep-actions.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.4.3"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its properties are of a specific type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"51c39dca0e7532d6145c24f8af305ae047700deb","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@3.0.0-deep-actions.0","_nodeVersion":"12.22.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-CDlYpDXtC19/F2NEiCqKgYccdjE8BpzCj9W+CU2mz/9WBCdgsTpx78gpFVdeUHh0k6nymCDa8jUOeH+cV19f6g==","shasum":"af0945bfee37e07ca68329f42b7fd27a2603a843","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-3.0.0-deep-actions.0.tgz","fileCount":45,"unpackedSize":70849,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDoGW9ZzM7hOCxcMD3svkMM4aWGPwMD2fWtcJoOsouPuwIhALgD4pQMMMtQ0OQmisiHy5Dwc4yNsDg5cBGda5mpXVFj"}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_3.0.0-deep-actions.0_1635955482387_0.5340971261901513"},"_hasShrinkwrap":false},"3.0.0-deep-actions.1":{"name":"@altostra/type-validations","version":"3.0.0-deep-actions.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.4.3"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its properties are of a specific type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"d7504b01848c496f4243ae1dd11775531170f410","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@3.0.0-deep-actions.1","_nodeVersion":"12.22.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-yZWlahJmCb1WMVhQLEk4YUiO4M57qQ3oFW7fmYrmckkgve+KicV1if8PxuPJDA8dRYPBrFGgnwr8Sa45wSonDw==","shasum":"f64bd698b1d5dd0928023cd0a0175d010c98d20d","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-3.0.0-deep-actions.1.tgz","fileCount":45,"unpackedSize":72792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDA2mwKd40y8whLFXOzYDvTe4+rJFtSfjcMF5Z075HofAiAc+1b1unBOA/v9jWu4aZ3DlYGBChaeXqUCyZdYPOOWTQ=="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_3.0.0-deep-actions.1_1635965855629_0.9884165963807794"},"_hasShrinkwrap":false},"2.5.0-deep-actions.0":{"name":"@altostra/type-validations","version":"2.5.0-deep-actions.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.4.3"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its properties are of a specific type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"f2f8492e7d3c08a06a05adafc3ff473ebf47f394","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.5.0-deep-actions.0","_nodeVersion":"12.22.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-nHUOmQucYxvLEm2BW2CuWhP6zSY1M/WLjmoOGwxv6hMLf1XfJpxpxzZa4QC8szvFbdnce27w7pldrB+wUGJYVg==","shasum":"ac8c80b3181591df768e1b81bfe97df14d2529ed","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.5.0-deep-actions.0.tgz","fileCount":45,"unpackedSize":72792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDmYfBZqlOT4QRiHJs0AYouEAcjkzaFFZ0/kmeuzBVdHAiAVFFkGNwcVazYUv6IBUazAUMwxU/aS9VNhmgDW9IMK5Q=="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.5.0-deep-actions.0_1636033751638_0.9790726445497893"},"_hasShrinkwrap":false},"2.5.0":{"name":"@altostra/type-validations","version":"2.5.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.4.3"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"c8592859935ace16b7de9eb20d6cbb0563d01bf0","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.5.0","_nodeVersion":"12.22.7","_npmVersion":"6.14.15","dist":{"integrity":"sha512-IeJQLHenwzsIvPhDX/1E7KmoINWye2RK/3llgqm9gVdkJU7T1u6eslJjedc1pfJfDvHPDWXT2gMti/ddB2LDvQ==","shasum":"006d0b6360dbd6f7de53256f0cf9d75cac65cf06","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.5.0.tgz","fileCount":45,"unpackedSize":72673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzFGpCRA9TVsSAnZWagAA6nQP/RL7/Akf3aFTwXCR3Toj\n0eNEa1LaV/GVmtQ5jNnWFb7tTf4iY3GGFG6F7Gu/exDtQpjFbrwlytNVmDAt\n0/i2FQSMMs2vxRIzwGazTpjrZePoq8AEv2XWTHt9ii5fXt9B0WNOUyeDZKKy\nPB05tw5Jkc+EIpRZp9rvtwEjDWrBsstOSWRmkjZCUyMqklmkCG1xfeQQTRSG\nAVxHhJODfL0RKwg/xejanXISZPK0io1VI5NUYjSpSnct2SvvCkyLyYm2+lb7\n6bIm2JpOPFUwBMboCCA9Cw0KM3RODQ9KUoRoj1c/T/lsopemFEWAeTsy4AyY\n5gk3u8gVHRvq2V48f+0CkrlL1aWSOv2fgH++NotVFKpOuu0pJL3gAIjxhVux\n/+b0ro2sj7Myp4efWI9zf9D1+du24BDENSd5tFcX1Xvu7anvI1d//ostNFNf\nMZ+GDq7fEiGiQzWgZYOI/ycjKz4+SCOB2CCOVmqMkY2Wc+N1rhD9ayNC5km4\nZZZNcv/og9GrkqmbPtaz64per0kPOxmQx3x5pBXc5mAID7QtATgd+P/NXXsT\nr0vQGQm6DdH1HNk/TJ+qBDoZvGmTZwZWolb5SazQ8xWEzSrY9B97a9JdJ2ZD\nv/g2sLT0HGwdVxD2+IIhrbHHoAzvQ7mliVh3PikKRukhSm0ehy9nPjGBzFOq\ns/ut\r\n=a9Vo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2jrhowvrrSB5AhhfF+aGUpTAqd0e1hCtIXZWcsBJujAIgDCkS8Mw7381Cwo7+Jm98IMtx+Cyrr37UMk4K1XHRIe8="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.5.0_1636451689323_0.9080030632713696"},"_hasShrinkwrap":false},"2.5.1":{"name":"@altostra/type-validations","version":"2.5.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.1.2","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.4.3"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"cd21859c00c2fca8b33daa2d3b897187e7ff323c","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.5.1","_nodeVersion":"12.22.9","_npmVersion":"6.14.15","dist":{"integrity":"sha512-9iKf/k/hGepbRxxf5kjfhbavS5iX2jfHaOiOyLx6Gh6adMQajhMjQcOEF//u9dIgMkf7zb+vvg8JUgXlevgfsQ==","shasum":"dd6a01bfb24bd868c35c75cd0998841df0e0da60","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.5.1.tgz","fileCount":45,"unpackedSize":72689,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3uVLCRA9TVsSAnZWagAAlQQP/jbFxbl0bS1AsnnsRBCy\nxYF6IbhV3qCbMxyUCIvC1IBrUv6DY3jWfMFPvepdUonTQF+lZRU2PS7MM1Ka\nvDEDgQ6TzOXqT2FigdicoXg51lx5bk2AutIlm5VEC/tULI39+r3/H+8cdbxW\notA1YXsuoFPFvK0QM47GAskby2GbWlyvplJexggp2doG0kj1KJBTZrz9omDx\nfBlrTQK7MR/yIHavnK8Mf8u9Vx2FcpBKG0xaIbuZADlFD5yaJlfeY5mVGG33\nFeJwXwnprVDrFGstW5gU5D7aSBJJywLflGyCVL+egO5AC6qZqOeacHmLzwFU\n91Cui/GaCg/OA3QRwnEABYy1Oe0793RZ1epOdRO4poakuLWMFwwwmyzVWOEW\nlTLk+3sNhP1FeSKMAH1Zwu59uZ0foN+y62SeWPHYo7Bw1+evBqwtaE9mM/P8\n7s1rLKfJRW4hSWBAb0wu6grMl+iMjgbZE7IuGwUmp62TCcDu9A38iYs6oeLt\nX3DefrdcONy0A0ZOqSFb9+YWCtG6NpGgNCVJD2sJk7K85uhHTTjRCuI2JvE7\n8mtJYXUXCv7qzcwBYZ6cgBSdQh2JIfH72B40l19sNfA+9VSvOFbleir3AMXd\nnnVjs/eBGARG971PFXBHBdcxPTP72t6z4Bd7yxzEALj7qeavKwDIESB2C+5I\nc/wG\r\n=mahJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIERzyu+mW6dj9PhJQ/s55re6vKkC4NwleZ0HPOcYbEs8AiAO+OkoqeGZasAuxWVHxG70AK0eiPz6EX55XEDYN99Ykg=="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.5.1_1641997643366_0.4626889618304415"},"_hasShrinkwrap":false},"2.5.2-0":{"name":"@altostra/type-validations","version":"2.5.2-0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its own-enumerable properties are of a specified type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"e164f920258d498e0ab2938c409007aa07cb908c","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.5.2-0","_nodeVersion":"12.22.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-xmg54dJgGOMWgNUbV5XXLvW/Nji+H44m8fJtgZ7ZyhxNNROrkys7WuJsmfGr23g2GH5fipcJPVAyLZd1a1anhg==","shasum":"57a14b1d36774e1189c79d862669e4f5c1459e3d","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.5.2-0.tgz","fileCount":45,"unpackedSize":72798,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKNoUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq91Q//X5tH1749oJ/Irdp81Ym2NUWyYShTdACl0YB8XcWtVjIFh1E2\r\nODrT2s8PKpF7fXkyh85URmX5YotDeJOCMe1wdesqWwRcFfHGtuPE0MJtuXC5\r\n46hgCOQAboHchAkWWGONhLENtwe18iQh2mVabcLoO7S5XopNsrQCzqx9kg1B\r\nhxiiR7kk/MoIbYIeB1a6AVWpLEDLHeQ6l7PJdowbPjW/eLrXDRBLKLwS0ebb\r\n59QY/ASw/um45B8VRz5abmM2Y0rqpBaNJVEAl21PN8liy5UVCQL19z6Iq7kO\r\na5xRcdjDtJMLwBZjuH1sSymXTTDEB2yFHO/8EV5cqmGm2pFbfUdo5yS9NMi5\r\n8lt98KIJ/TMkoWK8mzcrWkDN37YyMlADI+d4Ekb3hP9obGyWRe6eZAiqHba/\r\nSGxewy2ONJNx12IwA18l2uSKmYHsYxyQyICgXzki/cP3Gn+E0LlqtnA9pIFI\r\necvhg1cF//G8OkvY9abuUtkix3BOSGKh+jiqLak9z58qHAoo/63A5cN4MW7Y\r\n4DF/D8OIfzHxn9NygDyTXSrW6zSFvdTRad/KYVEG7maOkXgYZSFDpm1QQCQn\r\n8meB6oOSQRveBuk4mDyGpEf9sOd0YV1agDIPzKggMxd5MNucdKumeD8sRzTA\r\nYh/BEV+5XiRrl9/ZCvmXFhqtg7HYmQYP36g=\r\n=eSEi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmfm5DXYFP1jdvDz+Aim31tRZw6r3d5ZcZu8UxivpHRwIhANIpsz9/eMqFs7QVEHbjfzg1kMm6YhJg1cg70vPKGjrK"}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.5.2-0_1646844436131_0.44332951384750197"},"_hasShrinkwrap":false},"2.5.2":{"name":"@altostra/type-validations","version":"2.5.2","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"4d8f85aac1d8c020ed9d2ae3f0be70299f91bb4f","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.5.2","_nodeVersion":"12.22.10","_npmVersion":"6.14.16","dist":{"integrity":"sha512-YUNLMgXptHNYE+IGCJBo41mKcZoIeeyLXBl6O1YF5FjXhX/ipPlS43RAA+RVI6Exdo+isfFDFHjyFx2ZY5De0Q==","shasum":"8f3b0f1775a1568e1650ab8c37daa6064c73eed0","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.5.2.tgz","fileCount":45,"unpackedSize":72796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKNzoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq67Q/+ITHtbpwqcG7cyZkyHxu/SWbswl1C/OXqzfOexYyWF4j74QXC\r\n9nDDoPLOV5DxkZKoH0fPsSrA/bQ8yR0R77KyR5IkJ7tTRfn1MD0jHoJ+NxHr\r\nmpgZI2d+D0fPith1ylj21rArOTbLtc0m30MWApxmyHxg7tVOwvbzokOW/kuj\r\nRc+93ZJnZZuJge0VB8rDpsd4HcOoEtO8JS0PucQ3i1qLjeGoAhKiwfONXY4M\r\nK6pR7mh0FaYyWtGvbwP3bZdaaStVBu8CuM10OO53tjXHOyveOIvI0A97bWaa\r\nuEFl8WKoITHGEQr8cpi3baEoG9VDJ9wl1bYbBW6HgTd5lx+F8lwuzBdQBknS\r\ngIU3bvigmS9aPJdA00FwrmltNBxlNGTdS/BPb4kA/ELzf2iBqaiD3v2om4Yi\r\n0wvi292spi3MSHdShuVghJmERLAHX3fgh5YSMrZvtRxdAp91phjHnoySfrgU\r\nvfvyvTNDbB0cAf2iNC8VFmwWUKvY9Erj0miryz450QydMCicgO6PFw8etIrJ\r\nSa3rJPLT84AXv4zIpo6d6jRzVSvOok4jysg4nDf5ZuGtD3VjU5OJGWFI5oRc\r\nmS5br9KEqNj8ihuAOxrSVRJUGX9Wkcd57ARSh6nqEw6cvrPiBrbbU4WtwCs8\r\nUQCh7L27VlF7FKHQzRmrhD4woQclN04TkyE=\r\n=hWjT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBOOx06rLTFN/i860v4z3ODOeJe/Qp6JDmNfAXwG0wVKAiEAi8QXR+FH1e0S1FJ0j0+K53yzpXpMhhyUFJ0IjwlyO1Y="}]},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.5.2_1646845160429_0.04637883348974947"},"_hasShrinkwrap":false},"2.6.0-recursive-types.0":{"name":"@altostra/type-validations","version":"2.6.0-recursive-types.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its own-enumerable properties are of a specified type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"0431d662da5036a326c04ca64098540f79b46f84","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.0-recursive-types.0","_nodeVersion":"12.22.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-r+aqgKHaurAOEogJGhT9wPI3BJKVnqr6LrXsjEefhq8HhsySs/9AbtrFGXvWnZa5GiAT4I2JUqNpaCgzQOQ1QQ==","shasum":"899adbb1da58103061d39f97a0e9592cfca26655","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.0-recursive-types.0.tgz","fileCount":47,"unpackedSize":78780,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC56DDb2ankmjMnUziok1bV5ad4nC1UHAuXHeb79t414wIhAPwhrCB5PrkFdTxlRQK2dTCm47WC3gJ1iY6kNWeH2J5i"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiSvM4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqVVg/5AFidkh87jkpaQcITk785S+Kyg+Lyk7JhaxDaLz/yzzl6VTQc\r\nG1kzvwu8B4vq/6jQzi0ajw/cO+qiKr6s5AisR6tFs3tbZ9E1wD0VToueR6tT\r\nfSXZrF7xPxXB5bWrW0SxWR/M9pkRaKxxX4G/q84YYfA1OgodD7E4fkGF6IUJ\r\nz+aJ1pxW2OcKyaHrdBiEs3kUj+e3AlbocQw/c/5UZPflRiV7mlCTXu26v1IG\r\nUG5cPKMelom1mhwdI/aegwj1TWmu25ugrF0+kdsq+6ARYvDxhT1qPOFQjhUN\r\nCy+xM8k1Y7coetnVgAkSvKyIbtjM59/PU2w7B0NTuqTDrOIjSb3MeLKMNRHu\r\n4dKIphBRhtoZnxqbm5Vyldh8uK2NCkexUcxf9QX0eu1CF/DEc53+iF7JCDil\r\n5iMXwEjpBNnGo6hgCj2D5POZ0xQ1kc4C9MsIIhh9gpZYLhzo6YoEYam28yd9\r\nKAP1PM9mgJX5hIJoc5+FrSJIF3IQ5IP0ycNAXkhEk7huma/22wPt+G6Z7fDo\r\nlU+MYWcmp+YrvL+IyA6OFDfwPU80Wv1FIYylw5bYDtBMHTFuDkV1KEAFtp5y\r\nkT1Kn/6rVpKvac+8jnb4TQ01MHwoyURuigrYKI2VBOjqzeGX8cByOORgb+6z\r\nQRhpBXgPJPa9WAZOpa8FLI3cSc06Q0UUy2U=\r\n=p0Tf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.0-recursive-types.0_1649079095903_0.8991911574137614"},"_hasShrinkwrap":false},"2.6.0-recursive-types.1":{"name":"@altostra/type-validations","version":"2.6.0-recursive-types.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its own-enumerable properties are of a specified type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"6e9e8c85e50a7a8c0377f77f0e32f948b5066a05","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.0-recursive-types.1","_nodeVersion":"12.22.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-gbAyHNu7p6O4oJZUt8EjGlxCLJithBFsv0libTg7XQzBb/vl+rkaxXmo4aUAD9R89qBX2tTC2SQdtZcM0LzNgQ==","shasum":"593b5a27a7f6714af969a2597bb4d74cef006711","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.0-recursive-types.1.tgz","fileCount":47,"unpackedSize":78862,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFddoYwbm7jPJB8FqKOdmrFQ+9MXrp1cRd3FHTVZ/sAhAiEA8nHgg7gWXD+zd5PIj7Z5E+te9FUXlWiVxllvh5H8Bf8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTDLoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoOABAAirqs2XfaKlrLLYR8xtiHjKp6C6/+k3oRF6jQpBUUFUXXLlO1\r\n3cAm2VO15i3G+bAU4EYG3xZaxkO23lh84rXRty5LQFqTDGprMBsseo7feQr6\r\n7hf6YlIengrD+W1wyuu0kFhBphqdc5PYiZe7myNjRUFN3EjGJyqgnQWUXIIl\r\nmhLpP8ER504RqQBVK85XPGYjY1NS5Voy7ZXApU0C4yVauiiyrdFPm6auuKJO\r\nhg7lW8XyWfPfnmY9A5/1QAmRgo8dlPRe745aXGl33UX2GtJwn7KXq6vyuvbj\r\njcykTxUAZdFXY5dHzbGu6fQecXhJTz15Ep1K5we5AmSLD+5fAeb2XjB0CEJx\r\nJae/AO9WjCNxvwA8zNHjHh2wK38Wfu90+TopFM0JiIOxp+nqYM21CrBEC0EE\r\nTksAvdi8nksJHnlw5JqfP7KOtLqbSeFJx/M7+i0KSUwS7IUNhApewy9DGpsQ\r\nrfy/dob+PvXq7I0qFPjJBXczlFAEKf5FpDUONTU84hvqV4rigrLaTEji9aRo\r\nEhcE7qosr17GMqKEaIyMcijICiLJF3yNyUgTk8JbjvyBodCe3bLhH3zm+FFE\r\n4YCB/fUHhATP/LhaqaC7twRObmlOYQm8pBtBi0Rs4fSTs/tZm41tpaObxd0Y\r\nY7PPrcfVGcUmagkadXlOvAAE+t4eyQyXYyQ=\r\n=6T9G\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.0-recursive-types.1_1649160936320_0.36952504385758056"},"_hasShrinkwrap":false},"2.6.0-recursive-types.2":{"name":"@altostra/type-validations","version":"2.6.0-recursive-types.2","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its own-enumerable properties are of a specified type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"41ddb2af5219b1022736dd215c8fe7c367a17ad0","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.0-recursive-types.2","_nodeVersion":"12.22.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-WtHPhclcXijR2fqctbF2wif2h/d3aRW+5t/22MqR8r1FD9qD00/ODZS93eMJBcCe1GGCS02mejILcn6848hyzQ==","shasum":"b15bcdbab7693588be628c97212a4b805394a045","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.0-recursive-types.2.tgz","fileCount":47,"unpackedSize":78857,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtAcmuq5DdMG+28MTTzyf631xRQmIvVPKB579W/VzsGQIhALedmohaF5U7CE4toq5MQkmAz8bvt71NrdUmHpl8y1hj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTDZtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqVHA/+Kw3OIIOK74BAKMeBminW++TeZCA1j9nefA6ycHK/vXFuA2tg\r\nl5F9i2e8gJsQTssiCZQFnVkzVIT1fN5Br9TTb0/yiNnBjbcVbVo2GovtDkcw\r\nsh7g62vOE6eSazvUM6FtPhw99LeaZk8IcJjBwprQ8XFVcOY4oKrdKxuntfP2\r\n/POCd1vDcqS4oLcZtl6/hcbe6JkeNOxnDRel1PsabiVKNFijuO4K+RLpD7Ot\r\nJdZFaZiRqL9NVr4ldMVQNiNPQgN4TE1AOuJfcAlBPg83jSU8b33jTgBVXQal\r\ngaNV1oglIObvopNOY5gUf5PPnHplS9W2ncWPBMG5iSsZPr8736Fmgw5RbXoG\r\ntIX8DMpAe1X2UEoJmHYqN/gxCMFqhsplTrf6Xp9OTdVSdslNXbR364I9vvfC\r\nlIndndxe4ck5lWgkstzilX/5wmnac1Kp7Lm8F0HU9iJZBXaUwgkXvEdAQDMd\r\nPwZD9i3Lu0/ZHmKrY4glGZaRwfPvhSegh9gJ61UPUKdMD70oZbKbIUl74llB\r\n/4luu6C7/vdlHO9tHWnXp4XQmm/Zicz3sP+/jcj61/1cn7rccLL+w6VSECtT\r\nYqnXuyAUTRcyOPKRMPKaPJIz+gAV2jWGb1YkL1TNHLJ4G61PZgSK53DXzLHJ\r\nX13c2gBj8YBNSplCXfsk4iE3BRgWEkD9nZk=\r\n=DcIe\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.0-recursive-types.2_1649161837075_0.7302565309390696"},"_hasShrinkwrap":false},"2.6.0":{"name":"@altostra/type-validations","version":"2.6.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"02d1c4ebb30aa432397179e93650f35060d6f8ac","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.0","_nodeVersion":"12.22.12","_npmVersion":"6.14.16","dist":{"integrity":"sha512-hcq6H8/DK1vW/nsV2PNgHi1B7Ipwduyb2SUqCpB+gOUxDzXyy8aoa0+FVFJiOcouXkmpnzLJFBteTJG7gZnbmA==","shasum":"825a6b2969f9cc0edefac43c4c7552fb3fdf1385","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.0.tgz","fileCount":47,"unpackedSize":78839,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBFHfPlUkfNZTCwi51dxsRRZH6/GY/lmGUQA++LVT6aiAiAcpq0EEPRrWrCLhkLepCvnmTBDBnPQkC16yNjVo4wabA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTcjSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpSnA//fGTY0TFaKjwcu9/UtdniJ6k6R69/Vn74TZikEvIOTYC2qDR3\r\nimzz0p/ZV/gzla0K8vi2NNyZ4eUHih8RHEoh5iT5HqPwUsdEd2a79QI8BwaI\r\nGU8KtIrAXmzF0WTeaPfXaZb58pYK0igLlggMObDTMv+NiG88so2omKEC7cuY\r\nyeK7l0nwoqzp2pJmuW+80yPPz7NaP9e/xEDLoVuDLp9CvVETFrE08htqwnu4\r\n9/Ua6ZbypKjr7JiaY3pDvFnCrT6V7Gnssv1fln9AaFa1jKAEV3mwY/Cvl8Zb\r\n8+CPnePlNK5ezHo0NZzfMhDNW7NMj9Or6lOWGbnd85DBoM5hFCyMGjgVCNhp\r\n3TO+EPL5ZtPtcjoQ5jW33Wd1BwZ+ys3a8KmNTi+010tPDHDsPBxcsif+Q3Fv\r\nWlqdyduWV/TRrC58qggIqcKZeoadPdI8QqJVyBNm8qJZAq3hDdwPCL7uQWuR\r\nCIkUltfmu1W9nsyXfhWE0clWnrC7NR1TOGzIeTR08IPahYpGE1QjRhJOnJ7u\r\nwUtCs4upBehP/gRZJy5ZPdbIddudfVVhNWlASeTqncA2CGB3QSQQ7PZ4l224\r\nHFojs6WnDmygQcO2EwdNj4ZlI6A+/V7/ipr/qiyuN8K4GR4b7bBlIXxapWRq\r\nECdbixHQMRlvLYP6VUCjaHr3360H+ydEndA=\r\n=MbIo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.0_1649264850652_0.53558282552905"},"_hasShrinkwrap":false,"deprecated":"Upgrade to 2.6.1"},"2.6.1-0":{"name":"@altostra/type-validations","version":"2.6.1-0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its own-enumerable properties are of a specified type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"89c396106d754e860da3b490208002434f6762e6","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.1-0","_nodeVersion":"12.22.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-Ba32M7GiN3wsJ+ZnHZMjpv/3YFogSbIrMfwnhmnwAlXSzMGUH8VKV4YLqQPvPEkmkRpyVEERmcIEeXW3miHodg==","shasum":"c656ea6e3a0fabdb233cccc3b2c7d6b80359ec1d","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.1-0.tgz","fileCount":47,"unpackedSize":78925,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDN5d611xCMHy3WJaTXZJoQA0yMu1JN28mGI5YbFiOr6gIhAJsMB5LnWjCZl8BuGLhPq4qDVOksOPu2zXq2SDqcAVDR"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUwEyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiUg/+Irm94tkyyOmEdYdUbOckECaHXb6XDbjrsr6YKEw9z0fnKjwU\r\nf9EGS1s/2P/eXh48beoLl1IJ9myZNSJ4bP0BuU3h7DtLziOkkATRNMUNm/y0\r\n0p0UlWCX8p99VFjy+2yGYegbnVy+cQG027tmTpfCBHbFH0f3OjDqXM4qaHPE\r\ndWxcNPRxvbPuDQOUBI85YHqLiNYwZAYD2bizS5lSO7INCz7kHC0Ojnhmih++\r\n46CvxU6S+z29ADbMYZpyBiWIVEj9II6sLXVbhMySed5U2qu4Y4QocNBPVnFA\r\nKgPiz7zHbCuzOn/rLbZog17DUWHbu7So28N6piyA0S+5sTPcuNWOquTb5IQd\r\nPIGJo8Z1A9VbCktet1iYfHDvpr8myialcMSMJignzUdedjnUkS3VplKZcvSQ\r\nxGfi2OniceZzGTT4SVqH4V6GpYEfbdUfts+5usXFSVOsKMkAwOXXbMpCfH4Q\r\nFqu0OHKwkSNUoJsimoLSMlzRMpM8cXmGbgbTKETQuR2hRM+ZjYskSVhXdVn6\r\nFkxKRz6TH65Qg17wHmQsSoWyrEoKyRtSh7lZpE5QrfhbhO1q4bH6O6/73dlZ\r\nvEXFsuHbCDLS+FKarj4GPD9tLCFwi05p5gvgrJ45etFrsWlHMq6liXqS3+V/\r\njv/oOeqGsncz4dMDESfOnfTi2HlH5d0nckE=\r\n=TBil\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.1-0_1649606961967_0.7089092353961262"},"_hasShrinkwrap":false},"2.6.1-1":{"name":"@altostra/type-validations","version":"2.6.1-1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its own-enumerable properties are of a specified type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md","gitHead":"669217f475eeab3eb4ca380cc549e3949c5427d7","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.1-1","_nodeVersion":"12.22.1","_npmVersion":"7.24.2","dist":{"integrity":"sha512-qxt88rDRbT3BZZIqc+DUSNDD62AISdBOgxLW24B1d1bcOHwjSlM1d4nMGRJdto/tHoMBB1PX3NsmjionNbOehw==","shasum":"6188980f54273e65a0ca7a73288321d95974f92d","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.1-1.tgz","fileCount":47,"unpackedSize":78929,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbHSvHSs44S9d2jMosc7wgD4mt7Z626SwponY6/I9bIgIgJk7X3fqKxMfJAVinHz91+RmU0U2RF3WVJauZFRfB01g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUwUYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrezw//Spm488qJQiUydXcLp90Ob+excOvL7bD79wEL5cABOD0x7Q9O\r\n405l3VwQMwVxWNY/96K5kdhBdusDbp0tAzSnIivZVo/YEvpsltwvJ9Q9qxG5\r\njIwv4bgrQ7B4DPKupOpDVfikuy2fqOmkKGzGywUPOPcALF/87QDHk1sjWkKz\r\nWyvpK31gtslyheccffRR9yRGN2FpGL7jTDjwR65DR8j2J8EK/XcLWbCUD9Vw\r\n2KWaxGjcwXA+YRp1wKCd+YhxVFLMw5+//hzEvvitZGZHAGA7ZoR6hR58cfTR\r\naVIEe6yTip4JboQftIt0EDJmRSxmBysW5h8dVlQDUrZurir7krG+AEXjNJwT\r\n4u494rsXY3A0a6SEeG41EEnJqAYzfTG0d782s4iaBq3sTjdpmkWEGzRa3iBC\r\nBrk4cXIQbqRqVsgmG9TrmgSeDwSH0Mpv7gjOlemRM3NR1iqZe6VS8HrRagi+\r\nTw7qRbBviZuR4Aj4xVbTTBFRiQmsI77TYCRk5l0o1C+yfF4KtYVClNadtjuq\r\nhOns25BSEqKuesxaFH5w4WQRkO9iblI7E5X20d5JQALgVjs1FhbnfcIZXPpA\r\nsh0ttT37ubNBbJIg/vPlyRgt3IY684OK2sXMSxa9HKekW+hWodo4UU5uy0wX\r\n+0gmJjMYww+sUPgKsL7wM2yRPMJUHc/WRRs=\r\n=EWbm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.1-1_1649607960008_0.9043104608792598"},"_hasShrinkwrap":false},"2.6.1":{"name":"@altostra/type-validations","version":"2.6.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"^12.12.39","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"f2163417e1fb3690c65006276a01c0d1ec2f3235","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.1","_nodeVersion":"12.22.12","_npmVersion":"6.14.16","dist":{"integrity":"sha512-TU80DndvB2IBXMfk1hX7jSj85TK363Sg+hbQqSHdBSiIvUDbT1mVeGy2nX7OkAAGztfhVAwo28onilTG1xqYhw==","shasum":"67ec600c7221e3d9ccdbe201b73c0df86e78a9b3","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.1.tgz","fileCount":47,"unpackedSize":78993,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAVFdAoo/ofdKUP5xIdNJJBoMgp9famXSAPV5Hhh7hUQIhAJ5LS6uo1KPKQzB+/BDPT3Yz0kUJvPuVHqZfWI3kHbg3"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUwfVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRQBAAkrynfazls+68MeZxkRjOfIshcTP8q+8J5WZcPFnKBZAzoLFp\r\nfTzMBuffJRDkP2cJcqJ3QFKVHkgpevT5KIPDBhBFZlncpbuYG11DYgjSyQrw\r\nQVGhilJ5dfK7XQG0t+lXOiVUu2lvu484GObIDcGtJH7yTLFDQyLNniUaNDsR\r\nphfJfa/3bdJRdNvmZYKSloyZ1g5yRjKbJmo4Qkc7Up97ZhPUUGDVKYyWBAf2\r\n11P7tBz1wTUxURxtxYVWX61AnHvczPuXjhHSQ0Oil8upU13lZFIG5s28XyrJ\r\nKq6WIhI8Bppa8rk/qST8rX/tBWJgsrcja1978C4qpAPD0IFVxd3SLJzA7yVp\r\nxdcTC1PnyBGLo/OETQmFZtGGHHR9PAhQlaaefxL4M2VtsLnR6L6zu5325+Dd\r\nmvR6YymvFQ8EOfIhQRF08ojemGt4hvJwgqV13eSeVM6CLgtMguB8HyYulwQA\r\nnvXEh/gB04Del+ndolham84pOnTZ9eU/iMJES/cmV+zHMwzD83PP+MkEs1/S\r\noo/Zwqnd0KtEY9uNxV11Nr46Z5gi072UVc+72i9+TXDlYQeFb1ck2VHV1um3\r\nHLRlHwyg4VbreSfUuUPO+Kh1buL4gQrKAZjQPoeiZDmrpktbebnIGRJ5F/OZ\r\ntvVNTZZOSE2CpT4T32AZ0c83QOoLPA8k2EU=\r\n=+5dB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.1_1649608660937_0.6651965687630217"},"_hasShrinkwrap":false},"2.6.2":{"name":"@altostra/type-validations","version":"2.6.2","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production"},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"~16.11.36","@types/sinon":"^9.0.0","chai":"^4.2.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"51d7330b55f6a518ecae56e14b7659006bbd2de6","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.2","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-sBe3EtvUKaczBLm/Ubk02iBMmSEb7DersU3GCOAl4PQCCZDXrr9UlTQNgrak8qIpg0d+7W6dbMUgXj5w8ZbAmw==","shasum":"19e8b879b9259fca3da315c4f2f23573ac922e42","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.2.tgz","fileCount":47,"unpackedSize":78993,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxVy3soh9Y8KwGCc1EbfX+Xc083oDUXDBVijkuH2or5AiAPl8sXsDgC70nhTedqVkq7G1ys/kxLk8HJTLaHKsWGZw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJij5kMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHMg/9GNDl1xJm1UHasGGduRzEdEJQ40ywVCVsKPlCeLCf8KCzMLNU\r\ncEVXwyPnC4UXrcC7Li1+VUCj1yqFjT7Bu2SN+gwHi6U5sFLX2WmJ5KMueybD\r\njCIuaF7HnjyqoTc98uyru2rDajTvq7eQ/rIuwqMzcslCFjUEa+7t5YZGTiDJ\r\nnGSmzd9ovZPk/S5s7B32qzLruJJ1vUKcgRO7NJ79ToUIF+h8bRLpS6XJzj5W\r\n78Dn9l+k12Trx4tm7y8b7MzvpORJ4zTzqMcnpvM9jLGDnA16E3uO48DrUvk1\r\ndM5AQZQV+UanEkgoyX8PggaeJW7CKNBAncD3Rb49PnVwIrcE6AAVZOJ92bSO\r\nskKcHQu61nP1J85XTa/4gDb1J97LyuE/DO9ghiPCyyLY/2Xemso/zNqJUvOk\r\nFRcSD1m1oD/di6lxqA4oPvMUAIzGdookhgegLb7NBhXQiXUOf9kRu7fWoTK1\r\nHMBR0EfbmKj+ENoRVvuKVQb0suW8VDInRfSRnGM7xDwHeeXN+umRWIeecVFT\r\nC58+DwpcdvidZ3VQdTv9z+u2hS5rGHKTxZOZ0X3ci4IU1b14L5ROAjXEdjBf\r\nOeCl4eouj1/2HEwYUxcf/zfbtT2kXVlmageMrNoDrcblionLmsFVkBo6pSuU\r\nEHOJ3+Qwcz7uf18P1Pzxxon1mmE4gxXPFyc=\r\n=nkpi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.2_1653577996085_0.5799092505771801"},"_hasShrinkwrap":false},"2.6.3":{"name":"@altostra/type-validations","version":"2.6.3","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production","lint":"eslint ."},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@altostra/eslint-config":"~1.0.7","@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"~16.11.36","@types/sinon":"^9.0.0","@typescript-eslint/eslint-plugin":"~5.28.0","@typescript-eslint/parser":"~5.28.0","chai":"^4.2.0","eslint":"~8.17.0","eslint-config-standard":"~17.0.0","eslint-plugin-import":"~2.26.0","eslint-plugin-n":"~15.2.2","eslint-plugin-node":"~11.1.0","eslint-plugin-promise":"~6.0.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"319b5cacf8339a662a3bb4d4398d917a050ae7fa","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.3","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-HhPbhi7U03C8+IJT35/RwrP/+WpjpaC0ib4Yv+iSDrCXsQOZu+77nbzeoNiIjoWZYmuUJNyI18SD3BDedbi8wQ==","shasum":"186f76b4f0c82459e4d1c2b29af05ea045b1ae7e","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.3.tgz","fileCount":47,"unpackedSize":79581,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEI38JOZrJixJtdtXyM/STQealrYqCIkWxGkhrknK4EmAiEAsa3TjYO/mmfVC3wn+Zz9JZYg+ibIarKd1DZ7T/Z0l8Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqa+2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5ng//U+JWVoSiEYThILZgV/oqQ7KbVFb6QA1VHJ/w9K7SuSbQBNiB\r\nCjzYmVSObaKuIA5ninefw7xeRVdhjZoWdjKgwfYFCBTb5xn0Jmygw1irueA0\r\nJeFjLtXe25SUrH19QF3UKZI85T3fNn9Auu6+sCnXU5KbSz+Ampg9dwMK3Y/x\r\n1gxBiiFvzhFV74D+ZXfTf/jfATNXtorW80E+Ast83CFAfeaZkE236DNb0xDe\r\nqwyERe+sUYfKlrbt9GxoLyYJ1ELJ8ozlO+f2irzaQrF9ZLqYB1ahng6yCu/x\r\nV+S52gz7Vin5rOQVer84f3U+p6M8dEp+ovZRm4fr3t2u6chE5dbNkk/YduH8\r\nf3705cbOxzdslP8762tu9SXXcuA984VzZ9Nbq6EQvZmiYWOeWC98A4Z6eu3p\r\nkyFrctVounDPaZwaxY16PLQCPx8MHMC7iwpE+a6RoHPecAEvckjcbb4bRMQK\r\nQhtAv2WYZNIzziM+cvF8QIiC7lf7a76bKa2lYf9dmvT0fyF0Elu0XZ+PD6RA\r\nqYh1XqYYERnd9A0v+CyjRIMRsYpkElXHo4LUyrs2a+wh9mNH1rKxl1+C5yrM\r\ngxwVzuwE3TW8Y6qJwWKNhQ4sXSAf7bb4xxY2/CLTCSzAw36pNSpoZ0/VF6+p\r\nTE94TBvWhQo2IxuCjK9YNI4E5FxnrEqhz7w=\r\n=1VGp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.3_1655287734800_0.8463711052985978"},"_hasShrinkwrap":false},"2.6.4":{"name":"@altostra/type-validations","version":"2.6.4","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production","lint":"eslint ."},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@altostra/eslint-config":"~1.0.7","@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"~16.11.36","@types/sinon":"^9.0.0","@typescript-eslint/eslint-plugin":"~5.28.0","@typescript-eslint/parser":"~5.28.0","chai":"^4.2.0","eslint":"~8.17.0","eslint-config-standard":"~17.0.0","eslint-plugin-import":"~2.26.0","eslint-plugin-n":"~15.2.2","eslint-plugin-node":"~11.1.0","eslint-plugin-promise":"~6.0.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"^4.6.13","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"5875e407aff696b2a0fafae2c26893eb36945bd3","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.4","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-kQ3bDmnGE0DmjWwRer1MEsKDsjo/WbUrR3WecBE640rcBlQrjL/7mLgJWcT39SQtw/AwZM30pivm10GO6uWMJA==","shasum":"224590f7dff6d5914e93ba460d8c462311676583","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.4.tgz","fileCount":47,"unpackedSize":79581,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMYXyPY6WGqVzQu0qqQ66Au+FuPLPFnhRruy/GvEPqqgIgVbBf+edfI2sRWjB8xB3PgfWilOPqxjO3j9EEIJ2ZTFw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjA4VNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr8aw//QDR0M7c+tdmvMO8AzuN21rwuAT8PiInk48fUOC8rN7xNn0v/\r\nyhnleVIg3oTC1pa/UVgIXnTUO1bpRZvn9eYlgaT3VGrYy0OAZBJJYeoCgon8\r\nuObBa1n4LpsQkDQhySXPCXoOXRtZttBLB9QELGBfadGiEgkVegXMjVYX0Jdi\r\ne1HvwBUuKvQRo4ujeDW52EiQTaCsigEjcxNnzfS+Z6ku41mR53ZHBj8aYLR1\r\nnav09rGCgijAdd3jzgQsNFg7098o8H9CEEaGN8KV6YQm0mDMSIoUW8DNHH7d\r\n5RKSgKhxnb96CIvY05f6thjkffzpwAmVN+GoinyywZErPI446PFc57ZO0hc4\r\n6wioLYbVySUZA4ghhTyPsKxzk0RcRZvgmXTz3116yOj7Vm+9qjHbxYJxXLr7\r\nkbz2Q2YmYY9AV/Y0bxHOnXPVgikxUd4CDsULIeUU0+Zcpswamg61pUn+qv6g\r\nzuJ52JdlugdDBBNMvdqm/m/ntwacIn4wTYJx6xe0ofwaHiTatoEGyZxau4+z\r\nnUWyz1KF0zfWR62+4U6s6Xnvn/TYKkDq4qJcsuDC5G6twBwn2NzGEY19dpkw\r\nMvmyJrkyNvLEZOe+3hCVxVG+a08hr30oK8gk1e1tqpRPBZDeZfMimJcf32PE\r\n205TWvJthkHL01ttBTc4bI5OYjrt7PRHE4M=\r\n=7Vwm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.4_1661175117102_0.6099737285618532"},"_hasShrinkwrap":false},"2.6.5":{"name":"@altostra/type-validations","version":"2.6.5","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production","lint":"eslint ."},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@altostra/eslint-config":"~1.0.7","@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"~16.11.36","@types/sinon":"^9.0.0","@typescript-eslint/eslint-plugin":"~5.28.0","@typescript-eslint/parser":"~5.28.0","chai":"^4.2.0","eslint":"~8.17.0","eslint-config-standard":"~17.0.0","eslint-plugin-import":"~2.26.0","eslint-plugin-n":"~15.2.2","eslint-plugin-node":"~11.1.0","eslint-plugin-promise":"~6.0.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"~5.15.0","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"3fea2428dd803d246887807a40b8f4edce29e686","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.5","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-wTEUlXQWUsniWrYx1Tk/UUeU/+iSc7vVH1iO/MUy0rAxGAf3eqBWnlid9Z9lT94o6R1oHJ6bkY+uJbN2trRghw==","shasum":"dec652c36838acb9416ec913e882d6b6ebfccffe","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.5.tgz","fileCount":47,"unpackedSize":79704,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICI5lHanjXyWEcH8RT9+Ot4KPxuqrHXTI0rW/KMjHgCAAiEAwm4RpeHd3yniTBQ45j9jJIvVrDbyPzpO38VVNHzXgic="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjHaQSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq6+Q/+LFSPRZ27LZVrPY6FqIXqE4p50zDFWaoixKkibhpVsqM4KkDb\r\ng7asgOTadp5mCbUpMGWKwaTqZzbuiOW/ZuQ7aCRQ1dky6xprndTSX5B6bjAQ\r\nwQ2FTxo74O2yiZA1g3iA1ELi3BhWBVvXGe7/ebpK4lv+64OEzOntJFPF3S4w\r\nqDDdsCvGlLgPbEQec0bYt9LeuUqNYrsJgIaulZbmROxsU504dD2IVX3M/kLH\r\nsPeMmjeQdkGPavpyaAUl8PDsreCmns7dk6V/6rBFVZKvGtRSDIaBuhD+t9mG\r\nJJ/jrUHQts0jzESIo6aNgd9l+naZM+zoBMlUnOr7BrwCURxMuZy7iFl374A5\r\nTTe4I7RrEUCsxUqYtbOoNimjzSsD4lERdxyd7VFAYq8ZI6INyRKAwPSBmU29\r\nPebgAif1IFD73ow6idvlF8sHGU0ZGkGi+4qO9m6RWCiPgVKV6ywJ/GV1kFO5\r\nZU7C7Rm6f1UEHpBACV5A0BI017mSRuHnSVvQMQjaQLsx+WhrvYs4aQtIsoSY\r\nHRcvOcSxO7JJzAbtQokBn/uO//0xGijysKaHn2IyxUTEx2bE/2aB3vjRTFaC\r\nNvNuyhEkxLnury74Bl9CXRzrsYDpY/WaLZ2qVVhDJbBrZi28pp/lQa42V215\r\nX4NU8cndMQzhtk9J/qar8LRM6owQf2r3uD8=\r\n=DSKA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.5_1662886930282_0.997655940168467"},"_hasShrinkwrap":false},"2.6.6":{"name":"@altostra/type-validations","version":"2.6.6","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production","lint":"eslint ."},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@altostra/eslint-config":"~1.0.7","@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"~16.11.36","@types/sinon":"^9.0.0","@typescript-eslint/eslint-plugin":"~5.28.0","@typescript-eslint/parser":"~5.28.0","chai":"^4.2.0","eslint":"~8.17.0","eslint-config-standard":"~17.0.0","eslint-plugin-import":"~2.26.0","eslint-plugin-n":"~15.2.2","eslint-plugin-node":"~11.1.0","eslint-plugin-promise":"~6.0.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"~5.15.0","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"0a34ba3ce5394075715a3d411239f139f32730ee","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.6.6","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-VaM+83q+sgJmmiPPohxkRbiOwsgJdXinUX/0KTLTIb4MxVK3GvShh+h5mtDBkzy2JW+kV2A5A05acqohjZ8krQ==","shasum":"79a737d8f885044903bcbc85c59fbe4510dc8e32","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.6.6.tgz","fileCount":47,"unpackedSize":79704,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/VkALLB+EjRbUaqzLm6mvZRhc/augYMJghvrNMwclYwIgafeFsvKf8zGTt8RmMX0HaW4I34maWzkPPYn4pc8c/xo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjdRm3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmonIw//SJGb5hXJh/cd+wi8p5w8d5eDsE19dU/SGzeW6mugmFvUF46d\r\nXIkinXebWllEEP7YlTwCpfslEgyWXPn3VjXbNkCSyXaAkvvS2DPziiiqQq7g\r\nHOqSqwxFHzLhJF8eBxQA1QpQ//juplTHMTGsYeYCg4opG+r1whrL25v/TxEL\r\n9AA5BDx5pL30kO4xHGn5ZQ4OmuATG7TGGuT66BfbNxs00mWcZoT6YsugFQL4\r\nd68hTpikoVn2ghvZ7lNHSNO0mZlq8+Y5zbZmiaJukW/PPjIiw2jpmKsKYevU\r\nwV1vlKo00/le6Bir/vH3a7piecV3rYRITZuTnEAnE3mSEdgtb3sLk8dub7Ww\r\n2sWxlbbYwkLmEveH5JBmVPOsWiL3XT7Dsuw5OfQLEp+v3MsofK7zKh2Wch9c\r\nmfV44LXZFAdbbrszPM5FuvTLU4/7Gl+GtEbAPSOlmqb3quXm5k7U0pU/ftmU\r\nwkpgzX9EnORfJJGRoDbaDzetJgX87+TPmwkbjnYEbvQPDsbXK54VnErsYJ65\r\njyBHqLBY94dsMF4Z+iOzOnW8drdWm4iybIU/x8aU2nDnsFG64oIZHYzhZyEk\r\ncGCOsk5eSq1ILSlOlUXbXjn0QYrSzzzG21nH52klUmY/uXRgCO/wimtq3I9D\r\nECF1zhY3gOGkKn7U4fkP8RuW9v+u74wwut0=\r\n=80EI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.6.6_1668618679174_0.4624698679555921"},"_hasShrinkwrap":false},"2.7.0":{"name":"@altostra/type-validations","version":"2.7.0","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production","lint":"eslint ."},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@altostra/eslint-config":"~1.0.7","@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"~16.11.36","@types/sinon":"^9.0.0","@typescript-eslint/eslint-plugin":"~5.28.0","@typescript-eslint/parser":"~5.28.0","chai":"^4.2.0","eslint":"~8.17.0","eslint-config-standard":"~17.0.0","eslint-plugin-import":"~2.26.0","eslint-plugin-n":"~15.2.2","eslint-plugin-node":"~11.1.0","eslint-plugin-promise":"~6.0.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"~5.15.0","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"4c16940ca88513b4ca42311afa298f3680fbee6c","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.7.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-fl4zzCJC+SgyERK6U+aRI25Tta4nyw2kurt+cR3YH1zXmprd5IX5p0STLA7Xec1ucR0cHqXsPWgBMyB5dHIFDA==","shasum":"106e9e73ea4d8eac71612c52c7249c0283c734e7","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.7.0.tgz","fileCount":47,"unpackedSize":83823,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDkZwxVZPh91B0aaRMqerCi0YQ573zKo2373g0gO3RHzAiB87aOtUdgdMM7dYHgcMiShXh/MEGofidYndlAwE1LGvw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjmt3nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrjQw/+KFoXRZn4OdkVA2CXoYof6onqsody3GpOx/gwMh7Wt5f0sXnU\r\nXvOFWLRmQ5XM4PAgiP60fwp9Z9T/45Ax04cUWdRwJqUdtkKwW5juCbKy2S8C\r\nZyNo3sDLTJgq2Ib/sfnwRFhmQJ9pIPZ/d6fA/s+3WDuO+e4kbUxlR6RsilZq\r\nDbmRbfusQLS6fguykNmc+u7lIGXHntvSYWCs639pqaTWelruTZJ9bUfsMXXN\r\nSm22wZYLMw/UsuyHJqUlmK7dYM8wQvsfwy44KyVwJaOUdGnO1UoZMpALHjX6\r\nVxqVSyO2YgyVVNHdUQX8jqxodk9ChHvNHT49bu3F/k+or2UdU+SVisrDIp8A\r\nk8a4uD7Nj3joTUCuZ+1XWe9PaJrrixFAUZ5Dl55IyuRIwsC1QdAKjGCpa+8l\r\nzW0NXVhsgftwEUX+6I6v42y8Mk12XxSGa7qU8Rj4C7rk+NoVY0z1JhLugnJW\r\nfnZ/Bjn8Y2c3sQlKbp6oAi4Zgj4ROMI0nxHsUhHxZjzpN0DwzaLE3No36dKT\r\nb9F2d/ZoS7bFzZOotnob/FDjsHGMK1DWiN2VS1W7umEN34UZl9rubPQljgQ0\r\nRGHT0EPS+pwBmIrC3NvPIA7z59G3RHSxNtfjJ6XOQGhP9OcVnrtmCXSCiaWb\r\n7fAeHX/pF9zUnXop82Nobb6Svt2PV8xRifg=\r\n=5eiQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.7.0_1671093735239_0.6814748525473855"},"_hasShrinkwrap":false},"2.7.1":{"name":"@altostra/type-validations","version":"2.7.1","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production","lint":"eslint ."},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@altostra/eslint-config":"~1.0.7","@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"~16.11.36","@types/sinon":"^9.0.0","@typescript-eslint/eslint-plugin":"~5.28.0","@typescript-eslint/parser":"~5.28.0","chai":"^4.2.0","eslint":"~8.17.0","eslint-config-standard":"~17.0.0","eslint-plugin-import":"~2.26.0","eslint-plugin-n":"~15.2.2","eslint-plugin-node":"~11.1.0","eslint-plugin-promise":"~6.0.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"~5.15.0","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"6a88e1834a849a5dc927661146ce6b402d9fd134","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.7.1","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-8CCm7xQXj9e1y4ijO/yaroeVoP7SvFBmwoy/g+8t1Gi/Eg60R8fXWx+RW1Qu2hcslvZLkhP4Z0TrEtw9eoZ6Mg==","shasum":"a4dfaef5c8137be5470ff4e5b66b2150687b3560","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.7.1.tgz","fileCount":47,"unpackedSize":83823,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFijZcREzEd4LOl8Go1/MIl7ksh3iQsWJkJj2ZHm1vDQIgAQ7y1zC5K/u3sMnEt0ym9uIF98CbrJreBohgVAKU2YY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtx7kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrI2A/+PY42nvZ85/YMNOnWIywanGIyKrpXHmwlPjIRWoz68L7phjX7\r\nLk/bp0JYYP5BVeV4iugtWjMlxqC8m4rE22ysKF9GSGuFaGjVBOalAAyXdlnZ\r\n/Uxx/5gdlH9LMCAF8ql8XrpLgdZ86iyrx2IJANFK7kQn66cUd5Rt/fGQyvgk\r\nGB0Lx8CNnJ2Y6GQwXo4iV906nRr/kSz2lVTrVTSqiuO+lq9oZkF8h0LJhfX/\r\nyfk9nKsDaMjpoiVe5vmIen96QxH7eWc3iCZFkEfNt8hDuj0uCvX/JzyZe63e\r\nQYK4cvhis4IcOzOFDvKIUnXtv8/ZaDS79Kr9xQytPB3lKa+sgvWNWkaaa/5w\r\nEW+EUcCTSK1BDH6zaBjnRzKLUm4pxb1zB4uVHd4gZ2tZCngZEDFFvSPHlZWC\r\ny8AITy/AFeeW5bXmYlVjuTApLJO1lZKuLLDVo80zeLuyzIMrdeklpQbzP8qg\r\nsDusm5WwMlCcyXFLMKl9hL14Z4Y/K+82SvJ6PTpxoeLmDwnq2rJnG+b203cP\r\n7VXORhPA1j8bov5SU/RLU9edZInezP2e9IsUYN+ZirBvseWIl3dkQ2suyw1Q\r\nW9htWmsoAqzgYlXFWTpCzAmAKs9WBrPRth5uGd3W+YOgTlUFOhPAu5Papysc\r\n5+ABi3Rt8sHOUt67f7jn8XT9QRBmkuupQm8=\r\n=P57G\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.7.1_1672945380645_0.4962429405135189"},"_hasShrinkwrap":false},"2.7.2":{"name":"@altostra/type-validations","version":"2.7.2","description":"Utility functions to create type-guards and assertions.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"test":"mocha \"src/**/*.spec.ts\" --recursive","build:clean":"rimraf lib","build":"npm run build:clean && tsc -p \"${TSCONFIG:-./tsconfig.build.json}\"","build:debug":"TSCONFIG=. npm run build","build:watch":"npm run build:debug -- -- -w","build:minify":"node scripts/minify-lib.js","build:production":"npm run build && npm run build:minify","prepublishOnly":"npm ci && npm test && npm run build:production && npm ci --production","lint":"eslint ."},"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"keywords":["type","validation","type","guards","assertions","input","validation"],"author":{"name":"Altostra Inc."},"license":"MIT","devDependencies":{"@altostra/eslint-config":"~1.0.7","@types/chai":"^4.2.11","@types/mocha":"^7.0.2","@types/node":"~16.11.36","@types/sinon":"^9.0.0","@typescript-eslint/eslint-plugin":"~5.28.0","@typescript-eslint/parser":"~5.28.0","chai":"^4.2.0","eslint":"~8.17.0","eslint-config-standard":"~17.0.0","eslint-plugin-import":"~2.26.0","eslint-plugin-n":"~15.2.2","eslint-plugin-node":"~11.1.0","eslint-plugin-promise":"~6.0.0","mocha":"~9.2.1","rimraf":"^3.0.2","sinon":"^9.0.2","terser":"~5.15.0","ts-node":"^8.10.1","tsconfig-paths":"^3.9.0","typescript":"~4.6.2"},"dependencies":{"@reactivex/ix-es2015-cjs":"~3.0.2"},"gitHead":"dbbd3147067e8db0367b22a308b440102e886698","bugs":{"url":"https://github.com/altostra/type-validations/issues"},"homepage":"https://github.com/altostra/type-validations#readme","_id":"@altostra/type-validations@2.7.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-h7qiqBgcNI/oYp0OWhq59EZnqRUL37QJEUVr3Pu+E2sqs46dqzxE6fnckf/dC6XdKcZRAKBm34JRn36+uk603A==","shasum":"21b1562dd7a0f718c445ca55267cde9163cf82fe","tarball":"https://registry.npmjs.org/@altostra/type-validations/-/type-validations-2.7.2.tgz","fileCount":47,"unpackedSize":83823,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH0qBe5v7077zzURA8IRxf0IEhAAVHBLmIC+xOekXECgIgTv7O1daONmYrPuiXvOFuArVHo0shga8onK4QrnJhCdU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3579ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpbRRAAkmGzI8oTNOEpGeGTA7vGAy08vRpKwIGaeedLVQj/ixhUuKqE\r\nfrJztv0cf/IzjiH/HineCNEmZg2ZTeFDOrXiNiv2Naik48r1HqbynqZvOJO1\r\n3q6ewWTsAQZSHK+CYoKWYRWdJrNuh0jI/ykR8YDcd9hqujqq3OIzINXMq9rV\r\nPWXUNZYuweefnxsPUjJ8SWUmPI5pql5o8RqNL5l8FsDKhTYAy4vMeyk2PUtV\r\nB3Yx3JNSbeGgEv3mgbYmyAaCs+V3Fy5Ao7scmqPqL+QpVOrRE2sJ4spP2OGe\r\nVnUBK81BTFZb8kd7l+rZBLL93O7oIrAuGxVNJXFbs1W7r08YyZHKetF6cbpo\r\n026fLa8vhH5OksapsPAbSqcZpsQfyGsBT5mwNcF3nJyjMKEn7uYJhiK0doTM\r\njjigf1YkkfKdvho/xt5MVDuTn34wN/l9lBxPgFlShwdm6TUlbZs4s6JcMuKI\r\nlG4+8Ld/5k0Z2BiuvyH0yCGKZsKrlNiZZNThAXDyxZYJjjJjgUI+6mRUukuN\r\nxjzDDvdexZz79Qi5t1MzmmC1lMrrfs2qwr6XtEkbowF228hnRupD+gxvfQt7\r\nx61+RuYetPGydDBmZxdFmyAN4O8+dGfEnpNmkcS+cgVnQFbvbB0YOowzIXKS\r\nQUH8L0Qz9MSipioqMaVIN/zpd3MffB/SEjQ=\r\n=xuaz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"altostra-npm","email":"npm@altostra.com"},"directories":{},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/type-validations_2.7.2_1675599613314_0.6361440142547821"},"_hasShrinkwrap":false}},"time":{"created":"2020-05-18T15:47:19.329Z","1.0.0":"2020-05-18T15:47:19.452Z","modified":"2023-02-05T12:20:13.599Z","1.0.1":"2020-05-18T15:56:33.164Z","1.0.2":"2020-07-21T09:05:02.374Z","2.0.0-ts-41.0":"2020-11-22T13:15:46.803Z","2.0.0":"2020-12-02T09:31:54.241Z","2.1.0-simplified-typing.0":"2020-12-23T17:02:46.930Z","2.1.0":"2020-12-24T09:54:29.150Z","2.1.1":"2021-01-05T09:50:41.347Z","2.2.0":"2021-02-21T10:59:17.496Z","2.2.1":"2021-04-08T09:44:08.822Z","2.3.0-record-key-validations.0":"2021-04-18T09:39:41.315Z","2.3.0":"2021-04-18T12:40:04.508Z","2.4.0-tagged-union.0":"2021-06-01T16:16:06.947Z","2.4.0-tagged-union.1":"2021-06-01T16:20:03.128Z","2.4.0":"2021-06-07T15:21:02.106Z","2.4.1-ts-4.3.0":"2021-06-24T15:18:13.274Z","2.4.1":"2021-06-24T15:50:15.980Z","2.4.2":"2021-06-24T15:55:41.503Z","2.4.3":"2021-07-14T14:22:39.322Z","2.4.4":"2021-10-13T13:57:35.048Z","3.0.0-deep-actions.0":"2021-11-03T16:04:42.548Z","3.0.0-deep-actions.1":"2021-11-03T18:57:35.745Z","2.5.0-deep-actions.0":"2021-11-04T13:49:11.863Z","2.5.0":"2021-11-09T09:54:49.507Z","2.5.1":"2022-01-12T14:27:23.496Z","2.5.2-0":"2022-03-09T16:47:16.283Z","2.5.2":"2022-03-09T16:59:20.596Z","2.6.0-recursive-types.0":"2022-04-04T13:31:36.129Z","2.6.0-recursive-types.1":"2022-04-05T12:15:36.666Z","2.6.0-recursive-types.2":"2022-04-05T12:30:37.236Z","2.6.0":"2022-04-06T17:07:30.847Z","2.6.1-0":"2022-04-10T16:09:22.189Z","2.6.1-1":"2022-04-10T16:26:00.414Z","2.6.1":"2022-04-10T16:37:41.106Z","2.6.2":"2022-05-26T15:13:16.253Z","2.6.3":"2022-06-15T10:08:54.961Z","2.6.4":"2022-08-22T13:31:57.293Z","2.6.5":"2022-09-11T09:02:10.470Z","2.6.6":"2022-11-16T17:11:19.340Z","2.7.0":"2022-12-15T08:42:15.439Z","2.7.1":"2023-01-05T19:03:00.826Z","2.7.2":"2023-02-05T12:20:13.501Z"},"maintainers":[{"name":"altostra-npm","email":"npm@altostra.com"}],"description":"Utility functions to create type-guards and assertions.","homepage":"https://github.com/altostra/type-validations#readme","keywords":["type","validation","type","guards","assertions","input","validation"],"repository":{"type":"git","url":"git+ssh://git@github.com/altostra/type-validations.git"},"author":{"name":"Altostra Inc."},"bugs":{"url":"https://github.com/altostra/type-validations/issues"},"license":"MIT","readme":"# Type validations\n\n[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/altostra/type-validations)\n![CI](https://github.com/altostra/type-validations/workflows/CI/badge.svg)\n[![npm version](https://badge.fury.io/js/%40altostra%2Ftype-validations.svg)](https://badge.fury.io/js/%40altostra%2Ftype-validations)\n\nType validations is a library for creating *type-validator*s: augmented \n[*type-guard*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html)s \nthat perform full runtime type-validation and let TypeScript type checker know what a \ntype may be in a certain context.\n\n## Installation\n\n```sh\n$ npm install @altostra/type-validations\n```\n\n## Reference\n\nA full reference can be found [here](./docs/reference/index.md).\n\n### [`allOf`](./docs/reference/docs/reference/allOf.md)\n\nCreates *type-validator*s for an\n[*intersections-type*](https://www.typescriptlang.org/docs/handbook/2/objects.html#intersection-types)\nfrom a list of *type-validator*s.\n\n### [`anyOf`](./docs/reference/anyOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a list of *type-validator*s.\n\n### [`arrayOf`](./docs/reference/arrayOf.md)\n\nGiven *type-guard* for type `T`, creates a *type-validator* for `T[]`.\n\n### [`assertBy`](./docs/reference/assertions.md)\n\nCreate *assertion-functions* from *type-validation* and an error-factory.\n\n### [`enumOf`](./docs/reference/enumOf.md)\n\nCreates a *type-validation* that checks if a value is one of the specified values\n(using strict equality).\n\n### [`is`](./docs/reference/is.md)\n\nCreates a *type-validation* that only allows values that are strictly equal to \nthe provided value.\n\n### [`isEmptyArray`](./docs/reference/isEmptyArray.md)\n\nA *type-validation* that checks if a value is an empty array.\n\n### [`isEmptyObject`](./docs/reference/isEmptyObject.md)\n\nA *type-validation* that checks if a value is an empty object.\n\n### [`isFunction`](./docs/reference/isFunction.md)\n\nCreates a *type-validation* that checks if a value is a function with a specified length.\n\n### [`maybe`](./docs/reference/maybe.md)\n\nCreates a *type-validation* that checks if a value is of validated type, `undefined`, \nand optionally `null`.\n\n### [`objectOf`](./docs/reference/objectOf.md)\n\nCreates *type-validation* that checks if a value is an object that all its properties\nare validated with the provided validations.\n\n### [`recordOf`](./docs/reference/recordOf.md)\n\nCreates *type-validator* that checks that a given value is an object and that\nall its own-enumerable properties are of a specified type.\n\n### [`singleOrArray`](./docs/reference/singleOrArray.md)\n\nCreates a *type-validation* that checks if a value is either a specific type or an\narray of that type.\n\n### [`taggedUnionOf`](./docs/reference/taggedUnionOf.md)\n\nCreates *type-validator*s for a\n[*union-type*](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)\nfrom a mapping between specified tag property values and validators, when the *union-type* \nis in fact a [*discriminated union*](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions).\n\n### [`tupleOf`](./docs/reference/tupleOf.md)\n\nCreates a *type-validation* that checks that an object is an array with a specific length,\nand has all the provided indices validated.\n\n### [Primitives](./docs/reference/primitives.md)\n\n#### *Type-validations*\n- `string`\n- `maybeString`\n- `number`\n- `maybeNumber`\n- `boolean`\n- `maybeBoolean`\n- `nullValidation`\n- `nullOrUndefined`\n- `undefinedValidation`\n- `symbol`\n- `maybeSymbol`\n- `bigint`\n- `maybeBigint`\n- `any`\n- `unknown`\n- `never`\n\n#### *Type-assertions*\n\n- `stringAssertion`\n- `maybeStringAssertion`\n- `numberAssertion`\n- `maybeNumberAssertion`\n- `booleanAssertion`\n- `maybeBooleanAssertion`\n- `nullAssertion`\n- `nullOrUndefinedAssertion`\n- `undefinedAssertion`\n- `symbolAssertion`\n- `maybeSymbolAssertion`\n- `bigintAssertion`\n- `maybeBigintAssertion`\n- `anyAssertion`\n- `unknownAssertion`\n- `assert`\n","readmeFilename":"readme.md"}