{"_id":"@byte.london/deptypeguards","_rev":"3-790a6836df6edb491fcb6db2ec09316e","name":"@byte.london/deptypeguards","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@byte.london/deptypeguards","version":"1.0.0","description":"![](https://img.shields.io/badge/Coverage-88%25-83A603.svg?prefix=$statements$)","main":"lib/extended.js","directories":{"test":"test"},"scripts":{"test":"VERBOSE_TYPEGUARDS=true nyc --reporter=json-summary mocha --require ts-node/register --ui bdd **/*.test.ts","coverage:badge":"coverage-badge-creator"},"author":{"name":"byte.london"},"license":"ISC","devDependencies":{"@js-joda/core":"^5.2.0","@js-joda/timezone":"^2.12.0","@types/chai":"^4.3.0","@types/mocha":"^9.1.0","@types/node":"^17.0.23","@types/sinon":"^10.0.11","chai":"^4.3.6","coverage-badge-creator":"^1.0.11","mocha":"^9.2.2","nyc":"^15.1.0","sinon":"^13.0.1","ts-node":"^10.7.0"},"types":"./lib/extended.d.ts","gitHead":"adf86b90934e3d57aef832e0d3022b4436a11edc","_id":"@byte.london/deptypeguards@1.0.0","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-gnRnJxgmUnEgQBFtjlPBKYmL4UiPOKE70YedNjGw1wb7p9ZKs4y3t7zHlm1n0K3vj0t6TWHqjRHdqtJghSF99A==","shasum":"94b82a59c54534f2c0b225610cb3ca78bf80e725","tarball":"https://registry.npmjs.org/@byte.london/deptypeguards/-/deptypeguards-1.0.0.tgz","fileCount":31,"unpackedSize":113486,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG70m/ds2sjARVW262+HPOGEcG1qKSlSUPxgicS3Aq+UAiAkVN5Y50WPk2YpxDNLAIGsbmOLT5rfXHriEtOD3k3uQw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRhi2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9vQ//Ukn/FPjp84aOqFBZZC0vH5IJ7noPx+NNfXGn/4G2BJsLTXoF\r\nVoDS0j2upcjILtpCXHgpxaUMcAW4roQkHfhesgazCjkUA2S6hND2BR/Ea5+W\r\nf1t7DaSn0jqCA+w7K0u/EamfPoGpFvrneAjfpvwqkAuJzPQBlwEHex4FnyDD\r\nTnP1G0UO92sLMBexPAO10pDjNezTC3FYjR4nxTCPXIxz2YhaaEyo9nClolUY\r\npnuU5eHymwn2B1y1UWWXGEVrVs8/C3v06/Rd5/5PuEi/jfCl3c27HJzRE7uq\r\npvCYo5d3RJ+VxbBRk2IVQmzX1FbSaRO45TZUZpXtlk0AzdZoVSbFQaCyGgep\r\nJCj2c3TfNzFak691lE0ElekgqAmUJiW61aDUPr1Mc/uuWx6X12GpQ1eZ/4T3\r\n5rn5xn4rZ7qNbyduBIf7kS9MmzvrWkHER+Z7rhS9a0xqtni/BVUMzeVLEqgc\r\nn2II5Yc8LmrSyBrKkWwbT46BA7p/dFEFexuhLCLCoxBy2ZOve1si6LUGEZiX\r\nvkjbgtQ3G0u6tjOP2vObdy0a/GgeZ0nW1XFshqZWJOIs2zfdwtZwHEyXsnLN\r\nzrYRznejZ59zCniMcr4aqodAxRsB5i9/MnzDUGgtAll+k0zxlKx2zvQg60Sq\r\nXx3F8WC/zT56sbPZHDDG8VX/nWJYWTvSk9M=\r\n=iRXn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"riskycodes","email":"tech.admin@bytelondon.com"},"maintainers":[{"name":"riskycodes","email":"tech.admin@bytelondon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/deptypeguards_1.0.0_1648761014207_0.29281888679682866"},"_hasShrinkwrap":false},"1.0.1":{"name":"@byte.london/deptypeguards","version":"1.0.1","description":"![](https://img.shields.io/badge/Coverage-88%25-83A603.svg?prefix=$statements$)","main":"lib/extended.js","directories":{"test":"test"},"scripts":{"test":"VERBOSE_TYPEGUARDS=true nyc --reporter=json-summary mocha --require ts-node/register --ui bdd **/*.test.ts","coverage:badge":"coverage-badge-creator"},"author":{"name":"byte.london"},"license":"ISC","devDependencies":{"@js-joda/core":"^5.2.0","@js-joda/timezone":"^2.12.0","@types/chai":"^4.3.0","@types/mocha":"^9.1.0","@types/node":"^17.0.23","@types/sinon":"^10.0.11","chai":"^4.3.6","coverage-badge-creator":"^1.0.11","mocha":"^9.2.2","nyc":"^15.1.0","sinon":"^13.0.1","ts-node":"^10.7.0"},"types":"./lib/extended.d.ts","gitHead":"74761bf3a2dc4a1fec38c5937a1276652f02b638","_id":"@byte.london/deptypeguards@1.0.1","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-W1p7VY9kR3Vc8dR8pNGdN4DNTC0/Nyuj2jwxtTwZUuXt72y8a2THAQifv63UyNDix+kzaZAeYAHqKtGszzbGtQ==","shasum":"6646f66d8c57ddf8f9410988367da79a4f107039","tarball":"https://registry.npmjs.org/@byte.london/deptypeguards/-/deptypeguards-1.0.1.tgz","fileCount":31,"unpackedSize":113585,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEtQl1m0x9ACf79qUvzHKmYBGDWHTZyki2Wqz56aAxU3AiEAlFlFTBxt17UnHSkwDD3OUcLETuRhm1eIsKjsgRdrIBw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRiYkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoykxAAn/FZHliLQn3zp8goAD48i9p/3p4hYOxGiSyFqhPyvaoCwEky\r\nbXZgmOkxeGWwJz1ClSfbeQbtyC09mN1jHQ2jQ6AB/3dRwalM1Ut6GkPfGBWQ\r\nPxEUPx569cLPpD8xAq8fBDngxzDpe//r4K8LjWpj3Vt+p3BsNoRd7zuDyyS7\r\nFMQObszl+4s+3Ee26/8rbRnzsf0um+0pjliVimxSnHVJSg9WiRAiAX2xwgQ8\r\nRwxs8Jdm8BaOrxQZ3IzLpEc5KaiSYiwi2DDpFYe4t6KesaSkRhu8c2Mij9QW\r\niM/U3HqtU3FzhAiDkMhXTZsmE/4pzyBFdVgmHjDOxWOmiIX6AVpsgs9ip2yY\r\nSX65w1B/FVYDVWZtU03b378PmGSQ5yqSJv4b7clokTnGVGJE02+rD17Otkz8\r\nG6wxsDQQgZH7dKtCLDdxcsNd23VrWquWpsdnjsshY6CF2OzAeNycspY3Z6tZ\r\n7Q3uW+vHoIjy9x1KVzs0/4PoXi9lrSvdBFOOfGnko8XxFPYEsr4iBKWy59d+\r\nNMCxMDYds89zGqjrv3g1Ay3UXCx/rKKTR2iyHuVIWqJW54UQU78cU5Ul8X8E\r\npPK4cdfq8M5Ltvw52+rDOQueSgcTjtoru5gspZSQP2qz6vXr2Brml2TtDM1R\r\niTPdbsKg3bg8IAwEib6KD3kKcqRBNfE8nWE=\r\n=Z4tM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"riskycodes","email":"tech.admin@bytelondon.com"},"maintainers":[{"name":"riskycodes","email":"tech.admin@bytelondon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/deptypeguards_1.0.1_1648764452245_0.30113009187246775"},"_hasShrinkwrap":false},"1.0.2":{"name":"@byte.london/deptypeguards","version":"1.0.2","description":"![](https://img.shields.io/badge/Coverage-88%25-83A603.svg?prefix=$statements$)","main":"lib/extended.js","directories":{"test":"test"},"scripts":{"test":"VERBOSE_TYPEGUARDS=true nyc --reporter=json-summary mocha --require ts-node/register --ui bdd **/*.test.ts","coverage:badge":"coverage-badge-creator"},"author":{"name":"byte.london"},"license":"ISC","devDependencies":{"@js-joda/core":"^5.2.0","@js-joda/timezone":"^2.12.0","@types/chai":"^4.3.0","@types/mocha":"^9.1.0","@types/node":"^17.0.23","@types/sinon":"^10.0.11","chai":"^4.3.6","coverage-badge-creator":"^1.0.11","mocha":"^9.2.2","nyc":"^15.1.0","sinon":"^13.0.1","ts-node":"^10.7.0"},"types":"./lib/extended.d.ts","gitHead":"596c2f8ff2690987b95f4affc5ca809fa9e449fd","_id":"@byte.london/deptypeguards@1.0.2","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-oN6mUiw7wpBL1XjG4jggDE8dtlgzlgeYP5+FwMcaclxvu52SdN7GtChmDsaXNYmFPXd26RKINZ91Xg4GmLy0eQ==","shasum":"2f4884a2c1f644f736d28910d9fbc9a8ccf67e8b","tarball":"https://registry.npmjs.org/@byte.london/deptypeguards/-/deptypeguards-1.0.2.tgz","fileCount":31,"unpackedSize":113740,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDq2bqH75bZvM471Ew5oiTlE6RhzXeEspAmpUl2lsX7pgIhAORGcnWs2sgjkPQx3H/RoG9ugA9RheIOuUrMyKmTl/To"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRicbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqSgQ//XtKU7jKkomCXY8UHCQJNFgvbz1CYq2ZaoISLsVR/dP9/ZuTT\r\n3d9yA8zY5q+2iwhq+qScqAHNQbyB1gFJna5eruIZELF4oYNRs36QmUVOmA3d\r\niuKPIpzHeDZT+cVkWkdHHzHm5ttIoEURU3x9onlhJ4r1YNyk4auVgyQaFkWn\r\nm3o//pkUm1IC866I8AqBZ+Jbvl31GII2tOhCTO4+dMQpVsoHHdbHonPtW2LP\r\nhyLGaz308RO7gkYd9bsuEl7KHzazvgTp54B617Cf8e76Qb3Bwy3mN2MOt2rW\r\nppEjsfH4oiIfZSJDwyGMiJ7qmYkHT9xGT/GONWWeQdRAARqvH10dUyTexV9h\r\nJLHP0iPjKM0XJtZSfXYJsdjx7kAwEBorWKypgIq+ZLGgIVI4Pd0S18yQszk7\r\nkaZ7BUrmnwi9CzrPZiMeJpcwQA+MedVAGTyvVeQYCkss3TYmtzEx05dfXOYf\r\n2BW3t0mH24njP1Qby17nPpMHridNH4jiTY6MCRokyRQ+6APfPy0TWhRLVu8+\r\nDTFL70AGYA5Gc4M+e0WZDC7gfmQwqwRVtEQRI/wJDbJenDeVttE4+x2VitY4\r\n1ZefxPpqocHjHTSPsLNDMTzy69jVto/vl7T9PsqOzQttrqTKsm1etZPeB0kp\r\nByCZ9P22LzAoYkKDfOehu82e/cJ2S3t3ry4=\r\n=jZQZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"riskycodes","email":"tech.admin@bytelondon.com"},"maintainers":[{"name":"riskycodes","email":"tech.admin@bytelondon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/deptypeguards_1.0.2_1648764699581_0.6807168989263164"},"_hasShrinkwrap":false},"1.0.3":{"name":"@byte.london/deptypeguards","version":"1.0.3","description":"![](https://img.shields.io/badge/Coverage-88%25-83A603.svg?prefix=$statements$)","main":"lib/extended.js","directories":{"test":"test"},"scripts":{"test":"VERBOSE_TYPEGUARDS=true nyc --reporter=json-summary mocha --require ts-node/register --ui bdd **/*.test.ts","coverage:badge":"coverage-badge-creator"},"author":{"name":"byte.london"},"license":"ISC","devDependencies":{"@js-joda/core":"^5.2.0","@js-joda/timezone":"^2.12.0","@types/chai":"^4.3.0","@types/mocha":"^9.1.0","@types/node":"^17.0.23","@types/sinon":"^10.0.11","chai":"^4.3.6","coverage-badge-creator":"^1.0.11","mocha":"^9.2.2","nyc":"^15.1.0","sinon":"^13.0.1","ts-node":"^10.7.0"},"types":"./lib/extended.d.ts","gitHead":"596c2f8ff2690987b95f4affc5ca809fa9e449fd","_id":"@byte.london/deptypeguards@1.0.3","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-FuTyl7PHdqnhoyWVANM5LoGlRynwVFXk6Qlrl1FJy3VN+B1tqK230H40Wa6/SC0cys+Hq9FJqzeTEeGlr6Mh2A==","shasum":"5d0cd3de21e253cda38170e7c8c2904e4565141a","tarball":"https://registry.npmjs.org/@byte.london/deptypeguards/-/deptypeguards-1.0.3.tgz","fileCount":31,"unpackedSize":113785,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBmBNw56BZoWtPnepBF7KTOVqEJGdMsENV1XbgWUDc/4AiBTZW7NVhUIEMFzi2WD6jfFhlbjiIi9mzhvEsxXJQZRaQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRjVjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3fw//Rb5j2d4SkwZSvhORLc5ERHN3DulBwG7P9F4CPVujXPTnsSTv\r\noaRZXEKqIRCoisGNhboLq5Lov22WFgCn/vzhSWYrAg7fSQNHDrC4i+t7JO5D\r\n3OGgucZuZPq2+FnGEfKwlk0idH+3iO/N50pUtJq4/Kf1CLHcBRJb8IRmmwZN\r\n4iCsVvLmoJzigaTp1aLmGVVZT4MfC5BRgXJ/k2uP90snyzWiLZt/YPpWP+Eb\r\nOUXR3JBKVC3qrVpSCbNMekBTGd1qD56MZjXkx9JrR/cr+IPgO/1rlkt1Yk+Z\r\nxNJCsn+w8W+Qe17h2Pe6qnkuRit0Qu6zmTcKLR+FK2wUetTZRoNl1poqkcMk\r\n7zeW9P0Es6XYBWZacA6bqpkbjN1GQrDT39d94e7S9wRzLWNAMXP/ad1wRnX4\r\ntAIn9OqxiYU22Ch9cSFcqbB81bfb60zNE9XymeWqsMF2/TxBaGLPT8O7SdS1\r\nUjJ6Kc8cNStd3wqUMCewhb+s10nPKW1gnPii7iyv774gIA8K9QF6QcquC9rn\r\nRT1bJWu0bXaopIRlxyRccdASI0b7QxtchkZFV4FK7jaEodZo6Wlm2Za4r9Vi\r\nAuOlSMm33ZXHpmiFA2UjDG0pzMU+p9ykN5h2ZO5SIVMkQ7vlbjh54Qqd8A6f\r\nom7Vo5q9qusEWBGyoGncVYPsPtgqutfVQVo=\r\n=vcqf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"riskycodes","email":"tech.admin@bytelondon.com"},"maintainers":[{"name":"riskycodes","email":"tech.admin@bytelondon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/deptypeguards_1.0.3_1648768355747_0.13011976547905113"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-31T21:10:14.144Z","1.0.0":"2022-03-31T21:10:14.371Z","modified":"2022-03-31T23:12:36.077Z","1.0.1":"2022-03-31T22:07:32.638Z","1.0.2":"2022-03-31T22:11:39.723Z","1.0.3":"2022-03-31T23:12:35.950Z"},"maintainers":[{"name":"riskycodes","email":"tech.admin@bytelondon.com"}],"description":"![](https://img.shields.io/badge/Coverage-88%25-83A603.svg?prefix=$statements$)","author":{"name":"byte.london"},"license":"ISC","readme":"# BYTE/DEPT® TypeGuards\n## (AKA ByteGuards)\n\n![](https://img.shields.io/badge/Coverage-88%25-83A603.svg?prefix=$statements$)\n\nThis is a library for having typeguards at runtime boundaries, in addition to the native TS compile time checking. The purpose of this is to provide more information when variables fail type-guards, but also to ensure that when data comes back from an API, DB call etc, that it is of the type that we expect. This adds some overhead at run-time, but with the benefit of providing complete type security.\n\nWe have found it to be superior to other libraries such as io-ts and Spicery, and ts-runtime which runs in Babel, as there is a clearer indicator of what is going on, as well as verbose messages if you want them. In addition, with the use of GitHub CoPilot, we have found the 'manual' generation of TypeGuards quick and easy.\n\nIt was inspired by [this article](https://web.archive.org/web/20190204094636/https://lorefnon.tech/2018/03/25/typescript-and-validations-at-runtime-boundaries/), written back in 2018.\n\n## License\nDistributed under the MIT License. See LICENSE.txt for more information.\n","readmeFilename":"README.md"}