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,32 +1,49 @@
1
1
  # tsdoc-require-2/require
2
2
 
3
- Requires TSDoc comments for exported TypeScript declarations and default exports, with optional enforcement for non-exported top-level declarations.
3
+ Require TSDoc comments for supported TypeScript declarations and default exports, with configurable export scope.
4
4
 
5
- ## Rule Details
5
+ > **Rule catalog ID:** R001
6
6
 
7
- By default, this rule reports exported declarations that do not have a TSDoc block comment (`/** ... */`) directly above them.
7
+ ## Targeted pattern scope
8
+
9
+ By default, this rule reports supported **exported** declarations that do not have a TSDoc block comment (`/** ... */`) directly above them.
10
+
11
+ It evaluates top-level declarations and handles both inline exports and export specifiers.
12
+
13
+ ## What this rule reports
8
14
 
9
15
  It checks:
10
16
 
11
17
  - exported classes
12
18
  - exported functions
13
19
  - exported interfaces
20
+ - exported namespaces and `declare module` declarations
14
21
  - exported type aliases
15
22
  - exported enums
16
23
  - exported variables
17
24
  - default exports (including default-exported identifiers)
18
25
 
19
- When `includeNonExported: true` is enabled, the same checks also apply to non-exported top-level declarations.
26
+ For default exports, supported expression forms include function/class expressions, object expressions, and arrow functions.
27
+
28
+ When `exportMode: "all"` is enabled, the same checks also apply to non-exported top-level declarations. When `exportMode: "non-exported"` is enabled, only non-exported top-level declarations are checked.
20
29
 
21
- Why this matters: if exported APIs are undocumented, consumers have to inspect implementation details instead of reading a stable contract.
30
+ ## Why this rule exists
22
31
 
23
- ### Incorrect
32
+ If exported APIs are undocumented, consumers have to infer contracts from implementation details.
33
+
34
+ This rule is the foundation for the plugin’s policy model:
35
+
36
+ - [`required-tags`](./required-tags.md) rules validate comment content.
37
+ - [`restrict-tags`](./restrict-tags.md) validates tag vocabulary.
38
+ - `require` ensures those checks have an actual comment block to validate.
39
+
40
+ ## ❌ Incorrect
24
41
 
25
42
  ```ts
26
43
  export class MissingDocs {}
27
44
 
28
45
  interface Shape {
29
- radius: number;
46
+ radius: number;
30
47
  }
31
48
 
32
49
  export { Shape };
@@ -35,7 +52,7 @@ const createUser = () => ({ id: "1" });
35
52
  export default createUser;
36
53
  ```
37
54
 
38
- ### ✅ Correct
55
+ ## ✅ Correct
39
56
 
40
57
  ```ts
41
58
  /** Public class used by external callers. */
@@ -43,7 +60,7 @@ export class DocumentedClass {}
43
60
 
44
61
  /** Shape shared in the public API. */
45
62
  interface Shape {
46
- radius: number;
63
+ radius: number;
47
64
  }
48
65
 
49
66
  export { Shape };
@@ -53,24 +70,35 @@ const createUser = () => ({ id: "1" });
53
70
  export default createUser;
54
71
  ```
55
72
 
56
- ## Options
73
+ ## Behavior and migration notes
74
+
75
+ - Start with `exportMode: "exported"` to enforce public API docs first.
76
+ - Expand to `"all"` when internal top-level declarations should also be documented.
77
+ - Keep `exportMode` and `enforceFor` aligned with `require-*` and `restrict-tags` rules so documentation policy remains consistent.
78
+ - `includeNonExported` remains supported as a legacy alias for `exportMode: "all"`, but new configurations should prefer `exportMode`.
79
+
80
+ ## Additional examples
81
+
82
+ ### Options
57
83
 
58
84
  This rule accepts one optional object.
59
85
 
