{"_id":"@arabasta/eslint-plugin-tsoa","_rev":"4-6f432396258184a5b4b4cd69aa151423","name":"@arabasta/eslint-plugin-tsoa","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"@arabasta/eslint-plugin-tsoa","version":"1.0.0","keywords":["eslint","eslint-plugin","eslintplugin","tsoa"],"author":{"name":"Stoyan Kolev"},"license":"MIT","_id":"@arabasta/eslint-plugin-tsoa@1.0.0","maintainers":[{"name":"hristo-kolev","email":"hristo.a.kolev@gmail.com"},{"name":"stoyan.a.kolev","email":"stoyan.a.kolev@gmail.com"}],"homepage":"https://github.com/CloudNStoyan/arabasta#readme","bugs":{"url":"https://github.com/CloudNStoyan/arabasta/issues"},"dist":{"shasum":"7eca6d5873316a08570f17ccf83f278e39459a85","tarball":"https://registry.npmjs.org/@arabasta/eslint-plugin-tsoa/-/eslint-plugin-tsoa-1.0.0.tgz","fileCount":18,"integrity":"sha512-ok3GFeKpPKpQDTrqrOFzn4W/pg62hmjvoanZctTfjAO5bGugyRV0N480/DnGoOMi8WWEqjfiu8BcM1mAS4mJ6w==","signatures":[{"sig":"MEYCIQDZlIkcL+NaGuHVlUWPI7fRm+F1mMsDmHkgIvmx6Mw5lAIhAJXpDuuwvOc8/cyZ4Gno0MpvAQzXeY/VIhxPa7N0vChl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arabasta%2feslint-plugin-tsoa@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66696},"main":"./dist/eslint-plugin-tsoa.js","type":"commonjs","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","default":"./dist/eslint-plugin-tsoa.js"},"./package.json":"./package.json"},"gitHead":"0cead6ac8e7a4ac8c5dc27d8f1b62c52efb62246","scripts":{"test":"npm run test:only && npm run lint:eslint-docs","build":"rimraf dist && tsc --p tsconfig.build.json","format":"prettier --cache --write .","test:only":"vitest run --dir ./src/rules","typecheck":"tsc --p tsconfig.json --noEmit","format-check":"prettier --cache --check .","lint:eslint-docs":"eslint-doc-generator --check","update:eslint-docs":"eslint-doc-generator"},"_npmUser":{"name":"stoyan.a.kolev","email":"stoyan.a.kolev@gmail.com"},"overrides":{"@types/eslint":"file:./"},"repository":{"url":"git+https://github.com/CloudNStoyan/arabasta.git","type":"git","directory":"eslint-plugin-tsoa"},"_npmVersion":"10.8.2","description":"ESLint plugin for tsoa rules","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@es-joy/jsdoccomment":"^0.50.0","@typescript-eslint/utils":"^8.8.1","@typescript-eslint/type-utils":"^8.12.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","typescript":"~5.3.3","@types/node":"^22.8.7","eslint-doc-generator":"^1.7.1","json-schema-to-typescript":"^15.0.2","@typescript-eslint/rule-tester":"^8.12.2"},"peerDependencies":{"eslint":">=8.0.0","typescript":">=5.0.0","@typescript-eslint/parser":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tsoa_1.0.0_1730887432299_0.2068309532172954","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@arabasta/eslint-plugin-tsoa","version":"1.1.0","keywords":["eslint","eslint-plugin","eslintplugin","tsoa"],"author":{"name":"Stoyan Kolev"},"license":"MIT","_id":"@arabasta/eslint-plugin-tsoa@1.1.0","maintainers":[{"name":"hristo-kolev","email":"hristo.a.kolev@gmail.com"},{"name":"stoyan.a.kolev","email":"stoyan.a.kolev@gmail.com"}],"homepage":"https://github.com/CloudNStoyan/arabasta#readme","bugs":{"url":"https://github.com/CloudNStoyan/arabasta/issues"},"dist":{"shasum":"9a679524175aca6be033a3c1976bae1b3b347e91","tarball":"https://registry.npmjs.org/@arabasta/eslint-plugin-tsoa/-/eslint-plugin-tsoa-1.1.0.tgz","fileCount":19,"integrity":"sha512-BRVaDdhMYpCRJz7rMT5pWnmAvYVUZTj9C2BeD0uzkVbIXhWoh1zm60u12NpaQNWdGy5oMWGWW19uQNc2fqWNwQ==","signatures":[{"sig":"MEUCIGA9krwDE/J41GzuomnYpLewb8SsTyaYdZZV3whZvEa0AiEAhBBif1eqzVXKVvSe3EtJIUt1rRxqDsMonJG4gADLW7Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arabasta%2feslint-plugin-tsoa@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68281},"main":"./dist/eslint-plugin-tsoa.js","type":"commonjs","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","default":"./dist/eslint-plugin-tsoa.js"},"./package.json":"./package.json"},"gitHead":"4ca95239d4a9fdaafac7290f133aec7302846e45","scripts":{"test":"npm run test:only && npm run lint:eslint-docs","build":"rimraf dist && tsc --p tsconfig.build.json","format":"prettier --cache --write .","test:only":"vitest run --dir ./src/rules","typecheck":"tsc --p tsconfig.json --noEmit","format-check":"prettier --cache --check .","lint:eslint-docs":"eslint-doc-generator --check","update:eslint-docs":"eslint-doc-generator"},"_npmUser":{"name":"stoyan.a.kolev","email":"stoyan.a.kolev@gmail.com"},"overrides":{"@types/eslint":"file:./"},"repository":{"url":"git+https://github.com/CloudNStoyan/arabasta.git","type":"git","directory":"eslint-plugin-tsoa"},"_npmVersion":"10.8.2","description":"ESLint plugin for tsoa rules","directories":{},"_nodeVersion":"20.18.0","dependencies":{"@es-joy/jsdoccomment":"^0.50.0","@typescript-eslint/utils":"^8.8.1","@typescript-eslint/type-utils":"^8.12.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^2.1.4","prettier":"^3.3.3","typescript":"~5.3.3","@types/node":"^22.8.7","eslint-doc-generator":"^1.7.1","json-schema-to-typescript":"^15.0.2","@typescript-eslint/rule-tester":"^8.12.2"},"peerDependencies":{"eslint":">=8.0.0","typescript":">=5.0.0","@typescript-eslint/parser":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tsoa_1.1.0_1731404967114_0.53024708487569","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@arabasta/eslint-plugin-tsoa","version":"1.1.1","keywords":["eslint","eslint-plugin","eslintplugin","tsoa"],"author":{"name":"Stoyan Kolev"},"license":"MIT","_id":"@arabasta/eslint-plugin-tsoa@1.1.1","maintainers":[{"name":"stoyan.a.kolev","email":"stoyan.a.kolev@gmail.com"},{"name":"hristo-kolev","email":"hristo.a.kolev@gmail.com"}],"homepage":"https://github.com/CloudNStoyan/arabasta#readme","bugs":{"url":"https://github.com/CloudNStoyan/arabasta/issues"},"dist":{"shasum":"9fcf71635be8038d2dbe42efe570caf82b895870","tarball":"https://registry.npmjs.org/@arabasta/eslint-plugin-tsoa/-/eslint-plugin-tsoa-1.1.1.tgz","fileCount":19,"integrity":"sha512-eY88eFKN2u+zNeRfJ4iuMnjVa74rcexHlG70g6tkWktT/E1jK3wSaHRaeAbBp1R6wPr9agyN/aBVsGEHA2rOPg==","signatures":[{"sig":"MEUCIH4lYGoFCLyR39LE+hOWsLFOHtz4ISAAOmQ0jSr3qeIOAiEAmvb01tvs5NJqvEfh2beHEl3VcJMh94vXta2ft8hwWIU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arabasta%2feslint-plugin-tsoa@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67982},"main":"./dist/eslint-plugin-tsoa.js","type":"commonjs","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","default":"./dist/eslint-plugin-tsoa.js"},"./package.json":"./package.json"},"gitHead":"c33cc0088a392a7e32d3332a1c4944368df08600","scripts":{"test":"npm run test:only && npm run lint:eslint-docs","build":"rimraf dist && tsc --p tsconfig.build.json","format":"prettier --cache --write .","test:only":"vitest run --dir ./src/rules","typecheck":"tsc --p tsconfig.json --noEmit","format-check":"prettier --cache --check .","lint:eslint-docs":"eslint-doc-generator --check","update:eslint-docs":"eslint-doc-generator"},"_npmUser":{"name":"stoyan.a.kolev","email":"stoyan.a.kolev@gmail.com"},"repository":{"url":"git+https://github.com/CloudNStoyan/arabasta.git","type":"git","directory":"eslint-plugin-tsoa"},"_npmVersion":"10.8.2","description":"ESLint plugin for tsoa rules","directories":{},"_nodeVersion":"20.18.1","dependencies":{"@es-joy/jsdoccomment":"^0.50.0","@typescript-eslint/utils":"^8.8.1","@typescript-eslint/type-utils":"^8.12.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","vitest":"^2.1.8","prettier":"^3.4.2","typescript":"~5.7.2","@types/node":"^22.10.1","eslint-doc-generator":"^1.7.1","json-schema-to-typescript":"^15.0.2","@typescript-eslint/rule-tester":"^8.17.0"},"peerDependencies":{"eslint":">=8.0.0","typescript":">=5.0.0","@typescript-eslint/parser":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-tsoa_1.1.1_1733575291457_0.26393419722482125","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@arabasta/eslint-plugin-tsoa","version":"1.1.2","type":"commonjs","description":"ESLint plugin for tsoa rules","author":{"name":"Stoyan Kolev"},"repository":{"type":"git","url":"git+https://github.com/CloudNStoyan/arabasta.git","directory":"eslint-plugin-tsoa"},"types":"./index.d.ts","main":"./dist/eslint-plugin-tsoa.js","exports":{".":{"types":"./index.d.ts","default":"./dist/eslint-plugin-tsoa.js"},"./package.json":"./package.json"},"scripts":{"build":"rimraf dist && tsc --p tsconfig.build.json","format":"prettier --cache --write .","format-check":"prettier --cache --check .","lint:eslint-docs":"eslint-doc-generator --check","test":"npm run test:only && npm run lint:eslint-docs","test:only":"vitest run --dir ./src/rules","typecheck":"tsc --p tsconfig.json --noEmit","update:eslint-docs":"eslint-doc-generator"},"dependencies":{"@es-joy/jsdoccomment":"^0.50.0","@typescript-eslint/type-utils":"^8.19.0","@typescript-eslint/utils":"^8.8.1"},"devDependencies":{"@types/node":"^22.10.5","@typescript-eslint/rule-tester":"^8.19.0","eslint-doc-generator":"^2.0.2","json-schema-to-typescript":"^15.0.2","prettier":"^3.4.2","rimraf":"^6.0.1","typescript":"~5.9.3","vitest":"^4.1.0"},"peerDependencies":{"@typescript-eslint/parser":">=7.0.0","eslint":">=8.0.0","typescript":">=5.0.0"},"license":"MIT","keywords":["eslint","eslint-plugin","eslintplugin","tsoa"],"gitHead":"4225c8bf79a9581acb2a3a251d072ce4ff2e8da7","_id":"@arabasta/eslint-plugin-tsoa@1.1.2","bugs":{"url":"https://github.com/CloudNStoyan/arabasta/issues"},"homepage":"https://github.com/CloudNStoyan/arabasta#readme","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-B5RYQxVG/x2BnhWlRa78QhCmyATKLYudv1ulsIx4+utcus5GShJMgplTNZ1az90YOjxfNyjadvHjXbWdZyOA9w==","shasum":"90592fae48bb9b080f437d4c3ca0ade89ae1ac37","tarball":"https://registry.npmjs.org/@arabasta/eslint-plugin-tsoa/-/eslint-plugin-tsoa-1.1.2.tgz","fileCount":19,"unpackedSize":67982,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arabasta%2feslint-plugin-tsoa@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCv9ZO04RzeEeNpiyQJhSPzALh6s8pcvafKFonLuu0E5wIhAIsTv1Em6DJk379hF78Tf/KmqZj+vSN+KFdEquTsCMLE"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e37275ef-02a4-4572-8ff5-96f3d69a8462"}},"directories":{},"maintainers":[{"name":"stoyan.a.kolev","email":"stoyan.a.kolev@gmail.com"},{"name":"hristo-kolev","email":"hristo.a.kolev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin-tsoa_1.1.2_1775216661560_0.6485321828757691"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-06T10:03:52.192Z","modified":"2026-04-03T11:44:22.039Z","1.0.0":"2024-11-06T10:03:52.482Z","1.1.0":"2024-11-12T09:49:27.270Z","1.1.1":"2024-12-07T12:41:31.682Z","1.1.2":"2026-04-03T11:44:21.727Z"},"bugs":{"url":"https://github.com/CloudNStoyan/arabasta/issues"},"author":{"name":"Stoyan Kolev"},"license":"MIT","homepage":"https://github.com/CloudNStoyan/arabasta#readme","keywords":["eslint","eslint-plugin","eslintplugin","tsoa"],"repository":{"type":"git","url":"git+https://github.com/CloudNStoyan/arabasta.git","directory":"eslint-plugin-tsoa"},"description":"ESLint plugin for tsoa rules","maintainers":[{"name":"stoyan.a.kolev","email":"stoyan.a.kolev@gmail.com"},{"name":"hristo-kolev","email":"hristo.a.kolev@gmail.com"}],"readme":"# `@arabasta/eslint-plugin-tsoa`\n\n[![NPM Version](https://img.shields.io/npm/v/%40arabasta%2Feslint-plugin-tsoa)](https://www.npmjs.com/package/@arabasta/eslint-plugin-tsoa)\n[![NPM License](https://img.shields.io/npm/l/%40arabasta%2Feslint-plugin-tsoa)](https://github.com/CloudNStoyan/arabasta/blob/main/eslint-plugin-tsoa/LICENSE)\n\nESLint plugin for tsoa rules.\n\n## Installation\n\nAssuming you already have ESLint installed, run:\n\n```sh\n# npm\nnpm install --save-dev @arabasta/eslint-plugin-tsoa\n\n# yarn\nyarn add --dev @arabasta/eslint-plugin-tsoa\n\n# pnpm\npnpm add --save-dev @arabasta/eslint-plugin-tsoa\n```\n\n## Usage\n\n[Flat config](https://eslint.org/docs/latest/use/configure/configuration-files)\n(**eslint.config.js**)\n\n```js\n// ...\nimport arabastaTsoa from '@arabasta/eslint-plugin-tsoa';\n\nexport default [\n  // ...\n  arabastaTsoa.configs.recommended,\n];\n```\n\n[Legacy config](https://eslint.org/docs/latest/use/configure/configuration-files-deprecated)\n(**.eslintrc**)\n\n```json\n{\n  \"extends\": [\n    // ...\n    \"plugin:@arabasta/tsoa/recommended-legacy\"\n  ]\n}\n```\n\n## Rules\n\n<!-- begin auto-generated rules list -->\n\n💼 Configurations enabled in.\\\n✅ Set in the `recommended` configuration.\\\n🔧 Automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/user-guide/command-line-interface#--fix).\\\n💭 Requires [type information](https://typescript-eslint.io/linting/typed-linting).\n\n| Name                                                                                                       | Description                                                                                                                                           | 💼  | 🔧  | 💭  |\n| :--------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :-- | :-- | :-- |\n| [no-jsdoc-example-for-complex-property-type](docs/rules/no-jsdoc-example-for-complex-property-type.md)     | ban complex interface property types from having JSDoc's `@example` declaration                                                                       | ✅  |     | 💭  |\n| [require-example-decorator](docs/rules/require-example-decorator.md)                                       | require the `@Example` decorator on methods that return an array                                                                                      | ✅  |     |     |\n| [require-jsdoc-example-for-enum-property-type](docs/rules/require-jsdoc-example-for-enum-property-type.md) | require JSDoc's `@example` declaration for enum properties                                                                                            | ✅  |     | 💭  |\n| [require-jsdoc-returns](docs/rules/require-jsdoc-returns.md)                                               | require return statements to be documented                                                                                                            | ✅  |     | 💭  |\n| [require-property-example-decorator](docs/rules/require-property-example-decorator.md)                     | require the `@Example` decorator on class properties                                                                                                  | ✅  |     |     |\n| [require-security-metadata](docs/rules/require-security-metadata.md)                                       | require all security definitions used by the `@Security` decorator to be present in the `TSOA` config                                                 | ✅  |     |     |\n| [require-tags-decorator](docs/rules/require-tags-decorator.md)                                             | require `@Tags` decorator on controllers                                                                                                              | ✅  |     |     |\n| [require-tags-metadata](docs/rules/require-tags-metadata.md)                                               | require tags used by the `@Tags` decorator to be present in the `TSOA` config                                                                         | ✅  |     |     |\n| [valid-alternative-response](docs/rules/valid-alternative-response.md)                                     | require correct response decorators when using alternative responses                                                                                  | ✅  | 🔧  |     |\n| [valid-alternative-response-type](docs/rules/valid-alternative-response-type.md)                           | require alternative response's first type argument to be the same as its method's return type                                                         | ✅  | 🔧  | 💭  |\n| [valid-example-decorator-type](docs/rules/valid-example-decorator-type.md)                                 | require `@Example` decorator's first type argument to be the same as its method's return type or its property type                                    | ✅  |     | 💭  |\n| [valid-response-decorator-type](docs/rules/valid-response-decorator-type.md)                               | require `@Response` decorator's first type argument to exists if the status code begins with `4` or `5` and optionally to be one of the allowed types | ✅  |     | 💭  |\n| [valid-security-decorator](docs/rules/valid-security-decorator.md)                                         | require `@Response` decorator with a specific status code on methods or classes that are affected by the `@Security` decorator                        | ✅  |     |     |\n\n<!-- end auto-generated rules list -->\n","readmeFilename":"README.md"}