{"_id":"@bradenm/tsoa","_rev":"6-4d169c158bdf01fa1bdb1c4bbbcbb8de","name":"@bradenm/tsoa","dist-tags":{"latest":"4.1.0-1.e7a229736957d3844264f393490555b3413dcbda"},"versions":{"4.0.0-rc.1":{"name":"@bradenm/tsoa","description":"Build swagger-compliant REST APIs using TypeScript and Node","version":"4.0.0-rc.1","main":"./dist/index.js","typings":"./dist/index.d.ts","keywords":["typescript","openapi","swagger","server","node","node.js","codegen","generation","express","hapi.js","koa"],"scripts":{"build":"yarn tsc","tsc":"tsc -b","watch":"tsc -b -w"},"author":{"name":"Luke Autry","email":"lukeautry@gmail.com","url":"http://www.lukeautry.com"},"license":"MIT","dependencies":{"@tsoa/cli":"npm:@bradenm/tsoa-cli","@tsoa/runtime":"npm:@bradenm/tsoa-runtime"},"devDependencies":{"@types/node":"^14.11.1","typescript":"^4.5.4"},"repository":{"type":"git","url":"https://github.com/lukeautry/tsoa.git"},"bin":{"tsoa":"dist/cli.js"},"engines":{"yarn":">=1.9.4","node":">=12.0.0"},"engineStrict":true,"publishConfig":{"access":"public"},"_id":"@bradenm/tsoa@4.0.0-rc.1","dist":{"shasum":"81d358aa4b414647934eb4a6e3f978ac9546591d","integrity":"sha512-xsHUebX8GWeDNLIinmGngRDHRnIqUPGEq0kbsUK8g6SeJp6h+VfyOAu9O44POQc+9LTb4EEs2uL4ifjfYS3Ygw==","tarball":"https://registry.npmjs.org/@bradenm/tsoa/-/tsoa-4.0.0-rc.1.tgz","fileCount":10,"unpackedSize":5247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiN/D7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2Cg//RtkQ3HffbuwurWD6bJq/KHjqURt4ecDoG5pwydwqE3GwHGRR\r\nalJKOB7Af6zGULgAV9EulLmM15Pk+raAmiP4XoL0Lqvt24u+1NGNwC9cbDge\r\nYQWSOhVjFTE9EpTzRl+EcMgSXijVeHsp2rQdW3NQpyUmyoktgWPLTIViruE7\r\nm+tZ5Pzn42V2m3Ecu1c3v2zSD2Vao8XTOoQzg5kB5OW3+TaSEVqp8vaL33MN\r\ngsRQ97eKCBrsY/SVBfb+EuHzglK1VHfzq5xcuCTDFyf7WVtHw5MpXOh7C2Is\r\nx6Sm87/TCBFAo9QR+75HIIFfRaYfcfqQkrGXFT0AlpR1vOsgPAHa5zlUXPNp\r\nsIR2cvItRpa7QyQSy0tDpIkL9vUS8ienvWExWRSKQD2Wo7CS15Pdk8bFLxCW\r\n5SoLsjV2qqi2K0iLKh11aOVqnGQYtPcGkn+Ko2ybXHDnAB1Yv8J1qDHfdWZH\r\nNri6+iTyCK5j9GtfRj8c9mVfSZHd1/YC2boKkgXpkJuQhqwbiNLlEHd+MJdl\r\nJWGCuMZgRXYZZMR2+f4Qn2ijsP87a5yiknfseSZnDognmCZzHaEYmhiZos9O\r\nah17kgcANBQbRyaGUDkropTz9yT2L93wUjZjud3nc0xKPFXwAua/eNXUCJ2r\r\nBUhFrYVmtA82Ft2JC0u1eNAIpSpX2AcfKVg=\r\n=QWhU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHPZZ5JOeu9tMcdaHqGNr8dvVv7yZ440vix/Li9YGUzyAiAhEMgAuDp/JOY6QaBB0J5yDpA41vYqFRkrUygZfMM1fA=="}]},"_npmUser":{"name":"bradenm","email":"bradenmars02@gmail.com"},"directories":{},"maintainers":[{"name":"bradenm","email":"bradenmars02@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tsoa_4.0.0-rc.1_1647833338906_0.1852969708777379"},"_hasShrinkwrap":false},"4.0.0-1.429f2d8f7e51c0044b0cb81ae6cdbde6b32d23db":{"name":"@bradenm/tsoa","description":"Build swagger-compliant REST APIs using TypeScript and Node","version":"4.0.0-1.429f2d8f7e51c0044b0cb81ae6cdbde6b32d23db","main":"./dist/index.js","typings":"./dist/index.d.ts","keywords":["typescript","openapi","swagger","server","node","node.js","codegen","generation","express","hapi.js","koa"],"scripts":{"build":"yarn tsc","tsc":"tsc -b","watch":"tsc -b -w"},"author":{"name":"Luke Autry","email":"lukeautry@gmail.com","url":"http://www.lukeautry.com"},"license":"MIT","dependencies":{"@tsoa/cli":"npm:@bradenm/tsoa-cli","@tsoa/runtime":"npm:@bradenm/tsoa-runtime"},"devDependencies":{"@types/node":"^14.11.1","typescript":"^4.5.4"},"repository":{"type":"git","url":"git+https://github.com/lukeautry/tsoa.git"},"bin":{"tsoa":"dist/cli.js"},"engines":{"yarn":">=1.9.4","node":">=12.0.0"},"engineStrict":true,"publishConfig":{"access":"public"},"gitHead":"d8e9ab54f856e16675a235af9cbab285dc379308","bugs":{"url":"https://github.com/lukeautry/tsoa/issues"},"homepage":"https://github.com/lukeautry/tsoa#readme","_id":"@bradenm/tsoa@4.0.0-1.429f2d8f7e51c0044b0cb81ae6cdbde6b32d23db","_nodeVersion":"16.13.0","_npmVersion":"lerna/4.0.0/node@v16.13.0+x64 (linux)","dist":{"integrity":"sha512-Wv2ItYCEJoURDigNc8ig1Sl6RSmzHBOvOk16StkBYseUFdERHWS5RlnssinqM5ilBnTyCy+JJHB05bWQJHm3dg==","shasum":"0c37f96217f8fc2731e2057296017bfe3cde5cf1","tarball":"https://registry.npmjs.org/@bradenm/tsoa/-/tsoa-4.0.0-1.429f2d8f7e51c0044b0cb81ae6cdbde6b32d23db.tgz","fileCount":9,"unpackedSize":6428,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBexva4wkI0JhjjFukOWyWv4AeoDkatTpDoXXzJIlv9cAiEA43IsWo4HGI0PzxLnoTcsDzQt7Iv7O9nUGFOMUUwaEts="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiXSyxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqasw/+NcNtXeWbksFthG7bAep9x/+a1O0v6IMQi89X3TIonJ9neZS/\r\nElvc+Pb4PD10Y0wRwZ9Z1UaaEPdjAZUECA1c+bPJXp5Lr1+/uEHnUJAMkoSK\r\ngG9w+UlvHIrZJy3bQ56A7fSFwDItHn0p5ruydgdzjF14PgEZt+zoirunTvCF\r\nBKk4GFGXX7P95F2DBtcy2IsgscJt/qDd4SGUzZXhxA1tDnBMZ5LqoYKWwK9H\r\nt/VTBHmqzQfBcZ7qTDg6vCfXUIKxOvOnrGX8Koox6KqHW/wpQ6Tj2KjTM3DM\r\nXnQIcawuCtSUg/8kXxnScrqkjnkWHetx1FnujIn/sbRUGFCiQb0E0RvpV3ks\r\nIs2gXZvn0NxGLaJMlktQ1sLt2x0jKVW5Vp7XN5hMKVV9WhUhyfmmUnVWVK8F\r\nSLFo+7sfU8RMLS2zSIkD/nZi0b52lws6mSbN+25glJWs5uuHw1wxDQGlD7CK\r\nvJCyZZ/o6AP2OeXFs6JhcLLYJZCGAiME1Z3iKK2ccKU7cvSQvhD3Evjg0KnP\r\nWzjTfUuLc4gBi8E9c55DDeudrtcJmDoK6IemII0skaFHvGLg+zkUT36HIcWC\r\n+zrIGsJm5ndTdNeSIy7/cSk6liH8BWYmIUDgRhuhvDOVE18FqU17F2B9ms+U\r\nZb+cUbSkHqjNiX6k0hi+E6iJuSfpS9Ko0nk=\r\n=gIAC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bradenm","email":"bradenmars02@gmail.com"},"directories":{},"maintainers":[{"name":"bradenm","email":"bradenmars02@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tsoa_4.0.0-1.429f2d8f7e51c0044b0cb81ae6cdbde6b32d23db_1650273457253_0.5177902476168716"},"_hasShrinkwrap":false},"4.0.0-1.2a4eaf7fa26756a608812b1256f21d578449d376":{"name":"@bradenm/tsoa","description":"Build swagger-compliant REST APIs using TypeScript and Node","version":"4.0.0-1.2a4eaf7fa26756a608812b1256f21d578449d376","main":"./dist/index.js","typings":"./dist/index.d.ts","keywords":["typescript","openapi","swagger","server","node","node.js","codegen","generation","express","hapi.js","koa"],"scripts":{"build":"yarn tsc","tsc":"tsc -b","watch":"tsc -b -w"},"author":{"name":"Luke Autry","email":"lukeautry@gmail.com","url":"http://www.lukeautry.com"},"license":"MIT","dependencies":{"@tsoa/cli":"npm:@bradenm/tsoa-cli","@tsoa/runtime":"npm:@bradenm/tsoa-runtime"},"devDependencies":{"@types/node":"^14.11.1","typescript":"^4.5.4"},"repository":{"type":"git","url":"https://github.com/lukeautry/tsoa.git"},"bin":{"tsoa":"dist/cli.js"},"engines":{"yarn":">=1.9.4","node":">=12.0.0"},"engineStrict":true,"publishConfig":{"access":"public"},"_id":"@bradenm/tsoa@4.0.0-1.2a4eaf7fa26756a608812b1256f21d578449d376","dist":{"shasum":"846025aecf9289d4fddad3085de6a9bcdea8e69d","integrity":"sha512-iq9x5wr0pvbx7Q1R+IQW01dLOgVhL7UlJ5ChclTyZZDKu26/4g0H5sRxt6EmLKtADlxtqeNuQoy5KmJFxNfKvg==","tarball":"https://registry.npmjs.org/@bradenm/tsoa/-/tsoa-4.0.0-1.2a4eaf7fa26756a608812b1256f21d578449d376.tgz","fileCount":10,"unpackedSize":5467,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLB5e6qodk2E88CMtPCRsp0SnZvSku8DiK97Xc7olUUgIgceM5F67VSv4lQveUJj3Uvdqwxm+9hW+XSKZ0RKiyLNM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJih5neACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpT6Q//UzYPcGLN1tcl0EuH5URDy7ObmtdamvtyOzzfg4d0H33+gFnH\r\naIHD3kqWOHAHIZmauYc/AFIo5QJ0FhKDEkj1+6spN5P9TPDYnlUJ5l3ei/3v\r\nCadiv2oOWqvVAOPmlaJicOEYKgr20Oi7kxvZQ+bUYdmGohG7RvkZXdRO0q+n\r\ncLfq77BQJaI8W8eJFtQZzcMJ75gTANRl2115SS8O+yUMBspboEv/9XIiVZbG\r\nu53RBq80arUM6Qcq4SyMzkFmkV/ggKWi/UKnz8liypOtUtfPD/dp9qDFbHv5\r\nCCfCngRLZyiye/XrwC+GnzSi8PmJisx1n0n1420q2DNbZ1GCDfy5tUqGZOlj\r\nugn1KbCdnKc2uzmsSvSV/SCV6wIk5tddA86+fZnhaJk8vzOGs7PdHKGanXIB\r\nnko0+7nykuOjVbeR7DFRscTSukhbd/6EEnjepah5WNy+/6dfQKqQBtx31ons\r\ng2WcEY77u1OmPsUG13hAzFlRtsh/PJgXCQF7u5IIpiSQETWwuR/TnAPePyQi\r\nVKNfNK9wr4kgv+NNzStLVFfpKcX3JyL5dK5nGGCvjuo2CQVSgXKfNGAgo1TJ\r\ne7lL3gbcSDE5hP9vEHFgKFsvJL6LjBVBVZS6i4sGTqrLK3m3AEQvtyqdCaSe\r\ng9/gAKADzPXawMlq1wBooiMgQEkdwX1nFY8=\r\n=fEu3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bradenm","email":"bradenmars02@gmail.com"},"directories":{},"maintainers":[{"name":"bradenm","email":"bradenmars02@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tsoa_4.0.0-1.2a4eaf7fa26756a608812b1256f21d578449d376_1653053917923_0.984141737545873"},"_hasShrinkwrap":false},"4.1.0-1.e7a229736957d3844264f393490555b3413dcbda":{"name":"@bradenm/tsoa","description":"Build swagger-compliant REST APIs using TypeScript and Node","version":"4.1.0-1.e7a229736957d3844264f393490555b3413dcbda","main":"./dist/index.js","typings":"./dist/index.d.ts","keywords":["typescript","openapi","swagger","server","node","node.js","codegen","generation","express","hapi.js","koa"],"scripts":{"build":"yarn tsc","tsc":"tsc -b","watch":"tsc -b -w"},"author":{"name":"Luke Autry","email":"lukeautry@gmail.com","url":"http://www.lukeautry.com"},"license":"MIT","dependencies":{"@tsoa/cli":"npm:@bradenm/tsoa-cli","@tsoa/runtime":"npm:@bradenm/tsoa-runtime"},"devDependencies":{"@types/node":"^14.11.1","typescript":"^4.5.4"},"repository":{"type":"git","url":"https://github.com/lukeautry/tsoa.git"},"bin":{"tsoa":"dist/cli.js"},"engines":{"yarn":">=1.9.4","node":">=12.0.0"},"engineStrict":true,"publishConfig":{"access":"public"},"_id":"@bradenm/tsoa@4.1.0-1.e7a229736957d3844264f393490555b3413dcbda","dist":{"shasum":"18ecd5a493fddaee0f08d7cfd81af22aaa243c0f","integrity":"sha512-1YeGRXOoOSWJR/IKMZSje5rv1vcn3rXhKm1iowpIjhKKFZ8xJxz+to8Il2d84Y6MRp/NyeDq79RHO+HiECVP5w==","tarball":"https://registry.npmjs.org/@bradenm/tsoa/-/tsoa-4.1.0-1.e7a229736957d3844264f393490555b3413dcbda.tgz","fileCount":10,"unpackedSize":5467,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJ5d31FSsleGDJnuWWNsXvtqbPrfdRT2P8owGqbeptYAIgJQjgeGV5bOMPZtCbLXXjfgKjeKijmC0RTEaO67mnKkU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijsD3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqunxAAn9xpHtNF9uZyfDlmMg+6j4F75UCSbLiDFHfzIwogE4uOhpxI\r\neCDw65/LK5sI2qbdRPM2Q6YqXbS1uOXL9s8+uXyF8MhiDqvRtFPAVv06fAVw\r\nxZ09ceZ1cN5L2rYu35yuhaaEtSxfGgfqDrdwOwic7Qmr8y51YR5Ft67dDQTZ\r\nYY2h2b/lCW8pY2RGbIxrz9xdUvW8ZJLKrFbevZ/FbJeXJokNUE1LsSJ47QtS\r\ncCKM1OFCdZCbTXWsx9M+q9zbuvE7CqgD/xhwxZnW6ifWLX2VfqIai0CUvRlA\r\neGmFrpqwSH320BW6GhjHvyqoEHfRXNd+IC6PFJ5nO6rTyJ18uG79qd8VjjPu\r\niLznWDyuqCiMTq6H6ZcCSZgzfD8GaeNCUIaVKzXWhZ8eUaFV39NN/UMBxbqj\r\nXzEmunluokcIYpnCWXlR1uMxmU/fFwDgBJA4arFG9pSA5G9VeNJQzr2o2AXF\r\n1oPIGNoadAZ/nKecFEPM7xFai0dTHOP5ZBUKYy597MOFv/VxmDhL/jnMxmaN\r\nd9LL3LGWZyRcgNCzLoBSuNp6MQivhS/jJQypz9xUL53uM6Nk2Ex3+vBk7XnR\r\n/dMQmFGyo/Kn2piDNB5yRAv9JIi22UYUYTD07s2AKd7DNgtfymNHrZaw1vnS\r\nPwlFY2maurqnlbpjlmlPBFDkKTmBgXs7Wt0=\r\n=QPWf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bradenm","email":"bradenmars02@gmail.com"},"directories":{},"maintainers":[{"name":"bradenm","email":"bradenmars02@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tsoa_4.1.0-1.e7a229736957d3844264f393490555b3413dcbda_1653522679387_0.4473057470912447"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-21T03:28:58.843Z","4.0.0-rc.1":"2022-03-21T03:28:59.016Z","modified":"2022-05-25T23:51:19.666Z","4.0.0":"2022-04-18T09:03:58.366Z","4.0.0-1.429f2d8f7e51c0044b0cb81ae6cdbde6b32d23db":"2022-04-18T09:17:37.623Z","4.0.0-1.2a4eaf7fa26756a608812b1256f21d578449d376":"2022-05-20T13:38:38.084Z","4.1.0-1.e7a229736957d3844264f393490555b3413dcbda":"2022-05-25T23:51:19.597Z"},"maintainers":[{"name":"bradenm","email":"bradenmars02@gmail.com"}],"description":"Build swagger-compliant REST APIs using TypeScript and Node","keywords":["typescript","openapi","swagger","server","node","node.js","codegen","generation","express","hapi.js","koa"],"repository":{"type":"git","url":"https://github.com/lukeautry/tsoa.git"},"author":{"name":"Luke Autry","email":"lukeautry@gmail.com","url":"http://www.lukeautry.com"},"license":"MIT","readme":"<div align=\"center\">\n  <a href=\"https://tsoa-community.github.io/docs/\" target=\"blank\">\n    <h1>tsoa</h1>\n  </a>\nPronounced so·uh\n\nOpenAPI-compliant REST APIs using TypeScript and Node\n\n![build status](https://github.com/lukeautry/tsoa/actions/workflows/runTestsOnPush.yml/badge.svg)\n[![npm version](https://img.shields.io/npm/v/tsoa/latest)](https://www.npmjs.com/package/tsoa)\n\n</div>\n\n## Goal\n\n- TypeScript controllers and models as the single source of truth for your API\n- A valid OpenAPI (formerly Swagger) spec (2.0 or 3.0 if you choose 😍) is generated from your controllers and models, including:\n  - Paths (e.g. GET /users)\n  - Definitions based on TypeScript interfaces (models)\n  - Parameters/model properties marked as required or optional based on TypeScript (e.g. myProperty?: string is optional in the OpenAPI spec)\n  - jsDoc supported for object descriptions (most other metadata can be inferred from TypeScript types)\n- Routes are generated for middleware of choice\n  - Express, Hapi, and Koa currently supported, other middleware can be supported using a simple handlebars template\n  - Validate request payloads\n\n## Philosophy\n\n- Rely on TypeScript type annotations to generate API metadata if possible\n- If regular type annotations aren't an appropriate way to express metadata, use decorators\n- Use jsdoc for pure text metadata (e.g. endpoint descriptions)\n- Minimize boilerplate\n- Models are best represented by interfaces (pure data structures), but can also be represented by classes\n- Runtime validation of tsoa should behave as closely as possible to the specifications that the generated OpenAPI 2/3 schema describes. Any differences in validation logic are clarified by logging warnings during the generation of the OpenAPI Specification (OAS) and/or the routes.\n  - Please note that by enabling OpenAPI 3 you minimize the chances of divergent validation logic since OpenAPI 3 has a more expressive schema syntax.\n\n## Getting Started\n\n- [Documentation](https://tsoa-community.github.io/docs/)\n- [API Reference](https://tsoa-community.github.io/reference/)\n- [Getting started guide](https://tsoa-community.github.io/docs/getting-started)\n\n## Examples\n\nCheck out the [guides](https://tsoa-community.github.io/docs/getting-started)\n\nSee example controllers in [the tests](tests/fixtures/controllers)\n\nSee example models in [the tests](tests/fixtures/testModel.ts)\n\n## Help wanted\n\n### Contributing code\n\nTo contribute (via a PR), please first see the [Contributing Guide](https://github.com/lukeautry/tsoa/tree/master/docs/CONTRIBUTING.md)\n\n### Becoming a maintainer\n\ntsoa wants additional maintainers! The library has increased in popularity and has quite a lot of pull requests and issues. [Please post in this issue](https://github.com/lukeautry/tsoa/issues/236) if you're willing to take on the role of a maintainer.\n","readmeFilename":"README.MD"}