60
86
  ```ts
61
87
  type Options = [
62
- {
63
- enforceFor?: Array<
64
- "class" |
65
- "enum" |
66
- "function" |
67
- "interface" |
68
- "object" |
69
- "type" |
70
- "variable"
71
- >;
72
- includeNonExported?: boolean;
73
- },
88
+ {
89
+ enforceFor?: Array<
90
+ "class" |
91
+ "enum" |
92
+ "function" |
93
+ "interface" |
94
+ "namespace" |
95
+ "object" |
96
+ "type" |
97
+ "variable"
98
+ >;
99
+ exportMode?: "all" | "exported" | "non-exported";
100
+ includeNonExported?: boolean;
101
+ },
74
102
  ];
75
103
  ```
76
104
 
@@ -78,10 +106,10 @@ Default options:
78
106
 
79
107
  ```ts
80
108
  [
81
- {
82
- enforceFor: ["class", "enum", "function", "interface", "object", "type", "variable"],
83
- includeNonExported: false,
84
- },
109
+ {
110
+ enforceFor: ["class", "enum", "function", "interface", "namespace", "object", "type", "variable"],
111
+ exportMode: "exported",
112
+ },
85
113
  ]
86
114
  ```
87
115
 
@@ -95,25 +123,29 @@ Example flat config that only enforces docs for classes and functions:
95
123
  import tsdocRequire from "eslint-plugin-tsdoc-require-2";
96
124
 
97
125
  export default [
98
- {
99
- plugins: {
100
- "tsdoc-require-2": tsdocRequire,
101
- },
102
- rules: {
103
- "tsdoc-require-2/require": [
104
- "error",
105
- {
106
- enforceFor: ["class", "function"],
107
- },
108
- ],
109
- },
110
- },
126
+ {
127
+ plugins: {
128
+ "tsdoc-require-2": tsdocRequire,
129
+ },
130
+ rules: {
131
+ "tsdoc-require-2/require": [
132
+ "error",
133
+ {
134
+ enforceFor: ["class", "function"],
135
+ },
136
+ ],
137
+ },
138
+ },
111
139
  ];
112
140
  ```
113
141
 
114
- ### `includeNonExported`
142
+ ### `exportMode`
143
+
144
+ Controls whether the rule checks exported declarations, non-exported top-level declarations, or both.
115
145
 
116
- When `true`, this rule also enforces TSDoc on supported non-exported top-level declarations.
146
+ - `"exported"` (default): check exported declarations and default exports.
147
+ - `"non-exported"`: only check supported non-exported top-level declarations.
148
+ - `"all"`: check both exported and non-exported top-level declarations.
117
149
 
118
150
  Example flat config:
119
151
 
@@ -121,27 +153,31 @@ Example flat config:
121
153
  import tsdocRequire from "eslint-plugin-tsdoc-require-2";
122
154
 
123
155
  export default [
124
- {
125
- plugins: {
126
- "tsdoc-require-2": tsdocRequire,
127
- },
128
- rules: {
129
- "tsdoc-require-2/require": [
130
- "error",
131
- {
132
- includeNonExported: true,
133
- },
134
- ],
135
- },
136
- },
156
+ {
157
+ plugins: {
158
+ "tsdoc-require-2": tsdocRequire,
159
+ },
160
+ rules: {
161
+ "tsdoc-require-2/require": [
162
+ "error",
163
+ {
164
+ exportMode: "all",
165
+ },
166
+ ],
167
+ },
168
+ },
137
169
  ];
138
170
  ```
139
171
 
140
- ## When Not To Use It
172
+ ### `includeNonExported`
173
+
174
+ `includeNonExported` is still supported as a backward-compatible alias for `exportMode: "all"`. Prefer `exportMode` in new configurations because it can also express `"non-exported"` explicitly.
175
+
176
+ ## When not to use it
141
177
 
142
178
  Disable this rule if your project intentionally does not require API documentation on exported declarations (or internal declarations when `includeNonExported` is enabled).
143
179
 
144
- ## Further Reading
180
+ ## Further reading
145
181
 
