eslint-plugin-tsdoc-require-2 1.0.7 → 1.0.9

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,38 +1,13 @@
1
1
  import type { TSESLint } from "@typescript-eslint/utils";
2
2
  import type { TagRuleDefinition, TagRuleMessageIds, TagRuleOptions } from "../internal/require-tag-factory.js";
3
+ /** Union of all required-tag rule names exported by this plugin. */
4
+ type RequiredTagRuleName = "require-abstract" | "require-alpha" | "require-author" | "require-beta" | "require-category" | "require-class" | "require-decorator" | "require-default-value" | "require-deprecated" | "require-document" | "require-enum" | "require-event" | "require-event-property" | "require-example" | "require-expand" | "require-experimental" | "require-function" | "require-group" | "require-hidden" | "require-hideconstructor" | "require-ignore" | "require-import" | "require-include" | "require-inherit-doc" | "require-inline" | "require-interface" | "require-internal" | "require-label" | "require-license" | "require-link" | "require-merge-module-with" | "require-module" | "require-namespace" | "require-overload" | "require-override" | "require-package-documentation" | "require-param" | "require-primary-export" | "require-private" | "require-private-remarks" | "require-property" | "require-protected" | "require-public" | "require-readonly" | "require-remarks" | "require-returns" | "require-sealed" | "require-see" | "require-since" | "require-sort-strategy" | "require-summary" | "require-template" | "require-throws" | "require-type-param" | "require-use-declared-type" | "require-virtual";
5
+ type TagRuleModuleMap = Record<string, TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>>;
3
6
  /** Definitions that map each required-tag rule name to its required TSDoc tag. */
4
7
  declare const requiredTagDefinitions: readonly TagRuleDefinition[];
5
- type RequiredTagRules = {
6
- "require-alpha": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
7
- "require-beta": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
8
- "require-decorator": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
9
- "require-default-value": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
10
- "require-deprecated": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
11
- "require-event-property": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
12
- "require-example": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
13
- "require-experimental": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
14
- "require-inherit-doc": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
15
- "require-internal": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
16
- "require-label": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
17
- "require-link": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
18
- "require-override": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
19
- "require-package-documentation": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
20
- "require-param": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
21
- "require-private-remarks": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
22
- "require-public": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
23
- "require-readonly": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
24
- "require-remarks": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
25
- "require-returns": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
26
- "require-sealed": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
27
- "require-see": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
28
- "require-throws": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
29
- "require-type-param": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
30
- "require-virtual": TSESLint.RuleModule<TagRuleMessageIds, TagRuleOptions>;
31
- };
32
8
  /** Runtime map of required-tag rule modules keyed by rule name. */
33
- declare const requiredTagRules: RequiredTagRules;
34
- /** Union of all required-tag rule names exported by this plugin. */
35
- export type RequiredTagRuleName = keyof typeof requiredTagRules;
9
+ declare const requiredTagRules: Record<RequiredTagRuleName, TagRuleModuleMap[string]>;
36
10
  export { requiredTagDefinitions };
37
11
  export { requiredTagRules };
12
+ export type { RequiredTagRuleName };
38
13
  //# sourceMappingURL=require-tag-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"require-tag-rules.d.ts","sourceRoot":"","sources":["../../src/rules/require-tag-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"require-tag-rules.d.ts","sourceRoot":"","sources":["../../src/rules/require-tag-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,KAAK,EACR,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACjB,MAAM,oCAAoC,CAAC;AA2D5C,oEAAoE;AACpE,KAAK,mBAAmB,GAClB,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,mBAAmB,GACnB,uBAAuB,GACvB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,wBAAwB,GACxB,iBAAiB,GACjB,gBAAgB,GAChB,sBAAsB,GACtB,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,yBAAyB,GACzB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,qBAAqB,GACrB,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,2BAA2B,GAC3B,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,+BAA+B,GAC/B,eAAe,GACf,wBAAwB,GACxB,iBAAiB,GACjB,yBAAyB,GACzB,kBAAkB,GAClB,mBAAmB,GACnB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,aAAa,GACb,eAAe,GACf,uBAAuB,GACvB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,oBAAoB,GACpB,2BAA2B,GAC3B,iBAAiB,CAAC;AAExB,KAAK,gBAAgB,GAAG,MAAM,CAC1B,MAAM,EACN,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,CACzD,CAAC;AAEF,kFAAkF;AAClF,QAAA,MAAM,sBAAsB,EAAE,SAAS,iBAAiB,EA4DvD,CAAC;AAEF,mEAAmE;AACnE,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CA0DvE,CAAC;AAEN,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,85 +1,178 @@
