{"_id":"ts-deco","_rev":"30-6d56aeac20e161d6faabfb57f2814573","name":"ts-deco","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.3":{"name":"ts-deco","version":"1.0.3","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.3","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"09ae4c82cec945c4df46be6083a502298a6c926a","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.3.tgz","fileCount":54,"integrity":"sha512-t34VhVdXXdWdi8STvSM/nURwFb8nWNib4S8dOer8nzGRUafhtk10aAZ9o2Hs8wqkihsxywf5syR5VXnVfdPUEg==","signatures":[{"sig":"MEYCIQD+aqXSgTAYP8a/5xe2FSHeTU3hDPsbeItGc7sbXZyY0AIhALd5+eUbSAf8YzUVdOp2m0v7cGkIo9BbyG9+y2qbVDn5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62740},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0b3407e5d36e7415e41f3dfb3473958fae3513da","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","class-transformer":"^0.5.0"},"peerDependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","class-transformer":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.3_1768529745883_0.12042380960649202","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"ts-deco","version":"1.0.4","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.4","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"b4acc56f7a395d55d081d2f39804c4b84788cb73","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.4.tgz","fileCount":54,"integrity":"sha512-exstDxxjFTK+at22dttq7vg+1LI7gwg0R2ToQCKp4LIBSHeHePn5ehqghBG4DTwLkqBnhiU8oelQ8itVWmcqWA==","signatures":[{"sig":"MEUCIHF8ocwTLm/xSsB5X/3nd0PeQRaDk+eB+9A//CuL3kxWAiEApRhxYEMSDne9i099lj+diiGZyRJlJTymtbWWAkSECjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59054},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0b3407e5d36e7415e41f3dfb3473958fae3513da","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","class-transformer":"^0.5.0"},"peerDependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","class-transformer":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.4_1768530108952_0.6719930831886451","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"ts-deco","version":"1.0.5","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.5","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"420f4667ccfeac91a41ac59d005610cc51da048d","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.5.tgz","fileCount":54,"integrity":"sha512-REyZKQPbivncyLXOMNEOhl7+AkRm5xIu+egVJxSP1tt6VlM1Vifs21GFUySfG4qXr85I+EUQw+yLqCvSrhRuog==","signatures":[{"sig":"MEUCIQCpRVSH0L5aOPewmOmCbRahUd/q57oppCKYKRnreXxPcAIgRkU1ljTipnsxhqjC0zNG7AYveD+omJzg/PuisOBXy2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58599},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0b3407e5d36e7415e41f3dfb3473958fae3513da","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.5_1768530319110_0.6353404358215993","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"ts-deco","version":"1.0.7","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.7","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"517282354d63cf29bd770625e52ecffc06cb8744","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.7.tgz","fileCount":110,"integrity":"sha512-fXwNz6F+tVSAGg+ULeNr4HSqmlWr7y+FCyPkwWPSVIuBdhn0oco9Pcc8/+N2evqLv/lvObhs8yvMUUGDZ9ne/A==","signatures":[{"sig":"MEYCIQCD5hYGhw3RqkSuNo6leGIHXavYMKvQ7sjMFfvB3jjM7wIhANB8+n8yCbX7vatg36oQXAZkjGGfoPfyaxgoemaJmFet","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":134604},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0b3407e5d36e7415e41f3dfb3473958fae3513da","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.7_1768531346095_0.18448178830688677","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"ts-deco","version":"1.0.9","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.9","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"b376135b0b00a05fa3616a6e5013d91e51ebb4d2","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.9.tgz","fileCount":110,"integrity":"sha512-cGmL1PN9zXDgu/kM1qW89ISqTFBgIspz7AMwjcZyLvGZSeoC8i5ZxhlsJKf79F6oF78/zaGc19/Df73X7/FYag==","signatures":[{"sig":"MEYCIQDQJU7s5ZN+H5u5jpa+KPBlhpvG1PjU8sJlqT8vK00BPwIhANn8mI3vdoMyuXRDmYnGO3DT3uqs7iqYSmacLqAMlUU6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141493},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c9700c7d8504d7091b13a833dd8bd44a103d1280","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.9_1768534235674_0.8405954235869604","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"ts-deco","version":"1.0.10","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.10","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"187d74407a2551528bc29515f728c001f06aafc2","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.10.tgz","fileCount":110,"integrity":"sha512-04ufd9VFuyAv62oCdRdB2UHjxDtxpabci6IEuYU18QrxHWvBYAzTTWvj4NOignJfiKM3DUe6aI2hWvrTlZEu9Q==","signatures":[{"sig":"MEUCIQD0amyjk7IKTri9SS0n46SJnSME+ffqlYYVA0KfcL2iKwIgbxMA5HtuIcASqyGTgN3pSjMb5K6YDrbgN5+iYe+3bVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141810},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c9700c7d8504d7091b13a833dd8bd44a103d1280","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.10_1768538039171_0.23768056299523144","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"ts-deco","version":"1.0.11","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.11","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"7ef9260a97ccc74a128ffff8535545c218abfc64","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.11.tgz","fileCount":58,"integrity":"sha512-wp9IWfa7sHy6lJ8qp0kPSy3V/5HaVV89ucD3nDImF84uSLOv30a+WUOGx2IQ11ChH05yK2zyUVJKZUxVuNUb+Q==","signatures":[{"sig":"MEYCIQD54qYiU/RvQoN0rmfkqp9/pGAMO4sx0E7h4JBDqykaEgIhAPNGKqYMINYfBLlA3qVzci+/tSl9ghqJ4DwulOo/G6+Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90084},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c9700c7d8504d7091b13a833dd8bd44a103d1280","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.11_1768539274455_0.6663738079320085","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"ts-deco","version":"1.0.12","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.12","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"03fbbe4e29bad8483cce783d58da36370d877170","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.12.tgz","fileCount":58,"integrity":"sha512-KSKktf6w+FEyce3i/OMYR5ae3l5etinDx75UOOdmQvM434nNT66BVNN/voAfoNSWwTKV2rl3pbq/wHX+VJKrlg==","signatures":[{"sig":"MEYCIQDOU7exyROsaEJVlhL9pkl+/ugKL2W+rhxNFj8XEoOGKQIhAP82i/J6b/nBapNj3KMmUDJuNpVyaOdkk2BGvyhCzw44","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90092},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"c9700c7d8504d7091b13a833dd8bd44a103d1280","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.12_1768539554138_0.4410900956956392","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"ts-deco","version":"1.0.13","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.13","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"5fc77a1f3e9267d0dd3de0833979e93a69a67e55","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.13.tgz","fileCount":58,"integrity":"sha512-rGCePKWyyQhutoghzbm2jrjdeGRqtjhzYirKqfPdWZUfK6aplzeVrQsDPSGJLnUNtundbzPUoLbygu9YIiC7zA==","signatures":[{"sig":"MEYCIQC90hjm53mVV5k3NVG4e6MDA3YVlGN6XY0Lk4ZDiiaEVQIhAOZyMC3FjlhD3nErlhD1znTM9kU2jNj3X9250OPE/P/d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92897},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"c9700c7d8504d7091b13a833dd8bd44a103d1280","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.13_1768540041562_0.3280688435623391","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"ts-deco","version":"1.0.14","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.14","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"89106a487da4bbf056c3580f4422e1f983fccfdd","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.14.tgz","fileCount":58,"integrity":"sha512-Q3LHQXtgwVz+Sq2fnAc1lpl2JXMyPi3DxR8Iqa23RBLwNDx2WvdlgsX0cB+dxi5iSx9lXtX72SqhGGgqBkUcJQ==","signatures":[{"sig":"MEUCIQCFm8yXt/OBsWaNDqEzGCQ9Dqa2nKmOjGUGanRouxuGCAIgYiKEX5zMPDDeEp8NfbJGhP7ucZDKS5i0+BRM4cVuiz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93936},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"a90eeac4e596076d2a946916504589aabe4c46c0","scripts":{"test":"jest","build":"tsc","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for NestJS","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.14_1768540342234_0.23825446292749541","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"ts-deco","version":"1.0.15","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.15","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"fb261410b9998fb2a0d563728b1b20c11b67e8ce","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.15.tgz","fileCount":66,"integrity":"sha512-3U1UoEiZZ8b/BPNO1mu5HABMS2c9B/rqWiRRLFTohnk2OP9UfSlQsM2TRdFtS0eP3YX4v021FZtXz/zJLa9SCA==","signatures":[{"sig":"MEYCIQDZ00HgUAnUSOoz6EHoPyPtsWqUrtErVmvScgxYrOgTLgIhANbpwzvvA3zL7thsR7nk0SamxoceOBKh2e3NKy8+aVF5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113244},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"d3785dbbf4d4368c6555af90ae19fbec8694573a","scripts":{"dev":"ts-node app/server.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"ts-node --watch app/server.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/body-parser":"^1.19.2","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.15_1768544426490_0.730847463355637","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"ts-deco","version":"1.0.17","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.17","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"03ada2288232c1f0c864f7e5b29f11e28977e751","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.17.tgz","fileCount":278,"integrity":"sha512-OA5NhUWuJDBdTNmS+7WBCsj4riH8zyJmKeOyfmiRZ0QUhgN1sMIeJXWQfqdIZKfEyi1h4nzhabeM262NQ+wADA==","signatures":[{"sig":"MEYCIQCKjqSywRw007Z+WSNL06RjqF8Jf0WUX9PTu8XxVatF5AIhAI7inR+0AGnx/W+lgxA2QAeaw/fZIONKQiR298fRRqyB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360439},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"ad7906ee97004fde690f738b4de789f3b6cee473","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.17_1768784658662_0.4087635235852314","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"ts-deco","version":"1.0.18","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.18","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"a1fbeb977f4ceac733af980c6aa174ecf5e142ee","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.18.tgz","fileCount":278,"integrity":"sha512-snZVyd9BzZqnZesxpAmefmTkDXMR7deu0CiX5F23/KRZBA9mriPun3GXMZOJjhxsID2+37fa1s2ZVkoknxnMyA==","signatures":[{"sig":"MEUCIQDzOgAptlmKO+MwNjH2HCiWSgjUFiWhzR5vAdhdSUQ0rwIgZfLNQQiIt790Q+kRAPfJ7rAFnP4j1YGkJJgBqE9FX0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":370207},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"bc43b83fc46723bcbb9881970595895fbb306f3a","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.18_1768793033186_0.6399930699218093","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"ts-deco","version":"1.0.21","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.21","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"43eb7640ca4ce927dfbc19758b1506bcc70c1888","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.21.tgz","fileCount":362,"integrity":"sha512-XvVJbXb9YaeoV/VY3MTVomvLzxEqeAqrrDwlKCr1R4lCOL9a/0tsCKyDZyhAwT+hb3/AIFHUrA4vu+1335MYTg==","signatures":[{"sig":"MEUCIQC4rjcuXOuCfbfa02PgRM1lnvXyAMPuxrpDp3DAxVz3TgIgQllHHIqoYvDOhPZkY/GjxoQbquTdMdXGFtDErV8+KTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":429978},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"4ddfd1034aa6a34ee6b138e60d303a6971ec0a21","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.21_1770960028595_0.763016598929749","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"ts-deco","version":"1.0.22","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.22","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"16d9ff32c2f2660125309c1bd27a0717d557941e","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.22.tgz","fileCount":362,"integrity":"sha512-48DAuYIK9FpCo6zL1cXEl3DOZNghSb8Z4ta/D6K5HJyo3CmgBQi96fkrE/b1xt7cg8EqRJpg0G3WjwH3iv4qkQ==","signatures":[{"sig":"MEYCIQD1kRJ0t5QSb80mQjsRWSHGzy4RRe7AdDZMAPnuUZo7kwIhAN21T6+QHrNOzfzQvuc0UqJHaK0Pgpu3yRG0B/UHhT7g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":430973},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"4ddfd1034aa6a34ee6b138e60d303a6971ec0a21","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.22_1770968999961_0.19575417575637655","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"ts-deco","version":"1.0.24","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.24","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"c5810f65c4b36bc46cd125e81cede527e39299b0","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.24.tgz","fileCount":362,"integrity":"sha512-wQMTZYElaA5fOyBRrB1mxb7hadGvMBYBQdvERXz7AoDQ1SitF+EvQ7sFuISZpzRTtF26ItMR+GEIr1BXYNhV8A==","signatures":[{"sig":"MEYCIQDv5YZSrXUPP7VvH9PEBm1IEYRoAz6+DJ9ivv9GAwN43AIhAKd8KQrl41aDmOeC3A7SEVtDrW97QxlDChqhpRvhlnpZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":430973},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"24fa319b40796226371ec075e793a118d8fa3fce","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.24_1771557232686_0.43334439325191654","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"ts-deco","version":"1.0.25","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.25","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"492745d7698a2bdaf91e8b1f8515c6d4d77ffa13","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.25.tgz","fileCount":362,"integrity":"sha512-K20BA37VJwKArIMwoggBALPnZgphealPKcQXeNRT2u+QV6GPzWRspr/M1dEaXmvKhnz9Jxf10vwOEU70fuN2VA==","signatures":[{"sig":"MEYCIQD8lfB5wVTwKHtDNcYmLd+R6cw/lL81qw0u0OrM7R8JrwIhAJvwTIIR4zBaQyOKuNng9GUfLrollOjV6RCd15aEswvS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":431136},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"24fa319b40796226371ec075e793a118d8fa3fce","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.25_1771557330389_0.9154966975125951","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"ts-deco","version":"1.0.26","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.26","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"db8ad83e935ffdfde14002cf128a9498228f19a0","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.26.tgz","fileCount":378,"integrity":"sha512-mb+kjQJ09ByD00XXKMCaYP9z5MEpj5yzNfhY3S7sca2fpuHgKVRauXTWfJ4Mb7kBurcFQiKw97TMxNi4uzm7zw==","signatures":[{"sig":"MEUCIAivyZ/X4QYb76AwjhvRhtepCglhrx5U+uYKQZX1lKQvAiEAq65Gu8OIDe0Tk/Z+lFvBrnAf562fTvFR9SjFg9rgWpY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":433895},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"24fa319b40796226371ec075e793a118d8fa3fce","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.26_1771561939901_0.4410838078009036","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"ts-deco","version":"1.0.27","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.27","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"a088765d432087d513befe4ea888b48804266a66","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.27.tgz","fileCount":450,"integrity":"sha512-kIwluSAe/wYzHlaxW7FEPA/b6QT9esVgf+WDJTFQhcAE5gBPNG542OvubG5Usf+FNHlx9eKOJBCbS6i8fwAK3w==","signatures":[{"sig":"MEUCIQCzpALi7brHKkzRGJZMy/xI7Pc32qXZzvzPbavVkkPjvAIgdaZY+sQYo2Zs+t6GFWVaGpQV74SZKWHvJv+GWhWhUoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503314},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"8ccf3cebeb2a41703c45025fca4c20786e3906f7","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.27_1771563188277_0.3277497401072951","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"ts-deco","version":"1.0.28","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.28","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"e1d3d9be63e06aa56488fe8d3721dcf5a0736393","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.28.tgz","fileCount":450,"integrity":"sha512-BZOAUl/q/iE99Bb4lZTIXXJNyI18GKgzmQfB3ggoTbQkrnAutbr2rzTN6Qm47+VqRMMD3GOt3A/zioUzT7MIXA==","signatures":[{"sig":"MEYCIQDhVZOwm2c2cNyZAJx6UZ4ZO72dKmLimi+u98eZUvcMbwIhANgFnmP0oR1GMlt63rdjbC6z9LR0PUgniREOwqDq1jOE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503888},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"03e7afa06f858109652745605a73845694f63a0b","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.28_1771564108699_0.11810330822973403","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"ts-deco","version":"1.0.29","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.29","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"c1b77fd61199fdb24e7f50532c54edb0182049f9","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.29.tgz","fileCount":454,"integrity":"sha512-gCVn9j8LEEdUFA1XBHcFcIXb+AKNTE4qgwelHNn2RdebqUP55LoB1RpI67wcj6MD7VfWV/dss/ZRsn1CYvpUtA==","signatures":[{"sig":"MEUCIAcqCYG//Cw6K94MhSKfLrLvIu4V43ircfbkteTVq3boAiEAlwO2WFZDCo2NPAtgtT/pAr6IatzTzYszM7jLPggF068=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":508657},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"03e7afa06f858109652745605a73845694f63a0b","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.29_1771564499228_0.6677390056698855","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"ts-deco","version":"1.0.30","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.30","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"6efad18f52af2cf67bedd2b9e21e67d8c1748e2c","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.30.tgz","fileCount":454,"integrity":"sha512-ahcAkY/aVrqGFbmX0ioFHPsnKIxl/KzR+5XHBYbg8fISvKmfc4l2pDmEzNBxk2Oj9mHHGQgnKz4Pq5GbAZqGFw==","signatures":[{"sig":"MEUCIQCYQ5p7UoQdXa6g7B12obUqdyDJZ+2XDsbcMr5aVLou3QIga/yuTeyQRsEeMFC4GEda8TeQk3jRO2/HJpIM4IKjk7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509041},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"03e7afa06f858109652745605a73845694f63a0b","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.30_1771564750366_0.48242533880476945","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"ts-deco","version":"1.0.31","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.31","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"10867b38682f9b92bed8926088255e77330b7415","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.31.tgz","fileCount":454,"integrity":"sha512-/0gKmn3AMRw/5p7UwHByZoDe5R+gxW+IrzvwRMneCRexdAGzXRaCbiZ9fkkpAdwQgxFAlDLxRG7cZCiIFVs7Jw==","signatures":[{"sig":"MEUCIQDDbBjzFDqPtrI7WrUaIHrUbM10WP/4Y/3d/L383Xc5UwIgUsE2k8vYwTDNLHtP2AGlkQX+BCsxirjFGAEqLVKBYIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509077},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"03e7afa06f858109652745605a73845694f63a0b","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.31_1771564953194_0.8725571332912212","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"ts-deco","version":"1.0.32","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.32","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"9fe46dd64fca6da57e9d998b26dc74f7a7ef5856","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.32.tgz","fileCount":458,"integrity":"sha512-gn102b3JsN88shIMwGjhbtIx3qR0P2UJXQjOj+qsn/ig9mndSNlpDoEjKWcYrv89qOqw+spXwXqZJBFsyFomPQ==","signatures":[{"sig":"MEUCIF4YtCOHQmjEWTTSLssKhNP9DpWW9ltBdUVl44UEfDIxAiEAzuobWx8308Ge4XuXFg+1CCG9GYdkiWhoQ5wvKbsOAn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":513712},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"6e1214ba27ff668c2b663d67547257ceeee9edbb","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.32_1771573304317_0.3592826024673823","host":"s3://npm-registry-packages-npm-production"}},"1.0.33":{"name":"ts-deco","version":"1.0.33","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.33","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"9228454b6e1c948106b3493771f0d722513594be","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.33.tgz","fileCount":458,"integrity":"sha512-qJGTkceTOltNheU6Ap6V1yYjtvfkHb6mxHGhkHgSep/5eBhicKYpg2p2UeFC9yrfO+uzFGRMFPEXR+T61bO4Cw==","signatures":[{"sig":"MEUCIFN0cuJWqX5/CjLxqN227BK2zRge+jJDJdI1YVk/2OxbAiEAhT8E2lvOA+MWPtw8/bkw+qrTyrkp4yx8Q9dbS5hrtlE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":536484},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"2748129946411f575adf6cc2f14c576b23904cc6","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.33_1771574510303_0.7196026412290009","host":"s3://npm-registry-packages-npm-production"}},"1.0.36":{"name":"ts-deco","version":"1.0.36","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.36","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"79c0c4bda0b4064701109a667c10b731d6fc7fee","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.36.tgz","fileCount":458,"integrity":"sha512-Yne4XX+b46XyU46VPnlCGPzJ/t6E//C+xm3YbCpUwaCuLZKs+VdtBGNJ+EJJf+CpzQFROSdDOViJxNGQFevTYg==","signatures":[{"sig":"MEUCIQDvkxh341BC+N4byCR1XdbNNQRNUBYtGuMG6TtTkHShCQIgPTs5LQc4OmQERWIlCZSK5uf3ri/D382vbgpFngK0pEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":536763},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"9ee8da33f18a939df5d10d7e4e6e3adf33969e43","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.36_1773027896652_0.2396695499106638","host":"s3://npm-registry-packages-npm-production"}},"1.0.38":{"name":"ts-deco","version":"1.0.38","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.38","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"469b705390d574ee577622bdd700149732bb151d","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.38.tgz","fileCount":458,"integrity":"sha512-KeBJ5K/f865ZJPUABgqjGpXXWDY+khDTyzK0T31p3Q1Q4r3GVr7q4gFKk7cKJkprnJMdwqav+Ck+pmGjNQt3UA==","signatures":[{"sig":"MEQCIA3luJSH6vscWOqDDyxV0j5WBLpRDQSKpnXCuRNYN89oAiAMunCt17L+e2903/Lw3A4J+xljWNGIlUw+OBBYxNEnHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":538708},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"9ee8da33f18a939df5d10d7e4e6e3adf33969e43","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{"cors":"^2.8.5","helmet":"^8.1.0","compression":"^1.8.1","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","swagger-jsdoc":"^6.2.8","@types/express":"^4.17.17","@types/supertest":"^2.0.16","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.38_1776397213218_0.6519672968388983","host":"s3://npm-registry-packages-npm-production"}},"1.0.39":{"name":"ts-deco","version":"1.0.39","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.0.39","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"9880f52fa80202b2fe2f5a58b8cccfa88f3e7418","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.0.39.tgz","fileCount":466,"integrity":"sha512-b2OBCk4tBG5O2gpYngl2M30OykbYkbO5j8CjeWobpsiLYVoGTtTXxei0J09k3yreIYobvNb5NdjAzV6lkXVrYg==","signatures":[{"sig":"MEUCIExtS2h7zc3668V27t7U0h0US3rJYKrp2bZYqOjaXvZEAiEAnOLLb180MlrbMrsDQiDWEARIG1AbivPgvZhDNZ+NlxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564987},"main":"dist/src/index.js","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js","require":"./dist/src/index.js"},"./express":{"types":"./dist/src/configs/index.d.ts","default":"./dist/src/configs/index.js","require":"./dist/src/configs/index.js"}},"gitHead":"3a2da21cd28d46b43457f571b10f8a260b8f0b2f","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","jest":"^29.5.0","helmet":"^8.1.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","compression":"^1.8.1","swagger-jsdoc":"^6.2.8","@nestjs/common":"^10.0.0","@types/express":"^4.17.17","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","@types/supertest":"^2.0.16","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"peerDependencies":{"express":"^4.18.0","swagger-jsdoc":"^6.2.0","@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","reflect-metadata":"^0.1.13 || ^0.2.0","class-transformer":"^0.5.0","swagger-ui-express":"^5.0.0"},"peerDependenciesMeta":{"express":{"optional":true},"swagger-jsdoc":{"optional":true},"@nestjs/common":{"optional":true},"@nestjs/swagger":{"optional":true},"swagger-ui-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.0.39_1783997314706_0.9444492174259911","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"ts-deco","version":"1.1.1","keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","_id":"ts-deco@1.1.1","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"dist":{"shasum":"cf94568addcbaef942d0446d2ed51d7113374ef1","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.1.1.tgz","fileCount":475,"integrity":"sha512-lIIx0dDkVx/JUO7ND2GvXKFmRTNhMCIMqICrwwDOE0pkeR5Fwmp8HMAs461KZ1yBUuI7sy4R4AOVr6a2S8S1Dw==","signatures":[{"sig":"MEUCIQCXiEWw/TsA3xLD93sHPJw6R/InOZZQ/LY5DzbGTfg/8QIgNzqPHNPayCwAYhJN27DlhOw91fY7ngz6dVLgqMtWngA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":576886},"main":"dist/src/index.js","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js","require":"./dist/src/index.js"},"./express":{"types":"./dist/src/configs/index.d.ts","default":"./dist/src/configs/index.js","require":"./dist/src/configs/index.js"}},"gitHead":"e202902632205800fef029d94644456e41b8ff90","scripts":{"dev":"ts-node app/app.ts","test":"jest","build":"tsc","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","dev:watch":"nodemon app/app.ts","test:watch":"jest --watch","publish:major":"npm version major --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:patch":"npm version patch --no-git-tag-version && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build","publish:dry-run":"npm publish --dry-run"},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"_npmVersion":"10.9.3","description":"TypeScript decorator utilities for Node.js with strict validation standards","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","jest":"^29.5.0","helmet":"^8.1.0","express":"^4.18.2","nodemon":"^3.0.2","ts-jest":"^29.1.0","ts-node":"^10.9.1","supertest":"^6.3.3","typescript":"^5.0.0","@types/cors":"^2.8.19","@types/jest":"^29.5.0","@types/node":"^20.0.0","body-parser":"^1.20.2","compression":"^1.8.1","swagger-jsdoc":"^6.2.8","@nestjs/common":"^10.0.0","@types/express":"^4.17.17","@nestjs/swagger":"^7.0.0","class-validator":"^0.14.0","@types/supertest":"^2.0.16","reflect-metadata":"^0.1.13","class-transformer":"^0.5.0","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","swagger-ui-express":"^5.0.0","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3"},"peerDependencies":{"express":">=4.18.0","swagger-jsdoc":">=6.2.0","@nestjs/common":">=10.0.0","@nestjs/swagger":">=7.0.0","class-validator":">=0.14.0","reflect-metadata":">=0.1.13","class-transformer":">=0.5.0","swagger-ui-express":">=5.0.0"},"peerDependenciesMeta":{"express":{"optional":true},"swagger-jsdoc":{"optional":true},"@nestjs/common":{"optional":true},"@nestjs/swagger":{"optional":true},"swagger-ui-express":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ts-deco_1.1.1_1783999463871_0.5240124857314723","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"ts-deco","version":"1.1.2","description":"TypeScript decorator utilities for Node.js with strict validation standards","main":"dist/src/index.js","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","require":"./dist/src/index.js","default":"./dist/src/index.js"},"./express":{"types":"./dist/src/configs/index.d.ts","require":"./dist/src/configs/index.js","default":"./dist/src/configs/index.js"}},"scripts":{"build":"tsc","prepublishOnly":"npm run build","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","dev":"ts-node app/app.ts","dev:watch":"nodemon app/app.ts","app:build":"tsc app/server.ts --outDir dist/app --module commonjs --target ES2020 --esModuleInterop --experimentalDecorators --emitDecoratorMetadata --skipLibCheck","app:start":"node dist/app/server.js","publish:patch":"npm version patch --no-git-tag-version && npm publish","publish:minor":"npm version minor --no-git-tag-version && npm publish","publish:major":"npm version major --no-git-tag-version && npm publish","publish:dry-run":"npm publish --dry-run"},"keywords":["typescript","decorator","nestjs","validation","dto"],"author":"","license":"ISC","peerDependencies":{"@nestjs/common":">=10.0.0","@nestjs/swagger":">=7.0.0","class-transformer":">=0.5.0","class-validator":">=0.14.0","express":">=4.18.0","reflect-metadata":">=0.1.13","swagger-jsdoc":">=6.2.0","swagger-ui-express":">=5.0.0"},"peerDependenciesMeta":{"@nestjs/common":{"optional":true},"@nestjs/swagger":{"optional":true},"express":{"optional":true},"swagger-jsdoc":{"optional":true},"swagger-ui-express":{"optional":true}},"dependencies":{},"devDependencies":{"@nestjs/common":"^10.0.0","@nestjs/swagger":"^7.0.0","@types/body-parser":"^1.19.2","@types/compression":"^1.8.1","@types/cors":"^2.8.19","@types/express":"^4.17.17","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/supertest":"^2.0.16","@types/swagger-jsdoc":"^6.0.1","@types/swagger-ui-express":"^4.1.3","body-parser":"^1.20.2","class-transformer":"^0.5.0","class-validator":"^0.14.0","compression":"^1.8.1","cors":"^2.8.5","express":"^4.18.2","helmet":"^8.1.0","jest":"^29.5.0","nodemon":"^3.0.2","reflect-metadata":"^0.1.13","supertest":"^6.3.3","swagger-jsdoc":"^6.2.8","swagger-ui-express":"^5.0.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","typescript":"^5.0.0"},"_id":"ts-deco@1.1.2","gitHead":"07128a09dbd576e664ee61f6ef6228019977b89e","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-a2MbzyoAw+rpr2aPT+IFKGO1GFSxpDbxdms+ZmzyEI2vRLFTMWhB6Myn/ZGnUZecDcs8Ro1UNPaZ3b11Q8X6pw==","shasum":"d3cd8fa285efb468b75e6699a2f1a236add3c7cb","tarball":"https://registry.npmjs.org/ts-deco/-/ts-deco-1.1.2.tgz","fileCount":475,"unpackedSize":584962,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHMLnJjxSW0TGij5faoKc3HHuNmn5wNY2B/kdGoiaCU8AiAGD0ntCJgHlm5Yu+rAaD2R54DDcRakKcJ0LDXgpLaYyQ=="}]},"_npmUser":{"name":"khm0418","email":"chfhd0707@gmail.com"},"directories":{},"maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ts-deco_1.1.2_1784004050942_0.05659237474833789"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-16T02:15:45.882Z","modified":"2026-07-14T04:40:51.222Z","1.0.3":"2026-01-16T02:15:46.014Z","1.0.4":"2026-01-16T02:21:49.075Z","1.0.5":"2026-01-16T02:25:19.294Z","1.0.7":"2026-01-16T02:42:26.236Z","1.0.9":"2026-01-16T03:30:35.827Z","1.0.10":"2026-01-16T04:33:59.356Z","1.0.11":"2026-01-16T04:54:34.633Z","1.0.12":"2026-01-16T04:59:14.312Z","1.0.13":"2026-01-16T05:07:21.731Z","1.0.14":"2026-01-16T05:12:22.375Z","1.0.15":"2026-01-16T06:20:26.644Z","1.0.17":"2026-01-19T01:04:18.944Z","1.0.18":"2026-01-19T03:23:53.323Z","1.0.21":"2026-02-13T05:20:28.750Z","1.0.22":"2026-02-13T07:50:00.140Z","1.0.24":"2026-02-20T03:13:52.908Z","1.0.25":"2026-02-20T03:15:30.562Z","1.0.26":"2026-02-20T04:32:20.092Z","1.0.27":"2026-02-20T04:53:08.433Z","1.0.28":"2026-02-20T05:08:28.903Z","1.0.29":"2026-02-20T05:14:59.383Z","1.0.30":"2026-02-20T05:19:10.536Z","1.0.31":"2026-02-20T05:22:33.333Z","1.0.32":"2026-02-20T07:41:44.470Z","1.0.33":"2026-02-20T08:01:50.513Z","1.0.36":"2026-03-09T03:44:56.832Z","1.0.38":"2026-04-17T03:40:13.385Z","1.0.39":"2026-07-14T02:48:34.856Z","1.1.1":"2026-07-14T03:24:24.020Z","1.1.2":"2026-07-14T04:40:51.108Z"},"license":"ISC","keywords":["typescript","decorator","nestjs","validation","dto"],"description":"TypeScript decorator utilities for Node.js with strict validation standards","maintainers":[{"name":"khm0418","email":"chfhd0707@gmail.com"}],"readme":"# ts-deco\n\n**검증과 Swagger 문서화를 하나의 데코레이터로 처리하는 TypeScript 라이브러리**\n\nDTO 필드에 `@Property`, 컨트롤러에 `@Resource` / `@Endpoint`만 붙이면  \n`class-validator` 검증과 Swagger(OpenAPI) 스키마가 함께 생성됩니다.\n\n- **NestJS**: `@nestjs/swagger` / HTTP 메서드 데코레이터와 자동 연동\n- **Express**: `ts-deco/express`의 `setupApp`으로 라우트·Swagger UI 자동 등록  \n- Fastify 어댑터는 현재 미지원\n\n---\n\n## 왜 ts-deco인가\n\n프레임워크마다 검증·문서·라우팅을 **각각** 붙이는 방식이 다릅니다. ts-deco는 그걸 한 데코레이터 세트로 맞춥니다.\n\n### NestJS — 검증과 Swagger를 따로 쌓는 패턴\n\n```typescript\n// DTO: class-validator + @nestjs/swagger를 필드마다 중복 선언\n@ApiProperty({ description: '이름' })\n@IsString()\n@IsNotEmpty()\nname: string;\n\n// Controller: HTTP 메서드 + ApiTags / ApiOperation / ApiBody를 또 따로\n@ApiTags('Users')\n@Controller('users')\nexport class UserController {\n  @Post()\n  @ApiOperation({ summary: '사용자 생성' })\n  @ApiBody({ type: CreateUserDto })\n  create() {}\n}\n```\n\nts-deco에서는 `@Property` / `@Resource` / `@Endpoint`만 쓰면  \nNest 패키지가 있을 때 `@Is*`, `@ApiProperty`, `@Controller`, `@Get`/`@Post`, `ApiTags` 등이 **함께 적용**됩니다.\n\n### Express — 라우트·검증·Swagger를 손으로 묶는 패턴\n\n```typescript\n// 라우트 등록, validation middleware, swagger-jsdoc 스키마를 각각 작성\napp.post('/api/users', validationMiddleware(CreateUserDto), handler);\n\n/**\n * @openapi\n * /api/users:\n *   post:\n *     summary: 사용자 생성\n *     ...\n */\n```\n\nts-deco에서는 동일한 `@Resource` / `@Endpoint` 메타데이터로  \n`setupApp`이 **라우트 등록 + body/query validation + Swagger UI**까지 한 번에 처리합니다.\n\n### 공통 — DTO는 한 줄\n\n```typescript\n@Property({ type: String, description: '이름', isNotEmpty: true })\nname: string;\n```\n\n선택 필드·배열·enum·중첩 DTO까지 Nest/Express 모두 같은 `@Property` 옵션으로 맞출 수 있습니다.\n\n---\n\n## 설치\n\n```bash\nnpm install ts-deco class-validator class-transformer reflect-metadata\n```\n\n`tsconfig.json`에 legacy decorator 설정이 필요합니다.\n\n```json\n{\n  \"compilerOptions\": {\n    \"experimentalDecorators\": true,\n    \"emitDecoratorMetadata\": true\n  }\n}\n```\n\n### NestJS\n\n```bash\nnpm install @nestjs/common @nestjs/swagger\n```\n\n```typescript\nimport { Property, Resource, Endpoint } from \"ts-deco\";\n```\n\nNest 패키지가 있으면 `@Controller`, `@Get`/`@Post`, `ApiTags` 등이 `@Resource` / `@Endpoint`에 함께 적용됩니다.\n\n### Express (`setupApp` 사용 시)\n\n```bash\nnpm install express swagger-ui-express swagger-jsdoc\n```\n\n```typescript\nimport { setupApp, autoRegisterRoutes } from \"ts-deco/express\";\nimport { Property, Resource, Endpoint } from \"ts-deco\";\n```\n\n> Express 헬퍼는 optional peer이므로 **메인 엔트리(`ts-deco`)에는 포함되지 않습니다.**  \n> Nest만 쓰는 프로젝트는 `ts-deco`만 import하면 됩니다.\n\n자세한 peer 의존성은 [설치 및 환경](./docs/installation.md)을 참고하세요.\n\n---\n\n## 빠른 시작\n\n### 1. DTO — `@Property`\n\n```typescript\nimport { Property } from \"ts-deco\";\n\nenum UserRole {\n  ADMIN = \"admin\",\n  USER = \"user\",\n}\n\nclass AddressDto {\n  @Property({ type: String, description: \"도시\" })\n  city: string;\n}\n\nclass CreateUserDto {\n  @Property({\n    type: String,\n    description: \"사용자 이름\",\n    example: \"홍길동\",\n    isNotEmpty: true,\n  })\n  name: string;\n\n  @Property({ type: Number, min: 0, max: 120 })\n  age: number;\n\n  @Property({ enum: UserRole })\n  role: UserRole;\n\n  // 선택 필드: 검증은 optional, Swagger 표기는 nullable\n  @Property({ type: String, optional: true, nullable: true })\n  email?: string;\n\n  // 중첩 DTO\n  @Property({ type: AddressDto })\n  address: AddressDto;\n\n  // 중첩 DTO 배열\n  @Property({ type: AddressDto, isArray: true, optional: true, nullable: true })\n  addresses?: AddressDto[];\n}\n```\n\n| 옵션 | 역할 |\n|------|------|\n| `optional: true` | `IsOptional` 검증 (값이 없어도 통과) |\n| `nullable: true` | Swagger 스키마 nullable/선택 표기 (검증과 무관) |\n| `isArray: true` | 배열 필드 (단일 값도 배열로 정규화) |\n| `type: SomeDto` | 중첩 DTO (`ValidateNested` + `Type`) |\n\n> `isOptional`은 deprecated alias입니다. 신규 코드에서는 `optional`을 사용하세요.\n\n세분화된 제어가 필요하면 `DtoString`, `DtoNumber`, `DtoDate`, `DtoBoolean`, `DtoEnum`, `DtoNested`를 쓸 수 있습니다.  \n→ [Property 문서](./docs/property.md) · [개별 데코레이터](./docs/validators.md)\n\n### 2. Controller — `@Resource` / `@Endpoint`\n\n```typescript\nimport { Resource, Endpoint } from \"ts-deco\";\n\n@Resource({ tag: \"Users\", path: \"/api/users\" })\nexport class UserController {\n  @Endpoint({\n    method: \"POST\",\n    endpoint: \"\",\n    summary: \"사용자 생성\",\n    tags: [\"Users\"],\n    body: { type: CreateUserDto, required: true },\n    responses: [\n      { status: 201, description: \"생성 성공\" },\n      { status: 400, description: \"Validation 실패\" },\n    ],\n  })\n  create(/* ... */) {}\n\n  @Endpoint({\n    method: \"GET\",\n    endpoint: \"/:id\",\n    summary: \"사용자 조회\",\n    params: [{ name: \"id\", type: String, required: true }],\n    responses: [{ status: 200, description: \"성공\", type: CreateUserDto }],\n  })\n  findOne(/* ... */) {}\n}\n\n// prefix로 관리용 경로: /mgmt/users\n@Resource({ tag: \"Users\", prefix: \"mgmt\" })\nexport class AdminUserController {}\n```\n\nExpress 자동 라우트 등록 시 `@Endpoint`의 `method` / `endpoint`가 우선 사용됩니다.  \nQuery 검증·Swagger 문서화는 `queryDto`만 지정하면 됩니다. (DTO 프로퍼티에서 query 파라미터 자동 생성)\n\n```typescript\n@Endpoint({\n  method: \"GET\",\n  endpoint: \"\",\n  summary: \"목록\",\n  queryDto: ListQueryDto, // 검증 + Swagger query 자동 생성\n})\nlist() {}\n```\n\n명시 `queries`가 있으면 같은 이름에 대해 `queryDto` 파생 값을 덮어씁니다.\n\n→ [Controller 문서](./docs/controller.md)\n\n### 3. Express — `setupApp`\n\n```typescript\nimport express from \"express\";\nimport { setupApp } from \"ts-deco/express\";\nimport * as controllers from \"./routers\";\n\nconst app = express();\napp.use(express.json());\n\nsetupApp({\n  app,\n  controllers,\n  swagger: {\n    title: \"My API\",\n    version: \"1.0.0\",\n    description: \"API Documentation\",\n  },\n  swaggerPath: \"/api-docs\",\n});\n\napp.listen(3000);\n```\n\n`setupApp`은 Swagger UI 설정과 `@Resource` / `@Endpoint` 기반 라우트·validation middleware 등록을 한 번에 처리합니다.\n\n---\n\n## 프로젝트 구조\n\n```text\nts-deco/\n├── src/\n│   ├── index.ts                 # 퍼블릭 API (validators + controllers)\n│   ├── decorators/\n│   │   ├── validators/          # Property, DtoString, DtoNested 등\n│   │   └── controllers/         # Resource, Endpoint, Doc* 등\n│   └── configs/                 # Express: setupApp, 라우트, Swagger factory\n│       └── → import from \"ts-deco/express\"\n├── app/                         # Express 데모 앱\n├── docs/                        # 상세 문서\n└── tests/\n```\n\n| import | 내용 |\n|--------|------|\n| `ts-deco` | DTO·Controller 데코레이터 |\n| `ts-deco/express` | `setupApp`, `autoRegisterRoutes`, `validationMiddleware`, Swagger 유틸 |\n\n---\n\n## 주요 기능\n\n- **함축적 API**: 검증 + Swagger를 `@Property` / `@Endpoint` 한 곳에서 정의\n- **중첩 DTO**: `type: ClassDto` / `isArray`로 객체·배열 검증\n- **Nest 브릿지**: `@nestjs/common`·`@nestjs/swagger`가 있으면 네이티브 데코레이터 자동 적용\n- **Express 자동화**: 메타데이터 기반 라우트 등록 + body/query validation\n- **타입 안전**: TypeScript + `strict` 환경에서 옵션을 좁혀 사용\n\n---\n\n## 문서\n\n| 문서 | 내용 |\n|------|------|\n| [Property 데코레이터](./docs/property.md) | 옵션 레퍼런스, optional/nullable, 중첩 DTO, 검증 우선순위 |\n| [개별 데코레이터](./docs/validators.md) | `DtoString`, `DtoNumber`, `DtoDate`, `DtoBoolean`, `DtoEnum`, `DtoNested` |\n| [Controller 데코레이터](./docs/controller.md) | `Resource`, `Endpoint` (`Property`, `Dto*`) |\n| [사용 예제](./docs/examples.md) | NestJS / Express 전체 예제 |\n| [설치 및 환경](./docs/installation.md) | peer 의존성, tsconfig, 지원 환경 |\n\n데모 앱 실행:\n\n```bash\nnpm run dev\n# Swagger UI: http://localhost:<PORT>/api-docs\n```\n\n---\n\n## 라이선스\n\nISC License\n","readmeFilename":"README.md"}