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
@@ -1,29 +1,45 @@
1
1
  # tsdoc-require-2/require-type-param
2
2
 
3
- Require the `@typeParam` tag in TSDoc blocks for exported declarations.
3
+ Require the `@typeParam` tag in TSDoc blocks for targeted declarations.
4
4
 
5
5
  ## Rule details
6
6
 
7
- By default, this rule reports exported declarations (and supported default exports) that have TSDoc but are missing `@typeParam`. Set `includeNonExported: true` to also check non-exported top-level declarations.
7
+ This rule reports declarations that already have TSDoc but are missing `@typeParam`.
8
8
 
9
- It supports the same options as [`tsdoc-require-2/require`](../require.md):
9
+ It does not create a TSDoc block. Pair it with [`tsdoc-require-2/require`](../require.md) when you also want to require comments.
10
10
 
11
- - `enforceFor`: choose which declaration kinds are checked.
12
- - `includeNonExported`: when `true`, also check non-exported top-level declarations (default: `false`).
11
+ ## Why use it
12
+
13
+ `@typeParam` makes generic contracts easier to understand for callers and maintainers.
13
14
 
14
15
  ## Options
15
16
 
16
- ```json
17
- {
18
- "rules": {
19
- "tsdoc-require-2/require-type-param": [
20
- "error",
21
- {
22
- "enforceFor": ["class", "function", "interface", "type", "enum", "variable", "object"]
23
- }
24
- ]
25
- }
26
- }
17
+ This rule supports the same options as [`tsdoc-require-2/require`](../require.md):
18
+
19
+ - `enforceFor`
20
+ - `exportMode`
21
+ - `includeNonExported` (legacy alias for `exportMode: "all"`)
22
+
23
+ Flat config example (generic declarations only):
24
+
25
+ ```ts
26
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
27
+
28
+ export default [
29
+ {
30
+ plugins: {
31
+ "tsdoc-require-2": tsdocRequire,
32
+ },
33
+ rules: {
34
+ "tsdoc-require-2/require-type-param": [
35
+ "error",
36
+ {
37
+ enforceFor: ["class", "function", "interface", "type"],
38
+ },
39
+ ],
40
+ },
41
+ },
42
+ ];
27
43
  ```
28
44
 
29
45
  ## Examples
@@ -32,10 +48,10 @@ It supports the same options as [`tsdoc-require-2/require`](../require.md):
32
48
 
33
49
  ```ts
34
50
  /**
35
- * Performs a task.
51
+ * Wraps data in a typed container.
36
52
  */