1
+ import requireAbstractRule from "./required-tags/require-abstract.js";
1
2
  import requireAlphaRule from "./required-tags/require-alpha.js";
3
+ import requireAuthorRule from "./required-tags/require-author.js";
2
4
  import requireBetaRule from "./required-tags/require-beta.js";
5
+ import requireCategoryRule from "./required-tags/require-category.js";
6
+ import requireClassRule from "./required-tags/require-class.js";
3
7
  import requireDecoratorRule from "./required-tags/require-decorator.js";
4
8
  import requireDefaultValueRule from "./required-tags/require-default-value.js";
5
9
  import requireDeprecatedRule from "./required-tags/require-deprecated.js";
10
+ import requireDocumentRule from "./required-tags/require-document.js";
11
+ import requireEnumRule from "./required-tags/require-enum.js";
6
12
  import requireEventPropertyRule from "./required-tags/require-event-property.js";
13
+ import requireEventRule from "./required-tags/require-event.js";
7
14
  import requireExampleRule from "./required-tags/require-example.js";
15
+ import requireExpandRule from "./required-tags/require-expand.js";
8
16
  import requireExperimentalRule from "./required-tags/require-experimental.js";
17
+ import requireFunctionRule from "./required-tags/require-function.js";
18
+ import requireGroupRule from "./required-tags/require-group.js";
19
+ import requireHiddenRule from "./required-tags/require-hidden.js";
20
+ import requireHideconstructorRule from "./required-tags/require-hideconstructor.js";
21
+ import requireIgnoreRule from "./required-tags/require-ignore.js";
22
+ import requireImportRule from "./required-tags/require-import.js";
23
+ import requireIncludeRule from "./required-tags/require-include.js";
9
24
  import requireInheritDocRule from "./required-tags/require-inherit-doc.js";
25
+ import requireInlineRule from "./required-tags/require-inline.js";
26
+ import requireInterfaceRule from "./required-tags/require-interface.js";
10
27
  import requireInternalRule from "./required-tags/require-internal.js";
11
28
  import requireLabelRule from "./required-tags/require-label.js";
29
+ import requireLicenseRule from "./required-tags/require-license.js";
12
30
  import requireLinkRule from "./required-tags/require-link.js";
31
+ import requireMergeModuleWithRule from "./required-tags/require-merge-module-with.js";
32
+ import requireModuleRule from "./required-tags/require-module.js";
33
+ import requireNamespaceRule from "./required-tags/require-namespace.js";
34
+ import requireOverloadRule from "./required-tags/require-overload.js";
13
35
  import requireOverrideRule from "./required-tags/require-override.js";
14
36
  import requirePackageDocumentationRule from "./required-tags/require-package-documentation.js";
15
37
  import requireParamRule from "./required-tags/require-param.js";
38
+ import requirePrimaryExportRule from "./required-tags/require-primary-export.js";
16
39
  import requirePrivateRemarksRule from "./required-tags/require-private-remarks.js";
40
+ import requirePrivateRule from "./required-tags/require-private.js";
41
+ import requirePropertyRule from "./required-tags/require-property.js";
42
+ import requireProtectedRule from "./required-tags/require-protected.js";
17
43
  import requirePublicRule from "./required-tags/require-public.js";
18
44
  import requireReadonlyRule from "./required-tags/require-readonly.js";
19
45
  import requireRemarksRule from "./required-tags/require-remarks.js";
20
46
  import requireReturnsRule from "./required-tags/require-returns.js";
21
47
  import requireSealedRule from "./required-tags/require-sealed.js";
22
48
  import requireSeeRule from "./required-tags/require-see.js";
49
+ import requireSinceRule from "./required-tags/require-since.js";
50
+ import requireSortStrategyRule from "./required-tags/require-sort-strategy.js";
51
+ import requireSummaryRule from "./required-tags/require-summary.js";
52
+ import requireTemplateRule from "./required-tags/require-template.js";
23
53
  import requireThrowsRule from "./required-tags/require-throws.js";
24
54
  import requireTypeParamRule from "./required-tags/require-type-param.js";
