eslint-plugin-jsdoc 63.0.10 → 63.0.11

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 (173) hide show
  1. package/dist/WarnSettings.cjs +1 -8
  2. package/dist/WarnSettings.cjs.map +1 -1
  3. package/dist/alignTransform.cjs +6 -10
  4. package/dist/alignTransform.cjs.map +1 -1
  5. package/dist/buildForbidRuleDefinition.cjs +3 -10
  6. package/dist/buildForbidRuleDefinition.cjs.map +1 -1
  7. package/dist/buildRejectOrPreferRuleDefinition.cjs +7 -14
  8. package/dist/buildRejectOrPreferRuleDefinition.cjs.map +1 -1
  9. package/dist/defaultTagOrder.cjs +1 -8
  10. package/dist/defaultTagOrder.cjs.map +1 -1
  11. package/dist/exportParser.cjs +6 -14
  12. package/dist/exportParser.cjs.map +1 -1
  13. package/dist/generateDocs.cjs +36 -44
  14. package/dist/generateDocs.cjs.map +1 -1
  15. package/dist/generateOptions.cjs +15 -18
  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 +6 -9
  20. package/dist/generateRuleTypes.cjs.map +1 -1
  21. package/dist/getDefaultTagStructureForMode.cjs +1 -8
  22. package/dist/getDefaultTagStructureForMode.cjs.map +1 -1
  23. package/dist/getJsdocProcessorPlugin.cjs +20 -28
  24. package/dist/getJsdocProcessorPlugin.cjs.map +1 -1
  25. package/dist/index-cjs.cjs +152 -159
  26. package/dist/index-cjs.cjs.map +1 -1
  27. package/dist/index-esm.cjs +16 -27
  28. package/dist/index-esm.cjs.map +1 -1
  29. package/dist/index.cjs +159 -172
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/iterateJsdoc.cjs +22 -32
  32. package/dist/iterateJsdoc.cjs.map +1 -1
  33. package/dist/jsdocUtils.cjs +18 -86
  34. package/dist/jsdocUtils.cjs.map +1 -1
  35. package/dist/rules/checkAccess.cjs +2 -10
  36. package/dist/rules/checkAccess.cjs.map +1 -1
  37. package/dist/rules/checkAlignment.cjs +2 -10
  38. package/dist/rules/checkAlignment.cjs.map +1 -1
  39. package/dist/rules/checkExamples.cjs +6 -15
  40. package/dist/rules/checkExamples.cjs.map +1 -1
  41. package/dist/rules/checkIndentation.cjs +2 -9
  42. package/dist/rules/checkIndentation.cjs.map +1 -1
  43. package/dist/rules/checkLineAlignment.cjs +6 -14
  44. package/dist/rules/checkLineAlignment.cjs.map +1 -1
  45. package/dist/rules/checkParamNames.cjs +2 -9
  46. package/dist/rules/checkParamNames.cjs.map +1 -1
  47. package/dist/rules/checkPropertyNames.cjs +2 -9
  48. package/dist/rules/checkPropertyNames.cjs.map +1 -1
  49. package/dist/rules/checkSyntax.cjs +2 -10
  50. package/dist/rules/checkSyntax.cjs.map +1 -1
  51. package/dist/rules/checkTagNames.cjs +4 -11
  52. package/dist/rules/checkTagNames.cjs.map +1 -1
  53. package/dist/rules/checkTemplateNames.cjs +12 -21
  54. package/dist/rules/checkTemplateNames.cjs.map +1 -1
  55. package/dist/rules/checkTypes.cjs +4 -10
  56. package/dist/rules/checkTypes.cjs.map +1 -1
  57. package/dist/rules/checkValues.cjs +9 -17
  58. package/dist/rules/checkValues.cjs.map +1 -1
  59. package/dist/rules/convertToJsdocComments.cjs +13 -19
  60. package/dist/rules/convertToJsdocComments.cjs.map +1 -1
  61. package/dist/rules/emptyTags.cjs +2 -10
  62. package/dist/rules/emptyTags.cjs.map +1 -1
  63. package/dist/rules/escapeInlineTags.cjs +2 -10
  64. package/dist/rules/escapeInlineTags.cjs.map +1 -1
  65. package/dist/rules/implementsOnClasses.cjs +2 -10
  66. package/dist/rules/implementsOnClasses.cjs.map +1 -1
  67. package/dist/rules/importsAsDependencies.cjs +12 -20
  68. package/dist/rules/importsAsDependencies.cjs.map +1 -1
  69. package/dist/rules/informativeDocs.cjs +4 -12
  70. package/dist/rules/informativeDocs.cjs.map +1 -1
  71. package/dist/rules/linesBeforeBlock.cjs +2 -9
  72. package/dist/rules/linesBeforeBlock.cjs.map +1 -1
  73. package/dist/rules/matchDescription.cjs +2 -9
  74. package/dist/rules/matchDescription.cjs.map +1 -1
  75. package/dist/rules/matchName.cjs +2 -10
  76. package/dist/rules/matchName.cjs.map +1 -1
  77. package/dist/rules/multilineBlocks.cjs +2 -9
  78. package/dist/rules/multilineBlocks.cjs.map +1 -1
  79. package/dist/rules/noBadBlocks.cjs +4 -11
  80. package/dist/rules/noBadBlocks.cjs.map +1 -1
  81. package/dist/rules/noBlankBlockDescriptions.cjs +2 -10
  82. package/dist/rules/noBlankBlockDescriptions.cjs.map +1 -1
  83. package/dist/rules/noBlankBlocks.cjs +2 -10
  84. package/dist/rules/noBlankBlocks.cjs.map +1 -1
  85. package/dist/rules/noDefaults.cjs +2 -10
  86. package/dist/rules/noDefaults.cjs.map +1 -1
  87. package/dist/rules/noMissingSyntax.cjs +2 -9
  88. package/dist/rules/noMissingSyntax.cjs.map +1 -1
  89. package/dist/rules/noMultiAsterisks.cjs +2 -10
  90. package/dist/rules/noMultiAsterisks.cjs.map +1 -1
  91. package/dist/rules/noRestrictedSyntax.cjs +2 -9
  92. package/dist/rules/noRestrictedSyntax.cjs.map +1 -1
  93. package/dist/rules/noTypes.cjs +2 -9
  94. package/dist/rules/noTypes.cjs.map +1 -1
  95. package/dist/rules/noUndefinedTypes.cjs +13 -21
  96. package/dist/rules/noUndefinedTypes.cjs.map +1 -1
  97. package/dist/rules/preferImportTag.cjs +21 -28
  98. package/dist/rules/preferImportTag.cjs.map +1 -1
  99. package/dist/rules/requireAsteriskPrefix.cjs +2 -10
  100. package/dist/rules/requireAsteriskPrefix.cjs.map +1 -1
  101. package/dist/rules/requireDescription.cjs +2 -9
  102. package/dist/rules/requireDescription.cjs.map +1 -1
  103. package/dist/rules/requireDescriptionCompleteSentence.cjs +7 -15
  104. package/dist/rules/requireDescriptionCompleteSentence.cjs.map +1 -1
  105. package/dist/rules/requireExample.cjs +2 -10
  106. package/dist/rules/requireExample.cjs.map +1 -1
  107. package/dist/rules/requireFileOverview.cjs +2 -10
  108. package/dist/rules/requireFileOverview.cjs.map +1 -1
  109. package/dist/rules/requireHyphenBeforeParamDescription.cjs +2 -10
  110. package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +1 -1
  111. package/dist/rules/requireJsdoc.cjs +17 -25
  112. package/dist/rules/requireJsdoc.cjs.map +1 -1
  113. package/dist/rules/requireParam.cjs +2 -9
  114. package/dist/rules/requireParam.cjs.map +1 -1
  115. package/dist/rules/requireParamDescription.cjs +2 -10
  116. package/dist/rules/requireParamDescription.cjs.map +1 -1
  117. package/dist/rules/requireParamName.cjs +2 -10
  118. package/dist/rules/requireParamName.cjs.map +1 -1
  119. package/dist/rules/requireParamType.cjs +2 -10
  120. package/dist/rules/requireParamType.cjs.map +1 -1
  121. package/dist/rules/requireProperty.cjs +2 -10
  122. package/dist/rules/requireProperty.cjs.map +1 -1
  123. package/dist/rules/requirePropertyDescription.cjs +2 -10
  124. package/dist/rules/requirePropertyDescription.cjs.map +1 -1
  125. package/dist/rules/requirePropertyName.cjs +2 -10
  126. package/dist/rules/requirePropertyName.cjs.map +1 -1
  127. package/dist/rules/requirePropertyType.cjs +2 -10
  128. package/dist/rules/requirePropertyType.cjs.map +1 -1
  129. package/dist/rules/requireRejects.cjs +2 -9
  130. package/dist/rules/requireRejects.cjs.map +1 -1
  131. package/dist/rules/requireReturns.cjs +4 -11
  132. package/dist/rules/requireReturns.cjs.map +1 -1
  133. package/dist/rules/requireReturnsCheck.cjs +8 -15
  134. package/dist/rules/requireReturnsCheck.cjs.map +1 -1
  135. package/dist/rules/requireReturnsDescription.cjs +2 -10
  136. package/dist/rules/requireReturnsDescription.cjs.map +1 -1
  137. package/dist/rules/requireReturnsType.cjs +2 -10
  138. package/dist/rules/requireReturnsType.cjs.map +1 -1
  139. package/dist/rules/requireTags.cjs +2 -9
  140. package/dist/rules/requireTags.cjs.map +1 -1
  141. package/dist/rules/requireTemplate.cjs +5 -13
  142. package/dist/rules/requireTemplate.cjs.map +1 -1
  143. package/dist/rules/requireThrows.cjs +2 -9
  144. package/dist/rules/requireThrows.cjs.map +1 -1
  145. package/dist/rules/requireYields.cjs +2 -9
  146. package/dist/rules/requireYields.cjs.map +1 -1
  147. package/dist/rules/requireYieldsCheck.cjs +2 -9
  148. package/dist/rules/requireYieldsCheck.cjs.map +1 -1
  149. package/dist/rules/sortTags.cjs +4 -12
  150. package/dist/rules/sortTags.cjs.map +1 -1
  151. package/dist/rules/tagLines.cjs +2 -9
  152. package/dist/rules/tagLines.cjs.map +1 -1
  153. package/dist/rules/textEscaping.cjs +2 -9
  154. package/dist/rules/textEscaping.cjs.map +1 -1
  155. package/dist/rules/tsMethodSignatureStyle.cjs +10 -18
  156. package/dist/rules/tsMethodSignatureStyle.cjs.map +1 -1
  157. package/dist/rules/tsNoEmptyObjectType.cjs +5 -13
  158. package/dist/rules/tsNoEmptyObjectType.cjs.map +1 -1
  159. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +8 -16
  160. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +1 -1
  161. package/dist/rules/tsPreferFunctionType.cjs +8 -16
  162. package/dist/rules/tsPreferFunctionType.cjs.map +1 -1
  163. package/dist/rules/typeFormatting.cjs +9 -17
  164. package/dist/rules/typeFormatting.cjs.map +1 -1
  165. package/dist/rules/validTypes.cjs +10 -18
  166. package/dist/rules/validTypes.cjs.map +1 -1
  167. package/dist/tagNames.cjs +4 -9
  168. package/dist/tagNames.cjs.map +1 -1
  169. package/dist/utils/hasReturnValue.cjs +1 -8
  170. package/dist/utils/hasReturnValue.cjs.map +1 -1
  171. package/package.json +21 -21
  172. package/src/rules/checkTemplateNames.js +0 -1
  173. package/src/rules/requireJsdoc.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"getJsdocProcessorPlugin.cjs","names":["_jsdocUtils","require","_jsdoccomment","espree","_interopRequireWildcard","_htmlEntities","_nodeFs","_nodePath","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","version","JSON","parse","readFileSync","join","__dirname","likelyNestedJSDocIndentSpace","preTagSpaceLength","firstLinePrefixLength","hasCaptionRegex","escapeStringRegexp","str","replaceAll","countChars","ch","match","RegExp","length","getLinesCols","text","matchLines","colDelta","slice","lastIndexOf","getJsdocProcessorPlugin","options","allowedLanguagesToProcess","captionRequired","checkDefaults","checkExamples","checkParams","checkProperties","exampleCodeRegex","matchingFileName","matchingFileNameDefaults","matchingFileNameParams","matchingFileNameProperties","paddedIndent","parser","undefined","rejectExampleCodeRegex","sourceType","exampleCodeRegExp","rejectExampleCodeRegExp","getRegexFromString","otherInfo","extraMessages","getTextsAndFileNames","jsdoc","jsFileName","commentLineCols","textsAndFileNames","checkSource","cols","defaultFileName","ext","filename","lines","skipInit","source","sources","tag","line","targetTagName","push","nonJSPrefacingCols","nonJSPrefacingLines","string","addSourceInfo","src","file","number","codeStartLine","codeStartCol","_","code","test","String","fromCodePoint","Number","parseInt","decode","level","targetSource","getFilenameInfo","includes","replace","filenameInfo","forEachPreferredTag","description","trim","getTagDescription","tagName","getPreferredTagName","hasTag","matchingFilenameInfo","column","message","ruleId","severity","matches","exec","groups","language","toLowerCase","startingIndex","lastStringCount","exampleCode","lastIndex","n0","n1","index","preMatch","preMatchLines","nonJSPreface","nonJSPrefaceLineCount","idx","indexOf","charsInLastLine","global","meta","name","processors","examples","postprocess","jsMessages","messages","entries","msg","endColumn","endLine","fatal","messageText","fix","codeCtxLine","codeCtxColumn","startLine","startCol","ret","concat","preprocess","ast","parseForESLint","comment","ecmaVersion","jsdocComments","comments","filter","value","map","start","range","textToStart","parseComment","flatMap","error","console","log","supportsAutofix","exports"],"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":[],"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,81 +1,75 @@
