{"_id":"@acathur/koa-decorator-ts","_rev":"5-f39a37e11abba8611a1ab338c282161f","name":"@acathur/koa-decorator-ts","dist-tags":{"latest":"2.7.4"},"versions":{"2.7.0":{"author":{"name":"skmdev29","email":"skmdev29@gmail.com"},"bugs":{"url":"https://github.com/skmdev/koa-decorator-ts/issues"},"dependencies":{"@types/koa":"^2.0.49","@types/koa-router":"^7.0.42","babel-jest":"^24.9.0","class-transformer":"^0.2.3","class-transformer-validator":"^0.7.1","class-validator":"^0.10.0","glob":"^7.1.4","jsonschema":"^1.2.4","koa-compose":"^4.1.0","koa-router":"^7.4.0"},"description":"A fork of koa-decorator-ts, provide request method decorators","devDependencies":{"@babel/core":"7.6.0","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/plugin-proposal-decorators":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"7.6.0","@babel/preset-typescript":"7.6.0","@babel/runtime":"^7.6.0","@types/glob":"^7.1.1","@types/jest":"^24.0.18","@types/koa-bodyparser":"^4.3.0","@types/node":"^12.7.5","@types/supertest":"^2.0.8","@typescript-eslint/eslint-plugin":"^2.3.0","@typescript-eslint/parser":"^2.3.0","apollo-server-koa":"^2.9.3","cross-env":"^6.0.0","eslint":"^6.4.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.1","graphql":"^14.5.7","graphql-import":"^0.7.1","graphql-tools":"^4.0.5","husky":"^3.0.5","jest":"^24.9.0","koa":"^2.8.1","koa-bodyparser":"^4.2.1","koa-graphql":"^0.8.0","prettier":"^1.18.2","supertest":"^4.0.2","ts-node":"^8.4.1","typescript":"^3.6.3"},"homepage":"https://github.com/skmdev/koa-decorator-ts#readme","jest":{"collectCoverage":true,"coverageDirectory":"coverage","coverageReporters":["lcov","text"],"moduleFileExtensions":["ts","tsx","js"],"testMatch":["**/__tests__/**/*.js?(x)","**/?(*.)(spec|test).(ts|js)?(x)"],"testURL":"http://localhost/","verbose":true},"license":"ISC","main":"./lib","name":"@acathur/koa-decorator-ts","repository":{"type":"git","url":"git+https://github.com/skmdev/koa-decorator-ts.git"},"husky":{"hooks":{"pre-push":"yarn build && if [[ $(git diff | head -c1 | wc -c) -ne 0 ]]; then printf \"\\e[31;4;1mERROR: \\\"git diff\\\" was not empty, please commit build dir\\e[0m \" && echo \"\" && exit 1; fi && echo \"Build dir commited\""}},"scripts":{"prebuild":"yarn prettier && yarn lint && yarn test","build":"tsc","lint":"eslint {src,test}/**/*.ts","prepublishOnly":"yarn build","prettier":"prettier --write \"{src,test}/**/*.ts{,x}\"","test":"cross-env NODE_ENV=test jest  --no-cache --detectOpenHandles --runInBand"},"version":"2.7.0","gitHead":"5e3c3fc5b1d020840e9807897695412eb9aca8cd","_id":"@acathur/koa-decorator-ts@2.7.0","_nodeVersion":"12.13.0","_npmVersion":"7.0.3","dist":{"integrity":"sha512-KhYWov270gvqd/yQ0dIQSddi98aKnMXbj6q59HDyZEGQRd64wJ2Ym3NOdN7bUTgk/tQObdnO01v62Bu4oIjGzg==","shasum":"47f5a99f6bdea26d788890b3a7043933e2bdb967","tarball":"https://registry.npmjs.org/@acathur/koa-decorator-ts/-/koa-decorator-ts-2.7.0.tgz","fileCount":21,"unpackedSize":31977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf027ICRA9TVsSAnZWagAA7OwQAImQGALAyrVxmlnMIuvu\nZV0prx2daEpU1gwG0KUAhHQ6FwYNVg8DnSVmePmsa9GldbqdZ+FpTbmtMe1h\nfbc0N2yjnzsm6NwAc8vJLIvLBknM6qTJoB31cNZEFm0pOnG1nzGD4kmrXjiW\nswxGX1yhpF3fVpwCLWRdGj21vklQD92zlECVsvV4PlXWm2yqZ/Xcjz0NfIDv\nX1+AFodkuOuRuyd5DIvPGOvZVjeNroS+aH7/oEsl/J1+q1ze5izgXBcc6Ah3\nreqJ0hYY0zai8NcX9FQZPrH0Zy6JSxnKjJ2lU3uDhtUjET8RySMG/Vf/GZAy\nlrrxQqP2K11OIuH9b4cKBRylU7cYgNuyz2nfSBy3jegVTRpmtAeNQjZ15xym\n5T5hZ0CmCwncDz4BuZVtOMMCK2xpMnGoj1h0SsWl+MFt3ZI57H3XT8+ie+Q5\nQfEn0tor07UtGv9Ro9f8tdM9wesUy22+l/gp7CSfT1RpGoJLhYhHP488y6Gw\nnMBswubL3iSUOzWVy728fo6wBE7M1GKyfMulOqQWKCu//VgwobwYrrUEYuWa\nquUn7hDCQDEafaDp0OaEDrPYv1Op1lo2h0/Tv80uG7E4XvG86C+mLEXne2QX\n3mT8wFBaWNfy6dg/PJvK2WA7AwQenhSwVCA48wXEqmOaRzFMcYP3kx0WjKpI\nGR1j\r\n=zth0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEGcRtmMz8SGpYV3yLJHk8D2BT61FE63rrSgH9y8FtakAiBlCDkpEjlrer8xcXNDvq6ad1muiGqhm9rjq+gI+S+0LA=="}]},"_npmUser":{"name":"acathur","email":"chiahungzhang@gmail.com"},"directories":{},"maintainers":[{"name":"acathur","email":"chiahungzhang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa-decorator-ts_2.7.0_1607691976141_0.9276740065015525"},"_hasShrinkwrap":false},"2.7.1":{"author":{"name":"skmdev29","email":"skmdev29@gmail.com"},"bugs":{"url":"https://github.com/skmdev/koa-decorator-ts/issues"},"dependencies":{"@types/koa":"^2.0.49","@types/koa-router":"^7.0.42","babel-jest":"^24.9.0","class-transformer":"^0.2.3","class-transformer-validator":"^0.7.1","class-validator":"^0.10.0","glob":"^7.1.4","jsonschema":"^1.2.4","koa-compose":"^4.1.0","koa-router":"^7.4.0"},"description":"A fork of koa-decorator-ts, provides decorators for all of the standard HTTP methods.","devDependencies":{"@babel/core":"7.6.0","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/plugin-proposal-decorators":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"7.6.0","@babel/preset-typescript":"7.6.0","@babel/runtime":"^7.6.0","@types/glob":"^7.1.1","@types/jest":"^24.0.18","@types/koa-bodyparser":"^4.3.0","@types/node":"^12.7.5","@types/supertest":"^2.0.8","@typescript-eslint/eslint-plugin":"^2.3.0","@typescript-eslint/parser":"^2.3.0","apollo-server-koa":"^2.9.3","cross-env":"^6.0.0","eslint":"^6.4.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.1","graphql":"^14.5.7","graphql-import":"^0.7.1","graphql-tools":"^4.0.5","husky":"^3.0.5","jest":"^24.9.0","koa":"^2.8.1","koa-bodyparser":"^4.2.1","koa-graphql":"^0.8.0","prettier":"^1.18.2","supertest":"^4.0.2","ts-node":"^8.4.1","typescript":"^3.6.3"},"homepage":"https://github.com/skmdev/koa-decorator-ts#readme","jest":{"collectCoverage":true,"coverageDirectory":"coverage","coverageReporters":["lcov","text"],"moduleFileExtensions":["ts","tsx","js"],"testMatch":["**/__tests__/**/*.js?(x)","**/?(*.)(spec|test).(ts|js)?(x)"],"testURL":"http://localhost/","verbose":true},"license":"ISC","main":"./lib","name":"@acathur/koa-decorator-ts","repository":{"type":"git","url":"git+https://github.com/skmdev/koa-decorator-ts.git"},"husky":{"hooks":{"pre-push":"yarn build && if [[ $(git diff | head -c1 | wc -c) -ne 0 ]]; then printf \"\\e[31;4;1mERROR: \\\"git diff\\\" was not empty, please commit build dir\\e[0m \" && echo \"\" && exit 1; fi && echo \"Build dir commited\""}},"scripts":{"prebuild":"yarn prettier && yarn lint && yarn test","build":"tsc","lint":"eslint {src,test}/**/*.ts","prepublishOnly":"yarn build","prettier":"prettier --write \"{src,test}/**/*.ts{,x}\"","test":"cross-env NODE_ENV=test jest  --no-cache --detectOpenHandles --runInBand"},"version":"2.7.1","gitHead":"5e3c3fc5b1d020840e9807897695412eb9aca8cd","_id":"@acathur/koa-decorator-ts@2.7.1","_nodeVersion":"12.13.0","_npmVersion":"7.0.3","dist":{"integrity":"sha512-eqQG7xa878MbU5MfuhYaPanI15xjeo/kBZYza7zHjVnS+K2t/SxWhg55wdzIichJn6ZkQMWB1NzDHl5/WFM1Bg==","shasum":"3c0901e0c845c74542e3dcd776a13024cd0541f3","tarball":"https://registry.npmjs.org/@acathur/koa-decorator-ts/-/koa-decorator-ts-2.7.1.tgz","fileCount":21,"unpackedSize":32309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf03A/CRA9TVsSAnZWagAAyU0P/i8wXm3Nw8TKZQDQGMYY\n0tkV9KaemSqqJj7QChWoVdByRn3C7tLJdl2/q01WQ+nkn8DP9Zz811X+ZGut\nTkYqxL0xn44Ax1tmaSHf9VjAAThULYekUPHnAmubfZbTetUvKvSv3wCqwnTl\nPvMFzg/mVv8iBgTX2Eez3QZi1OS8VX1Tb2CDKH1BdMqx/jSNX5YXo9qLfeFz\n6chqXZZiLqZAaikiln0Z3AqadVnNXzxqMxxP0KaafisgOd93JP1JHdcXv+xc\nTp9qzSwcGxH0O8G+5vAnkfm7uNmOMVMJsF8JMrZF3aJ9ULIYEJqirL4uuqBl\nRlWdRnvhvGaI5LVMaafixNqojasQ6ACPj3M4OZ5xZFUm+jXWsj+XEmronIlI\nxzIsmQ0m70/LRVxCYLHOBFbTZex1Ybqd2pF56tBHvOxAZN9y6mEMi3zGCDBl\nE7CpD6D6g3O5RSHHmqNaSmk0awPTdn9IiCdFuQITrMOaFMNeScQiBO6ocIvn\n30cmPFkucBhxjkiRq16IbT/veUrZFBYI7G7KiQKuaAjHJ9/vwXyFaXSO5QjZ\nJ3bbsdQQXokum2/a8IW1pxEnVupeENqar12K60rYpMZ9SsuTKOlpVNwC2r3q\nsmDa6XGd4nCUjJzSer8RoT/PA3YLg7HgKSb9TD8DjDgIHPrwWFDEMWYwdzbu\nDpwY\r\n=1OzE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCADoas1dYnQ+0nqlTy20FCBmKbiNRMXp9DOaiWh2nkjwIgWhdrVWmoI2p6f4HIWHO/zazUujIeVEoMid/N9oFNtuk="}]},"_npmUser":{"name":"acathur","email":"chiahungzhang@gmail.com"},"directories":{},"maintainers":[{"name":"acathur","email":"chiahungzhang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa-decorator-ts_2.7.1_1607692351329_0.9700100168489723"},"_hasShrinkwrap":false},"2.7.2":{"author":{"name":"skmdev29","email":"skmdev29@gmail.com"},"bugs":{"url":"https://github.com/skmdev/koa-decorator-ts/issues"},"dependencies":{"@types/koa":"^2.0.49","@types/koa-router":"^7.0.42","babel-jest":"^24.9.0","class-transformer":"^0.2.3","class-transformer-validator":"^0.7.1","class-validator":"^0.10.0","glob":"^7.1.4","jsonschema":"^1.2.4","koa-compose":"^4.1.0","koa-router":"^8.0.8"},"description":"A fork of koa-decorator-ts, provides decorators for all of the standard HTTP methods.","devDependencies":{"@babel/core":"7.6.0","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/plugin-proposal-decorators":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"7.6.0","@babel/preset-typescript":"7.6.0","@babel/runtime":"^7.6.0","@types/glob":"^7.1.1","@types/jest":"^24.0.18","@types/koa-bodyparser":"^4.3.0","@types/node":"^12.7.5","@types/supertest":"^2.0.8","@typescript-eslint/eslint-plugin":"^2.3.0","@typescript-eslint/parser":"^2.3.0","apollo-server-koa":"^2.9.3","cross-env":"^6.0.0","eslint":"^6.4.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.1","graphql":"^14.5.7","graphql-import":"^0.7.1","graphql-tools":"^4.0.5","husky":"^3.0.5","jest":"^24.9.0","koa":"^2.8.1","koa-bodyparser":"^4.2.1","koa-graphql":"^0.8.0","prettier":"^1.18.2","supertest":"^4.0.2","ts-node":"^8.4.1","typescript":"^3.6.3"},"homepage":"https://github.com/skmdev/koa-decorator-ts#readme","jest":{"collectCoverage":true,"coverageDirectory":"coverage","coverageReporters":["lcov","text"],"moduleFileExtensions":["ts","tsx","js"],"testMatch":["**/__tests__/**/*.js?(x)","**/?(*.)(spec|test).(ts|js)?(x)"],"testURL":"http://localhost/","verbose":true},"license":"ISC","main":"./lib","name":"@acathur/koa-decorator-ts","repository":{"type":"git","url":"git+https://github.com/skmdev/koa-decorator-ts.git"},"husky":{"hooks":{"pre-push":"yarn build && if [[ $(git diff | head -c1 | wc -c) -ne 0 ]]; then printf \"\\e[31;4;1mERROR: \\\"git diff\\\" was not empty, please commit build dir\\e[0m \" && echo \"\" && exit 1; fi && echo \"Build dir commited\""}},"scripts":{"prebuild":"yarn prettier && yarn lint && yarn test","build":"tsc","lint":"eslint {src,test}/**/*.ts","prepublishOnly":"yarn build","prettier":"prettier --write \"{src,test}/**/*.ts{,x}\"","test":"cross-env NODE_ENV=test jest  --no-cache --detectOpenHandles --runInBand"},"version":"2.7.2","gitHead":"854c06f5d4a16b118f10f81bd5c6e50fd7d18850","_id":"@acathur/koa-decorator-ts@2.7.2","_nodeVersion":"12.13.0","_npmVersion":"7.0.3","dist":{"integrity":"sha512-ijJuA8D7dQhC/YSYmN9PT0BZK5b9fxnTKvlO+7OtR6DqOoZ01f3i0dXwTHIargtq20Tp2qIIjsctErDxWQgBTQ==","shasum":"d8ab4244f24c83aabc5261ffce375c6f7b4633fd","tarball":"https://registry.npmjs.org/@acathur/koa-decorator-ts/-/koa-decorator-ts-2.7.2.tgz","fileCount":21,"unpackedSize":32475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1w4nCRA9TVsSAnZWagAAJZEP/jUwopLgdmo0oNRl6/6X\nfgx9amKevJAC61UfXyUb2kO1IJ0KhYrTRQ9MgNqw50q6kmvuUT4QQlBZY/CI\nWVjys3agjPXoI/e9dlOmosGkTqfUwiY/lUlKHGOSBxjZ5IfriBMZZy4ie4L8\nR4pmNyO7893/s7ollRQPYxrX6b4o29rcS7OFCtWNVTPPkU7mCTnhrinC7Rxi\nCVkAmpjc7z4bux0zYcNQ9bgdIzfc+C8nFumwLYAYe2A4wltHPWMPkwAtIaEl\nonphgUCyjHcgdQHrXrFjAjpGzd0QvmsrJMzOnV0+UiNKsdLzDWUUFQjISpMT\nXnO22hGpkSgrjbpthFuIsEcN/KnaNdHovvUd99GetUrm8wpclWUl5ZYk/XDa\nWu09uoSsaXkWMdV/MLoKdnVLN+qxYT9WZ/mdQxpqaNAfTLpDJVKy0ItMh2DL\ndbv0FNIBab112Ci5bGB70I4DxRdZ8SnM7WKcqYxCDpOeUdgQIAMoG/SHyZL0\na3AwL5WbwdTSDN/TtyFrrE7xawcoOcIellpU/PhxQRIzYef8PNPelu9Yr/SG\nk4DOdXE/Ptn9cF/RMIZzYqGahziGp3tpvvHqyV6WvgrffGNvZRCBXDwcjiDw\nEwn+tHQeD3rE013rAXPRnhhl7tY2DGdY12XnLGHSWaGC6Xncxl0uImwB/3FW\n8RZN\r\n=JitT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDuBWP7keca558dmJ2Wo4cErcdhBkwUPsQ2yI+AGIalWAiAIPhaDhKAO7954XBajTveY03l/ZcW5H/ExfTN56XS3mg=="}]},"_npmUser":{"name":"acathur","email":"chiahungzhang@gmail.com"},"directories":{},"maintainers":[{"name":"acathur","email":"chiahungzhang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa-decorator-ts_2.7.2_1607929383242_0.8203021197328269"},"_hasShrinkwrap":false},"2.7.3":{"author":{"name":"skmdev29","email":"skmdev29@gmail.com"},"bugs":{"url":"https://github.com/skmdev/koa-decorator-ts/issues"},"dependencies":{"@types/koa":"^2.0.49","@types/koa-router":"^7.0.42","babel-jest":"^24.9.0","class-transformer":"^0.2.3","class-transformer-validator":"^0.7.1","class-validator":"^0.10.0","glob":"^7.1.4","jsonschema":"^1.2.4","koa-compose":"^4.1.0","koa-router":"^8.0.8"},"description":"A fork of koa-decorator-ts, provides decorators for all of the standard HTTP methods.","devDependencies":{"@babel/core":"7.6.0","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/plugin-proposal-decorators":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"7.6.0","@babel/preset-typescript":"7.6.0","@babel/runtime":"^7.6.0","@types/glob":"^7.1.1","@types/jest":"^24.0.18","@types/koa-bodyparser":"^4.3.0","@types/node":"^12.7.5","@types/supertest":"^2.0.8","@typescript-eslint/eslint-plugin":"^2.3.0","@typescript-eslint/parser":"^2.3.0","apollo-server-koa":"^2.9.3","cross-env":"^6.0.0","eslint":"^6.4.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.1","graphql":"^14.5.7","graphql-import":"^0.7.1","graphql-tools":"^4.0.5","husky":"^3.0.5","jest":"^24.9.0","koa":"^2.8.1","koa-bodyparser":"^4.2.1","koa-graphql":"^0.8.0","prettier":"^1.18.2","supertest":"^4.0.2","ts-node":"^8.4.1","typescript":"^3.6.3"},"homepage":"https://github.com/skmdev/koa-decorator-ts#readme","jest":{"collectCoverage":true,"coverageDirectory":"coverage","coverageReporters":["lcov","text"],"moduleFileExtensions":["ts","tsx","js"],"testMatch":["**/__tests__/**/*.js?(x)","**/?(*.)(spec|test).(ts|js)?(x)"],"testURL":"http://localhost/","verbose":true},"license":"ISC","main":"./lib","name":"@acathur/koa-decorator-ts","repository":{"type":"git","url":"git+https://github.com/skmdev/koa-decorator-ts.git"},"husky":{"hooks":{"pre-push":"yarn build && if [[ $(git diff | head -c1 | wc -c) -ne 0 ]]; then printf \"\\e[31;4;1mERROR: \\\"git diff\\\" was not empty, please commit build dir\\e[0m \" && echo \"\" && exit 1; fi && echo \"Build dir commited\""}},"scripts":{"prebuild":"yarn prettier && yarn lint && yarn test","build":"tsc","lint":"eslint {src,test}/**/*.ts","prepublishOnly":"yarn build","prettier":"prettier --write \"{src,test}/**/*.ts{,x}\"","test":"cross-env NODE_ENV=test jest  --no-cache --detectOpenHandles --runInBand"},"version":"2.7.3","gitHead":"854c06f5d4a16b118f10f81bd5c6e50fd7d18850","_id":"@acathur/koa-decorator-ts@2.7.3","_nodeVersion":"12.13.0","_npmVersion":"7.0.3","dist":{"integrity":"sha512-oun8Mcr98AN7kajR+l32WFtamQ3ky9irpwnf0uJO+7Vz37j2OozKD7c60Noh68cYCrsRxQlmrj7AHW7B/C8kJA==","shasum":"108adee09ba644e38f26493d997ba1d52ed97915","tarball":"https://registry.npmjs.org/@acathur/koa-decorator-ts/-/koa-decorator-ts-2.7.3.tgz","fileCount":21,"unpackedSize":33233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1y0ECRA9TVsSAnZWagAAWAkP/23+W7piUsBPQGIwuCAp\n0KiYi3/07mTPHf+SA7VIGQ0yUwUOGAOl9Y5EIvcSHOetRygwa59jq6Z4YiZC\nd3lNh1QK+4BZcqMne81JV/cROfe1vmx6sdS+9W0+9FL9jtgd25JBPbPDIdhx\nIikEZUx4Aiue9ihEFLpOhSNkPzEKXs1QQbw0t6dKGfQwALiX47Buch7N54PN\nqtjcNC8UT1DBsJFcPwSZ02H0aS0/s1++qslRIh1IGBDLliCeJSUg8tR2/rcZ\nRAebwBU1ntnhhIQVLZzXBkI7njcNKVEvUA5dLEbLSsgiz63fjCKbpif7Mm5/\nSy8WZ8Z9Y/ng6FeuTC2/Dh9fabIIVf4LHOcHbV/PmsaBqFIKblrnbDuQrcgK\nlAAW1ZkdszZy/SOGr4Zyhk7wEEAh4ovqu4vYg0Ltv7HpRvjgcVUoeZ9KCaY1\nRFslCwZWF7Z6wZZH3ID9Gy5YYn/rXQWcm4xwSDNPq8ZgwbcaD6CyN48m0Mm0\n8mfZz1D2sVGoD8pI3itxQwzVI0N6EbuHWBtENpaU8akTeBSQeTZq9HVlxMws\nK95WDtslGAYz3NY0ibgPIWAyJ+DJn4TQrDQi7iwXUh8c7e9BUkJROeswC/cz\naOl2KVrnaEiQQUSxbNGapUQG12mWpARs3cf9TqfbJgAMTojkVcRKU5cELEdU\nLlm1\r\n=yGmE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCq6HT2rXr0OPoIvOLtwgP//p5rGENrfw70FVhiNbAmxQIhALgFSqRuIv6vYhHraD4HQV+488Nk5Fm5NFqBPkPPWYEU"}]},"_npmUser":{"name":"acathur","email":"chiahungzhang@gmail.com"},"directories":{},"maintainers":[{"name":"acathur","email":"chiahungzhang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa-decorator-ts_2.7.3_1607937283481_0.5746649025475057"},"_hasShrinkwrap":false},"2.7.4":{"author":{"name":"skmdev29","email":"skmdev29@gmail.com"},"bugs":{"url":"https://github.com/skmdev/koa-decorator-ts/issues"},"dependencies":{"class-transformer":"^0.2.3","class-transformer-validator":"^0.7.1","class-validator":"^0.10.0","glob":"^7.1.4","jsonschema":"^1.2.4","koa-compose":"^4.1.0","koa-router":"^8.0.8"},"description":"A fork of koa-decorator-ts, provides decorators for all of the standard HTTP methods.","devDependencies":{"@babel/core":"7.6.0","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/plugin-proposal-decorators":"^7.6.0","@babel/plugin-syntax-dynamic-import":"^7.2.0","@babel/plugin-transform-runtime":"^7.6.0","@babel/preset-env":"7.6.0","@babel/preset-typescript":"7.6.0","@babel/runtime":"^7.6.0","@types/glob":"^7.1.1","@types/jest":"^24.0.18","@types/koa":"^2.0.49","@types/koa-bodyparser":"^4.3.0","@types/koa-router":"^7.0.42","@types/node":"^12.7.5","@types/supertest":"^2.0.8","@typescript-eslint/eslint-plugin":"^2.3.0","@typescript-eslint/parser":"^2.3.0","babel-jest":"^24.9.0","apollo-server-koa":"^2.9.3","cross-env":"^6.0.0","eslint":"^6.4.0","eslint-config-prettier":"^6.3.0","eslint-plugin-prettier":"^3.1.1","graphql":"^14.5.7","graphql-import":"^0.7.1","graphql-tools":"^4.0.5","husky":"^3.0.5","jest":"^24.9.0","koa":"^2.8.1","koa-bodyparser":"^4.2.1","koa-graphql":"^0.8.0","prettier":"^1.18.2","supertest":"^4.0.2","ts-node":"^8.4.1","typescript":"^3.6.3"},"homepage":"https://github.com/skmdev/koa-decorator-ts#readme","jest":{"collectCoverage":true,"coverageDirectory":"coverage","coverageReporters":["lcov","text"],"moduleFileExtensions":["ts","tsx","js"],"testMatch":["**/__tests__/**/*.js?(x)","**/?(*.)(spec|test).(ts|js)?(x)"],"testURL":"http://localhost/","verbose":true},"license":"ISC","main":"./lib","name":"@acathur/koa-decorator-ts","repository":{"type":"git","url":"git+https://github.com/skmdev/koa-decorator-ts.git"},"husky":{"hooks":{"pre-push":"yarn build && if [[ $(git diff | head -c1 | wc -c) -ne 0 ]]; then printf \"\\e[31;4;1mERROR: \\\"git diff\\\" was not empty, please commit build dir\\e[0m \" && echo \"\" && exit 1; fi && echo \"Build dir commited\""}},"scripts":{"prebuild":"yarn prettier && yarn lint && yarn test","build":"tsc","lint":"eslint {src,test}/**/*.ts","prepublishOnly":"yarn build","prettier":"prettier --write \"{src,test}/**/*.ts{,x}\"","test":"cross-env NODE_ENV=test jest  --no-cache --detectOpenHandles --runInBand"},"version":"2.7.4","gitHead":"854c06f5d4a16b118f10f81bd5c6e50fd7d18850","_id":"@acathur/koa-decorator-ts@2.7.4","_nodeVersion":"12.13.0","_npmVersion":"7.0.3","dist":{"integrity":"sha512-BZoELmH+3Nk/qxTgXaJ6zaXy/DR4UnIiESpHdFJLLwqHgFMO2D6Eb151nlAzZe9p9R4P7jvEZEerFU7cFUoVLw==","shasum":"088d32389a1cc69be9dd7656d1d281a7f79b84e6","tarball":"https://registry.npmjs.org/@acathur/koa-decorator-ts/-/koa-decorator-ts-2.7.4.tgz","fileCount":21,"unpackedSize":33233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPfzCCRA9TVsSAnZWagAAF2IQAIOZndRGBZvbG6leP+ue\nbH1zew9vl/IMyxv9UTAvhF8pZ3aFXKQ0PtYc+CV1fIWEO6+vSbtqAF4sgDcE\n5uSUV1BRtw8u6mG4R+IOo1j5Fsp4kc6knLS+07cCskpDpEE871GTxNZt/vaq\nloj795RjQ05clwq3G82/pUFWRopWiV1EGlSkMDMhc8mdZQ+7iUYwUUIQVswL\n+ZA6SYi0/AKwa8dOxibx4ZJZ9GKLrezmytWbKVLWCMlq4ty7ZIzMUQm4FWvV\nFGKAgGPZ9Wl6hxjdQrfwrFzFpElLCSxj44WUhYd5+H1XdQiOYhDgcOqPQLk2\nhZxxFIqe1OMLDSMrE86tXaN12BEf3Sw3HMzlPL/7PDg+6aAmNNlqMiK3Vup6\nXq9fgX+8KNJvsoeSa1hYh94FEAWxRL3bCmSYT0lD+fOTikD2spbNtaOv9Owm\nl4zznPncSn7LznryzT/BTe9ji/o9IDdNo3HrCT6NloPEpPY/dxS3Q4yH9gb7\nMYwaUnH+QYMi7aKsosVb+zvmjrygn9gls6zT3Kygb5AtRFElFD613Wv9Iw8J\nnnk9xmg63oYiDZbQ8rwjMPeQePsyiC7laVoWG/ddOoau0dxT15YnPPetQNph\ne1p0O2b6/6Uhiz3TIe4uTIE2sxGLixJQOfJbGVzRl5vD6908xLoqW2MDQt2v\nXYnj\r\n=Etot\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB32386jIZzX+HIPvPhn19s6nVD87MfAftFUwIDQfOb6AiAFSXfHnHriEHMSZMDdN8/+dnSbjllqVV/i+a8EpCi8nA=="}]},"_npmUser":{"name":"acathur","email":"chiahungzhang@gmail.com"},"directories":{},"maintainers":[{"name":"acathur","email":"chiahungzhang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa-decorator-ts_2.7.4_1614675138213_0.9192916685466823"},"_hasShrinkwrap":false}},"time":{"created":"2020-12-11T13:06:16.090Z","2.7.0":"2020-12-11T13:06:16.348Z","modified":"2022-04-04T11:06:23.080Z","2.7.1":"2020-12-11T13:12:31.491Z","2.7.2":"2020-12-14T07:03:03.427Z","2.7.3":"2020-12-14T09:14:43.766Z","2.7.4":"2021-03-02T08:52:18.364Z"},"maintainers":[{"name":"acathur","email":"chiahungzhang@gmail.com"}],"description":"A fork of koa-decorator-ts, provides decorators for all of the standard HTTP methods.","homepage":"https://github.com/skmdev/koa-decorator-ts#readme","repository":{"type":"git","url":"git+https://github.com/skmdev/koa-decorator-ts.git"},"author":{"name":"skmdev29","email":"skmdev29@gmail.com"},"bugs":{"url":"https://github.com/skmdev/koa-decorator-ts/issues"},"license":"ISC","readme":"# koa-decorator-ts\n\nThis module is a fork of [koa-decorator-ts](https://www.npmjs.com/package/koa-decorator-ts), provides decorators for all of the standard HTTP methods: `@Get()`, `@Post()`, `@Put()`, `@Delete()`, `@Patch()`, `@Options()`, and `@Head()`. In addition, `@All()` defines an endpoint that handles all of them.\n\nKoa Decorator (with TypeScript)\n\n# Installation\n\n```\nnpm i koa-decorator-ts --save\n/* or */\nyarn add koa-decorator-ts\n```\n\n# Introduction\n\nThis package is a decorator for koa, including the koa-router, graohql.\nYou can use decorators to define the path of routing or create a graphql resolver using existing koa controller\n\n# Usage\n\n> app.js\n\n```javascript\nimport Koa from 'koa';\n// 1. Import Router\nimport Router from 'koa-decorator-ts/router';\n\nconst app = new Koa();\n// 2. Create router\nconst router = new Router({\n  dir: `${__dirname}/controllers` // The controllers directory\n});\n\n// [Optional] Graphql inital\nconst graphqlServer = new ApolloServer({ schema });\ngraphqlServer.applyMiddleware({ app });\n\n// 3. Register the routers\napp.use(router.routes());\napp.use(router.allowedMethods());\n\n...\n\napp.listen(8080);\n```\n\n> /controllers/user.ts\n\n```javascript\nimport Koa from 'koa';\nimport {\n  Controller,\n  Route,\n  All,\n  Post,\n  Get,\n  Patch,\n  Put,\n  Delete,\n  Middleware,\n  Required,\n  Graphql,\n  Priority,\n  Meta,\n} from 'koa-decorator-ts';\nimport { IsString } from 'class-validator';\n\nasync function middlewareLog(ctx: Koa.Context, next: Function) {\n  await next();\n}\n\n//use a class with decorators (class-validator) for validation\nclass PatchUserRequest{\n  @IsString()\n  userNickName!:string\n  @IsString()\n  userAddress!:string\n}\n\n// Prefix of api path\n@Controller('/user')\nclass UserController {\n  @Priority(-1000)\n  @All('*')\n  async handleAll(ctx: Koa.Context, next: any) {\n    ctx.body = 'haha';\n  }\n\n  // Post /user/login\n  @Post('/login')\n  @Required({\n    // Require { userEmail, password } in the body\n    body: {\n      type: 'object',\n      properties: {\n        userEmail: {\n          type: 'string',\n        },\n        password: {\n          type: 'string',\n        },\n      },\n      required: ['userEmail', 'password'],\n    },\n  })\n  async login(ctx: Koa.Context) {\n    ctx.body = true;\n  }\n\n  // Get /user/:userId\n  @Get('/:userId')\n  @Middleware(middlewareLog) // Add Middleware\n  async getUserInfo(ctx: Koa.Context) {\n    ctx.body = { userName: 'skm', userEmail: 'skmdev@gmail.com' };\n  }\n\n  // Get /user?top=10&star=1000000\n  @Get('/')\n  @Required({\n    query: {\n      type: 'object',\n      properties: {\n        top: { type: 'string' },\n        star: { type: 'string' },\n      },\n      required: ['top', 'star'],\n    },\n  }) // Require for \"top\", \"star\" in the query\n  @Middleware(middlewareLog)\n  async getUsers(ctx: Koa.Context) {\n    ctx.body = { userName: 'skm', userEmail: 'skmdev@gmail.com' };\n  }\n\n  // Patch /user/:userId\n  @Patch('/:userId')\n  @RequiredBody(PatchUserRequest) //do the same for query using @RequiredQuery\n  async updateUserInfo(ctx: Koa.Context) {\n    ctx.body = true;\n  }\n\n  // Put /user/:userId/follow\n  @Put('/:userId/follow')\n  async followUser(ctx: Koa.Context) {\n    ctx.body = true;\n  }\n\n  // Delete /user/:userId/follow\n  @Delete('/:userId/follow')\n  async unfollowUser(ctx: Koa.Context) {\n    ctx.body = true;\n  }\n\n  @Meta({ test: 'cc' })\n  @Get('/meta')\n  async metaTest(ctx: Koa.Context) {\n    ctx.body = ctx.meta;\n  }\n\n  @Graphql\n  @Middleware(middlewareLog)\n  static async getUser(ctx: Koa.Context) {\n    const { args } = ctx.graphql!;\n\n    const users = [\n      { username: 'skmdev', role: 'admin', userEmail: 'skmdev29@gmail.com' },\n      { username: 'foo', role: 'user', userEmail: 'bar' },\n    ];\n\n    ctx.body = users.find((user) => user.username === args.username);\n  }\n\n  @Graphql // transfrom to graphql resolver\n  @Middleware(middlewareLog)\n  static async getUsersGraph(ctx: Koa.Context) {\n    /**\n     * const { root, args, info } = ctx.graphql;\n     *\n     * root is representing rootObject\n     *\n     * args is representing the arguments of request\n     *\n     * info is representing the graphql info\n     *\n     */\n    const { args } = ctx.graphql!;\n\n    const users = [\n      { username: 'skmdev', role: 'admin', userEmail: 'skmdev29@gmail.com' },\n      { username: 'foo', role: 'user', userEmail: 'bar' },\n    ];\n\n    // ctx.body is response data;\n    ctx.body = users.filter((user) => user.role === args.role);\n  }\n}\n\nexport default UserController;\n\n\n\n```\n","readmeFilename":"README.md"}