{"owner":"lukeautry","repo":"tsoa","hasSkills":true,"totalSkillsCount":11,"totalTokensCount":2672,"categories":["plugin-manifest","anthropic-skill"],"hasMcp":false,"mcpConfig":null,"found":["packages/runtime/README.MD","packages/runtime/package.json","packages/tsoa/package.json","packages/tsoa/README.MD","packages/tsoa/tsconfig.json","packages/runtime/typedoc.json","packages/tsoa/typedoc.json","packages/runtime/tsconfig.json","packages/cli/README.MD","packages/cli/package.json","packages/cli/typedoc.json"],"skills":{"packages/runtime/README.MD":"This package contains the runtime helpers for tsoa.\n\nFor a comprehensive Readme, please refer to [the main readme](https://github.com/lukeautry/tsoa#readme).\n","packages/runtime/package.json":"{\n  \"name\": \"@tsoa/runtime\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn tsc\",\n    \"tsc\": \"tsc\",\n    \"watch\": \"tsc -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@hapi/boom\": \"^10.0.1\",\n    \"@hapi/hapi\": \"^21.3.12\",\n    \"@types/koa\": \"^2.15.0\",\n    \"@types/multer\": \"^1.4.12\",\n    \"express\": \"^4.21.2\",\n    \"reflect-metadata\": \"^0.2.2\",\n    \"validator\": \"^13.12.0\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^18.0.0\",\n    \"@types/validator\": \"^13.12.2\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n","packages/tsoa/package.json":"{\n  \"name\": \"tsoa\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn tsc\",\n    \"tsc\": \"tsc -b\",\n    \"watch\": \"tsc -b -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@tsoa/cli\": \"^7.0.0-alpha.0\",\n    \"@tsoa/runtime\": \"^7.0.0-alpha.0\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^18.0.0\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"bin\": {\n    \"tsoa\": \"dist/cli.js\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n","packages/tsoa/README.MD":"<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","packages/tsoa/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"sourceMap\": true,\n    \"module\": \"commonjs\",\n    \"composite\": true,\n    \"target\": \"es2021\",\n    \"lib\": [\"es2021\"],\n    \"typeRoots\": [\"node_modules/@types\", \"./typings\"],\n    \"experimentalDecorators\": true,\n    \"declaration\": true,\n    \"noUnusedLocals\": true,\n    \"newLine\": \"LF\",\n    \"noUnusedParameters\": false,\n    \"emitDecoratorMetadata\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true\n  },\n  \"references\": [{ \"path\": \"../runtime\" }, { \"path\": \"../cli\" }]\n}\n","packages/runtime/typedoc.json":"{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n","packages/tsoa/typedoc.json":"{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n","packages/runtime/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"sourceMap\": true,\n    \"module\": \"commonjs\",\n    \"types\": [\"node\"],\n    \"composite\": true,\n    \"target\": \"es2021\",\n    \"lib\": [\"es2021\"],\n    \"typeRoots\": [\"node_modules/@types\", \"./typings\"],\n    \"experimentalDecorators\": true,\n    \"declaration\": true,\n    \"noUnusedLocals\": true,\n    \"newLine\": \"LF\",\n    \"noUnusedParameters\": false,\n    \"emitDecoratorMetadata\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true\n  }\n}\n","packages/cli/README.MD":"This package contains the tsoa build time components.\n\nFor a comprehensive Readme, please refer to [the main readme](https://github.com/lukeautry/tsoa#readme).\n","packages/cli/package.json":"{\n  \"name\": \"@tsoa/cli\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn clean && yarn tsc && yarn copy-templates\",\n    \"copy-templates\": \"copyfiles -u 1 ./src/routeGeneration/templates/*.hbs ./dist\",\n    \"clean\": \"rimraf dist tsconfig.tsbuildinfo\",\n    \"tsc\": \"tsc -b\",\n    \"watch\": \"tsc -b -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@tsoa/runtime\": \"^7.0.0-alpha.0\",\n    \"@types/multer\": \"^1.4.12\",\n    \"fs-extra\": \"^11.2.0\",\n    \"glob\": \"^10.3.10\",\n    \"handlebars\": \"^4.7.8\",\n    \"merge-anything\": \"^5.1.7\",\n    \"minimatch\": \"^9.0.1\",\n    \"ts-deepmerge\": \"^7.0.2\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\",\n    \"validator\": \"^13.12.0\",\n    \"yaml\": \"^2.6.1\",\n    \"yargs\": \"^17.7.1\"\n  },\n  \"devDependencies\": {\n    \"@types/glob\": \"^8.1.0\",\n    \"@types/minimatch\": \"^5.1.0\",\n    \"@types/node\": \"^18.0.0\",\n    \"@types/validator\": \"^13.12.2\",\n    \"@types/yargs\": \"^17.0.33\",\n    \"copyfiles\": \"^2.4.1\",\n    \"rimraf\": \"^5.0.5\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"bin\": {\n    \"tsoa\": \"dist/cli.js\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n","packages/cli/typedoc.json":"{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n"},"files":{"packages/runtime/README.MD":"This package contains the runtime helpers for tsoa.\n\nFor a comprehensive Readme, please refer to [the main readme](https://github.com/lukeautry/tsoa#readme).\n","packages/runtime/package.json":"{\n  \"name\": \"@tsoa/runtime\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn tsc\",\n    \"tsc\": \"tsc\",\n    \"watch\": \"tsc -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@hapi/boom\": \"^10.0.1\",\n    \"@hapi/hapi\": \"^21.3.12\",\n    \"@types/koa\": \"^2.15.0\",\n    \"@types/multer\": \"^1.4.12\",\n    \"express\": \"^4.21.2\",\n    \"reflect-metadata\": \"^0.2.2\",\n    \"validator\": \"^13.12.0\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^18.0.0\",\n    \"@types/validator\": \"^13.12.2\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n","packages/tsoa/package.json":"{\n  \"name\": \"tsoa\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn tsc\",\n    \"tsc\": \"tsc -b\",\n    \"watch\": \"tsc -b -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@tsoa/cli\": \"^7.0.0-alpha.0\",\n    \"@tsoa/runtime\": \"^7.0.0-alpha.0\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^18.0.0\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"bin\": {\n    \"tsoa\": \"dist/cli.js\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n","packages/tsoa/README.MD":"<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","packages/tsoa/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"sourceMap\": true,\n    \"module\": \"commonjs\",\n    \"composite\": true,\n    \"target\": \"es2021\",\n    \"lib\": [\"es2021\"],\n    \"typeRoots\": [\"node_modules/@types\", \"./typings\"],\n    \"experimentalDecorators\": true,\n    \"declaration\": true,\n    \"noUnusedLocals\": true,\n    \"newLine\": \"LF\",\n    \"noUnusedParameters\": false,\n    \"emitDecoratorMetadata\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true\n  },\n  \"references\": [{ \"path\": \"../runtime\" }, { \"path\": \"../cli\" }]\n}\n","packages/runtime/typedoc.json":"{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n","packages/tsoa/typedoc.json":"{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n","packages/runtime/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"sourceMap\": true,\n    \"module\": \"commonjs\",\n    \"types\": [\"node\"],\n    \"composite\": true,\n    \"target\": \"es2021\",\n    \"lib\": [\"es2021\"],\n    \"typeRoots\": [\"node_modules/@types\", \"./typings\"],\n    \"experimentalDecorators\": true,\n    \"declaration\": true,\n    \"noUnusedLocals\": true,\n    \"newLine\": \"LF\",\n    \"noUnusedParameters\": false,\n    \"emitDecoratorMetadata\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true\n  }\n}\n","packages/cli/README.MD":"This package contains the tsoa build time components.\n\nFor a comprehensive Readme, please refer to [the main readme](https://github.com/lukeautry/tsoa#readme).\n","packages/cli/package.json":"{\n  \"name\": \"@tsoa/cli\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn clean && yarn tsc && yarn copy-templates\",\n    \"copy-templates\": \"copyfiles -u 1 ./src/routeGeneration/templates/*.hbs ./dist\",\n    \"clean\": \"rimraf dist tsconfig.tsbuildinfo\",\n    \"tsc\": \"tsc -b\",\n    \"watch\": \"tsc -b -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@tsoa/runtime\": \"^7.0.0-alpha.0\",\n    \"@types/multer\": \"^1.4.12\",\n    \"fs-extra\": \"^11.2.0\",\n    \"glob\": \"^10.3.10\",\n    \"handlebars\": \"^4.7.8\",\n    \"merge-anything\": \"^5.1.7\",\n    \"minimatch\": \"^9.0.1\",\n    \"ts-deepmerge\": \"^7.0.2\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\",\n    \"validator\": \"^13.12.0\",\n    \"yaml\": \"^2.6.1\",\n    \"yargs\": \"^17.7.1\"\n  },\n  \"devDependencies\": {\n    \"@types/glob\": \"^8.1.0\",\n    \"@types/minimatch\": \"^5.1.0\",\n    \"@types/node\": \"^18.0.0\",\n    \"@types/validator\": \"^13.12.2\",\n    \"@types/yargs\": \"^17.0.33\",\n    \"copyfiles\": \"^2.4.1\",\n    \"rimraf\": \"^5.0.5\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"bin\": {\n    \"tsoa\": \"dist/cli.js\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n","packages/cli/typedoc.json":"{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n"},"items":[{"name":"package.json","path":"packages/cli/package.json","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/cli/package.json","title":"@tsoa/cli","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"@tsoa/cli\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn clean && yarn tsc && yarn copy-templates\",\n    \"copy-templates\": \"copyfiles -u 1 ./src/routeGeneration/templates/*.hbs ./dist\",\n    \"clean\": \"rimraf dist tsconfig.tsbuildinfo\",\n    \"tsc\": \"tsc -b\",\n    \"watch\": \"tsc -b -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@tsoa/runtime\": \"^7.0.0-alpha.0\",\n    \"@types/multer\": \"^1.4.12\",\n    \"fs-extra\": \"^11.2.0\",\n    \"glob\": \"^10.3.10\",\n    \"handlebars\": \"^4.7.8\",\n    \"merge-anything\": \"^5.1.7\",\n    \"minimatch\": \"^9.0.1\",\n    \"ts-deepmerge\": \"^7.0.2\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\",\n    \"validator\": \"^13.12.0\",\n    \"yaml\": \"^2.6.1\",\n    \"yargs\": \"^17.7.1\"\n  },\n  \"devDependencies\": {\n    \"@types/glob\": \"^8.1.0\",\n    \"@types/minimatch\": \"^5.1.0\",\n    \"@types/node\": \"^18.0.0\",\n    \"@types/validator\": \"^13.12.2\",\n    \"@types/yargs\": \"^17.0.33\",\n    \"copyfiles\": \"^2.4.1\",\n    \"rimraf\": \"^5.0.5\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"bin\": {\n    \"tsoa\": \"dist/cli.js\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n","frontmatter":{"name":"@tsoa/cli","description":"Build swagger-compliant REST APIs using TypeScript and Node","version":"7.0.0-alpha.0","main":"./dist/index.js","typings":"./dist/index.d.ts","files":["dist"],"keywords":["typescript","openapi","swagger","server","node","node.js","codegen","generation","express","hapi.js","koa"],"scripts":{"build":"yarn clean && yarn tsc && yarn copy-templates","copy-templates":"copyfiles -u 1 ./src/routeGeneration/templates/*.hbs ./dist","clean":"rimraf dist tsconfig.tsbuildinfo","tsc":"tsc -b","watch":"tsc -b -w"},"author":"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)","license":"MIT","dependencies":{"@tsoa/runtime":"^7.0.0-alpha.0","@types/multer":"^1.4.12","fs-extra":"^11.2.0","glob":"^10.3.10","handlebars":"^4.7.8","merge-anything":"^5.1.7","minimatch":"^9.0.1","ts-deepmerge":"^7.0.2","typescript":"^5.7.2 || ^6.0.3","validator":"^13.12.0","yaml":"^2.6.1","yargs":"^17.7.1"},"devDependencies":{"@types/glob":"^8.1.0","@types/minimatch":"^5.1.0","@types/node":"^18.0.0","@types/validator":"^13.12.2","@types/yargs":"^17.0.33","copyfiles":"^2.4.1","rimraf":"^5.0.5"},"repository":{"type":"git","url":"https://github.com/lukeautry/tsoa.git"},"bugs":{"url":"https://github.com/lukeautry/tsoa/issues"},"bin":{"tsoa":"dist/cli.js"},"engines":{"yarn":">=1.9.4","node":">=18.0.0"},"engineStrict":true,"publishConfig":{"access":"public"}},"isInternal":false,"tokens":641,"sizeBytes":1728},{"name":"typedoc.json","path":"packages/cli/typedoc.json","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/cli/typedoc.json","title":"Cli Skill","category":"anthropic-skill","format":"json","content":"{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n","frontmatter":{"$schema":"https://typedoc.org/schema.json","entryPoints":["src/index.ts"]},"isInternal":false,"tokens":25,"sizeBytes":86},{"name":"package.json","path":"packages/runtime/package.json","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/runtime/package.json","title":"@tsoa/runtime","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"@tsoa/runtime\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn tsc\",\n    \"tsc\": \"tsc\",\n    \"watch\": \"tsc -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@hapi/boom\": \"^10.0.1\",\n    \"@hapi/hapi\": \"^21.3.12\",\n    \"@types/koa\": \"^2.15.0\",\n    \"@types/multer\": \"^1.4.12\",\n    \"express\": \"^4.21.2\",\n    \"reflect-metadata\": \"^0.2.2\",\n    \"validator\": \"^13.12.0\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^18.0.0\",\n    \"@types/validator\": \"^13.12.2\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n","frontmatter":{"name":"@tsoa/runtime","description":"Build swagger-compliant REST APIs using TypeScript and Node","version":"7.0.0-alpha.0","main":"./dist/index.js","typings":"./dist/index.d.ts","files":["dist"],"keywords":["typescript","openapi","swagger","server","node","node.js","codegen","generation","express","hapi.js","koa"],"scripts":{"build":"yarn tsc","tsc":"tsc","watch":"tsc -w"},"author":"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)","license":"MIT","dependencies":{"@hapi/boom":"^10.0.1","@hapi/hapi":"^21.3.12","@types/koa":"^2.15.0","@types/multer":"^1.4.12","express":"^4.21.2","reflect-metadata":"^0.2.2","validator":"^13.12.0"},"devDependencies":{"@types/node":"^18.0.0","@types/validator":"^13.12.2","typescript":"^5.7.2 || ^6.0.3"},"repository":{"type":"git","url":"https://github.com/lukeautry/tsoa.git"},"bugs":{"url":"https://github.com/lukeautry/tsoa/issues"},"engines":{"yarn":">=1.9.4","node":">=18.0.0"},"engineStrict":true,"publishConfig":{"access":"public"}},"isInternal":false,"tokens":457,"sizeBytes":1262},{"name":"tsconfig.json","path":"packages/runtime/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/runtime/tsconfig.json","title":"Runtime Skill","category":"anthropic-skill","format":"json","content":"{\n  \"compilerOptions\": {\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"sourceMap\": true,\n    \"module\": \"commonjs\",\n    \"types\": [\"node\"],\n    \"composite\": true,\n    \"target\": \"es2021\",\n    \"lib\": [\"es2021\"],\n    \"typeRoots\": [\"node_modules/@types\", \"./typings\"],\n    \"experimentalDecorators\": true,\n    \"declaration\": true,\n    \"noUnusedLocals\": true,\n    \"newLine\": \"LF\",\n    \"noUnusedParameters\": false,\n    \"emitDecoratorMetadata\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true\n  }\n}\n","frontmatter":{"compilerOptions":{"outDir":"dist","rootDir":"src","sourceMap":true,"module":"commonjs","types":["node"],"composite":true,"target":"es2021","lib":["es2021"],"typeRoots":["node_modules/@types","./typings"],"experimentalDecorators":true,"declaration":true,"noUnusedLocals":true,"newLine":"LF","noUnusedParameters":false,"emitDecoratorMetadata":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"esModuleInterop":true,"strict":true}},"isInternal":false,"tokens":166,"sizeBytes":569},{"name":"typedoc.json","path":"packages/runtime/typedoc.json","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/runtime/typedoc.json","title":"Runtime Skill","category":"anthropic-skill","format":"json","content":"{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n","frontmatter":{"$schema":"https://typedoc.org/schema.json","entryPoints":["src/index.ts"]},"isInternal":false,"tokens":25,"sizeBytes":86},{"name":"package.json","path":"packages/tsoa/package.json","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/tsoa/package.json","title":"tsoa","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"tsoa\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn tsc\",\n    \"tsc\": \"tsc -b\",\n    \"watch\": \"tsc -b -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@tsoa/cli\": \"^7.0.0-alpha.0\",\n    \"@tsoa/runtime\": \"^7.0.0-alpha.0\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^18.0.0\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"bin\": {\n    \"tsoa\": \"dist/cli.js\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n","frontmatter":{"name":"tsoa","description":"Build swagger-compliant REST APIs using TypeScript and Node","version":"7.0.0-alpha.0","main":"./dist/index.js","typings":"./dist/index.d.ts","files":["dist"],"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":"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)","license":"MIT","dependencies":{"@tsoa/cli":"^7.0.0-alpha.0","@tsoa/runtime":"^7.0.0-alpha.0"},"devDependencies":{"@types/node":"^18.0.0","typescript":"^5.7.2 || ^6.0.3"},"repository":{"type":"git","url":"https://github.com/lukeautry/tsoa.git"},"bugs":{"url":"https://github.com/lukeautry/tsoa/issues"},"bin":{"tsoa":"dist/cli.js"},"engines":{"yarn":">=1.9.4","node":">=18.0.0"},"engineStrict":true,"publishConfig":{"access":"public"}},"isInternal":false,"tokens":410,"sizeBytes":1130},{"name":"tsconfig.json","path":"packages/tsoa/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/tsoa/tsconfig.json","title":"Tsoa Skill","category":"anthropic-skill","format":"json","content":"{\n  \"compilerOptions\": {\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"sourceMap\": true,\n    \"module\": \"commonjs\",\n    \"composite\": true,\n    \"target\": \"es2021\",\n    \"lib\": [\"es2021\"],\n    \"typeRoots\": [\"node_modules/@types\", \"./typings\"],\n    \"experimentalDecorators\": true,\n    \"declaration\": true,\n    \"noUnusedLocals\": true,\n    \"newLine\": \"LF\",\n    \"noUnusedParameters\": false,\n    \"emitDecoratorMetadata\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true\n  },\n  \"references\": [{ \"path\": \"../runtime\" }, { \"path\": \"../cli\" }]\n}\n","frontmatter":{"compilerOptions":{"outDir":"dist","rootDir":"src","sourceMap":true,"module":"commonjs","composite":true,"target":"es2021","lib":["es2021"],"typeRoots":["node_modules/@types","./typings"],"experimentalDecorators":true,"declaration":true,"noUnusedLocals":true,"newLine":"LF","noUnusedParameters":false,"emitDecoratorMetadata":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"esModuleInterop":true,"strict":true},"references":[{"path":"../runtime"},{"path":"../cli"}]},"isInternal":false,"tokens":179,"sizeBytes":612},{"name":"typedoc.json","path":"packages/tsoa/typedoc.json","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/tsoa/typedoc.json","title":"Tsoa Skill","category":"anthropic-skill","format":"json","content":"{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n","frontmatter":{"$schema":"https://typedoc.org/schema.json","entryPoints":["src/index.ts"]},"isInternal":false,"tokens":25,"sizeBytes":86},{"name":"README.MD","path":"packages/cli/README.MD","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/cli/README.MD","title":"cli Documentation","category":"plugin-manifest","format":"markdown","content":"This package contains the tsoa build time components.\n\nFor a comprehensive Readme, please refer to [the main readme](https://github.com/lukeautry/tsoa#readme).\n","isInternal":false,"tokens":41,"sizeBytes":160},{"name":"README.MD","path":"packages/runtime/README.MD","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/runtime/README.MD","title":"runtime Documentation","category":"plugin-manifest","format":"markdown","content":"This package contains the runtime helpers for tsoa.\n\nFor a comprehensive Readme, please refer to [the main readme](https://github.com/lukeautry/tsoa#readme).\n","isInternal":false,"tokens":41,"sizeBytes":158},{"name":"README.MD","path":"packages/tsoa/README.MD","rawUrl":"https://raw.githubusercontent.com/lukeautry/tsoa/HEAD/packages/tsoa/README.MD","title":"tsoa Documentation","category":"plugin-manifest","format":"markdown","content":"<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","isInternal":false,"tokens":662,"sizeBytes":2849}],"systemPromptSnippet":"<yakaai_skills repo=\"lukeautry/tsoa\">\n<!-- File: packages/cli/package.json (Tokens: ~641 | Category: anthropic-skill) -->\n{\n  \"name\": \"@tsoa/cli\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn clean && yarn tsc && yarn copy-templates\",\n    \"copy-templates\": \"copyfiles -u 1 ./src/routeGeneration/templates/*.hbs ./dist\",\n    \"clean\": \"rimraf dist tsconfig.tsbuildinfo\",\n    \"tsc\": \"tsc -b\",\n    \"watch\": \"tsc -b -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@tsoa/runtime\": \"^7.0.0-alpha.0\",\n    \"@types/multer\": \"^1.4.12\",\n    \"fs-extra\": \"^11.2.0\",\n    \"glob\": \"^10.3.10\",\n    \"handlebars\": \"^4.7.8\",\n    \"merge-anything\": \"^5.1.7\",\n    \"minimatch\": \"^9.0.1\",\n    \"ts-deepmerge\": \"^7.0.2\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\",\n    \"validator\": \"^13.12.0\",\n    \"yaml\": \"^2.6.1\",\n    \"yargs\": \"^17.7.1\"\n  },\n  \"devDependencies\": {\n    \"@types/glob\": \"^8.1.0\",\n    \"@types/minimatch\": \"^5.1.0\",\n    \"@types/node\": \"^18.0.0\",\n    \"@types/validator\": \"^13.12.2\",\n    \"@types/yargs\": \"^17.0.33\",\n    \"copyfiles\": \"^2.4.1\",\n    \"rimraf\": \"^5.0.5\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"bin\": {\n    \"tsoa\": \"dist/cli.js\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\n<!-- File: packages/cli/typedoc.json (Tokens: ~25 | Category: anthropic-skill) -->\n{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n\n<!-- File: packages/runtime/package.json (Tokens: ~457 | Category: anthropic-skill) -->\n{\n  \"name\": \"@tsoa/runtime\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn tsc\",\n    \"tsc\": \"tsc\",\n    \"watch\": \"tsc -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@hapi/boom\": \"^10.0.1\",\n    \"@hapi/hapi\": \"^21.3.12\",\n    \"@types/koa\": \"^2.15.0\",\n    \"@types/multer\": \"^1.4.12\",\n    \"express\": \"^4.21.2\",\n    \"reflect-metadata\": \"^0.2.2\",\n    \"validator\": \"^13.12.0\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^18.0.0\",\n    \"@types/validator\": \"^13.12.2\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\n<!-- File: packages/runtime/tsconfig.json (Tokens: ~166 | Category: anthropic-skill) -->\n{\n  \"compilerOptions\": {\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"sourceMap\": true,\n    \"module\": \"commonjs\",\n    \"types\": [\"node\"],\n    \"composite\": true,\n    \"target\": \"es2021\",\n    \"lib\": [\"es2021\"],\n    \"typeRoots\": [\"node_modules/@types\", \"./typings\"],\n    \"experimentalDecorators\": true,\n    \"declaration\": true,\n    \"noUnusedLocals\": true,\n    \"newLine\": \"LF\",\n    \"noUnusedParameters\": false,\n    \"emitDecoratorMetadata\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true\n  }\n}\n\n<!-- File: packages/runtime/typedoc.json (Tokens: ~25 | Category: anthropic-skill) -->\n{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n\n<!-- File: packages/tsoa/package.json (Tokens: ~410 | Category: anthropic-skill) -->\n{\n  \"name\": \"tsoa\",\n  \"description\": \"Build swagger-compliant REST APIs using TypeScript and Node\",\n  \"version\": \"7.0.0-alpha.0\",\n  \"main\": \"./dist/index.js\",\n  \"typings\": \"./dist/index.d.ts\",\n  \"files\": [\n    \"dist\"\n  ],\n  \"keywords\": [\n    \"typescript\",\n    \"openapi\",\n    \"swagger\",\n    \"server\",\n    \"node\",\n    \"node.js\",\n    \"codegen\",\n    \"generation\",\n    \"express\",\n    \"hapi.js\",\n    \"koa\"\n  ],\n  \"scripts\": {\n    \"build\": \"yarn tsc\",\n    \"tsc\": \"tsc -b\",\n    \"watch\": \"tsc -b -w\"\n  },\n  \"author\": \"Luke Autry <lukeautry@gmail.com> (http://www.lukeautry.com)\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"@tsoa/cli\": \"^7.0.0-alpha.0\",\n    \"@tsoa/runtime\": \"^7.0.0-alpha.0\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^18.0.0\",\n    \"typescript\": \"^5.7.2 || ^6.0.3\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/lukeautry/tsoa.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/lukeautry/tsoa/issues\"\n  },\n  \"bin\": {\n    \"tsoa\": \"dist/cli.js\"\n  },\n  \"engines\": {\n    \"yarn\": \">=1.9.4\",\n    \"node\": \">=18.0.0\"\n  },\n  \"engineStrict\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\n<!-- File: packages/tsoa/tsconfig.json (Tokens: ~179 | Category: anthropic-skill) -->\n{\n  \"compilerOptions\": {\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"sourceMap\": true,\n    \"module\": \"commonjs\",\n    \"composite\": true,\n    \"target\": \"es2021\",\n    \"lib\": [\"es2021\"],\n    \"typeRoots\": [\"node_modules/@types\", \"./typings\"],\n    \"experimentalDecorators\": true,\n    \"declaration\": true,\n    \"noUnusedLocals\": true,\n    \"newLine\": \"LF\",\n    \"noUnusedParameters\": false,\n    \"emitDecoratorMetadata\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"esModuleInterop\": true,\n    \"strict\": true\n  },\n  \"references\": [{ \"path\": \"../runtime\" }, { \"path\": \"../cli\" }]\n}\n\n<!-- File: packages/tsoa/typedoc.json (Tokens: ~25 | Category: anthropic-skill) -->\n{\n  \"$schema\": \"https://typedoc.org/schema.json\",\n  \"entryPoints\": [\"src/index.ts\"]\n}\n\n<!-- File: packages/cli/README.MD (Tokens: ~41 | Category: plugin-manifest) -->\nThis package contains the tsoa build time components.\n\nFor a comprehensive Readme, please refer to [the main readme](https://github.com/lukeautry/tsoa#readme).\n\n<!-- File: packages/runtime/README.MD (Tokens: ~41 | Category: plugin-manifest) -->\nThis package contains the runtime helpers for tsoa.\n\nFor a comprehensive Readme, please refer to [the main readme](https://github.com/lukeautry/tsoa#readme).\n\n<!-- File: packages/tsoa/README.MD (Tokens: ~662 | Category: plugin-manifest) -->\n<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</yakaai_skills>"}