eslint-plugin-jsdoc 52.0.3 → 53.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["checkAccess","checkAlignment","checkExamples","checkIndentation","checkLineAlignment","checkParamNames","checkPropertyNames","checkSyntax","checkTagNames","checkTemplateNames","checkTypes","checkValues","convertToJsdocComments","emptyTags","implementsOnClasses","importsAsDependencies","informativeDocs","linesBeforeBlock","matchDescription","matchName","multilineBlocks","noBadBlocks","noBlankBlockDescriptions","noBlankBlocks","noDefaults","noMissingSyntax","noMultiAsterisks","noRestrictedSyntax","noTypes","noUndefinedTypes","requireAsteriskPrefix","requireDescription","requireDescriptionCompleteSentence","requireExample","requireFileOverview","requireHyphenBeforeParamDescription","requireJsdoc","requireParam","requireParamDescription","requireParamName","requireParamType","requireProperty","requirePropertyDescription","requirePropertyName","requirePropertyType","requireReturns","requireReturnsCheck","requireReturnsDescription","requireReturnsType","requireTemplate","requireThrows","requireYields","requireYieldsCheck","sortTags","tagLines","textEscaping","validTypes"],"sources":["../src/index.js"],"sourcesContent":["import {\n getJsdocProcessorPlugin,\n} from './getJsdocProcessorPlugin.js';\nimport checkAccess from './rules/checkAccess.js';\nimport checkAlignment from './rules/checkAlignment.js';\nimport checkExamples from './rules/checkExamples.js';\nimport checkIndentation from './rules/checkIndentation.js';\nimport checkLineAlignment from './rules/checkLineAlignment.js';\nimport checkParamNames from './rules/checkParamNames.js';\nimport checkPropertyNames from './rules/checkPropertyNames.js';\nimport checkSyntax from './rules/checkSyntax.js';\nimport checkTagNames from './rules/checkTagNames.js';\nimport checkTemplateNames from './rules/checkTemplateNames.js';\nimport checkTypes from './rules/checkTypes.js';\nimport checkValues from './rules/checkValues.js';\nimport convertToJsdocComments from './rules/convertToJsdocComments.js';\nimport emptyTags from './rules/emptyTags.js';\nimport implementsOnClasses from './rules/implementsOnClasses.js';\nimport importsAsDependencies from './rules/importsAsDependencies.js';\nimport informativeDocs from './rules/informativeDocs.js';\nimport linesBeforeBlock from './rules/linesBeforeBlock.js';\nimport matchDescription from './rules/matchDescription.js';\nimport matchName from './rules/matchName.js';\nimport multilineBlocks from './rules/multilineBlocks.js';\nimport noBadBlocks from './rules/noBadBlocks.js';\nimport noBlankBlockDescriptions from './rules/noBlankBlockDescriptions.js';\nimport noBlankBlocks from './rules/noBlankBlocks.js';\nimport noDefaults from './rules/noDefaults.js';\nimport noMissingSyntax from './rules/noMissingSyntax.js';\nimport noMultiAsterisks from './rules/noMultiAsterisks.js';\nimport noRestrictedSyntax from './rules/noRestrictedSyntax.js';\nimport noTypes from './rules/noTypes.js';\nimport noUndefinedTypes from './rules/noUndefinedTypes.js';\nimport requireAsteriskPrefix from './rules/requireAsteriskPrefix.js';\nimport requireDescription from './rules/requireDescription.js';\nimport requireDescriptionCompleteSentence from './rules/requireDescriptionCompleteSentence.js';\nimport requireExample from './rules/requireExample.js';\nimport requireFileOverview from './rules/requireFileOverview.js';\nimport requireHyphenBeforeParamDescription from './rules/requireHyphenBeforeParamDescription.js';\nimport requireJsdoc from './rules/requireJsdoc.js';\nimport requireParam from './rules/requireParam.js';\nimport requireParamDescription from './rules/requireParamDescription.js';\nimport requireParamName from './rules/requireParamName.js';\nimport requireParamType from './rules/requireParamType.js';\nimport requireProperty from './rules/requireProperty.js';\nimport requirePropertyDescription from './rules/requirePropertyDescription.js';\nimport requirePropertyName from './rules/requirePropertyName.js';\nimport requirePropertyType from './rules/requirePropertyType.js';\nimport requireReturns from './rules/requireReturns.js';\nimport requireReturnsCheck from './rules/requireReturnsCheck.js';\nimport requireReturnsDescription from './rules/requireReturnsDescription.js';\nimport requireReturnsType from './rules/requireReturnsType.js';\nimport requireTemplate from './rules/requireTemplate.js';\nimport requireThrows from './rules/requireThrows.js';\nimport requireYields from './rules/requireYields.js';\nimport requireYieldsCheck from './rules/requireYieldsCheck.js';\nimport sortTags from './rules/sortTags.js';\nimport tagLines from './rules/tagLines.js';\nimport textEscaping from './rules/textEscaping.js';\nimport validTypes from './rules/validTypes.js';\n\n/* eslint-disable jsdoc/valid-types -- Bug */\n/**\n * @typedef {\"recommended\" | \"stylistic\" | \"contents\" | \"logical\" | \"requirements\"} ConfigGroups\n * @typedef {\"\" | \"-typescript\" | \"-typescript-flavor\"} ConfigVariants\n * @typedef {\"\" | \"-error\"} ErrorLevelVariants\n * @type {import('eslint').ESLint.Plugin & {\n * configs: Record<`flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,\n * import('eslint').Linter.Config>\n * }}\n */\nconst index = {\n /* eslint-enable jsdoc/valid-types -- Bug */\n // @ts-expect-error Ok\n configs: {},\n rules: {\n 'check-access': checkAccess,\n 'check-alignment': checkAlignment,\n 'check-examples': checkExamples,\n 'check-indentation': checkIndentation,\n 'check-line-alignment': checkLineAlignment,\n 'check-param-names': checkParamNames,\n 'check-property-names': checkPropertyNames,\n 'check-syntax': checkSyntax,\n 'check-tag-names': checkTagNames,\n 'check-template-names': checkTemplateNames,\n 'check-types': checkTypes,\n 'check-values': checkValues,\n 'convert-to-jsdoc-comments': convertToJsdocComments,\n 'empty-tags': emptyTags,\n 'implements-on-classes': implementsOnClasses,\n 'imports-as-dependencies': importsAsDependencies,\n 'informative-docs': informativeDocs,\n 'lines-before-block': linesBeforeBlock,\n 'match-description': matchDescription,\n 'match-name': matchName,\n 'multiline-blocks': multilineBlocks,\n 'no-bad-blocks': noBadBlocks,\n 'no-blank-block-descriptions': noBlankBlockDescriptions,\n 'no-blank-blocks': noBlankBlocks,\n 'no-defaults': noDefaults,\n 'no-missing-syntax': noMissingSyntax,\n 'no-multi-asterisks': noMultiAsterisks,\n 'no-restricted-syntax': noRestrictedSyntax,\n 'no-types': noTypes,\n 'no-undefined-types': noUndefinedTypes,\n 'require-asterisk-prefix': requireAsteriskPrefix,\n 'require-description': requireDescription,\n 'require-description-complete-sentence': requireDescriptionCompleteSentence,\n 'require-example': requireExample,\n 'require-file-overview': requireFileOverview,\n 'require-hyphen-before-param-description': requireHyphenBeforeParamDescription,\n 'require-jsdoc': requireJsdoc,\n 'require-param': requireParam,\n 'require-param-description': requireParamDescription,\n 'require-param-name': requireParamName,\n 'require-param-type': requireParamType,\n 'require-property': requireProperty,\n 'require-property-description': requirePropertyDescription,\n 'require-property-name': requirePropertyName,\n 'require-property-type': requirePropertyType,\n 'require-returns': requireReturns,\n 'require-returns-check': requireReturnsCheck,\n 'require-returns-description': requireReturnsDescription,\n 'require-returns-type': requireReturnsType,\n 'require-template': requireTemplate,\n 'require-throws': requireThrows,\n 'require-yields': requireYields,\n 'require-yields-check': requireYieldsCheck,\n 'sort-tags': sortTags,\n 'tag-lines': tagLines,\n 'text-escaping': textEscaping,\n 'valid-types': validTypes,\n },\n};\n\n/**\n * @param {\"warn\"|\"error\"} warnOrError\n * @param {string} [flatName]\n * @returns {import('eslint').Linter.FlatConfig}\n */\nconst createRecommendedRuleset = (warnOrError, flatName) => {\n return {\n ...(flatName ? {\n name: 'jsdoc/' + flatName,\n } : {}),\n // @ts-expect-error Ok\n plugins:\n flatName ? {\n jsdoc: index,\n } : [\n 'jsdoc',\n ],\n rules: {\n 'jsdoc/check-access': warnOrError,\n 'jsdoc/check-alignment': warnOrError,\n 'jsdoc/check-examples': 'off',\n 'jsdoc/check-indentation': 'off',\n 'jsdoc/check-line-alignment': 'off',\n 'jsdoc/check-param-names': warnOrError,\n 'jsdoc/check-property-names': warnOrError,\n 'jsdoc/check-syntax': 'off',\n 'jsdoc/check-tag-names': warnOrError,\n 'jsdoc/check-template-names': 'off',\n 'jsdoc/check-types': warnOrError,\n 'jsdoc/check-values': warnOrError,\n 'jsdoc/convert-to-jsdoc-comments': 'off',\n 'jsdoc/empty-tags': warnOrError,\n 'jsdoc/implements-on-classes': warnOrError,\n 'jsdoc/imports-as-dependencies': 'off',\n 'jsdoc/informative-docs': 'off',\n 'jsdoc/lines-before-block': 'off',\n 'jsdoc/match-description': 'off',\n 'jsdoc/match-name': 'off',\n 'jsdoc/multiline-blocks': warnOrError,\n 'jsdoc/no-bad-blocks': 'off',\n 'jsdoc/no-blank-block-descriptions': 'off',\n 'jsdoc/no-blank-blocks': 'off',\n 'jsdoc/no-defaults': warnOrError,\n 'jsdoc/no-missing-syntax': 'off',\n 'jsdoc/no-multi-asterisks': warnOrError,\n 'jsdoc/no-restricted-syntax': 'off',\n 'jsdoc/no-types': 'off',\n 'jsdoc/no-undefined-types': warnOrError,\n 'jsdoc/require-asterisk-prefix': 'off',\n 'jsdoc/require-description': 'off',\n 'jsdoc/require-description-complete-sentence': 'off',\n 'jsdoc/require-example': 'off',\n 'jsdoc/require-file-overview': 'off',\n 'jsdoc/require-hyphen-before-param-description': 'off',\n 'jsdoc/require-jsdoc': warnOrError,\n 'jsdoc/require-param': warnOrError,\n 'jsdoc/require-param-description': warnOrError,\n 'jsdoc/require-param-name': warnOrError,\n 'jsdoc/require-param-type': warnOrError,\n 'jsdoc/require-property': warnOrError,\n 'jsdoc/require-property-description': warnOrError,\n 'jsdoc/require-property-name': warnOrError,\n 'jsdoc/require-property-type': warnOrError,\n 'jsdoc/require-returns': warnOrError,\n 'jsdoc/require-returns-check': warnOrError,\n 'jsdoc/require-returns-description': warnOrError,\n 'jsdoc/require-returns-type': warnOrError,\n 'jsdoc/require-template': 'off',\n 'jsdoc/require-throws': 'off',\n 'jsdoc/require-yields': warnOrError,\n 'jsdoc/require-yields-check': warnOrError,\n 'jsdoc/sort-tags': 'off',\n 'jsdoc/tag-lines': warnOrError,\n 'jsdoc/text-escaping': 'off',\n 'jsdoc/valid-types': warnOrError,\n },\n };\n};\n\n/**\n * @param {\"warn\"|\"error\"} warnOrError\n * @param {string} [flatName]\n * @returns {import('eslint').Linter.FlatConfig}\n */\nconst createRecommendedTypeScriptRuleset = (warnOrError, flatName) => {\n const ruleset = createRecommendedRuleset(warnOrError, flatName);\n\n return {\n ...ruleset,\n rules: {\n ...ruleset.rules,\n /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */\n 'jsdoc/check-tag-names': [\n warnOrError, {\n typed: true,\n },\n ],\n 'jsdoc/no-types': warnOrError,\n 'jsdoc/no-undefined-types': 'off',\n 'jsdoc/require-param-type': 'off',\n 'jsdoc/require-property-type': 'off',\n 'jsdoc/require-returns-type': 'off',\n /* eslint-enable @stylistic/indent */\n },\n };\n};\n\n/**\n * @param {\"warn\"|\"error\"} warnOrError\n * @param {string} [flatName]\n * @returns {import('eslint').Linter.FlatConfig}\n */\nconst createRecommendedTypeScriptFlavorRuleset = (warnOrError, flatName) => {\n const ruleset = createRecommendedRuleset(warnOrError, flatName);\n\n return {\n ...ruleset,\n rules: {\n ...ruleset.rules,\n /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */\n 'jsdoc/no-undefined-types': 'off',\n /* eslint-enable @stylistic/indent */\n },\n };\n};\n\n/**\n * @param {(string | unknown[])[]} ruleNames\n */\nconst createStandaloneRulesetFactory = (ruleNames) => {\n /**\n * @param {\"warn\"|\"error\"} warnOrError\n * @param {string} [flatName]\n * @returns {import('eslint').Linter.FlatConfig}\n */\n return (warnOrError, flatName) => {\n return {\n name: 'jsdoc/' + flatName,\n plugins: {\n jsdoc: index,\n },\n rules: Object.fromEntries(\n ruleNames.map(\n (ruleName) => {\n return (typeof ruleName === 'string' ?\n [\n ruleName, warnOrError,\n ] :\n [\n ruleName[0], [\n warnOrError, ...ruleName.slice(1),\n ],\n ]);\n },\n ),\n ),\n };\n };\n};\n\nconst contentsRules = [\n 'jsdoc/informative-docs',\n 'jsdoc/match-description',\n 'jsdoc/no-blank-block-descriptions',\n 'jsdoc/no-blank-blocks',\n [\n 'jsdoc/text-escaping', {\n escapeHTML: true,\n },\n ],\n];\n\nconst createContentsTypescriptRuleset = createStandaloneRulesetFactory(contentsRules);\n\nconst createContentsTypescriptFlavorRuleset = createStandaloneRulesetFactory(contentsRules);\n\nconst logicalRules = [\n 'jsdoc/check-access',\n 'jsdoc/check-param-names',\n 'jsdoc/check-property-names',\n 'jsdoc/check-syntax',\n 'jsdoc/check-tag-names',\n 'jsdoc/check-template-names',\n 'jsdoc/check-types',\n 'jsdoc/check-values',\n 'jsdoc/empty-tags',\n 'jsdoc/implements-on-classes',\n 'jsdoc/require-returns-check',\n 'jsdoc/require-yields-check',\n 'jsdoc/no-bad-blocks',\n 'jsdoc/no-defaults',\n 'jsdoc/no-types',\n 'jsdoc/no-undefined-types',\n 'jsdoc/valid-types',\n];\n\nconst createLogicalTypescriptRuleset = createStandaloneRulesetFactory(logicalRules);\n\nconst createLogicalTypescriptFlavorRuleset = createStandaloneRulesetFactory(logicalRules);\n\nconst requirementsRules = [\n 'jsdoc/require-example',\n 'jsdoc/require-jsdoc',\n 'jsdoc/require-param',\n 'jsdoc/require-param-description',\n 'jsdoc/require-param-name',\n 'jsdoc/require-property',\n 'jsdoc/require-property-description',\n 'jsdoc/require-property-name',\n 'jsdoc/require-returns',\n 'jsdoc/require-returns-description',\n 'jsdoc/require-yields',\n];\n\nconst createRequirementsTypeScriptRuleset = createStandaloneRulesetFactory(requirementsRules);\n\nconst createRequirementsTypeScriptFlavorRuleset = createStandaloneRulesetFactory([\n ...requirementsRules,\n 'jsdoc/require-param-type',\n 'jsdoc/require-property-type',\n 'jsdoc/require-returns-type',\n 'jsdoc/require-template',\n]);\n\nconst stylisticRules = [\n 'jsdoc/check-alignment',\n 'jsdoc/check-line-alignment',\n 'jsdoc/lines-before-block',\n 'jsdoc/multiline-blocks',\n 'jsdoc/no-multi-asterisks',\n 'jsdoc/require-asterisk-prefix',\n [\n 'jsdoc/require-hyphen-before-param-description', 'never',\n ],\n 'jsdoc/tag-lines',\n];\n\nconst createStylisticTypeScriptRuleset = createStandaloneRulesetFactory(stylisticRules);\n\nconst createStylisticTypeScriptFlavorRuleset = createStandaloneRulesetFactory(stylisticRules);\n\n/* c8 ignore next 3 -- TS */\nif (!index.configs) {\n throw new Error('TypeScript guard');\n}\n\nindex.configs.recommended = createRecommendedRuleset('warn');\nindex.configs['recommended-error'] = createRecommendedRuleset('error');\nindex.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('warn');\nindex.configs['recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error');\nindex.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn');\nindex.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error');\n\nindex.configs['flat/recommended'] = createRecommendedRuleset('warn', 'flat/recommended');\nindex.configs['flat/recommended-error'] = createRecommendedRuleset('error', 'flat/recommended-error');\nindex.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRuleset('warn', 'flat/recommended-typescript');\nindex.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', 'flat/recommended-typescript-error');\nindex.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor');\nindex.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error');\n\nindex.configs['flat/contents-typescript'] = createContentsTypescriptRuleset('warn', 'flat/contents-typescript');\nindex.configs['flat/contents-typescript-error'] = createContentsTypescriptRuleset('error', 'flat/contents-typescript-error');\nindex.configs['flat/contents-typescript-flavor'] = createContentsTypescriptFlavorRuleset('warn', 'flat/contents-typescript-flavor');\nindex.configs['flat/contents-typescript-flavor-error'] = createContentsTypescriptFlavorRuleset('error', 'flat/contents-typescript-error-flavor');\nindex.configs['flat/logical-typescript'] = createLogicalTypescriptRuleset('warn', 'flat/logical-typescript');\nindex.configs['flat/logical-typescript-error'] = createLogicalTypescriptRuleset('error', 'flat/logical-typescript-error');\nindex.configs['flat/logical-typescript-flavor'] = createLogicalTypescriptFlavorRuleset('warn', 'flat/logical-typescript-flavor');\nindex.configs['flat/logical-typescript-flavor-error'] = createLogicalTypescriptFlavorRuleset('error', 'flat/logical-typescript-error-flavor');\nindex.configs['flat/requirements-typescript'] = createRequirementsTypeScriptRuleset('warn', 'flat/requirements-typescript');\nindex.configs['flat/requirements-typescript-error'] = createRequirementsTypeScriptRuleset('error', 'flat/requirements-typescript-error');\nindex.configs['flat/requirements-typescript-flavor'] = createRequirementsTypeScriptFlavorRuleset('warn', 'flat/requirements-typescript-flavor');\nindex.configs['flat/requirements-typescript-flavor-error'] = createRequirementsTypeScriptFlavorRuleset('error', 'flat/requirements-typescript-error-flavor');\nindex.configs['flat/stylistic-typescript'] = createStylisticTypeScriptRuleset('warn', 'flat/stylistic-typescript');\nindex.configs['flat/stylistic-typescript-error'] = createStylisticTypeScriptRuleset('error', 'flat/stylistic-typescript-error');\nindex.configs['flat/stylistic-typescript-flavor'] = createStylisticTypeScriptFlavorRuleset('warn', 'flat/stylistic-typescript-flavor');\nindex.configs['flat/stylistic-typescript-flavor-error'] = createStylisticTypeScriptFlavorRuleset('error', 'flat/stylistic-typescript-error-flavor');\n\nindex.configs.examples = /** @type {import('eslint').Linter.FlatConfig[]} */ ([\n {\n files: [\n '**/*.js',\n ],\n name: 'jsdoc/examples/processor',\n plugins: {\n examples: getJsdocProcessorPlugin(),\n },\n processor: 'examples/examples',\n },\n {\n files: [\n '**/*.md/*.js',\n ],\n name: 'jsdoc/examples/rules',\n rules: {\n // \"always\" newline rule at end unlikely in sample code\n 'eol-last': 0,\n\n // Wouldn't generally expect example paths to resolve relative to JS file\n 'import/no-unresolved': 0,\n\n // Snippets likely too short to always include import/export info\n 'import/unambiguous': 0,\n\n 'jsdoc/require-file-overview': 0,\n\n // The end of a multiline comment would end the comment the example is in.\n 'jsdoc/require-jsdoc': 0,\n\n // Unlikely to have inadvertent debugging within examples\n 'no-console': 0,\n\n // Often wish to start `@example` code after newline; also may use\n // empty lines for spacing\n 'no-multiple-empty-lines': 0,\n\n // Many variables in examples will be `undefined`\n 'no-undef': 0,\n\n // Common to define variables for clarity without always using them\n 'no-unused-vars': 0,\n\n // See import/no-unresolved\n 'node/no-missing-import': 0,\n 'node/no-missing-require': 0,\n\n // Can generally look nicer to pad a little even if code imposes more stringency\n 'padded-blocks': 0,\n },\n },\n]);\n\nindex.configs['default-expressions'] = /** @type {import('eslint').Linter.FlatConfig[]} */ ([\n {\n files: [\n '**/*.js',\n ],\n name: 'jsdoc/default-expressions/processor',\n plugins: {\n examples: getJsdocProcessorPlugin({\n checkDefaults: true,\n checkParams: true,\n checkProperties: true,\n }),\n },\n processor: 'examples/examples',\n },\n {\n files: [\n '**/*.jsdoc-defaults', '**/*.jsdoc-params', '**/*.jsdoc-properties',\n ],\n name: 'jsdoc/default-expressions/rules',\n rules: {\n ...index.configs.examples[1].rules,\n 'chai-friendly/no-unused-expressions': 0,\n 'no-empty-function': 0,\n 'no-new': 0,\n 'no-unused-expressions': 0,\n quotes: [\n 'error', 'double',\n ],\n semi: [\n 'error', 'never',\n ],\n strict: 0,\n },\n },\n]);\n\nindex.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.FlatConfig[]} */ ([\n {\n name: 'jsdoc/examples-and-default-expressions',\n plugins: {\n examples: getJsdocProcessorPlugin({\n checkDefaults: true,\n checkParams: true,\n checkProperties: true,\n }),\n },\n },\n ...index.configs.examples.map((config) => {\n return {\n ...config,\n plugins: {},\n };\n }),\n ...index.configs['default-expressions'].map((config) => {\n return {\n ...config,\n plugins: {},\n };\n }),\n]);\n\nexport default index;\n"],"mappings":"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"}