eslint-plugin-tsdoc-require-2 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/README.md +111 -36
  2. package/dist/internal/require-tag-factory.cjs +58 -9
  3. package/dist/internal/require-tag-factory.d.ts +5 -2
  4. package/dist/internal/require-tag-factory.d.ts.map +1 -1
  5. package/dist/internal/require-tag-factory.js +58 -9
  6. package/dist/internal/require-tag-factory.js.map +1 -1
  7. package/dist/plugin.cjs +146 -17
  8. package/dist/plugin.d.ts +2 -0
  9. package/dist/plugin.d.ts.map +1 -1
  10. package/dist/plugin.js +142 -16
  11. package/dist/plugin.js.map +1 -1
  12. package/dist/rules/require-tag-rules.cjs +121 -25
  13. package/dist/rules/require-tag-rules.d.ts +5 -30
  14. package/dist/rules/require-tag-rules.d.ts.map +1 -1
  15. package/dist/rules/require-tag-rules.js +93 -0
  16. package/dist/rules/require-tag-rules.js.map +1 -1
  17. package/dist/rules/require.cjs +59 -16
  18. package/dist/rules/require.d.ts +3 -1
  19. package/dist/rules/require.d.ts.map +1 -1
  20. package/dist/rules/require.js +59 -16
  21. package/dist/rules/require.js.map +1 -1
  22. package/dist/rules/required-tags/require-abstract.cjs +32 -0
  23. package/dist/rules/required-tags/require-abstract.d.ts +5 -0
  24. package/dist/rules/required-tags/require-abstract.d.ts.map +1 -0
  25. package/dist/rules/required-tags/require-abstract.js +30 -0
  26. package/dist/rules/required-tags/require-abstract.js.map +1 -0
  27. package/dist/rules/required-tags/require-alpha.cjs +0 -1
  28. package/dist/rules/required-tags/require-alpha.d.ts.map +1 -1
  29. package/dist/rules/required-tags/require-alpha.js +1 -2
  30. package/dist/rules/required-tags/require-alpha.js.map +1 -1
  31. package/dist/rules/required-tags/require-author.cjs +32 -0
  32. package/dist/rules/required-tags/require-author.d.ts +5 -0
  33. package/dist/rules/required-tags/require-author.d.ts.map +1 -0
  34. package/dist/rules/required-tags/require-author.js +30 -0
  35. package/dist/rules/required-tags/require-author.js.map +1 -0
  36. package/dist/rules/required-tags/require-beta.cjs +0 -1
  37. package/dist/rules/required-tags/require-beta.d.ts.map +1 -1
  38. package/dist/rules/required-tags/require-beta.js +1 -2
  39. package/dist/rules/required-tags/require-beta.js.map +1 -1
  40. package/dist/rules/required-tags/require-category.cjs +32 -0
  41. package/dist/rules/required-tags/require-category.d.ts +5 -0
  42. package/dist/rules/required-tags/require-category.d.ts.map +1 -0
  43. package/dist/rules/required-tags/require-category.js +30 -0
  44. package/dist/rules/required-tags/require-category.js.map +1 -0
  45. package/dist/rules/required-tags/require-class.cjs +32 -0
  46. package/dist/rules/required-tags/require-class.d.ts +5 -0
  47. package/dist/rules/required-tags/require-class.d.ts.map +1 -0
  48. package/dist/rules/required-tags/require-class.js +30 -0
  49. package/dist/rules/required-tags/require-class.js.map +1 -0
  50. package/dist/rules/required-tags/require-decorator.cjs +0 -1
  51. package/dist/rules/required-tags/require-decorator.d.ts.map +1 -1
  52. package/dist/rules/required-tags/require-decorator.js +1 -2
  53. package/dist/rules/required-tags/require-decorator.js.map +1 -1
  54. package/dist/rules/required-tags/require-default-value.cjs +0 -1
  55. package/dist/rules/required-tags/require-default-value.d.ts.map +1 -1
  56. package/dist/rules/required-tags/require-default-value.js +1 -2
  57. package/dist/rules/required-tags/require-default-value.js.map +1 -1
  58. package/dist/rules/required-tags/require-deprecated.cjs +0 -1
  59. package/dist/rules/required-tags/require-deprecated.d.ts.map +1 -1
  60. package/dist/rules/required-tags/require-deprecated.js +1 -2
  61. package/dist/rules/required-tags/require-deprecated.js.map +1 -1
  62. package/dist/rules/required-tags/require-document.cjs +32 -0
  63. package/dist/rules/required-tags/require-document.d.ts +5 -0
  64. package/dist/rules/required-tags/require-document.d.ts.map +1 -0
  65. package/dist/rules/required-tags/require-document.js +30 -0
  66. package/dist/rules/required-tags/require-document.js.map +1 -0
  67. package/dist/rules/required-tags/require-enum.cjs +32 -0
  68. package/dist/rules/required-tags/require-enum.d.ts +5 -0
  69. package/dist/rules/required-tags/require-enum.d.ts.map +1 -0
  70. package/dist/rules/required-tags/require-enum.js +30 -0
  71. package/dist/rules/required-tags/require-enum.js.map +1 -0
  72. package/dist/rules/required-tags/require-event-property.cjs +0 -1
  73. package/dist/rules/required-tags/require-event-property.d.ts.map +1 -1
  74. package/dist/rules/required-tags/require-event-property.js +1 -2
  75. package/dist/rules/required-tags/require-event-property.js.map +1 -1
  76. package/dist/rules/required-tags/require-event.cjs +32 -0
  77. package/dist/rules/required-tags/require-event.d.ts +5 -0
  78. package/dist/rules/required-tags/require-event.d.ts.map +1 -0
  79. package/dist/rules/required-tags/require-event.js +30 -0
  80. package/dist/rules/required-tags/require-event.js.map +1 -0
  81. package/dist/rules/required-tags/require-example.cjs +0 -1
  82. package/dist/rules/required-tags/require-example.d.ts.map +1 -1
  83. package/dist/rules/required-tags/require-example.js +1 -2
  84. package/dist/rules/required-tags/require-example.js.map +1 -1
  85. package/dist/rules/required-tags/require-expand.cjs +32 -0
  86. package/dist/rules/required-tags/require-expand.d.ts +5 -0
  87. package/dist/rules/required-tags/require-expand.d.ts.map +1 -0
  88. package/dist/rules/required-tags/require-expand.js +30 -0
  89. package/dist/rules/required-tags/require-expand.js.map +1 -0
  90. package/dist/rules/required-tags/require-experimental.cjs +0 -1
  91. package/dist/rules/required-tags/require-experimental.d.ts.map +1 -1
  92. package/dist/rules/required-tags/require-experimental.js +1 -2
  93. package/dist/rules/required-tags/require-experimental.js.map +1 -1
  94. package/dist/rules/required-tags/require-function.cjs +32 -0
  95. package/dist/rules/required-tags/require-function.d.ts +5 -0
  96. package/dist/rules/required-tags/require-function.d.ts.map +1 -0
  97. package/dist/rules/required-tags/require-function.js +30 -0
  98. package/dist/rules/required-tags/require-function.js.map +1 -0
  99. package/dist/rules/required-tags/require-group.cjs +32 -0
  100. package/dist/rules/required-tags/require-group.d.ts +5 -0
  101. package/dist/rules/required-tags/require-group.d.ts.map +1 -0
  102. package/dist/rules/required-tags/require-group.js +30 -0
  103. package/dist/rules/required-tags/require-group.js.map +1 -0
  104. package/dist/rules/required-tags/require-hidden.cjs +32 -0
  105. package/dist/rules/required-tags/require-hidden.d.ts +5 -0
  106. package/dist/rules/required-tags/require-hidden.d.ts.map +1 -0
  107. package/dist/rules/required-tags/require-hidden.js +30 -0
  108. package/dist/rules/required-tags/require-hidden.js.map +1 -0
  109. package/dist/rules/required-tags/require-hideconstructor.cjs +32 -0
  110. package/dist/rules/required-tags/require-hideconstructor.d.ts +5 -0
  111. package/dist/rules/required-tags/require-hideconstructor.d.ts.map +1 -0
  112. package/dist/rules/required-tags/require-hideconstructor.js +30 -0
  113. package/dist/rules/required-tags/require-hideconstructor.js.map +1 -0
  114. package/dist/rules/required-tags/require-ignore.cjs +32 -0
  115. package/dist/rules/required-tags/require-ignore.d.ts +5 -0
  116. package/dist/rules/required-tags/require-ignore.d.ts.map +1 -0
  117. package/dist/rules/required-tags/require-ignore.js +30 -0
  118. package/dist/rules/required-tags/require-ignore.js.map +1 -0
  119. package/dist/rules/required-tags/require-import.cjs +32 -0
  120. package/dist/rules/required-tags/require-import.d.ts +5 -0
  121. package/dist/rules/required-tags/require-import.d.ts.map +1 -0
  122. package/dist/rules/required-tags/require-import.js +30 -0
  123. package/dist/rules/required-tags/require-import.js.map +1 -0
  124. package/dist/rules/required-tags/require-include.cjs +32 -0
  125. package/dist/rules/required-tags/require-include.d.ts +5 -0
  126. package/dist/rules/required-tags/require-include.d.ts.map +1 -0
  127. package/dist/rules/required-tags/require-include.js +30 -0
  128. package/dist/rules/required-tags/require-include.js.map +1 -0
  129. package/dist/rules/required-tags/require-inherit-doc.cjs +0 -1
  130. package/dist/rules/required-tags/require-inherit-doc.d.ts.map +1 -1
  131. package/dist/rules/required-tags/require-inherit-doc.js +1 -2
  132. package/dist/rules/required-tags/require-inherit-doc.js.map +1 -1
  133. package/dist/rules/required-tags/require-inline.cjs +32 -0
  134. package/dist/rules/required-tags/require-inline.d.ts +5 -0
  135. package/dist/rules/required-tags/require-inline.d.ts.map +1 -0
  136. package/dist/rules/required-tags/require-inline.js +30 -0
  137. package/dist/rules/required-tags/require-inline.js.map +1 -0
  138. package/dist/rules/required-tags/require-interface.cjs +32 -0
  139. package/dist/rules/required-tags/require-interface.d.ts +5 -0
  140. package/dist/rules/required-tags/require-interface.d.ts.map +1 -0
  141. package/dist/rules/required-tags/require-interface.js +30 -0
  142. package/dist/rules/required-tags/require-interface.js.map +1 -0
  143. package/dist/rules/required-tags/require-internal.cjs +0 -1
  144. package/dist/rules/required-tags/require-internal.d.ts.map +1 -1
  145. package/dist/rules/required-tags/require-internal.js +1 -2
  146. package/dist/rules/required-tags/require-internal.js.map +1 -1
  147. package/dist/rules/required-tags/require-label.cjs +0 -1
  148. package/dist/rules/required-tags/require-label.d.ts.map +1 -1
  149. package/dist/rules/required-tags/require-label.js +1 -2
  150. package/dist/rules/required-tags/require-label.js.map +1 -1
  151. package/dist/rules/required-tags/require-license.cjs +32 -0
  152. package/dist/rules/required-tags/require-license.d.ts +5 -0
  153. package/dist/rules/required-tags/require-license.d.ts.map +1 -0
  154. package/dist/rules/required-tags/require-license.js +30 -0
  155. package/dist/rules/required-tags/require-license.js.map +1 -0
  156. package/dist/rules/required-tags/require-link.cjs +0 -1
  157. package/dist/rules/required-tags/require-link.d.ts.map +1 -1
  158. package/dist/rules/required-tags/require-link.js +1 -2
  159. package/dist/rules/required-tags/require-link.js.map +1 -1
  160. package/dist/rules/required-tags/require-merge-module-with.cjs +32 -0
  161. package/dist/rules/required-tags/require-merge-module-with.d.ts +5 -0
  162. package/dist/rules/required-tags/require-merge-module-with.d.ts.map +1 -0
  163. package/dist/rules/required-tags/require-merge-module-with.js +30 -0
  164. package/dist/rules/required-tags/require-merge-module-with.js.map +1 -0
  165. package/dist/rules/required-tags/require-module.cjs +32 -0
  166. package/dist/rules/required-tags/require-module.d.ts +5 -0
  167. package/dist/rules/required-tags/require-module.d.ts.map +1 -0
  168. package/dist/rules/required-tags/require-module.js +30 -0
  169. package/dist/rules/required-tags/require-module.js.map +1 -0
  170. package/dist/rules/required-tags/require-namespace.cjs +32 -0
  171. package/dist/rules/required-tags/require-namespace.d.ts +5 -0
  172. package/dist/rules/required-tags/require-namespace.d.ts.map +1 -0
  173. package/dist/rules/required-tags/require-namespace.js +30 -0
  174. package/dist/rules/required-tags/require-namespace.js.map +1 -0
  175. package/dist/rules/required-tags/require-overload.cjs +32 -0
  176. package/dist/rules/required-tags/require-overload.d.ts +5 -0
  177. package/dist/rules/required-tags/require-overload.d.ts.map +1 -0
  178. package/dist/rules/required-tags/require-overload.js +30 -0
  179. package/dist/rules/required-tags/require-overload.js.map +1 -0
  180. package/dist/rules/required-tags/require-override.cjs +0 -1
  181. package/dist/rules/required-tags/require-override.d.ts.map +1 -1
  182. package/dist/rules/required-tags/require-override.js +1 -2
  183. package/dist/rules/required-tags/require-override.js.map +1 -1
  184. package/dist/rules/required-tags/require-package-documentation.cjs +0 -1
  185. package/dist/rules/required-tags/require-package-documentation.d.ts.map +1 -1
  186. package/dist/rules/required-tags/require-package-documentation.js +1 -2
  187. package/dist/rules/required-tags/require-package-documentation.js.map +1 -1
  188. package/dist/rules/required-tags/require-param.cjs +0 -1
  189. package/dist/rules/required-tags/require-param.d.ts.map +1 -1
  190. package/dist/rules/required-tags/require-param.js +1 -2
  191. package/dist/rules/required-tags/require-param.js.map +1 -1
  192. package/dist/rules/required-tags/require-primary-export.cjs +32 -0
  193. package/dist/rules/required-tags/require-primary-export.d.ts +5 -0
  194. package/dist/rules/required-tags/require-primary-export.d.ts.map +1 -0
  195. package/dist/rules/required-tags/require-primary-export.js +30 -0
  196. package/dist/rules/required-tags/require-primary-export.js.map +1 -0
  197. package/dist/rules/required-tags/require-private-remarks.cjs +0 -1
  198. package/dist/rules/required-tags/require-private-remarks.d.ts.map +1 -1
  199. package/dist/rules/required-tags/require-private-remarks.js +1 -2
  200. package/dist/rules/required-tags/require-private-remarks.js.map +1 -1
  201. package/dist/rules/required-tags/require-private.cjs +32 -0
  202. package/dist/rules/required-tags/require-private.d.ts +5 -0
  203. package/dist/rules/required-tags/require-private.d.ts.map +1 -0
  204. package/dist/rules/required-tags/require-private.js +30 -0
  205. package/dist/rules/required-tags/require-private.js.map +1 -0
  206. package/dist/rules/required-tags/require-property.cjs +32 -0
  207. package/dist/rules/required-tags/require-property.d.ts +5 -0
  208. package/dist/rules/required-tags/require-property.d.ts.map +1 -0
  209. package/dist/rules/required-tags/require-property.js +30 -0
  210. package/dist/rules/required-tags/require-property.js.map +1 -0
  211. package/dist/rules/required-tags/require-protected.cjs +32 -0
  212. package/dist/rules/required-tags/require-protected.d.ts +5 -0
  213. package/dist/rules/required-tags/require-protected.d.ts.map +1 -0
  214. package/dist/rules/required-tags/require-protected.js +30 -0
  215. package/dist/rules/required-tags/require-protected.js.map +1 -0
  216. package/dist/rules/required-tags/require-public.cjs +0 -1
  217. package/dist/rules/required-tags/require-public.d.ts.map +1 -1
  218. package/dist/rules/required-tags/require-public.js +1 -2
  219. package/dist/rules/required-tags/require-public.js.map +1 -1
  220. package/dist/rules/required-tags/require-readonly.cjs +0 -1
  221. package/dist/rules/required-tags/require-readonly.d.ts.map +1 -1
  222. package/dist/rules/required-tags/require-readonly.js +1 -2
  223. package/dist/rules/required-tags/require-readonly.js.map +1 -1
  224. package/dist/rules/required-tags/require-remarks.cjs +0 -1
  225. package/dist/rules/required-tags/require-remarks.d.ts.map +1 -1
  226. package/dist/rules/required-tags/require-remarks.js +1 -2
  227. package/dist/rules/required-tags/require-remarks.js.map +1 -1
  228. package/dist/rules/required-tags/require-returns.cjs +0 -1
  229. package/dist/rules/required-tags/require-returns.d.ts.map +1 -1
  230. package/dist/rules/required-tags/require-returns.js +1 -2
  231. package/dist/rules/required-tags/require-returns.js.map +1 -1
  232. package/dist/rules/required-tags/require-sealed.cjs +0 -1
  233. package/dist/rules/required-tags/require-sealed.d.ts.map +1 -1
  234. package/dist/rules/required-tags/require-sealed.js +1 -2
  235. package/dist/rules/required-tags/require-sealed.js.map +1 -1
  236. package/dist/rules/required-tags/require-see.cjs +0 -1
  237. package/dist/rules/required-tags/require-see.d.ts.map +1 -1
  238. package/dist/rules/required-tags/require-see.js +1 -2
  239. package/dist/rules/required-tags/require-see.js.map +1 -1
  240. package/dist/rules/required-tags/require-since.cjs +32 -0
  241. package/dist/rules/required-tags/require-since.d.ts +5 -0
  242. package/dist/rules/required-tags/require-since.d.ts.map +1 -0
  243. package/dist/rules/required-tags/require-since.js +30 -0
  244. package/dist/rules/required-tags/require-since.js.map +1 -0
  245. package/dist/rules/required-tags/require-sort-strategy.cjs +32 -0
  246. package/dist/rules/required-tags/require-sort-strategy.d.ts +5 -0
  247. package/dist/rules/required-tags/require-sort-strategy.d.ts.map +1 -0
  248. package/dist/rules/required-tags/require-sort-strategy.js +30 -0
  249. package/dist/rules/required-tags/require-sort-strategy.js.map +1 -0
  250. package/dist/rules/required-tags/require-summary.cjs +32 -0
  251. package/dist/rules/required-tags/require-summary.d.ts +5 -0
  252. package/dist/rules/required-tags/require-summary.d.ts.map +1 -0
  253. package/dist/rules/required-tags/require-summary.js +30 -0
  254. package/dist/rules/required-tags/require-summary.js.map +1 -0
  255. package/dist/rules/required-tags/require-template.cjs +32 -0
  256. package/dist/rules/required-tags/require-template.d.ts +5 -0
  257. package/dist/rules/required-tags/require-template.d.ts.map +1 -0
  258. package/dist/rules/required-tags/require-template.js +30 -0
  259. package/dist/rules/required-tags/require-template.js.map +1 -0
  260. package/dist/rules/required-tags/require-throws.cjs +0 -1
  261. package/dist/rules/required-tags/require-throws.d.ts.map +1 -1
  262. package/dist/rules/required-tags/require-throws.js +1 -2
  263. package/dist/rules/required-tags/require-throws.js.map +1 -1
  264. package/dist/rules/required-tags/require-type-param.cjs +0 -1
  265. package/dist/rules/required-tags/require-type-param.d.ts.map +1 -1
  266. package/dist/rules/required-tags/require-type-param.js +1 -2
  267. package/dist/rules/required-tags/require-type-param.js.map +1 -1
  268. package/dist/rules/required-tags/require-use-declared-type.cjs +32 -0
  269. package/dist/rules/required-tags/require-use-declared-type.d.ts +5 -0
  270. package/dist/rules/required-tags/require-use-declared-type.d.ts.map +1 -0
  271. package/dist/rules/required-tags/require-use-declared-type.js +30 -0
  272. package/dist/rules/required-tags/require-use-declared-type.js.map +1 -0
  273. package/dist/rules/required-tags/require-virtual.cjs +0 -1
  274. package/dist/rules/required-tags/require-virtual.d.ts.map +1 -1
  275. package/dist/rules/required-tags/require-virtual.js +1 -2
  276. package/dist/rules/required-tags/require-virtual.js.map +1 -1
  277. package/dist/rules/restrict-tags.cjs +416 -0
  278. package/dist/rules/restrict-tags.d.ts +17 -0
  279. package/dist/rules/restrict-tags.d.ts.map +1 -0
  280. package/dist/rules/restrict-tags.js +414 -0
  281. package/dist/rules/restrict-tags.js.map +1 -0
  282. package/docs/rules/getting-started.md +97 -0
  283. package/docs/rules/index.md +61 -0
  284. package/docs/rules/presets/all.md +100 -0
  285. package/docs/rules/presets/detailed.md +41 -0
  286. package/docs/rules/presets/index.md +156 -0
  287. package/docs/rules/presets/jsdoc.md +43 -0
  288. package/docs/rules/presets/packages.md +41 -0
  289. package/docs/rules/presets/recommended.md +37 -0
  290. package/docs/rules/presets/tsdoc.md +45 -0
  291. package/docs/rules/presets/typedoc-strict.md +50 -0
  292. package/docs/rules/presets/typedoc.md +44 -0
  293. package/docs/rules/require.md +92 -56
  294. package/docs/rules/required-tags/require-abstract.md +87 -0
  295. package/docs/rules/required-tags/require-alpha.md +1 -1
  296. package/docs/rules/required-tags/require-author.md +87 -0
  297. package/docs/rules/required-tags/require-beta.md +1 -1
  298. package/docs/rules/required-tags/require-category.md +87 -0
  299. package/docs/rules/required-tags/require-class.md +71 -0
  300. package/docs/rules/required-tags/require-decorator.md +1 -1
  301. package/docs/rules/required-tags/require-default-value.md +1 -1
  302. package/docs/rules/required-tags/require-deprecated.md +1 -1
  303. package/docs/rules/required-tags/require-document.md +87 -0
  304. package/docs/rules/required-tags/require-enum.md +73 -0
  305. package/docs/rules/required-tags/require-event-property.md +1 -1
  306. package/docs/rules/required-tags/require-event.md +87 -0
  307. package/docs/rules/required-tags/require-example.md +1 -1
  308. package/docs/rules/required-tags/require-expand.md +87 -0
  309. package/docs/rules/required-tags/require-experimental.md +1 -1
  310. package/docs/rules/required-tags/require-function.md +74 -0
  311. package/docs/rules/required-tags/require-group.md +87 -0
  312. package/docs/rules/required-tags/require-hidden.md +87 -0
  313. package/docs/rules/required-tags/require-hideconstructor.md +87 -0
  314. package/docs/rules/required-tags/require-ignore.md +87 -0
  315. package/docs/rules/required-tags/require-import.md +87 -0
  316. package/docs/rules/required-tags/require-include.md +87 -0
  317. package/docs/rules/required-tags/require-inherit-doc.md +1 -1
  318. package/docs/rules/required-tags/require-inline.md +87 -0
  319. package/docs/rules/required-tags/require-interface.md +74 -0
  320. package/docs/rules/required-tags/require-internal.md +1 -1
  321. package/docs/rules/required-tags/require-label.md +1 -1
  322. package/docs/rules/required-tags/require-license.md +87 -0
  323. package/docs/rules/required-tags/require-link.md +1 -1
  324. package/docs/rules/required-tags/require-merge-module-with.md +87 -0
  325. package/docs/rules/required-tags/require-module.md +78 -0
  326. package/docs/rules/required-tags/require-namespace.md +87 -0
  327. package/docs/rules/required-tags/require-overload.md +87 -0
  328. package/docs/rules/required-tags/require-override.md +1 -1
  329. package/docs/rules/required-tags/require-package-documentation.md +44 -24
  330. package/docs/rules/required-tags/require-param.md +45 -25
  331. package/docs/rules/required-tags/require-primary-export.md +87 -0
  332. package/docs/rules/required-tags/require-private.md +87 -0
  333. package/docs/rules/required-tags/require-property.md +87 -0
  334. package/docs/rules/required-tags/require-protected.md +87 -0
  335. package/docs/rules/required-tags/require-remarks.md +40 -25
  336. package/docs/rules/required-tags/require-returns.md +45 -25
  337. package/docs/rules/required-tags/require-since.md +87 -0
  338. package/docs/rules/required-tags/require-sort-strategy.md +87 -0
  339. package/docs/rules/required-tags/require-summary.md +87 -0
  340. package/docs/rules/required-tags/require-template.md +87 -0
  341. package/docs/rules/required-tags/require-throws.md +53 -25
  342. package/docs/rules/required-tags/require-type-param.md +45 -25
  343. package/docs/rules/required-tags/require-use-declared-type.md +87 -0
  344. package/docs/rules/required-tags.md +171 -39
  345. package/docs/rules/restrict-tags.md +203 -0
  346. package/package.json +394 -45