55
+ import requireUseDeclaredTypeRule from "./required-tags/require-use-declared-type.js";
25
56
  import requireVirtualRule from "./required-tags/require-virtual.js";
26
57
  /** Definitions that map each required-tag rule name to its required TSDoc tag. */
27
58
  const requiredTagDefinitions = [
59
+ { ruleName: "require-abstract", tagName: "@abstract" },
28
60
  { ruleName: "require-alpha", tagName: "@alpha" },
61
+ { ruleName: "require-author", tagName: "@author" },
29
62
  { ruleName: "require-beta", tagName: "@beta" },
63
+ { ruleName: "require-category", tagName: "@category" },
64
+ { ruleName: "require-class", tagName: "@class" },
30
65
  { ruleName: "require-decorator", tagName: "@decorator" },
31
66
  { ruleName: "require-default-value", tagName: "@defaultValue" },
32
67
  { ruleName: "require-deprecated", tagName: "@deprecated" },
68
+ { ruleName: "require-document", tagName: "@document" },
69
+ { ruleName: "require-enum", tagName: "@enum" },
70
+ { ruleName: "require-event", tagName: "@event" },
33
71
  { ruleName: "require-event-property", tagName: "@eventProperty" },
34
72
  { ruleName: "require-example", tagName: "@example" },
73
+ { ruleName: "require-expand", tagName: "@expand" },
35
74
  { ruleName: "require-experimental", tagName: "@experimental" },
75
+ { ruleName: "require-function", tagName: "@function" },
76
+ { ruleName: "require-group", tagName: "@group" },
77
+ { ruleName: "require-hidden", tagName: "@hidden" },
78
+ { ruleName: "require-hideconstructor", tagName: "@hideconstructor" },
79
+ { ruleName: "require-ignore", tagName: "@ignore" },
80
+ { ruleName: "require-import", tagName: "@import" },
81
+ { ruleName: "require-include", tagName: "@include" },
36
82
  { ruleName: "require-inherit-doc", tagName: "@inheritDoc" },
83
+ { ruleName: "require-inline", tagName: "@inline" },
84
+ { ruleName: "require-interface", tagName: "@interface" },
37
85
  { ruleName: "require-internal", tagName: "@internal" },
38
86
  { ruleName: "require-label", tagName: "@label" },
87
+ { ruleName: "require-license", tagName: "@license" },
39
88
  { ruleName: "require-link", tagName: "@link" },
89
+ { ruleName: "require-merge-module-with", tagName: "@mergeModuleWith" },
90
+ { ruleName: "require-module", tagName: "@module" },
91
+ { ruleName: "require-namespace", tagName: "@namespace" },
92
+ { ruleName: "require-overload", tagName: "@overload" },
40
93
  { ruleName: "require-override", tagName: "@override" },
41
94
  {
42
95
  ruleName: "require-package-documentation",
43
96
  tagName: "@packageDocumentation",
44
97
  },
45
98
  { ruleName: "require-param", tagName: "@param" },
99
+ { ruleName: "require-primary-export", tagName: "@primaryExport" },
100
+ { ruleName: "require-private", tagName: "@private" },
46
101
  { ruleName: "require-private-remarks", tagName: "@privateRemarks" },
102
+ { ruleName: "require-property", tagName: "@property" },
103
+ { ruleName: "require-protected", tagName: "@protected" },
47
104
  { ruleName: "require-public", tagName: "@public" },
48
105
  { ruleName: "require-readonly", tagName: "@readonly" },
49
106
  { ruleName: "require-remarks", tagName: "@remarks" },
50
107
  { ruleName: "require-returns", tagName: "@returns" },
51
108
  { ruleName: "require-sealed", tagName: "@sealed" },
52
109
  { ruleName: "require-see", tagName: "@see" },
110
+ { ruleName: "require-since", tagName: "@since" },
111
+ { ruleName: "require-sort-strategy", tagName: "@sortStrategy" },
112
+ { ruleName: "require-summary", tagName: "@summary" },
113
+ { ruleName: "require-template", tagName: "@template" },
53
114
  { ruleName: "require-throws", tagName: "@throws" },
54
115
  { ruleName: "require-type-param", tagName: "@typeParam" },
116
+ { ruleName: "require-use-declared-type", tagName: "@useDeclaredType" },
55
117
  { ruleName: "require-virtual", tagName: "@virtual" },
56
118
  ];
57
119
  /** Runtime map of required-tag rule modules keyed by rule name. */