146
182
  - [TSDoc](https://tsdoc.org)
147
183
  - [ESLint custom rule docs](https://eslint.org/docs/latest/extend/custom-rules)
@@ -0,0 +1,87 @@
1
+ # tsdoc-require-2/require-abstract
2
+
3
+ Require the `@abstract` 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 `@abstract`. 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
+ * @abstract
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 `@abstract` 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)
@@ -54,4 +54,4 @@ export function runTask(value: string): string {
54
54
  ## Further reading
55
55
 
56
56
  - TSDoc tag reference: <https://tsdoc.org/pages/tags/alpha/>
57
- - Rule index: [required-tags](../required-tags.md)
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,87 @@
1
+ # tsdoc-require-2/require-author
2
+
3
+ Require the `@author` 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 `@author`. 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
+ * @author
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 `@author` 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)
@@ -54,4 +54,4 @@ export function runTask(value: string): string {
54
54
  ## Further reading
55
55
 
56
56
  - TSDoc tag reference: <https://tsdoc.org/pages/tags/beta/>
57
- - Rule index: [required-tags](../required-tags.md)
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,87 @@
1
+ # tsdoc-require-2/require-category
2
+
3
+ Require the `@category` 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 `@category`. 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
+ * @category
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 `@category` 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)
@@ -0,0 +1,71 @@
1
+ # tsdoc-require-2/require-class
2
+
3
+ Require the `@class` tag in TSDoc blocks for supported TypeScript declarations.
4
+
5
+ ## Rule details
6
+
7
+ This rule reports declarations that already have TSDoc but do not contain `@class`.
8
+
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
+
11
+ ## Why use it
12
+
13
+ `@class` can help teams and doc generators that expect explicit declaration-kind tags.
14
+
15
+ ## Options
16
+
17
+ This rule accepts the same options as [`tsdoc-require-2/require`](../require.md):
18
+
19
+ - `enforceFor`: limit which declaration kinds are checked.
20
+ - `exportMode`: choose whether to check exported declarations, non-exported top-level declarations, or both.
21
+ - `includeNonExported`: legacy alias for `exportMode: "all"`.
22
+
23
+ Flat config example (class-only scope):
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-class": ["error", { enforceFor: ["class"] }],
35
+ },
36
+ },
37
+ ];
38
+ ```
39
+
40
+ ## ❌ Incorrect
41
+
42
+ ```ts
43
+ /**
44
+ * Represents a cache entry.
45
+ */
46
+ export class CacheEntry {
47
+ public constructor(public readonly key: string) {}
48
+ }
49
+ ```
50
+
51
+ ## ✅ Correct
52
+
53
+ ```ts
54
+ /**
55
+ * Represents a cache entry.
56
+ * @class
57
+ */
58
+ export class CacheEntry {
59
+ public constructor(public readonly key: string) {}
60
+ }
61
+ ```
62
+
63
+ ## When not to use it
64
+
65
+ Disable this rule if your documentation convention does not require `@class` on the declarations targeted by your configuration.
66
+
67
+ ## Further reading
68
+
69
+ - [TSDoc](https://tsdoc.org)
70
+ - [TypeDoc Tags](https://typedoc.org/documents/Tags.html)
71
+ - [required-tags](../required-tags.md)
@@ -54,4 +54,4 @@ export function runTask(value: string): string {
54
54
  ## Further reading
55
55
 
56
56
  - TSDoc tag reference: <https://tsdoc.org/pages/tags/decorator/>
57
- - Rule index: [required-tags](../required-tags.md)
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -54,4 +54,4 @@ export function runTask(value: string): string {
54
54
  ## Further reading
55
55
 
56
56
  - TSDoc tag reference: <https://tsdoc.org/pages/tags/defaultvalue/>
57
- - Rule index: [required-tags](../required-tags.md)
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -54,4 +54,4 @@ export function runTask(value: string): string {
54
54
  ## Further reading
55
55
 
56
56
  - TSDoc tag reference: <https://tsdoc.org/pages/tags/deprecated/>
57
- - Rule index: [required-tags](../required-tags.md)
57
+ - Rule index: [required-tags](../required-tags.md)
@@ -0,0 +1,87 @@
1
+ # tsdoc-require-2/require-document
2
+
3
+ Require the `@document` 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 `@document`. 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
+ * @document
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 `@document` 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)