@@ -0,0 +1,100 @@
1
+ # all
2
+
3
+ Enables every rule provided by this plugin, including all require-tag rules and `restrict-tags`.
4
+
5
+ ## What this preset is for
6
+
7
+ Use `all` for auditing or policy design, not as a day-one default.
8
+
9
+ Good use cases:
10
+
11
+ - evaluating full rule coverage on an existing codebase
12
+ - running one-time migration assessments
13
+ - building a custom strict preset by starting from maximum coverage
14
+
15
+ ## Why this preset is risky as a default
16
+
17
+ `all` enables niche tag requirements that most teams do not want globally.
18
+
19
+ If enabled immediately in an established repository, expect a large number of violations and higher maintenance cost.
20
+
21
+ A safer pattern is to start with `recommended`, `tsdoc`, or `typedoc-strict`, then add individual rules intentionally.
22
+
23
+ ## Config key
24
+
25
+ `tsdocRequire.configs.all`
26
+
27
+ ## Flat Config example
28
+
29
+ ```ts
30
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
31
+
32
+ export default [
33
+ tsdocRequire.configs.all,
34
+ ];
35
+ ```
36
+
37
+ ## Adoption tip
38
+
39
+ During migration, run this preset as warnings first and promote selected rules to errors after cleanup.
40
+
41
+ ## Rules in this preset
42
+
43
+ - [`tsdoc-require-2/require`](../require.md)
44
+ - [`tsdoc-require-2/restrict-tags`](../restrict-tags.md)
45
+ - [`tsdoc-require-2/require-abstract`](../required-tags/require-abstract.md)
46
+ - [`tsdoc-require-2/require-alpha`](../required-tags/require-alpha.md)
47
+ - [`tsdoc-require-2/require-author`](../required-tags/require-author.md)
48
+ - [`tsdoc-require-2/require-beta`](../required-tags/require-beta.md)
49
+ - [`tsdoc-require-2/require-category`](../required-tags/require-category.md)
50
+ - [`tsdoc-require-2/require-class`](../required-tags/require-class.md)
51
+ - [`tsdoc-require-2/require-decorator`](../required-tags/require-decorator.md)
52
+ - [`tsdoc-require-2/require-default-value`](../required-tags/require-default-value.md)
53
+ - [`tsdoc-require-2/require-deprecated`](../required-tags/require-deprecated.md)
54
+ - [`tsdoc-require-2/require-document`](../required-tags/require-document.md)
55
+ - [`tsdoc-require-2/require-enum`](../required-tags/require-enum.md)
56
+ - [`tsdoc-require-2/require-event`](../required-tags/require-event.md)
57
+ - [`tsdoc-require-2/require-event-property`](../required-tags/require-event-property.md)
58
+ - [`tsdoc-require-2/require-example`](../required-tags/require-example.md)
59
+ - [`tsdoc-require-2/require-expand`](../required-tags/require-expand.md)
60
+ - [`tsdoc-require-2/require-experimental`](../required-tags/require-experimental.md)
61
+ - [`tsdoc-require-2/require-function`](../required-tags/require-function.md)
62
+ - [`tsdoc-require-2/require-group`](../required-tags/require-group.md)
63
+ - [`tsdoc-require-2/require-hidden`](../required-tags/require-hidden.md)
64
+ - [`tsdoc-require-2/require-hideconstructor`](../required-tags/require-hideconstructor.md)
65
+ - [`tsdoc-require-2/require-ignore`](../required-tags/require-ignore.md)
66
+ - [`tsdoc-require-2/require-import`](../required-tags/require-import.md)
67
+ - [`tsdoc-require-2/require-include`](../required-tags/require-include.md)
68
+ - [`tsdoc-require-2/require-inherit-doc`](../required-tags/require-inherit-doc.md)
69
+ - [`tsdoc-require-2/require-inline`](../required-tags/require-inline.md)
70
+ - [`tsdoc-require-2/require-interface`](../required-tags/require-interface.md)
71
+ - [`tsdoc-require-2/require-internal`](../required-tags/require-internal.md)
72
+ - [`tsdoc-require-2/require-label`](../required-tags/require-label.md)
73
+ - [`tsdoc-require-2/require-license`](../required-tags/require-license.md)
74
+ - [`tsdoc-require-2/require-link`](../required-tags/require-link.md)
75
+ - [`tsdoc-require-2/require-merge-module-with`](../required-tags/require-merge-module-with.md)
76
+ - [`tsdoc-require-2/require-module`](../required-tags/require-module.md)
77
+ - [`tsdoc-require-2/require-namespace`](../required-tags/require-namespace.md)
78
+ - [`tsdoc-require-2/require-overload`](../required-tags/require-overload.md)
79
+ - [`tsdoc-require-2/require-override`](../required-tags/require-override.md)
80
+ - [`tsdoc-require-2/require-package-documentation`](../required-tags/require-package-documentation.md)
81
+ - [`tsdoc-require-2/require-param`](../required-tags/require-param.md)
82
+ - [`tsdoc-require-2/require-primary-export`](../required-tags/require-primary-export.md)
83
+ - [`tsdoc-require-2/require-private`](../required-tags/require-private.md)
84
+ - [`tsdoc-require-2/require-private-remarks`](../required-tags/require-private-remarks.md)
85
+ - [`tsdoc-require-2/require-property`](../required-tags/require-property.md)
86
+ - [`tsdoc-require-2/require-protected`](../required-tags/require-protected.md)
87
+ - [`tsdoc-require-2/require-public`](../required-tags/require-public.md)
88
+ - [`tsdoc-require-2/require-readonly`](../required-tags/require-readonly.md)
89
+ - [`tsdoc-require-2/require-remarks`](../required-tags/require-remarks.md)
90
+ - [`tsdoc-require-2/require-returns`](../required-tags/require-returns.md)
91
+ - [`tsdoc-require-2/require-sealed`](../required-tags/require-sealed.md)
92
+ - [`tsdoc-require-2/require-see`](../required-tags/require-see.md)
93
+ - [`tsdoc-require-2/require-since`](../required-tags/require-since.md)
94
+ - [`tsdoc-require-2/require-sort-strategy`](../required-tags/require-sort-strategy.md)
95
+ - [`tsdoc-require-2/require-summary`](../required-tags/require-summary.md)
96
+ - [`tsdoc-require-2/require-template`](../required-tags/require-template.md)
97
+ - [`tsdoc-require-2/require-throws`](../required-tags/require-throws.md)
98
+ - [`tsdoc-require-2/require-type-param`](../required-tags/require-type-param.md)
99
+ - [`tsdoc-require-2/require-use-declared-type`](../required-tags/require-use-declared-type.md)
100
+ - [`tsdoc-require-2/require-virtual`](../required-tags/require-virtual.md)
@@ -0,0 +1,41 @@
1
+ # detailed
2
+
3
+ Adds `@remarks` requirements on top of `recommended` for richer top-level docs.
4
+
5
+ ## What this preset is for
6
+
7
+ Use `detailed` when comment presence alone is not enough and each declaration needs brief narrative context.
8
+
9
+ `@remarks` is useful for:
10
+
11
+ - behavior caveats
12
+ - compatibility notes
13
+ - rollout/deprecation guidance
14
+
15
+ ## What this preset enables
16
+
17
+ - [`tsdoc-require-2/require`](../require.md)
18
+ - [`tsdoc-require-2/require-remarks`](../required-tags/require-remarks.md)
19
+
20
+ Compared to `recommended`, this adds structural pressure for richer docs without introducing broad tag policy yet.
21
+
22
+ ## Config key
23
+
24
+ `tsdocRequire.configs.detailed`
25
+
26
+ ## Flat Config example
27
+
28
+ ```ts
29
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
30
+
31
+ export default [
32
+ tsdocRequire.configs.detailed,
33
+ ];
34
+ ```
35
+
36
+ ## Trade-offs
37
+
38
+ - More authoring effort than `recommended`.
39
+ - Better long-term clarity for teams maintaining shared APIs.
40
+
41
+ If you need function-signature tags (`@param`, `@returns`, `@throws`) next, move to [`jsdoc`](./jsdoc.md) or [`tsdoc`](./tsdoc.md).
@@ -0,0 +1,156 @@
1
+ # Presets Overview
2
+
3
+ Presets are curated rule bundles that help you adopt `eslint-plugin-tsdoc-require-2` in controlled stages.
4
+
5
+ Use one preset as your baseline, then add rule overrides for project-specific policy.
6
+
7
+ ## How to choose quickly
8
+
9
+ | If you want... | Start with |
10
+ | --- | --- |
11
+ | Minimal comment presence enforcement | [`recommended`](./recommended.md) |
12
+ | More narrative context in docs | [`detailed`](./detailed.md) |
13
+ | Package-level docs for published libraries | [`packages`](./packages.md) |
14
+ | JSDoc-style function tag discipline | [`jsdoc`](./jsdoc.md) |
15
+ | TSDoc-first function + type-parameter docs with tag restrictions | [`tsdoc`](./tsdoc.md) |
16
+ | TypeDoc declaration-kind tagging | [`typedoc`](./typedoc.md) |
17
+ | Strict TypeDoc workflow with module/remarks and restricted tags | [`typedoc-strict`](./typedoc-strict.md) |
18
+ | Maximum strictness for audits or experiments | [`all`](./all.md) |
19
+
20
+ ## Preset catalog
21
+
22
+ - [`recommended`](./recommended.md): Require docs to exist.
23
+ - [`detailed`](./detailed.md): `recommended` + require `@remarks`.
24
+ - [`packages`](./packages.md): `detailed` + require `@packageDocumentation`.
25
+ - [`typedoc`](./typedoc.md): TypeDoc declaration-kind tags.
26
+ - [`typedoc-strict`](./typedoc-strict.md): `typedoc` + module/remarks + restricted tags.
27
+ - [`tsdoc`](./tsdoc.md): TSDoc-style function/type tags + restricted tags.
28
+ - [`jsdoc`](./jsdoc.md): Function-oriented JSDoc-style tags.
29
+ - [`all`](./all.md): Every plugin rule.
30
+
31
+ ## Preset migration ladder
32
+
33
+ Most teams succeed with this progression:
34
+
35
+ 1. `recommended`
36
+ 2. `detailed` or `jsdoc`
37
+ 3. `tsdoc` or `typedoc` / `typedoc-strict`
38
+
39
+ Jumping straight to `all` is usually expensive and noisy unless your codebase already has consistent docs.
40
+
41
+ ## How rules compose inside presets
42
+
43
+ Each preset combines the same three policy layers in different strengths:
44
+
45
+ 1. **Presence layer**: `tsdoc-require-2/require`
46
+ 2. **Required content layer**: one or more `require-*` tag rules
47
+ 3. **Vocabulary control layer**: optional `tsdoc-require-2/restrict-tags`
48
+
49
+ This composition is why preset choice matters: two presets can include similar rules but express different documentation policy.
50
+
51
+ ## Matrix overview
52
+
53
+ The matrix below is generated by `scripts/sync-presets-rules-matrix.mjs` and
54
+ kept in sync with the README.
55
+
56
+ <!-- BEGIN_PRESETS_MATRIX -->
57
+
58
+ ### Preset matrix
59
+
60
+ - `Fix` legend:
61
+ - `🔧` = autofixable
62
+ - `💡` = suggestions available
63
+ - `—` = report only
64
+ - `Preset key` legend:
65
+ - [🟢](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.
66
+ - [🟡](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.
67
+ - [🟠](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.
68
+ - [🔵](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.
69
+ - [🔴](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.
70
+ - [🟣](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.
71
+ - [🟦](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.
72
+ - [⚫](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.
73
+
74
+ | Rule | Fix | Preset key |
75
+ | --- | :---: | --- |
76
+ | [`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) |
77
+ | [`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) |
78
+ | [`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) |
79
+ | [`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) |
80
+ | [`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) |
81
+ | [`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) |
82
+ | [`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) |
83
+ | [`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) |
84
+ | [`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) |
85
+ | [`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) |
86
+ | [`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) |
87
+ | [`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) |
88
+ | [`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) |
89
+ | [`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) |
90
+ | [`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) |
91
+ | [`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) |
92
+ | [`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) |
93
+ | [`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) |
94
+ | [`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) |
95
+ | [`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) |
96
+ | [`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) |
97
+ | [`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) |
98
+ | [`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) |
99
+ | [`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) |
100
+ | [`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) |
101
+ | [`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) |
102
+ | [`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) |
103
+ | [`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) |
104
+ | [`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) |
105
+ | [`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) |
106
+ | [`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) |
107
+ | [`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) |
108
+ | [`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) |
109
+ | [`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) |
110
+ | [`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) |
111
+ | [`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) |
112
+ | [`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) |
113
+ | [`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) |
114
+ | [`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) |
115
+ | [`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) |
116
+ | [`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) |
117
+ | [`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) |
118
+ | [`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) |
119
+ | [`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) |
120
+ | [`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) |
121
+ | [`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) |
122
+ | [`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) |
123
+ | [`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) |
124
+ | [`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) |
125
+ | [`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) |
126
+ | [`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) |
127
+ | [`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) |
128
+ | [`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) |
129
+ | [`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) |
130
+ | [`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) |
131
+ | [`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) |
132
+ | [`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) |
133
+ | [`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) |
134
+
135
+ <!-- END_PRESETS_MATRIX -->
136
+
137
+ ## Flat Config usage pattern
138
+
139
+ Use one preset baseline, then add an override block.
140
+
141
+ ```ts
142
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
143
+
144
+ export default [
145
+ tsdocRequire.configs.tsdoc,
146
+ {
147
+ rules: {
148
+ "tsdoc-require-2/require": ["error", { exportMode: "all" }],
149
+ },
150
+ },
151
+ ];
152
+ ```
153
+
154
+ Avoid stacking multiple presets unless you intentionally want merge-order behavior.
155
+
156
+ For setup steps, see [Getting Started](../getting-started.md).
@@ -0,0 +1,43 @@
1
+ # jsdoc
2
+
3
+ JSDoc-leaning preset focused on function documentation tags (`@param`, `@returns`, `@throws`).
4
+
5
+ ## What this preset is for
6
+
7
+ Use `jsdoc` when you want a function-signature documentation baseline that feels familiar to JSDoc-heavy teams.
8
+
9
+ It is a practical option for:
10
+
11
+ - mixed JS/TS repositories
12
+ - teams migrating toward stronger docs without full TSDoc strictness
13
+ - service codebases that mainly care about function contracts
14
+
15
+ ## What this preset enables
16
+
17
+ - [`tsdoc-require-2/require`](../require.md)
18
+ - [`tsdoc-require-2/require-param`](../required-tags/require-param.md) with `enforceFor: ["function"]`
19
+ - [`tsdoc-require-2/require-returns`](../required-tags/require-returns.md) with `enforceFor: ["function"]`
20
+ - [`tsdoc-require-2/require-throws`](../required-tags/require-throws.md) with `enforceFor: ["function"]`
21
+
22
+ ## Important behavior detail
23
+
24
+ This preset scopes the tag rules to functions only. It does not require `@remarks`, `@typeParam`, or tag restrictions.
25
+
26
+ ## Config key
27
+
28
+ `tsdocRequire.configs.jsdoc`
29
+
30
+ ## Flat Config example
31
+
32
+ ```ts
33
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
34
+
35
+ export default [
36
+ tsdocRequire.configs.jsdoc,
37
+ ];
38
+ ```
39
+
40
+ ## When to choose a different preset
41
+
42
+ - Choose [`tsdoc`](./tsdoc.md) when you need stronger TSDoc conventions and restricted tag vocabulary.
43
+ - Choose [`recommended`](./recommended.md) when function tags would create too much migration noise initially.
@@ -0,0 +1,41 @@
1
+ # packages
2
+
3
+ Package-focused preset for package entrypoint and module-level narrative docs.
4
+
5
+ ## What this preset is for
6
+
7
+ Use `packages` when you publish libraries/SDKs and want package-level documentation quality, not only declaration-level comments.
8
+
9
+ This preset is useful for:
10
+
11
+ - npm packages with public entrypoints
12
+ - monorepo packages with independent docs contracts
13
+ - API libraries that rely on `@packageDocumentation`
14
+
15
+ ## What this preset enables
16
+
17
+ - [`tsdoc-require-2/require`](../require.md)
18
+ - [`tsdoc-require-2/require-remarks`](../required-tags/require-remarks.md)
19
+ - [`tsdoc-require-2/require-package-documentation`](../required-tags/require-package-documentation.md)
20
+
21
+ Compared to `detailed`, this adds package-level documentation intent.
22
+
23
+ ## Config key
24
+
25
+ `tsdocRequire.configs.packages`
26
+
27
+ ## Flat Config example
28
+
29
+ ```ts
30
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
31
+
32
+ export default [
33
+ tsdocRequire.configs.packages,
34
+ ];
35
+ ```
36
+
37
+ ## Practical guidance
38
+
39
+ - Start here for library repos where docs are part of the public contract.
40
+ - Pair with [`tsdoc`](./tsdoc.md) if you also need strict function/type tag policy.
41
+ - If package-level docs are not relevant, `detailed` is usually a better baseline.
@@ -0,0 +1,37 @@
1
+ # recommended
2
+
3
+ Baseline preset that enforces TSDoc comment presence with `tsdoc-require-2/require`.
4
+
5
+ ## What this preset is for
6
+
7
+ Use `recommended` when you need a low-friction starting point:
8
+
9
+ - enforce that API declarations are documented
10
+ - avoid immediate tag-level migration work
11
+ - establish a consistent baseline before adopting stricter tag policy
12
+
13
+ ## What this preset enables
14
+
15
+ - [`tsdoc-require-2/require`](../require.md)
16
+
17
+ This preset only checks that comments exist. It does **not** require tags like `@param` or `@returns`, and it does not restrict tag vocabulary.
18
+
19
+ ## Config key
20
+
21
+ `tsdocRequire.configs.recommended`
22
+
23
+ ## Flat Config example
24
+
25
+ ```ts
26
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
27
+
28
+ export default [
29
+ tsdocRequire.configs.recommended,
30
+ ];
31
+ ```
32
+
33
+ ## When to choose a stricter preset
34
+
35
+ - Move to [`detailed`](./detailed.md) when every doc block should include `@remarks`.
36
+ - Move to [`jsdoc`](./jsdoc.md) or [`tsdoc`](./tsdoc.md) when function/tag contracts matter.
37
+ - Move to [`packages`](./packages.md) for package-level API docs.
@@ -0,0 +1,45 @@
1
+ # tsdoc
2
+
3
+ TSDoc-focused preset with function/type-parameter requirements and compatibility-tag restrictions.
4
+
5
+ ## What this preset is for
6
+
7
+ Use `tsdoc` when you want a strong TSDoc baseline with both required content and vocabulary controls.
8
+
9
+ This preset works well for:
10
+
11
+ - TypeScript library APIs
12
+ - SDKs with strict documentation standards
13
+ - teams standardizing on TSDoc over mixed JSDoc/TypeDoc conventions
14
+
15
+ ## What this preset enables
16
+
17
+ - [`tsdoc-require-2/require`](../require.md)
18
+ - [`tsdoc-require-2/require-remarks`](../required-tags/require-remarks.md)
19
+ - [`tsdoc-require-2/require-param`](../required-tags/require-param.md) with `enforceFor: ["function"]`
20
+ - [`tsdoc-require-2/require-returns`](../required-tags/require-returns.md) with `enforceFor: ["function"]`
21
+ - [`tsdoc-require-2/require-throws`](../required-tags/require-throws.md) with `enforceFor: ["function"]`
22
+ - [`tsdoc-require-2/require-type-param`](../required-tags/require-type-param.md) with `enforceFor: ["class", "function", "interface", "type"]`
23
+ - [`tsdoc-require-2/restrict-tags`](../restrict-tags.md) in deny mode for TypeDoc compatibility tags
24
+
25
+ ## Why this preset is different from `jsdoc`
26
+
27
+ `jsdoc` focuses on function tags only. `tsdoc` adds stronger TSDoc structure (`@remarks`, `@typeParam`) and stricter tag vocabulary.
28
+
29
+ ## Config key
30
+
31
+ `tsdocRequire.configs.tsdoc`
32
+
33
+ ## Flat Config example
34
+
35
+ ```ts
36
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
37
+
38
+ export default [
39
+ tsdocRequire.configs.tsdoc,
40
+ ];
41
+ ```
42
+
43
+ ## Common customization
44
+
45
+ If your docs intentionally use some TypeDoc tags, override `restrict-tags.tags` instead of disabling `restrict-tags` entirely.
@@ -0,0 +1,50 @@
1
+ # typedoc-strict
2
+
3
+ Stricter TypeDoc preset that also requires module remarks and denies compatibility-only block tags.
4
+
5
+ ## What this preset is for
6
+
7
+ Use `typedoc-strict` when you want TypeDoc-oriented declaration tagging plus stricter narrative and tag vocabulary discipline.
8
+
9
+ This preset is a good fit for:
10
+
11
+ - public SDKs with strict documentation standards
12
+ - multi-package libraries with clear module-level docs requirements
13
+ - teams that need consistent TypeDoc-friendly output with reduced tag sprawl
14
+
15
+ ## What this preset enables
16
+
17
+ - [`tsdoc-require-2/require`](../require.md)
18
+ - [`tsdoc-require-2/require-class`](../required-tags/require-class.md) with `enforceFor: ["class"]`
19
+ - [`tsdoc-require-2/require-enum`](../required-tags/require-enum.md) with `enforceFor: ["enum"]`
20
+ - [`tsdoc-require-2/require-function`](../required-tags/require-function.md) with `enforceFor: ["function"]`
21
+ - [`tsdoc-require-2/require-interface`](../required-tags/require-interface.md) with `enforceFor: ["interface"]`
22
+ - [`tsdoc-require-2/require-module`](../required-tags/require-module.md) with `enforceFor: ["namespace"]`
23
+ - [`tsdoc-require-2/require-remarks`](../required-tags/require-remarks.md)
24
+ - [`tsdoc-require-2/restrict-tags`](../restrict-tags.md) in deny mode for TypeDoc compatibility tags
25
+
26
+ ## Why this preset is stricter than `typedoc`
27
+
28
+ Compared to `typedoc`, this preset adds:
29
+
30
+ - module-level docs (`@module`)
31
+ - narrative context (`@remarks`)
32
+ - explicit tag vocabulary restrictions
33
+
34
+ ## Config key
35
+
36
+ `tsdocRequire.configs["typedoc-strict"]`
37
+
38
+ ## Flat Config example
39
+
40
+ ```ts
41
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
42
+
43
+ export default [
44
+ tsdocRequire.configs["typedoc-strict"],
45
+ ];
46
+ ```
47
+
48
+ ## Common customization
49
+
50
+ If your project intentionally uses some denied tags, override `restrict-tags.tags` with a narrower deny list instead of disabling the rule.
@@ -0,0 +1,44 @@
1
+ # typedoc
2
+
3
+ Conservative TypeDoc-oriented preset with declaration-kind tags that are safe to infer.
4
+
5
+ ## What this preset is for
6
+
7
+ Use `typedoc` when your documentation pipeline expects explicit TypeDoc-style declaration tags.
8
+
9
+ This preset is useful for codebases that:
10
+
11
+ - generate docs with TypeDoc
12
+ - want explicit declaration classification tags
13
+ - are not ready for broader strictness from `typedoc-strict`
14
+
15
+ ## What this preset enables
16
+
17
+ - [`tsdoc-require-2/require`](../require.md)
18
+ - [`tsdoc-require-2/require-class`](../required-tags/require-class.md) with `enforceFor: ["class"]`
19
+ - [`tsdoc-require-2/require-enum`](../required-tags/require-enum.md) with `enforceFor: ["enum"]`
20
+ - [`tsdoc-require-2/require-function`](../required-tags/require-function.md) with `enforceFor: ["function"]`
21
+ - [`tsdoc-require-2/require-interface`](../required-tags/require-interface.md) with `enforceFor: ["interface"]`
22
+
23
+ ## Trade-offs
24
+
25
+ - Focused on declaration-kind tags, not broader narrative or function-signature tag coverage.
26
+ - Does not include `restrict-tags`; add it manually if tag vocabulary control matters.
27
+
28
+ ## Config key
29
+
30
+ `tsdocRequire.configs.typedoc`
31
+
32
+ ## Flat Config example
33
+
34
+ ```ts
35
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
36
+
37
+ export default [
38
+ tsdocRequire.configs.typedoc,
39
+ ];
40
+ ```
41
+
42
+ ## Next step
43
+
44
+ Move to [`typedoc-strict`](./typedoc-strict.md) for module-level remarks and tag restrictions.