@depup/eslint-plugin-jsdoc 63.3.2-depup.1 → 64.0.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 (272) hide show
  1. package/README.md +3 -11
  2. package/changes.json +3 -16
  3. package/dist/index.d.ts +7 -4
  4. package/package.json +29 -67
  5. package/src/index.js +7 -8
  6. package/dist/WarnSettings.cjs +0 -38
  7. package/dist/WarnSettings.cjs.map +0 -1
  8. package/dist/alignTransform.cjs +0 -402
  9. package/dist/alignTransform.cjs.map +0 -1
  10. package/dist/buildForbidRuleDefinition.cjs +0 -101
  11. package/dist/buildForbidRuleDefinition.cjs.map +0 -1
  12. package/dist/buildRejectOrPreferRuleDefinition.cjs +0 -352
  13. package/dist/buildRejectOrPreferRuleDefinition.cjs.map +0 -1
  14. package/dist/cjs/WarnSettings.d.ts +0 -16
  15. package/dist/cjs/alignTransform.d.ts +0 -33
  16. package/dist/cjs/buildForbidRuleDefinition.d.ts +0 -14
  17. package/dist/cjs/buildRejectOrPreferRuleDefinition.d.ts +0 -8
  18. package/dist/cjs/defaultTagOrder.d.ts +0 -4
  19. package/dist/cjs/exportParser.d.ts +0 -40
  20. package/dist/cjs/getDefaultTagStructureForMode.d.ts +0 -10
  21. package/dist/cjs/getJsdocProcessorPlugin.d.cts +0 -5
  22. package/dist/cjs/getJsdocProcessorPlugin.d.ts +0 -66
  23. package/dist/cjs/index-cjs.d.ts +0 -23
  24. package/dist/cjs/index.cjs.d.cts +0 -2
  25. package/dist/cjs/iterateJsdoc.d.cts +0 -7
  26. package/dist/cjs/iterateJsdoc.d.ts +0 -495
  27. package/dist/cjs/jsdocUtils.d.ts +0 -500
  28. package/dist/cjs/rules/checkAccess.d.ts +0 -2
  29. package/dist/cjs/rules/checkAlignment.d.ts +0 -2
  30. package/dist/cjs/rules/checkExamples.d.ts +0 -3
  31. package/dist/cjs/rules/checkIndentation.d.ts +0 -2
  32. package/dist/cjs/rules/checkLineAlignment.d.ts +0 -9
  33. package/dist/cjs/rules/checkParamNames.d.ts +0 -2
  34. package/dist/cjs/rules/checkPropertyNames.d.ts +0 -2
  35. package/dist/cjs/rules/checkSyntax.d.ts +0 -2
  36. package/dist/cjs/rules/checkTagNames.d.ts +0 -2
  37. package/dist/cjs/rules/checkTemplateNames.d.ts +0 -2
  38. package/dist/cjs/rules/checkTypes.d.ts +0 -7
  39. package/dist/cjs/rules/checkValues.d.ts +0 -2
  40. package/dist/cjs/rules/convertToJsdocComments.d.ts +0 -266
  41. package/dist/cjs/rules/emptyTags.d.ts +0 -2
  42. package/dist/cjs/rules/escapeInlineTags.d.ts +0 -2
  43. package/dist/cjs/rules/implementsOnClasses.d.ts +0 -2
  44. package/dist/cjs/rules/importsAsDependencies.d.ts +0 -2
  45. package/dist/cjs/rules/informativeDocs.d.ts +0 -2
  46. package/dist/cjs/rules/linesBeforeBlock.d.ts +0 -2
  47. package/dist/cjs/rules/matchDescription.d.ts +0 -2
  48. package/dist/cjs/rules/matchName.d.ts +0 -2
  49. package/dist/cjs/rules/multilineBlocks.d.ts +0 -2
  50. package/dist/cjs/rules/noBadBlocks.d.ts +0 -2
  51. package/dist/cjs/rules/noBlankBlockDescriptions.d.ts +0 -2
  52. package/dist/cjs/rules/noBlankBlocks.d.ts +0 -2
  53. package/dist/cjs/rules/noDefaults.d.ts +0 -2
  54. package/dist/cjs/rules/noMissingSyntax.d.ts +0 -9
  55. package/dist/cjs/rules/noMultiAsterisks.d.ts +0 -2
  56. package/dist/cjs/rules/noRestrictedSyntax.d.ts +0 -2
  57. package/dist/cjs/rules/noTypes.d.ts +0 -2
  58. package/dist/cjs/rules/noUndefinedTypes.d.ts +0 -2
  59. package/dist/cjs/rules/normalizeSeeLinks.d.ts +0 -2
  60. package/dist/cjs/rules/preferImportTag.d.ts +0 -2
  61. package/dist/cjs/rules/requireAsteriskPrefix.d.ts +0 -2
  62. package/dist/cjs/rules/requireDescription.d.ts +0 -2
  63. package/dist/cjs/rules/requireDescriptionCompleteSentence.d.ts +0 -2
  64. package/dist/cjs/rules/requireExample.d.ts +0 -2
  65. package/dist/cjs/rules/requireFileOverview.d.ts +0 -2
  66. package/dist/cjs/rules/requireHyphenBeforeParamDescription.d.ts +0 -2
  67. package/dist/cjs/rules/requireJsdoc.d.ts +0 -24
  68. package/dist/cjs/rules/requireParam.d.ts +0 -3
  69. package/dist/cjs/rules/requireParamDescription.d.ts +0 -2
  70. package/dist/cjs/rules/requireParamName.d.ts +0 -2
  71. package/dist/cjs/rules/requireParamType.d.ts +0 -2
  72. package/dist/cjs/rules/requireProperty.d.ts +0 -2
  73. package/dist/cjs/rules/requirePropertyDescription.d.ts +0 -2
  74. package/dist/cjs/rules/requirePropertyName.d.ts +0 -2
  75. package/dist/cjs/rules/requirePropertyType.d.ts +0 -2
  76. package/dist/cjs/rules/requireRejects.d.ts +0 -2
  77. package/dist/cjs/rules/requireReturns.d.ts +0 -2
  78. package/dist/cjs/rules/requireReturnsCheck.d.ts +0 -2
  79. package/dist/cjs/rules/requireReturnsDescription.d.ts +0 -2
  80. package/dist/cjs/rules/requireReturnsType.d.ts +0 -2
  81. package/dist/cjs/rules/requireTags.d.ts +0 -2
  82. package/dist/cjs/rules/requireTemplate.d.ts +0 -2
  83. package/dist/cjs/rules/requireThrows.d.ts +0 -2
  84. package/dist/cjs/rules/requireYields.d.ts +0 -2
  85. package/dist/cjs/rules/requireYieldsCheck.d.ts +0 -2
  86. package/dist/cjs/rules/sortTags.d.ts +0 -2
  87. package/dist/cjs/rules/tagLines.d.ts +0 -2
  88. package/dist/cjs/rules/textEscaping.d.ts +0 -2
  89. package/dist/cjs/rules/tsMethodSignatureStyle.d.ts +0 -2
  90. package/dist/cjs/rules/tsNoEmptyObjectType.d.ts +0 -2
  91. package/dist/cjs/rules/tsNoUnnecessaryTemplateExpression.d.ts +0 -2
  92. package/dist/cjs/rules/tsPreferFunctionType.d.ts +0 -2
  93. package/dist/cjs/rules/typeFormatting.d.ts +0 -2
  94. package/dist/cjs/rules/validTypes.d.ts +0 -2
  95. package/dist/cjs/tagNames.d.ts +0 -15
  96. package/dist/cjs/utils/hasReturnValue.d.ts +0 -19
  97. package/dist/defaultTagOrder.cjs +0 -46
  98. package/dist/defaultTagOrder.cjs.map +0 -1
  99. package/dist/exportParser.cjs +0 -732
  100. package/dist/exportParser.cjs.map +0 -1
  101. package/dist/generateDocs.cjs +0 -342
  102. package/dist/generateDocs.cjs.map +0 -1
  103. package/dist/generateOptions.cjs +0 -62
  104. package/dist/generateOptions.cjs.map +0 -1
  105. package/dist/generateRule.cjs +0 -248
  106. package/dist/generateRule.cjs.map +0 -1
  107. package/dist/generateRuleTypes.cjs +0 -24
  108. package/dist/generateRuleTypes.cjs.map +0 -1
  109. package/dist/getDefaultTagStructureForMode.cjs +0 -289
  110. package/dist/getDefaultTagStructureForMode.cjs.map +0 -1
  111. package/dist/getJsdocProcessorPlugin.cjs +0 -587
  112. package/dist/getJsdocProcessorPlugin.cjs.map +0 -1
  113. package/dist/getJsdocProcessorPlugin.cts +0 -5
  114. package/dist/index-cjs.cjs +0 -598
  115. package/dist/index-cjs.cjs.map +0 -1
  116. package/dist/index-cjs.d.ts +0 -24
  117. package/dist/index-esm.cjs +0 -162
  118. package/dist/index-esm.cjs.map +0 -1
  119. package/dist/index-esm.d.ts +0 -72
  120. package/dist/index.cjs +0 -746
  121. package/dist/index.cjs.cts +0 -3
  122. package/dist/index.cjs.map +0 -1
  123. package/dist/iterateJsdoc.cjs +0 -2150
  124. package/dist/iterateJsdoc.cjs.map +0 -1
  125. package/dist/iterateJsdoc.cts +0 -7
  126. package/dist/jsdocUtils.cjs +0 -1786
  127. package/dist/jsdocUtils.cjs.map +0 -1
  128. package/dist/rules/checkAccess.cjs +0 -40
  129. package/dist/rules/checkAccess.cjs.map +0 -1
  130. package/dist/rules/checkAlignment.cjs +0 -78
  131. package/dist/rules/checkAlignment.cjs.map +0 -1
  132. package/dist/rules/checkExamples.cjs +0 -521
  133. package/dist/rules/checkExamples.cjs.map +0 -1
  134. package/dist/rules/checkIndentation.cjs +0 -170
  135. package/dist/rules/checkIndentation.cjs.map +0 -1
  136. package/dist/rules/checkLineAlignment.cjs +0 -398
  137. package/dist/rules/checkLineAlignment.cjs.map +0 -1
  138. package/dist/rules/checkParamNames.cjs +0 -407
  139. package/dist/rules/checkParamNames.cjs.map +0 -1
  140. package/dist/rules/checkPropertyNames.cjs +0 -135
  141. package/dist/rules/checkPropertyNames.cjs.map +0 -1
  142. package/dist/rules/checkSyntax.cjs +0 -38
  143. package/dist/rules/checkSyntax.cjs.map +0 -1
  144. package/dist/rules/checkTagNames.cjs +0 -312
  145. package/dist/rules/checkTagNames.cjs.map +0 -1
  146. package/dist/rules/checkTemplateNames.cjs +0 -192
  147. package/dist/rules/checkTemplateNames.cjs.map +0 -1
  148. package/dist/rules/checkTypes.cjs +0 -111
  149. package/dist/rules/checkTypes.cjs.map +0 -1
  150. package/dist/rules/checkValues.cjs +0 -166
  151. package/dist/rules/checkValues.cjs.map +0 -1
  152. package/dist/rules/convertToJsdocComments.cjs +0 -356
  153. package/dist/rules/convertToJsdocComments.cjs.map +0 -1
  154. package/dist/rules/emptyTags.cjs +0 -98
  155. package/dist/rules/emptyTags.cjs.map +0 -1
  156. package/dist/rules/escapeInlineTags.cjs +0 -234
  157. package/dist/rules/escapeInlineTags.cjs.map +0 -1
  158. package/dist/rules/implementsOnClasses.cjs +0 -74
  159. package/dist/rules/implementsOnClasses.cjs.map +0 -1
  160. package/dist/rules/importsAsDependencies.cjs +0 -104
  161. package/dist/rules/importsAsDependencies.cjs.map +0 -1
  162. package/dist/rules/informativeDocs.cjs +0 -187
  163. package/dist/rules/informativeDocs.cjs.map +0 -1
  164. package/dist/rules/linesBeforeBlock.cjs +0 -120
  165. package/dist/rules/linesBeforeBlock.cjs.map +0 -1
  166. package/dist/rules/matchDescription.cjs +0 -356
  167. package/dist/rules/matchDescription.cjs.map +0 -1
  168. package/dist/rules/matchName.cjs +0 -160
  169. package/dist/rules/matchName.cjs.map +0 -1
  170. package/dist/rules/multilineBlocks.cjs +0 -431
  171. package/dist/rules/multilineBlocks.cjs.map +0 -1
  172. package/dist/rules/noBadBlocks.cjs +0 -100
  173. package/dist/rules/noBadBlocks.cjs.map +0 -1
  174. package/dist/rules/noBlankBlockDescriptions.cjs +0 -63
  175. package/dist/rules/noBlankBlockDescriptions.cjs.map +0 -1
  176. package/dist/rules/noBlankBlocks.cjs +0 -54
  177. package/dist/rules/noBlankBlocks.cjs.map +0 -1
  178. package/dist/rules/noDefaults.cjs +0 -102
  179. package/dist/rules/noDefaults.cjs.map +0 -1
  180. package/dist/rules/noMissingSyntax.cjs +0 -196
  181. package/dist/rules/noMissingSyntax.cjs.map +0 -1
  182. package/dist/rules/noMultiAsterisks.cjs +0 -126
  183. package/dist/rules/noMultiAsterisks.cjs.map +0 -1
  184. package/dist/rules/noRestrictedSyntax.cjs +0 -68
  185. package/dist/rules/noRestrictedSyntax.cjs.map +0 -1
  186. package/dist/rules/noTypes.cjs +0 -101
  187. package/dist/rules/noTypes.cjs.map +0 -1
  188. package/dist/rules/noUndefinedTypes.cjs +0 -616
  189. package/dist/rules/noUndefinedTypes.cjs.map +0 -1
  190. package/dist/rules/normalizeSeeLinks.cjs +0 -271
  191. package/dist/rules/normalizeSeeLinks.cjs.map +0 -1
  192. package/dist/rules/preferImportTag.cjs +0 -362
  193. package/dist/rules/preferImportTag.cjs.map +0 -1
  194. package/dist/rules/requireAsteriskPrefix.cjs +0 -190
  195. package/dist/rules/requireAsteriskPrefix.cjs.map +0 -1
  196. package/dist/rules/requireDescription.cjs +0 -164
  197. package/dist/rules/requireDescription.cjs.map +0 -1
  198. package/dist/rules/requireDescriptionCompleteSentence.cjs +0 -321
  199. package/dist/rules/requireDescriptionCompleteSentence.cjs.map +0 -1
  200. package/dist/rules/requireExample.cjs +0 -136
  201. package/dist/rules/requireExample.cjs.map +0 -1
  202. package/dist/rules/requireFileOverview.cjs +0 -194
  203. package/dist/rules/requireFileOverview.cjs.map +0 -1
  204. package/dist/rules/requireHyphenBeforeParamDescription.cjs +0 -166
  205. package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +0 -1
  206. package/dist/rules/requireJsdoc.cjs +0 -721
  207. package/dist/rules/requireJsdoc.cjs.map +0 -1
  208. package/dist/rules/requireParam.cjs +0 -772
  209. package/dist/rules/requireParam.cjs.map +0 -1
  210. package/dist/rules/requireParamDescription.cjs +0 -105
  211. package/dist/rules/requireParamDescription.cjs.map +0 -1
  212. package/dist/rules/requireParamName.cjs +0 -68
  213. package/dist/rules/requireParamName.cjs.map +0 -1
  214. package/dist/rules/requireParamType.cjs +0 -104
  215. package/dist/rules/requireParamType.cjs.map +0 -1
  216. package/dist/rules/requireProperty.cjs +0 -63
  217. package/dist/rules/requireProperty.cjs.map +0 -1
  218. package/dist/rules/requirePropertyDescription.cjs +0 -29
  219. package/dist/rules/requirePropertyDescription.cjs.map +0 -1
  220. package/dist/rules/requirePropertyName.cjs +0 -29
  221. package/dist/rules/requirePropertyName.cjs.map +0 -1
  222. package/dist/rules/requirePropertyType.cjs +0 -29
  223. package/dist/rules/requirePropertyType.cjs.map +0 -1
  224. package/dist/rules/requireRejects.cjs +0 -226
  225. package/dist/rules/requireRejects.cjs.map +0 -1
  226. package/dist/rules/requireReturns.cjs +0 -262
  227. package/dist/rules/requireReturns.cjs.map +0 -1
  228. package/dist/rules/requireReturnsCheck.cjs +0 -225
  229. package/dist/rules/requireReturnsCheck.cjs.map +0 -1
  230. package/dist/rules/requireReturnsDescription.cjs +0 -72
  231. package/dist/rules/requireReturnsDescription.cjs.map +0 -1
  232. package/dist/rules/requireReturnsType.cjs +0 -68
  233. package/dist/rules/requireReturnsType.cjs.map +0 -1
  234. package/dist/rules/requireTags.cjs +0 -74
  235. package/dist/rules/requireTags.cjs.map +0 -1
  236. package/dist/rules/requireTemplate.cjs +0 -220
  237. package/dist/rules/requireTemplate.cjs.map +0 -1
  238. package/dist/rules/requireThrows.cjs +0 -118
  239. package/dist/rules/requireThrows.cjs.map +0 -1
  240. package/dist/rules/requireYields.cjs +0 -224
  241. package/dist/rules/requireYields.cjs.map +0 -1
  242. package/dist/rules/requireYieldsCheck.cjs +0 -179
  243. package/dist/rules/requireYieldsCheck.cjs.map +0 -1
  244. package/dist/rules/sortTags.cjs +0 -656
  245. package/dist/rules/sortTags.cjs.map +0 -1
  246. package/dist/rules/tagLines.cjs +0 -374
  247. package/dist/rules/tagLines.cjs.map +0 -1
  248. package/dist/rules/textEscaping.cjs +0 -141
  249. package/dist/rules/textEscaping.cjs.map +0 -1
  250. package/dist/rules/tsMethodSignatureStyle.cjs +0 -240
  251. package/dist/rules/tsMethodSignatureStyle.cjs.map +0 -1
  252. package/dist/rules/tsNoEmptyObjectType.cjs +0 -62
  253. package/dist/rules/tsNoEmptyObjectType.cjs.map +0 -1
  254. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +0 -104
  255. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +0 -1
  256. package/dist/rules/tsPreferFunctionType.cjs +0 -110
  257. package/dist/rules/tsPreferFunctionType.cjs.map +0 -1
  258. package/dist/rules/typeFormatting.cjs +0 -607
  259. package/dist/rules/typeFormatting.cjs.map +0 -1
  260. package/dist/rules/validTypes.cjs +0 -324
  261. package/dist/rules/validTypes.cjs.map +0 -1
  262. package/dist/tagNames.cjs +0 -244
  263. package/dist/tagNames.cjs.map +0 -1
  264. package/dist/to-valid-identifier.cjs +0 -263
  265. package/dist/utils/hasReturnValue.cjs +0 -495
  266. package/dist/utils/hasReturnValue.cjs.map +0 -1
  267. package/rollup.config.js +0 -16
  268. package/src/getJsdocProcessorPlugin.cts +0 -5
  269. package/src/index-cjs.js +0 -758
  270. package/src/index-esm.js +0 -196
  271. package/src/index.cjs.cts +0 -3
  272. package/src/iterateJsdoc.cts +0 -7