58
120
  const requiredTagRules = {
121
+ "require-abstract": requireAbstractRule,
59
122
  "require-alpha": requireAlphaRule,
123
+ "require-author": requireAuthorRule,
60
124
  "require-beta": requireBetaRule,
125
+ "require-category": requireCategoryRule,
126
+ "require-class": requireClassRule,
61
127
  "require-decorator": requireDecoratorRule,
62
128
  "require-default-value": requireDefaultValueRule,
63
129
  "require-deprecated": requireDeprecatedRule,
130
+ "require-document": requireDocumentRule,
131
+ "require-enum": requireEnumRule,
132
+ "require-event": requireEventRule,
64
133
  "require-event-property": requireEventPropertyRule,
65
134
  "require-example": requireExampleRule,
135
+ "require-expand": requireExpandRule,
66
136
  "require-experimental": requireExperimentalRule,
137
+ "require-function": requireFunctionRule,
138
+ "require-group": requireGroupRule,
139
+ "require-hidden": requireHiddenRule,
140
+ "require-hideconstructor": requireHideconstructorRule,
141
+ "require-ignore": requireIgnoreRule,
142
+ "require-import": requireImportRule,
143
+ "require-include": requireIncludeRule,
67
144
  "require-inherit-doc": requireInheritDocRule,
145
+ "require-inline": requireInlineRule,
146
+ "require-interface": requireInterfaceRule,
68
147
  "require-internal": requireInternalRule,
69
148
  "require-label": requireLabelRule,
149
+ "require-license": requireLicenseRule,
70
150
  "require-link": requireLinkRule,
151
+ "require-merge-module-with": requireMergeModuleWithRule,
152
+ "require-module": requireModuleRule,
153
+ "require-namespace": requireNamespaceRule,
154
+ "require-overload": requireOverloadRule,
71
155
  "require-override": requireOverrideRule,
72
156
  "require-package-documentation": requirePackageDocumentationRule,
73
157
  "require-param": requireParamRule,
158
+ "require-primary-export": requirePrimaryExportRule,
159
+ "require-private": requirePrivateRule,
74
160
  "require-private-remarks": requirePrivateRemarksRule,
161
+ "require-property": requirePropertyRule,
162
+ "require-protected": requireProtectedRule,
75
163
  "require-public": requirePublicRule,
76
164
  "require-readonly": requireReadonlyRule,
77
165
  "require-remarks": requireRemarksRule,
78
166
  "require-returns": requireReturnsRule,
79
167
  "require-sealed": requireSealedRule,
80
168
  "require-see": requireSeeRule,
169
+ "require-since": requireSinceRule,
170
+ "require-sort-strategy": requireSortStrategyRule,
171
+ "require-summary": requireSummaryRule,
172
+ "require-template": requireTemplateRule,
81
173
  "require-throws": requireThrowsRule,
82
174
  "require-type-param": requireTypeParamRule,
175
+ "require-use-declared-type": requireUseDeclaredTypeRule,
83
176
  "require-virtual": requireVirtualRule,
84
177
  };
85
178
  export { requiredTagDefinitions };
