{"id":47692463,"url":"https://github.com/nick2bad4u/eslint-plugin-tsdoc-require-2","last_synced_at":"2026-05-04T06:01:21.978Z","repository":{"id":342917548,"uuid":"1175370985","full_name":"Nick2bad4u/eslint-plugin-tsdoc-require-2","owner":"Nick2bad4u","description":"ESLint plugin designed to require TSDoc comments for exported TypeScript declarations","archived":false,"fork":false,"pushed_at":"2026-05-01T05:25:31.000Z","size":5695,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T05:26:14.890Z","etag":null,"topics":["comments","eslint","eslint-plugin","eslintplugin","jsdoc","tsdoc"],"latest_commit_sha":null,"homepage":"https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nick2bad4u.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["Nick2bad4u"]}},"created_at":"2026-03-07T16:11:46.000Z","updated_at":"2026-05-01T05:25:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2","commit_stats":null,"previous_names":["nick2bad4u/eslint-plugin-tsdoc-require-2"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/Nick2bad4u/eslint-plugin-tsdoc-require-2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nick2bad4u%2Feslint-plugin-tsdoc-require-2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nick2bad4u%2Feslint-plugin-tsdoc-require-2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nick2bad4u%2Feslint-plugin-tsdoc-require-2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nick2bad4u%2Feslint-plugin-tsdoc-require-2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nick2bad4u","download_url":"https://codeload.github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nick2bad4u%2Feslint-plugin-tsdoc-require-2/sbom","scorecard":{"id":1244537,"data":{"date":"2026-03-08T05:57:54Z","repo":{"name":"github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2","commit":"7a4ef657c1764e0b8021ce47b4747de07b8d5127"},"scorecard":{"version":"v5.3.0","commit":"c22063e786c11f9dd714d777a687ff7c4599b600"},"score":2.9,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/20 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"project was created within the last 90 days. Please review its contents carefully","details":["Warn: Repository was created within the last 90 days."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#cii-best-practices"}},{"name":"Dependency-Update-Tool","score":0,"reason":"no update tool detected","details":["Warn: no dependency update tool configurations found"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dependency-update-tool"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 3 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#sast"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: 'allow deletion' enabled on branch 'main'","Warn: 'force pushes' enabled on branch 'main'","Info: 'branch protection settings apply to administrators' is required to merge on branch 'main'","Warn: could not determine whether codeowners review is allowed","Warn: no status checks found to merge onto branch 'main'","Warn: PRs are not required to make changes on branch 'main'; or we don't have data to detect it.If you think it might be the latter, make sure to run Scorecard with a PAT or use Repo Rules (that are always public) instead of Branch Protection settings"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#branch-protection"}},{"name":"CI-Tests","score":10,"reason":"1 out of 1 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#ci-tests"}},{"name":"Contributors","score":0,"reason":"project has 0 contributing companies or organizations -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#contributors"}}]},"last_synced_at":"2026-03-08T08:54:26.430Z","repository_id":342917548,"created_at":"2026-03-08T08:54:26.430Z","updated_at":"2026-03-08T08:54:26.430Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32596533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comments","eslint","eslint-plugin","eslintplugin","jsdoc","tsdoc"],"created_at":"2026-04-02T15:49:26.992Z","updated_at":"2026-05-04T06:01:21.971Z","avatar_url":"https://github.com/Nick2bad4u.png","language":"TypeScript","funding_links":["https://github.com/sponsors/Nick2bad4u"],"categories":[],"sub_categories":[],"readme":"# eslint-plugin-tsdoc-require-2\n\n[![npm license.](https://flat.badgen.net/npm/license/eslint-plugin-tsdoc-require-2?color=purple)](https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/blob/main/LICENSE) [![npm total downloads.](https://flat.badgen.net/npm/dt/eslint-plugin-tsdoc-require-2?color=pink)](https://www.npmjs.com/package/eslint-plugin-tsdoc-require-2) [![latest GitHub release.](https://flat.badgen.net/github/release/Nick2bad4u/eslint-plugin-tsdoc-require-2?color=cyan)](https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/releases) [![GitHub stars.](https://flat.badgen.net/github/stars/Nick2bad4u/eslint-plugin-tsdoc-require-2?color=yellow)](https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/stargazers) [![GitHub forks.](https://flat.badgen.net/github/forks/Nick2bad4u/eslint-plugin-tsdoc-require-2?color=green)](https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/forks) [![GitHub open issues.](https://flat.badgen.net/github/open-issues/Nick2bad4u/eslint-plugin-tsdoc-require-2?color=red)](https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/issues) [![codecov.](https://flat.badgen.net/codecov/github/Nick2bad4u/eslint-plugin-tsdoc-require-2?color=blue)](https://codecov.io/gh/Nick2bad4u/eslint-plugin-tsdoc-require-2)\n\nRequire TSDoc and JSDoc-style comments and documentation tags on exported\nTypeScript declarations and default exports, with optional enforcement for\nnon-exported top-level declarations.\n\n## Table of contents\n\n1. [Installation](#installation)\n2. [Usage (Flat Config)](#usage-flat-config)\n  1. [Opt into non-exported declarations](#opt-into-non-exported-declarations)\n3. [Presets](#presets)\n  1. [Preset matrix](#preset-matrix)\n  2. [Preset usage examples](#preset-usage-examples)\n4. [Rules](#rules)\n5. [Rule docs](#rule-docs)\n6. [License](#license)\n7. [Contributors ✨](#contributors-)\n\n## Installation\n\n```bash\nnpm i -D eslint-plugin-tsdoc-require-2\n```\n\n## Usage (Flat Config)\n\nThis plugin supports both TSDoc-first and JSDoc-style documentation workflows.\nUse `tsdocRequire.configs.tsdoc` for stricter TSDoc conventions, or\n`tsdocRequire.configs.jsdoc` for JSDoc-style function tag requirements such as\n`@param`, `@returns`, and `@throws`.\n\n```js\nimport tsdocRequire from \"eslint-plugin-tsdoc-require-2\";\n\nexport default [\n  tsdocRequire.configs.recommended,\n  {\n    plugins: {\n      \"tsdoc-require-2\": tsdocRequire,\n    },\n    rules: {\n      \"tsdoc-require-2/require\": \"error\",\n      \"tsdoc-require-2/require-remarks\": \"error\",\n    },\n  },\n];\n```\n\n### Opt into non-exported declarations\n\nBy default, rules in this plugin focus on exported declarations. To also enforce\ntop-level non-exported declarations, set `includeNonExported: true` on the rules\nyou want.\n\n```js\nimport tsdocRequire from \"eslint-plugin-tsdoc-require-2\";\n\nexport default [\n  {\n    plugins: {\n      \"tsdoc-require-2\": tsdocRequire,\n    },\n    rules: {\n      \"tsdoc-require-2/require\": [\n        \"error\",\n        {\n          includeNonExported: true,\n        },\n      ],\n      \"tsdoc-require-2/require-remarks\": [\n        \"error\",\n        {\n          includeNonExported: true,\n        },\n      ],\n    },\n  },\n];\n```\n\n## Presets\n\nThe matrix below is generated by `scripts/sync-presets-rules-matrix.mjs`.\n\n\u003c!-- BEGIN_PRESETS_MATRIX --\u003e\n\n### Preset matrix\n\n- `Fix` legend:\n  - `🔧` = autofixable\n  - `💡` = suggestions available\n  - `—` = report only\n- `Preset key` legend:\n  - [🟢](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/recommended) — [`tsdocRequire.configs.recommended`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/recommended) — Minimal baseline TSDoc enforcement.\n  - [🟡](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/detailed) — [`tsdocRequire.configs.detailed`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/detailed) — Require comments plus @remarks.\n  - [🟠](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/packages) — [`tsdocRequire.configs.packages`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/packages) — Package docs baseline with @packageDocumentation.\n  - [🔵](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc) — [`tsdocRequire.configs.typedoc`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc) — Conservative TypeDoc declaration-kind tags.\n  - [🔴](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) — [`tsdocRequire.configs[\"typedoc-strict\"]`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) — Strict TypeDoc with module/remarks and tag restrictions.\n  - [🟣](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/tsdoc) — [`tsdocRequire.configs.tsdoc`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/tsdoc) — TSDoc-focused baseline with function/type tags plus tag restrictions.\n  - [🟦](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/jsdoc) — [`tsdocRequire.configs.jsdoc`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/jsdoc) — JSDoc-style function-tag baseline.\n  - [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) — [`tsdocRequire.configs.all`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) — All plugin rules. Use for audits and deliberate strictness.\n\n| Rule | Fix | Preset key |\n| --- | :---: | --- |\n| [`tsdoc-require-2/require`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/require) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/recommended) [🟡](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/detailed) [🟠](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/packages) [🔵](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc) [🔴](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) [🟣](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/tsdoc) [🟦](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/jsdoc) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-abstract`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-abstract) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-alpha`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-alpha) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-author`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-author) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-beta`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-beta) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-category`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-category) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-class`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-class) | — | [🔵](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc) [🔴](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-decorator`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-decorator) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-default-value`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-default-value) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-deprecated`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-deprecated) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-document`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-document) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-enum`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-enum) | — | [🔵](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc) [🔴](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-event`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-event) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-event-property`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-event-property) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-example`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-example) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-expand`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-expand) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-experimental`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-experimental) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-function`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-function) | — | [🔵](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc) [🔴](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-group`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-group) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-hidden`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-hidden) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-hideconstructor`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-hideconstructor) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-ignore`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-ignore) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-import`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-import) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-include`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-include) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-inherit-doc`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-inherit-doc) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-inline`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-inline) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-interface`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-interface) | — | [🔵](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc) [🔴](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-internal`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-internal) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-label`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-label) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-license`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-license) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-link`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-link) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-merge-module-with`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-merge-module-with) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-module`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-module) | — | [🔴](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-namespace`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-namespace) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-overload`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-overload) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-override`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-override) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-package-documentation`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-package-documentation) | — | [🟠](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/packages) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-param`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-param) | — | [🟣](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/tsdoc) [🟦](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/jsdoc) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-primary-export`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-primary-export) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-private`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-private) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-private-remarks`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-private-remarks) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-property`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-property) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-protected`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-protected) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-public`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-public) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-readonly`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-readonly) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-remarks`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-remarks) | — | [🟡](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/detailed) [🟠](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/packages) [🔴](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) [🟣](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/tsdoc) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-returns`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-returns) | — | [🟣](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/tsdoc) [🟦](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/jsdoc) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-sealed`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-sealed) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-see`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-see) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-since`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-since) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-sort-strategy`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-sort-strategy) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-summary`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-summary) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-template`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-template) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-throws`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-throws) | — | [🟣](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/tsdoc) [🟦](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/jsdoc) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-type-param`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-type-param) | — | [🟣](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/tsdoc) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-use-declared-type`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-use-declared-type) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/require-virtual`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/required-tags/require-virtual) | — | [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n| [`tsdoc-require-2/restrict-tags`](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/restrict-tags) | — | [🔴](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/typedoc-strict) [🟣](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/tsdoc) [⚫](https://nick2bad4u.github.io/eslint-plugin-tsdoc-require-2/docs/rules/presets/all) |\n\n\u003c!-- END_PRESETS_MATRIX --\u003e\n\n### Preset usage examples\n\n```js\nimport tsdocRequire from \"eslint-plugin-tsdoc-require-2\";\n\nexport default [\n  tsdocRequire.configs.detailed,\n  // or:\n  // tsdocRequire.configs.packages,\n  // tsdocRequire.configs.tsdoc,\n  // tsdocRequire.configs.jsdoc,\n  // tsdocRequire.configs.typedoc,\n  // tsdocRequire.configs[\"typedoc-strict\"],\n  // tsdocRequire.configs.all,\n];\n```\n\n`configs.typedoc` is intentionally conservative. It only enables TypeDoc-oriented\ntag rules whose applicability can be inferred safely from declaration kind:\nclasses, enums, functions, and interfaces.\n\n`configs[\"typedoc-strict\"]` adds stricter constraints, including\n`tsdoc-require-2/restrict-tags` to disallow TypeDoc compatibility-only block tags.\n\n## Rules\n\nThe table below is generated by `scripts/sync-readme-rules-table.mjs`.\n\n\u003c!-- BEGIN_RULES_TABLE --\u003e\n\n- Rule coverage by preset is documented in the [Preset matrix](#preset-matrix) above.\n- For full rule documentation links, see [Rule docs](#rule-docs).\n\n\u003c!-- END_RULES_TABLE --\u003e\n\n## Rule docs\n\n- Core rule: [docs/rules/require.md](./docs/rules/require.md)\n- Required-tag index: [docs/rules/required-tags.md](./docs/rules/required-tags.md)\n\n## License\n\nMIT © Nick2bad4u\n\n## Contributors ✨\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors.](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"25%\"\u003e\u003ca href=\"https://github.com/Nick2bad4u\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/20943337?v=4?s=80\" width=\"80px;\" alt=\"Nick2bad4u\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNick2bad4u\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/issues?q=author%3ANick2bad4u\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/commits?author=Nick2bad4u\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/commits?author=Nick2bad4u\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#ideas-Nick2bad4u\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#infra-Nick2bad4u\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#maintenance-Nick2bad4u\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/pulls?q=is%3Apr+reviewed-by%3ANick2bad4u\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/commits?author=Nick2bad4u\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"#tool-Nick2bad4u\" title=\"Tools\"\u003e🔧\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"25%\"\u003e\u003ca href=\"https://snyk.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/19733683?v=4?s=80\" width=\"80px;\" alt=\"Snyk bot\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSnyk bot\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#security-snyk-bot\" title=\"Security\"\u003e🛡️\u003c/a\u003e \u003ca href=\"#infra-snyk-bot\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#maintenance-snyk-bot\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/pulls?q=is%3Apr+reviewed-by%3Asnyk-bot\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"25%\"\u003e\u003ca href=\"https://www.stepsecurity.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/89328645?v=4?s=80\" width=\"80px;\" alt=\"StepSecurity Bot\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eStepSecurity Bot\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#security-step-security-bot\" title=\"Security\"\u003e🛡️\u003c/a\u003e \u003ca href=\"#infra-step-security-bot\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#maintenance-step-security-bot\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"25%\"\u003e\u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/in/29110?v=4?s=80\" width=\"80px;\" alt=\"dependabot[bot]\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003edependabot[bot]\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#infra-dependabot[bot]\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#security-dependabot[bot]\" title=\"Security\"\u003e🛡️\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"25%\"\u003e\u003ca href=\"https://github.com/apps/github-actions\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/in/15368?v=4?s=80\" width=\"80px;\" alt=\"github-actions[bot]\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003egithub-actions[bot]\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/commits?author=github-actions[bot]\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#infra-github-actions[bot]\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#platform-github-actions[bot]\" title=\"Packaging/porting to new platform\"\u003e📦\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnick2bad4u%2Feslint-plugin-tsdoc-require-2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnick2bad4u%2Feslint-plugin-tsdoc-require-2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnick2bad4u%2Feslint-plugin-tsdoc-require-2/lists"}