@depup/eslint-plugin-jsdoc 62.8.0-depup.0

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 (430) hide show
  1. package/LICENSE +24 -0
  2. package/README.md +33 -0
  3. package/changes.json +18 -0
  4. package/dist/WarnSettings.cjs +38 -0
  5. package/dist/WarnSettings.cjs.map +1 -0
  6. package/dist/WarnSettings.d.ts +17 -0
  7. package/dist/alignTransform.cjs +402 -0
  8. package/dist/alignTransform.cjs.map +1 -0
  9. package/dist/alignTransform.d.ts +34 -0
  10. package/dist/buildForbidRuleDefinition.cjs +101 -0
  11. package/dist/buildForbidRuleDefinition.cjs.map +1 -0
  12. package/dist/buildForbidRuleDefinition.d.ts +15 -0
  13. package/dist/buildRejectOrPreferRuleDefinition.cjs +352 -0
  14. package/dist/buildRejectOrPreferRuleDefinition.cjs.map +1 -0
  15. package/dist/buildRejectOrPreferRuleDefinition.d.ts +9 -0
  16. package/dist/cjs/WarnSettings.d.ts +16 -0
  17. package/dist/cjs/alignTransform.d.ts +33 -0
  18. package/dist/cjs/buildForbidRuleDefinition.d.ts +14 -0
  19. package/dist/cjs/buildRejectOrPreferRuleDefinition.d.ts +8 -0
  20. package/dist/cjs/defaultTagOrder.d.ts +4 -0
  21. package/dist/cjs/exportParser.d.ts +40 -0
  22. package/dist/cjs/getDefaultTagStructureForMode.d.ts +10 -0
  23. package/dist/cjs/getJsdocProcessorPlugin.d.cts +5 -0
  24. package/dist/cjs/getJsdocProcessorPlugin.d.ts +66 -0
  25. package/dist/cjs/index-cjs.d.ts +23 -0
  26. package/dist/cjs/index.cjs.d.cts +2 -0
  27. package/dist/cjs/iterateJsdoc.d.cts +7 -0
  28. package/dist/cjs/iterateJsdoc.d.ts +495 -0
  29. package/dist/cjs/jsdocUtils.d.ts +493 -0
  30. package/dist/cjs/rules/checkAccess.d.ts +2 -0
  31. package/dist/cjs/rules/checkAlignment.d.ts +2 -0
  32. package/dist/cjs/rules/checkExamples.d.ts +3 -0
  33. package/dist/cjs/rules/checkIndentation.d.ts +2 -0
  34. package/dist/cjs/rules/checkLineAlignment.d.ts +9 -0
  35. package/dist/cjs/rules/checkParamNames.d.ts +2 -0
  36. package/dist/cjs/rules/checkPropertyNames.d.ts +2 -0
  37. package/dist/cjs/rules/checkSyntax.d.ts +2 -0
  38. package/dist/cjs/rules/checkTagNames.d.ts +2 -0
  39. package/dist/cjs/rules/checkTemplateNames.d.ts +2 -0
  40. package/dist/cjs/rules/checkTypes.d.ts +7 -0
  41. package/dist/cjs/rules/checkValues.d.ts +2 -0
  42. package/dist/cjs/rules/convertToJsdocComments.d.ts +266 -0
  43. package/dist/cjs/rules/emptyTags.d.ts +2 -0
  44. package/dist/cjs/rules/escapeInlineTags.d.ts +2 -0
  45. package/dist/cjs/rules/implementsOnClasses.d.ts +2 -0
  46. package/dist/cjs/rules/importsAsDependencies.d.ts +2 -0
  47. package/dist/cjs/rules/informativeDocs.d.ts +2 -0
  48. package/dist/cjs/rules/linesBeforeBlock.d.ts +2 -0
  49. package/dist/cjs/rules/matchDescription.d.ts +2 -0
  50. package/dist/cjs/rules/matchName.d.ts +2 -0
  51. package/dist/cjs/rules/multilineBlocks.d.ts +2 -0
  52. package/dist/cjs/rules/noBadBlocks.d.ts +2 -0
  53. package/dist/cjs/rules/noBlankBlockDescriptions.d.ts +2 -0
  54. package/dist/cjs/rules/noBlankBlocks.d.ts +2 -0
  55. package/dist/cjs/rules/noDefaults.d.ts +2 -0
  56. package/dist/cjs/rules/noMissingSyntax.d.ts +9 -0
  57. package/dist/cjs/rules/noMultiAsterisks.d.ts +2 -0
  58. package/dist/cjs/rules/noRestrictedSyntax.d.ts +2 -0
  59. package/dist/cjs/rules/noTypes.d.ts +2 -0
  60. package/dist/cjs/rules/noUndefinedTypes.d.ts +2 -0
  61. package/dist/cjs/rules/preferImportTag.d.ts +2 -0
  62. package/dist/cjs/rules/requireAsteriskPrefix.d.ts +2 -0
  63. package/dist/cjs/rules/requireDescription.d.ts +2 -0
  64. package/dist/cjs/rules/requireDescriptionCompleteSentence.d.ts +2 -0
  65. package/dist/cjs/rules/requireExample.d.ts +2 -0
  66. package/dist/cjs/rules/requireFileOverview.d.ts +2 -0
  67. package/dist/cjs/rules/requireHyphenBeforeParamDescription.d.ts +2 -0
  68. package/dist/cjs/rules/requireJsdoc.d.ts +24 -0
  69. package/dist/cjs/rules/requireParam.d.ts +3 -0
  70. package/dist/cjs/rules/requireParamDescription.d.ts +2 -0
  71. package/dist/cjs/rules/requireParamName.d.ts +2 -0
  72. package/dist/cjs/rules/requireParamType.d.ts +2 -0
  73. package/dist/cjs/rules/requireProperty.d.ts +2 -0
  74. package/dist/cjs/rules/requirePropertyDescription.d.ts +2 -0
  75. package/dist/cjs/rules/requirePropertyName.d.ts +2 -0
  76. package/dist/cjs/rules/requirePropertyType.d.ts +2 -0
  77. package/dist/cjs/rules/requireRejects.d.ts +2 -0
  78. package/dist/cjs/rules/requireReturns.d.ts +2 -0
  79. package/dist/cjs/rules/requireReturnsCheck.d.ts +2 -0
  80. package/dist/cjs/rules/requireReturnsDescription.d.ts +2 -0
  81. package/dist/cjs/rules/requireReturnsType.d.ts +2 -0
  82. package/dist/cjs/rules/requireTags.d.ts +2 -0
  83. package/dist/cjs/rules/requireTemplate.d.ts +2 -0
  84. package/dist/cjs/rules/requireThrows.d.ts +2 -0
  85. package/dist/cjs/rules/requireYields.d.ts +2 -0
  86. package/dist/cjs/rules/requireYieldsCheck.d.ts +2 -0
  87. package/dist/cjs/rules/sortTags.d.ts +2 -0
  88. package/dist/cjs/rules/tagLines.d.ts +2 -0
  89. package/dist/cjs/rules/textEscaping.d.ts +2 -0
  90. package/dist/cjs/rules/tsMethodSignatureStyle.d.ts +2 -0
  91. package/dist/cjs/rules/tsNoEmptyObjectType.d.ts +2 -0
  92. package/dist/cjs/rules/tsNoUnnecessaryTemplateExpression.d.ts +2 -0
  93. package/dist/cjs/rules/tsPreferFunctionType.d.ts +2 -0
  94. package/dist/cjs/rules/typeFormatting.d.ts +2 -0
  95. package/dist/cjs/rules/validTypes.d.ts +2 -0
  96. package/dist/cjs/tagNames.d.ts +15 -0
  97. package/dist/cjs/utils/hasReturnValue.d.ts +19 -0
  98. package/dist/defaultTagOrder.cjs +46 -0
  99. package/dist/defaultTagOrder.cjs.map +1 -0
  100. package/dist/defaultTagOrder.d.ts +5 -0
  101. package/dist/exportParser.cjs +732 -0
  102. package/dist/exportParser.cjs.map +1 -0
  103. package/dist/exportParser.d.ts +41 -0
  104. package/dist/generateDocs.cjs +342 -0
  105. package/dist/generateDocs.cjs.map +1 -0
  106. package/dist/generateOptions.cjs +62 -0
  107. package/dist/generateOptions.cjs.map +1 -0
  108. package/dist/generateRule.cjs +248 -0
  109. package/dist/generateRule.cjs.map +1 -0
  110. package/dist/generateRuleTypes.cjs +24 -0
  111. package/dist/generateRuleTypes.cjs.map +1 -0
  112. package/dist/getDefaultTagStructureForMode.cjs +289 -0
  113. package/dist/getDefaultTagStructureForMode.cjs.map +1 -0
  114. package/dist/getDefaultTagStructureForMode.d.ts +11 -0
  115. package/dist/getJsdocProcessorPlugin.cjs +587 -0
  116. package/dist/getJsdocProcessorPlugin.cjs.map +1 -0
  117. package/dist/getJsdocProcessorPlugin.cts +5 -0
  118. package/dist/getJsdocProcessorPlugin.d.ts +67 -0
  119. package/dist/index-cjs.cjs +595 -0
  120. package/dist/index-cjs.cjs.map +1 -0
  121. package/dist/index-cjs.d.ts +24 -0
  122. package/dist/index-esm.cjs +162 -0
  123. package/dist/index-esm.cjs.map +1 -0
  124. package/dist/index-esm.d.ts +72 -0
  125. package/dist/index.cjs +743 -0
  126. package/dist/index.cjs.cts +3 -0
  127. package/dist/index.cjs.map +1 -0
  128. package/dist/index.d.ts +93 -0
  129. package/dist/iterateJsdoc.cjs +2150 -0
  130. package/dist/iterateJsdoc.cjs.map +1 -0
  131. package/dist/iterateJsdoc.cts +7 -0
  132. package/dist/iterateJsdoc.d.ts +496 -0
  133. package/dist/jsdocUtils.cjs +1725 -0
  134. package/dist/jsdocUtils.cjs.map +1 -0
  135. package/dist/jsdocUtils.d.ts +494 -0
  136. package/dist/rules/checkAccess.cjs +40 -0
  137. package/dist/rules/checkAccess.cjs.map +1 -0
  138. package/dist/rules/checkAccess.d.ts +3 -0
  139. package/dist/rules/checkAlignment.cjs +78 -0
  140. package/dist/rules/checkAlignment.cjs.map +1 -0
  141. package/dist/rules/checkAlignment.d.ts +3 -0
  142. package/dist/rules/checkExamples.cjs +521 -0
  143. package/dist/rules/checkExamples.cjs.map +1 -0
  144. package/dist/rules/checkExamples.d.ts +4 -0
  145. package/dist/rules/checkIndentation.cjs +170 -0
  146. package/dist/rules/checkIndentation.cjs.map +1 -0
  147. package/dist/rules/checkIndentation.d.ts +3 -0
  148. package/dist/rules/checkLineAlignment.cjs +398 -0
  149. package/dist/rules/checkLineAlignment.cjs.map +1 -0
  150. package/dist/rules/checkLineAlignment.d.ts +10 -0
  151. package/dist/rules/checkParamNames.cjs +407 -0
  152. package/dist/rules/checkParamNames.cjs.map +1 -0
  153. package/dist/rules/checkParamNames.d.ts +3 -0
  154. package/dist/rules/checkPropertyNames.cjs +135 -0
  155. package/dist/rules/checkPropertyNames.cjs.map +1 -0
  156. package/dist/rules/checkPropertyNames.d.ts +3 -0
  157. package/dist/rules/checkSyntax.cjs +38 -0
  158. package/dist/rules/checkSyntax.cjs.map +1 -0
  159. package/dist/rules/checkSyntax.d.ts +3 -0
  160. package/dist/rules/checkTagNames.cjs +312 -0
  161. package/dist/rules/checkTagNames.cjs.map +1 -0
  162. package/dist/rules/checkTagNames.d.ts +3 -0
  163. package/dist/rules/checkTemplateNames.cjs +185 -0
  164. package/dist/rules/checkTemplateNames.cjs.map +1 -0
  165. package/dist/rules/checkTemplateNames.d.ts +3 -0
  166. package/dist/rules/checkTypes.cjs +111 -0
  167. package/dist/rules/checkTypes.cjs.map +1 -0
  168. package/dist/rules/checkTypes.d.ts +8 -0
  169. package/dist/rules/checkValues.cjs +166 -0
  170. package/dist/rules/checkValues.cjs.map +1 -0
  171. package/dist/rules/checkValues.d.ts +3 -0
  172. package/dist/rules/convertToJsdocComments.cjs +356 -0
  173. package/dist/rules/convertToJsdocComments.cjs.map +1 -0
  174. package/dist/rules/convertToJsdocComments.d.ts +267 -0
  175. package/dist/rules/emptyTags.cjs +85 -0
  176. package/dist/rules/emptyTags.cjs.map +1 -0
  177. package/dist/rules/emptyTags.d.ts +3 -0
  178. package/dist/rules/escapeInlineTags.cjs +149 -0
  179. package/dist/rules/escapeInlineTags.cjs.map +1 -0
  180. package/dist/rules/escapeInlineTags.d.ts +3 -0
  181. package/dist/rules/implementsOnClasses.cjs +74 -0
  182. package/dist/rules/implementsOnClasses.cjs.map +1 -0
  183. package/dist/rules/implementsOnClasses.d.ts +3 -0
  184. package/dist/rules/importsAsDependencies.cjs +104 -0
  185. package/dist/rules/importsAsDependencies.cjs.map +1 -0
  186. package/dist/rules/importsAsDependencies.d.ts +3 -0
  187. package/dist/rules/informativeDocs.cjs +187 -0
  188. package/dist/rules/informativeDocs.cjs.map +1 -0
  189. package/dist/rules/informativeDocs.d.ts +3 -0
  190. package/dist/rules/linesBeforeBlock.cjs +120 -0
  191. package/dist/rules/linesBeforeBlock.cjs.map +1 -0
  192. package/dist/rules/linesBeforeBlock.d.ts +3 -0
  193. package/dist/rules/matchDescription.cjs +356 -0
  194. package/dist/rules/matchDescription.cjs.map +1 -0
  195. package/dist/rules/matchDescription.d.ts +3 -0
  196. package/dist/rules/matchName.cjs +160 -0
  197. package/dist/rules/matchName.cjs.map +1 -0
  198. package/dist/rules/matchName.d.ts +3 -0
  199. package/dist/rules/multilineBlocks.cjs +431 -0
  200. package/dist/rules/multilineBlocks.cjs.map +1 -0
  201. package/dist/rules/multilineBlocks.d.ts +3 -0
  202. package/dist/rules/noBadBlocks.cjs +100 -0
  203. package/dist/rules/noBadBlocks.cjs.map +1 -0
  204. package/dist/rules/noBadBlocks.d.ts +3 -0
  205. package/dist/rules/noBlankBlockDescriptions.cjs +63 -0
  206. package/dist/rules/noBlankBlockDescriptions.cjs.map +1 -0
  207. package/dist/rules/noBlankBlockDescriptions.d.ts +3 -0
  208. package/dist/rules/noBlankBlocks.cjs +54 -0
  209. package/dist/rules/noBlankBlocks.cjs.map +1 -0
  210. package/dist/rules/noBlankBlocks.d.ts +3 -0
  211. package/dist/rules/noDefaults.cjs +102 -0
  212. package/dist/rules/noDefaults.cjs.map +1 -0
  213. package/dist/rules/noDefaults.d.ts +3 -0
  214. package/dist/rules/noMissingSyntax.cjs +196 -0
  215. package/dist/rules/noMissingSyntax.cjs.map +1 -0
  216. package/dist/rules/noMissingSyntax.d.ts +10 -0
  217. package/dist/rules/noMultiAsterisks.cjs +126 -0
  218. package/dist/rules/noMultiAsterisks.cjs.map +1 -0
  219. package/dist/rules/noMultiAsterisks.d.ts +3 -0
  220. package/dist/rules/noRestrictedSyntax.cjs +68 -0
  221. package/dist/rules/noRestrictedSyntax.cjs.map +1 -0
  222. package/dist/rules/noRestrictedSyntax.d.ts +3 -0
  223. package/dist/rules/noTypes.cjs +101 -0
  224. package/dist/rules/noTypes.cjs.map +1 -0
  225. package/dist/rules/noTypes.d.ts +3 -0
  226. package/dist/rules/noUndefinedTypes.cjs +588 -0
  227. package/dist/rules/noUndefinedTypes.cjs.map +1 -0
  228. package/dist/rules/noUndefinedTypes.d.ts +3 -0
  229. package/dist/rules/preferImportTag.cjs +362 -0
  230. package/dist/rules/preferImportTag.cjs.map +1 -0
  231. package/dist/rules/preferImportTag.d.ts +3 -0
  232. package/dist/rules/requireAsteriskPrefix.cjs +190 -0
  233. package/dist/rules/requireAsteriskPrefix.cjs.map +1 -0
  234. package/dist/rules/requireAsteriskPrefix.d.ts +3 -0
  235. package/dist/rules/requireDescription.cjs +164 -0
  236. package/dist/rules/requireDescription.cjs.map +1 -0
  237. package/dist/rules/requireDescription.d.ts +3 -0
  238. package/dist/rules/requireDescriptionCompleteSentence.cjs +321 -0
  239. package/dist/rules/requireDescriptionCompleteSentence.cjs.map +1 -0
  240. package/dist/rules/requireDescriptionCompleteSentence.d.ts +3 -0
  241. package/dist/rules/requireExample.cjs +133 -0
  242. package/dist/rules/requireExample.cjs.map +1 -0
  243. package/dist/rules/requireExample.d.ts +3 -0
  244. package/dist/rules/requireFileOverview.cjs +194 -0
  245. package/dist/rules/requireFileOverview.cjs.map +1 -0
  246. package/dist/rules/requireFileOverview.d.ts +3 -0
  247. package/dist/rules/requireHyphenBeforeParamDescription.cjs +166 -0
  248. package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +1 -0
  249. package/dist/rules/requireHyphenBeforeParamDescription.d.ts +3 -0
  250. package/dist/rules/requireJsdoc.cjs +722 -0
  251. package/dist/rules/requireJsdoc.cjs.map +1 -0
  252. package/dist/rules/requireJsdoc.d.ts +25 -0
  253. package/dist/rules/requireParam.cjs +772 -0
  254. package/dist/rules/requireParam.cjs.map +1 -0
  255. package/dist/rules/requireParam.d.ts +4 -0
  256. package/dist/rules/requireParamDescription.cjs +105 -0
  257. package/dist/rules/requireParamDescription.cjs.map +1 -0
  258. package/dist/rules/requireParamDescription.d.ts +3 -0
  259. package/dist/rules/requireParamName.cjs +68 -0
  260. package/dist/rules/requireParamName.cjs.map +1 -0
  261. package/dist/rules/requireParamName.d.ts +3 -0
  262. package/dist/rules/requireParamType.cjs +104 -0
  263. package/dist/rules/requireParamType.cjs.map +1 -0
  264. package/dist/rules/requireParamType.d.ts +3 -0
  265. package/dist/rules/requireProperty.cjs +63 -0
  266. package/dist/rules/requireProperty.cjs.map +1 -0
  267. package/dist/rules/requireProperty.d.ts +3 -0
  268. package/dist/rules/requirePropertyDescription.cjs +29 -0
  269. package/dist/rules/requirePropertyDescription.cjs.map +1 -0
  270. package/dist/rules/requirePropertyDescription.d.ts +3 -0
  271. package/dist/rules/requirePropertyName.cjs +29 -0
  272. package/dist/rules/requirePropertyName.cjs.map +1 -0
  273. package/dist/rules/requirePropertyName.d.ts +3 -0
  274. package/dist/rules/requirePropertyType.cjs +29 -0
  275. package/dist/rules/requirePropertyType.cjs.map +1 -0
  276. package/dist/rules/requirePropertyType.d.ts +3 -0
  277. package/dist/rules/requireRejects.cjs +226 -0
  278. package/dist/rules/requireRejects.cjs.map +1 -0
  279. package/dist/rules/requireRejects.d.ts +3 -0
  280. package/dist/rules/requireReturns.cjs +262 -0
  281. package/dist/rules/requireReturns.cjs.map +1 -0
  282. package/dist/rules/requireReturns.d.ts +3 -0
  283. package/dist/rules/requireReturnsCheck.cjs +140 -0
  284. package/dist/rules/requireReturnsCheck.cjs.map +1 -0
  285. package/dist/rules/requireReturnsCheck.d.ts +3 -0
  286. package/dist/rules/requireReturnsDescription.cjs +72 -0
  287. package/dist/rules/requireReturnsDescription.cjs.map +1 -0
  288. package/dist/rules/requireReturnsDescription.d.ts +3 -0
  289. package/dist/rules/requireReturnsType.cjs +68 -0
  290. package/dist/rules/requireReturnsType.cjs.map +1 -0
  291. package/dist/rules/requireReturnsType.d.ts +3 -0
  292. package/dist/rules/requireTags.cjs +74 -0
  293. package/dist/rules/requireTags.cjs.map +1 -0
  294. package/dist/rules/requireTags.d.ts +3 -0
  295. package/dist/rules/requireTemplate.cjs +220 -0
  296. package/dist/rules/requireTemplate.cjs.map +1 -0
  297. package/dist/rules/requireTemplate.d.ts +3 -0
  298. package/dist/rules/requireThrows.cjs +118 -0
  299. package/dist/rules/requireThrows.cjs.map +1 -0
  300. package/dist/rules/requireThrows.d.ts +3 -0
  301. package/dist/rules/requireYields.cjs +224 -0
  302. package/dist/rules/requireYields.cjs.map +1 -0
  303. package/dist/rules/requireYields.d.ts +3 -0
  304. package/dist/rules/requireYieldsCheck.cjs +179 -0
  305. package/dist/rules/requireYieldsCheck.cjs.map +1 -0
  306. package/dist/rules/requireYieldsCheck.d.ts +3 -0
  307. package/dist/rules/sortTags.cjs +656 -0
  308. package/dist/rules/sortTags.cjs.map +1 -0
  309. package/dist/rules/sortTags.d.ts +3 -0
  310. package/dist/rules/tagLines.cjs +374 -0
  311. package/dist/rules/tagLines.cjs.map +1 -0
  312. package/dist/rules/tagLines.d.ts +3 -0
  313. package/dist/rules/textEscaping.cjs +141 -0
  314. package/dist/rules/textEscaping.cjs.map +1 -0
  315. package/dist/rules/textEscaping.d.ts +3 -0
  316. package/dist/rules/tsMethodSignatureStyle.cjs +240 -0
  317. package/dist/rules/tsMethodSignatureStyle.cjs.map +1 -0
  318. package/dist/rules/tsMethodSignatureStyle.d.ts +3 -0
  319. package/dist/rules/tsNoEmptyObjectType.cjs +62 -0
  320. package/dist/rules/tsNoEmptyObjectType.cjs.map +1 -0
  321. package/dist/rules/tsNoEmptyObjectType.d.ts +3 -0
  322. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +104 -0
  323. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +1 -0
  324. package/dist/rules/tsNoUnnecessaryTemplateExpression.d.ts +3 -0
  325. package/dist/rules/tsPreferFunctionType.cjs +110 -0
  326. package/dist/rules/tsPreferFunctionType.cjs.map +1 -0
  327. package/dist/rules/tsPreferFunctionType.d.ts +3 -0
  328. package/dist/rules/typeFormatting.cjs +607 -0
  329. package/dist/rules/typeFormatting.cjs.map +1 -0
  330. package/dist/rules/typeFormatting.d.ts +3 -0
  331. package/dist/rules/validTypes.cjs +328 -0
  332. package/dist/rules/validTypes.cjs.map +1 -0
  333. package/dist/rules/validTypes.d.ts +3 -0
  334. package/dist/rules.d.ts +3203 -0
  335. package/dist/tagNames.cjs +244 -0
  336. package/dist/tagNames.cjs.map +1 -0
  337. package/dist/tagNames.d.ts +16 -0
  338. package/dist/to-valid-identifier.cjs +263 -0
  339. package/dist/utils/hasReturnValue.cjs +495 -0
  340. package/dist/utils/hasReturnValue.cjs.map +1 -0
  341. package/dist/utils/hasReturnValue.d.ts +20 -0
  342. package/package.json +220 -0
  343. package/rollup.config.js +16 -0
  344. package/src/WarnSettings.js +34 -0
  345. package/src/alignTransform.js +444 -0
  346. package/src/buildForbidRuleDefinition.js +106 -0
  347. package/src/buildRejectOrPreferRuleDefinition.js +481 -0
  348. package/src/defaultTagOrder.js +169 -0
  349. package/src/exportParser.js +973 -0
  350. package/src/getDefaultTagStructureForMode.js +968 -0
  351. package/src/getJsdocProcessorPlugin.cts +5 -0
  352. package/src/getJsdocProcessorPlugin.js +692 -0
  353. package/src/index-cjs.js +755 -0
  354. package/src/index-esm.js +196 -0
  355. package/src/index.cjs.cts +3 -0
  356. package/src/index.js +940 -0
  357. package/src/iterateJsdoc.cts +7 -0
  358. package/src/iterateJsdoc.js +2612 -0
  359. package/src/jsdocUtils.js +2158 -0
  360. package/src/rules/checkAccess.js +45 -0
  361. package/src/rules/checkAlignment.js +82 -0
  362. package/src/rules/checkExamples.js +613 -0
  363. package/src/rules/checkIndentation.js +176 -0
  364. package/src/rules/checkLineAlignment.js +453 -0
  365. package/src/rules/checkParamNames.js +541 -0
  366. package/src/rules/checkPropertyNames.js +174 -0
  367. package/src/rules/checkSyntax.js +30 -0
  368. package/src/rules/checkTagNames.js +414 -0
  369. package/src/rules/checkTemplateNames.js +208 -0
  370. package/src/rules/checkTypes.js +130 -0
  371. package/src/rules/checkValues.js +264 -0
  372. package/src/rules/convertToJsdocComments.js +444 -0
  373. package/src/rules/emptyTags.js +106 -0
  374. package/src/rules/escapeInlineTags.js +189 -0
  375. package/src/rules/implementsOnClasses.js +78 -0
  376. package/src/rules/importsAsDependencies.js +132 -0
  377. package/src/rules/informativeDocs.js +228 -0
  378. package/src/rules/linesBeforeBlock.js +144 -0
  379. package/src/rules/matchDescription.js +413 -0
  380. package/src/rules/matchName.js +179 -0
  381. package/src/rules/multilineBlocks.js +562 -0
  382. package/src/rules/noBadBlocks.js +127 -0
  383. package/src/rules/noBlankBlockDescriptions.js +69 -0
  384. package/src/rules/noBlankBlocks.js +55 -0
  385. package/src/rules/noDefaults.js +104 -0
  386. package/src/rules/noMissingSyntax.js +215 -0
  387. package/src/rules/noMultiAsterisks.js +162 -0
  388. package/src/rules/noRestrictedSyntax.js +72 -0
  389. package/src/rules/noTypes.js +108 -0
  390. package/src/rules/noUndefinedTypes.js +797 -0
  391. package/src/rules/preferImportTag.js +521 -0
  392. package/src/rules/requireAsteriskPrefix.js +217 -0
  393. package/src/rules/requireDescription.js +190 -0
  394. package/src/rules/requireDescriptionCompleteSentence.js +376 -0
  395. package/src/rules/requireExample.js +143 -0
  396. package/src/rules/requireFileOverview.js +213 -0
  397. package/src/rules/requireHyphenBeforeParamDescription.js +210 -0
  398. package/src/rules/requireJsdoc.js +897 -0
  399. package/src/rules/requireParam.js +848 -0
  400. package/src/rules/requireParamDescription.js +110 -0
  401. package/src/rules/requireParamName.js +69 -0
  402. package/src/rules/requireParamType.js +109 -0
  403. package/src/rules/requireProperty.js +66 -0
  404. package/src/rules/requirePropertyDescription.js +25 -0
  405. package/src/rules/requirePropertyName.js +25 -0
  406. package/src/rules/requirePropertyType.js +25 -0
  407. package/src/rules/requireRejects.js +246 -0
  408. package/src/rules/requireReturns.js +291 -0
  409. package/src/rules/requireReturnsCheck.js +180 -0
  410. package/src/rules/requireReturnsDescription.js +73 -0
  411. package/src/rules/requireReturnsType.js +65 -0
  412. package/src/rules/requireTags.js +85 -0
  413. package/src/rules/requireTemplate.js +246 -0
  414. package/src/rules/requireThrows.js +128 -0
  415. package/src/rules/requireYields.js +265 -0
  416. package/src/rules/requireYieldsCheck.js +226 -0
  417. package/src/rules/sortTags.js +766 -0
  418. package/src/rules/tagLines.js +486 -0
  419. package/src/rules/textEscaping.js +158 -0
  420. package/src/rules/tsMethodSignatureStyle.js +300 -0
  421. package/src/rules/tsNoEmptyObjectType.js +61 -0
  422. package/src/rules/tsNoUnnecessaryTemplateExpression.js +130 -0
  423. package/src/rules/tsPreferFunctionType.js +127 -0
  424. package/src/rules/typeFormatting.js +690 -0
  425. package/src/rules/validTypes.js +466 -0
  426. package/src/rules.d.ts +3203 -0
  427. package/src/tagNames.js +301 -0
  428. package/src/utils/hasReturnValue.js +572 -0
  429. package/typings/babel__eslint-parser.d.ts +1 -0
  430. package/typings/gitdown.d.ts +16 -0
