eslint-plugin-jsdoc 63.0.11 → 63.0.13

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 (171) hide show
  1. package/dist/WarnSettings.cjs +8 -1
  2. package/dist/WarnSettings.cjs.map +1 -1
  3. package/dist/alignTransform.cjs +10 -6
  4. package/dist/alignTransform.cjs.map +1 -1
  5. package/dist/buildForbidRuleDefinition.cjs +10 -3
  6. package/dist/buildForbidRuleDefinition.cjs.map +1 -1
  7. package/dist/buildRejectOrPreferRuleDefinition.cjs +14 -7
  8. package/dist/buildRejectOrPreferRuleDefinition.cjs.map +1 -1
  9. package/dist/defaultTagOrder.cjs +8 -1
  10. package/dist/defaultTagOrder.cjs.map +1 -1
  11. package/dist/exportParser.cjs +14 -6
  12. package/dist/exportParser.cjs.map +1 -1
  13. package/dist/generateDocs.cjs +44 -36
  14. package/dist/generateDocs.cjs.map +1 -1
  15. package/dist/generateOptions.cjs +18 -15
  16. package/dist/generateOptions.cjs.map +1 -1
  17. package/dist/generateRule.cjs +24 -24
  18. package/dist/generateRule.cjs.map +1 -1
  19. package/dist/generateRuleTypes.cjs +9 -6
  20. package/dist/generateRuleTypes.cjs.map +1 -1
  21. package/dist/getDefaultTagStructureForMode.cjs +8 -1
  22. package/dist/getDefaultTagStructureForMode.cjs.map +1 -1
  23. package/dist/getJsdocProcessorPlugin.cjs +28 -20
  24. package/dist/getJsdocProcessorPlugin.cjs.map +1 -1
  25. package/dist/index-cjs.cjs +159 -152
  26. package/dist/index-cjs.cjs.map +1 -1
  27. package/dist/index-esm.cjs +27 -16
  28. package/dist/index-esm.cjs.map +1 -1
  29. package/dist/index.cjs +172 -159
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/iterateJsdoc.cjs +32 -22
  32. package/dist/iterateJsdoc.cjs.map +1 -1
  33. package/dist/jsdocUtils.cjs +86 -18
  34. package/dist/jsdocUtils.cjs.map +1 -1
  35. package/dist/rules/checkAccess.cjs +10 -2
  36. package/dist/rules/checkAccess.cjs.map +1 -1
  37. package/dist/rules/checkAlignment.cjs +10 -2
  38. package/dist/rules/checkAlignment.cjs.map +1 -1
  39. package/dist/rules/checkExamples.cjs +15 -6
  40. package/dist/rules/checkExamples.cjs.map +1 -1
  41. package/dist/rules/checkIndentation.cjs +9 -2
  42. package/dist/rules/checkIndentation.cjs.map +1 -1
  43. package/dist/rules/checkLineAlignment.cjs +14 -6
  44. package/dist/rules/checkLineAlignment.cjs.map +1 -1
  45. package/dist/rules/checkParamNames.cjs +9 -2
  46. package/dist/rules/checkParamNames.cjs.map +1 -1
  47. package/dist/rules/checkPropertyNames.cjs +9 -2
  48. package/dist/rules/checkPropertyNames.cjs.map +1 -1
  49. package/dist/rules/checkSyntax.cjs +10 -2
  50. package/dist/rules/checkSyntax.cjs.map +1 -1
  51. package/dist/rules/checkTagNames.cjs +11 -4
  52. package/dist/rules/checkTagNames.cjs.map +1 -1
  53. package/dist/rules/checkTemplateNames.cjs +20 -12
  54. package/dist/rules/checkTemplateNames.cjs.map +1 -1
  55. package/dist/rules/checkTypes.cjs +10 -4
  56. package/dist/rules/checkTypes.cjs.map +1 -1
  57. package/dist/rules/checkValues.cjs +17 -9
  58. package/dist/rules/checkValues.cjs.map +1 -1
  59. package/dist/rules/convertToJsdocComments.cjs +19 -13
  60. package/dist/rules/convertToJsdocComments.cjs.map +1 -1
  61. package/dist/rules/emptyTags.cjs +10 -2
  62. package/dist/rules/emptyTags.cjs.map +1 -1
  63. package/dist/rules/escapeInlineTags.cjs +10 -2
  64. package/dist/rules/escapeInlineTags.cjs.map +1 -1
  65. package/dist/rules/implementsOnClasses.cjs +10 -2
  66. package/dist/rules/implementsOnClasses.cjs.map +1 -1
  67. package/dist/rules/importsAsDependencies.cjs +20 -12
  68. package/dist/rules/importsAsDependencies.cjs.map +1 -1
  69. package/dist/rules/informativeDocs.cjs +12 -4
  70. package/dist/rules/informativeDocs.cjs.map +1 -1
  71. package/dist/rules/linesBeforeBlock.cjs +9 -2
  72. package/dist/rules/linesBeforeBlock.cjs.map +1 -1
  73. package/dist/rules/matchDescription.cjs +9 -2
  74. package/dist/rules/matchDescription.cjs.map +1 -1
  75. package/dist/rules/matchName.cjs +10 -2
  76. package/dist/rules/matchName.cjs.map +1 -1
  77. package/dist/rules/multilineBlocks.cjs +9 -2
  78. package/dist/rules/multilineBlocks.cjs.map +1 -1
  79. package/dist/rules/noBadBlocks.cjs +11 -4
  80. package/dist/rules/noBadBlocks.cjs.map +1 -1
  81. package/dist/rules/noBlankBlockDescriptions.cjs +10 -2
  82. package/dist/rules/noBlankBlockDescriptions.cjs.map +1 -1
  83. package/dist/rules/noBlankBlocks.cjs +10 -2
  84. package/dist/rules/noBlankBlocks.cjs.map +1 -1
  85. package/dist/rules/noDefaults.cjs +10 -2
  86. package/dist/rules/noDefaults.cjs.map +1 -1
  87. package/dist/rules/noMissingSyntax.cjs +9 -2
  88. package/dist/rules/noMissingSyntax.cjs.map +1 -1
  89. package/dist/rules/noMultiAsterisks.cjs +10 -2
  90. package/dist/rules/noMultiAsterisks.cjs.map +1 -1
  91. package/dist/rules/noRestrictedSyntax.cjs +9 -2
  92. package/dist/rules/noRestrictedSyntax.cjs.map +1 -1
  93. package/dist/rules/noTypes.cjs +9 -2
  94. package/dist/rules/noTypes.cjs.map +1 -1
  95. package/dist/rules/noUndefinedTypes.cjs +21 -13
  96. package/dist/rules/noUndefinedTypes.cjs.map +1 -1
  97. package/dist/rules/preferImportTag.cjs +28 -21
  98. package/dist/rules/preferImportTag.cjs.map +1 -1
  99. package/dist/rules/requireAsteriskPrefix.cjs +10 -2
  100. package/dist/rules/requireAsteriskPrefix.cjs.map +1 -1
  101. package/dist/rules/requireDescription.cjs +9 -2
  102. package/dist/rules/requireDescription.cjs.map +1 -1
  103. package/dist/rules/requireDescriptionCompleteSentence.cjs +15 -7
  104. package/dist/rules/requireDescriptionCompleteSentence.cjs.map +1 -1
  105. package/dist/rules/requireExample.cjs +10 -2
  106. package/dist/rules/requireExample.cjs.map +1 -1
  107. package/dist/rules/requireFileOverview.cjs +10 -2
  108. package/dist/rules/requireFileOverview.cjs.map +1 -1
  109. package/dist/rules/requireHyphenBeforeParamDescription.cjs +10 -2
  110. package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +1 -1
  111. package/dist/rules/requireJsdoc.cjs +24 -17
  112. package/dist/rules/requireJsdoc.cjs.map +1 -1
  113. package/dist/rules/requireParam.cjs +9 -2
  114. package/dist/rules/requireParam.cjs.map +1 -1
  115. package/dist/rules/requireParamDescription.cjs +10 -2
  116. package/dist/rules/requireParamDescription.cjs.map +1 -1
  117. package/dist/rules/requireParamName.cjs +10 -2
  118. package/dist/rules/requireParamName.cjs.map +1 -1
  119. package/dist/rules/requireParamType.cjs +10 -2
  120. package/dist/rules/requireParamType.cjs.map +1 -1
  121. package/dist/rules/requireProperty.cjs +10 -2
  122. package/dist/rules/requireProperty.cjs.map +1 -1
  123. package/dist/rules/requirePropertyDescription.cjs +10 -2
  124. package/dist/rules/requirePropertyDescription.cjs.map +1 -1
  125. package/dist/rules/requirePropertyName.cjs +10 -2
  126. package/dist/rules/requirePropertyName.cjs.map +1 -1
  127. package/dist/rules/requirePropertyType.cjs +10 -2
  128. package/dist/rules/requirePropertyType.cjs.map +1 -1
  129. package/dist/rules/requireRejects.cjs +9 -2
  130. package/dist/rules/requireRejects.cjs.map +1 -1
  131. package/dist/rules/requireReturns.cjs +11 -4
  132. package/dist/rules/requireReturns.cjs.map +1 -1
  133. package/dist/rules/requireReturnsCheck.cjs +15 -8
  134. package/dist/rules/requireReturnsCheck.cjs.map +1 -1
  135. package/dist/rules/requireReturnsDescription.cjs +10 -2
  136. package/dist/rules/requireReturnsDescription.cjs.map +1 -1
  137. package/dist/rules/requireReturnsType.cjs +10 -2
  138. package/dist/rules/requireReturnsType.cjs.map +1 -1
  139. package/dist/rules/requireTags.cjs +9 -2
  140. package/dist/rules/requireTags.cjs.map +1 -1
  141. package/dist/rules/requireTemplate.cjs +13 -5
  142. package/dist/rules/requireTemplate.cjs.map +1 -1
  143. package/dist/rules/requireThrows.cjs +9 -2
  144. package/dist/rules/requireThrows.cjs.map +1 -1
  145. package/dist/rules/requireYields.cjs +9 -2
  146. package/dist/rules/requireYields.cjs.map +1 -1
  147. package/dist/rules/requireYieldsCheck.cjs +9 -2
  148. package/dist/rules/requireYieldsCheck.cjs.map +1 -1
  149. package/dist/rules/sortTags.cjs +12 -4
  150. package/dist/rules/sortTags.cjs.map +1 -1
  151. package/dist/rules/tagLines.cjs +9 -2
  152. package/dist/rules/tagLines.cjs.map +1 -1
  153. package/dist/rules/textEscaping.cjs +9 -2
  154. package/dist/rules/textEscaping.cjs.map +1 -1
  155. package/dist/rules/tsMethodSignatureStyle.cjs +18 -10
  156. package/dist/rules/tsMethodSignatureStyle.cjs.map +1 -1
  157. package/dist/rules/tsNoEmptyObjectType.cjs +13 -5
  158. package/dist/rules/tsNoEmptyObjectType.cjs.map +1 -1
  159. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +16 -8
  160. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +1 -1
  161. package/dist/rules/tsPreferFunctionType.cjs +16 -8
  162. package/dist/rules/tsPreferFunctionType.cjs.map +1 -1
  163. package/dist/rules/typeFormatting.cjs +17 -9
  164. package/dist/rules/typeFormatting.cjs.map +1 -1
  165. package/dist/rules/validTypes.cjs +18 -10
  166. package/dist/rules/validTypes.cjs.map +1 -1
  167. package/dist/tagNames.cjs +9 -4
  168. package/dist/tagNames.cjs.map +1 -1
  169. package/dist/utils/hasReturnValue.cjs +8 -1
  170. package/dist/utils/hasReturnValue.cjs.map +1 -1
  171. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"getJsdocProcessorPlugin.cjs","names":[],"sources":["../src/getJsdocProcessorPlugin.js"],"sourcesContent":["import {\n forEachPreferredTag,\n getPreferredTagName,\n getRegexFromString,\n getTagDescription,\n hasTag,\n} from './jsdocUtils.js';\nimport {\n parseComment,\n} from '@es-joy/jsdoccomment';\nimport * as espree from 'espree';\nimport {\n decode,\n} from 'html-entities';\nimport {\n readFileSync,\n} from 'node:fs';\nimport {\n join,\n} from 'node:path';\n/**\n * @import {\n * Integer,\n * JsdocBlockWithInline,\n * } from './iterateJsdoc.js';\n * @import {\n * ESLint,\n * Linter,\n * } from 'eslint';\n */\n\nconst {\n version,\n} = JSON.parse(\n readFileSync(join(import.meta.dirname, '../package.json'), 'utf8'),\n);\n\n// const zeroBasedLineIndexAdjust = -1;\nconst likelyNestedJSDocIndentSpace = 1;\nconst preTagSpaceLength = 1;\n\n// If a space is present, we should ignore it\nconst firstLinePrefixLength = preTagSpaceLength;\n\nconst hasCaptionRegex = /^\\s*<caption>([\\s\\S]*?)<\\/caption>/v;\n\n/**\n * @param {string} str\n * @returns {string}\n */\nconst escapeStringRegexp = (str) => {\n return str.replaceAll(/[.*+?^$\\{\\}\\(\\)\\|\\[\\]\\\\]/gv, '\\\\$&');\n};\n\n/**\n * @param {string} str\n * @param {string} ch\n * @returns {Integer}\n */\nconst countChars = (str, ch) => {\n return (str.match(new RegExp(escapeStringRegexp(ch), 'gv')) || []).length;\n};\n\n/**\n * @param {string} text\n * @returns {[\n * Integer,\n * Integer\n * ]}\n */\nconst getLinesCols = (text) => {\n const matchLines = countChars(text, '\\n');\n\n const colDelta = matchLines ?\n text.slice(text.lastIndexOf('\\n') + 1).length :\n text.length;\n\n return [\n matchLines, colDelta,\n ];\n};\n\n/**\n * @typedef {number} Integer\n */\n/**\n * @typedef {object} JsdocProcessorOptions\n * @property {boolean} [captionRequired] Require captions for example tags\n * @property {Integer} [paddedIndent] See docs\n * @property {boolean} [checkDefaults] See docs\n * @property {boolean} [checkParams] See docs\n * @property {boolean} [checkExamples] See docs\n * @property {boolean} [checkProperties] See docs\n * @property {string} [matchingFileName] See docs\n * @property {string} [matchingFileNameDefaults] See docs\n * @property {string} [matchingFileNameParams] See docs\n * @property {string} [matchingFileNameProperties] See docs\n * @property {string|RegExp} [exampleCodeRegex] See docs\n * @property {string|RegExp} [rejectExampleCodeRegex] See docs\n * @property {string[]} [allowedLanguagesToProcess] See docs\n * @property {\"script\"|\"module\"} [sourceType] See docs\n * @property {import('eslint').Linter.ESTreeParser|import('eslint').Linter.NonESTreeParser} [parser] See docs\n */\n\n/**\n * We use a function for the ability of the user to pass in a config, but\n * without requiring all users of the plugin to do so.\n * @param {JsdocProcessorOptions} [options]\n * @returns {ESLint.Plugin}\n */\nexport const getJsdocProcessorPlugin = (options = {}) => {\n /**\n * @typedef {{\n * text: string,\n * filename: string|null|undefined\n * }} TextAndFileName\n */\n\n const {\n allowedLanguagesToProcess = [\n 'js', 'ts', 'javascript', 'typescript',\n ],\n captionRequired = false,\n checkDefaults = false,\n checkExamples = true,\n checkParams = false,\n checkProperties = false,\n exampleCodeRegex = null,\n matchingFileName = null,\n matchingFileNameDefaults = null,\n matchingFileNameParams = null,\n matchingFileNameProperties = null,\n paddedIndent = 0,\n parser = undefined,\n rejectExampleCodeRegex = null,\n sourceType = 'module',\n } = options;\n\n /** @type {RegExp} */\n let exampleCodeRegExp;\n /** @type {RegExp} */\n let rejectExampleCodeRegExp;\n\n if (exampleCodeRegex) {\n exampleCodeRegExp = typeof exampleCodeRegex === 'string' ?\n getRegexFromString(exampleCodeRegex) :\n exampleCodeRegex;\n }\n\n if (rejectExampleCodeRegex) {\n rejectExampleCodeRegExp = typeof rejectExampleCodeRegex === 'string' ?\n getRegexFromString(rejectExampleCodeRegex) :\n rejectExampleCodeRegex;\n }\n\n /**\n * @type {{\n * targetTagName: string,\n * ext: string,\n * codeStartLine: number,\n * codeStartCol: number,\n * nonJSPrefacingCols: number,\n * commentLineCols: [number, number]\n * }[]}\n */\n const otherInfo = [];\n\n /** @type {import('eslint').Linter.LintMessage[]} */\n let extraMessages = [];\n\n /**\n * @param {JsdocBlockWithInline} jsdoc\n * @param {string} jsFileName\n * @param {[number, number]} commentLineCols\n */\n const getTextsAndFileNames = (jsdoc, jsFileName, commentLineCols) => {\n /**\n * @type {TextAndFileName[]}\n */\n const textsAndFileNames = [];\n\n /**\n * @param {{\n * filename: string|null,\n * defaultFileName: string|undefined,\n * source: string,\n * targetTagName: string,\n * rules?: import('eslint').Linter.RulesRecord|undefined,\n * lines?: Integer,\n * cols?: Integer,\n * skipInit?: boolean,\n * ext: string,\n * sources?: {\n * nonJSPrefacingCols: Integer,\n * nonJSPrefacingLines: Integer,\n * string: string,\n * }[],\n * tag?: import('comment-parser').Spec & {\n * line?: Integer,\n * }|{\n * line: Integer,\n * }\n * }} cfg\n */\n const checkSource = ({\n cols = 0,\n defaultFileName,\n ext,\n filename,\n lines = 0,\n skipInit,\n source,\n sources = [],\n tag = {\n line: 0,\n },\n targetTagName,\n }) => {\n if (!skipInit) {\n sources.push({\n nonJSPrefacingCols: cols,\n nonJSPrefacingLines: lines,\n string: source,\n });\n }\n\n /**\n * @param {{\n * nonJSPrefacingCols: Integer,\n * nonJSPrefacingLines: Integer,\n * string: string\n * }} cfg\n */\n const addSourceInfo = function ({\n nonJSPrefacingCols,\n nonJSPrefacingLines,\n string,\n }) {\n const src = paddedIndent ?\n string.replaceAll(new RegExp(`(^|\\n) {${paddedIndent}}(?!$)`, 'gv'), '\\n') :\n string;\n\n // Programmatic ESLint API: https://eslint.org/docs/developer-guide/nodejs-api\n const file = filename || defaultFileName;\n\n if (!('line' in tag)) {\n tag.line = tag.source[0].number;\n }\n\n // NOTE: `tag.line` can be 0 if of form `/** @tag ... */`\n const codeStartLine = /**\n * @type {import('comment-parser').Spec & {\n * line: Integer,\n * }}\n */ (tag).line + nonJSPrefacingLines;\n const codeStartCol = likelyNestedJSDocIndentSpace;\n\n textsAndFileNames.push({\n filename: file,\n // See https://github.com/gajus/eslint-plugin-jsdoc/issues/710\n text: src.replaceAll(/(?<=\\*)\\\\(?=\\\\*\\/)/gv, '').replaceAll(/&([^\\s;]+);/gv, (_, code) => {\n // Dec\n if ((/^#\\d+$/v).test(code)) {\n return String.fromCodePoint(Number.parseInt(code.slice(1), 10));\n }\n\n // Hex\n if ((/^#x\\d+$/v).test(code)) {\n return String.fromCodePoint(Number.parseInt(code.slice(2), 16));\n }\n\n return decode(_, {\n level: 'html5',\n });\n }),\n });\n otherInfo.push({\n codeStartCol,\n codeStartLine,\n commentLineCols,\n ext,\n nonJSPrefacingCols,\n targetTagName,\n });\n };\n\n for (const targetSource of sources) {\n addSourceInfo(targetSource);\n }\n };\n\n /**\n *\n * @param {string|null} filename\n * @param {string} [ext] Since `eslint-plugin-markdown` v2, and\n * ESLint 7, this is the default which other JS-fenced rules will used.\n * Formerly \"md\" was the default.\n * @returns {{\n * defaultFileName: string|undefined,\n * filename: string|null,\n * ext: string\n * }}\n */\n const getFilenameInfo = (filename, ext = 'md/*.js') => {\n let defaultFileName;\n if (!filename) {\n if (typeof jsFileName === 'string' && jsFileName.includes('.')) {\n defaultFileName = jsFileName.replace(/\\.[^.]*$/v, `.${ext}`);\n } else {\n defaultFileName = `dummy.${ext}`;\n }\n }\n\n return {\n defaultFileName,\n ext,\n filename,\n };\n };\n\n if (checkDefaults) {\n const filenameInfo = getFilenameInfo(matchingFileNameDefaults, 'jsdoc-defaults');\n forEachPreferredTag(jsdoc, 'default', (tag, targetTagName) => {\n if (!tag.description.trim()) {\n return;\n }\n\n checkSource({\n source: `(${getTagDescription(tag)})`,\n targetTagName,\n ...filenameInfo,\n });\n });\n }\n\n if (checkParams) {\n const filenameInfo = getFilenameInfo(matchingFileNameParams, 'jsdoc-params');\n forEachPreferredTag(jsdoc, 'param', (tag, targetTagName) => {\n if (!tag.default || !tag.default.trim()) {\n return;\n }\n\n checkSource({\n source: `(${tag.default})`,\n targetTagName,\n ...filenameInfo,\n });\n });\n }\n\n if (checkProperties) {\n const filenameInfo = getFilenameInfo(matchingFileNameProperties, 'jsdoc-properties');\n forEachPreferredTag(jsdoc, 'property', (tag, targetTagName) => {\n if (!tag.default || !tag.default.trim()) {\n return;\n }\n\n checkSource({\n source: `(${tag.default})`,\n targetTagName,\n ...filenameInfo,\n });\n });\n }\n\n if (!checkExamples) {\n return textsAndFileNames;\n }\n\n const tagName = /** @type {string} */ (getPreferredTagName(jsdoc, {\n tagName: 'example',\n }));\n if (!hasTag(jsdoc, tagName)) {\n return textsAndFileNames;\n }\n\n const matchingFilenameInfo = getFilenameInfo(matchingFileName);\n\n forEachPreferredTag(jsdoc, 'example', (tag, targetTagName) => {\n let source = /** @type {string} */ (getTagDescription(tag));\n const match = source.match(hasCaptionRegex);\n\n if (captionRequired && (!match || !match[1].trim())) {\n extraMessages.push({\n column: commentLineCols[1] + 1,\n line: 1 + commentLineCols[0] + (tag.line ?? tag.source[0].number),\n message: `@${targetTagName} error - Caption is expected for examples.`,\n ruleId: 'jsdoc/example-missing-caption',\n severity: 2,\n });\n return;\n }\n\n source = source.replace(hasCaptionRegex, '');\n const [\n lines,\n cols,\n ] = match ? getLinesCols(match[0]) : [\n 0, 0,\n ];\n\n if (exampleCodeRegex && !exampleCodeRegExp.test(source) ||\n rejectExampleCodeRegex && rejectExampleCodeRegExp.test(source)\n ) {\n return;\n }\n\n // If `allowedLanguagesToProcess` is falsy, all languages should be processed.\n if (allowedLanguagesToProcess) {\n const matches = (/^\\s*```(?<language>\\S+)([\\s\\S]*)```\\s*$/v).exec(source);\n if (matches?.groups && !allowedLanguagesToProcess.includes(\n matches.groups.language.toLowerCase(),\n )) {\n return;\n }\n }\n\n const sources = [];\n let skipInit = false;\n if (exampleCodeRegex) {\n let nonJSPrefacingCols = 0;\n let nonJSPrefacingLines = 0;\n\n let startingIndex = 0;\n let lastStringCount = 0;\n\n let exampleCode;\n exampleCodeRegExp.lastIndex = 0;\n while ((exampleCode = exampleCodeRegExp.exec(source)) !== null) {\n const {\n '0': n0,\n '1': n1,\n index,\n } = exampleCode;\n\n // Count anything preceding user regex match (can affect line numbering)\n const preMatch = source.slice(startingIndex, index);\n\n const [\n preMatchLines,\n colDelta,\n ] = getLinesCols(preMatch);\n\n let nonJSPreface;\n let nonJSPrefaceLineCount;\n if (n1) {\n const idx = n0.indexOf(n1);\n nonJSPreface = n0.slice(0, idx);\n nonJSPrefaceLineCount = countChars(nonJSPreface, '\\n');\n } else {\n nonJSPreface = '';\n nonJSPrefaceLineCount = 0;\n }\n\n nonJSPrefacingLines += lastStringCount + preMatchLines + nonJSPrefaceLineCount;\n\n // Ignore `preMatch` delta if newlines here\n if (nonJSPrefaceLineCount) {\n const charsInLastLine = nonJSPreface.slice(nonJSPreface.lastIndexOf('\\n') + 1).length;\n\n nonJSPrefacingCols += charsInLastLine;\n } else {\n nonJSPrefacingCols += colDelta + nonJSPreface.length;\n }\n\n const string = n1 || n0;\n sources.push({\n nonJSPrefacingCols,\n nonJSPrefacingLines,\n string,\n });\n startingIndex = exampleCodeRegExp.lastIndex;\n lastStringCount = countChars(string, '\\n');\n if (!exampleCodeRegExp.global) {\n break;\n }\n }\n\n skipInit = true;\n }\n\n checkSource({\n cols,\n lines,\n skipInit,\n source,\n sources,\n tag,\n targetTagName,\n ...matchingFilenameInfo,\n });\n });\n\n return textsAndFileNames;\n };\n\n // See https://eslint.org/docs/latest/extend/plugins#processors-in-plugins\n // See https://eslint.org/docs/latest/extend/custom-processors\n // From https://github.com/eslint/eslint/issues/14745#issuecomment-869457265\n /*\n {\n \"files\": [\"*.js\", \"*.ts\"],\n \"processor\": \"jsdoc/example\" // a pretended value here\n },\n {\n \"files\": [\n \"*.js/*_jsdoc-example.js\",\n \"*.ts/*_jsdoc-example.js\",\n \"*.js/*_jsdoc-example.ts\"\n ],\n \"rules\": {\n // specific rules for examples in jsdoc only here\n // And other rules for `.js` and `.ts` will also be enabled for them\n }\n }\n */\n return {\n meta: {\n name: 'eslint-plugin-jsdoc/processor',\n version,\n },\n processors: {\n examples: {\n meta: {\n name: 'eslint-plugin-jsdoc/preprocessor',\n version,\n },\n /**\n * @param {import('eslint').Linter.LintMessage[][]} messages\n * @param {string} filename\n */\n postprocess ([\n jsMessages,\n ...messages\n // eslint-disable-next-line no-unused-vars -- Placeholder\n ], filename) {\n for (const [\n idx,\n message,\n ] of messages.entries()) {\n const {\n codeStartCol,\n codeStartLine,\n commentLineCols,\n nonJSPrefacingCols,\n targetTagName,\n } = otherInfo[idx];\n\n for (const msg of message) {\n const {\n column,\n endColumn,\n endLine,\n fatal,\n line,\n message: messageText,\n ruleId,\n severity,\n\n // Todo: Make fixable\n // fix\n // fix: {range: [number, number], text: string}\n // suggestions: {desc: , messageId:, fix: }[],\n } = msg;\n delete msg.fix;\n\n const [\n codeCtxLine,\n codeCtxColumn,\n ] = commentLineCols;\n const startLine = codeCtxLine + codeStartLine + line;\n\n // Seems to need one more now\n const startCol = 1 +\n codeCtxColumn + codeStartCol + (\n // This might not work for line 0, but line 0 is unlikely for examples\n line <= 1 ? nonJSPrefacingCols + firstLinePrefixLength : preTagSpaceLength\n ) + column;\n\n msg.message = '@' + targetTagName + ' ' + (severity === 2 ? 'error' : 'warning') +\n (ruleId ? ' (' + ruleId + ')' : '') + ': ' +\n (fatal ? 'Fatal: ' : '') +\n messageText;\n msg.line = startLine;\n msg.column = startCol;\n msg.endLine = endLine ? startLine + endLine : startLine;\n // added `- column` to offset what `endColumn` already seemed to include\n msg.endColumn = endColumn ? startCol - column + endColumn : startCol;\n }\n }\n\n const ret = [\n ...jsMessages,\n ].concat(...messages, ...extraMessages);\n extraMessages = [];\n return ret;\n },\n\n /**\n * @param {string} text\n * @param {string} filename\n * @returns {(string | Linter.ProcessorFile)[]}\n */\n preprocess (text, filename) {\n try {\n let ast;\n\n // May be running a second time so catch and ignore\n try {\n ast = parser ?\n // @ts-expect-error Should be present\n parser.parseForESLint(text, {\n comment: true,\n ecmaVersion: 'latest',\n sourceType,\n }).ast :\n espree.parse(text, {\n comment: true,\n ecmaVersion: 'latest',\n sourceType,\n });\n } catch {\n return [\n text,\n ];\n }\n\n /** @type {[number, number][]} */\n const commentLineCols = [];\n const jsdocComments = /** @type {import('estree').Comment[]} */ (\n /**\n * @type {import('estree').Program & {\n * comments?: import('estree').Comment[]\n * }}\n */\n (ast).comments\n ).filter((comment) => {\n return (/^\\*\\s/v).test(comment.value);\n }).map((comment) => {\n const [\n start,\n /* c8 ignore next -- Unsupporting processors only? */\n ] = comment.range ?? [];\n const textToStart = text.slice(0, start);\n\n const [\n lines,\n cols,\n ] = getLinesCols(textToStart);\n\n // const lines = [...textToStart.matchAll(/\\n/gv)].length\n // const lastLinePos = textToStart.lastIndexOf('\\n');\n // const cols = lastLinePos === -1\n // ? 0\n // : textToStart.slice(lastLinePos).length;\n commentLineCols.push([\n lines, cols,\n ]);\n return parseComment(comment);\n });\n\n return [\n text,\n ...jsdocComments.flatMap((jsdoc, idx) => {\n return getTextsAndFileNames(\n jsdoc,\n filename,\n commentLineCols[idx],\n );\n }).filter(\n /**\n * @param {TextAndFileName} file\n * @returns {file is Linter.ProcessorFile}\n */\n (file) => {\n return file !== null && file !== undefined;\n },\n ),\n ];\n /* c8 ignore next 6 */\n } catch (error) {\n // eslint-disable-next-line no-console -- Debugging\n console.log('err', filename, error);\n }\n\n return [];\n },\n supportsAutofix: true,\n },\n },\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getJsdocProcessorPlugin.cjs","names":["readFileSync","join","getRegexFromString","decode","forEachPreferredTag","getTagDescription","getPreferredTagName","hasTag","parseComment"],"sources":["../src/getJsdocProcessorPlugin.js"],"sourcesContent":["import {\n forEachPreferredTag,\n getPreferredTagName,\n getRegexFromString,\n getTagDescription,\n hasTag,\n} from './jsdocUtils.js';\nimport {\n parseComment,\n} from '@es-joy/jsdoccomment';\nimport * as espree from 'espree';\nimport {\n decode,\n} from 'html-entities';\nimport {\n readFileSync,\n} from 'node:fs';\nimport {\n join,\n} from 'node:path';\n/**\n * @import {\n * Integer,\n * JsdocBlockWithInline,\n * } from './iterateJsdoc.js';\n * @import {\n * ESLint,\n * Linter,\n * } from 'eslint';\n */\n\nconst {\n version,\n} = JSON.parse(\n readFileSync(join(import.meta.dirname, '../package.json'), 'utf8'),\n);\n\n// const zeroBasedLineIndexAdjust = -1;\nconst likelyNestedJSDocIndentSpace = 1;\nconst preTagSpaceLength = 1;\n\n// If a space is present, we should ignore it\nconst firstLinePrefixLength = preTagSpaceLength;\n\nconst hasCaptionRegex = /^\\s*<caption>([\\s\\S]*?)<\\/caption>/v;\n\n/**\n * @param {string} str\n * @returns {string}\n */\nconst escapeStringRegexp = (str) => {\n return str.replaceAll(/[.*+?^$\\{\\}\\(\\)\\|\\[\\]\\\\]/gv, '\\\\$&');\n};\n\n/**\n * @param {string} str\n * @param {string} ch\n * @returns {Integer}\n */\nconst countChars = (str, ch) => {\n return (str.match(new RegExp(escapeStringRegexp(ch), 'gv')) || []).length;\n};\n\n/**\n * @param {string} text\n * @returns {[\n * Integer,\n * Integer\n * ]}\n */\nconst getLinesCols = (text) => {\n const matchLines = countChars(text, '\\n');\n\n const colDelta = matchLines ?\n text.slice(text.lastIndexOf('\\n') + 1).length :\n text.length;\n\n return [\n matchLines, colDelta,\n ];\n};\n\n/**\n * @typedef {number} Integer\n */\n/**\n * @typedef {object} JsdocProcessorOptions\n * @property {boolean} [captionRequired] Require captions for example tags\n * @property {Integer} [paddedIndent] See docs\n * @property {boolean} [checkDefaults] See docs\n * @property {boolean} [checkParams] See docs\n * @property {boolean} [checkExamples] See docs\n * @property {boolean} [checkProperties] See docs\n * @property {string} [matchingFileName] See docs\n * @property {string} [matchingFileNameDefaults] See docs\n * @property {string} [matchingFileNameParams] See docs\n * @property {string} [matchingFileNameProperties] See docs\n * @property {string|RegExp} [exampleCodeRegex] See docs\n * @property {string|RegExp} [rejectExampleCodeRegex] See docs\n * @property {string[]} [allowedLanguagesToProcess] See docs\n * @property {\"script\"|\"module\"} [sourceType] See docs\n * @property {import('eslint').Linter.ESTreeParser|import('eslint').Linter.NonESTreeParser} [parser] See docs\n */\n\n/**\n * We use a function for the ability of the user to pass in a config, but\n * without requiring all users of the plugin to do so.\n * @param {JsdocProcessorOptions} [options]\n * @returns {ESLint.Plugin}\n */\nexport const getJsdocProcessorPlugin = (options = {}) => {\n /**\n * @typedef {{\n * text: string,\n * filename: string|null|undefined\n * }} TextAndFileName\n */\n\n const {\n allowedLanguagesToProcess = [\n 'js', 'ts', 'javascript', 'typescript',\n ],\n captionRequired = false,\n checkDefaults = false,\n checkExamples = true,\n checkParams = false,\n checkProperties = false,\n exampleCodeRegex = null,\n matchingFileName = null,\n matchingFileNameDefaults = null,\n matchingFileNameParams = null,\n matchingFileNameProperties = null,\n paddedIndent = 0,\n parser = undefined,\n rejectExampleCodeRegex = null,\n sourceType = 'module',\n } = options;\n\n /** @type {RegExp} */\n let exampleCodeRegExp;\n /** @type {RegExp} */\n let rejectExampleCodeRegExp;\n\n if (exampleCodeRegex) {\n exampleCodeRegExp = typeof exampleCodeRegex === 'string' ?\n getRegexFromString(exampleCodeRegex) :\n exampleCodeRegex;\n }\n\n if (rejectExampleCodeRegex) {\n rejectExampleCodeRegExp = typeof rejectExampleCodeRegex === 'string' ?\n getRegexFromString(rejectExampleCodeRegex) :\n rejectExampleCodeRegex;\n }\n\n /**\n * @type {{\n * targetTagName: string,\n * ext: string,\n * codeStartLine: number,\n * codeStartCol: number,\n * nonJSPrefacingCols: number,\n * commentLineCols: [number, number]\n * }[]}\n */\n const otherInfo = [];\n\n /** @type {import('eslint').Linter.LintMessage[]} */\n let extraMessages = [];\n\n /**\n * @param {JsdocBlockWithInline} jsdoc\n * @param {string} jsFileName\n * @param {[number, number]} commentLineCols\n */\n const getTextsAndFileNames = (jsdoc, jsFileName, commentLineCols) => {\n /**\n * @type {TextAndFileName[]}\n */\n const textsAndFileNames = [];\n\n /**\n * @param {{\n * filename: string|null,\n * defaultFileName: string|undefined,\n * source: string,\n * targetTagName: string,\n * rules?: import('eslint').Linter.RulesRecord|undefined,\n * lines?: Integer,\n * cols?: Integer,\n * skipInit?: boolean,\n * ext: string,\n * sources?: {\n * nonJSPrefacingCols: Integer,\n * nonJSPrefacingLines: Integer,\n * string: string,\n * }[],\n * tag?: import('comment-parser').Spec & {\n * line?: Integer,\n * }|{\n * line: Integer,\n * }\n * }} cfg\n */\n const checkSource = ({\n cols = 0,\n defaultFileName,\n ext,\n filename,\n lines = 0,\n skipInit,\n source,\n sources = [],\n tag = {\n line: 0,\n },\n targetTagName,\n }) => {\n if (!skipInit) {\n sources.push({\n nonJSPrefacingCols: cols,\n nonJSPrefacingLines: lines,\n string: source,\n });\n }\n\n /**\n * @param {{\n * nonJSPrefacingCols: Integer,\n * nonJSPrefacingLines: Integer,\n * string: string\n * }} cfg\n */\n const addSourceInfo = function ({\n nonJSPrefacingCols,\n nonJSPrefacingLines,\n string,\n }) {\n const src = paddedIndent ?\n string.replaceAll(new RegExp(`(^|\\n) {${paddedIndent}}(?!$)`, 'gv'), '\\n') :\n string;\n\n // Programmatic ESLint API: https://eslint.org/docs/developer-guide/nodejs-api\n const file = filename || defaultFileName;\n\n if (!('line' in tag)) {\n tag.line = tag.source[0].number;\n }\n\n // NOTE: `tag.line` can be 0 if of form `/** @tag ... */`\n const codeStartLine = /**\n * @type {import('comment-parser').Spec & {\n * line: Integer,\n * }}\n */ (tag).line + nonJSPrefacingLines;\n const codeStartCol = likelyNestedJSDocIndentSpace;\n\n textsAndFileNames.push({\n filename: file,\n // See https://github.com/gajus/eslint-plugin-jsdoc/issues/710\n text: src.replaceAll(/(?<=\\*)\\\\(?=\\\\*\\/)/gv, '').replaceAll(/&([^\\s;]+);/gv, (_, code) => {\n // Dec\n if ((/^#\\d+$/v).test(code)) {\n return String.fromCodePoint(Number.parseInt(code.slice(1), 10));\n }\n\n // Hex\n if ((/^#x\\d+$/v).test(code)) {\n return String.fromCodePoint(Number.parseInt(code.slice(2), 16));\n }\n\n return decode(_, {\n level: 'html5',\n });\n }),\n });\n otherInfo.push({\n codeStartCol,\n codeStartLine,\n commentLineCols,\n ext,\n nonJSPrefacingCols,\n targetTagName,\n });\n };\n\n for (const targetSource of sources) {\n addSourceInfo(targetSource);\n }\n };\n\n /**\n *\n * @param {string|null} filename\n * @param {string} [ext] Since `eslint-plugin-markdown` v2, and\n * ESLint 7, this is the default which other JS-fenced rules will used.\n * Formerly \"md\" was the default.\n * @returns {{\n * defaultFileName: string|undefined,\n * filename: string|null,\n * ext: string\n * }}\n */\n const getFilenameInfo = (filename, ext = 'md/*.js') => {\n let defaultFileName;\n if (!filename) {\n if (typeof jsFileName === 'string' && jsFileName.includes('.')) {\n defaultFileName = jsFileName.replace(/\\.[^.]*$/v, `.${ext}`);\n } else {\n defaultFileName = `dummy.${ext}`;\n }\n }\n\n return {\n defaultFileName,\n ext,\n filename,\n };\n };\n\n if (checkDefaults) {\n const filenameInfo = getFilenameInfo(matchingFileNameDefaults, 'jsdoc-defaults');\n forEachPreferredTag(jsdoc, 'default', (tag, targetTagName) => {\n if (!tag.description.trim()) {\n return;\n }\n\n checkSource({\n source: `(${getTagDescription(tag)})`,\n targetTagName,\n ...filenameInfo,\n });\n });\n }\n\n if (checkParams) {\n const filenameInfo = getFilenameInfo(matchingFileNameParams, 'jsdoc-params');\n forEachPreferredTag(jsdoc, 'param', (tag, targetTagName) => {\n if (!tag.default || !tag.default.trim()) {\n return;\n }\n\n checkSource({\n source: `(${tag.default})`,\n targetTagName,\n ...filenameInfo,\n });\n });\n }\n\n if (checkProperties) {\n const filenameInfo = getFilenameInfo(matchingFileNameProperties, 'jsdoc-properties');\n forEachPreferredTag(jsdoc, 'property', (tag, targetTagName) => {\n if (!tag.default || !tag.default.trim()) {\n return;\n }\n\n checkSource({\n source: `(${tag.default})`,\n targetTagName,\n ...filenameInfo,\n });\n });\n }\n\n if (!checkExamples) {\n return textsAndFileNames;\n }\n\n const tagName = /** @type {string} */ (getPreferredTagName(jsdoc, {\n tagName: 'example',\n }));\n if (!hasTag(jsdoc, tagName)) {\n return textsAndFileNames;\n }\n\n const matchingFilenameInfo = getFilenameInfo(matchingFileName);\n\n forEachPreferredTag(jsdoc, 'example', (tag, targetTagName) => {\n let source = /** @type {string} */ (getTagDescription(tag));\n const match = source.match(hasCaptionRegex);\n\n if (captionRequired && (!match || !match[1].trim())) {\n extraMessages.push({\n column: commentLineCols[1] + 1,\n line: 1 + commentLineCols[0] + (tag.line ?? tag.source[0].number),\n message: `@${targetTagName} error - Caption is expected for examples.`,\n ruleId: 'jsdoc/example-missing-caption',\n severity: 2,\n });\n return;\n }\n\n source = source.replace(hasCaptionRegex, '');\n const [\n lines,\n cols,\n ] = match ? getLinesCols(match[0]) : [\n 0, 0,\n ];\n\n if (exampleCodeRegex && !exampleCodeRegExp.test(source) ||\n rejectExampleCodeRegex && rejectExampleCodeRegExp.test(source)\n ) {\n return;\n }\n\n // If `allowedLanguagesToProcess` is falsy, all languages should be processed.\n if (allowedLanguagesToProcess) {\n const matches = (/^\\s*```(?<language>\\S+)([\\s\\S]*)```\\s*$/v).exec(source);\n if (matches?.groups && !allowedLanguagesToProcess.includes(\n matches.groups.language.toLowerCase(),\n )) {\n return;\n }\n }\n\n const sources = [];\n let skipInit = false;\n if (exampleCodeRegex) {\n let nonJSPrefacingCols = 0;\n let nonJSPrefacingLines = 0;\n\n let startingIndex = 0;\n let lastStringCount = 0;\n\n let exampleCode;\n exampleCodeRegExp.lastIndex = 0;\n while ((exampleCode = exampleCodeRegExp.exec(source)) !== null) {\n const {\n '0': n0,\n '1': n1,\n index,\n } = exampleCode;\n\n // Count anything preceding user regex match (can affect line numbering)\n const preMatch = source.slice(startingIndex, index);\n\n const [\n preMatchLines,\n colDelta,\n ] = getLinesCols(preMatch);\n\n let nonJSPreface;\n let nonJSPrefaceLineCount;\n if (n1) {\n const idx = n0.indexOf(n1);\n nonJSPreface = n0.slice(0, idx);\n nonJSPrefaceLineCount = countChars(nonJSPreface, '\\n');\n } else {\n nonJSPreface = '';\n nonJSPrefaceLineCount = 0;\n }\n\n nonJSPrefacingLines += lastStringCount + preMatchLines + nonJSPrefaceLineCount;\n\n // Ignore `preMatch` delta if newlines here\n if (nonJSPrefaceLineCount) {\n const charsInLastLine = nonJSPreface.slice(nonJSPreface.lastIndexOf('\\n') + 1).length;\n\n nonJSPrefacingCols += charsInLastLine;\n } else {\n nonJSPrefacingCols += colDelta + nonJSPreface.length;\n }\n\n const string = n1 || n0;\n sources.push({\n nonJSPrefacingCols,\n nonJSPrefacingLines,\n string,\n });\n startingIndex = exampleCodeRegExp.lastIndex;\n lastStringCount = countChars(string, '\\n');\n if (!exampleCodeRegExp.global) {\n break;\n }\n }\n\n skipInit = true;\n }\n\n checkSource({\n cols,\n lines,\n skipInit,\n source,\n sources,\n tag,\n targetTagName,\n ...matchingFilenameInfo,\n });\n });\n\n return textsAndFileNames;\n };\n\n // See https://eslint.org/docs/latest/extend/plugins#processors-in-plugins\n // See https://eslint.org/docs/latest/extend/custom-processors\n // From https://github.com/eslint/eslint/issues/14745#issuecomment-869457265\n /*\n {\n \"files\": [\"*.js\", \"*.ts\"],\n \"processor\": \"jsdoc/example\" // a pretended value here\n },\n {\n \"files\": [\n \"*.js/*_jsdoc-example.js\",\n \"*.ts/*_jsdoc-example.js\",\n \"*.js/*_jsdoc-example.ts\"\n ],\n \"rules\": {\n // specific rules for examples in jsdoc only here\n // And other rules for `.js` and `.ts` will also be enabled for them\n }\n }\n */\n return {\n meta: {\n name: 'eslint-plugin-jsdoc/processor',\n version,\n },\n processors: {\n examples: {\n meta: {\n name: 'eslint-plugin-jsdoc/preprocessor',\n version,\n },\n /**\n * @param {import('eslint').Linter.LintMessage[][]} messages\n * @param {string} filename\n */\n postprocess ([\n jsMessages,\n ...messages\n // eslint-disable-next-line no-unused-vars -- Placeholder\n ], filename) {\n for (const [\n idx,\n message,\n ] of messages.entries()) {\n const {\n codeStartCol,\n codeStartLine,\n commentLineCols,\n nonJSPrefacingCols,\n targetTagName,\n } = otherInfo[idx];\n\n for (const msg of message) {\n const {\n column,\n endColumn,\n endLine,\n fatal,\n line,\n message: messageText,\n ruleId,\n severity,\n\n // Todo: Make fixable\n // fix\n // fix: {range: [number, number], text: string}\n // suggestions: {desc: , messageId:, fix: }[],\n } = msg;\n delete msg.fix;\n\n const [\n codeCtxLine,\n codeCtxColumn,\n ] = commentLineCols;\n const startLine = codeCtxLine + codeStartLine + line;\n\n // Seems to need one more now\n const startCol = 1 +\n codeCtxColumn + codeStartCol + (\n // This might not work for line 0, but line 0 is unlikely for examples\n line <= 1 ? nonJSPrefacingCols + firstLinePrefixLength : preTagSpaceLength\n ) + column;\n\n msg.message = '@' + targetTagName + ' ' + (severity === 2 ? 'error' : 'warning') +\n (ruleId ? ' (' + ruleId + ')' : '') + ': ' +\n (fatal ? 'Fatal: ' : '') +\n messageText;\n msg.line = startLine;\n msg.column = startCol;\n msg.endLine = endLine ? startLine + endLine : startLine;\n // added `- column` to offset what `endColumn` already seemed to include\n msg.endColumn = endColumn ? startCol - column + endColumn : startCol;\n }\n }\n\n const ret = [\n ...jsMessages,\n ].concat(...messages, ...extraMessages);\n extraMessages = [];\n return ret;\n },\n\n /**\n * @param {string} text\n * @param {string} filename\n * @returns {(string | Linter.ProcessorFile)[]}\n */\n preprocess (text, filename) {\n try {\n let ast;\n\n // May be running a second time so catch and ignore\n try {\n ast = parser ?\n // @ts-expect-error Should be present\n parser.parseForESLint(text, {\n comment: true,\n ecmaVersion: 'latest',\n sourceType,\n }).ast :\n espree.parse(text, {\n comment: true,\n ecmaVersion: 'latest',\n sourceType,\n });\n } catch {\n return [\n text,\n ];\n }\n\n /** @type {[number, number][]} */\n const commentLineCols = [];\n const jsdocComments = /** @type {import('estree').Comment[]} */ (\n /**\n * @type {import('estree').Program & {\n * comments?: import('estree').Comment[]\n * }}\n */\n (ast).comments\n ).filter((comment) => {\n return (/^\\*\\s/v).test(comment.value);\n }).map((comment) => {\n const [\n start,\n /* c8 ignore next -- Unsupporting processors only? */\n ] = comment.range ?? [];\n const textToStart = text.slice(0, start);\n\n const [\n lines,\n cols,\n ] = getLinesCols(textToStart);\n\n // const lines = [...textToStart.matchAll(/\\n/gv)].length\n // const lastLinePos = textToStart.lastIndexOf('\\n');\n // const cols = lastLinePos === -1\n // ? 0\n // : textToStart.slice(lastLinePos).length;\n commentLineCols.push([\n lines, cols,\n ]);\n return parseComment(comment);\n });\n\n return [\n text,\n ...jsdocComments.flatMap((jsdoc, idx) => {\n return getTextsAndFileNames(\n jsdoc,\n filename,\n commentLineCols[idx],\n );\n }).filter(\n /**\n * @param {TextAndFileName} file\n * @returns {file is Linter.ProcessorFile}\n */\n (file) => {\n return file !== null && file !== undefined;\n },\n ),\n ];\n /* c8 ignore next 6 */\n } catch (error) {\n // eslint-disable-next-line no-console -- Debugging\n console.log('err', filename, error);\n }\n\n return [];\n },\n supportsAutofix: true,\n },\n },\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,75 +1,81 @@
1
- import { buildForbidRuleDefinition } from './buildForbidRuleDefinition.js';
2
- import { buildRejectOrPreferRuleDefinition } from './buildRejectOrPreferRuleDefinition.js';
3
- import { getJsdocProcessorPlugin } from './getJsdocProcessorPlugin.js';
4
- import checkAccess from './rules/checkAccess.js';
5
- import checkAlignment from './rules/checkAlignment.js';
6
- import checkExamples from './rules/checkExamples.js';
7
- import checkIndentation from './rules/checkIndentation.js';
8
- import checkLineAlignment from './rules/checkLineAlignment.js';
9
- import checkParamNames from './rules/checkParamNames.js';
10
- import checkPropertyNames from './rules/checkPropertyNames.js';
11
- import checkSyntax from './rules/checkSyntax.js';
12
- import checkTagNames from './rules/checkTagNames.js';
13
- import checkTemplateNames from './rules/checkTemplateNames.js';
14
- import checkTypes from './rules/checkTypes.js';
15
- import checkValues from './rules/checkValues.js';
16
- import convertToJsdocComments from './rules/convertToJsdocComments.js';
17
- import emptyTags from './rules/emptyTags.js';
18
- import escapeInlineTags from './rules/escapeInlineTags.js';
19
- import implementsOnClasses from './rules/implementsOnClasses.js';
20
- import importsAsDependencies from './rules/importsAsDependencies.js';
21
- import informativeDocs from './rules/informativeDocs.js';
22
- import linesBeforeBlock from './rules/linesBeforeBlock.js';
23
- import matchDescription from './rules/matchDescription.js';
24
- import matchName from './rules/matchName.js';
25
- import multilineBlocks from './rules/multilineBlocks.js';
26
- import noBadBlocks from './rules/noBadBlocks.js';
27
- import noBlankBlockDescriptions from './rules/noBlankBlockDescriptions.js';
28
- import noBlankBlocks from './rules/noBlankBlocks.js';
29
- import noDefaults from './rules/noDefaults.js';
30
- import noMissingSyntax from './rules/noMissingSyntax.js';
31
- import noMultiAsterisks from './rules/noMultiAsterisks.js';
32
- import noRestrictedSyntax from './rules/noRestrictedSyntax.js';
33
- import noTypes from './rules/noTypes.js';
34
- import noUndefinedTypes from './rules/noUndefinedTypes.js';
35
- import preferImportTag from './rules/preferImportTag.js';
36
- import requireAsteriskPrefix from './rules/requireAsteriskPrefix.js';
37
- import requireDescription from './rules/requireDescription.js';
38
- import requireDescriptionCompleteSentence from './rules/requireDescriptionCompleteSentence.js';
39
- import requireExample from './rules/requireExample.js';
40
- import requireFileOverview from './rules/requireFileOverview.js';
41
- import requireHyphenBeforeParamDescription from './rules/requireHyphenBeforeParamDescription.js';
42
- import requireJsdoc from './rules/requireJsdoc.js';
43
- import requireParam from './rules/requireParam.js';
44
- import requireParamDescription from './rules/requireParamDescription.js';
45
- import requireParamName from './rules/requireParamName.js';
46
- import requireParamType from './rules/requireParamType.js';
47
- import requireProperty from './rules/requireProperty.js';
48
- import requirePropertyDescription from './rules/requirePropertyDescription.js';
49
- import requirePropertyName from './rules/requirePropertyName.js';
50
- import requirePropertyType from './rules/requirePropertyType.js';
51
- import requireRejects from './rules/requireRejects.js';
52
- import requireReturns from './rules/requireReturns.js';
53
- import requireReturnsCheck from './rules/requireReturnsCheck.js';
54
- import requireReturnsDescription from './rules/requireReturnsDescription.js';
55
- import requireReturnsType from './rules/requireReturnsType.js';
56
- import requireTags from './rules/requireTags.js';
57
- import requireTemplate from './rules/requireTemplate.js';
58
- import requireThrows from './rules/requireThrows.js';
59
- import requireYields from './rules/requireYields.js';
60
- import requireYieldsCheck from './rules/requireYieldsCheck.js';
61
- import sortTags from './rules/sortTags.js';
62
- import tagLines from './rules/tagLines.js';
63
- import textEscaping from './rules/textEscaping.js';
64
- import tsMethodSignatureStyle from './rules/tsMethodSignatureStyle.js';
65
- import tsNoEmptyObjectType from './rules/tsNoEmptyObjectType.js';
66
- import tsNoUnnecessaryTemplateExpression from './rules/tsNoUnnecessaryTemplateExpression.js';
67
- import tsPreferFunctionType from './rules/tsPreferFunctionType.js';
68
- import typeFormatting from './rules/typeFormatting.js';
69
- import validTypes from './rules/validTypes.js';
70
- import { ESLint } from 'eslint';
71
- import semver from 'semver';
1
+ "use strict";
72
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _buildForbidRuleDefinition = require("./buildForbidRuleDefinition.cjs");
8
+ var _buildRejectOrPreferRuleDefinition = require("./buildRejectOrPreferRuleDefinition.cjs");
9
+ var _getJsdocProcessorPlugin = require("./getJsdocProcessorPlugin.cjs");
10
+ var _checkAccess = _interopRequireDefault(require("./rules/checkAccess.cjs"));
11
+ var _checkAlignment = _interopRequireDefault(require("./rules/checkAlignment.cjs"));
12
+ var _checkExamples = _interopRequireDefault(require("./rules/checkExamples.cjs"));
13
+ var _checkIndentation = _interopRequireDefault(require("./rules/checkIndentation.cjs"));
14
+ var _checkLineAlignment = _interopRequireDefault(require("./rules/checkLineAlignment.cjs"));
15
+ var _checkParamNames = _interopRequireDefault(require("./rules/checkParamNames.cjs"));
16
+ var _checkPropertyNames = _interopRequireDefault(require("./rules/checkPropertyNames.cjs"));
17
+ var _checkSyntax = _interopRequireDefault(require("./rules/checkSyntax.cjs"));
18
+ var _checkTagNames = _interopRequireDefault(require("./rules/checkTagNames.cjs"));
19
+ var _checkTemplateNames = _interopRequireDefault(require("./rules/checkTemplateNames.cjs"));
20
+ var _checkTypes = _interopRequireDefault(require("./rules/checkTypes.cjs"));
21
+ var _checkValues = _interopRequireDefault(require("./rules/checkValues.cjs"));
22
+ var _convertToJsdocComments = _interopRequireDefault(require("./rules/convertToJsdocComments.cjs"));
23
+ var _emptyTags = _interopRequireDefault(require("./rules/emptyTags.cjs"));
24
+ var _escapeInlineTags = _interopRequireDefault(require("./rules/escapeInlineTags.cjs"));
25
+ var _implementsOnClasses = _interopRequireDefault(require("./rules/implementsOnClasses.cjs"));
26
+ var _importsAsDependencies = _interopRequireDefault(require("./rules/importsAsDependencies.cjs"));
27
+ var _informativeDocs = _interopRequireDefault(require("./rules/informativeDocs.cjs"));
28
+ var _linesBeforeBlock = _interopRequireDefault(require("./rules/linesBeforeBlock.cjs"));
29
+ var _matchDescription = _interopRequireDefault(require("./rules/matchDescription.cjs"));
30
+ var _matchName = _interopRequireDefault(require("./rules/matchName.cjs"));
31
+ var _multilineBlocks = _interopRequireDefault(require("./rules/multilineBlocks.cjs"));
32
+ var _noBadBlocks = _interopRequireDefault(require("./rules/noBadBlocks.cjs"));
33
+ var _noBlankBlockDescriptions = _interopRequireDefault(require("./rules/noBlankBlockDescriptions.cjs"));
34
+ var _noBlankBlocks = _interopRequireDefault(require("./rules/noBlankBlocks.cjs"));
35
+ var _noDefaults = _interopRequireDefault(require("./rules/noDefaults.cjs"));
36
+ var _noMissingSyntax = _interopRequireDefault(require("./rules/noMissingSyntax.cjs"));
37
+ var _noMultiAsterisks = _interopRequireDefault(require("./rules/noMultiAsterisks.cjs"));
38
+ var _noRestrictedSyntax = _interopRequireDefault(require("./rules/noRestrictedSyntax.cjs"));
39
+ var _noTypes = _interopRequireDefault(require("./rules/noTypes.cjs"));
40
+ var _noUndefinedTypes = _interopRequireDefault(require("./rules/noUndefinedTypes.cjs"));
41
+ var _preferImportTag = _interopRequireDefault(require("./rules/preferImportTag.cjs"));
42
+ var _requireAsteriskPrefix = _interopRequireDefault(require("./rules/requireAsteriskPrefix.cjs"));
43
+ var _requireDescription = _interopRequireDefault(require("./rules/requireDescription.cjs"));
44
+ var _requireDescriptionCompleteSentence = _interopRequireDefault(require("./rules/requireDescriptionCompleteSentence.cjs"));
45
+ var _requireExample = _interopRequireDefault(require("./rules/requireExample.cjs"));
46
+ var _requireFileOverview = _interopRequireDefault(require("./rules/requireFileOverview.cjs"));
47
+ var _requireHyphenBeforeParamDescription = _interopRequireDefault(require("./rules/requireHyphenBeforeParamDescription.cjs"));
48
+ var _requireJsdoc = _interopRequireDefault(require("./rules/requireJsdoc.cjs"));
49
+ var _requireParam = _interopRequireDefault(require("./rules/requireParam.cjs"));
50
+ var _requireParamDescription = _interopRequireDefault(require("./rules/requireParamDescription.cjs"));
51
+ var _requireParamName = _interopRequireDefault(require("./rules/requireParamName.cjs"));
52
+ var _requireParamType = _interopRequireDefault(require("./rules/requireParamType.cjs"));
53
+ var _requireProperty = _interopRequireDefault(require("./rules/requireProperty.cjs"));
54
+ var _requirePropertyDescription = _interopRequireDefault(require("./rules/requirePropertyDescription.cjs"));
55
+ var _requirePropertyName = _interopRequireDefault(require("./rules/requirePropertyName.cjs"));
56
+ var _requirePropertyType = _interopRequireDefault(require("./rules/requirePropertyType.cjs"));
57
+ var _requireRejects = _interopRequireDefault(require("./rules/requireRejects.cjs"));
58
+ var _requireReturns = _interopRequireDefault(require("./rules/requireReturns.cjs"));
59
+ var _requireReturnsCheck = _interopRequireDefault(require("./rules/requireReturnsCheck.cjs"));
60
+ var _requireReturnsDescription = _interopRequireDefault(require("./rules/requireReturnsDescription.cjs"));
61
+ var _requireReturnsType = _interopRequireDefault(require("./rules/requireReturnsType.cjs"));
62
+ var _requireTags = _interopRequireDefault(require("./rules/requireTags.cjs"));
63
+ var _requireTemplate = _interopRequireDefault(require("./rules/requireTemplate.cjs"));
64
+ var _requireThrows = _interopRequireDefault(require("./rules/requireThrows.cjs"));
65
+ var _requireYields = _interopRequireDefault(require("./rules/requireYields.cjs"));
66
+ var _requireYieldsCheck = _interopRequireDefault(require("./rules/requireYieldsCheck.cjs"));
67
+ var _sortTags = _interopRequireDefault(require("./rules/sortTags.cjs"));
68
+ var _tagLines = _interopRequireDefault(require("./rules/tagLines.cjs"));
69
+ var _textEscaping = _interopRequireDefault(require("./rules/textEscaping.cjs"));
70
+ var _tsMethodSignatureStyle = _interopRequireDefault(require("./rules/tsMethodSignatureStyle.cjs"));
71
+ var _tsNoEmptyObjectType = _interopRequireDefault(require("./rules/tsNoEmptyObjectType.cjs"));
72
+ var _tsNoUnnecessaryTemplateExpression = _interopRequireDefault(require("./rules/tsNoUnnecessaryTemplateExpression.cjs"));
73
+ var _tsPreferFunctionType = _interopRequireDefault(require("./rules/tsPreferFunctionType.cjs"));
74
+ var _typeFormatting = _interopRequireDefault(require("./rules/typeFormatting.cjs"));
75
+ var _validTypes = _interopRequireDefault(require("./rules/validTypes.cjs"));
76
+ var _eslint = require("eslint");
77
+ var _semver = _interopRequireDefault(require("semver"));
78
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
73
79
  /**
74
80
  * @typedef {"recommended" | "stylistic" | "contents" | "logical" | "requirements"} ConfigGroups
75
81
  * @typedef {"" | "-typescript" | "-typescript-flavor"} ConfigVariants
@@ -89,39 +95,39 @@ import semver from 'semver';
89
95
  const index = {};
90
96
  index.configs = {};
91
97
  index.rules = {
92
- 'check-access': checkAccess,
93
- 'check-alignment': checkAlignment,
94
- 'check-examples': checkExamples,
95
- 'check-indentation': checkIndentation,
96
- 'check-line-alignment': checkLineAlignment,
97
- 'check-param-names': checkParamNames,
98
- 'check-property-names': checkPropertyNames,
99
- 'check-syntax': checkSyntax,
100
- 'check-tag-names': checkTagNames,
101
- 'check-template-names': checkTemplateNames,
102
- 'check-types': checkTypes,
103
- 'check-values': checkValues,
104
- 'convert-to-jsdoc-comments': convertToJsdocComments,
105
- 'empty-tags': emptyTags,
106
- 'escape-inline-tags': escapeInlineTags,
107
- 'implements-on-classes': implementsOnClasses,
108
- 'imports-as-dependencies': importsAsDependencies,
109
- 'informative-docs': informativeDocs,
110
- 'lines-before-block': linesBeforeBlock,
111
- 'match-description': matchDescription,
112
- 'match-name': matchName,
113
- 'multiline-blocks': multilineBlocks,
114
- 'no-bad-blocks': noBadBlocks,
115
- 'no-blank-block-descriptions': noBlankBlockDescriptions,
116
- 'no-blank-blocks': noBlankBlocks,
117
- 'no-defaults': noDefaults,
118
- 'no-missing-syntax': noMissingSyntax,
119
- 'no-multi-asterisks': noMultiAsterisks,
120
- 'no-restricted-syntax': noRestrictedSyntax,
121
- 'no-types': noTypes,
122
- 'no-undefined-types': noUndefinedTypes,
123
- 'prefer-import-tag': preferImportTag,
124
- 'reject-any-type': buildRejectOrPreferRuleDefinition({
98
+ 'check-access': _checkAccess.default,
99
+ 'check-alignment': _checkAlignment.default,
100
+ 'check-examples': _checkExamples.default,
101
+ 'check-indentation': _checkIndentation.default,
102
+ 'check-line-alignment': _checkLineAlignment.default,
103
+ 'check-param-names': _checkParamNames.default,
104
+ 'check-property-names': _checkPropertyNames.default,
105
+ 'check-syntax': _checkSyntax.default,
106
+ 'check-tag-names': _checkTagNames.default,
107
+ 'check-template-names': _checkTemplateNames.default,
108
+ 'check-types': _checkTypes.default,
109
+ 'check-values': _checkValues.default,
110
+ 'convert-to-jsdoc-comments': _convertToJsdocComments.default,
111
+ 'empty-tags': _emptyTags.default,
112
+ 'escape-inline-tags': _escapeInlineTags.default,
113
+ 'implements-on-classes': _implementsOnClasses.default,
114
+ 'imports-as-dependencies': _importsAsDependencies.default,
115
+ 'informative-docs': _informativeDocs.default,
116
+ 'lines-before-block': _linesBeforeBlock.default,
117
+ 'match-description': _matchDescription.default,
118
+ 'match-name': _matchName.default,
119
+ 'multiline-blocks': _multilineBlocks.default,
120
+ 'no-bad-blocks': _noBadBlocks.default,
121
+ 'no-blank-block-descriptions': _noBlankBlockDescriptions.default,
122
+ 'no-blank-blocks': _noBlankBlocks.default,
123
+ 'no-defaults': _noDefaults.default,
124
+ 'no-missing-syntax': _noMissingSyntax.default,
125
+ 'no-multi-asterisks': _noMultiAsterisks.default,
126
+ 'no-restricted-syntax': _noRestrictedSyntax.default,
127
+ 'no-types': _noTypes.default,
128
+ 'no-undefined-types': _noUndefinedTypes.default,
129
+ 'prefer-import-tag': _preferImportTag.default,
130
+ 'reject-any-type': (0, _buildRejectOrPreferRuleDefinition.buildRejectOrPreferRuleDefinition)({
125
131
  description: 'Reports use of `any` or `*` type',
126
132
  overrideSettings: {
127
133
  '*': {
@@ -137,7 +143,7 @@ index.rules = {
137
143
  },
138
144
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header'
139
145
  }),
140
- 'reject-function-type': buildRejectOrPreferRuleDefinition({
146
+ 'reject-function-type': (0, _buildRejectOrPreferRuleDefinition.buildRejectOrPreferRuleDefinition)({
141
147
  description: 'Reports use of `Function` type',
142
148
  overrideSettings: {
143
149
  Function: {
@@ -148,14 +154,14 @@ index.rules = {
148
154
  },
149
155
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header'
150
156
  }),
151
- 'require-asterisk-prefix': requireAsteriskPrefix,
152
- 'require-description': requireDescription,
153
- 'require-description-complete-sentence': requireDescriptionCompleteSentence,
154
- 'require-example': requireExample,
155
- 'require-file-overview': requireFileOverview,
156
- 'require-hyphen-before-param-description': requireHyphenBeforeParamDescription,
157
- 'require-jsdoc': requireJsdoc,
158
- 'require-next-description': buildForbidRuleDefinition({
157
+ 'require-asterisk-prefix': _requireAsteriskPrefix.default,
158
+ 'require-description': _requireDescription.default,
159
+ 'require-description-complete-sentence': _requireDescriptionCompleteSentence.default,
160
+ 'require-example': _requireExample.default,
161
+ 'require-file-overview': _requireFileOverview.default,
162
+ 'require-hyphen-before-param-description': _requireHyphenBeforeParamDescription.default,
163
+ 'require-jsdoc': _requireJsdoc.default,
164
+ 'require-next-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
159
165
  contexts: [{
160
166
  comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=""]):not([description!=""]))',
161
167
  context: 'any',
@@ -164,7 +170,7 @@ index.rules = {
164
170
  description: 'Requires a description for `@next` tags',
165
171
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header'
166
172
  }),
167
- 'require-next-type': buildForbidRuleDefinition({
173
+ 'require-next-type': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
168
174
  contexts: [{
169
175
  comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([parsedType.type]))',
170
176
  context: 'any',
@@ -173,22 +179,22 @@ index.rules = {
173
179
  description: 'Requires a type for `@next` tags',
174
180
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header'
175
181
  }),
176
- 'require-param': requireParam,
177
- 'require-param-description': requireParamDescription,
178
- 'require-param-name': requireParamName,
179
- 'require-param-type': requireParamType,
180
- 'require-property': requireProperty,
181
- 'require-property-description': requirePropertyDescription,
182
- 'require-property-name': requirePropertyName,
183
- 'require-property-type': requirePropertyType,
184
- 'require-rejects': requireRejects,
185
- 'require-returns': requireReturns,
186
- 'require-returns-check': requireReturnsCheck,
187
- 'require-returns-description': requireReturnsDescription,
188
- 'require-returns-type': requireReturnsType,
189
- 'require-tags': requireTags,
190
- 'require-template': requireTemplate,
191
- 'require-template-description': buildForbidRuleDefinition({
182
+ 'require-param': _requireParam.default,
183
+ 'require-param-description': _requireParamDescription.default,
184
+ 'require-param-name': _requireParamName.default,
185
+ 'require-param-type': _requireParamType.default,
186
+ 'require-property': _requireProperty.default,
187
+ 'require-property-description': _requirePropertyDescription.default,
188
+ 'require-property-name': _requirePropertyName.default,
189
+ 'require-property-type': _requirePropertyType.default,
190
+ 'require-rejects': _requireRejects.default,
191
+ 'require-returns': _requireReturns.default,
192
+ 'require-returns-check': _requireReturnsCheck.default,
193
+ 'require-returns-description': _requireReturnsDescription.default,
194
+ 'require-returns-type': _requireReturnsType.default,
195
+ 'require-tags': _requireTags.default,
196
+ 'require-template': _requireTemplate.default,
197
+ 'require-template-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
192
198
  contexts: [{
193
199
  comment: 'JsdocBlock:has(JsdocTag[tag=template]:not([description!=""]))',
194
200
  context: 'any',
@@ -197,8 +203,8 @@ index.rules = {
197
203
  description: 'Requires a description for `@template` tags',
198
204
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header'
199
205
  }),
200
- 'require-throws': requireThrows,
201
- 'require-throws-description': buildForbidRuleDefinition({
206
+ 'require-throws': _requireThrows.default,
207
+ 'require-throws-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
202
208
  contexts: [{
203
209
  comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([description!=""]))',
204
210
  context: 'any',
@@ -207,7 +213,7 @@ index.rules = {
207
213
  description: 'Requires a description for `@throws` tags',
208
214
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header'
209
215
  }),
210
- 'require-throws-type': buildForbidRuleDefinition({
216
+ 'require-throws-type': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
211
217
  contexts: [{
212
218
  comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([parsedType.type]))',
213
219
  context: 'any',
@@ -216,9 +222,9 @@ index.rules = {
216
222
  description: 'Requires a type for `@throws` tags',
217
223
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header'
218
224
  }),
219
- 'require-yields': requireYields,
220
- 'require-yields-check': requireYieldsCheck,
221
- 'require-yields-description': buildForbidRuleDefinition({
225
+ 'require-yields': _requireYields.default,
226
+ 'require-yields-check': _requireYieldsCheck.default,
227
+ 'require-yields-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
222
228
  contexts: [{
223
229
  comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([name!=""]):not([description!=""]))',
224
230
  context: 'any',
@@ -227,7 +233,7 @@ index.rules = {
227
233
  description: 'Requires a description for `@yields` tags',
228
234
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header'
229
235
  }),
230
- 'require-yields-type': buildForbidRuleDefinition({
236
+ 'require-yields-type': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
231
237
  contexts: [{
232
238
  comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([parsedType.type]))',
233
239
  context: 'any',
@@ -236,15 +242,15 @@ index.rules = {
236
242
  description: 'Requires a type for `@yields` tags',
237
243
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header'
238
244
  }),
239
- 'sort-tags': sortTags,
240
- 'tag-lines': tagLines,
241
- 'text-escaping': textEscaping,
242
- 'ts-method-signature-style': tsMethodSignatureStyle,
243
- 'ts-no-empty-object-type': tsNoEmptyObjectType,
244
- 'ts-no-unnecessary-template-expression': tsNoUnnecessaryTemplateExpression,
245
- 'ts-prefer-function-type': tsPreferFunctionType,
246
- 'type-formatting': typeFormatting,
247
- 'valid-types': validTypes
245
+ 'sort-tags': _sortTags.default,
246
+ 'tag-lines': _tagLines.default,
247
+ 'text-escaping': _textEscaping.default,
248
+ 'ts-method-signature-style': _tsMethodSignatureStyle.default,
249
+ 'ts-no-empty-object-type': _tsNoEmptyObjectType.default,
250
+ 'ts-no-unnecessary-template-expression': _tsNoUnnecessaryTemplateExpression.default,
251
+ 'ts-prefer-function-type': _tsPreferFunctionType.default,
252
+ 'type-formatting': _typeFormatting.default,
253
+ 'valid-types': _validTypes.default
248
254
  };
249
255
 
250
256
  /**
@@ -480,7 +486,7 @@ index.configs.examples = /** @type {import('eslint').Linter.Config[]} */[{
480
486
  files: ['**/*.js'],
481
487
  name: 'jsdoc/examples/processor',
482
488
  plugins: {
483
- examples: getJsdocProcessorPlugin()
489
+ examples: (0, _getJsdocProcessorPlugin.getJsdocProcessorPlugin)()
484
490
  },
485
491
  processor: 'examples/examples'
486
492
  }, {
@@ -508,7 +514,7 @@ index.configs.examples = /** @type {import('eslint').Linter.Config[]} */[{
508
514
  // Unlikely to have inadvertent debugging within examples
509
515
  'no-console': 0,
510
516
  /* c8 ignore next 11 -- Coercion should work */
511
- ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
517
+ ...(_semver.default.gte(_semver.default.coerce(_eslint.ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
512
518
  // "always" newline rule at end unlikely in sample code
513
519
  'eol-last': 0,
514
520
  // Often wish to start `@example` code after newline; also may use
@@ -530,7 +536,7 @@ index.configs['default-expressions'] = /** @type {import('eslint').Linter.Config
530
536
  files: ['**/*.js'],
531
537
  name: 'jsdoc/default-expressions/processor',
532
538
  plugins: {
533
- examples: getJsdocProcessorPlugin({
539
+ examples: (0, _getJsdocProcessorPlugin.getJsdocProcessorPlugin)({
534
540
  checkDefaults: true,
535
541
  checkParams: true,
536
542
  checkProperties: true
@@ -550,7 +556,7 @@ index.configs['default-expressions'] = /** @type {import('eslint').Linter.Config
550
556
  'no-new': 0,
551
557
  'no-unused-expressions': 0,
552
558
  /* c8 ignore next 8 -- Coercion should work */
553
- ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
559
+ ...(_semver.default.gte(_semver.default.coerce(_eslint.ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
554
560
  quotes: ['error', 'double'],
555
561
  semi: ['error', 'never']
556
562
  }),
@@ -560,7 +566,7 @@ index.configs['default-expressions'] = /** @type {import('eslint').Linter.Config
560
566
  index.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.Config[]} */[{
561
567
  name: 'jsdoc/examples-and-default-expressions',
562
568
  plugins: {
563
- examples: getJsdocProcessorPlugin({
569
+ examples: (0, _getJsdocProcessorPlugin.getJsdocProcessorPlugin)({
564
570
  checkDefaults: true,
565
571
  checkParams: true,
566
572
  checkProperties: true
@@ -584,5 +590,6 @@ index.configs['flat/recommended-mixed'] = [{
584
590
  ...index.configs['flat/recommended-typescript'],
585
591
  files: ['**/*.{ts,tsx,cts,mts}']
586
592
  }];
587
- export default index;
593
+ var _default = exports.default = index;
594
+ module.exports = exports.default;
588
595
  //# sourceMappingURL=index-cjs.cjs.map