{"_id":"@tool-belt/type-predicates","_rev":"10-e2658377bdc6b2a1ae7ab5782d07bbc3","name":"@tool-belt/type-predicates","dist-tags":{"latest":"1.4.1"},"versions":{"1.0.0":{"name":"@tool-belt/type-predicates","version":"1.0.0","keywords":["type-assertions","type-guards","type-predicates","typescript","utilities","utils","guards","assertions","predicates"],"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","_id":"@tool-belt/type-predicates@1.0.0","maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"homepage":"https://github.com/tool-belt/type-predicates#readme","bugs":{"url":"https://github.com/tool-belt/type-predicates/issues"},"dist":{"shasum":"38159e7c58ff2a7ab7d8d1440928cd21cabd0211","tarball":"https://registry.npmjs.org/@tool-belt/type-predicates/-/type-predicates-1.0.0.tgz","fileCount":87,"integrity":"sha512-MSJcec67AXfW8pybhAatrz3BNS7BGPRuPkYPofINV1syadeVRhHxXQCC1N4H9Chz0zcZFc6wrFAr06/xiR2S7w==","signatures":[{"sig":"MEUCIQDyGlgxoOsMwXyoBLbr14v1RsRqnLx2x0v3gTzV6/Qn8AIgE2KUD5xFj32i0hn2fVszlgrukw1ZIZIr9gu789W+V5c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":99591,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEC8jCRA9TVsSAnZWagAAOFoP/2PjLZmpwHTdWmCNgdps\nk8x0/yZlgta6bi1U5RYD4WNX3qJtzu9myNCG0Op6bEhTOjUKn4cA2PHfp8fK\nlVAd8eJShHBS/uhdAS4OMJ39udYu3BwcdWeDEGnkiln8LJt9ab8Um0243vIb\n6GWqk/p2Anxc/Ik5mYQ04DgPqclTap7MEv2qUVtD0j6nP6vJmafmXEZW4B55\ngIu0A41dkk3doKwt+3ohul7jSc0/scfq8BAyijp4V8KVIuOV9odr+b4hFHmp\nb/djdRMSkry71ZgRjehesQIJHtYmIELRMLCJ2YdVqJsfQN8ssN5z9tKN+6MM\nhkM6G/6G15su8pO7NAXpJX6s4rO8jOtbuA3Q+9NFcX/f7qT3zPix0DrWpBlj\nhstCqhTGbgNouKK2b95bchvmGmZnCbGVDqRa7++v6IawXfcE7RJyC854ZyoQ\nraYWYhHiyDR9VW0EI+pzEezsVtCZrZ3XmmEKz2Bc3QgiMd2T/H4Fed5Kfvnp\nqlPVf6Se7ulJdc/ojHRimpLMCTcvI6kbFgxANbe5HzIh87H8LLRTF6q/1R3A\nBRbTUe0Uh07v8wmpsHBCd3i+g4xE9ERbhl067hvq8MrWQaC8MlBK2iJDQ5vj\naek/YUgpTF9XweRTZdun/ae3uYGRY7b75WSUnjbc5EBN5JI2pBYy/7q01uxF\n0XUu\r\n=rRO4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.es.js","scripts":{"docs":"rimraf dist && typedoc","lint":"eslint --fix '**/*.ts'","test":"jest","build":"rimraf dist && rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript","format":"prettier --write '**/*.{js,md,json,yaml,yml}'","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"},"repository":{"url":"git+https://github.com/tool-belt/type-predicates.git","type":"git"},"description":"Collection of performant type-guard utilities","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2021 Na'aman Hirschfeld\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","lint-staged":{"*.ts":"eslint --fix","*.{js,md,json,yaml,yml}":"prettier --write"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":">=7","eslint":"^7.31.0","rimraf":"^3.0.2","rollup":"^2.56.0","ts-jest":"^27.0.4","ts-node":"^10.1.0","typedoc":"^0.21.5","prettier":"^2.3.2","type-fest":"^1.4.0","typescript":"^4.3.5","@types/jest":"^26.0.24","@types/node":"^16.4.7","expect-type":"^0.12.0","lint-staged":">=11","eslint-plugin-tsdoc":"^0.2.14","all-contributors-cli":"^6.20.0","rollup-plugin-terser":"^7.0.2","prettier-plugin-jsdoc":"^0.3.23","@sprylab/eslint-config":"^1.5.4","@rollup/plugin-typescript":"^8.2.5"},"_npmOperationalInternal":{"tmp":"tmp/type-predicates_1.0.0_1628450595027_0.7855193607576163","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@tool-belt/type-predicates","version":"1.0.1","keywords":["type-assertions","type-guards","type-predicates","typescript","utilities","utils","guards","assertions","predicates"],"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","_id":"@tool-belt/type-predicates@1.0.1","maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"homepage":"https://github.com/tool-belt/type-predicates#readme","bugs":{"url":"https://github.com/tool-belt/type-predicates/issues"},"dist":{"shasum":"84092dee63af345eef8be8cf7408cc032c4d36e1","tarball":"https://registry.npmjs.org/@tool-belt/type-predicates/-/type-predicates-1.0.1.tgz","fileCount":87,"integrity":"sha512-NajjkDsnqBgvxldjoZwlhdKNFHVFwJfRdGkfpsjt49SfnQk8ySZW3koO8wpqj2WYWnDtSZD4kda73KNQHRIH6w==","signatures":[{"sig":"MEUCIQCavgQnBJgzyuYlxwcig2n+1aRcEP8RVwbAhgx7FTNP6gIgGhkX1pV45sIjMoWNlO9TTvtQQ4D/D8BkpT01wuN/Fvw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":99726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEOrsCRA9TVsSAnZWagAAh+4P/3k5eVhtD+nVAyEb7QJ/\nV0VtVzkBJSK+ML8/1Suj5aEkxM9TcVBq5T21qpIMwuGt5yzcQZMzg1NCSZEt\nQbPvOEx1Q2ulQEw8WMADkeCB5mQsnrQ8Ov1mLI6oFojdIfk9oyvZww1pT1rn\nmtinZE0JacueomjlZ9B5aczfedw+eZTlKNPTXJhUUDYi/t3jnTOWh8AGmlmo\nEfm/sKQ6nLTJ/oDMmExEqXbxO0nLs8BNvYRcS2E7l1rdMZrJ2uijv2kIDH/5\n2mjSMb77jC2vivIwP3hlinEZ8MhSeE5wSPeFOIDA+mGtBKyLpZJvqFOch/MW\nEy4whtLEL4T6isUvLNlTJoURmwZjs+ZYV35zn08uwilqPbbYE5ggNuIJoxba\nqrSVx3x0cOtvGkcVmaKStbQS3C5+TbmSZvvlM02pApLvNXk2GpgM/lYfcR5y\nf+991hZ8013gAiGSVbZA+0feq3fY9M/OkG9tBWpUa/GTWq9lKF04EZRUySZk\nPCEu6QxV1YnOt88byNUj0yz1rXtDP+RzJnXtmUx3PGn/2Wl/AWNYdm6KXD97\nBxsnAD60jDTILSgPQy51BUDYGK06a0P633x2TMjIc96qc3/88hJsX+IoFhi0\nmbVXmDAfhQudL38cF3U+1lKlkhE9tEAYYtWRFC3w0QWxLKCNQIGgNcbjuPE6\nYPHI\r\n=0r8V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.es.js","scripts":{"docs":"rimraf dist && typedoc","lint":"eslint --fix '**/*.ts'","test":"jest","build":"rimraf dist && rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript","format":"prettier --write '**/*.{js,md,json,yaml,yml}'","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"},"repository":{"url":"git+https://github.com/tool-belt/type-predicates.git","type":"git"},"description":"Collection of performant type-guard utilities","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2021 Na'aman Hirschfeld\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","lint-staged":{"*.ts":"eslint --fix","*.{js,md,json,yaml,yml}":"prettier --write"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":">=7","eslint":"^7.31.0","rimraf":"^3.0.2","rollup":"^2.56.0","ts-jest":"^27.0.4","ts-node":"^10.1.0","typedoc":"^0.21.5","prettier":"^2.3.2","type-fest":"^1.4.0","typescript":"^4.3.5","@types/jest":"^26.0.24","@types/node":"^16.4.7","expect-type":"^0.12.0","lint-staged":">=11","eslint-plugin-tsdoc":"^0.2.14","all-contributors-cli":"^6.20.0","rollup-plugin-terser":"^7.0.2","prettier-plugin-jsdoc":"^0.3.23","@sprylab/eslint-config":"^1.5.4","@rollup/plugin-typescript":"^8.2.5"},"_npmOperationalInternal":{"tmp":"tmp/type-predicates_1.0.1_1628498668290_0.3178610540784068","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@tool-belt/type-predicates","version":"1.1.0","keywords":["type-assertions","type-guards","type-predicates","typescript","utilities","utils","guards","assertions","predicates"],"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","_id":"@tool-belt/type-predicates@1.1.0","maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"homepage":"https://github.com/tool-belt/type-predicates#readme","bugs":{"url":"https://github.com/tool-belt/type-predicates/issues"},"dist":{"shasum":"f4d03e0a4f643671403f7aaec03cb736a62a18a4","tarball":"https://registry.npmjs.org/@tool-belt/type-predicates/-/type-predicates-1.1.0.tgz","fileCount":95,"integrity":"sha512-j5E3NBwbtZxM4LUgtofPeymVatQHpA31DaT+j18FLKeNWPG16c1g3tPszJ4TtsJ/gsLnlNmlDM0aF/S0KPrGzg==","signatures":[{"sig":"MEUCIDueR3UoFRhwz0Aw6Atmk7czlpe9i36xokMNBEYEplA4AiEAzQ7erBXjE8fUsbmd8XgrSqG/hDVAA4xOdrqcVZF+hK4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFoIpCRA9TVsSAnZWagAAp9UQAJznEfg/GTyO5+zzDgOn\nLkog7L+/U0F2ntJ5KHFkUWcIJEhkudpD1nM0Hur+zPHeYshYiS8zjq+AqbfX\nzYYP5fR23v7jNzIRErC6C6ZYTa6SsV+CiF03WqPnhPOXG6dBtFFdtU5DRsSf\nJAoy+X9wHW7ic392K62kRIijmCttZ7BO/8tdDAELxcDjB18DC40wtBbZMv1E\nzTJZlSWpTO5PJhnOxIVQ2Z391a1mLsrEv4s+IIeo5HB2iyeeoHoqBEkoy/s1\nneyCsSVW/h8E1giaahBrNaQXx7FO/DCS1Fu/lc6sJfNpZVZ8z9XvMXpCtsRt\ncUvr/MJE2GnpNFiIGnPhqrKYptJDcGGDtKucnBKzag7xM8JxJynhm9WhuSrf\nU/5esOeQhPI2M1t2nF6+5S+6hB3KY+ZOsPKoxmsQc26aK6Rpvpvfhko5FqeN\nfFKrWFcFXzhD4thDTqhvBYoOSvQNS0v1Hgkfgd1QPH4vdZJH1+FqVDYk0vcW\ndT+huk7fv17j09tcJsK+RYdBwXzbuPwQFGMiHmaPy+Yme6yDQKzCOrtea5B8\nAOqv4GdfygAcwPNeVXMss8M+Rf048BQxxFj8G0mnsbglJz9LLdpfULsOMouK\nwmR8ovuvzN1t/8KvMrSUG5rilEzRl+PHE6K5B02RoXrQPVqd8jiOgCCHoDjK\ngytJ\r\n=T4Ym\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.es.js","scripts":{"docs":"rimraf dist && typedoc","lint":"eslint --fix '**/*.ts'","test":"jest","build":"rimraf dist && rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript","format":"prettier --write '**/*.{js,md,json,yaml,yml}'","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"},"repository":{"url":"git+https://github.com/tool-belt/type-predicates.git","type":"git"},"description":"Collection of performant type-guard utilities","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2021 Na'aman Hirschfeld\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","lint-staged":{"*.ts":"eslint --fix","*.{js,md,json,yaml,yml}":"prettier --write"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.0.6","husky":">=7","eslint":"^7.32.0","rimraf":"^3.0.2","rollup":"^2.56.2","ts-jest":"^27.0.4","ts-node":"^10.2.0","typedoc":"^0.21.5","prettier":"^2.3.2","typescript":"^4.3.5","@types/jest":"^27.0.1","expect-type":"^0.12.0","lint-staged":">=11","eslint-plugin-tsdoc":"^0.2.14","all-contributors-cli":"^6.20.0","rollup-plugin-terser":"^7.0.2","prettier-plugin-jsdoc":"^0.3.23","@sprylab/eslint-config":"^1.5.4","@rollup/plugin-typescript":"^8.2.5"},"_npmOperationalInternal":{"tmp":"tmp/type-predicates_1.1.0_1628865064965_0.9388260885404895","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@tool-belt/type-predicates","version":"1.2.0","keywords":["type-assertions","type-guards","type-predicates","typescript","utilities","utils","guards","assertions","predicates"],"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","_id":"@tool-belt/type-predicates@1.2.0","maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"homepage":"https://github.com/tool-belt/type-predicates#readme","bugs":{"url":"https://github.com/tool-belt/type-predicates/issues"},"dist":{"shasum":"bc38cd34697c8664c59ce8a7188f7def3a22be23","tarball":"https://registry.npmjs.org/@tool-belt/type-predicates/-/type-predicates-1.2.0.tgz","fileCount":90,"integrity":"sha512-08ow2MwCE8fx9VkWYHPmwFBPOkqGbeh3LRZCC0vzr1QECZpikMOOMTP/IQIE3nEBRQ9GNSs+A/ZRKym2mUvrAA==","signatures":[{"sig":"MEUCIBKU94TPyetJsI56w4rq+rHRtYdEGwx0e4So0Zo2o5nSAiEAsi9XoC2/an4+LdPZTDi99p5+trMqKPmEEJj1TduHRrk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":77593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhM8mjCRA9TVsSAnZWagAAs28QAI2jTETPvOnNcg8BxJow\nBYNc24y6g+QTEUvRbXfJbehlItt4SmDNzp5tkVyPGfeb9qpjOhwe10yojAPm\nb/3uZBeL7m/5J6VVPMn49YIBSvLIY9tsRoxmwe9lLqqT3ZY0PDJ0KkCjHC7C\nVtTu4jAjg+sF5SiaFrQgoCDmyyzAO6coxWkp5eODDINIP6j8aTGB0wxrCzcj\ngXmTkOnDamjKNfqCu0hijuWgaylxi63mZyweOz+4gE1Y/Umlemzm4CMPUGvv\nIVFPWjW3XtexxXITWJdXmqJqDjwtw/0y6z+dKyiOomPw/N3st9Jpk9QPjdxa\n5UqMZW71eBmsXh0japQUTAogs2jOylu1HMTKtuTTjDjqkRFW6uGyckxzXLkz\nJqw+uHfvCD5SH4surkeYucyRcaXPv+GEFW5XBZA8x/V7l8GObugObwpuspt3\nLurslbNmeSSUwbSPbeJy4Dvb4Xumn1wYOD80AI2ao0O8mgaVAakvfUx+HBqS\nDiba82ShMjk7Jb8uceBN98rw8bhmg/LrAcD7vva1WP1JHoTfkciW7z4I6XlP\n8bSbtiyGjEN7f9eXQAbu+Nd+LnmOZH5zmuFc/kQiRw8NnNjP0TJz1tGb8t1d\nzFQEhbvNspsUbEtH11TDuvJm4MRaxWOwnc0aDiRCx17CDVf9TCG8JDchcQNj\nHH6i\r\n=LypS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.es.js","gitHead":"0554846a7616cec11e18a5e89170503f4c1a7f28","scripts":{"docs":"rimraf dist && typedoc","lint":"eslint --fix '**/*.ts'","test":"jest","build":"rimraf dist && rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript","format":"prettier --write '**/*.{js,md,json,yaml,yml}'","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"},"repository":{"url":"git+https://github.com/tool-belt/type-predicates.git","type":"git"},"_npmVersion":"7.20.3","description":"Collection of performant type-guard utilities","directories":{},"lint-staged":{"*.ts":"eslint --fix","*.{js,md,json,yaml,yml}":"prettier --write"},"_nodeVersion":"16.7.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.0","husky":">=7","eslint":"^7.32.0","rimraf":"^3.0.2","rollup":"2.56.2","ts-jest":"^27.0.5","ts-node":"^10.2.1","typedoc":"^0.21.9","prettier":"^2.3.2","typescript":"4.3.5","@types/jest":"^27.0.1","expect-type":"^0.12.0","lint-staged":">=11","eslint-plugin-tsdoc":"^0.2.14","all-contributors-cli":"^6.20.0","rollup-plugin-terser":"^7.0.2","prettier-plugin-jsdoc":"^0.3.24","@sprylab/eslint-config":"^1.5.6","@rollup/plugin-typescript":"^8.2.5"},"_npmOperationalInternal":{"tmp":"tmp/type-predicates_1.2.0_1630783907184_0.9013804387912974","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@tool-belt/type-predicates","version":"1.2.1","keywords":["type-assertions","type-guards","type-predicates","typescript","utilities","utils","guards","assertions","predicates"],"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","_id":"@tool-belt/type-predicates@1.2.1","maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"homepage":"https://github.com/tool-belt/type-predicates#readme","bugs":{"url":"https://github.com/tool-belt/type-predicates/issues"},"dist":{"shasum":"de8259f8299807c417bfc001e7b0d7b13b10debe","tarball":"https://registry.npmjs.org/@tool-belt/type-predicates/-/type-predicates-1.2.1.tgz","fileCount":90,"integrity":"sha512-I9/jNXAxKp7CjW6lqoS8A2TanbVDlYTWYcE6p8nuD9/uxLxgKM5OFgfjtJSqKG3rPcFHBqu0RSEWOZNmDGwKqw==","signatures":[{"sig":"MEUCIQCnZZ51p+Y3xubwYCLPkN6HClKbSrobm8y7ktuTXG9+hgIgRP2ZnRmIDb2KNvYQFdiKEifJrVxtbX8J2kXg2+Lpdg0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicDhSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmroXw//Uxx3zgTUcbgE04Sn35fQOvA4dkJ39xFbEoXnSjAi9oSYt0ee\r\nNz3kNDUbSNu9IM9uOTja3cgpcMvlvtUJWwY+Y8LUcayrHB9MARudKEEj3dV/\r\nW8snqi6Xv9ojw2DEoahXiAG+QzN0kejfIDQGWrW1suTbPMIjfwHfyv+uQNLP\r\nztCeuzXw3JGLbFXivysABpaSHVP2ljyv3ssOUSbvgb6lPiT+daZsbP9/8/cd\r\nqMY4Ta51oyVM6MdLNC/+UPnPVhjjfBjR7OrbAHBj5mevoYN5053myWU1Hv3E\r\nVhG6e1awTDVMeLz5StnwJON+RWusduGYjqehePEYjc6tU7ZfqQma+Q9LLxXS\r\nn4nnsFVuSusu2lCTicHE5HK9rdtdngDtUhe42QLJDV8gf+STSGEP44bDcsm8\r\nTtJZYpA9ZU+dB0tD8opUkdHyEFA1QrAIU5j7hfc3+di0RY8PO7ZcwXA8R7ZH\r\nuBnj53jaXbTPKuVnp0S7WxuiWPTpFR7xT6GFVDDv7kms//42ZXB6PS2GcqUN\r\nAXtrRufvqokVPMoqzD63WCHB/5H5ccvlIcdisiWiBGEWgaFTHxKUIMb1D8h/\r\nWc7xWYAU3dAf/b5WR+oh+uh7fV/SyMCzK/4d2XY651NgeR1i68DLqE3KU17r\r\nESNE7YXV4/PCQFAYgVgQhh4BowQyT7tNcN8=\r\n=6e0y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.es.js","gitHead":"8577c4647c720a22c249298ac82fe25ef41de037","scripts":{"docs":"rimraf dist && typedoc","lint":"eslint --fix '**/*.ts'","test":"jest","build":"rimraf dist && rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript","format":"prettier --write '**/*.{js,md,json,yaml,yml}'","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"},"repository":{"url":"git+https://github.com/tool-belt/type-predicates.git","type":"git"},"_npmVersion":"8.6.0","description":"Collection of performant type-guard utilities","directories":{},"lint-staged":{"*.ts":"eslint --fix","*.{js,md,json,yaml,yml}":"prettier --write"},"_nodeVersion":"18.0.0","_hasShrinkwrap":false,"devDependencies":{"jest":">=27.0.0 <28.0.0","husky":">=7","eslint":"^8.14.0","rimraf":"^3.0.2","rollup":"2.71.1","ts-jest":"^27.1.4","ts-node":"^10.7.0","typedoc":"^0.22.15","prettier":"^2.6.2","type-fest":"^2.12.2","typescript":"4.6.4","@types/jest":"^27.4.1","expect-type":"^0.13.0","lint-staged":">=12","eslint-plugin-tsdoc":"^0.2.16","all-contributors-cli":"^6.20.0","rollup-plugin-terser":"^7.0.2","prettier-plugin-jsdoc":"^0.3.38","@tool-belt/eslint-config":"^1.2.0","@rollup/plugin-typescript":"^8.3.2"},"_npmOperationalInternal":{"tmp":"tmp/type-predicates_1.2.1_1651521618190_0.5972173246619159","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"@tool-belt/type-predicates","version":"1.2.2","keywords":["type-assertions","type-guards","type-predicates","typescript","utilities","utils","guards","assertions","predicates"],"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","_id":"@tool-belt/type-predicates@1.2.2","maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"homepage":"https://github.com/tool-belt/type-predicates#readme","bugs":{"url":"https://github.com/tool-belt/type-predicates/issues"},"dist":{"shasum":"88a6cd744162d983854a4e85ee816b0a104ad111","tarball":"https://registry.npmjs.org/@tool-belt/type-predicates/-/type-predicates-1.2.2.tgz","fileCount":95,"integrity":"sha512-IuUa3c0fOEJ6YnzMvfPA5BZ2gLafPgSU9YJmXV3hozlxbQGNPMVHrTiMoAERklhssxVQ5AtfEUI6r+6kS4npKw==","signatures":[{"sig":"MEQCIGgSIqgfiCJ5JlXTT9d9yhjoUJwDRqnzgwKOWF7W/FfzAiBdLgYfw6e0LZcO/qEAyXFLweWFp9GDcI844Tlk3DRUaQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1VXUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrzfQ//RmjmnOOVk43m3EKAPjwCaI/IHYPM5rmyj/+NJiv05v3z3z0S\r\nfypE7KyQqq0017PWCz5q1pb5qxvuq9ZOZI3tJAj4Cq3QKPtBbMlfrDa3ea6b\r\nZyaZULCPFiwid6mI1OUlC0C71ngntAMoMYOYcIds8uDK9KCoqdeJgIz/IbfU\r\nrNBSieAWT0F/W2fAEcxKaX8o+b4z16Z6T6LhGMNGp3RrrenO7pUyL5X0c2Kv\r\nrQpXLwHyj/moT5GbsPv18slpBUtgg9nZ91Y3QlfF3r781D1u3zetLyB6fQ/Q\r\nXiS5hFcHGkXwjUXOjUzwjQK96SwU7xHrq1k8/SHaD5dkpV3Nejq0UUUGeceD\r\nHG+pYruwn+wqXlfNrDX8H7pbiBvvXMfulvxXFJjdZr+CjhTirf79bgm3Zvfb\r\nRkfJWydu+5YzOgyH2VLc6jXr6nGSo0f+SlhuixLnoKQrFS7uD7SQco9G2JVR\r\nWQCyOXpyuCUf5xvK+EA2u0i0DLexog9fJbZzEytCrXYjmCDKb9SZNGrYeIEZ\r\nK6beFOsuWTm9ehBs5YF1kI/rbBO8LHAV1Y0LRSVz3wz5wzbGmizL/CIQZi+g\r\ngLjAK/us5Pw25RnjeuljAf+dO162QMjGYzM0+bzsMNFJPpY/LwE07SQb5QSg\r\nIPS9gQHsy+zQnkGATaIYBL1m2TGz5sehvPw=\r\n=Sjud\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.es.js","scripts":{"docs":"rimraf dist && typedoc","lint":"eslint --fix '**/*.ts'","test":"jest","build":"rimraf dist && rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript","format":"prettier --write '**/*.{js,md,json,yaml,yml}'","prepare":"husky install","test:watch":"jest --watch","test:coverage":"jest --coverage","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"},"repository":{"url":"git+https://github.com/tool-belt/type-predicates.git","type":"git"},"description":"Collection of performant type-guard utilities","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2021 Na'aman Hirschfeld\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","lint-staged":{"*.ts":"eslint --fix","*.{js,md,json,yaml,yml}":"prettier --write"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","husky":">=8","eslint":"^8.20.0","rimraf":"^3.0.2","rollup":"2.77.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","typedoc":"^0.23.8","prettier":"^2.7.1","type-fest":"^2.16.0","typescript":"4.7.4","@types/jest":"^28.1.6","expect-type":"^0.13.0","lint-staged":">=13","eslint-plugin-tsdoc":"^0.2.16","all-contributors-cli":"^6.20.0","rollup-plugin-terser":"^7.0.2","prettier-plugin-jsdoc":"^0.3.38","@tool-belt/eslint-config":"^1.2.3","@rollup/plugin-typescript":"^8.3.3"},"_npmOperationalInternal":{"tmp":"tmp/type-predicates_1.2.2_1658148308567_0.9360724715889601","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@tool-belt/type-predicates","version":"1.3.0","keywords":["type-assertions","type-guards","type-predicates","typescript","utilities","utils","guards","assertions","predicates"],"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","_id":"@tool-belt/type-predicates@1.3.0","maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"homepage":"https://github.com/tool-belt/type-predicates#readme","bugs":{"url":"https://github.com/tool-belt/type-predicates/issues"},"dist":{"shasum":"da24ae05510ffcb7e8d60a45e81cdf816929359f","tarball":"https://registry.npmjs.org/@tool-belt/type-predicates/-/type-predicates-1.3.0.tgz","fileCount":6,"integrity":"sha512-4DuDB8SY3cxbJ2hLSkEqCfJmJcca93KbiLuqNkh+heNVkJMoYgy2xYGSiU/eFrmYBXifL4Pun7xB0GuC/YAIVA==","signatures":[{"sig":"MEUCIQCdHyGDKaX43H1hE6VRSZqxSuToom5/DtdDDa+rcyRvYwIgE7TJ1YhVacaL0apoVKF8zKAw0OtyoOj/G8qu6mIv7WE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50484},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"f680c456d470f1c8704c5f7f2f5dbc16b4d648e9","scripts":{"docs":"rimraf dist && typedoc","lint":"eslint --fix '**/*.ts'","test":"vitest run","build":"rimraf dist && vite build","format":"prettier --write '**/*.{js,md,json,yaml,yml}'","prepare":"husky install","prepublish":"pnpm run build","test:watch":"vitest","test:coverage":"vitest run --coverage","contributors:add":"all-contributors add","contributors:generate":"all-contributors generate"},"_npmUser":{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"},"repository":{"url":"git+https://github.com/tool-belt/type-predicates.git","type":"git"},"_npmVersion":"9.6.7","description":"Collection of performant type-guard utilities","directories":{},"lint-staged":{"*.ts":"eslint --fix","*.{js,md,json,yaml,yml}":"prettier --write"},"_nodeVersion":"18.17.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.9","husky":"^8.0.3","eslint":"^8.49.0","rimraf":"^5.0.1","vitest":"^0.34.4","ts-node":"^10.9.1","typedoc":"^0.25.1","prettier":"^3.0.3","type-fest":"^4.3.1","typescript":"5.2.2","@types/node":"^20.6.1","expect-type":"^0.16.0","lint-staged":"^14.0.1","vite-plugin-dts":"^3.5.3","@vitest/coverage-v8":"^0.34.4","eslint-plugin-tsdoc":"^0.2.17","prettier-plugin-jsdoc":"^1.0.2","@tool-belt/eslint-config":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/type-predicates_1.3.0_1694808144597_0.6553136700942945","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@tool-belt/type-predicates","version":"1.4.0","keywords":["assertions","guards","predicates","runtime-checks","type-assertions","type-guards","type-predicates","type-safety","typechecking","typescript","utilities","utils","validation"],"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","_id":"@tool-belt/type-predicates@1.4.0","maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"homepage":"https://github.com/Goldziher/type-predicates#readme","bugs":{"url":"https://github.com/Goldziher/type-predicates/issues"},"dist":{"shasum":"8980945b929224af80fcd5b37ef37966dcb780f5","tarball":"https://registry.npmjs.org/@tool-belt/type-predicates/-/type-predicates-1.4.0.tgz","fileCount":8,"integrity":"sha512-rXuEltNSTF9NQT7zrSMyhMddqpT0vJYanwYYN1Jkr3SIRZ5hH216yWyNfgedAAgs4V97rcwq3YeA4z0JhEhXOg==","signatures":[{"sig":"MEQCID3xnyZfFaZqVMy7M7qUjlQdIQWH3ukCeJXOBLl+qbCMAiAsfkjB6zsEhtF3XkGsQlJPKBYMxlC0Thw0p7sYEQATNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257101},"main":"dist/index.js","_from":"file:tool-belt-type-predicates-1.4.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"lint":"eslint --fix .","test":"vitest run","build":"rimraf dist && vite build","format":"prettier --write .","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"},"_resolved":"/private/var/folders/f8/_s_ks96d60x_6g__y7vft2wc0000gn/T/207125dfd5b4b36b04b496aad19600fe/tool-belt-type-predicates-1.4.0.tgz","_integrity":"sha512-rXuEltNSTF9NQT7zrSMyhMddqpT0vJYanwYYN1Jkr3SIRZ5hH216yWyNfgedAAgs4V97rcwq3YeA4z0JhEhXOg==","repository":{"url":"git+https://github.com/Goldziher/type-predicates.git","type":"git"},"_npmVersion":"10.9.2","description":"A comprehensive collection of performant type guards and assertions with excellent TypeScript support","directories":{},"lint-staged":{"*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}":["eslint --fix"],"*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,json,md,mdx,yaml,yml}":["prettier --write"]},"sideEffects":false,"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","husky":"^9.1.7","eslint":"^9.27.0","rimraf":"^6.0.1","vitest":"^3.1.4","globals":"^16.1.0","prettier":"^3.5.3","type-fest":"^4.41.0","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.21","expect-type":"^1.2.1","lint-staged":"^16.0.0","@eslint/compat":"^1.2.9","@commitlint/cli":"^19.8.1","eslint-plugin-n":"17.18.0","vite-plugin-dts":"^4.5.4","typescript-eslint":"^8.32.1","@vitest/coverage-v8":"^3.1.4","eslint-plugin-tsdoc":"^0.4.0","eslint-plugin-vitest":"^0.5.4","eslint-plugin-promise":"7.2.1","eslint-plugin-unicorn":"59.0.1","prettier-plugin-jsdoc":"^1.3.2","eslint-plugin-perfectionist":"^4.13.0","eslint-plugin-unused-imports":"^4.1.4","@commitlint/config-conventional":"^19.8.1"},"_npmOperationalInternal":{"tmp":"tmp/type-predicates_1.4.0_1748178554596_0.3145977404001199","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@tool-belt/type-predicates","version":"1.4.1","description":"A comprehensive collection of performant type guards and assertions with excellent TypeScript support","repository":{"type":"git","url":"git+https://github.com/Goldziher/type-predicates.git"},"keywords":["assertions","guards","predicates","runtime-checks","type-assertions","type-guards","type-predicates","type-safety","typechecking","typescript","utilities","utils","validation"],"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","bugs":{"url":"https://github.com/Goldziher/type-predicates/issues"},"homepage":"https://github.com/Goldziher/type-predicates#readme","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js","default":"./dist/index.mjs"}},"sideEffects":false,"scripts":{"prepublishOnly":"pnpm run build","build":"rimraf dist && vite build","format":"prettier --write .","lint":"eslint --fix .","prepare":"husky","typecheck":"tsc --noEmit","test":"vitest run","test:coverage":"vitest run --coverage","test:watch":"vitest"},"devDependencies":{"@commitlint/cli":"^20.2.0","@commitlint/config-conventional":"^20.2.0","@eslint/compat":"^2.0.0","@eslint/js":"^9.39.2","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","eslint":"^9.39.2","eslint-plugin-n":"17.23.1","eslint-plugin-perfectionist":"^4.15.1","eslint-plugin-promise":"7.2.1","eslint-plugin-tsdoc":"^0.5.0","eslint-plugin-unicorn":"62.0.0","eslint-plugin-unused-imports":"^4.3.0","eslint-plugin-vitest":"^0.5.4","expect-type":"^1.3.0","globals":"^16.5.0","husky":"^9.1.7","lint-staged":"^16.2.7","prettier":"^3.7.4","prettier-plugin-jsdoc":"^1.8.0","rimraf":"^6.1.2","type-fest":"^5.3.1","typescript":"^5.9.3","typescript-eslint":"^8.49.0","vite":"^7.2.7","vite-plugin-dts":"^4.5.4","vitest":"^4.0.15"},"lint-staged":{"*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,json,md,mdx,yaml,yml}":["prettier --write"],"*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}":["eslint --fix"]},"engines":{"node":">=18.0.0"},"publishConfig":{"access":"public"},"packageManager":"pnpm@10.25.0+sha512.5e82639027af37cf832061bcc6d639c219634488e0f2baebe785028a793de7b525ffcd3f7ff574f5e9860654e098fe852ba8ac5dd5cefe1767d23a020a92f501","gitHead":"55f30060d7b72cf45f93a1965c475f88e7ce7298","_id":"@tool-belt/type-predicates@1.4.1","_nodeVersion":"22.21.1","_npmVersion":"11.7.0","dist":{"integrity":"sha512-hxVezXhUV8bNOggi2ypjK9ZoAQlAdgiOc48b7Kr8qD9tAHjZBHgAt2cSs5HsbhZIjApZONPnSfXW7/HvQZ1UPA==","shasum":"e35565ee91af1556ead0d345a19c428332ec6738","tarball":"https://registry.npmjs.org/@tool-belt/type-predicates/-/type-predicates-1.4.1.tgz","fileCount":8,"unpackedSize":258159,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tool-belt%2ftype-predicates@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCTSoUs3hIxDKWvQs4lV8TvLlmGOTiMXTDvaJpj++AI9gIhAPfhewJ3lKG5U0MX5FP2E9/6O+71M4fERs96tobFlBCv"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71d0e6d8-cf27-49c5-abb3-f86220341f13"}},"directories":{},"maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/type-predicates_1.4.1_1765694867687_0.784010941149665"},"_hasShrinkwrap":false}},"time":{"created":"2021-08-08T19:23:14.973Z","modified":"2025-12-14T06:47:48.199Z","1.0.0":"2021-08-08T19:23:15.152Z","1.0.1":"2021-08-09T08:44:28.438Z","1.1.0":"2021-08-13T14:31:05.113Z","1.2.0":"2021-09-04T19:31:47.336Z","1.2.1":"2022-05-02T20:00:18.365Z","1.2.2":"2022-07-18T12:45:08.771Z","1.3.0":"2023-09-15T20:02:24.802Z","1.4.0":"2025-05-25T13:09:14.779Z","1.4.1":"2025-12-14T06:47:47.824Z"},"bugs":{"url":"https://github.com/Goldziher/type-predicates/issues"},"author":{"name":"Na'aman Hirschfeld"},"license":"MIT","homepage":"https://github.com/Goldziher/type-predicates#readme","keywords":["assertions","guards","predicates","runtime-checks","type-assertions","type-guards","type-predicates","type-safety","typechecking","typescript","utilities","utils","validation"],"repository":{"type":"git","url":"git+https://github.com/Goldziher/type-predicates.git"},"description":"A comprehensive collection of performant type guards and assertions with excellent TypeScript support","maintainers":[{"name":"nhirschfeld","email":"nhirschfeld@gmail.com"}],"readme":"# @tool-belt/type-predicates\n\n[![npm version](https://img.shields.io/npm/v/@tool-belt/type-predicates.svg)](https://www.npmjs.com/package/@tool-belt/type-predicates)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA comprehensive collection of performant type guards and assertions with excellent TypeScript support. This library serves as a drop-in replacement for Node.js's `util/types` module, while offering significantly better type inference, more extensive functionality, and cross-platform compatibility.\n\n## Support This Project\n\nIf you find @tool-belt/type-predicates helpful, please consider sponsoring the development:\n\n<a href=\"https://github.com/sponsors/Goldziher\"><img src=\"https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?logo=github-sponsors\" alt=\"Sponsor on GitHub\" height=\"32\"></a>\n\nYour support helps maintain and improve this library for the community! 🚀\n\n## Features\n\n- 🚀 **Better TypeScript Support**: Advanced type inference with generics and precise type narrowing\n- 📦 **Zero Dependencies**: Lightweight and self-contained\n- 🌳 **Tree-Shakeable**: Full ESM support for optimal bundle sizes\n- 🌐 **Cross-Platform**: Works in browsers, Node.js, and any JavaScript environment\n- ✅ **Thorough Testing**: Comprehensive test coverage for both runtime behavior and type safety\n- 🔧 **Extensive API**: More comprehensive than Node.js built-in utilities\n- 🎯 **Type Guards & Assertions**: Every type check is available in both guard and assertion forms\n\n## Installation\n\n```bash\nnpm install @tool-belt/type-predicates\n```\n\n```bash\npnpm add @tool-belt/type-predicates\n```\n\n```bash\nyarn add @tool-belt/type-predicates\n```\n\n## Browser Support\n\nThis library works in all modern browsers and Node.js environments. It's compiled to ES modules and CommonJS, with full support for tree-shaking to minimize bundle size.\n\n## Key Differences from `node:util/types`\n\n### 1. Superior TypeScript Support\n\n```typescript\n// node:util/types\nimport { isArray } from 'util/types';\nconst arr: unknown = ['a', 'b', 'c'];\nif (isArray(arr)) {\n    // arr is typed as \"unknown[]\" - not very useful\n}\n\n// @tool-belt/type-predicates\nimport { isArray } from '@tool-belt/type-predicates';\nconst arr: unknown = ['a', 'b', 'c'];\nif (isArray<string>(arr)) {\n    // arr is typed as \"string[]\" - much better!\n}\n```\n\n### 2. Type Assertions\n\n```typescript\nimport { assertIsString, assertIsArray } from '@tool-belt/type-predicates';\n\n// Throws TypeError if not a string\nassertIsString(value);\n// After this line, TypeScript knows 'value' is a string\n\n// With custom error messages\nassertIsArray(data, { message: 'Configuration must be an array' });\n\n// With nested validation\nassertIsArray<number>(data, {\n    valueValidator: (item) => typeof item === 'number',\n    message: 'Expected array of numbers',\n});\n```\n\n### 3. Composable Type Guards\n\n```typescript\nimport {\n    isUnion,\n    isString,\n    isNumber,\n    createTypeGuard,\n} from '@tool-belt/type-predicates';\n\n// Combine multiple type guards\nconst isStringOrNumber = isUnion(isString, isNumber);\n\n// Create custom type guards\nconst isPositiveNumber = createTypeGuard<number>(\n    (value) => isNumber(value) && value > 0,\n);\n```\n\n## API Overview\n\n### Type Guards\n\nEvery guard returns a type predicate for TypeScript type narrowing:\n\n```typescript\nimport {\n    isArray,\n    isObject,\n    isString,\n    isNumber,\n    isBoolean,\n    isFunction,\n    isPromise,\n    isMap,\n    isSet,\n    isDate,\n    isRegExp,\n    isError,\n    isNull,\n    isUndefined,\n    isNullish,\n    isDefined,\n    // ... and many more\n} from '@tool-belt/type-predicates';\n\n// Use in conditionals\nif (isString(value)) {\n    // TypeScript knows 'value' is a string here\n    console.log(value.toUpperCase());\n}\n\n// Use with array methods\nconst strings = mixedArray.filter(isString);\n// strings is typed as string[]\n```\n\n### Type Assertions\n\nEvery guard has a corresponding assertion that throws on failure:\n\n```typescript\nimport {\n    assertIsArray,\n    assertIsObject,\n    assertIsString,\n    // ... all guards have assertion versions\n} from '@tool-belt/type-predicates';\n\nfunction processConfig(config: unknown) {\n    assertIsObject(config);\n    // TypeScript now knows config is an object\n\n    assertIsString(config.name, { message: 'Config name must be a string' });\n    // config.name is now typed as string\n}\n```\n\n### Advanced Features\n\n#### Deep Validation\n\n```typescript\nimport { isArray, isObject, isString } from '@tool-belt/type-predicates';\n\n// Validate array elements\nconst isStringArray = (value: unknown): value is string[] =>\n    isArray(value, { valueValidator: isString });\n\n// Validate object values\nconst isStringRecord = (value: unknown): value is Record<string, string> =>\n    isObject(value, { valueValidator: isString });\n```\n\n#### Utility Functions\n\n```typescript\nimport { createTypeGuard, isUnion } from '@tool-belt/type-predicates';\n\n// Create custom guards\nconst isNonEmptyString = createTypeGuard<string>(\n    (value) => isString(value) && value.length > 0,\n);\n\n// Union types\nconst isNumberOrString = isUnion(isNumber, isString);\n```\n\n## Complete API Reference\n\n### Basic Types\n\n- `isString` / `assertIsString`\n- `isNumber` / `assertIsNumber`\n- `isBoolean` / `assertIsBoolean`\n- `isBigInt` / `assertIsBigInt`\n- `isSymbol` / `assertIsSymbol`\n- `isUndefined` / `assertIsUndefined`\n- `isNull` / `assertIsNull`\n- `isNullish` / `assertIsNullish`\n- `isDefined` / `assertIsDefined`\n- `isNotNull` / `assertIsNotNull`\n- `isNotNullish` / `assertIsNotNullish`\n\n### Object Types\n\n- `isObject` / `assertIsObject` - Checks if value is an object (not null)\n- `isPlainObject` / `assertIsPlainObject` - Checks if value is a plain object (not a class instance)\n- `isRecord` / `assertIsRecord` - Validates an object with specific key and value types\n- `isEmptyObject` / `assertIsEmptyObject` - Checks if object has no own properties\n- `isBoxedPrimitive` / `assertIsBoxedPrimitive` - Checks if value is a boxed primitive\n\n### Collection Types\n\n- `isArray` / `assertIsArray` - Validates arrays with optional element type checking\n- `isEmptyArray` / `assertIsEmptyArray` - Checks if array has length of 0\n- `isNonEmptyArray` / `assertIsNonEmptyArray` - Checks if array has length > 0\n- `isMap` / `assertIsMap` - Validates Map objects with optional key/value type checking\n- `isSet` / `assertIsSet` - Validates Set objects with optional value type checking\n- `isWeakMap` / `assertIsWeakMap` - Checks if value is a WeakMap\n- `isWeakSet` / `assertIsWeakSet` - Checks if value is a WeakSet\n\n### Function Types\n\n- `isFunction` / `assertIsFunction` - Checks if value is a function\n- `isAsyncFunction` / `assertIsAsyncFunction` - Checks if value is an async function\n- `isGeneratorFunction` / `assertIsGeneratorFunction` - Checks if value is a generator function\n- `isAsyncGeneratorFunction` / `assertIsAsyncGeneratorFunction` - Checks if value is an async generator function\n\n### Iterator Types\n\n- `isIterable` / `assertIsIterable` - Validates iterable objects\n- `isIterator` / `assertIsIterator` - Validates iterator objects\n- `isGenerator` / `assertIsGenerator` - Checks if value is a generator\n- `isAsyncGenerator` / `assertIsAsyncGenerator` - Checks if value is an async generator\n- `isAsyncIterable` / `assertIsAsyncIterable` - Validates async iterable objects\n- `isMapIterator` / `assertIsMapIterator` - Checks if value is a Map iterator\n- `isSetIterator` / `assertIsSetIterator` - Checks if value is a Set iterator\n\n### Error Types\n\n- `isError` / `assertIsError` - Checks if value is an Error\n- `isNativeError` / `assertIsNativeError` - Checks if value is a native Error type\n\n### Number Utilities\n\n- `isNaN` / `assertIsNaN` - Checks if value is NaN\n- `isFinite` / `assertIsFinite` - Checks if value is a finite number\n- `isInteger` / `assertIsInteger` - Checks if value is an integer\n- `isSafeInteger` / `assertIsSafeInteger` - Checks if value is a safe integer\n\n### String Utilities\n\n- `isEmptyString` / `assertIsEmptyString` - Checks if string has length of 0\n- `isNonEmptyString` / `assertIsNonEmptyString` - Checks if string has length > 0\n\n### Buffer and TypedArray Types\n\n- `isBuffer` / `assertIsBuffer` - Checks if value is a Buffer\n- `isArrayBuffer` / `assertIsArrayBuffer` - Checks if value is an ArrayBuffer\n- `isSharedArrayBuffer` / `assertIsSharedArrayBuffer` - Checks if value is a SharedArrayBuffer\n- `isAnyArrayBuffer` / `assertIsAnyArrayBuffer` - Checks if value is any kind of ArrayBuffer\n- `isArrayBufferView` / `assertIsArrayBufferView` - Checks if value is an ArrayBufferView\n- `isDataView` / `assertIsDataView` - Checks if value is a DataView\n- `isTypedArray` / `assertIsTypedArray` - Checks if value is any TypedArray\n- Various specific TypedArray checkers (Int8Array, Uint8Array, etc.)\n\n### Other Built-in Types\n\n- `isDate` / `assertIsDate` - Checks if value is a Date\n- `isRegExp` / `assertIsRegExp` - Checks if value is a RegExp\n- `isPromise` / `assertIsPromise` - Checks if value is a Promise\n- `isArgumentsObject` / `assertIsArgumentsObject` - Checks if value is an arguments object\n\n## Creating Custom Type Guards\n\nYou can create your own type guards using the `createTypeGuard` utility:\n\n```typescript\nimport { createTypeGuard, isNumber } from '@tool-belt/type-predicates';\n\n// Create a type guard for positive numbers\nconst isPositiveNumber = createTypeGuard<number>(\n    (value) => isNumber(value) && value > 0,\n);\n\n// Use it like any other guard\nif (isPositiveNumber(value)) {\n    // TypeScript knows value is a number here\n    // Runtime has verified value > 0\n}\n```\n\n## Error Handling Examples\n\n```typescript\nimport { isError } from '@tool-belt/type-predicates';\n\ntry {\n    // Your code that might throw\n} catch (error) {\n    // TypeScript types catch blocks as 'unknown'\n    if (isError(error)) {\n        console.error(error.message);\n        console.error(error.stack);\n    }\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}