{"_id":"narrowing","_rev":"11-6a677131d6b8fd9d8f84e5024d81d289","name":"narrowing","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"narrowing","version":"1.0.0","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc"},"devDependencies":{"typescript":"^4.2.3"},"keywords":["vite","vite-plugin","cesium"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"cdafa933ed599b839bc3f02c8d7a12c9575f0d55","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.0.0","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"integrity":"sha512-E2wv90w/NjBY/UhROrZvz5yo7I5KA1kuem6ImGY12M6zZMDvPU6W3xthbZdhj0f/+INm+cVMC3whyYW2VAVUng==","shasum":"70bf5b4d418fd6db00f29e03157dd557592d41ab","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.0.0.tgz","fileCount":7,"unpackedSize":5498,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXGjrCRA9TVsSAnZWagAA70MP/imtdqKz5OQlXKKYzbd2\nLxqUVVE9OVpc8J5z+jayhqylaSR3OSjnPbFQ7yyGH04/ywvy+0VRCeVVWy19\n45jglvSsDMAnqmS1kgqkBsqSY+KtVB8f0dCYQOy64kyt+pDx12YcP348Oc6N\nbvpDSvrguGzv0zGDPnBpGJ59LOuFIIBcbfAe1Pm/JURtiRCzi2E+EzkVsWmh\nKXfKc7bflJCr1DQOIO4hFwS2ofHRz7g1gGd2Uk9ox9JwMWU/rA6dWVqgxOI9\niCERqJapjP9fbG60eTP56uRDHkXHBSLxsr9j+7UXnkwYnOPgKSIhLipyg6hS\nIgHbCzF9nAYLPcYFc9jFu8bLgUKiRDKs1bHrHjK7fXzwWvzbcHM3rC7JJMkx\nupg/Y3AIMLvD/lzTKsuA6KG6yFVhwbtBlgaiRZZ9o9C5d7cIbYzMeXPK8YT1\n+jiFmXIRrGKPw2BV6bkxFChfAIUtsT2SrqYwREDM+ULY4FFfz5ijfXAEOJC9\n0vhKbPVM4E8jVG+EFckpYKi2JIsQMwM9qxF5y4xNnGJGr5Qe5o6VfbNCIgzi\nbFymeukUzL3odcTprCGUAjHGY5tRn3q4r2QgezbEBTcxHYz/XRdIrFZHmtQ5\n7Y3q8yl1MWPZgPMNZLY5/woytrFHru4RhJvbXT5R14l8Sflmpv0UFDbAlC88\n697r\r\n=rfNI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFzvwtO7kcZrcm90xPa7tMspE3NP5QscwZO8PSpscQqsAiAdWc9cNLbecbzzvqCMglh4A/lzz+yZd0y596anpCuzog=="}]},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.0.0_1616668907091_0.8374885293160514"},"_hasShrinkwrap":false},"1.0.1":{"name":"narrowing","version":"1.0.1","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc"},"devDependencies":{"typescript":"^4.2.3"},"keywords":["typescript","type","type narrow","type guards"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"3f2c5a43d5ce7d779203fc406d0a24b3d0a9e68d","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.0.1","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"integrity":"sha512-KceFXNN5db6xi9eQuUGoUgQzQ33bDdphWPyeEpi35p75owfHbO+JCuBy0ekkc+cqaFkoFBqIgRgc/W5oWV2W/g==","shasum":"988ac2bc1f508390083ac9eb5aac75e2061f56cf","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.0.1.tgz","fileCount":7,"unpackedSize":5521,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXGl1CRA9TVsSAnZWagAArNsP/jfNP9Hlc82dGLpuwv0E\nFvHkbhRl9WSzo7aKBBJIopqN6m3TvnLa4UgbqvfYktC8viZSWgbUBoSjHHYg\nj7FFxwjTBTVwraxtGAjibSNj930NWw2b+YwW8WMsPRakCc6DUrqmK2IKEfSf\n3da13jcoZLaiO1H3zZYbMMm8ohnB6+jEQgpz8jSKrHts6oo+M9Oun3I/NzCA\ncUTbDY7fTep7zixQoHngJnWbyulsLYkWCKrdkHapCXQa5B8x51Olnd5i4tnh\noS85jc0pK/1qoXsLvEr63w1yifKV6cn9OASZsWM/IHnL27nUy2CvwE7HoMVL\nKwvKkYy4JHXmhwzeNocBn3wjtrNHBy1l8tRJ8h5szRkIvCPwndDhstuWpOfw\nu48pCHGQ72FVRSW0LOnm8m3HYK4Zs5oNe6J+FBA0NBrsiDng2WO5xhhTM2v2\nS2owLzC4Kz6R7j+khj0i6zcUMeg3ViIHylbZwcMff1SrJoG1QgBbGlWlffYr\n+5RmcPco0SvRaIreos6zRUPIs1mgI6EAcjvIRIgi3NfcYoG37pIGQ6DNIOLx\n5YadcIvOEY2iqVdRGilU494Rftp71OZ3fmPgAsPePik1jfs+8z05gpdgcx4l\nORL63aLRnLdDdUi9/TlL64G8FPu+4H7j4pGfFYV2oh/uHvzAz2fk1L26uKSY\nyO9u\r\n=ponE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDZw1MjcIWUH6z7GuCt8U29rYIYrwcsAYHqP/9CQRsRBAiBqYkjV/mT/rR7f+DcW1cwRfWbflJ6GGCnl30NqklzNhQ=="}]},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.0.1_1616669044856_0.6781001588397559"},"_hasShrinkwrap":false},"1.1.0":{"name":"narrowing","version":"1.1.0","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc"},"devDependencies":{"typescript":"^4.2.3"},"keywords":["typescript","type","type narrow","type guards","narrowing"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"dd1a3b7d593c8e6db195e90b4876f94d0a63ab68","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.1.0","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"integrity":"sha512-iEjoxlzIaDmcNb/jEnd/5/qD6Wr56FwjKbHuNOsYy7q2xOu6kVdM0n0SyctrT7CQgfkHW4lfovkPfe9UEJaojA==","shasum":"0272151968ac825958a63aa82fa0c88e1286ed49","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.1.0.tgz","fileCount":7,"unpackedSize":6510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXUYwCRA9TVsSAnZWagAAllYP/i2ekY2SmmADnqLkQvwr\n+wH05isu5k3yhqM+D92yD0p35rpQS2VPFBY80ldlfxiM1iMs1EnZATSCXJph\nRy9mQpEDo32if2H+J3E3ha4zRmG1TkJ3ZTg+Um/0Yqf4j1KuolfY6HiQU4ae\nnGlrjGb1vwTKGrxAS/r6STfaRdg05WN/0E/TJC2NSaSk7Jt8xH6KbeqiHWlZ\nzdRcfoSNMN9LFIIG6QH2WLrN1A4EelyzS/+VpCKlXQAgE6yu20501jFSg2Vw\na9W0q5vKfvTWi0lIvlzyvsFGEOo7CBAY/QqjtXit5yf1+BI7wEy95VYkYO1K\nP1LqIcJqY7AvFEJD6FIN5nk67wcXyZ0AJdIqJ65LFKTISJqBlvIGn5QlvIqQ\nyJQrDSbcyrrFz7J4YJqPIgbaZraU+qd8AdIfgo+ZwFlrILVDbIZLExteIgM1\n4tk+iVdR79xy1AFF6DKMbiZRmYnurb7N+VZtDt/RGdpOoO+qVRYY3deCgvKN\n7ArIjB1b68j02SgDT2/VVbX3ngzn+9a45M+fWYIIxMTrTykd7yAMbcQx2OqZ\nx3WW87rZw03fxitHs/uRIRZu62iBBms9u9TU6mRdhq91FvSonRMeuXvzrxr7\nLDV9eukV679aS3cpK4qeRQY/7XLX4BSxbJv7lQHj9zcm7MlyHi0ccyCu45ZD\nNrx4\r\n=mQm8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCROgJ7dR3z3xgcT0B5RJNeG/Rk9QT9/+vueZMV7ypp0wIhAL7iuuo55uJWq+GG5SfcqFQrfPCbcj/0nPq7cXkc+/aI"}]},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.1.0_1616725551725_0.21442570792177906"},"_hasShrinkwrap":false},"1.1.1":{"name":"narrowing","version":"1.1.1","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","main":"dist/cjs/index.js","scripts":{"build":"tsc && yarn build:cjs","build:cjs":"tsc -p tsconfig.cjs.json"},"devDependencies":{"typescript":"^4.2.3"},"keywords":["typescript","type","type narrow","type guards","narrowing"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"47a0e548b586d271b36f236cce5f7d317a96cc84","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.1.1","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"integrity":"sha512-EsYYncyiu985AJjtPFfIsAnX3WxmPw3Rmfm1stXWWyCH1cIVJTUkMfRteHu4Yn9U88D0D3IEkmo7XEwtkP5Tuw==","shasum":"71b1c1f9a51e626adbd797ca5feaa3fed121eda8","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.1.1.tgz","fileCount":7,"unpackedSize":8182,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXb3/CRA9TVsSAnZWagAAsNsP/RgH5P24gPFyRgw+j6zr\nWT8twK3DxZWhPPF/gLYi/jlTAZHzgALSzLjrE/pZ7ZH0X2XOtaXlNJh2sPZb\n2bGCOjsFl92ewqu4IaXS2ziTem7FM2eJ4D4Nxa2jEhsuxvntzsq8lIDUaeWW\nVJzuf2Yr3EANgy35O14zsqdEOmygCMGrkom/qAoIO+LrXGoL+5UKAG9XHvSW\ntpaM8P+8v0yyekbQJH8MVGbixVpyL9ewY+NtYrPn8/tCLv5zx7mQEpHghThe\nbScCPw+L02Bdf9/My0n3vbv9ChtbvChtpE6lMQWOHpAuAIRis9zEgPVyLfVw\nTSCm+Ykg4yZGEuHzBkf/7ohpupzeLUwS1MaxLmurL6RGTg+PKZMyqihfifl8\n0nlD9+4GGo4EpAGtQBQfpaJsoAtEUkpuq1U7DkSaFRYan7S8vDamTboxygTd\nR6Ui0d1xpBQ3Xr3Xlu0/AmUfExKUBdwW6bcEqxpNYceFReccJf7ULeUHf+Jz\nVxMefpP3TQ0M7G48VfiONvGIgjQ11QAbVNH9hH2O6qwnOwy0Xc+rWQuIFLNi\nRzCuM3zEGpSulRfgG9T1iYvdZ+AgEkiQDO6uI9H5FFs6GPg+BzRdBC3t+sY8\nkOU6xCb4Q+h5vCeZyKEjJJj2NIiWPj74gQXjOH3MVsbKXzIaeMs/sY72BXO7\ntqj4\r\n=+bBI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHGHL+LdB4o6X8gkDBwohra6B6XrsAHsVT03WcL/lViUAiBEH2VtwCcW/mRhsb3cjGqY88R3BSSBtW/tKf6mDmmQrA=="}]},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.1.1_1616756222826_0.31912587493569533"},"_hasShrinkwrap":false},"1.2.0":{"name":"narrowing","version":"1.2.0","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","main":"dist/cjs/index.js","scripts":{"build":"tsc && yarn build:cjs","build:cjs":"tsc -p tsconfig.cjs.json"},"devDependencies":{"typescript":"^4.2.3"},"keywords":["typescript","type","type narrow","type guards","narrowing"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"b48b1f4b2425363aed157bdb2e03ab2ffedcb3ef","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.2.0","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"integrity":"sha512-0J1YhlIlYiPD3iNmyuG6oGegDbvqaQyo+SamMfPXVWwmCT6sry5P9xEdvhKuWMIF2hV4xFWOL0YSGOIp6o7cGA==","shasum":"9a118e277b11de530b50eebeadd76d31b53ba52a","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.2.0.tgz","fileCount":7,"unpackedSize":9369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXcELCRA9TVsSAnZWagAAZjsQAKHaKh/SM0yoXjrQnZi2\nXui0YnPeRjucql622z8euqd34d4IArBcTTOxqa7FlKG+c/pDSCCDQrJ7O0rQ\nYLBxlXA79J7W1xpYgpbl8YAC411pR/kUNlLorVk9KLdN6353j0dWws47qnzV\nw0K3/f+3I3s7Dheoc0CmxpFLwqf7IpnpcyCYpHcqee9hk+0oIGa5PzXppN8Z\nxnvEXCyCpPyhj7m8bHREv5pgWVwD6vp8+pRvqPzty6AF6ue798eHfEOenz1g\nnjIunllfdVRL6tuM7pr4IbRYFRnSJxXC+uq2Cjft86nMKlW4N2qrxlmzNhJJ\na90vOpEOb2ekSP26tjYrZbtwGwgfxQMWkQXg/dVe/EQd1Wg7u7uKVp/B5na6\nGxjrElznUEVwm4QJpgdmjNmNE5oPwx3Vz2RfQ3JdLlzuYijoXKaPeEXPpkgs\nuVPz03iD9O1RMxqDEPcZRcQyjF+rza1ISn6tlUgd+fZZuCYbBguUes3RsIIH\nR4GJnszYanF/kivSNQH07wunUwhqnsCEDSGXyAVCVSaCRkhrEbhgle3kXiX1\nVMGFfckGPeKDLOe1yf0fmMwUTjlyrUWMJpfXzh43S9LJ5Eko5ItBEqdGC57h\n9k9ox0ucuVxlKWTTvlufyD4MfeTeZLXBMAHfhNc1RdFiXQWCEdoG9RQ+s/c6\nokI5\r\n=evj/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD37re/ssvqhdU5ev0LRUzg39E0zwQHoApkhn3/KdopKQIhAJygLfWNdX3XuWSoGyFNIjiEb17295JFH+xXOzpcHm08"}]},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.2.0_1616757001912_0.2389713857887994"},"_hasShrinkwrap":false},"1.2.1":{"name":"narrowing","version":"1.2.1","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","main":"dist/cjs/index.js","scripts":{"build":"tsc && yarn build:cjs","build:cjs":"tsc -p tsconfig.cjs.json"},"devDependencies":{"typescript":"^4.2.3"},"keywords":["typescript","type","type narrow","type guards","narrowing"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"11b43b035ae74b6c3481eee376c6fbd26c4253c2","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.2.1","_nodeVersion":"12.18.4","_npmVersion":"7.9.0","dist":{"integrity":"sha512-G+OBZrB/TXKZGCUE/FEXxSS3rxBmsGZV98aUpgAR8isH3CZnv5Guxeuz9BYzuOBXCTcmnq3SDxwkd22JUQJ51Q==","shasum":"4c9ac8097a4e825fd58d9fa3719d7ee803f013e2","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.2.1.tgz","fileCount":7,"unpackedSize":9367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1EeRCRA9TVsSAnZWagAAZhcP/1U1qsC93YXTSWs08ldV\n5cJSWwdAfvkLUFmLn3JbtsvaHFxeS4TYoFr7GIq48YuEogpjGNaTykXJH5IW\nIlcKNDGGWIw+1qOa+27DBlJhMuvrtipqFGO8OhRJ4kGezcE2pfoshY9aaXEM\n6/LkPMdgV89P4A+LLJ3i0zNLL2Rceavwa4XSio9GGbt/uZvnNpnOnbtj4jPv\niabEDewBQcVvK9ltklq63Yq1EUQL02BsqmCJNlCOYYFcUbqIDIODMrXyYoLM\nm2N17sFcJZ1PCXms27vvNFLHsSZSyjGNA7BWWrqO6jEzgrBzd4l3NHMdAUBH\nuXi6RadqLK3OexyO74tXD0lyZ0NN9XCIAukHTJTEvvcg2ETNTt7oZkoX+h0s\nxhar/GFMN2fxSn0pzr6pG+4rqaxzz7c/AKSjw5KtoiZcVoYrXHbUmLOL7jmW\n/2q31glGBIes7ir3K0aJDtAcNeh5Ik5QpN2OIRMFYxZvlftHeBklbWhEKvbo\nx2vFYKIsgiXNpOFam1Yyvbqx77MXlHSbKj6xdt8IBOg9m7KUFFgo/5nyvwXe\nySBXNT0m0acWzcnTK0IaVHU/CIc+ySA8zLw5VkYF1IgLjRP/zlgxin3+B3mX\nLhwV6Cucz9oGuDW97K8BxH4b37FSoBV8awg22HA03pQ5dNJgCQKGWx4z2is3\n74F+\r\n=/803\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1HcJQTF4h43qKfujr4ieMsL6e76qGDeUl8OpaQ65ifAIgRhEXpN9w4RAxeatNF5u4dyTxBz0OAX4TvLXaDSBl8xw="}]},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.2.1_1624524689431_0.7615414000560363"},"_hasShrinkwrap":false},"1.3.0":{"name":"narrowing","version":"1.3.0","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","main":"dist/cjs/index.js","scripts":{"build":"tsc && yarn build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","test":"jest"},"devDependencies":{"@types/jest":"^27.0.1","jest":"^27.2.0","ts-jest":"^27.0.5","typescript":"^4.4.3"},"keywords":["typescript","type","type narrow","type guards","narrowing"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"61948f2493e83ce8378b2881daf6ea804c15026d","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.3.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-pY2kfVDS5Q9ulZUEQcpgxZldtznHVJ2lvAlrGTmI21uVZYrMvNQekqgtA3yjW0zbpd6EUCDMy+56zwczzUu6cQ==","shasum":"7c282d1370a72a80dcb6c41855894163cccb64b7","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.3.0.tgz","fileCount":7,"unpackedSize":12564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQyKSCRA9TVsSAnZWagAASXIP/R8fCZSPsURZjGavib34\n1NlceAs05L+NSyPfy2bUUFHN40J+8a7cOmx4Q/AqCgNB5uvf/h3zGuo/eUMs\n5s7LFj+piV6cy8Nt3mTmV36SvdHk/pMXyl2Jno4240Y1DjuEXjbOXsgj1I6t\n3OiFsE8o7ToB1gfizZVQkRfOwTuUeX1eWwMp9jkmjU0D3sc8RDi+GfmJYOBX\nryHKx9ZpZScz7z+WM0va2NQu4qaFbA398HZMGFIJe6y/QGwcKHSaZDlQK7Ze\nmkY09sYJoVV7JJvhDSyUQfMEztvlERvvhlh6+/xfwU/SCr2BCjdrtdk8pSEe\ngflMbz/CBQmkxsi/t8+nLxxw9Yteq+Ye4iYG52pRQid3QF5fpUy3J5xxyJgZ\nW/9TNax6X764PAm/RwCOQxzKR6cvT6EBl6+WUGCFXrWmCVI4GZw/BNgCy81z\nefXi2HUamwEhGTlFe1zZUYWnGz06wzVmbr9i4GfGO9Lcs1/t0S01xQjCzYIN\ntHc7b+2uq4iXwNdLnLdTRbXA6jNPYhdyOUvS2d8M1xKoqXZEVNlsXJh6IglU\nDl1OdBnsINTxG+jwWCFS04ct6Cr/9V6yZ4D2owYREJKwHqg/FTf3FJMY08DN\nrBB4f7qZFSW7Aqh3PMbTv7gLx0IS09/yV56tu6gHMP0Bi7eTR4AWU0YSL0Kj\ntlXO\r\n=G/2w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICuqkGTaPMv1f2yHNohlB7SVzh4oeHkN+muEJXCJeB30AiEA/Uww5ZlxdoWx8fG7/zHzaaCR4E4M63r8RkFZtjSog5k="}]},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.3.0_1631789713975_0.03372628704698677"},"_hasShrinkwrap":false},"1.4.0":{"name":"narrowing","version":"1.4.0","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","main":"dist/cjs/index.js","scripts":{"build":"tsc && yarn build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","test":"jest"},"devDependencies":{"@types/jest":"^27.0.1","jest":"^27.2.0","ts-jest":"^27.0.5","typescript":"^4.4.3"},"keywords":["typescript","type","type narrow","type guards","narrowing"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"1fea6bc2caffe7d0a737fc99cfa30bf9ded97b76","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.4.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-TYkWGGMWqyiEhTx0KdGtf+dukZAc1fcY0sOpXWOFxvdBXsVpfdtYUnsfZtpPax3REgD7BxcBWkGByWgYrSkC9A==","shasum":"925178a6336019c6206956dd54d541c6bbc35589","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.4.0.tgz","fileCount":7,"unpackedSize":13138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh20KMCRA9TVsSAnZWagAAFN8QAIqXJpitehvvoens6UOn\n8l+88NF85wnJQyUssWDPQLBdTtaUak5btPQjyNzjmq3mck87FmCCeQI26fcq\nHwyOs6eeiglITByDtOO1DoV5atRCyQmR9Y+PCMtG+vMgvhCXEY8AZuWlAA7j\n3AeTCWNf+9JenVFhaLZmQQpjl0RkI2GVj/8qj/cv5AMMaM2dgibL00bNHnzh\nzjQjGiylNmVHFOWS9ZVSB7hgVJu3lWOZhntJVAbE5Tp9zBYP8Vnrh0d6dZHm\nz7WylwkZ3zKt1i8gCWS/7iILMRQRjncaQACbPCh9/ZSrq0qtV20Zlc0QRxlq\nAg/XbRC2hMkTgMYh84G4aUXX70zt4Rb2x81BJVvLgtbUdfBTCH5nNJ0uqddw\ngC/mmFOhFIHGqYXAuoaFk3Ju6lHgexHx112+WiueAbvRLGIYmOgxvGwqrZGI\n1rQkPyirXvhUSM6uOKObyzj6iW5FBO2N9OuwWcDpiDhSoXpyT1P/+F5gGQTv\n7Hfyh1xq1O5HeuJiR7kCb/JEFajd7JUJSFzDuHu9sD8DrGMaLorZzZvjpnXe\npAYizm27xKYY2yJY/4eKPhF/XrGhb1lc8aTuatgmrIvKi4wRVuFOZrL3x0K1\nf6IMzhRvLveZ1NxNso5CjT6vdvGw+yi62ll6Y9w9pK44i7FoGr2XxrUuY4UG\nKWJg\r\n=eG/c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgNZ3Hs3smgeFYIAbvDvYIgYuH03M3us4hRHWvfjSyYAIgZuIXFCSqTV99EUqgApE9jBGUrM88F9fH3LTq53NeU7s="}]},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.4.0_1631866881019_0.07812891848649217"},"_hasShrinkwrap":false},"1.4.1":{"name":"narrowing","version":"1.4.1","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","main":"dist/cjs/index.js","scripts":{"build":"tsc && yarn build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","test":"jest"},"devDependencies":{"@types/jest":"^27.0.1","jest":"^27.2.0","ts-jest":"^27.0.5","typescript":"^4.4.3"},"keywords":["typescript","type","type narrow","type guards","narrowing"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"81381671c64de3b2111fa2ce7758c42156eac6fa","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.4.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-fgpNPTs5Hwi11lAcZo9h50EI4NOMmpLo8rlgKnizByiB17eeKjgOtBV9OZO4BHwXUxwG5wv48BpB9GI4GJJ/Ew==","shasum":"edb1ea929117d711f3672d0e6a6ff0d6df4dc9ba","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.4.1.tgz","fileCount":12,"unpackedSize":21363,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCS89sFXGJhvTBrvQts+Sf5xEmf+nbhf2Hkxqsezx5IXgIhAICtiotk6n2kVzAxtx4XhsfsqCMfiZrioQqsYIRqvN5s"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioApcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNuQ//Rzdulb3pcwPy0FsZKs79YFGetbY+3Kb313INJ4lk6kyWX4aZ\r\nXAlvQqBmrsourp/wvVhsX8URIqHUKx9mgd3Ohk76C3pJbJ8FIQc4LYD/8zmZ\r\nJfYEd6pQbBk36j2Lr9EKbjr3MOcldLuSAq+5JyFSrAUbTYVpHY+usnlVqTBU\r\nJBz8eHwba/yN4tuMMkqjYKM0w5+hMr9WEvYcZKxcV3oe/CYNcN3M3IJ4khw6\r\n24MJntVxFZ5fBj3Zw7YX5rKs13SYOoEi2d2pP+fLJbAPBdMqagWjNLjLvbCb\r\noXVuRHbOUBM7jARVLsdYmfZTVl6fXFkh0czFLs+UQAPnQ7Dhz/pvgu0UeEHE\r\nUGkwxWNxgJ64JQdP5u14pbQq3Wu2E3hezxQZD2d34YVhRX2XUEwH2/yZhhnW\r\ndPXF3SuJtu5x4wDTPL7ehTuxW1CvyGGfmL+meAhGhZXlatQF3ZPytnxe87Fx\r\nPcx1dLGWuNvnSpFasJZTTvBukZRzxn/GpYEuTGp74Kp5dVLOXjdp/5GrB9kg\r\no1XUkvA+afHXpZEv3QglniPP9uFf5c72zpMQMPYAeDtgsz36JamTg9i4dQSN\r\n7Xcuq7y/3DHePR6YJguLwf/j8Xpn+Gs5z2h05GhNIkXiQMYWISjohrqzhzwI\r\nrkYTyhybemZr9FhdMuDi2r7GHX+biz9b45E=\r\n=Hbkm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.4.1_1654655580098_0.8453365330021922"},"_hasShrinkwrap":false},"1.5.0":{"name":"narrowing","version":"1.5.0","description":"TypeScript tiny narrowing helpers you better use.","module":"dist/index.js","types":"dist/index.d.ts","main":"dist/cjs/index.js","scripts":{"build":"tsc && yarn build:cjs","build:cjs":"tsc -p tsconfig.cjs.json","test":"jest"},"devDependencies":{"@types/jest":"^27.0.1","jest":"^27.2.0","ts-jest":"^27.0.5","typescript":"^4.4.3"},"keywords":["typescript","type","type narrow","type guards","narrowing"],"author":{"name":"nshen","email":"nshen121@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"gitHead":"b7f2a0e888fef20ebc601486fb33f75a956fc95a","homepage":"https://github.com/nshen/narrowing#readme","_id":"narrowing@1.5.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-DUu4XdKgkfAPTAL28k79pdnshDE2W5T24QAnidSPo2F/W1TX6CjNzmEeXQfE5O1lxQvC0GYI6ZRDsLcyzugEYA==","shasum":"b53c2d1bcec99ae16605ba6b15827f0c7d5d6bbf","tarball":"https://registry.npmjs.org/narrowing/-/narrowing-1.5.0.tgz","fileCount":12,"unpackedSize":22777,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoBjLr1kdo/L2416c23N0LJXBi2RoXd4tgjhAA067T+AIgDwWcKXWb2LgnGLl4vc1i3PLuMtN+U6emwpPukAtcmlY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioMugACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqOIg//f/Tg3obFkeEyrboViIvlkbOlkg8a+fZv+Dwwbreo/SqSBloF\r\nMU9TLF1hGFyLRsTYvcNngEtzI6tjHeKFcknmqTG0/4SlEQCirW22i/+HQK4M\r\nN9w9PnBg6s5iyjjG9knBaYiK56N7u4BQIwGlAZCEsoGIPDXJNZ2HHNjRwOA4\r\nMGhJOHOHKYzZR8oE8w4jUiiVP3JN9T38Ted+kjv7gXvOF7PHOSa26tLGuWsd\r\nFVOB487Gn+9G5dmEGKxFix7Y1y1izwOVd+sDPZlCxxHHpHX190Cy5GSZdwkz\r\ncIOjsFnsQTXAhf5T/1UB8kYotn1EKVlqycQjYVnEeZvyT+CgpPegUUxNH/Bz\r\nwVAoeFYm5BSC121XVqMVva3C5BNKw9fnVXz+X7zsY2DsdRvDRT/yqSZd/1da\r\n0XancQAZuHZPYjHjiXkCuD8MK19QcDWXKZnOiPxkX+cFm7TU3X34Q1X4D62M\r\nVoztGNn/4fusVlxruEuENDNhzFX4VoCqOPX80zArG4p1PLASv7SufvvTV5lg\r\nsVgw71wQJliK7S3da0qw6ctmq8XJzklY/dKqqOUaQp4cSe3MPCDv+UgXaXH7\r\ns279+spic+YT0dWqlyMS/eRpMNPqJp6RBCb5uUuBoD6CggohgO3kZhloAgjw\r\npYDstlEcruZlQr/2bnm4XMI+ZdkW7aIxLrs=\r\n=grNq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"nshen121","email":"nshen121@gmail.com"},"directories":{},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/narrowing_1.5.0_1654705055887_0.11370774784637128"},"_hasShrinkwrap":false}},"time":{"created":"2021-03-25T10:41:47.091Z","1.0.0":"2021-03-25T10:41:47.211Z","modified":"2022-06-08T16:17:36.161Z","1.0.1":"2021-03-25T10:44:05.031Z","1.1.0":"2021-03-26T02:25:51.909Z","1.1.1":"2021-03-26T10:57:03.047Z","1.2.0":"2021-03-26T11:10:02.745Z","1.2.1":"2021-06-24T08:51:29.591Z","1.3.0":"2021-09-16T10:55:14.105Z","1.4.0":"2021-09-17T08:21:21.191Z","1.4.1":"2022-06-08T02:33:00.307Z","1.5.0":"2022-06-08T16:17:36.091Z"},"maintainers":[{"name":"nshen121","email":"nshen121@gmail.com"}],"description":"TypeScript tiny narrowing helpers you better use.","homepage":"https://github.com/nshen/narrowing#readme","keywords":["typescript","type","type narrow","type guards","narrowing"],"repository":{"type":"git","url":"git+https://github.com/nshen/narrowing.git"},"author":{"name":"nshen","email":"nshen121@gmail.com"},"bugs":{"url":"https://github.com/nshen/narrowing/issues"},"license":"MIT","readme":"# 🤖 Narrowing\n\n[![npm](https://img.shields.io/npm/v/narrowing.svg)](https://www.npmjs.com/package/narrowing)\n[![npm](https://img.shields.io/npm/dt/narrowing)](https://www.npmjs.com/package/narrowing)\n\nTypeScript tiny [narrowing](https://www.typescriptlang.org/docs/handbook/2/narrowing.html) helpers you better use.\n\n## Install\n\n```bash\nnpm i narrowing  # yarn add narrowing\n```\n\n## Usage\n\n```typescript\nlet a: unknown;\n\nif (isXXX(a)) {\n  // TypeScript know your type here!\n}\n```\n\n## Functions\n\nBasic:\n\n- isString\n- isNumber\n- isBigInt\n- isBoolean\n- isSymbol\n- isUndefined\n- isNull\n- isNil\n- isFunction\n- isInstance\n- isArray\n- isObject\n\nAdvanced:\n\nThese functions help you make advanced type guards.\n\n- [has](#has)\n- [kind](#kind)\n- [literal](#literal)\n- [schema](#schema) (💪 `cool`)\n\n### basic examples\n\n```typescript\nimport {\n  isArray,\n  isBigInt,\n  isBoolean,\n  isFunction,\n  isInstance,\n  isNil,\n  isNull,\n  isNumber,\n  isObject,\n  isString,\n  isSymbol,\n  isUndefined\n} from 'narrowing';\n\nlet a: unknown;\n\nif (isString(a)) a.toLocaleLowerCase();\nif (isNumber(a)) a.toFixed();\nif (isBigInt(a)) a.toString();\nif (isBoolean(a)) a.valueOf();\nif (isSymbol(a)) a.toString();\nif (isUndefined(a)) {\n  a; // undefined\n}\nif (isNull(a)) {\n  a; // null\n}\nif (isNil(a)) {\n  a; // null | undefined\n}\n\nfunction testFunc(a: string, b: number): boolean {\n  return true;\n}\n\nif (isFunction<typeof testFunc>(a)) {\n  a('11', 1); // no error\n}\n\nif (isInstance(a, Date)) {\n  a.getFullYear();\n}\n\nclass TestClass {\n  m() {}\n}\n\nif (isInstance(a, TestClass)) {\n  a.m();\n}\n\nif (isArray<string>(a)) {\n  a[0].trim();\n}\n\nlet b: TestClass | undefined | null;\n// b.m(); // Error: Object is possibly 'null' or 'undefined'.ts(2533)\nif (!isNil(b)) {\n  b.m(); // no Error any more\n}\n\nif (isObject(a)) {\n  //   let a: {\n  //     [key: string]: unknown;\n  //   };\n  a;\n}\n```\n\n### `has()`\n\nCheck if a type has a property\n\n[TypeScript Handbook / Using type predicates](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n\n```typescript\ntype Bird = { fly: () => {} };\ntype Cat = { run: () => {}; meow: () => {} };\ntype Dog = { run: () => {} };\n\nlet pet = {} as any;\n\n// save these type guards somewhere and reuse them\nconst isBird = has<Bird>('fly');\nconst isDogOrCat = has<Dog | Cat>('run');\nconst isCat = has<Cat>('run', 'meow');\n\nif (isBird(pet)) {\n  pet.fly(); // Bird\n}\n\nif (isDogOrCat(pet)) {\n  pet.run(); // Dog | Cat\n}\n\nif (isCat(pet)) {\n  pet.meow(); // Cat\n}\n```\n\n### `kind()`\n\n[TypeScript handbook / Discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions)\n\n```typescript\ninterface Square {\n  kind: 'square';\n  size: number;\n}\ninterface Rectangle {\n  kind: 'rectangle';\n  width: number;\n  height: number;\n}\ninterface Circle {\n  kind: 'circle';\n  radius: number;\n}\n\nconst isSquare = kind<Square>('square');\nconst isRectangle = kind<Rectangle>('circle');\nconst isCircle = kind<Circle>('circle');\n\nlet s = {} as any;\n\nif (isSquare(s)) {\n  console.log(s.size);\n}\n\nif (isRectangle(s)) {\n  console.log(s.height);\n}\n\nif (isCircle(s)) {\n  console.log(s.radius);\n}\n```\n\n### `literal()`\n\n```ts\nconst is404 = literal(404);\nlet code = 200;\nif (is404(code)) {\n  // code's type should be 404 , not number\n  // let code: 404\n  code;\n}\n```\n\nthis is useful when you see `schema()`\n\n### `schema()`\n\nBasic schema validation\n\n```ts\nlet message: unknown = {\n  code: 200,\n  msg: 'success',\n  records: [\n    { id: 1, name: 'aaa' },\n    { id: 2, name: 'bbb' },\n    { id: 3, name: 'ccc' }\n  ]\n};\n\nconst isSuccess = schema({\n  code: literal(200),\n  msg: isString,\n  records: isArray\n});\n\nif (isSuccess(message)) {\n  // let message: {\n  //     code: 200;\n  //     msg: string;\n  //     records: unknown[];\n  // }\n  message;\n}\n```\n\nschema supports a type argument for associating a schema with an existing type\n\n```ts\ninterface TestInterface {\n  id: number;\n  name: string;\n}\n\nconst isTestInterface = schema<TestInterface>({\n  id: isNumber,\n  name: isString\n});\n\nif (isTestInterface(message)) {\n  // let message: TestInterface\n  message;\n}\n```\n\n### `every()`\n\nRuntime array type validation. Checks each element of an array.\n\n```ts\nlet arr: unknown[] = [1, 2, 3];\nif (every(isNumber)(arr)) {\n  let typeCheck: number[] = arr;\n}\n```\n\nWorks with any narrowing validator, including schemas.\n\n```ts\ninterface TestInterface {\n  id: number;\n  name: string;\n}\n\nconst isTestInterface = schema<TestInterface>({\n  id: isNumber,\n  name: isString\n});\n\nlet arr: unknown[] = [{ id: 1, name: 'aaa' }];\n\nif (every(isTestInterface)(arr)) {\n  let typeCheck: TestInterface[] = arr;\n}\n```\n\n## Version\n\n- 1.1.0\n  - add `has()`\n- 1.1.1\n  - `has()` accept multiple params\n- 1.2.1\n  - add `kind()`\n- 1.3.0\n  - add `isObject()`, `isValidObject()`\n- 1.4.0\n  - replace ~~`isValidObject()`~~ with `schema()`\n  - add `literal()`\n- 1.5.0\n  - add `every()`\n","readmeFilename":"readme.md"}