@@ -1 +1 @@
1
- {"version":3,"file":"require-tag-rules.js","sourceRoot":"","sources":["../../src/rules/require-tag-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"require-tag-rules.js","sourceRoot":"","sources":["../../src/rules/require-tag-rules.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,12 @@ const enforceableEntityKinds = [
6
6
  "enum",
7
7
  "function",
8
8
  "interface",
9
+ "namespace",
9
10
  "object",
10
11
  "type",
11
12
  "variable",
12
13
  ];
13
14
  const defaultEnforceFor = [...enforceableEntityKinds];
14
- const defaultRuleOptions = [
15
- {
16
- enforceFor: defaultEnforceFor,
17
- includeNonExported: false,
18
- },
19
- ];
20
15
  const optionSchema = {
21
16
  additionalProperties: false,
22
17
  properties: {
@@ -28,24 +23,41 @@ const optionSchema = {
28
23
  type: "array",
29
24
  uniqueItems: true,
30
25
  },
26
+ exportMode: {
27
+ description: "Choose whether to check exported declarations, non-exported top-level declarations, or both.",
28
+ enum: [
29
+ "all",
30
+ "exported",
31
+ "non-exported",
32
+ ],
33
+ type: "string",
34
+ },
31
35
  includeNonExported: {
32
36
  default: false,
33
- description: "Also enforce on non-exported declarations (opt-in).",
37
+ description: 'Legacy alias for exportMode: "all". Also enforce on non-exported declarations when true.',
34
38
  type: "boolean",
35
39
  },
36
40
  },
37
41
  type: "object",
38
42
  };
43
+ const resolveExportMode = (ruleOption) => {
44
+ if (ruleOption?.includeNonExported === true) {
45
+ return "all";
46
+ }
47
+ return ruleOption?.exportMode ?? "exported";
48
+ };
49
+ const shouldCheckExportedDeclarations = (exportMode) => exportMode === "all" || exportMode === "exported";
50
+ const shouldCheckNonExportedDeclarations = (exportMode) => exportMode === "all" || exportMode === "non-exported";
39
51
  const assertUnreachable = (value) => {
40
52
  throw new Error(`Unexpected node type: ${String(value)}`);
41
53
  };
42
- // eslint-disable-next-line total-functions/no-hidden-type-assertions -- RuleCreator generic is required so `meta.docs.recommended` is strongly typed and accepted in the inline metadata literal.
43
54
  const createRule = utils_1.ESLintUtils.RuleCreator((ruleName) => `https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/blob/main/docs/rules/${ruleName}.md`);
44
55
  const isSupportedDeclaration = (node) => node.type === utils_1.AST_NODE_TYPES.ClassDeclaration ||
45
56
  node.type === utils_1.AST_NODE_TYPES.FunctionDeclaration ||
46
57
  node.type === utils_1.AST_NODE_TYPES.TSDeclareFunction ||
47
58
  node.type === utils_1.AST_NODE_TYPES.TSEnumDeclaration ||
48
59
  node.type === utils_1.AST_NODE_TYPES.TSInterfaceDeclaration ||
60
+ node.type === utils_1.AST_NODE_TYPES.TSModuleDeclaration ||
49
61
  node.type === utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration ||
50
62
  node.type === utils_1.AST_NODE_TYPES.VariableDeclaration;
51
63
  const isSupportedDefaultExportExpression = (node) => node.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
@@ -66,6 +78,17 @@ const getExpressionKind = (node) => {
66
78
  return assertUnreachable(node);
67
79
  };
68
80
  const getEntityDisplayName = (name) => name ?? "<default export>";
81
+ const isTopLevelNode = (node) => node.parent?.type === utils_1.AST_NODE_TYPES.Program;
82
+ const getModuleDeclarationName = (declaration) => {
83
+ if (declaration.id.type === utils_1.AST_NODE_TYPES.Identifier) {
84
+ return declaration.id.name;
85
+ }
86
+ if (declaration.id.type === utils_1.AST_NODE_TYPES.Literal &&
87
+ typeof declaration.id.value === "string") {
88
+ return declaration.id.value;
89
+ }
90
+ return undefined;
91
+ };
69
92
  const hasTSDocComment = (sourceCode, node) => {
70
93
  const comments = sourceCode.getCommentsBefore(node);
71
94
  const nearestComment = comments.at(-1);
@@ -132,6 +155,16 @@ const declarationTargets = (declaration) => {
132
155
  },
133
156
  ];
134
157
  }
158
+ if (declaration.type === utils_1.AST_NODE_TYPES.TSModuleDeclaration) {
159
+ return [
160
+ {
161
+ commentNode: declaration,
162
+ kind: "namespace",
163
+ name: getModuleDeclarationName(declaration),
164
+ reportNode: declaration,
165
+ },
166
+ ];
167
+ }
135
168
  if (declaration.type === utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration) {
136
169
  return [
137
170
  {
@@ -171,7 +204,7 @@ const requireRule = createRule({
171
204
  const sourceCode = context.sourceCode;
172
205
  const ruleOption = context.options.at(0);
173
206
  const enabledKinds = new Set(ruleOption?.enforceFor ?? defaultEnforceFor);
174
- const includeNonExported = ruleOption?.includeNonExported ?? false;
207
+ const exportMode = resolveExportMode(ruleOption);
175
208
  const checkTarget = (target) => {
176
209
  if (!enabledKinds.has(target.kind)) {
177
210
  return;
@@ -214,6 +247,10 @@ const requireRule = createRule({
214
247
  };
215
248
  return {
216
249
  ExportDefaultDeclaration(exportNode) {
250
+ if (!shouldCheckExportedDeclarations(exportMode) ||
251
+ !isTopLevelNode(exportNode)) {
252
+ return;
253
+ }
217
254
  const { declaration } = exportNode;
218
255
  if (declaration.type === utils_1.AST_NODE_TYPES.Identifier) {
219
256
  checkIdentifierExport(declaration);
@@ -233,6 +270,10 @@ const requireRule = createRule({
233
270
  }
234
271
  },
235
272
  ExportNamedDeclaration(exportNode) {
273
+ if (!shouldCheckExportedDeclarations(exportMode) ||
274
+ !isTopLevelNode(exportNode)) {
275
+ return;
276
+ }
236
277
  if (exportNode.declaration !== null &&
237
278
  isSupportedDeclaration(exportNode.declaration)) {
238
279
  checkDeclarationWithExportComment(exportNode.declaration, exportNode);
@@ -252,16 +293,19 @@ const requireRule = createRule({
252
293
  checkedTargets.clear();
253
294
  for (const statement of programNode.body) {
254
295
  if (isSupportedDeclaration(statement)) {
255
- if (includeNonExported) {
296
+ if (shouldCheckNonExportedDeclarations(exportMode)) {
256
297
  for (const target of declarationTargetsWithCommentNode(statement, statement)) {
257
298
  checkTarget(target);
258
299
  }
259
300
  }
260
- trackDeclarationTargets(statement);
301
+ if (shouldCheckExportedDeclarations(exportMode)) {
302
+ trackDeclarationTargets(statement);
303
+ }
261
304
  continue;
262
305
  }
263
- if (statement.type ===
264
- utils_1.AST_NODE_TYPES.ExportNamedDeclaration &&
306
+ if (shouldCheckExportedDeclarations(exportMode) &&
307
+ statement.type ===
308
+ utils_1.AST_NODE_TYPES.ExportNamedDeclaration &&
265
309
  statement.declaration !== null &&
266
310
  isSupportedDeclaration(statement.declaration)) {
267
311
  trackDeclarationTargets(statement.declaration);
@@ -270,17 +314,16 @@ const requireRule = createRule({
270
314
  },
271
315
  };
272
316
  },
273
- defaultOptions: defaultRuleOptions,
274
317
  meta: {
275
318
  defaultOptions: [
276
319
  {
277
320
  enforceFor: [...enforceableEntityKinds],
278
- includeNonExported: false,
321
+ exportMode: "exported",
279
322
  },
280
323
  ],
281
324
  deprecated: false,
282
325
  docs: {
283
- description: "require TSDoc comments for exported TypeScript declarations and default exports, with opt-in non-exported support.",
326
+ description: "require TSDoc comments for supported TypeScript declarations and default exports, with configurable export scope.",
284
327
  frozen: false,
285
328
  recommended: true,
286
329
  url: "https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/blob/main/docs/rules/require.md",
@@ -1,9 +1,11 @@
1
1
  import type { TSESLint } from "@typescript-eslint/utils";
2
- type EntityKind = "class" | "enum" | "function" | "interface" | "object" | "type" | "variable";
2
+ type EntityKind = "class" | "enum" | "function" | "interface" | "namespace" | "object" | "type" | "variable";
3
+ type ExportMode = "all" | "exported" | "non-exported";
3
4
  type MessageIds = "missingTSDoc";
4
5
  type Options = [RuleOption];
5
6
  type RuleOption = {
6
7
  enforceFor?: readonly EntityKind[];
8
+ exportMode?: ExportMode;
7
9
  includeNonExported?: boolean;
8
10
  };
9
11
  /** ESLint rule module implementing tsdoc-require-2/require. */
@@ -1 +1 @@
1
- {"version":3,"file":"require.d.ts","sourceRoot":"","sources":["../../src/rules/require.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAQ/E,KAAK,UAAU,GACT,OAAO,GACP,MAAM,GACN,UAAU,GACV,WAAW,GACX,QAAQ,GACR,MAAM,GACN,UAAU,CAAC;AACjB,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,KAAK,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;AAM5B,KAAK,UAAU,GAAG;IACd,UAAU,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAgPF,+DAA+D;AAC/D,QAAA,MAAM,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAmLxD,CAAC;AAEH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"require.d.ts","sourceRoot":"","sources":["../../src/rules/require.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAQ/E,KAAK,UAAU,GACT,OAAO,GACP,MAAM,GACN,UAAU,GACV,WAAW,GACX,WAAW,GACX,QAAQ,GACR,MAAM,GACN,UAAU,CAAC;AACjB,KAAK,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,cAAc,CAAC;AACtD,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,KAAK,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;AAM5B,KAAK,UAAU,GAAG;IACd,UAAU,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAqSF,+DAA+D;AAC/D,QAAA,MAAM,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAmMxD,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -4,17 +4,12 @@ const enforceableEntityKinds = [
4
4
  "enum",
5
5
  "function",
6
6
  "interface",
7
+ "namespace",
7
8
  "object",
8
9
  "type",
9
10
  "variable",
10
11
  ];
11
12
  const defaultEnforceFor = [...enforceableEntityKinds];
12
- const defaultRuleOptions = [
13
- {
14
- enforceFor: defaultEnforceFor,
15
- includeNonExported: false,
16
- },
17
- ];
18
13
  const optionSchema = {
19
14
  additionalProperties: false,
20
15
  properties: {
@@ -26,24 +21,41 @@ const optionSchema = {
26
21
  type: "array",
27
22
  uniqueItems: true,
28
23
  },
24
+ exportMode: {
25
+ description: "Choose whether to check exported declarations, non-exported top-level declarations, or both.",
26
+ enum: [
27
+ "all",
28
+ "exported",
29
+ "non-exported",
30
+ ],
31
+ type: "string",
32
+ },
29
33
  includeNonExported: {
30
34
  default: false,
31
- description: "Also enforce on non-exported declarations (opt-in).",
35
+ description: 'Legacy alias for exportMode: "all". Also enforce on non-exported declarations when true.',
32
36
  type: "boolean",
33
37
  },
34
38
  },
35
39
  type: "object",
36
40
  };
41
+ const resolveExportMode = (ruleOption) => {
42
+ if (ruleOption?.includeNonExported === true) {
43
+ return "all";
44
+ }
45
+ return ruleOption?.exportMode ?? "exported";
46
+ };
47
+ const shouldCheckExportedDeclarations = (exportMode) => exportMode === "all" || exportMode === "exported";
48
+ const shouldCheckNonExportedDeclarations = (exportMode) => exportMode === "all" || exportMode === "non-exported";
37
49
  const assertUnreachable = (value) => {
38
50
  throw new Error(`Unexpected node type: ${String(value)}`);
39
51
  };
40
- // eslint-disable-next-line total-functions/no-hidden-type-assertions -- RuleCreator generic is required so `meta.docs.recommended` is strongly typed and accepted in the inline metadata literal.
41
52
  const createRule = ESLintUtils.RuleCreator((ruleName) => `https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/blob/main/docs/rules/${ruleName}.md`);
42
53
  const isSupportedDeclaration = (node) => node.type === AST_NODE_TYPES.ClassDeclaration ||
43
54
  node.type === AST_NODE_TYPES.FunctionDeclaration ||
44
55
  node.type === AST_NODE_TYPES.TSDeclareFunction ||
45
56
  node.type === AST_NODE_TYPES.TSEnumDeclaration ||
46
57
  node.type === AST_NODE_TYPES.TSInterfaceDeclaration ||
58
+ node.type === AST_NODE_TYPES.TSModuleDeclaration ||
47
59
  node.type === AST_NODE_TYPES.TSTypeAliasDeclaration ||
48
60
  node.type === AST_NODE_TYPES.VariableDeclaration;
49
61
  const isSupportedDefaultExportExpression = (node) => node.type === AST_NODE_TYPES.ArrowFunctionExpression ||
@@ -64,6 +76,17 @@ const getExpressionKind = (node) => {
64
76
  return assertUnreachable(node);
65
77
  };
66
78
  const getEntityDisplayName = (name) => name ?? "<default export>";
79
+ const isTopLevelNode = (node) => node.parent?.type === AST_NODE_TYPES.Program;
80
+ const getModuleDeclarationName = (declaration) => {
81
+ if (declaration.id.type === AST_NODE_TYPES.Identifier) {
82
+ return declaration.id.name;
83
+ }
84
+ if (declaration.id.type === AST_NODE_TYPES.Literal &&
85
+ typeof declaration.id.value === "string") {
86
+ return declaration.id.value;
87
+ }
88
+ return undefined;
89
+ };
67
90
  const hasTSDocComment = (sourceCode, node) => {
68
91
  const comments = sourceCode.getCommentsBefore(node);
69
92
  const nearestComment = comments.at(-1);
@@ -130,6 +153,16 @@ const declarationTargets = (declaration) => {
130
153
  },
131
154
  ];
132
155
  }
156
+ if (declaration.type === AST_NODE_TYPES.TSModuleDeclaration) {
157
+ return [
158
+ {
159
+ commentNode: declaration,
160
+ kind: "namespace",
161
+ name: getModuleDeclarationName(declaration),
162
+ reportNode: declaration,
163
+ },
164
+ ];
165
+ }
133
166
  if (declaration.type === AST_NODE_TYPES.TSTypeAliasDeclaration) {
134
167
  return [
135
168
  {
@@ -169,7 +202,7 @@ const requireRule = createRule({
169
202
  const sourceCode = context.sourceCode;
170
203
  const ruleOption = context.options.at(0);
171
204
  const enabledKinds = new Set(ruleOption?.enforceFor ?? defaultEnforceFor);
172
- const includeNonExported = ruleOption?.includeNonExported ?? false;
205
+ const exportMode = resolveExportMode(ruleOption);
173
206
  const checkTarget = (target) => {
174
207
  if (!enabledKinds.has(target.kind)) {
175
208
  return;
@@ -212,6 +245,10 @@ const requireRule = createRule({
212
245
  };
213
246
  return {
214
247
  ExportDefaultDeclaration(exportNode) {
248
+ if (!shouldCheckExportedDeclarations(exportMode) ||
249
+ !isTopLevelNode(exportNode)) {
250
+ return;
251
+ }
215
252
  const { declaration } = exportNode;
216
253
  if (declaration.type === AST_NODE_TYPES.Identifier) {
217
254
  checkIdentifierExport(declaration);
@@ -231,6 +268,10 @@ const requireRule = createRule({
231
268
  }
232
269
  },
233
270
  ExportNamedDeclaration(exportNode) {
271
+ if (!shouldCheckExportedDeclarations(exportMode) ||
272
+ !isTopLevelNode(exportNode)) {
273
+ return;
274
+ }
234
275
  if (exportNode.declaration !== null &&
235
276
  isSupportedDeclaration(exportNode.declaration)) {
236
277
  checkDeclarationWithExportComment(exportNode.declaration, exportNode);
@@ -250,16 +291,19 @@ const requireRule = createRule({
250
291
  checkedTargets.clear();
251
292
  for (const statement of programNode.body) {
252
293
  if (isSupportedDeclaration(statement)) {
253
- if (includeNonExported) {
294
+ if (shouldCheckNonExportedDeclarations(exportMode)) {
254
295
  for (const target of declarationTargetsWithCommentNode(statement, statement)) {
255
296
  checkTarget(target);
256
297
  }
257
298
  }
258
- trackDeclarationTargets(statement);
299
+ if (shouldCheckExportedDeclarations(exportMode)) {
300
+ trackDeclarationTargets(statement);
301
+ }
259
302
  continue;
260
303
  }
261
- if (statement.type ===
262
- AST_NODE_TYPES.ExportNamedDeclaration &&
304
+ if (shouldCheckExportedDeclarations(exportMode) &&
305
+ statement.type ===
306
+ AST_NODE_TYPES.ExportNamedDeclaration &&
263
307
  statement.declaration !== null &&
264
308
  isSupportedDeclaration(statement.declaration)) {
265
309
  trackDeclarationTargets(statement.declaration);
@@ -268,17 +312,16 @@ const requireRule = createRule({
268
312
  },
269
313
  };
270
314
  },
271
- defaultOptions: defaultRuleOptions,
272
315
  meta: {
273
316
  defaultOptions: [
274
317
  {
275
318
  enforceFor: [...enforceableEntityKinds],
276
- includeNonExported: false,
319
+ exportMode: "exported",
277
320
  },
278
321
  ],
279
322
  deprecated: false,
280
323
  docs: {
281
- description: "require TSDoc comments for exported TypeScript declarations and default exports, with opt-in non-exported support.",
324
+ description: "require TSDoc comments for supported TypeScript declarations and default exports, with configurable export scope.",
282
325
  frozen: false,
283
326
  recommended: true,
284
327
  url: "https://github.com/Nick2bad4u/eslint-plugin-tsdoc-require-2/blob/main/docs/rules/require.md",