eslint-plugin-jsdoc 63.0.11 → 63.0.12
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.
- package/dist/WarnSettings.cjs +8 -1
- package/dist/WarnSettings.cjs.map +1 -1
- package/dist/alignTransform.cjs +10 -6
- package/dist/alignTransform.cjs.map +1 -1
- package/dist/buildForbidRuleDefinition.cjs +10 -3
- package/dist/buildForbidRuleDefinition.cjs.map +1 -1
- package/dist/buildRejectOrPreferRuleDefinition.cjs +14 -7
- package/dist/buildRejectOrPreferRuleDefinition.cjs.map +1 -1
- package/dist/defaultTagOrder.cjs +8 -1
- package/dist/defaultTagOrder.cjs.map +1 -1
- package/dist/exportParser.cjs +14 -6
- package/dist/exportParser.cjs.map +1 -1
- package/dist/generateDocs.cjs +44 -36
- package/dist/generateDocs.cjs.map +1 -1
- package/dist/generateOptions.cjs +18 -15
- package/dist/generateOptions.cjs.map +1 -1
- package/dist/generateRule.cjs +24 -24
- package/dist/generateRule.cjs.map +1 -1
- package/dist/generateRuleTypes.cjs +9 -6
- package/dist/generateRuleTypes.cjs.map +1 -1
- package/dist/getDefaultTagStructureForMode.cjs +8 -1
- package/dist/getDefaultTagStructureForMode.cjs.map +1 -1
- package/dist/getJsdocProcessorPlugin.cjs +28 -20
- package/dist/getJsdocProcessorPlugin.cjs.map +1 -1
- package/dist/index-cjs.cjs +159 -152
- package/dist/index-cjs.cjs.map +1 -1
- package/dist/index-esm.cjs +27 -16
- package/dist/index-esm.cjs.map +1 -1
- package/dist/index.cjs +172 -159
- package/dist/index.cjs.map +1 -1
- package/dist/iterateJsdoc.cjs +32 -22
- package/dist/iterateJsdoc.cjs.map +1 -1
- package/dist/jsdocUtils.cjs +86 -18
- package/dist/jsdocUtils.cjs.map +1 -1
- package/dist/rules/checkAccess.cjs +10 -2
- package/dist/rules/checkAccess.cjs.map +1 -1
- package/dist/rules/checkAlignment.cjs +10 -2
- package/dist/rules/checkAlignment.cjs.map +1 -1
- package/dist/rules/checkExamples.cjs +15 -6
- package/dist/rules/checkExamples.cjs.map +1 -1
- package/dist/rules/checkIndentation.cjs +9 -2
- package/dist/rules/checkIndentation.cjs.map +1 -1
- package/dist/rules/checkLineAlignment.cjs +14 -6
- package/dist/rules/checkLineAlignment.cjs.map +1 -1
- package/dist/rules/checkParamNames.cjs +9 -2
- package/dist/rules/checkParamNames.cjs.map +1 -1
- package/dist/rules/checkPropertyNames.cjs +9 -2
- package/dist/rules/checkPropertyNames.cjs.map +1 -1
- package/dist/rules/checkSyntax.cjs +10 -2
- package/dist/rules/checkSyntax.cjs.map +1 -1
- package/dist/rules/checkTagNames.cjs +11 -4
- package/dist/rules/checkTagNames.cjs.map +1 -1
- package/dist/rules/checkTemplateNames.cjs +20 -12
- package/dist/rules/checkTemplateNames.cjs.map +1 -1
- package/dist/rules/checkTypes.cjs +10 -4
- package/dist/rules/checkTypes.cjs.map +1 -1
- package/dist/rules/checkValues.cjs +17 -9
- package/dist/rules/checkValues.cjs.map +1 -1
- package/dist/rules/convertToJsdocComments.cjs +19 -13
- package/dist/rules/convertToJsdocComments.cjs.map +1 -1
- package/dist/rules/emptyTags.cjs +10 -2
- package/dist/rules/emptyTags.cjs.map +1 -1
- package/dist/rules/escapeInlineTags.cjs +10 -2
- package/dist/rules/escapeInlineTags.cjs.map +1 -1
- package/dist/rules/implementsOnClasses.cjs +10 -2
- package/dist/rules/implementsOnClasses.cjs.map +1 -1
- package/dist/rules/importsAsDependencies.cjs +20 -12
- package/dist/rules/importsAsDependencies.cjs.map +1 -1
- package/dist/rules/informativeDocs.cjs +12 -4
- package/dist/rules/informativeDocs.cjs.map +1 -1
- package/dist/rules/linesBeforeBlock.cjs +9 -2
- package/dist/rules/linesBeforeBlock.cjs.map +1 -1
- package/dist/rules/matchDescription.cjs +9 -2
- package/dist/rules/matchDescription.cjs.map +1 -1
- package/dist/rules/matchName.cjs +10 -2
- package/dist/rules/matchName.cjs.map +1 -1
- package/dist/rules/multilineBlocks.cjs +9 -2
- package/dist/rules/multilineBlocks.cjs.map +1 -1
- package/dist/rules/noBadBlocks.cjs +11 -4
- package/dist/rules/noBadBlocks.cjs.map +1 -1
- package/dist/rules/noBlankBlockDescriptions.cjs +10 -2
- package/dist/rules/noBlankBlockDescriptions.cjs.map +1 -1
- package/dist/rules/noBlankBlocks.cjs +10 -2
- package/dist/rules/noBlankBlocks.cjs.map +1 -1
- package/dist/rules/noDefaults.cjs +10 -2
- package/dist/rules/noDefaults.cjs.map +1 -1
- package/dist/rules/noMissingSyntax.cjs +9 -2
- package/dist/rules/noMissingSyntax.cjs.map +1 -1
- package/dist/rules/noMultiAsterisks.cjs +10 -2
- package/dist/rules/noMultiAsterisks.cjs.map +1 -1
- package/dist/rules/noRestrictedSyntax.cjs +9 -2
- package/dist/rules/noRestrictedSyntax.cjs.map +1 -1
- package/dist/rules/noTypes.cjs +9 -2
- package/dist/rules/noTypes.cjs.map +1 -1
- package/dist/rules/noUndefinedTypes.cjs +21 -13
- package/dist/rules/noUndefinedTypes.cjs.map +1 -1
- package/dist/rules/preferImportTag.cjs +28 -21
- package/dist/rules/preferImportTag.cjs.map +1 -1
- package/dist/rules/requireAsteriskPrefix.cjs +10 -2
- package/dist/rules/requireAsteriskPrefix.cjs.map +1 -1
- package/dist/rules/requireDescription.cjs +9 -2
- package/dist/rules/requireDescription.cjs.map +1 -1
- package/dist/rules/requireDescriptionCompleteSentence.cjs +15 -7
- package/dist/rules/requireDescriptionCompleteSentence.cjs.map +1 -1
- package/dist/rules/requireExample.cjs +10 -2
- package/dist/rules/requireExample.cjs.map +1 -1
- package/dist/rules/requireFileOverview.cjs +10 -2
- package/dist/rules/requireFileOverview.cjs.map +1 -1
- package/dist/rules/requireHyphenBeforeParamDescription.cjs +10 -2
- package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +1 -1
- package/dist/rules/requireJsdoc.cjs +24 -17
- package/dist/rules/requireJsdoc.cjs.map +1 -1
- package/dist/rules/requireParam.cjs +9 -2
- package/dist/rules/requireParam.cjs.map +1 -1
- package/dist/rules/requireParamDescription.cjs +10 -2
- package/dist/rules/requireParamDescription.cjs.map +1 -1
- package/dist/rules/requireParamName.cjs +10 -2
- package/dist/rules/requireParamName.cjs.map +1 -1
- package/dist/rules/requireParamType.cjs +10 -2
- package/dist/rules/requireParamType.cjs.map +1 -1
- package/dist/rules/requireProperty.cjs +10 -2
- package/dist/rules/requireProperty.cjs.map +1 -1
- package/dist/rules/requirePropertyDescription.cjs +10 -2
- package/dist/rules/requirePropertyDescription.cjs.map +1 -1
- package/dist/rules/requirePropertyName.cjs +10 -2
- package/dist/rules/requirePropertyName.cjs.map +1 -1
- package/dist/rules/requirePropertyType.cjs +10 -2
- package/dist/rules/requirePropertyType.cjs.map +1 -1
- package/dist/rules/requireRejects.cjs +9 -2
- package/dist/rules/requireRejects.cjs.map +1 -1
- package/dist/rules/requireReturns.cjs +11 -4
- package/dist/rules/requireReturns.cjs.map +1 -1
- package/dist/rules/requireReturnsCheck.cjs +15 -8
- package/dist/rules/requireReturnsCheck.cjs.map +1 -1
- package/dist/rules/requireReturnsDescription.cjs +10 -2
- package/dist/rules/requireReturnsDescription.cjs.map +1 -1
- package/dist/rules/requireReturnsType.cjs +10 -2
- package/dist/rules/requireReturnsType.cjs.map +1 -1
- package/dist/rules/requireTags.cjs +9 -2
- package/dist/rules/requireTags.cjs.map +1 -1
- package/dist/rules/requireTemplate.cjs +13 -5
- package/dist/rules/requireTemplate.cjs.map +1 -1
- package/dist/rules/requireThrows.cjs +9 -2
- package/dist/rules/requireThrows.cjs.map +1 -1
- package/dist/rules/requireYields.cjs +9 -2
- package/dist/rules/requireYields.cjs.map +1 -1
- package/dist/rules/requireYieldsCheck.cjs +9 -2
- package/dist/rules/requireYieldsCheck.cjs.map +1 -1
- package/dist/rules/sortTags.cjs +12 -4
- package/dist/rules/sortTags.cjs.map +1 -1
- package/dist/rules/tagLines.cjs +9 -2
- package/dist/rules/tagLines.cjs.map +1 -1
- package/dist/rules/textEscaping.cjs +9 -2
- package/dist/rules/textEscaping.cjs.map +1 -1
- package/dist/rules/tsMethodSignatureStyle.cjs +18 -10
- package/dist/rules/tsMethodSignatureStyle.cjs.map +1 -1
- package/dist/rules/tsNoEmptyObjectType.cjs +13 -5
- package/dist/rules/tsNoEmptyObjectType.cjs.map +1 -1
- package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +16 -8
- package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +1 -1
- package/dist/rules/tsPreferFunctionType.cjs +16 -8
- package/dist/rules/tsPreferFunctionType.cjs.map +1 -1
- package/dist/rules/typeFormatting.cjs +17 -9
- package/dist/rules/typeFormatting.cjs.map +1 -1
- package/dist/rules/validTypes.cjs +18 -10
- package/dist/rules/validTypes.cjs.map +1 -1
- package/dist/tagNames.cjs +9 -4
- package/dist/tagNames.cjs.map +1 -1
- package/dist/utils/hasReturnValue.cjs +8 -1
- package/dist/utils/hasReturnValue.cjs.map +1 -1
- 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":[]}
|
package/dist/index-cjs.cjs
CHANGED
|
@@ -1,75 +1,81 @@
|
|
|
1
|
-
|
|
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':
|
|
93
|
-
'check-alignment':
|
|
94
|
-
'check-examples':
|
|
95
|
-
'check-indentation':
|
|
96
|
-
'check-line-alignment':
|
|
97
|
-
'check-param-names':
|
|
98
|
-
'check-property-names':
|
|
99
|
-
'check-syntax':
|
|
100
|
-
'check-tag-names':
|
|
101
|
-
'check-template-names':
|
|
102
|
-
'check-types':
|
|
103
|
-
'check-values':
|
|
104
|
-
'convert-to-jsdoc-comments':
|
|
105
|
-
'empty-tags':
|
|
106
|
-
'escape-inline-tags':
|
|
107
|
-
'implements-on-classes':
|
|
108
|
-
'imports-as-dependencies':
|
|
109
|
-
'informative-docs':
|
|
110
|
-
'lines-before-block':
|
|
111
|
-
'match-description':
|
|
112
|
-
'match-name':
|
|
113
|
-
'multiline-blocks':
|
|
114
|
-
'no-bad-blocks':
|
|
115
|
-
'no-blank-block-descriptions':
|
|
116
|
-
'no-blank-blocks':
|
|
117
|
-
'no-defaults':
|
|
118
|
-
'no-missing-syntax':
|
|
119
|
-
'no-multi-asterisks':
|
|
120
|
-
'no-restricted-syntax':
|
|
121
|
-
'no-types':
|
|
122
|
-
'no-undefined-types':
|
|
123
|
-
'prefer-import-tag':
|
|
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':
|
|
152
|
-
'require-description':
|
|
153
|
-
'require-description-complete-sentence':
|
|
154
|
-
'require-example':
|
|
155
|
-
'require-file-overview':
|
|
156
|
-
'require-hyphen-before-param-description':
|
|
157
|
-
'require-jsdoc':
|
|
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':
|
|
177
|
-
'require-param-description':
|
|
178
|
-
'require-param-name':
|
|
179
|
-
'require-param-type':
|
|
180
|
-
'require-property':
|
|
181
|
-
'require-property-description':
|
|
182
|
-
'require-property-name':
|
|
183
|
-
'require-property-type':
|
|
184
|
-
'require-rejects':
|
|
185
|
-
'require-returns':
|
|
186
|
-
'require-returns-check':
|
|
187
|
-
'require-returns-description':
|
|
188
|
-
'require-returns-type':
|
|
189
|
-
'require-tags':
|
|
190
|
-
'require-template':
|
|
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':
|
|
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':
|
|
220
|
-
'require-yields-check':
|
|
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':
|
|
240
|
-
'tag-lines':
|
|
241
|
-
'text-escaping':
|
|
242
|
-
'ts-method-signature-style':
|
|
243
|
-
'ts-no-empty-object-type':
|
|
244
|
-
'ts-no-unnecessary-template-expression':
|
|
245
|
-
'ts-prefer-function-type':
|
|
246
|
-
'type-formatting':
|
|
247
|
-
'valid-types':
|
|
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
|
-
...(
|
|
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
|
-
...(
|
|
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
|
-
|
|
593
|
+
var _default = exports.default = index;
|
|
594
|
+
module.exports = exports.default;
|
|
588
595
|
//# sourceMappingURL=index-cjs.cjs.map
|