@@ -0,0 +1,144 @@
1
+ import iterateJsdoc from '../iterateJsdoc.js';
2
+
3
+ /**
4
+ * Punctuators that begin a logical group should not require a line before it skipped. Specifically
5
+ * `[` starts an array, `{` starts an object or block, `(` starts a grouping, and `=` starts a
6
+ * declaration (like a variable or a type alias).
7
+ */
8
+ const startPunctuators = new Set([
9
+ '(', '=', '[', '{',
10
+ ]);
11
+
12
+ export default iterateJsdoc(({
13
+ context,
14
+ jsdocNode,
15
+ report,
16
+ sourceCode,
17
+ utils,
18
+ }) => {
19
+ const {
20
+ checkBlockStarts,
21
+ excludedTags = [
22
+ 'type',
23
+ ],
24
+ ignoreSameLine = true,
25
+ ignoreSingleLines = true,
26
+ lines = 1,
27
+ } = context.options[0] || {};
28
+
29
+ if (utils.hasATag(excludedTags)) {
30
+ return;
31
+ }
32
+
33
+ const tokensBefore = sourceCode.getTokensBefore(jsdocNode, {
34
+ includeComments: true,
35
+ });
36
+ const tokenBefore = tokensBefore.at(-1);
37
+ if (
38
+ !tokenBefore || (
39
+ tokenBefore.type === 'Punctuator' &&
40
+ !checkBlockStarts &&
41
+ startPunctuators.has(tokenBefore.value)
42
+ )
43
+ ) {
44
+ return;
45
+ }
46
+
47
+ if (tokenBefore.loc?.end?.line + lines >=
48
+ /** @type {number} */
49
+ (jsdocNode.loc?.start?.line)
50
+ ) {
51
+ const startLine = jsdocNode.loc?.start?.line;
52
+ const sameLine = tokenBefore.loc?.end?.line === startLine;
53
+
54
+ if (sameLine && ignoreSameLine) {
55
+ return;
56
+ }
57
+
58
+ if (ignoreSingleLines && jsdocNode.loc?.start.line === jsdocNode.loc?.end.line) {
59
+ return;
60
+ }
61
+
62
+ /** @type {import('eslint').Rule.ReportFixer} */
63
+ const fix = (fixer) => {
64
+ let indent = '';
65
+ if (sameLine) {
66
+ const spaceDiff = /** @type {number} */ (jsdocNode.loc?.start?.column) -
67
+ /** @type {number} */ (tokenBefore.loc?.end?.column);
68
+ // @ts-expect-error Should be a comment
69
+ indent = /** @type {import('estree').Comment} */ (
70
+ jsdocNode
71
+ ).value.match(/^\*\n([\t ]*) \*/v)?.[1]?.slice(spaceDiff);
72
+ if (!indent) {
73
+ /** @type {import('eslint').AST.Token|import('estree').Comment|undefined} */
74
+ let tokenPrior = tokenBefore;
75
+ let startColumn;
76
+ while (tokenPrior && tokenPrior?.loc?.start?.line === startLine) {
77
+ startColumn = tokenPrior.loc?.start?.column;
78
+ tokenPrior = tokensBefore.pop();
79
+ }
80
+
81
+ indent = ' '.repeat(
82
+ /* c8 ignore next */
83
+ /** @type {number} */ (startColumn ? startColumn - 1 : 0),
84
+ );
85
+ }
86
+ }
87
+
88
+ return fixer.insertTextAfter(
89
+ /** @type {import('eslint').AST.Token} */
90
+ (tokenBefore),
91
+ '\n'.repeat(lines) +
92
+ (sameLine ? '\n' + indent : ''),
93
+ );
94
+ };
95
+
96
+ report(`Required ${lines} line(s) before JSDoc block`, fix);
97
+ }
98
+ }, {
99
+ iterateAllJsdocs: true,
100
+ meta: {
101
+ docs: {
102
+ description: 'Enforces minimum number of newlines before JSDoc comment blocks',
103
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/lines-before-block.md#repos-sticky-header',
104
+ },
105
+ fixable: 'code',
106
+ schema: [
107
+ {
108
+ additionalProperties: false,
109
+ properties: {
110
+ checkBlockStarts: {
111
+ description: `Whether to additionally check the start of blocks, such as classes or functions.
112
+ Defaults to \`false\`.`,
113
+ type: 'boolean',
114
+ },
115
+ excludedTags: {
116
+ description: `An array of tags whose presence in the JSDoc block will prevent the
117
+ application of the rule. Defaults to \`['type']\` (i.e., if \`@type\` is present,
118
+ lines before the block will not be added).`,
119
+ items: {
120
+ type: 'string',
121
+ },
122
+ type: 'array',
123
+ },
124
+ ignoreSameLine: {
125
+ description: `This option excludes cases where the JSDoc block occurs on the same line as a
126
+ preceding code or comment. Defaults to \`true\`.`,
127
+ type: 'boolean',
128
+ },
129
+ ignoreSingleLines: {
130
+ description: `This option excludes cases where the JSDoc block is only one line long.
131
+ Defaults to \`true\`.`,
132
+ type: 'boolean',
133
+ },
134
+ lines: {
135
+ description: 'The minimum number of lines to require. Defaults to 1.',
136
+ type: 'integer',
137
+ },
138
+ },
139
+ type: 'object',
140
+ },
141
+ ],
142
+ type: 'suggestion',
143
+ },
144
+ });
@@ -0,0 +1,413 @@
1
+ import iterateJsdoc from '../iterateJsdoc.js';
2
+
3
+ // If supporting Node >= 10, we could loosen the default to this for the
4
+ // initial letter: \\p{Upper}
5
+ const matchDescriptionDefault = '^\n?([A-Z`\\d_][\\s\\S]*[.?!`\\p{RGI_Emoji}]\\s*)?$';
6
+
7
+ /**
8
+ * @param {string} value
9
+ * @param {string} userDefault
10
+ * @returns {string}
11
+ */
12
+ const stringOrDefault = (value, userDefault) => {
13
+ return typeof value === 'string' ?
14
+ value :
15
+ userDefault || matchDescriptionDefault;
16
+ };
17
+
18
+ export default iterateJsdoc(({
19
+ context,
20
+ jsdoc,
21
+ report,
22
+ utils,
23
+ }) => {
24
+ const {
25
+ mainDescription,
26
+ matchDescription,
27
+ message,
28
+ nonemptyTags = true,
29
+ tags = {},
30
+ } = context.options[0] || {};
31
+
32
+ /**
33
+ * @param {string} desc
34
+ * @param {import('comment-parser').Spec} [tag]
35
+ * @returns {void}
36
+ */
37
+ const validateDescription = (desc, tag) => {
38
+ let mainDescriptionMatch = mainDescription;
39
+ let errorMessage = message;
40
+ if (typeof mainDescription === 'object') {
41
+ mainDescriptionMatch = mainDescription.match;
42
+ errorMessage = mainDescription.message;
43
+ }
44
+
45
+ if (mainDescriptionMatch === false && (
46
+ !tag || !Object.hasOwn(tags, tag.tag))
47
+ ) {
48
+ return;
49
+ }
50
+
51
+ let tagValue = mainDescriptionMatch;
52
+ if (tag) {
53
+ const tagName = tag.tag;
54
+ if (typeof tags[tagName] === 'object') {
55
+ tagValue = tags[tagName].match;
56
+ errorMessage = tags[tagName].message;
57
+ } else {
58
+ tagValue = tags[tagName];
59
+ }
60
+ }
61
+
62
+ const regex = utils.getRegexFromString(
63
+ stringOrDefault(tagValue, matchDescription),
64
+ );
65
+
66
+ if (!regex.test(desc)) {
67
+ report(
68
+ errorMessage || 'JSDoc description does not satisfy the regex pattern.',
69
+ null,
70
+ tag || {
71
+ // Add one as description would typically be into block
72
+ line: jsdoc.source[0].number + 1,
73
+ },
74
+ );
75
+ }
76
+ };
77
+
78
+ const {
79
+ description,
80
+ } = utils.getDescription();
81
+ if (description) {
82
+ validateDescription(description);
83
+ }
84
+
85
+ /**
86
+ * @param {string} tagName
87
+ * @returns {boolean}
88
+ */
89
+ const hasNoTag = (tagName) => {
90
+ return !tags[tagName];
91
+ };
92
+
93
+ for (const tag of [
94
+ 'description',
95
+ 'summary',
96
+ 'file',
97
+ 'classdesc',
98
+ ]) {
99
+ utils.forEachPreferredTag(tag, (matchingJsdocTag, targetTagName) => {
100
+ const desc = (matchingJsdocTag.name + ' ' + utils.getTagDescription(matchingJsdocTag)).trim();
101
+ if (hasNoTag(targetTagName)) {
102
+ validateDescription(desc, matchingJsdocTag);
103
+ }
104
+ }, true);
105
+ }
106
+
107
+ if (nonemptyTags) {
108
+ for (const tag of [
109
+ 'copyright',
110
+ 'example',
111
+ 'see',
112
+ 'todo',
113
+ ]) {
114
+ utils.forEachPreferredTag(tag, (matchingJsdocTag, targetTagName) => {
115
+ const desc = (matchingJsdocTag.name + ' ' + utils.getTagDescription(matchingJsdocTag)).trim();
116
+
117
+ if (hasNoTag(targetTagName) && !(/.+/v).test(desc)) {
118
+ report(
119
+ 'JSDoc description must not be empty.',
120
+ null,
121
+ matchingJsdocTag,
122
+ );
123
+ }
124
+ });
125
+ }
126
+ }
127
+
128
+ if (!Object.keys(tags).length) {
129
+ return;
130
+ }
131
+
132
+ /**
133
+ * @param {string} tagName
134
+ * @returns {boolean}
135
+ */
136
+ const hasOptionTag = (tagName) => {
137
+ return Boolean(tags[tagName]);
138
+ };
139
+
140
+ const whitelistedTags = utils.filterTags(({
141
+ tag: tagName,
142
+ }) => {
143
+ return hasOptionTag(tagName);
144
+ });
145
+ const {
146
+ tagsWithNames,
147
+ tagsWithoutNames,
148
+ } = utils.getTagsByType(whitelistedTags);
149
+
150
+ tagsWithNames.some((tag) => {
151
+ const desc = /** @type {string} */ (
152
+ utils.getTagDescription(tag)
153
+ ).replace(/^[\- ]*/v, '')
154
+ .trim();
155
+
156
+ return validateDescription(desc, tag);
157
+ });
158
+
159
+ tagsWithoutNames.some((tag) => {
160
+ const desc = (tag.name + ' ' + utils.getTagDescription(tag)).trim();
161
+
162
+ return validateDescription(desc, tag);
163
+ });
164
+ }, {
165
+ contextDefaults: true,
166
+ meta: {
167
+ docs: {
168
+ description: 'Enforces a regular expression pattern on descriptions.',
169
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-description.md#repos-sticky-header',
170
+ },
171
+ schema: [
172
+ {
173
+ additionalProperties: false,
174
+ properties: {
175
+ contexts: {
176
+ description: `Set this to an array of strings representing the AST context (or an object with
177
+ optional \`context\` and \`comment\` properties) where you wish the rule to be applied (e.g.,
178
+ \`ClassDeclaration\` for ES6 classes).
179
+
180
+ \`context\` defaults to \`any\` and \`comment\` defaults to no specific comment context.
181
+
182
+ Overrides the default contexts (\`ArrowFunctionExpression\`, \`FunctionDeclaration\`,
183
+ \`FunctionExpression\`). Set to \`"any"\` if you want the rule to apply to any
184
+ JSDoc block throughout your files.
185
+
186
+ See the ["AST and Selectors"](../#advanced-ast-and-selectors)
187
+ section of our Advanced docs for more on the expected format.`,
188
+ items: {
189
+ anyOf: [
190
+ {
191
+ type: 'string',
192
+ },
193
+ {
194
+ additionalProperties: false,
195
+ properties: {
196
+ comment: {
197
+ type: 'string',
198
+ },
199
+ context: {
200
+ type: 'string',
201
+ },
202
+ },
203
+ type: 'object',
204
+ },
205
+ ],
206
+ },
207
+ type: 'array',
208
+ },
209
+ mainDescription: {
210
+ description: `If you wish to override the main block description without changing the
211
+ default \`match-description\` (which can cascade to the \`tags\` with \`true\`),
212
+ you may use \`mainDescription\`:
213
+
214
+ \`\`\`js
215
+ {
216
+ 'jsdoc/match-description': ['error', {
217
+ mainDescription: '[A-Z].*\\\\.',
218
+ tags: {
219
+ param: true,
220
+ returns: true
221
+ }
222
+ }]
223
+ }
224
+ \`\`\`
225
+
226
+ There is no need to add \`mainDescription: true\`, as by default, the main
227
+ block description (and only the main block description) is linted, though you
228
+ may disable checking it by setting it to \`false\`.
229
+
230
+ You may also provide an object with \`message\`:
231
+
232
+ \`\`\`js
233
+ {
234
+ 'jsdoc/match-description': ['error', {
235
+ mainDescription: {
236
+ message: 'Capitalize first word of JSDoc block descriptions',
237
+ match: '[A-Z].*\\\\.'
238
+ },
239
+ tags: {
240
+ param: true,
241
+ returns: true
242
+ }
243
+ }]
244
+ }
245
+ \`\`\``,
246
+ oneOf: [
247
+ {
248
+ format: 'regex',
249
+ type: 'string',
250
+ },
251
+ {
252
+ type: 'boolean',
253
+ },
254
+ {
255
+ additionalProperties: false,
256
+ properties: {
257
+ match: {
258
+ oneOf: [
259
+ {
260
+ format: 'regex',
261
+ type: 'string',
262
+ },
263
+ {
264
+ type: 'boolean',
265
+ },
266
+ ],
267
+ },
268
+ message: {
269
+ type: 'string',
270
+ },
271
+ },
272
+ type: 'object',
273
+ },
274
+ ],
275
+ },
276
+ matchDescription: {
277
+ description: `You can supply your own expression to override the default, passing a
278
+ \`matchDescription\` string on the options object.
279
+
280
+ Defaults to using (only) the \`v\` flag, so
281
+ to add your own flags, encapsulate your expression as a string, but like a
282
+ literal, e.g., \`/[A-Z].*\\./vi\`.
283
+
284
+ \`\`\`js
285
+ {
286
+ 'jsdoc/match-description': ['error', {matchDescription: '[A-Z].*\\\\.'}]
287
+ }
288
+ \`\`\``,
289
+ format: 'regex',
290
+ type: 'string',
291
+ },
292
+ message: {
293
+ description: `You may provide a custom default message by using the following format:
294
+
295
+ \`\`\`js
296
+ {
297
+ 'jsdoc/match-description': ['error', {
298
+ message: 'The default description should begin with a capital letter.'
299
+ }]
300
+ }
301
+ \`\`\`
302
+
303
+ This can be overridden per tag or for the main block description by setting
304
+ \`message\` within \`tags\` or \`mainDescription\`, respectively.`,
305
+ type: 'string',
306
+ },
307
+ nonemptyTags: {
308
+ description: `If not set to \`false\`, will enforce that the following tags have at least
309
+ some content:
310
+
311
+ - \`@copyright\`
312
+ - \`@example\`
313
+ - \`@see\`
314
+ - \`@todo\`
315
+
316
+ If you supply your own tag description for any of the above tags in \`tags\`,
317
+ your description will take precedence.`,
318
+ type: 'boolean',
319
+ },
320
+ tags: {
321
+ description: `If you want different regular expressions to apply to tags, you may use
322
+ the \`tags\` option object:
323
+
324
+ \`\`\`js
325
+ {
326
+ 'jsdoc/match-description': ['error', {tags: {
327
+ param: '\\\\- [A-Z].*\\\\.',
328
+ returns: '[A-Z].*\\\\.'
329
+ }}]
330
+ }
331
+ \`\`\`
332
+
333
+ In place of a string, you can also add \`true\` to indicate that a particular
334
+ tag should be linted with the \`matchDescription\` value (or the default).
335
+
336
+ \`\`\`js
337
+ {
338
+ 'jsdoc/match-description': ['error', {tags: {
339
+ param: true,
340
+ returns: true
341
+ }}]
342
+ }
343
+ \`\`\`
344
+
345
+ Alternatively, you may supply an object with a \`message\` property to indicate
346
+ the error message for that tag.
347
+
348
+ \`\`\`js
349
+ {
350
+ 'jsdoc/match-description': ['error', {tags: {
351
+ param: {message: 'Begin with a hyphen', match: '\\\\- [A-Z].*\\\\.'},
352
+ returns: {message: 'Capitalize for returns (the default)', match: true}
353
+ }}]
354
+ }
355
+ \`\`\`
356
+
357
+ The tags \`@param\`/\`@arg\`/\`@argument\` and \`@property\`/\`@prop\` will be properly
358
+ parsed to ensure that the matched "description" text includes only the text
359
+ after the name.
360
+
361
+ All other tags will treat the text following the tag name, a space, and
362
+ an optional curly-bracketed type expression (and another space) as part of
363
+ its "description" (e.g., for \`@returns {someType} some description\`, the
364
+ description is \`some description\` while for \`@some-tag xyz\`, the description
365
+ is \`xyz\`).`,
366
+ patternProperties: {
367
+ '.*': {
368
+ oneOf: [
369
+ {
370
+ format: 'regex',
371
+ type: 'string',
372
+ },
373
+ {
374
+ enum: [
375
+ true,
376
+ ],
377
+ type: 'boolean',
378
+ },
379
+ {
380
+ additionalProperties: false,
381
+ properties: {
382
+ match: {
383
+ oneOf: [
384
+ {
385
+ format: 'regex',
386
+ type: 'string',
387
+ },
388
+ {
389
+ enum: [
390
+ true,
391
+ ],
392
+ type: 'boolean',
393
+ },
394
+ ],
395
+ },
396
+ message: {
397
+ type: 'string',
398
+ },
399
+ },
400
+ type: 'object',
401
+ },
402
+ ],
403
+ },
404
+ },
405
+ type: 'object',
406
+ },
407
+ },
408
+ type: 'object',
409
+ },
410
+ ],
411
+ type: 'suggestion',
412
+ },
413
+ });