@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,766 @@
1
+ import defaultTagOrder from '../defaultTagOrder.js';
2
+ import iterateJsdoc from '../iterateJsdoc.js';
3
+
4
+ export default iterateJsdoc(({
5
+ context,
6
+ jsdoc,
7
+ utils,
8
+ // eslint-disable-next-line complexity -- Temporary
9
+ }) => {
10
+ const
11
+ /**
12
+ * @type {{
13
+ * linesBetween: import('../iterateJsdoc.js').Integer,
14
+ * tagExceptions: Record<string, number>,
15
+ * tagSequence: {
16
+ * tags: string[]
17
+ * }[],
18
+ * alphabetizeExtras: boolean,
19
+ * reportTagGroupSpacing: boolean,
20
+ * reportIntraTagGroupSpacing: boolean,
21
+ * }}
22
+ */ {
23
+ alphabetizeExtras = false,
24
+ linesBetween = 1,
25
+ reportIntraTagGroupSpacing = true,
26
+ reportTagGroupSpacing = true,
27
+ tagExceptions = {},
28
+ tagSequence = defaultTagOrder,
29
+ } = context.options[0] || {};
30
+
31
+ const tagList = tagSequence.flatMap((obj) => {
32
+ /* typeof obj === 'string' ? obj : */
33
+ return obj.tags;
34
+ });
35
+
36
+ const otherPos = tagList.indexOf('-other');
37
+ const endPos = otherPos > -1 ? otherPos : tagList.length;
38
+
39
+ let ongoingCount = 0;
40
+ for (const [
41
+ idx,
42
+ tag,
43
+ ] of
44
+ /**
45
+ * @type {(
46
+ * import('@es-joy/jsdoccomment').JsdocTagWithInline & {
47
+ * originalIndex: import('../iterateJsdoc.js').Integer,
48
+ * originalLine: import('../iterateJsdoc.js').Integer,
49
+ * }
50
+ * )[]}
51
+ */ (jsdoc.tags).entries()) {
52
+ tag.originalIndex = idx;
53
+ ongoingCount += tag.source.length;
54
+ tag.originalLine = ongoingCount;
55
+ }
56
+
57
+ /** @type {import('../iterateJsdoc.js').Integer|undefined} */
58
+ let firstChangedTagLine;
59
+ /** @type {import('../iterateJsdoc.js').Integer|undefined} */
60
+ let firstChangedTagIndex;
61
+
62
+ /**
63
+ * @type {(import('comment-parser').Spec & {
64
+ * originalIndex: import('../iterateJsdoc.js').Integer,
65
+ * originalLine: import('../iterateJsdoc.js').Integer,
66
+ * })[]}
67
+ */
68
+ const sortedTags = JSON.parse(JSON.stringify(jsdoc.tags));
69
+ sortedTags.sort(({
70
+ tag: tagNew,
71
+ }, {
72
+ originalIndex,
73
+ originalLine,
74
+ tag: tagOld,
75
+ }) => {
76
+ // Optimize: Just keep relative positions if the same tag name
77
+ if (tagNew === tagOld) {
78
+ return 0;
79
+ }
80
+
81
+ const checkOrSetFirstChanged = () => {
82
+ if (!firstChangedTagLine || originalLine < firstChangedTagLine) {
83
+ firstChangedTagLine = originalLine;
84
+ firstChangedTagIndex = originalIndex;
85
+ }
86
+ };
87
+
88
+ const newPos = tagList.indexOf(tagNew);
89
+ const oldPos = tagList.indexOf(tagOld);
90
+
91
+ const preferredNewPos = newPos === -1 ? endPos : newPos;
92
+ const preferredOldPos = oldPos === -1 ? endPos : oldPos;
93
+
94
+ if (preferredNewPos < preferredOldPos) {
95
+ checkOrSetFirstChanged();
96
+ return -1;
97
+ }
98
+
99
+ if (preferredNewPos > preferredOldPos) {
100
+ return 1;
101
+ }
102
+
103
+ // preferredNewPos === preferredOldPos
104
+ if (
105
+ !alphabetizeExtras ||
106
+
107
+ // Optimize: If tagNew (or tagOld which is the same) was found in the
108
+ // priority array, it can maintain its relative position—without need
109
+ // of alphabetizing (secondary sorting)
110
+ newPos >= 0
111
+ ) {
112
+ return 0;
113
+ }
114
+
115
+ if (tagNew < tagOld) {
116
+ checkOrSetFirstChanged();
117
+ return -1;
118
+ }
119
+
120
+ // tagNew > tagOld
121
+ return 1;
122
+ });
123
+
124
+ if (firstChangedTagLine === undefined) {
125
+ // Should be ordered by now
126
+
127
+ /**
128
+ * @type {import('comment-parser').Spec[]}
129
+ */
130
+ const lastTagsOfGroup = [];
131
+
132
+ /**
133
+ * @type {[
134
+ * import('comment-parser').Spec,
135
+ * import('../iterateJsdoc.js').Integer
136
+ * ][]}
137
+ */
138
+ const badLastTagsOfGroup = [];
139
+
140
+ /**
141
+ * @param {import('comment-parser').Spec} tag
142
+ */
143
+ const countTagEmptyLines = (tag) => {
144
+ return tag.source.reduce((acc, {
145
+ tokens: {
146
+ description,
147
+ end,
148
+ name,
149
+ tag: tg,
150
+ type,
151
+ },
152
+ }) => {
153
+ const empty = !tg && !type && !name && !description;
154
+ // Reset the count so long as there is content
155
+ return empty ? acc + Number(empty && !end) : 0;
156
+ }, 0);
157
+ };
158
+
159
+ let idx = 0;
160
+ for (const {
161
+ tags,
162
+ } of tagSequence) {
163
+ let innerIdx;
164
+ /** @type {import('comment-parser').Spec} */
165
+ let currentTag;
166
+ /** @type {import('comment-parser').Spec|undefined} */
167
+ let lastTag;
168
+ do {
169
+ currentTag = jsdoc.tags[idx];
170
+ if (!currentTag) {
171
+ idx++;
172
+ break;
173
+ }
174
+
175
+ innerIdx = tags.indexOf(currentTag.tag);
176
+
177
+ if (
178
+ innerIdx === -1 &&
179
+ // eslint-disable-next-line no-loop-func -- Safe
180
+ (!tags.includes('-other') || tagSequence.some(({
181
+ tags: tgs,
182
+ }) => {
183
+ return tgs.includes(currentTag.tag);
184
+ }))
185
+ ) {
186
+ idx++;
187
+ break;
188
+ }
189
+
190
+ lastTag = currentTag;
191
+
192
+ idx++;
193
+ } while (true);
194
+
195
+ idx--;
196
+
197
+ if (lastTag) {
198
+ lastTagsOfGroup.push(lastTag);
199
+ const ct = countTagEmptyLines(lastTag);
200
+ if (
201
+ ct !== linesBetween &&
202
+ // Use another rule for adding to end (should be of interest outside this rule)
203
+ jsdoc.tags[idx]
204
+ ) {
205
+ badLastTagsOfGroup.push([
206
+ lastTag, ct,
207
+ ]);
208
+ }
209
+ }
210
+ }
211
+
212
+ if (reportTagGroupSpacing && badLastTagsOfGroup.length) {
213
+ /**
214
+ * @param {import('comment-parser').Spec} tg
215
+ * @returns {() => void}
216
+ */
217
+ const fixer = (tg) => {
218
+ return () => {
219
+ // Due to https://github.com/syavorsky/comment-parser/issues/110 ,
220
+ // we have to modify `jsdoc.source` rather than just modify tags
221
+ // directly
222
+ for (const [
223
+ currIdx,
224
+ {
225
+ tokens,
226
+ },
227
+ ] of jsdoc.source.entries()) {
228
+ if (tokens.tag !== '@' + tg.tag) {
229
+ continue;
230
+ }
231
+
232
+ // Cannot be `tokens.end`, as dropped off last tag, so safe to
233
+ // go on
234
+ let newIdx = currIdx;
235
+
236
+ const emptyLine = () => {
237
+ return {
238
+ number: 0,
239
+ source: '',
240
+ tokens: utils.seedTokens({
241
+ delimiter: '*',
242
+ start: jsdoc.source[newIdx - 1].tokens.start,
243
+ }),
244
+ };
245
+ };
246
+
247
+ let existingEmptyLines = 0;
248
+ while (true) {
249
+ const nextTokens = jsdoc.source[++newIdx]?.tokens;
250
+
251
+ /* c8 ignore next 3 -- Guard */
252
+ if (!nextTokens) {
253
+ return;
254
+ }
255
+
256
+ // Should be no `nextTokens.end` to worry about since ignored
257
+ // if not followed by tag
258
+
259
+ if (nextTokens.tag) {
260
+ // Haven't made it to last tag instance yet, so keep looking
261
+ if (nextTokens.tag === tokens.tag) {
262
+ existingEmptyLines = 0;
263
+ continue;
264
+ }
265
+
266
+ const lineDiff = linesBetween - existingEmptyLines;
267
+ if (lineDiff > 0) {
268
+ const lines = Array.from({
269
+ length: lineDiff,
270
+ }, () => {
271
+ return emptyLine();
272
+ });
273
+ jsdoc.source.splice(newIdx, 0, ...lines);
274
+ } else {
275
+ // lineDiff < 0
276
+ jsdoc.source.splice(
277
+ newIdx + lineDiff,
278
+ -lineDiff,
279
+ );
280
+ }
281
+
282
+ break;
283
+ }
284
+
285
+ const empty = !nextTokens.type && !nextTokens.name &&
286
+ !nextTokens.description;
287
+
288
+ if (empty) {
289
+ existingEmptyLines++;
290
+ } else {
291
+ // Has content again, so reset empty line count
292
+ existingEmptyLines = 0;
293
+ }
294
+ }
295
+
296
+ break;
297
+ }
298
+
299
+ for (const [
300
+ srcIdx,
301
+ src,
302
+ ] of jsdoc.source.entries()) {
303
+ src.number = srcIdx;
304
+ }
305
+ };
306
+ };
307
+
308
+ for (const [
309
+ tg,
310
+ ] of badLastTagsOfGroup) {
311
+ utils.reportJSDoc(
312
+ 'Tag groups do not have the expected whitespace',
313
+ tg,
314
+ fixer(tg),
315
+ );
316
+ }
317
+
318
+ return;
319
+ }
320
+
321
+ if (!reportIntraTagGroupSpacing) {
322
+ return;
323
+ }
324
+
325
+ for (const [
326
+ tagIdx,
327
+ tag,
328
+ ] of jsdoc.tags.entries()) {
329
+ if (!jsdoc.tags[tagIdx + 1] || lastTagsOfGroup.includes(tag)) {
330
+ continue;
331
+ }
332
+
333
+ const ct = countTagEmptyLines(tag);
334
+ if (ct && (!tagExceptions[tag.tag] || tagExceptions[tag.tag] < ct)) {
335
+ const fixer = () => {
336
+ let foundFirstTag = false;
337
+
338
+ /** @type {string|undefined} */
339
+ let currentTag;
340
+
341
+ for (const [
342
+ currIdx,
343
+ {
344
+ tokens: {
345
+ description,
346
+ end,
347
+ name,
348
+ tag: tg,
349
+ type,
350
+ },
351
+ },
352
+ ] of jsdoc.source.entries()) {
353
+ if (tg) {
354
+ foundFirstTag = true;
355
+ currentTag = tg;
356
+ }
357
+
358
+ if (!foundFirstTag) {
359
+ continue;
360
+ }
361
+
362
+ if (currentTag && !tg && !type && !name && !description && !end) {
363
+ let nextIdx = currIdx;
364
+
365
+ let ignore = true;
366
+ // Even if a tag of the same name as the last tags in a group,
367
+ // could still be an earlier tag in that group
368
+
369
+ // eslint-disable-next-line no-loop-func -- Safe
370
+ if (lastTagsOfGroup.some((lastTagOfGroup) => {
371
+ return currentTag === '@' + lastTagOfGroup.tag;
372
+ })) {
373
+ while (true) {
374
+ const nextTokens = jsdoc.source[++nextIdx]?.tokens;
375
+ if (!nextTokens) {
376
+ break;
377
+ }
378
+
379
+ if (!nextTokens.tag) {
380
+ continue;
381
+ }
382
+
383
+ // Followed by the same tag name, so not actually last in group,
384
+ // and of interest
385
+ if (nextTokens.tag === currentTag) {
386
+ ignore = false;
387
+ }
388
+ }
389
+ } else {
390
+ while (true) {
391
+ const nextTokens = jsdoc.source[++nextIdx]?.tokens;
392
+ if (!nextTokens || nextTokens.end) {
393
+ break;
394
+ }
395
+
396
+ // Not the very last tag, so don't ignore
397
+ if (nextTokens.tag) {
398
+ ignore = false;
399
+ break;
400
+ }
401
+ }
402
+ }
403
+
404
+ if (!ignore) {
405
+ jsdoc.source.splice(currIdx, 1);
406
+ for (const [
407
+ srcIdx,
408
+ src,
409
+ ] of jsdoc.source.entries()) {
410
+ src.number = srcIdx;
411
+ }
412
+ }
413
+ }
414
+ }
415
+ };
416
+
417
+ utils.reportJSDoc(
418
+ 'Intra-group tags have unexpected whitespace',
419
+ tag,
420
+ fixer,
421
+ );
422
+ }
423
+ }
424
+
425
+ return;
426
+ }
427
+
428
+ const firstLine = utils.getFirstLine();
429
+
430
+ const fix = () => {
431
+ const itemsToMoveRange = [
432
+ ...Array.from({
433
+ length: jsdoc.tags.length -
434
+ /** @type {import('../iterateJsdoc.js').Integer} */ (
435
+ firstChangedTagIndex
436
+ ),
437
+ }).keys(),
438
+ ];
439
+
440
+ const unchangedPriorTagDescriptions = jsdoc.tags.slice(
441
+ 0,
442
+ firstChangedTagIndex,
443
+ ).reduce((ct, {
444
+ source,
445
+ }) => {
446
+ return ct + source.length - 1;
447
+ }, 0);
448
+
449
+ // This offset includes not only the offset from where the first tag
450
+ // must begin, and the additional offset of where the first changed
451
+ // tag begins, but it must also account for prior descriptions
452
+ const initialOffset = /** @type {import('../iterateJsdoc.js').Integer} */ (
453
+ firstLine
454
+ ) + /** @type {import('../iterateJsdoc.js').Integer} */ (firstChangedTagIndex) +
455
+
456
+ // May be the first tag, so don't try finding a prior one if so
457
+ unchangedPriorTagDescriptions;
458
+
459
+ // Use `firstChangedTagLine` for line number to begin reporting/splicing
460
+ for (const idx of itemsToMoveRange) {
461
+ utils.removeTag(
462
+ idx +
463
+ /** @type {import('../iterateJsdoc.js').Integer} */ (
464
+ firstChangedTagIndex
465
+ ),
466
+ );
467
+ }
468
+
469
+ const changedTags = sortedTags.slice(firstChangedTagIndex);
470
+ let extraTagCount = 0;
471
+
472
+ for (const idx of itemsToMoveRange) {
473
+ const changedTag = changedTags[idx];
474
+
475
+ utils.addTag(
476
+ changedTag.tag,
477
+ extraTagCount + initialOffset + idx,
478
+ {
479
+ ...changedTag.source[0].tokens,
480
+
481
+ // `comment-parser` puts the `end` within the `tags` section, so
482
+ // avoid adding another to jsdoc.source
483
+ end: '',
484
+ },
485
+ );
486
+
487
+ for (const {
488
+ tokens,
489
+ } of changedTag.source.slice(1)) {
490
+ if (!tokens.end) {
491
+ utils.addLine(
492
+ extraTagCount + initialOffset + idx + 1,
493
+ {
494
+ ...tokens,
495
+ end: '',
496
+ },
497
+ );
498
+ extraTagCount++;
499
+ }
500
+ }
501
+ }
502
+ };
503
+
504
+ utils.reportJSDoc(
505
+ `Tags are not in the prescribed order: ${
506
+ tagList.join(', ') || '(alphabetical)'
507
+ }`,
508
+ jsdoc.tags[/** @type {import('../iterateJsdoc.js').Integer} */ (
509
+ firstChangedTagIndex
510
+ )],
511
+ fix,
512
+ true,
513
+ );
514
+ }, {
515
+ iterateAllJsdocs: true,
516
+ meta: {
517
+ docs: {
518
+ description: 'Sorts tags by a specified sequence according to tag name, optionally adding line breaks between tag groups.',
519
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/sort-tags.md#repos-sticky-header',
520
+ },
521
+ fixable: 'code',
522
+ schema: [
523
+ {
524
+ additionalProperties: false,
525
+ properties: {
526
+ alphabetizeExtras: {
527
+ description: `Defaults to \`false\`. Alphabetizes any items not within \`tagSequence\` after any
528
+ items within \`tagSequence\` (or in place of the special \`-other\` pseudo-tag)
529
+ are sorted.
530
+
531
+ If you want all your tags alphabetized, you can supply an empty array for
532
+ \`tagSequence\` along with setting this option to \`true\`.`,
533
+ type: 'boolean',
534
+ },
535
+ linesBetween: {
536
+ description: `Indicates the number of lines to be added between tag groups. Defaults to 1.
537
+ Do not set to 0 or 2+ if you are using \`tag-lines\` and \`"always"\` and do not
538
+ set to 1+ if you are using \`tag-lines\` and \`"never"\`.`,
539
+ type: 'integer',
540
+ },
541
+ reportIntraTagGroupSpacing: {
542
+ description: `Whether to enable reporting and fixing of line breaks within tags of a given
543
+ tag group. Defaults to \`true\` which will remove any line breaks at the end of
544
+ such tags. Do not use with \`true\` if you are using \`tag-lines\` and \`always\`.`,
545
+ type: 'boolean',
546
+ },
547
+ reportTagGroupSpacing: {
548
+ description: `Whether to enable reporting and fixing of line breaks between tag groups
549
+ as set by \`linesBetween\`. Defaults to \`true\`. Note that the very last tag
550
+ will not have spacing applied regardless. For adding line breaks there, you
551
+ may wish to use the \`endLines\` option of the \`tag-lines\` rule.`,
552
+ type: 'boolean',
553
+ },
554
+ tagExceptions: {
555
+ description: 'Allows specification by tag of a specific higher maximum number of lines. Keys are tags and values are the maximum number of lines allowed for such tags. Overrides `linesBetween`. Defaults to no special exceptions per tag.',
556
+ patternProperties: {
557
+ '.*': {
558
+ type: 'number',
559
+ },
560
+ },
561
+ type: 'object',
562
+ },
563
+ tagSequence: {
564
+ description: `An array of tag group objects indicating the preferred sequence for sorting tags.
565
+
566
+ Each item in the array should be an object with a \`tags\` property set to an array
567
+ of tag names.
568
+
569
+ Tag names earlier in the list will be arranged first. The relative position of
570
+ tags of the same name will not be changed.
571
+
572
+ Earlier groups will also be arranged before later groups, but with the added
573
+ feature that additional line breaks may be added between (or before or after)
574
+ such groups (depending on the setting of \`linesBetween\`).
575
+
576
+ Tag names not in the list will be grouped together at the end. The pseudo-tag
577
+ \`-other\` can be used to place them anywhere else if desired. The tags will be
578
+ placed in their order of appearance, or alphabetized if \`alphabetizeExtras\`
579
+ is enabled, see more below about that option.
580
+
581
+ Defaults to the array below (noting that it is just a single tag group with
582
+ no lines between groups by default).
583
+
584
+ Please note that this order is still experimental, so if you want to retain
585
+ a fixed order that doesn't change into the future, supply your own
586
+ \`tagSequence\`.
587
+
588
+ \`\`\`js
589
+ [{tags: [
590
+ // Brief descriptions
591
+ 'summary',
592
+ 'typeSummary',
593
+
594
+ // Module/file-level
595
+ 'module',
596
+ 'exports',
597
+ 'file',
598
+ 'fileoverview',
599
+ 'overview',
600
+ 'import',
601
+
602
+ // Identifying (name, type)
603
+ 'typedef',
604
+ 'interface',
605
+ 'record',
606
+ 'template',
607
+ 'name',
608
+ 'kind',
609
+ 'type',
610
+ 'alias',
611
+ 'external',
612
+ 'host',
613
+ 'callback',
614
+ 'func',
615
+ 'function',
616
+ 'method',
617
+ 'class',
618
+ 'constructor',
619
+
620
+ // Relationships
621
+ 'modifies',
622
+ 'mixes',
623
+ 'mixin',
624
+ 'mixinClass',
625
+ 'mixinFunction',
626
+ 'namespace',
627
+ 'borrows',
628
+ 'constructs',
629
+ 'lends',
630
+ 'implements',
631
+ 'requires',
632
+
633
+ // Long descriptions
634
+ 'desc',
635
+ 'description',
636
+ 'classdesc',
637
+ 'tutorial',
638
+ 'copyright',
639
+ 'license',
640
+
641
+ // Simple annotations
642
+ 'const',
643
+ 'constant',
644
+ 'final',
645
+ 'global',
646
+ 'readonly',
647
+ 'abstract',
648
+ 'virtual',
649
+ 'var',
650
+ 'member',
651
+ 'memberof',
652
+ 'memberof!',
653
+ 'inner',
654
+ 'instance',
655
+ 'inheritdoc',
656
+ 'inheritDoc',
657
+ 'override',
658
+ 'hideconstructor',
659
+
660
+ // Core function/object info
661
+ 'param',
662
+ 'arg',
663
+ 'argument',
664
+ 'prop',
665
+ 'property',
666
+ 'return',
667
+ 'returns',
668
+
669
+ // Important behavior details
670
+ 'async',
671
+ 'generator',
672
+ 'default',
673
+ 'defaultvalue',
674
+ 'enum',
675
+ 'augments',
676
+ 'extends',
677
+ 'throws',
678
+ 'exception',
679
+ 'yield',
680
+ 'yields',
681
+ 'event',
682
+ 'fires',
683
+ 'emits',
684
+ 'listens',
685
+ 'this',
686
+
687
+ // Access
688
+ 'static',
689
+ 'private',
690
+ 'protected',
691
+ 'public',
692
+ 'access',
693
+ 'package',
694
+
695
+ '-other',
696
+
697
+ // Supplementary descriptions
698
+ 'see',
699
+ 'example',
700
+
701
+ // METADATA
702
+
703
+ // Other Closure (undocumented) metadata
704
+ 'closurePrimitive',
705
+ 'customElement',
706
+ 'expose',
707
+ 'hidden',
708
+ 'idGenerator',
709
+ 'meaning',
710
+ 'ngInject',
711
+ 'owner',
712
+ 'wizaction',
713
+
714
+ // Other Closure (documented) metadata
715
+ 'define',
716
+ 'dict',
717
+ 'export',
718
+ 'externs',
719
+ 'implicitCast',
720
+ 'noalias',
721
+ 'nocollapse',
722
+ 'nocompile',
723
+ 'noinline',
724
+ 'nosideeffects',
725
+ 'polymer',
726
+ 'polymerBehavior',
727
+ 'preserve',
728
+ 'struct',
729
+ 'suppress',
730
+ 'unrestricted',
731
+
732
+ // @homer0/prettier-plugin-jsdoc metadata
733
+ 'category',
734
+
735
+ // Non-Closure metadata
736
+ 'ignore',
737
+ 'author',
738
+ 'version',
739
+ 'variation',
740
+ 'since',
741
+ 'deprecated',
742
+ 'todo',
743
+ ]}];
744
+ \`\`\``,
745
+ items: {
746
+ additionalProperties: false,
747
+ properties: {
748
+ tags: {
749
+ description: 'See description on `tagSequence`.',
750
+ items: {
751
+ type: 'string',
752
+ },
753
+ type: 'array',
754
+ },
755
+ },
756
+ type: 'object',
757
+ },
758
+ type: 'array',
759
+ },
760
+ },
761
+ type: 'object',
762
+ },
763
+ ],
764
+ type: 'suggestion',
765
+ },
766
+ });