@@ -1 +0,0 @@
1
- {"version":3,"file":"requireJsdoc.cjs","names":["getJSDocComment","getSettings","exemptSpeciaMethods","isConstructor","getFunctionParameterNames","hasReturnValue","getReducedASTNode","getDecorator","getIndent","exportParser","getContextObject","enforcedContexts"],"sources":["../../src/rules/requireJsdoc.js"],"sourcesContent":["import exportParser from '../exportParser.js';\nimport {\n getSettings,\n} from '../iterateJsdoc.js';\nimport {\n enforcedContexts,\n exemptSpeciaMethods,\n getContextObject,\n getFunctionParameterNames,\n getIndent,\n hasReturnValue,\n isConstructor,\n} from '../jsdocUtils.js';\nimport {\n getDecorator,\n getJSDocComment,\n getReducedASTNode,\n} from '@es-joy/jsdoccomment';\n\n/**\n * @typedef {{\n * ancestorsOnly: boolean,\n * esm: boolean,\n * initModuleExports: boolean,\n * initWindow: boolean\n * }} RequireJsdocOpts\n */\n\n/**\n * @typedef {import('eslint').Rule.Node|\n * import('@typescript-eslint/types').TSESTree.Node} ESLintOrTSNode\n */\n\n/** @type {import('json-schema').JSONSchema4} */\nconst OPTIONS_SCHEMA = {\n additionalProperties: false,\n description: 'Has the following optional keys.\\n',\n properties: {\n checkAllFunctionExpressions: {\n default: false,\n description: `Normally, when \\`FunctionExpression\\` is checked, additional checks are\nadded to check the parent contexts where reporting is likely to be desired. If you really\nwant to check *all* function expressions, then set this to \\`true\\`.`,\n type: 'boolean',\n },\n checkConstructors: {\n default: true,\n description: `A value indicating whether \\`constructor\\`s should be checked. Defaults to\n\\`true\\`. When \\`true\\`, \\`exemptEmptyConstructors\\` may still avoid reporting when\nno parameters or return values are found.`,\n type: 'boolean',\n },\n checkGetters: {\n anyOf: [\n {\n type: 'boolean',\n },\n {\n enum: [\n 'no-setter',\n ],\n type: 'string',\n },\n ],\n default: true,\n description: `A value indicating whether getters should be checked. Besides setting as a\nboolean, this option can be set to the string \\`\"no-setter\"\\` to indicate that\ngetters should be checked but only when there is no setter. This may be useful\nif one only wishes documentation on one of the two accessors. Defaults to\n\\`false\\`.`,\n },\n checkSetters: {\n anyOf: [\n {\n type: 'boolean',\n },\n {\n enum: [\n 'no-getter',\n ],\n type: 'string',\n },\n ],\n default: true,\n description: `A value indicating whether setters should be checked. Besides setting as a\nboolean, this option can be set to the string \\`\"no-getter\"\\` to indicate that\nsetters should be checked but only when there is no getter. This may be useful\nif one only wishes documentation on one of the two accessors. Defaults to\n\\`false\\`.`,\n },\n contexts: {\n description: `Set this to an array of strings or objects representing the additional AST\ncontexts where you wish the rule to be applied (e.g., \\`Property\\` for\nproperties). If specified as an object, it should have a \\`context\\` property\nand can have an \\`inlineCommentBlock\\` property which, if set to \\`true\\`, will\nadd an inline \\`/** */\\` instead of the regular, multi-line, indented jsdoc\nblock which will otherwise be added. Defaults to an empty array. Contexts\nmay also have their own \\`minLineCount\\` property which is an integer\nindicating a minimum number of lines expected for a node in order\nfor it to require documentation.\n\nNote that you may need to disable \\`require\\` items (e.g., \\`MethodDefinition\\`)\nif you are specifying a more precise form in \\`contexts\\` (e.g., \\`MethodDefinition:not([accessibility=\"private\"] > FunctionExpression\\`).\n\nSee the [\"AST and Selectors\"](../advanced.md#ast-and-selectors)\nsection of our Advanced docs for more on the expected format.`,\n items: {\n anyOf: [\n {\n type: 'string',\n },\n {\n additionalProperties: false,\n properties: {\n context: {\n type: 'string',\n },\n inlineCommentBlock: {\n type: 'boolean',\n },\n minLineCount: {\n type: 'integer',\n },\n },\n type: 'object',\n },\n ],\n },\n type: 'array',\n },\n enableFixer: {\n default: true,\n description: `A boolean on whether to enable the fixer (which adds an empty JSDoc block).\nDefaults to \\`true\\`.`,\n type: 'boolean',\n },\n exemptEmptyConstructors: {\n default: false,\n description: `When \\`true\\`, the rule will not report missing JSDoc blocks above constructors\nwith no parameters or return values (this is enabled by default as the class\nname or description should be seen as sufficient to convey intent).\n\nDefaults to \\`true\\`.`,\n type: 'boolean',\n },\n exemptEmptyFunctions: {\n default: false,\n description: `When \\`true\\`, the rule will not report missing JSDoc blocks above\nfunctions/methods with no parameters or return values (intended where\nfunction/method names are sufficient for themselves as documentation).\n\nDefaults to \\`false\\`.`,\n type: 'boolean',\n },\n exemptOverloadedImplementations: {\n default: false,\n description: `If set to \\`true\\` will avoid checking an overloaded function's implementation.\n\nDefaults to \\`false\\`.`,\n type: 'boolean',\n },\n fixerMessage: {\n default: '',\n description: `An optional message to add to the inserted JSDoc block. Defaults to the\nempty string.`,\n type: 'string',\n },\n minLineCount: {\n description: `An integer to indicate a minimum number of lines expected for a node in order\nfor it to require documentation. Defaults to \\`undefined\\`. This option will\napply to any context; see \\`contexts\\` for line counts specific to a context.`,\n type: 'integer',\n },\n publicOnly: {\n description: `This option will insist that missing JSDoc blocks are only reported for\nfunction bodies / class declarations that are exported from the module.\nMay be a boolean or object. If set to \\`true\\`, the defaults below will be\nused. If unset, JSDoc block reporting will not be limited to exports.\n\nThis object supports the following optional boolean keys (\\`false\\` unless\notherwise noted):\n\n- \\`ancestorsOnly\\` - Optimization to only check node ancestors to check if node is exported\n- \\`esm\\` - ESM exports are checked for JSDoc comments (Defaults to \\`true\\`)\n- \\`cjs\\` - CommonJS exports are checked for JSDoc comments (Defaults to \\`true\\`)\n- \\`window\\` - Window global exports are checked for JSDoc comments`,\n oneOf: [\n {\n default: false,\n type: 'boolean',\n },\n {\n additionalProperties: false,\n default: {},\n properties: {\n ancestorsOnly: {\n type: 'boolean',\n },\n cjs: {\n type: 'boolean',\n },\n esm: {\n type: 'boolean',\n },\n window: {\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n },\n require: {\n additionalProperties: false,\n default: {},\n description: `An object with the following optional boolean keys which all default to\n\\`false\\` except for \\`FunctionDeclaration\\` which defaults to \\`true\\`.`,\n properties: {\n ArrowFunctionExpression: {\n default: false,\n description: 'Whether to check arrow functions like `() => {}`',\n type: 'boolean',\n },\n ClassDeclaration: {\n default: false,\n description: 'Whether to check declarations like `class A {}`',\n type: 'boolean',\n },\n ClassExpression: {\n default: false,\n description: 'Whether to check class expressions like `const myClass = class {}`',\n type: 'boolean',\n },\n FunctionDeclaration: {\n default: true,\n description: 'Whether to check function declarations like `function a {}`',\n type: 'boolean',\n },\n FunctionExpression: {\n default: false,\n description: 'Whether to check function expressions like `const a = function {}`',\n type: 'boolean',\n },\n MethodDefinition: {\n default: false,\n description: 'Whether to check method definitions like `class A { someMethodDefinition () {} }`',\n type: 'boolean',\n },\n },\n type: 'object',\n },\n skipInterveningOverloadedDeclarations: {\n default: true,\n description: `If \\`true\\`, will skip above uncommented overloaded functions to check\nfor a comment block (e.g., at the top of a set of overloaded functions).\n\nIf \\`false\\`, will force each overloaded function to be checked for a\ncomment block.\n\nDefaults to \\`true\\`.`,\n type: 'boolean',\n },\n },\n type: 'object',\n};\n\n/**\n * @param {string} interfaceName\n * @param {string} methodName\n * @param {import(\"eslint\").Scope.Scope | null} scope\n * @returns {import('@typescript-eslint/types').TSESTree.TSMethodSignature|null}\n */\nconst getMethodOnInterface = (interfaceName, methodName, scope) => {\n let scp = scope;\n while (scp) {\n for (const {\n identifiers,\n name,\n } of scp.variables) {\n if (interfaceName !== name) {\n continue;\n }\n\n for (const identifier of identifiers) {\n const interfaceDeclaration = /** @type {import('@typescript-eslint/types').TSESTree.Identifier & {parent: import('@typescript-eslint/types').TSESTree.TSInterfaceDeclaration}} */ (\n identifier\n ).parent;\n /* c8 ignore next 3 -- TS */\n if (interfaceDeclaration.type !== 'TSInterfaceDeclaration') {\n continue;\n }\n\n for (const bodyItem of interfaceDeclaration.body.body) {\n const methodSig = /** @type {import('@typescript-eslint/types').TSESTree.TSMethodSignature} */ (\n bodyItem\n );\n if (methodName === /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ (\n methodSig.key\n ).name) {\n return methodSig;\n }\n }\n }\n }\n\n scp = scp.upper;\n }\n\n return null;\n};\n\n/**\n * @param {import('eslint').Rule.Node} node\n * @param {import('eslint').SourceCode} sourceCode\n * @param {import('eslint').Rule.RuleContext} context\n * @param {import('../iterateJsdoc.js').Settings} settings\n */\nconst isExemptedImplementer = (node, sourceCode, context, settings) => {\n if (node.type === 'FunctionExpression' &&\n node.parent.type === 'MethodDefinition' &&\n node.parent.parent.type === 'ClassBody' &&\n node.parent.parent.parent.type === 'ClassDeclaration' &&\n 'implements' in node.parent.parent.parent\n ) {\n const implments = /** @type {import('@typescript-eslint/types').TSESTree.TSClassImplements[]} */ (\n node.parent.parent.parent.implements\n );\n\n const {\n name: methodName,\n } = /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ (\n node.parent.key\n );\n\n for (const impl of implments) {\n const {\n name: interfaceName,\n } = /** @type {import('@typescript-eslint/types').TSESTree.Identifier} */ (\n impl.expression\n );\n\n const interfaceMethodNode = getMethodOnInterface(interfaceName, methodName, node && (\n (sourceCode.getScope &&\n /* c8 ignore next 3 */\n sourceCode.getScope(node)) ||\n // @ts-expect-error ESLint 8\n context.getScope()\n ));\n if (interfaceMethodNode) {\n const comment = getJSDocComment(sourceCode, interfaceMethodNode, settings);\n if (comment) {\n return true;\n }\n }\n }\n }\n\n return false;\n};\n\n/**\n * @param {import('eslint').Rule.RuleContext} context\n * @param {import('json-schema').JSONSchema4Object} baseObject\n * @param {string} option\n * @param {string} key\n * @returns {boolean|undefined}\n */\nconst getOption = (context, baseObject, option, key) => {\n if (context.options[0] && option in context.options[0] &&\n // Todo: boolean shouldn't be returning property, but\n // tests currently require\n (typeof context.options[0][option] === 'boolean' ||\n key in context.options[0][option])\n ) {\n return context.options[0][option][key];\n }\n\n return /** @type {{[key: string]: {default?: boolean|undefined}}} */ (\n baseObject.properties\n )[key].default;\n};\n\n/**\n * @param {import('eslint').Rule.RuleContext} context\n * @param {import('../iterateJsdoc.js').Settings} settings\n * @returns {{\n * checkAllFunctionExpressions: boolean,\n * contexts: (string|{\n * context: string,\n * inlineCommentBlock: boolean,\n * minLineCount: import('../iterateJsdoc.js').Integer\n * })[],\n * enableFixer: boolean,\n * exemptEmptyConstructors: boolean,\n * exemptEmptyFunctions: boolean,\n * skipInterveningOverloadedDeclarations: boolean,\n * exemptOverloadedImplementations: boolean,\n * fixerMessage: string,\n * minLineCount: undefined|import('../iterateJsdoc.js').Integer,\n * publicOnly: boolean|{[key: string]: boolean|undefined}\n * require: {[key: string]: boolean|undefined}\n * }}\n */\nconst getOptions = (context, settings) => {\n const {\n checkAllFunctionExpressions = false,\n contexts = settings.contexts || [],\n enableFixer = true,\n exemptEmptyConstructors = true,\n exemptEmptyFunctions = false,\n exemptOverloadedImplementations = false,\n fixerMessage = '',\n minLineCount = undefined,\n publicOnly,\n skipInterveningOverloadedDeclarations = true,\n } = context.options[0] || {};\n\n return {\n checkAllFunctionExpressions,\n contexts,\n enableFixer,\n exemptEmptyConstructors,\n exemptEmptyFunctions,\n exemptOverloadedImplementations,\n fixerMessage,\n minLineCount,\n publicOnly: ((baseObj) => {\n if (!publicOnly) {\n return false;\n }\n\n /** @type {{[key: string]: boolean|undefined}} */\n const properties = {};\n for (const prop of Object.keys(\n /** @type {import('json-schema').JSONSchema4Object} */ (\n /** @type {import('json-schema').JSONSchema4Object} */ (\n baseObj\n ).properties),\n )) {\n const opt = getOption(\n context,\n /** @type {import('json-schema').JSONSchema4Object} */ (baseObj),\n 'publicOnly',\n prop,\n );\n\n properties[prop] = opt;\n }\n\n return properties;\n })(\n /** @type {import('json-schema').JSONSchema4Object} */\n (\n /** @type {import('json-schema').JSONSchema4Object} */\n (\n /** @type {import('json-schema').JSONSchema4Object} */\n (\n OPTIONS_SCHEMA.properties\n ).publicOnly\n ).oneOf\n )[1],\n ),\n require: ((baseObj) => {\n /** @type {{[key: string]: boolean|undefined}} */\n const properties = {};\n for (const prop of Object.keys(\n /** @type {import('json-schema').JSONSchema4Object} */ (\n /** @type {import('json-schema').JSONSchema4Object} */ (\n baseObj\n ).properties),\n )) {\n const opt = getOption(\n context,\n /** @type {import('json-schema').JSONSchema4Object} */\n (baseObj),\n 'require',\n prop,\n );\n properties[prop] = opt;\n }\n\n return properties;\n })(\n /** @type {import('json-schema').JSONSchema4Object} */\n (OPTIONS_SCHEMA.properties).require,\n ),\n skipInterveningOverloadedDeclarations,\n };\n};\n\n/**\n * @param {ESLintOrTSNode} node\n */\nconst isFunctionWithOverload = (node) => {\n if (node.type !== 'FunctionDeclaration') {\n return false;\n }\n\n let parent;\n let child;\n\n if (node.parent?.type === 'Program') {\n parent = node.parent;\n child = node;\n } else if (node.parent?.type === 'ExportNamedDeclaration' &&\n node.parent?.parent.type === 'Program') {\n parent = node.parent?.parent;\n child = node.parent;\n }\n\n if (!child || !parent) {\n return false;\n }\n\n const functionName = node.id?.name;\n\n const idx = parent.body.indexOf(child);\n const prevSibling = parent.body[idx - 1];\n\n return (\n // @ts-expect-error Should be ok\n (prevSibling?.type === 'TSDeclareFunction' &&\n // @ts-expect-error Should be ok\n functionName === prevSibling.id.name) ||\n (prevSibling?.type === 'ExportNamedDeclaration' &&\n // @ts-expect-error Should be ok\n prevSibling.declaration?.type === 'TSDeclareFunction' &&\n // @ts-expect-error Should be ok\n prevSibling.declaration?.id?.name === functionName)\n );\n};\n\n/** @type {import('eslint').Rule.RuleModule} */\nexport default {\n create (context) {\n /* c8 ignore next -- Fallback to deprecated method */\n const {\n // @ts-expect-error ESLint < 10\n sourceCode = context.getSourceCode(),\n } = context;\n const settings = getSettings(context);\n if (!settings) {\n return {};\n }\n\n const opts = getOptions(context, settings);\n\n const {\n checkAllFunctionExpressions,\n contexts,\n enableFixer,\n exemptEmptyConstructors,\n exemptEmptyFunctions,\n exemptOverloadedImplementations,\n fixerMessage,\n minLineCount,\n require: requireOption,\n skipInterveningOverloadedDeclarations,\n } = opts;\n\n const publicOnly =\n\n /**\n * @type {{\n * [key: string]: boolean | undefined;\n * }}\n */ (\n opts.publicOnly\n );\n\n /**\n * @type {import('../iterateJsdoc.js').CheckJsdoc}\n */\n const checkJsDoc = (info, _handler, node) => {\n if (\n // Optimize\n minLineCount !== undefined || contexts.some((ctxt) => {\n if (typeof ctxt === 'string') {\n return false;\n }\n\n const {\n minLineCount: count,\n } = ctxt;\n return count !== undefined;\n })\n ) {\n /**\n * @param {undefined|import('../iterateJsdoc.js').Integer} count\n */\n const underMinLine = (count) => {\n return count !== undefined && count >\n (sourceCode.getText(node).match(/\\n/gv)?.length ?? 0) + 1;\n };\n\n if (underMinLine(minLineCount)) {\n return;\n }\n\n const {\n minLineCount: contextMinLineCount,\n } =\n /**\n * @type {{\n * context: string;\n * inlineCommentBlock: boolean;\n * minLineCount: number;\n * }}\n */ (contexts.find((ctxt) => {\n if (typeof ctxt === 'string') {\n return false;\n }\n\n const {\n context: ctx,\n } = ctxt;\n return ctx === (info.selector || node.type);\n })) || {};\n if (underMinLine(contextMinLineCount)) {\n return;\n }\n }\n\n if (exemptOverloadedImplementations && isFunctionWithOverload(node)) {\n return;\n }\n\n const jsDocNode = getJSDocComment(\n sourceCode, node, settings, {\n checkOverloads: skipInterveningOverloadedDeclarations,\n },\n );\n\n if (jsDocNode) {\n return;\n }\n\n // For those who have options configured against ANY constructors (or\n // setters or getters) being reported\n if (exemptSpeciaMethods(\n {\n description: '',\n inlineTags: [],\n problems: [],\n source: [],\n tags: [],\n },\n node,\n context,\n [\n OPTIONS_SCHEMA,\n ],\n )) {\n return;\n }\n\n if (\n // Avoid reporting param-less, return-less functions (when\n // `exemptEmptyFunctions` option is set)\n exemptEmptyFunctions && info.isFunctionContext ||\n\n // Avoid reporting param-less, return-less constructor methods (when\n // `exemptEmptyConstructors` option is set)\n exemptEmptyConstructors && isConstructor(node)\n ) {\n const functionParameterNames = getFunctionParameterNames(node);\n if (!functionParameterNames.length && !hasReturnValue(node)) {\n return;\n }\n }\n\n if (isExemptedImplementer(node, sourceCode, context, settings)) {\n return;\n }\n\n const fix = /** @type {import('eslint').Rule.ReportFixer} */ (fixer) => {\n // Default to one line break if the `minLines`/`maxLines` settings allow\n const lines = settings.minLines === 0 && settings.maxLines >= 1 ? 1 : settings.minLines;\n /** @type {ESLintOrTSNode|import('@typescript-eslint/types').TSESTree.Decorator} */\n let baseNode = getReducedASTNode(node, sourceCode);\n\n const decorator = getDecorator(\n /** @type {import('eslint').Rule.Node} */\n (baseNode),\n );\n if (decorator) {\n baseNode = decorator;\n }\n\n const indent = getIndent({\n text: sourceCode.getText(\n /** @type {import('eslint').Rule.Node} */ (baseNode),\n /** @type {import('eslint').AST.SourceLocation} */\n (\n /** @type {import('eslint').Rule.Node} */ (baseNode).loc\n ).start.column,\n ),\n });\n\n const {\n inlineCommentBlock,\n } =\n /**\n * @type {{\n * context: string,\n * inlineCommentBlock: boolean,\n * minLineCount: import('../iterateJsdoc.js').Integer\n * }}\n */ (contexts.find((contxt) => {\n if (typeof contxt === 'string') {\n return false;\n }\n\n const {\n context: ctxt,\n } = contxt;\n return ctxt === node.type;\n })) || {};\n const insertion = (inlineCommentBlock ?\n `/** ${fixerMessage}` :\n `/**\\n${indent}*${fixerMessage}\\n${indent}`) +\n `*/${'\\n'.repeat(lines)}${indent.slice(0, -1)}`;\n\n return fixer.insertTextBefore(\n /** @type {import('eslint').Rule.Node} */\n (baseNode),\n insertion,\n );\n };\n\n const report = () => {\n const {\n start,\n } = /** @type {import('eslint').AST.SourceLocation} */ (node.loc);\n const loc = {\n end: {\n column: 0,\n line: start.line + 1,\n },\n start,\n };\n context.report({\n fix: enableFixer ? fix : null,\n loc,\n messageId: 'missingJsDoc',\n node,\n });\n };\n\n if (publicOnly) {\n /** @type {RequireJsdocOpts} */\n const opt = {\n ancestorsOnly: Boolean(publicOnly?.ancestorsOnly ?? false),\n esm: Boolean(publicOnly?.esm ?? true),\n initModuleExports: Boolean(publicOnly?.cjs ?? true),\n initWindow: Boolean(publicOnly?.window ?? false),\n };\n const exported = exportParser.isUncommentedExport(node, sourceCode, opt, settings);\n\n if (exported) {\n report();\n }\n } else {\n report();\n }\n };\n\n /**\n * @param {string} prop\n * @returns {boolean}\n */\n const hasOption = (prop) => {\n return requireOption[prop] || contexts.some((ctxt) => {\n return typeof ctxt === 'object' ? ctxt.context === prop : ctxt === prop;\n });\n };\n\n return {\n ...getContextObject(\n enforcedContexts(context, [], settings),\n checkJsDoc,\n ),\n ArrowFunctionExpression (node) {\n if (!hasOption('ArrowFunctionExpression')) {\n return;\n }\n\n if (\n [\n 'AssignmentExpression', 'ExportDefaultDeclaration', 'VariableDeclarator',\n ].includes(node.parent.type) ||\n [\n 'ClassProperty', 'ObjectProperty', 'Property', 'PropertyDefinition',\n ].includes(node.parent.type) &&\n node ===\n /**\n * @type {import('@typescript-eslint/types').TSESTree.Property|\n * import('@typescript-eslint/types').TSESTree.PropertyDefinition\n * }\n */\n (node.parent).value\n ) {\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n }\n },\n\n ClassDeclaration (node) {\n if (!hasOption('ClassDeclaration')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: false,\n }, null, node);\n },\n\n ClassExpression (node) {\n if (!hasOption('ClassExpression')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: false,\n }, null, node);\n },\n\n FunctionDeclaration (node) {\n if (!hasOption('FunctionDeclaration')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n },\n\n FunctionExpression (node) {\n if (!hasOption('FunctionExpression')) {\n return;\n }\n\n if (checkAllFunctionExpressions ||\n [\n 'AssignmentExpression', 'ExportDefaultDeclaration', 'VariableDeclarator',\n ].includes(node.parent.type) ||\n [\n 'ClassProperty', 'ObjectProperty', 'Property', 'PropertyDefinition',\n ].includes(node.parent.type) &&\n node ===\n /**\n * @type {import('@typescript-eslint/types').TSESTree.Property|\n * import('@typescript-eslint/types').TSESTree.PropertyDefinition\n * }\n */\n (node.parent).value\n ) {\n checkJsDoc({\n isFunctionContext: true,\n }, null, node);\n }\n },\n\n MethodDefinition (node) {\n if (!hasOption('MethodDefinition')) {\n return;\n }\n\n checkJsDoc({\n isFunctionContext: true,\n selector: 'MethodDefinition',\n }, null, /** @type {import('eslint').Rule.Node} */ (node.value));\n },\n };\n },\n meta: {\n docs: {\n description: 'Checks for presence of JSDoc comments, on functions and potentially other contexts (optionally limited to exports).',\n recommended: true,\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header',\n },\n\n fixable: 'code',\n\n messages: {\n missingJsDoc: 'Missing JSDoc comment.',\n },\n\n schema: [\n OPTIONS_SCHEMA,\n ],\n\n type: 'suggestion',\n },\n};\n"],"mappings":"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","ignoreList":[]}