{"_id":"@akirix/convict-model","_rev":"5-8868f5b57d52f42ea9e9844b45026d2c","name":"@akirix/convict-model","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.2":{"name":"@akirix/convict-model","version":"0.0.2","description":"Model style decorators for your convict config.","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Akirix/convict-model.git"},"engine":{"node":"^10.11.0"},"scripts":{"test":"NODE_PATH=src/ TS_NODE_FILES=true nyc mocha --opts mocha.opts","lint":"tslint -p tsconfig.json -c tslint.json -t verbose","build":"NODE_PATH=src/ TS_NODE_FILES=true tsc","build:prod":"NODE_PATH=src/ TS_NODE_FILES=true tsc -p tsconfig.prod.json"},"author":{"name":"Kelly Ferrone"},"license":"ISC","peerDependencies":{"convict":"^5.0.0","reflect-metadata":"^0.1.13"},"dependencies":{"convict":"^5.0.0","reflect-metadata":"^0.1.13"},"devDependencies":{"@types/convict":"^4.2.1","@types/js-yaml":"^3.12.1","@types/mocha":"^5.2.6","@types/node":"^9.6.48","js-yaml":"^3.13.1","mocha":"^6.1.4","mocha-typescript":"^1.1.17","nyc":"^14.1.0","source-map-support":"^0.5.12","ts-node":"^5.0.1","tslint":"^5.16.0","typescript":"^2.9.2"},"gitHead":"f584dc7d18de5da24b32ce84d344679b33e3d0a1","bugs":{"url":"https://github.com/Akirix/convict-model/issues"},"homepage":"https://github.com/Akirix/convict-model#readme","_id":"@akirix/convict-model@0.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"kferrone","email":"kellyferrone@gmail.com"},"dist":{"integrity":"sha512-YT7oEmeFHgmBmwWQYop2nFC5hFj8Htikn+1S8iPEYeW+E3U3z3gd28DXcGVHzeh+AP7S/GX/btg/BJBuVWBzLw==","shasum":"11b79a514fd98b49e63f4ce3c0fde6ee1a0c7cd8","tarball":"https://registry.npmjs.org/@akirix/convict-model/-/convict-model-0.0.2.tgz","fileCount":2,"unpackedSize":5822,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3cUrCRA9TVsSAnZWagAAR38QAKUOAGBC0i4Q5Fh9MxnF\nBy4FTT+YzkYDte6A4uc448JJUW+7tyIB31PTOQVHKLhpI+JKMwBPwJifFJC7\nghDJnrnHFwl/2ThmMWICIg35bjYs9OWtdqO018v12UW6BittLqBlcGZjZLh1\nEnL9yAtz/iL0ORDL23+dBqXxNQQiy4tU8RidO5hQucHBbOPvGU4JE5ZiADGl\n32gdq7ry3f06yGaTPmMsN38oI4r3XdlQQjFolzJCb8ns+FYYNf0CLnC4jiUM\n46EYLW09u9c5B2h8zHkhgQuNteUCOXnQ5YlzZtGNJkUu7DAJVH/247NjeouU\n0GxetMg7d6gnH45DJ3uBlWXB4+9qljkObpBQLc0f9e6CaWqSBG0VWrvK7lNj\nNeNeSTU83hLigekWIckPfZ/05C9ht+2cvRdlpGJ8A/XdC4/LsrYupy1o0hEh\nli2PG2VlocFp4K77r1LWE8/zwHGGnltKIEDcsTriJtBKaGoCIQ5gPKHUUGA9\npCtmZR0vHgI+zjKO5/6/SWpVCmXH5hzvvI2g8033mkwqj4M639zw+RdSXKt0\n8eLcqC1FLDMOPzz4HZy+S20+vHmYoBIwRvPgPua9vCNjyTSmGeE4whLbvG78\njRv3gX3WhK3yydO0AUbK5V9LUJvzCtanrc2pt/7MF9RkzOkoJz1kub04w4l8\n4Xbb\r\n=C425\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAfKQOC/Gh+ctgjSaq01Sgk5R3Ids+7HXByrSEMUltAtAiB1xBA6VGyBZbD2mS2K2ocubuxJvRza8NfTLeci3v+OqQ=="}]},"maintainers":[{"name":"kferrone","email":"kellyferrone@gmail.com"},{"name":"aolvictim","email":"roland@akirix.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/convict-model_0.0.2_1558037803299_0.8149218735414265"},"_hasShrinkwrap":false},"0.0.3":{"name":"@akirix/convict-model","version":"0.0.3","description":"Model style decorators for your convict config.","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Akirix/convict-model.git"},"engine":{"node":"^10.11.0"},"scripts":{"test":"NODE_PATH=src/ TS_NODE_FILES=true nyc mocha --opts mocha.opts","lint":"tslint -p tsconfig.json -c tslint.json -t verbose","build":"NODE_PATH=src/ TS_NODE_FILES=true tsc","build:prod":"NODE_PATH=src/ TS_NODE_FILES=true tsc -p tsconfig.prod.json"},"author":{"name":"Kelly Ferrone"},"license":"ISC","peerDependencies":{"convict":"^5.0.0","reflect-metadata":"^0.1.13"},"dependencies":{"convict":"^5.0.0","reflect-metadata":"^0.1.13"},"devDependencies":{"@types/convict":"^4.2.1","@types/js-yaml":"^3.12.1","@types/mocha":"^5.2.6","@types/node":"^9.6.48","js-yaml":"^3.13.1","mocha":"^6.1.4","mocha-typescript":"^1.1.17","nyc":"^14.1.0","source-map-support":"^0.5.12","ts-node":"^5.0.1","tslint":"^5.16.0","typescript":"^2.9.2"},"gitHead":"9c05ebc55a86014af72ed149b3c3ad8c4edc1a61","bugs":{"url":"https://github.com/Akirix/convict-model/issues"},"homepage":"https://github.com/Akirix/convict-model#readme","_id":"@akirix/convict-model@0.0.3","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"kferrone","email":"kellyferrone@gmail.com"},"dist":{"integrity":"sha512-djt76irFoSkkicDd73J4kdORvIG2pH2kiLo+E8/6oqtVFWCospA1gISao2U7jLDXsybrkVUhgwWwDUHTUwefLQ==","shasum":"8112b65ba71c362a9db130c04b03e6a36e216415","tarball":"https://registry.npmjs.org/@akirix/convict-model/-/convict-model-0.0.3.tgz","fileCount":19,"unpackedSize":15446,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3dFFCRA9TVsSAnZWagAAvGIP/3qHquSZNotK59Qbzij6\njcJLPu94rAON9EIpax+HRsIBwJ86ohclTkX8w8YPa58vDPFa8QFaR5HofHHM\nnOyRu1ED7ePbstdzuwc/2jZvSG2HpnlXjNW/pwZaufzz3SW3npsITokKIgx4\nWU5id6ekHaABpocsNmcg0KbukHh/xjywYpuZ91znNV2nIwi6y40HvEs6Mf5q\nVTYsLXPsLvtcg4FW0u31sf2m52UZSXFZ3YSBqqlQC23AgWLoxm+rNFHgkP6O\nLa1SkeVrjXyGqO2zr++NpNRq6irNt0D145998khQVkjSxng9TnCM7SpmQQFU\nKQwPeJQaXnL5OG35XK/bmSUeUTQO4fH7qojWq44XVryj0qQroV6OsZYsjhPH\n0bYe6+zoZ3XMszQ4VMsRKZcgrwLceaXwKFaX0PDToMPntuqQAA/vrglWdLj7\nb4zohFLpKRtT9MkUZB8n9c/dk3iBK+ZPBRGfW1oazxSzDriCMnz4vgysLjhT\n90fRobWtQTyUL+6XubUeSzbRluZkzq2UgEGLPGQ4c3QW9t6esSo9YnYdKTFI\nkHGTA8Uf5s+M8gM/R5hkqfEydsfKMsXZzPi8g9XhhjZM6bGX17IjIS97ZzTv\nsu33KCJG/avmZ4iPm5VUqaItSmXrYI495QVMiHyPtmKFfVUwb0sw2drckifj\nJSSe\r\n=kgSk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcQ49QLV8tCxRc+PzRJ3Skbqew9FctlVDj936EeIBOXAIgcEGukJQ+vHxlih15U2TIYoyDR2yakJowWugH/ps0w+A="}]},"maintainers":[{"name":"aolvictim","email":"roland@akirix.com"},{"name":"kferrone","email":"kellyferrone@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/convict-model_0.0.3_1558040900979_0.009615748603630792"},"_hasShrinkwrap":false},"0.0.4":{"name":"@akirix/convict-model","version":"0.0.4","description":"Model style decorators for your convict config.","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Akirix/convict-model.git"},"engine":{"node":"^10.11.0"},"scripts":{"test":"NODE_PATH=src/ TS_NODE_FILES=true nyc mocha --opts mocha.opts","lint":"tslint -p tsconfig.json -c tslint.json -t verbose","build":"NODE_PATH=src/ TS_NODE_FILES=true tsc","build:prod":"NODE_PATH=src/ TS_NODE_FILES=true tsc -p tsconfig.prod.json"},"author":{"name":"Kelly Ferrone"},"license":"ISC","peerDependencies":{"convict":"^5.0.0","reflect-metadata":"^0.1.13"},"dependencies":{"convict":"^5.0.0","reflect-metadata":"^0.1.13"},"devDependencies":{"@types/convict":"^4.2.1","@types/js-yaml":"^3.12.1","@types/mocha":"^5.2.6","@types/node":"^9.6.48","js-yaml":"^3.13.1","mocha":"^6.1.4","mocha-typescript":"^1.1.17","nyc":"^14.1.0","source-map-support":"^0.5.12","ts-node":"^5.0.1","tslint":"^5.16.0","typescript":"^2.9.2"},"gitHead":"1da37cb3bd86bfaff2934970204147b6d7080229","bugs":{"url":"https://github.com/Akirix/convict-model/issues"},"homepage":"https://github.com/Akirix/convict-model#readme","_id":"@akirix/convict-model@0.0.4","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"kferrone","email":"kellyferrone@gmail.com"},"dist":{"integrity":"sha512-/1PkaFWHmqpQSyP9jSeI3hQTh9vC1wG6ork5869iFl0tLFoCYU1FiP4Pm0kA1870DdhQlKqX0h02clOBInvEyQ==","shasum":"b80254de8dc6eeb707c41afb7b64c83088ebac18","tarball":"https://registry.npmjs.org/@akirix/convict-model/-/convict-model-0.0.4.tgz","fileCount":19,"unpackedSize":15581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3dPICRA9TVsSAnZWagAA1esQAI4PpwCUq8yQunUNrfl6\n8z2juX2N4m38WrxNTqlBeypbXTudbq0xb3CSv1fi3nDvotgWGY9KIPzXu7Yk\nCYN6dvqA9nR7OBKlytSq2Uu7LyRIGWGTIMNOe3HyjWOMBnMzUN/HVd3n7nx2\njDgfr9fnTfA+Fv2iwGP96YuKpVd6KZIeL9ffEZZEsKFW843MsMlz4D98Pyct\njd+k/3WYT/VKTxBwFJLstcOndvTkjJvj68hwDg/rlTCfkyPp828/KKR9bzXO\nA9AUmkv3mH7w4hCRfdzlfzr6tLoZhAIEiLHu1v87Wy0IvQBQepoCBbbPJdeh\n1tFdBprYZgQWQ7Sovzcv/s5G3p5QmwZmWX9QSrOe1iu4zvXvwsIrqLceS1i0\n/DD0NcrHlHa431Oi4MZZOYGjPQ1bfWy2kt9b9ZfEpb15Ha4rfrMyC7xLlAPM\n1weMQ4YK4NLMB7bLshrCCmd/GK538OULlTyBDca8ktIDlrAiPeAQ9d6cLvD7\nrxVpW33e2DpYVwNYx0jufEkvvoMfhAVrT7/aMAAy3ckjkPti0aZe3OnWhbzd\niCD5nPy75GUShM5vEHDxHMong7reY3jBVvwuoLoTMKJoRjYCLD2bL2cqWMP2\nvuoxaR7okV9YK2hLop05b46HBQU4l5ktkUJOnpiTYDsUJN7lhPQad5grSwVe\n2/lb\r\n=tLup\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBteLZ90rqCc8Txc+JLlaisVcTCw96SPToSg2wajjNfcAiALpEY5YtfoglkJf5NxHpNghSdmJstLhedrOh0XODfGIg=="}]},"maintainers":[{"name":"aolvictim","email":"roland@akirix.com"},{"name":"kferrone","email":"kellyferrone@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/convict-model_0.0.4_1558041543618_0.06676491700883669"},"_hasShrinkwrap":false},"0.0.5":{"name":"@akirix/convict-model","version":"0.0.5","description":"Model style decorators for your convict config.","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Akirix/convict-model.git"},"engine":{"node":"^10.11.0"},"scripts":{"test":"NODE_PATH=src/ TS_NODE_FILES=true nyc mocha --opts mocha.opts","lint":"tslint -p tsconfig.json -c tslint.json -t verbose","build":"NODE_PATH=src/ TS_NODE_FILES=true tsc","build:prod":"NODE_PATH=src/ TS_NODE_FILES=true tsc -p tsconfig.prod.json"},"author":{"name":"Kelly Ferrone"},"license":"ISC","peerDependencies":{"convict":"^5.0.0","reflect-metadata":"^0.1.13"},"dependencies":{"convict":"^5.0.0","reflect-metadata":"^0.1.13"},"devDependencies":{"@types/convict":"^4.2.1","@types/js-yaml":"^3.12.1","@types/mocha":"^5.2.6","@types/node":"^9.6.48","js-yaml":"^3.13.1","mocha":"^6.1.4","mocha-typescript":"^1.1.17","nyc":"^14.1.0","source-map-support":"^0.5.12","ts-node":"^5.0.1","tslint":"^5.16.0","typescript":"^2.9.2"},"gitHead":"effa79c4f550cd107f1d333653f8a9b4277b06e6","bugs":{"url":"https://github.com/Akirix/convict-model/issues"},"homepage":"https://github.com/Akirix/convict-model#readme","_id":"@akirix/convict-model@0.0.5","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"kferrone","email":"kellyferrone@gmail.com"},"dist":{"integrity":"sha512-Wq/EARdjHU+Y2kdsY8hhUKhLkTSG9k0buWOS7QjQnVfGQESLEbVwz+nn7y4+Y2/2VCo2CMjZILhwfgGynCVw5w==","shasum":"ae931c2bd9c89dd257de2153f9857d01c21855e6","tarball":"https://registry.npmjs.org/@akirix/convict-model/-/convict-model-0.0.5.tgz","fileCount":19,"unpackedSize":15586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3dV5CRA9TVsSAnZWagAAuI4P/jjvQjUUTPU55vFrHCG/\nDqBNS1wmcM3+HpFxr7bchUPXWaIeyTPwd/DIzhiZkN6i8+YRHH/OgeMVRD7q\nZprhvrmqdobq/fUSZeW0G0wljOz4zUDdjQZajZV/x8cU0IjUsqGGMqJkNVXn\n2yf0OQJo0xA76dZP5caD/gk3dHKtWuTyGt7sLQLGkDnQ9h8mC4KwqtxUNeos\nGAGx/F3GdCwEDv9dgSGarOnqTNiSB3CeaBuLxR3pbbUss5jb8qJtsfvROqRO\neVh3+QbMLCHsJ5DFYnrs9vDO0UxHfiwEv/LxSDUTuHMoH1ZIoq7/0UJWeuNL\no8D3I19GEHsrkgTPUx+j4Q+ninRHgS0y0WqSSATz1rEbRExNxPc3/GYie7hu\n8tVpUzaGIERc96toboQR5kbt9ARhNRA5Mbyk3jat6l4HjBNQvVTTgP1fM6C1\n7cv2DqfTIqilHu2Qfn868D25mkNOAYJhGaXxlbZxbiNL+YJo/n0pfICa/XQK\ndkCc3PBV+1Vuu8EwlJ08TMTSMyou22MXaW7GocJ4emhmv2WN7XcAXjVbghO7\nMumP6WgXtpMsZgjKNriWAUGb5Q5Khwn4PsfaT/YHGeBEZez6BrIByKgm156j\nozCEZYBhT2+4oWKC9rTR802emeB4E1wVeyZ1w5FRUIdAWHe+QXmQDRnDbUOE\n57MB\r\n=OWz2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTAGlpB1wgmFRE37Kg/5nwzPSXs03+rFZTXPApb57jKwIgNShHKoog6oH3LUET/+JO0AHwsj33CcAaKrGorIaOG3M="}]},"maintainers":[{"name":"aolvictim","email":"roland@akirix.com"},{"name":"kferrone","email":"kellyferrone@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/convict-model_0.0.5_1558041977122_0.7121092299678549"},"_hasShrinkwrap":false},"0.1.0":{"name":"@akirix/convict-model","version":"0.1.0","description":"Model style decorators for your convict config.","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Akirix/convict-model.git"},"engine":{"node":"^10.11.0"},"scripts":{"test":"NODE_PATH=src/ TS_NODE_FILES=true nyc mocha --opts mocha.opts","lint":"tslint -p tsconfig.json -c tslint.json -t verbose","build":"NODE_PATH=src/ TS_NODE_FILES=true tsc","build:prod":"NODE_PATH=src/ TS_NODE_FILES=true tsc -p tsconfig.prod.json"},"author":{"name":"Kelly Ferrone"},"license":"ISC","peerDependencies":{"convict":"^5.0.0","reflect-metadata":"^0.1.13"},"dependencies":{"convict":"^5.1.0","reflect-metadata":"^0.1.13"},"devDependencies":{"@types/convict":"^4.2.1","@types/js-yaml":"^3.12.1","@types/mocha":"^5.2.6","@types/node":"^9.6.48","js-yaml":"^3.13.1","mocha":"^6.1.4","mocha-typescript":"^1.1.17","nyc":"^14.1.0","source-map-support":"^0.5.12","ts-node":"^5.0.1","tslint":"^5.16.0","typescript":"^2.9.2"},"gitHead":"ca23a60f7cd0beca9664622ea234ff237d4a4e21","bugs":{"url":"https://github.com/Akirix/convict-model/issues"},"homepage":"https://github.com/Akirix/convict-model#readme","_id":"@akirix/convict-model@0.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"kferrone","email":"kellyferrone@gmail.com"},"dist":{"integrity":"sha512-OnffW2buxsZ5rblQRRV2NgWttEeO8SCylg0aXcwny2uZ5TRghg+mJ1uDjsViDccGp0rIeGB82qJbBpH312o+Vg==","shasum":"6efd974b3703087b05d2888331b9f866364f51a9","tarball":"https://registry.npmjs.org/@akirix/convict-model/-/convict-model-0.1.0.tgz","fileCount":20,"unpackedSize":16838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdeAP0CRA9TVsSAnZWagAA4+wP/i/CTm9rxUL1wVeZl+6G\n+AoOtH9WMayOPUmh6vLpP+DOWA+T+n7//CgZ0Ur6WkqKh+xadhfyzDCUQAcJ\nqxyD7zOFsjyqqAHpM1+HTdyB+gBRmk9fyZ4f9KT08tDtQlu2K9wzHPDWySbP\nj561WT1SgVuuQvGMqf6PzmbxfZKtYYX42BPeWySdeg3iEspcGOcwxkRXBrWX\n5zxMFx9Uy3Pt6udtE23dpXmcjoyINL1OKE9k8AwTrc2anA9TaNj7+dYdSvZ8\nQ6xm78mkSEdFO3BvPUoCdUJj35D5XXtog3U4Wge5qzLNtQHX0+A96aYvFe9G\n8kcHLKJaU6vTASvrrk1uDVmlM92K1ZqAtGKS/lkOw++3mFXh4LkNsJD06n+k\n5B0OWWyKj2S68O9B45Kuu+1R4fnCn1zPLXVRuHUz6h2eYRKsSQhy5vP8wiFb\nT7EqPUKf9QTVNIKEZWzJEdVt6TjNkAf3FgUiGQlBdMe2680GDLCb20Y1KOSm\nyuYMxON6B53y6cs3l89gceyr0tTfBNpglIY/scraYuTpXG7LGZclh07TZaIn\npeuG+Xz/8Gpdvh5Y8uK2CPUO6RK8cxcqN9m147kFL7j2+Xx3bLBWz0WkOz4I\nMgyCkQb9tcZkjRyQi9uqq7dPPkenThITPSMTThoyesWVMxv77+5ux/n2RNu7\n5DZ8\r\n=b/Jb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDb/SPAHsApX4C3fHZsQoeQeaP8M7LcWzBoxhN5vtTgygIhAMVtpKugbnH1gQuIPiad3vr6kSAtiBIhBTGyETEXWCcR"}]},"maintainers":[{"name":"aolvictim","email":"roland@akirix.com"},{"name":"kferrone","email":"kellyferrone@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/convict-model_0.1.0_1568146419692_0.24057020007748542"},"_hasShrinkwrap":false}},"time":{"created":"2019-05-16T20:16:43.092Z","0.0.2":"2019-05-16T20:16:43.440Z","modified":"2022-04-04T12:29:44.005Z","0.0.3":"2019-05-16T21:08:21.122Z","0.0.4":"2019-05-16T21:19:04.473Z","0.0.5":"2019-05-16T21:26:17.245Z","0.1.0":"2019-09-10T20:13:39.768Z"},"maintainers":[{"name":"aolvictim","email":"roland@akirix.com"},{"name":"kferrone","email":"kellyferrone@gmail.com"}],"description":"Model style decorators for your convict config.","homepage":"https://github.com/Akirix/convict-model#readme","repository":{"type":"git","url":"git+https://github.com/Akirix/convict-model.git"},"author":{"name":"Kelly Ferrone"},"bugs":{"url":"https://github.com/Akirix/convict-model/issues"},"license":"ISC","readme":"# Convict Model  \n\n[![Build Status](https://travis-ci.com/Akirix/convict-model.svg?branch=master)](https://travis-ci.com/Akirix/convict-model)\n[![NPM version](http://img.shields.io/npm/v/@akirix/convict-model.svg)](https://www.npmjs.com/package/@akirix/convict-model) \n \n[![GitHub forks](https://img.shields.io/github/forks/akirix/convict-model.svg?style=social&label=Fork)](https://github.com/akirix/convict-model/fork)\n[![GitHub stars](https://img.shields.io/github/stars/akirix/convict-model.svg?style=social&label=Star)](https://github.com/akirix/convict-model)\n\nAnnotate a class to define and validate your configs using [convict](https://www.npmjs.com/package/convict) \njust like you do with an ORM. If you like annotating \nmodels classes, then this package will tickle your fancy. The \ncode style and patterns are based on [Typeorm](https://typeorm.io/#/) because they \nknow what's up. If your using a IOC/DI system, ConvictModel will fit in real nice. \n\n\n## Requirements  \n\n - [NodeJS 8+](https://nodejs.org/en/)\n - [Typescript 3+](https://www.npmjs.com/package/typescript)\n - [Convict 5+](https://www.npmjs.com/package/convict)\n\n### Quick Links\n[Contributing](/CONTRIBUTING.md) | [Changelog](/CHANGELOG.md) | [Convict](https://www.npmjs.com/package/convict) | \n|---|---|---|\n\n## Installation  \n\n1. Install the package\n\n`npm install @akirix/convict-model --save`  \n\n2. Install `reflect-metadata` if you have not already so the annotations work. \n\n`npm install reflect-metadata --save`\n\nthen import it in global scope aka main file, i.e. `app.ts` or `index.ts`\n\n`import \"reflect-metadata\";`\n\n3. Now we install convict and its types so you can control the version\n\n`npm install convict --save`  \n`npm install @types/convict --save-dev`  \n\n4. Make sure annotations are enabled in `tsconfig.json`\n\n```json\n\"emitDecoratorMetadata\": true,\n\"experimentalDecorators\": true,\n```\n\n5. (optional) Install JS Yaml if you like yaml over json for configs. \n\n`npm install js-yaml --save`\n\n## Project Setup  \n\nFirst we need a proper project setup like the one below with a folder to hold our config \nschema classes. This is a very simple Typescript folder structure. \n\n```\nMyProject\n├── src                  // place of your TypeScript code\n│   ├── schema           // place where your config entities will go\n│   │   └── MyConfig.ts  // sample entity\n│   ├── types.d.ts       // place to put your interfaces  \n│   └── index.ts         // start point of your application\n├── .gitignore           // standard gitignore file\n├── config.json          // Your apps config file\n├── package.json         // node module dependencies\n├── README.md            // a readme file\n└── tsconfig.json        // TypeScript compiler options\n```\n\nTake note of the `src/schema` directory, here we will put our config schema classes \nwhich will be annotated with convict schema definitions. This directory can be called whatever \nyou like by the way. Technically you don't even need the folder, it's just a good idea \nto put similar classes together for organization. \n\n## Getting Started  \n\nNow we can start building up a model for our config schema. \n\n### 1. Define an Interface  \n\nIt's a good idea to define an interface so your experience can be agile and include \nall the fancy IDE features. Interfaces also open an opportunity to have more than one \nimplementation of your config, i.e. maybe you use convict competitor or no validation \non config at all. \n\n`src/types.d.ts`\n```typescript\ndeclare namespace config {\n    export interface MyConfig {\n        name: string;\n    }\n}\n```\n\n### 2. Define a Schema Class  \n\nNow we can define a schema class and decorate it like Christmas. The parameter for \n`@Property` decorator is simply a convict `SchemaObj` like in normal convict. You can \nread all about the possible options in [convicts documentation](https://www.npmjs.com/package/convict).\n\n`src/schema/MyConfig.ts`\n```typescript\nimport { Property } from '@akirix/convict-model';\n\nexport default class MyConfig implements config.MyConfig {\n    \n    @Property({\n        doc: 'The name of the thing',\n        default: 'Convict',\n        env: 'MY_CONFIG_NAME'\n    })\n    public name: string;\n\n}\n```\n\n### 3. Make a Configuration  \n\nNow we can make our configuration for our app. This can be a hardcoded Object in \nyour code, a json file, a yaml file, or however you do it. In the end it's up to you \nhow you type out and load the data. \n\n`config.json`\n```json\n{\n    \"name\": \"Cool App\"\n}\n```\n\n### 4. Load it up\n\nWe have a couple of ways to load it up so you can choose what works for your unique \nsituation. The example below is the simplest way in the spirit of TL;DR.\n\n`src/index.ts`\n```typescript\nimport { ConvictModel } from '@akirix/convict-model';\n\n//get your config file however you do it\nconst myRawConfig = getMyConfigData();\n\n//initialize the ConvictModel with a list of paths or entities to load as the schema\nconst convictModel: ConvictModel = new ConvictModel(['src/schema/**/*.*s']);\n\n//get your validated config object as a serialized class\nconst myConfig: config.MyConfig = convictModel.create<config.MyConfig>('MyConfig',myRawConfig);\n\n```","readmeFilename":"README.md"}