@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,69 @@
1
+ import iterateJsdoc from '../iterateJsdoc.js';
2
+
3
+ const anyWhitespaceLines = /^\s*$/v;
4
+ const atLeastTwoLinesWhitespace = /^[ \t]*\n[ \t]*\n\s*$/v;
5
+
6
+ export default iterateJsdoc(({
7
+ jsdoc,
8
+ utils,
9
+ }) => {
10
+ const {
11
+ description,
12
+ descriptions,
13
+ lastDescriptionLine,
14
+ } = utils.getDescription();
15
+
16
+ const regex = jsdoc.tags.length ?
17
+ anyWhitespaceLines :
18
+ atLeastTwoLinesWhitespace;
19
+
20
+ if (descriptions.length && regex.test(description)) {
21
+ if (jsdoc.tags.length) {
22
+ utils.reportJSDoc(
23
+ 'There should be no blank lines in block descriptions followed by tags.',
24
+ {
25
+ line: lastDescriptionLine,
26
+ },
27
+ () => {
28
+ utils.setBlockDescription(() => {
29
+ // Remove all lines
30
+ return [];
31
+ });
32
+ },
33
+ );
34
+ } else {
35
+ utils.reportJSDoc(
36
+ 'There should be no extra blank lines in block descriptions not followed by tags.',
37
+ {
38
+ line: lastDescriptionLine,
39
+ },
40
+ () => {
41
+ utils.setBlockDescription((info, seedTokens) => {
42
+ return [
43
+ // Keep the starting line
44
+ {
45
+ number: 0,
46
+ source: '',
47
+ tokens: seedTokens({
48
+ ...info,
49
+ description: '',
50
+ }),
51
+ },
52
+ ];
53
+ });
54
+ },
55
+ );
56
+ }
57
+ }
58
+ }, {
59
+ iterateAllJsdocs: true,
60
+ meta: {
61
+ docs: {
62
+ description: 'If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the block description.',
63
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-block-descriptions.md#repos-sticky-header',
64
+ },
65
+ fixable: 'whitespace',
66
+ schema: [],
67
+ type: 'layout',
68
+ },
69
+ });
@@ -0,0 +1,55 @@
1
+ import iterateJsdoc from '../iterateJsdoc.js';
2
+
3
+ export default iterateJsdoc(({
4
+ context,
5
+ jsdoc,
6
+ utils,
7
+ }) => {
8
+ if (jsdoc.tags.length) {
9
+ return;
10
+ }
11
+
12
+ const {
13
+ description,
14
+ lastDescriptionLine,
15
+ } = utils.getDescription();
16
+ if (description.trim()) {
17
+ return;
18
+ }
19
+
20
+ const {
21
+ enableFixer,
22
+ } = context.options[0] || {};
23
+
24
+ utils.reportJSDoc(
25
+ 'No empty blocks',
26
+ {
27
+ line: lastDescriptionLine,
28
+ },
29
+ enableFixer ? () => {
30
+ jsdoc.source.splice(0);
31
+ } : null,
32
+ );
33
+ }, {
34
+ iterateAllJsdocs: true,
35
+ meta: {
36
+ docs: {
37
+ description: 'Removes empty blocks with nothing but possibly line breaks',
38
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-blocks.md#repos-sticky-header',
39
+ },
40
+ fixable: 'code',
41
+ schema: [
42
+ {
43
+ additionalProperties: false,
44
+ properties: {
45
+ enableFixer: {
46
+ description: 'Whether or not to auto-remove the blank block. Defaults to `false`.',
47
+ type: 'boolean',
48
+ },
49
+ },
50
+ type: 'object',
51
+ },
52
+ ],
53
+ type: 'suggestion',
54
+ },
55
+ });
@@ -0,0 +1,104 @@
1
+ import iterateJsdoc from '../iterateJsdoc.js';
2
+
3
+ export default iterateJsdoc(({
4
+ context,
5
+ utils,
6
+ }) => {
7
+ const {
8
+ noOptionalParamNames,
9
+ } = context.options[0] || {};
10
+ const paramTags = utils.getPresentTags([
11
+ 'param', 'arg', 'argument',
12
+ ]);
13
+ for (const tag of paramTags) {
14
+ if (noOptionalParamNames && tag.optional) {
15
+ utils.reportJSDoc(`Optional param names are not permitted on @${tag.tag}.`, tag, () => {
16
+ utils.changeTag(tag, {
17
+ name: tag.name.replace(/([^=]*)(=.+)?/v, '$1'),
18
+ });
19
+ });
20
+ } else if (tag.default) {
21
+ utils.reportJSDoc(`Defaults are not permitted on @${tag.tag}.`, tag, () => {
22
+ utils.changeTag(tag, {
23
+ name: tag.name.replace(/([^=]*)(=.+)?/v, '[$1]'),
24
+ });
25
+ });
26
+ }
27
+ }
28
+
29
+ const defaultTags = utils.getPresentTags([
30
+ 'default', 'defaultvalue',
31
+ ]);
32
+ for (const tag of defaultTags) {
33
+ if (tag.description.trim()) {
34
+ utils.reportJSDoc(`Default values are not permitted on @${tag.tag}.`, tag, () => {
35
+ utils.changeTag(tag, {
36
+ description: '',
37
+ postTag: '',
38
+ });
39
+ });
40
+ }
41
+ }
42
+ }, {
43
+ contextDefaults: true,
44
+ meta: {
45
+ docs: {
46
+ description: 'This rule reports defaults being used on the relevant portion of `@param` or `@default`.',
47
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-defaults.md#repos-sticky-header',
48
+ },
49
+ fixable: 'code',
50
+ schema: [
51
+ {
52
+ additionalProperties: false,
53
+ properties: {
54
+ contexts: {
55
+ description: `Set this to an array of strings representing the AST context (or an object with
56
+ optional \`context\` and \`comment\` properties) where you wish the rule to be applied.
57
+
58
+ \`context\` defaults to \`any\` and \`comment\` defaults to no specific comment context.
59
+
60
+ Overrides the default contexts (\`ArrowFunctionExpression\`, \`FunctionDeclaration\`,
61
+ \`FunctionExpression\`). Set to \`"any"\` if you want
62
+ the rule to apply to any JSDoc block throughout your files (as is necessary
63
+ for finding function blocks not attached to a function declaration or
64
+ expression, i.e., \`@callback\` or \`@function\` (or its aliases \`@func\` or
65
+ \`@method\`) (including those associated with an \`@interface\`).
66
+
67
+ See the ["AST and Selectors"](../#advanced-ast-and-selectors)
68
+ section of our Advanced docs for more on the expected format.`,
69
+ items: {
70
+ anyOf: [
71
+ {
72
+ type: 'string',
73
+ },
74
+ {
75
+ additionalProperties: false,
76
+ properties: {
77
+ comment: {
78
+ type: 'string',
79
+ },
80
+ context: {
81
+ type: 'string',
82
+ },
83
+ },
84
+ type: 'object',
85
+ },
86
+ ],
87
+ },
88
+ type: 'array',
89
+ },
90
+ noOptionalParamNames: {
91
+ description: `Set this to \`true\` to report the presence of optional parameters. May be
92
+ used if the project is insisting on optionality being indicated by
93
+ the presence of ES6 default parameters (bearing in mind that such
94
+ "defaults" are only applied when the supplied value is missing or
95
+ \`undefined\` but not for \`null\` or other "falsey" values).`,
96
+ type: 'boolean',
97
+ },
98
+ },
99
+ type: 'object',
100
+ },
101
+ ],
102
+ type: 'suggestion',
103
+ },
104
+ });
@@ -0,0 +1,215 @@
1
+ import iterateJsdoc from '../iterateJsdoc.js';
2
+
3
+ /**
4
+ * @typedef {{
5
+ * comment: string,
6
+ * context: string,
7
+ * message: string,
8
+ * minimum: import('../iterateJsdoc.js').Integer
9
+ * }} ContextObject
10
+ */
11
+
12
+ /**
13
+ * @typedef {string|ContextObject} Context
14
+ */
15
+
16
+ /**
17
+ * @param {import('../iterateJsdoc.js').StateObject} state
18
+ * @returns {void}
19
+ */
20
+ const setDefaults = (state) => {
21
+ if (!state.selectorMap) {
22
+ state.selectorMap = {};
23
+ }
24
+ };
25
+
26
+ /**
27
+ * @param {import('../iterateJsdoc.js').StateObject} state
28
+ * @param {string} selector
29
+ * @param {string} comment
30
+ * @returns {void}
31
+ */
32
+ const incrementSelector = (state, selector, comment) => {
33
+ if (!state.selectorMap[selector]) {
34
+ state.selectorMap[selector] = {};
35
+ }
36
+
37
+ if (!state.selectorMap[selector][comment]) {
38
+ state.selectorMap[selector][comment] = 0;
39
+ }
40
+
41
+ state.selectorMap[selector][comment]++;
42
+ };
43
+
44
+ export default iterateJsdoc(({
45
+ context,
46
+ info: {
47
+ comment,
48
+ },
49
+ state,
50
+ utils,
51
+ }) => {
52
+ if (!context.options[0]) {
53
+ // Handle error later
54
+ return;
55
+ }
56
+
57
+ /**
58
+ * @type {Context[]}
59
+ */
60
+ const contexts = context.options[0].contexts;
61
+
62
+ const {
63
+ contextStr,
64
+ } = utils.findContext(contexts, comment);
65
+
66
+ setDefaults(state);
67
+
68
+ incrementSelector(state, contextStr, String(comment));
69
+ }, {
70
+ contextSelected: true,
71
+ exit ({
72
+ context,
73
+ settings,
74
+ state,
75
+ }) {
76
+ if (!context.options.length && !settings.contexts) {
77
+ context.report({
78
+ loc: {
79
+ end: {
80
+ column: 1,
81
+ line: 1,
82
+ },
83
+ start: {
84
+ column: 1,
85
+ line: 1,
86
+ },
87
+ },
88
+ message: 'Rule `no-missing-syntax` is missing a `contexts` option.',
89
+ });
90
+
91
+ return;
92
+ }
93
+
94
+ setDefaults(state);
95
+
96
+ /**
97
+ * @type {Context[]}
98
+ */
99
+ const contexts = (context.options[0] ?? {}).contexts ?? settings?.contexts;
100
+
101
+ // Report when MISSING
102
+ contexts.some((cntxt) => {
103
+ const contextStr = typeof cntxt === 'object' ? cntxt.context ?? 'any' : cntxt;
104
+ const comment = typeof cntxt === 'string' ? '' : cntxt?.comment ?? '';
105
+
106
+ const contextKey = contextStr === 'any' ? 'undefined' : contextStr;
107
+
108
+ if (
109
+ (!state.selectorMap[contextKey] ||
110
+ !state.selectorMap[contextKey][comment] ||
111
+ state.selectorMap[contextKey][comment] < (
112
+ // @ts-expect-error comment would need an object, not string
113
+ cntxt?.minimum ?? 1
114
+ )) &&
115
+ (contextStr !== 'any' || Object.values(state.selectorMap).every((cmmnt) => {
116
+ return !cmmnt[comment] || cmmnt[comment] < (
117
+ // @ts-expect-error comment would need an object, not string
118
+ cntxt?.minimum ?? 1
119
+ );
120
+ }))
121
+ ) {
122
+ const message = typeof cntxt === 'string' ?
123
+ 'Syntax is required: {{context}}' :
124
+ cntxt?.message ?? ('Syntax is required: {{context}}' +
125
+ (comment ? ' with {{comment}}' : ''));
126
+ context.report({
127
+ data: {
128
+ comment,
129
+ context: contextStr,
130
+ },
131
+ loc: {
132
+ end: {
133
+ column: 1,
134
+ line: 1,
135
+ },
136
+ start: {
137
+ column: 1,
138
+ line: 1,
139
+ },
140
+ },
141
+ message,
142
+ });
143
+
144
+ return true;
145
+ }
146
+
147
+ return false;
148
+ });
149
+ },
150
+ matchContext: true,
151
+ meta: {
152
+ docs: {
153
+ description: 'Reports when certain comment structures are always expected.',
154
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header',
155
+ },
156
+ schema: [
157
+ {
158
+ additionalProperties: false,
159
+ properties: {
160
+ contexts: {
161
+ description: `Set this to an array of strings representing the AST context (or an object with
162
+ optional \`context\` and \`comment\` properties) where you wish the rule to be applied.
163
+
164
+ \`context\` defaults to \`any\` and \`comment\` defaults to no specific comment context.
165
+
166
+ Use the \`minimum\` property (defaults to 1) to indicate how many are required
167
+ for the rule to be reported.
168
+
169
+ Use the \`message\` property to indicate the specific error to be shown when an
170
+ error is reported for that context being found missing. You may use
171
+ \`{{context}}\` and \`{{comment}}\` with such messages. Defaults to
172
+ \`"Syntax is required: {{context}}"\`, or with a comment, to
173
+ \`"Syntax is required: {{context}} with {{comment}}"\`.
174
+
175
+ Set to \`"any"\` if you want the rule to apply to any JSDoc block throughout
176
+ your files (as is necessary for finding function blocks not attached to a
177
+ function declaration or expression, i.e., \`@callback\` or \`@function\` (or its
178
+ aliases \`@func\` or \`@method\`) (including those associated with an \`@interface\`).
179
+
180
+ See the ["AST and Selectors"](../#advanced-ast-and-selectors)
181
+ section of our Advanced docs for more on the expected format.`,
182
+ items: {
183
+ anyOf: [
184
+ {
185
+ type: 'string',
186
+ },
187
+ {
188
+ additionalProperties: false,
189
+ properties: {
190
+ comment: {
191
+ type: 'string',
192
+ },
193
+ context: {
194
+ type: 'string',
195
+ },
196
+ message: {
197
+ type: 'string',
198
+ },
199
+ minimum: {
200
+ type: 'integer',
201
+ },
202
+ },
203
+ type: 'object',
204
+ },
205
+ ],
206
+ },
207
+ type: 'array',
208
+ },
209
+ },
210
+ type: 'object',
211
+ },
212
+ ],
213
+ type: 'suggestion',
214
+ },
215
+ });
@@ -0,0 +1,162 @@
1
+ import iterateJsdoc from '../iterateJsdoc.js';
2
+
3
+ const middleAsterisksBlockWS = /^([\t ]|\*(?!\*))+/v;
4
+ const middleAsterisksNoBlockWS = /^\*+/v;
5
+
6
+ const endAsterisksSingleLineBlockWS = /\*((?:\*|(?: |\t))*)\*$/v;
7
+ const endAsterisksMultipleLineBlockWS = /((?:\*|(?: |\t))*)\*$/v;
8
+
9
+ const endAsterisksSingleLineNoBlockWS = /\*(\**)\*$/v;
10
+ const endAsterisksMultipleLineNoBlockWS = /(\**)\*$/v;
11
+
12
+ export default iterateJsdoc(({
13
+ context,
14
+ jsdoc,
15
+ utils,
16
+ }) => {
17
+ const {
18
+ allowWhitespace = false,
19
+ preventAtEnd = true,
20
+ preventAtMiddleLines = true,
21
+ } = context.options[0] || {};
22
+
23
+ const middleAsterisks = allowWhitespace ? middleAsterisksNoBlockWS : middleAsterisksBlockWS;
24
+
25
+ jsdoc.source.some(({
26
+ number,
27
+ tokens,
28
+ }) => {
29
+ const {
30
+ delimiter,
31
+ description,
32
+ end,
33
+ name,
34
+ postDelimiter,
35
+ tag,
36
+ type,
37
+ } = tokens;
38
+
39
+ if (
40
+ preventAtMiddleLines &&
41
+ !end && !tag && !type && !name &&
42
+ (
43
+ !allowWhitespace && middleAsterisks.test(description) ||
44
+ allowWhitespace && middleAsterisks.test(postDelimiter + description)
45
+ )
46
+ ) {
47
+ // console.log('description', JSON.stringify(description));
48
+ const fix = () => {
49
+ tokens.description = description.replace(middleAsterisks, '');
50
+ };
51
+
52
+ utils.reportJSDoc(
53
+ 'Should be no multiple asterisks on middle lines.',
54
+ {
55
+ line: number,
56
+ },
57
+ fix,
58
+ true,
59
+ );
60
+
61
+ return true;
62
+ }
63
+
64
+ if (!preventAtEnd || !end) {
65
+ return false;
66
+ }
67
+
68
+ const isSingleLineBlock = delimiter === '/**';
69
+ const delim = isSingleLineBlock ? '*' : delimiter;
70
+ const endAsterisks = allowWhitespace ?
71
+ (isSingleLineBlock ? endAsterisksSingleLineNoBlockWS : endAsterisksMultipleLineNoBlockWS) :
72
+ (isSingleLineBlock ? endAsterisksSingleLineBlockWS : endAsterisksMultipleLineBlockWS);
73
+
74
+ const endingAsterisksAndSpaces = (
75
+ allowWhitespace ? postDelimiter + description + delim : description + delim
76
+ ).match(
77
+ endAsterisks,
78
+ );
79
+
80
+ if (
81
+ !endingAsterisksAndSpaces ||
82
+ !isSingleLineBlock && endingAsterisksAndSpaces[1] && !endingAsterisksAndSpaces[1].trim()
83
+ ) {
84
+ return false;
85
+ }
86
+
87
+ const endFix = () => {
88
+ if (!isSingleLineBlock) {
89
+ tokens.delimiter = '';
90
+ }
91
+
92
+ tokens.description = (description + delim).replace(endAsterisks, '');
93
+ };
94
+
95
+ utils.reportJSDoc(
96
+ 'Should be no multiple asterisks on end lines.',
97
+ {
98
+ line: number,
99
+ },
100
+ endFix,
101
+ true,
102
+ );
103
+
104
+ return true;
105
+ });
106
+ }, {
107
+ iterateAllJsdocs: true,
108
+ meta: {
109
+ docs: {
110
+ description: 'Prevents use of multiple asterisks at the beginning of lines.',
111
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header',
112
+ },
113
+ fixable: 'code',
114
+ schema: [
115
+ {
116
+ additionalProperties: false,
117
+ properties: {
118
+ allowWhitespace: {
119
+ description: `Set to \`true\` if you wish to allow asterisks after a space (as with Markdown):
120
+
121
+ \`\`\`js
122
+ /**
123
+ * *bold* text
124
+ */
125
+ \`\`\`
126
+
127
+ Defaults to \`false\`.`,
128
+ type: 'boolean',
129
+ },
130
+ preventAtEnd: {
131
+ description: `Prevent the likes of this:
132
+
133
+ \`\`\`js
134
+ /**
135
+ *
136
+ *
137
+ **/
138
+ \`\`\`
139
+
140
+ Defaults to \`true\`.`,
141
+ type: 'boolean',
142
+ },
143
+ preventAtMiddleLines: {
144
+ description: `Prevent the likes of this:
145
+
146
+ \`\`\`js
147
+ /**
148
+ *
149
+ **
150
+ */
151
+ \`\`\`
152
+
153
+ Defaults to \`true\`.`,
154
+ type: 'boolean',
155
+ },
156
+ },
157
+ type: 'object',
158
+ },
159
+ ],
160
+ type: 'suggestion',
161
+ },
162
+ });
@@ -0,0 +1,72 @@
1
+ import {
2
+ buildForbidRuleDefinition,
3
+ } from '../buildForbidRuleDefinition.js';
4
+
5
+ export default buildForbidRuleDefinition({
6
+ getContexts (context, report) {
7
+ if (!context.options.length) {
8
+ report('Rule `no-restricted-syntax` is missing a `contexts` option.');
9
+ return false;
10
+ }
11
+
12
+ const {
13
+ contexts,
14
+ } = context.options[0];
15
+
16
+ return contexts;
17
+ },
18
+ schema: [
19
+ {
20
+ additionalProperties: false,
21
+ properties: {
22
+ contexts: {
23
+ description: `Set this to an array of strings representing the AST context (or an object with
24
+ \`context\` and \`comment\` properties) where you wish the rule to be applied.
25
+
26
+ \`context\` defaults to \`any\` and \`comment\` defaults to no specific comment context.
27
+
28
+ Use the \`message\` property to indicate the specific error to be shown when an
29
+ error is reported for that context being found. Defaults to
30
+ \`"Syntax is restricted: {{context}}"\`, or with a comment, to
31
+ \`"Syntax is restricted: {{context}} with {{comment}}"\`.
32
+
33
+ Set to \`"any"\` if you want the rule to apply to any JSDoc block throughout
34
+ your files (as is necessary for finding function blocks not attached to a
35
+ function declaration or expression, i.e., \`@callback\` or \`@function\` (or its
36
+ aliases \`@func\` or \`@method\`) (including those associated with an \`@interface\`).
37
+
38
+ See the ["AST and Selectors"](../#advanced-ast-and-selectors)
39
+ section of our Advanced docs for more on the expected format.`,
40
+ items: {
41
+ anyOf: [
42
+ {
43
+ type: 'string',
44
+ },
45
+ {
46
+ additionalProperties: false,
47
+ properties: {
48
+ comment: {
49
+ type: 'string',
50
+ },
51
+ context: {
52
+ type: 'string',
53
+ },
54
+ message: {
55
+ type: 'string',
56
+ },
57
+ },
58
+ type: 'object',
59
+ },
60
+ ],
61
+ },
62
+ type: 'array',
63
+ },
64
+ },
65
+ required: [
66
+ 'contexts',
67
+ ],
68
+ type: 'object',
69
+ },
70
+ ],
71
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-restricted-syntax.md#repos-sticky-header',
72
+ });