37
- export function runTask(value: string): string {
38
- return value;
53
+ export function wrap<T>(value: T): { value: T } {
54
+ return { value };
39
55
  }
40
56
  ```
41
57
 
@@ -43,15 +59,19 @@ export function runTask(value: string): string {
43
59
 
44
60
  ```ts
45
61
  /**
46
- * Performs a task.
47
- * @typeParam
62
+ * Wraps data in a typed container.
63
+ * @typeParam T - Value type stored in the wrapper.
48
64
  */
49
- export function runTask(value: string): string {
50
- return value;
65
+ export function wrap<T>(value: T): { value: T } {
66
+ return { value };
51
67
  }
52
68
  ```
53
69
 
70
+ ## Behavior notes
71
+
72
+ This rule checks tag presence. It does not verify one `@typeParam` tag per generic parameter.
73
+
54
74
  ## Further reading
55
75
 
56
- - TSDoc tag reference: <https://tsdoc.org/pages/tags/typeparam/>
57
- - Rule index: [required-tags](../required-tags.md)
76
+ - [TSDoc tag reference: @typeParam](https://tsdoc.org/pages/tags/typeparam/)
77
+ - [required-tags family overview](../required-tags.md)
@@ -0,0 +1,87 @@
1
+ # tsdoc-require-2/require-use-declared-type
2
+
3
+ Require the `@useDeclaredType` tag in TSDoc blocks for supported TypeScript declarations.
4
+
5
+ ## Rule Details
6
+
7
+ This rule reports supported declarations and default exports when a TSDoc block exists but does not contain `@useDeclaredType`. It does not create the TSDoc block itself, so pair it with [`tsdoc-require-2/require`](../require.md) when you also want to require the comment.
8
+
9
+ ## Options
10
+
11
+ This rule accepts the same options as [`tsdoc-require-2/require`](../require.md):
12
+
13
+ - `enforceFor`: limit which declaration kinds are checked.
14
+ - `exportMode`: choose whether to check exported declarations, non-exported top-level declarations, or both.
15
+ - `includeNonExported`: legacy alias for `exportMode: "all"`.
16
+
17
+ ```ts
18
+ type Options = [
19
+ {
20
+ enforceFor?: Array<
21
+ | "class"
22
+ | "enum"
23
+ | "function"
24
+ | "interface"
25
+ | "namespace"
26
+ | "object"
27
+ | "type"
28
+ | "variable"
29
+ >;
30
+ exportMode?: "all" | "exported" | "non-exported";
31
+ includeNonExported?: boolean;
32
+ },
33
+ ];
34
+ ```
35
+
36
+ Default options:
37
+
38
+ ```ts
39
+ [
40
+ {
41
+ enforceFor: [
42
+ "class",
43
+ "enum",
44
+ "function",
45
+ "interface",
46
+ "namespace",
47
+ "object",
48
+ "type",
49
+ "variable",
50
+ ],
51
+ exportMode: "exported",
52
+ },
53
+ ]
54
+ ```
55
+
56
+ ## ❌ Incorrect
57
+
58
+ ```ts
59
+ /**
60
+ * Performs a tagged operation.
61
+ */
62
+ export function taggedFunction(value: string): string {
63
+ return value;
64
+ }
65
+ ```
66
+
67
+ ## ✅ Correct
68
+
69
+ ```ts
70
+ /**
71
+ * Performs a tagged operation.
72
+ * @useDeclaredType
73
+ */
74
+ export function taggedFunction(value: string): string {
75
+ return value;
76
+ }
77
+ ```
78
+
79
+ ## When Not To Use It
80
+
81
+ Disable this rule if your documentation convention does not require `@useDeclaredType` on the declarations targeted by your configuration.
82
+
83
+ ## Further Reading
84
+
85
+ - [TSDoc](https://tsdoc.org)
86
+ - [TypeDoc Tags](https://typedoc.org/documents/Tags.html)
87
+ - [required-tags](../required-tags.md)
@@ -1,76 +1,208 @@
1
- # required-tags
1
+ # tsdoc-require-2/required-tags
2
2
 
3
- Require specific TSDoc tags to exist in TSDoc blocks for exported declarations, with optional enforcement for non-exported top-level declarations.
3
+ > **Rule catalog ID:** R100
4
4
 
5
- ## Rules in this family
5
+ ## Targeted pattern scope
6
6
 
7
+ This page documents the **required-tag rule family** (`require-*`).
8
+
9
+ Each `require-*` rule checks declarations that already have TSDoc and reports when its specific tag is missing.
10
+
11
+ Examples:
12
+
13
+ - `tsdoc-require-2/require-param` requires `@param`
14
+ - `tsdoc-require-2/require-returns` requires `@returns`
15
+ - `tsdoc-require-2/require-remarks` requires `@remarks`
16
+
17
+ ## What this rule reports
18
+
19
+ For each enabled `require-*` rule, reports declarations where:
20
+
21
+ - a TSDoc block exists, and
22
+ - the required tag for that rule does not appear in the block.
23
+
24
+ Like [`tsdoc-require-2/require`](./require.md), required-tag rules support declaration targeting (`enforceFor`) and export scope (`exportMode` / `includeNonExported`).
25
+
26
+ ## Why this rule exists
27
+
28
+ Comment presence alone does not guarantee useful docs.
29
+
30
+ Required-tag rules let you enforce documentation contracts such as:
31
+
32
+ - every documented function has `@param` / `@returns`
33
+ - every package entry has `@packageDocumentation`
34
+ - every declaration includes `@remarks` for implementation context
35
+
36
+ Together, these rules turn documentation from optional prose into a consistent API contract.
37
+
38
+ ## ❌ Incorrect
39
+
40
+ ```ts
41
+ /**
42
+ * Creates a user record.
43
+ */
44
+ export function createUser(name: string): string {
45
+ return name;
46
+ }
47
+ ```
48
+
49
+ With:
50
+
51
+ ```ts
52
+ ["error", { enforceFor: ["function"] }]
53
+ ```
54
+
55
+ for `tsdoc-require-2/require-param` and `tsdoc-require-2/require-returns`.
56
+
57
+ ## ✅ Correct
58
+
59
+ ```ts
60
+ /**
61
+ * Creates a user record.
62
+ * @param name - User display name.
63
+ * @returns Persisted user ID.
64
+ */
65
+ export function createUser(name: string): string {
66
+ return name;
67
+ }
68
+ ```
69
+
70
+ ## Behavior and migration notes
71
+
72
+ - No single runtime rule key named `tsdoc-require-2/required-tags` exists; enable individual `require-*` rules.
73
+ - Required-tag rules only validate comments that exist. Pair them with [`tsdoc-require-2/require`](./require.md).
74
+ - If you also enable [`tsdoc-require-2/restrict-tags`](./restrict-tags.md) in `allow` mode, include all required tags in the allow-list to avoid policy conflicts.
75
+ - Keep `enforceFor` and `exportMode` aligned across `require`, `require-*`, and `restrict-tags` for predictable results.
76
+
77
+ ## Additional examples
78
+
79
+ ### Shared options
80
+
81
+ Each `require-*` rule accepts the same option shape:
82
+
83
+ ```ts
84
+ type Options = [
85
+ {
86
+ enforceFor?: Array<
87
+ | "class"
88
+ | "enum"
89
+ | "function"
90
+ | "interface"
91
+ | "namespace"
92
+ | "object"
93
+ | "type"
94
+ | "variable"
95
+ >;
96
+ exportMode?: "all" | "exported" | "non-exported";
97
+ includeNonExported?: boolean;
98
+ },
99
+ ];
100
+ ```
101
+
102
+ Default options:
103
+
104
+ ```ts
105
+ [
106
+ {
107
+ enforceFor: [
108
+ "class",
109
+ "enum",
110
+ "function",
111
+ "interface",
112
+ "namespace",
113
+ "object",
114
+ "type",
115
+ "variable",
116
+ ],
117
+ exportMode: "exported",
118
+ },
119
+ ]
120
+ ```
121
+
122
+ ### Rules in this family
123
+
124
+ - [`tsdoc-require-2/require-abstract`](./required-tags/require-abstract.md)
7
125
  - [`tsdoc-require-2/require-alpha`](./required-tags/require-alpha.md)
126
+ - [`tsdoc-require-2/require-author`](./required-tags/require-author.md)
8
127
  - [`tsdoc-require-2/require-beta`](./required-tags/require-beta.md)
128
+ - [`tsdoc-require-2/require-category`](./required-tags/require-category.md)
129
+ - [`tsdoc-require-2/require-class`](./required-tags/require-class.md)
9
130
  - [`tsdoc-require-2/require-decorator`](./required-tags/require-decorator.md)
10
131
  - [`tsdoc-require-2/require-default-value`](./required-tags/require-default-value.md)
11
132
  - [`tsdoc-require-2/require-deprecated`](./required-tags/require-deprecated.md)
133
+ - [`tsdoc-require-2/require-document`](./required-tags/require-document.md)
134
+ - [`tsdoc-require-2/require-enum`](./required-tags/require-enum.md)
135
+ - [`tsdoc-require-2/require-event`](./required-tags/require-event.md)
12
136
  - [`tsdoc-require-2/require-event-property`](./required-tags/require-event-property.md)
13
137
  - [`tsdoc-require-2/require-example`](./required-tags/require-example.md)
138
+ - [`tsdoc-require-2/require-expand`](./required-tags/require-expand.md)
14
139
  - [`tsdoc-require-2/require-experimental`](./required-tags/require-experimental.md)
140
+ - [`tsdoc-require-2/require-function`](./required-tags/require-function.md)
141
+ - [`tsdoc-require-2/require-group`](./required-tags/require-group.md)
142
+ - [`tsdoc-require-2/require-hidden`](./required-tags/require-hidden.md)
143
+ - [`tsdoc-require-2/require-hideconstructor`](./required-tags/require-hideconstructor.md)
144
+ - [`tsdoc-require-2/require-ignore`](./required-tags/require-ignore.md)
145
+ - [`tsdoc-require-2/require-import`](./required-tags/require-import.md)
146
+ - [`tsdoc-require-2/require-include`](./required-tags/require-include.md)
15
147
  - [`tsdoc-require-2/require-inherit-doc`](./required-tags/require-inherit-doc.md)
148
+ - [`tsdoc-require-2/require-inline`](./required-tags/require-inline.md)
149
+ - [`tsdoc-require-2/require-interface`](./required-tags/require-interface.md)
16
150
  - [`tsdoc-require-2/require-internal`](./required-tags/require-internal.md)
17
151
  - [`tsdoc-require-2/require-label`](./required-tags/require-label.md)
152
+ - [`tsdoc-require-2/require-license`](./required-tags/require-license.md)
18
153
  - [`tsdoc-require-2/require-link`](./required-tags/require-link.md)
154
+ - [`tsdoc-require-2/require-merge-module-with`](./required-tags/require-merge-module-with.md)
155
+ - [`tsdoc-require-2/require-module`](./required-tags/require-module.md)
156
+ - [`tsdoc-require-2/require-namespace`](./required-tags/require-namespace.md)
157
+ - [`tsdoc-require-2/require-overload`](./required-tags/require-overload.md)
19
158
  - [`tsdoc-require-2/require-override`](./required-tags/require-override.md)
20
159
  - [`tsdoc-require-2/require-package-documentation`](./required-tags/require-package-documentation.md)
21
160
  - [`tsdoc-require-2/require-param`](./required-tags/require-param.md)
161
+ - [`tsdoc-require-2/require-primary-export`](./required-tags/require-primary-export.md)
162
+ - [`tsdoc-require-2/require-private`](./required-tags/require-private.md)
22
163
  - [`tsdoc-require-2/require-private-remarks`](./required-tags/require-private-remarks.md)
164
+ - [`tsdoc-require-2/require-property`](./required-tags/require-property.md)
165
+ - [`tsdoc-require-2/require-protected`](./required-tags/require-protected.md)
23
166
  - [`tsdoc-require-2/require-public`](./required-tags/require-public.md)
24
167
  - [`tsdoc-require-2/require-readonly`](./required-tags/require-readonly.md)
25
168
  - [`tsdoc-require-2/require-remarks`](./required-tags/require-remarks.md)
26
169
  - [`tsdoc-require-2/require-returns`](./required-tags/require-returns.md)
27
170
  - [`tsdoc-require-2/require-sealed`](./required-tags/require-sealed.md)
28
171
  - [`tsdoc-require-2/require-see`](./required-tags/require-see.md)
172
+ - [`tsdoc-require-2/require-since`](./required-tags/require-since.md)
173
+ - [`tsdoc-require-2/require-sort-strategy`](./required-tags/require-sort-strategy.md)
174
+ - [`tsdoc-require-2/require-summary`](./required-tags/require-summary.md)
175
+ - [`tsdoc-require-2/require-template`](./required-tags/require-template.md)
29
176
  - [`tsdoc-require-2/require-throws`](./required-tags/require-throws.md)
30
177
  - [`tsdoc-require-2/require-type-param`](./required-tags/require-type-param.md)
178
+ - [`tsdoc-require-2/require-use-declared-type`](./required-tags/require-use-declared-type.md)
31
179
  - [`tsdoc-require-2/require-virtual`](./required-tags/require-virtual.md)
32
180
 
33
- ## Shared options
34
-
35
- Each rule accepts the same option shape:
181
+ ## ESLint flat config example
36
182
 
37
183
  ```ts
38
- [
39
- {
40
- enforceFor?: Array<
41
- | "class"
42
- | "enum"
43
- | "function"
44
- | "interface"
45
- | "object"
46
- | "type"
47
- | "variable"
48
- >;
49
- includeNonExported?: boolean;
184
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
185
+
186
+ export default [
187
+ tsdocRequire.configs.recommended,
188
+ {
189
+ rules: {
190
+ "tsdoc-require-2/require-param": ["error", { enforceFor: ["function"] }],
191
+ "tsdoc-require-2/require-returns": ["error", { enforceFor: ["function"] }],
192
+ "tsdoc-require-2/require-throws": ["error", { enforceFor: ["function"] }],
50
193
  },
51
- ]
194
+ },
195
+ ];
52
196
  ```
53
197
 
54
- Default:
198
+ ## When not to use it
55
199
 
56
- ```ts
57
- [
58
- {
59
- enforceFor: [
60
- "class",
61
- "enum",
62
- "function",
63
- "interface",
64
- "object",
65
- "type",
66
- "variable",
67
- ],
68
- includeNonExported: false,
69
- },
70
- ]
71
- ```
200
+ If your team prefers free-form narrative comments and does not want tag-level structure, required-tag rules may add noise.
201
+
202
+ In that case, keep `tsdoc-require-2/require` enabled and only add the strict tag rules that provide clear value.
72
203
 
73
- - `enforceFor`: limits which declaration kinds are checked.
74
- - `includeNonExported`: when `true`, also checks non-exported top-level declarations.
204
+ ## Further reading
75
205
 
76
- For behavior and examples, open each individual rule document linked above.
206
+ - [TSDoc](https://tsdoc.org)
207
+ - [Rule family: require](./require.md)
208
+ - [Rule family: restrict-tags](./restrict-tags.md)
@@ -0,0 +1,203 @@
1
+ # tsdoc-require-2/restrict-tags
2
+
3
+ Restrict which tags are allowed in TSDoc blocks using allow/deny lists.
4
+
5
+ > **Rule catalog ID:** R002
6
+
7
+ ## Targeted pattern scope
8
+
9
+ This rule checks supported TypeScript declarations and default exports **that already have TSDoc block comments**.
10
+
11
+ By default, it runs on exported declarations and default exports. You can widen or narrow scope with `exportMode` and `enforceFor`.
12
+
13
+ ## What this rule reports
14
+
15
+ This rule supports two modes:
16
+
17
+ - `deny`: configured tags are forbidden.
18
+ - `allow`: only configured tags are permitted.
19
+
20
+ Default mode is `deny`, with a default blocked set focused on TypeDoc compatibility tags:
21
+
22
+ - `@augments`
23
+ - `@callback`
24
+ - `@extends`
25
+ - `@jsx`
26
+ - `@satisfies`
27
+ - `@type`
28
+ - `@typedef`
29
+ - `@yields`
30
+
31
+ ## Why this rule exists
32
+
33
+ A docs policy needs both **required information** and **controlled vocabulary**.
34
+
35
+ `restrict-tags` prevents drift from your chosen documentation standard by blocking unsupported tags or enforcing an explicit allow-list.
36
+
37
+ Use it with:
38
+
39
+ - [`tsdoc-require-2/require`](./require.md) to enforce comment presence.
40
+ - [`require-*` rules](./required-tags.md) to enforce mandatory tags.
41
+
42
+ ## ❌ Incorrect
43
+
44
+ ```ts
45
+ /**
46
+ * Calculates a value.
47
+ * @typedef ResultShape
48
+ */
49
+ export function calculate(): number {
50
+ return 1;
51
+ }
52
+ ```
53
+
54
+ With default configuration (`mode: "deny"`).
55
+
56
+ ## ✅ Correct
57
+
58
+ ```ts
59
+ /**
60
+ * Calculates a value.
61
+ * @remarks Uses plain TSDoc tags.
62
+ */
63
+ export function calculate(): number {
64
+ return 1;
65
+ }
66
+ ```
67
+
68
+ With default configuration (`mode: "deny"`).
69
+
70
+ ## Behavior and migration notes
71
+
72
+ - This rule does not require comments on its own; it only validates tags found inside existing TSDoc blocks.
73
+ - In `allow` mode, any tag not listed in `tags` is reported.
74
+ - If you combine `allow` mode with required-tag rules, include all required tags in the allow-list or the rules will conflict.
75
+ - Keep `enforceFor` and `exportMode` aligned with `require` and `require-*` rules for consistent policy.
76
+
77
+ ## Additional examples
78
+
79
+ ### Options
80
+
81
+ ```ts
82
+ type Options = [
83
+ {
84
+ enforceFor?: Array<
85
+ | "class"
86
+ | "enum"
87
+ | "function"
88
+ | "interface"
89
+ | "namespace"
90
+ | "object"
91
+ | "type"
92
+ | "variable"
93
+ >;
94
+ exportMode?: "all" | "exported" | "non-exported";
95
+ includeNonExported?: boolean;
96
+ mode?: "allow" | "deny";
97
+ tags?: Array<`@${string}`>;
98
+ },
99
+ ];
100
+ ```
101
+
102
+ Default options:
103
+
104
+ ```ts
105
+ [
106
+ {
107
+ enforceFor: [
108
+ "class",
109
+ "enum",
110
+ "function",
111
+ "interface",
112
+ "namespace",
113
+ "object",
114
+ "type",
115
+ "variable",
116
+ ],
117
+ exportMode: "exported",
118
+ mode: "deny",
119
+ tags: [
120
+ "@augments",
121
+ "@callback",
122
+ "@extends",
123
+ "@jsx",
124
+ "@satisfies",
125
+ "@type",
126
+ "@typedef",
127
+ "@yields",
128
+ ],
129
+ },
130
+ ]
131
+ ```
132
+
133
+ ### Allow mode example
134
+
135
+ #### Invalid in allow mode
136
+
137
+ ```ts
138
+ /**
139
+ * Calculates a value.
140
+ * @remarks Useful details.
141
+ * @deprecated Use newCalculate instead.
142
+ */
143
+ export function calculate(): number {
144
+ return 1;
145
+ }
146
+ ```
147
+
148
+ With:
149
+
150
+ ```ts
151
+ ["error", { mode: "allow", tags: ["@remarks"] }]
152
+ ```
153
+
154
+ #### Valid in allow mode
155
+
156
+ ```ts
157
+ /**
158
+ * Calculates a value.
159
+ * @remarks Useful details.
160
+ */
161
+ export function calculate(): number {
162
+ return 1;
163
+ }
164
+ ```
165
+
166
+ With:
167
+
168
+ ```ts
169
+ ["error", { mode: "allow", tags: ["@remarks"] }]
170
+ ```
171
+
172
+ ## ESLint flat config example
173
+
174
+ ```ts
175
+ import tsdocRequire from "eslint-plugin-tsdoc-require-2";
176
+
177
+ export default [
178
+ tsdocRequire.configs.tsdoc,
179
+ {
180
+ rules: {
181
+ "tsdoc-require-2/restrict-tags": [
182
+ "error",
183
+ {
184
+ mode: "deny",
185
+ tags: ["@typedef", "@callback"],
186
+ },
187
+ ],
188
+ },
189
+ },
190
+ ];
191
+ ```
192
+
193
+ ## When not to use it
194
+
195
+ If your team intentionally allows free-form mixtures of TSDoc, JSDoc, and TypeDoc tags, this rule can create unnecessary friction.
196
+
197
+ In that case, keep required-tag rules only for tags you truly need.
198
+
199
+ ## Further reading
200
+
201
+ - [TSDoc](https://tsdoc.org)
202
+ - [TypeDoc tags reference](https://typedoc.org/documents/Tags.html)
203
+ - [Rule family: required-tags](./required-tags.md)