1
- "use strict";
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';
2
72
 
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 }; }
79
73
  /**
80
74
  * @typedef {"recommended" | "stylistic" | "contents" | "logical" | "requirements"} ConfigGroups
81
75
  * @typedef {"" | "-typescript" | "-typescript-flavor"} ConfigVariants
@@ -95,39 +89,39 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
95
89
  const index = {};
96
90
  index.configs = {};
97
91
  index.rules = {
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)({
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({
131
125
  description: 'Reports use of `any` or `*` type',
132
126
  overrideSettings: {
133
127
  '*': {
@@ -143,7 +137,7 @@ index.rules = {
143
137
  },
144
138
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header'
145
139
  }),
146
- 'reject-function-type': (0, _buildRejectOrPreferRuleDefinition.buildRejectOrPreferRuleDefinition)({
140
+ 'reject-function-type': buildRejectOrPreferRuleDefinition({
147
141
  description: 'Reports use of `Function` type',
148
142
  overrideSettings: {
149
143
  Function: {
@@ -154,14 +148,14 @@ index.rules = {
154
148
  },
155
149
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header'
156
150
  }),
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)({
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({
165
159
  contexts: [{
166
160
  comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=""]):not([description!=""]))',
167
161
  context: 'any',
@@ -170,7 +164,7 @@ index.rules = {
170
164
  description: 'Requires a description for `@next` tags',
171
165
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header'
172
166
  }),
173
- 'require-next-type': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
167
+ 'require-next-type': buildForbidRuleDefinition({
174
168
  contexts: [{
175
169
  comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([parsedType.type]))',
176
170
  context: 'any',
@@ -179,22 +173,22 @@ index.rules = {
179
173
  description: 'Requires a type for `@next` tags',
180
174
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header'
181
175
  }),
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)({
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({
198
192
  contexts: [{
199
193
  comment: 'JsdocBlock:has(JsdocTag[tag=template]:not([description!=""]))',
200
194
  context: 'any',
@@ -203,8 +197,8 @@ index.rules = {
203
197
  description: 'Requires a description for `@template` tags',
204
198
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header'
205
199
  }),
206
- 'require-throws': _requireThrows.default,
207
- 'require-throws-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
200
+ 'require-throws': requireThrows,
201
+ 'require-throws-description': buildForbidRuleDefinition({
208
202
  contexts: [{
209
203
  comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([description!=""]))',
210
204
  context: 'any',
@@ -213,7 +207,7 @@ index.rules = {
213
207
  description: 'Requires a description for `@throws` tags',
214
208
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header'
215
209
  }),
216
- 'require-throws-type': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
210
+ 'require-throws-type': buildForbidRuleDefinition({
217
211
  contexts: [{
218
212
  comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([parsedType.type]))',
219
213
  context: 'any',
@@ -222,9 +216,9 @@ index.rules = {
222
216
  description: 'Requires a type for `@throws` tags',
223
217
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header'
224
218
  }),
225
- 'require-yields': _requireYields.default,
226
- 'require-yields-check': _requireYieldsCheck.default,
227
- 'require-yields-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
219
+ 'require-yields': requireYields,
220
+ 'require-yields-check': requireYieldsCheck,
221
+ 'require-yields-description': buildForbidRuleDefinition({
228
222
  contexts: [{
229
223
  comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([name!=""]):not([description!=""]))',
230
224
  context: 'any',
@@ -233,7 +227,7 @@ index.rules = {
233
227
  description: 'Requires a description for `@yields` tags',
234
228
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header'
235
229
  }),
236
- 'require-yields-type': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
230
+ 'require-yields-type': buildForbidRuleDefinition({
237
231
  contexts: [{
238
232
  comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([parsedType.type]))',
239
233
  context: 'any',
@@ -242,15 +236,15 @@ index.rules = {
242
236
  description: 'Requires a type for `@yields` tags',
243
237
  url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header'
244
238
  }),
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
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
254
248
  };
255
249
 
256
250
  /**
@@ -486,7 +480,7 @@ index.configs.examples = /** @type {import('eslint').Linter.Config[]} */[{
486
480
  files: ['**/*.js'],
487
481
  name: 'jsdoc/examples/processor',
488
482
  plugins: {
489
- examples: (0, _getJsdocProcessorPlugin.getJsdocProcessorPlugin)()
483
+ examples: getJsdocProcessorPlugin()
490
484
  },
491
485
  processor: 'examples/examples'
492
486
  }, {
@@ -514,7 +508,7 @@ index.configs.examples = /** @type {import('eslint').Linter.Config[]} */[{
514
508
  // Unlikely to have inadvertent debugging within examples
515
509
  'no-console': 0,
516
510
  /* c8 ignore next 11 -- Coercion should work */
517
- ...(_semver.default.gte(_semver.default.coerce(_eslint.ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
511
+ ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
518
512
  // "always" newline rule at end unlikely in sample code
519
513
  'eol-last': 0,
520
514
  // Often wish to start `@example` code after newline; also may use
@@ -536,7 +530,7 @@ index.configs['default-expressions'] = /** @type {import('eslint').Linter.Config
536
530
  files: ['**/*.js'],
537
531
  name: 'jsdoc/default-expressions/processor',
538
532
  plugins: {
539
- examples: (0, _getJsdocProcessorPlugin.getJsdocProcessorPlugin)({
533
+ examples: getJsdocProcessorPlugin({
540
534
  checkDefaults: true,
541
535
  checkParams: true,
542
536
  checkProperties: true
@@ -556,7 +550,7 @@ index.configs['default-expressions'] = /** @type {import('eslint').Linter.Config
556
550
  'no-new': 0,
557
551
  'no-unused-expressions': 0,
558
552
  /* c8 ignore next 8 -- Coercion should work */
559
- ...(_semver.default.gte(_semver.default.coerce(_eslint.ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
553
+ ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
560
554
  quotes: ['error', 'double'],
561
555
  semi: ['error', 'never']
562
556
  }),
@@ -566,7 +560,7 @@ index.configs['default-expressions'] = /** @type {import('eslint').Linter.Config
566
560
  index.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.Config[]} */[{
567
561
  name: 'jsdoc/examples-and-default-expressions',
568
562
  plugins: {
569
- examples: (0, _getJsdocProcessorPlugin.getJsdocProcessorPlugin)({
563
+ examples: getJsdocProcessorPlugin({
570
564
  checkDefaults: true,
571
565
  checkParams: true,
572
566
  checkProperties: true
@@ -590,6 +584,5 @@ index.configs['flat/recommended-mixed'] = [{
590
584
  ...index.configs['flat/recommended-typescript'],
591
585
  files: ['**/*.{ts,tsx,cts,mts}']
592
586
  }];
593
- var _default = exports.default = index;
594
- module.exports = exports.default;
587
+ export default index;
595
588
  //# sourceMappingURL=index-cjs.cjs.map