eslint-plugin-jsdoc 62.7.1 → 62.8.1

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/README.md CHANGED
@@ -159,6 +159,8 @@ The general starting rulesets you can extend from in flat config are:
159
159
  - `jsdoc.configs['flat/recommended-typescript-error']`: The same, reporting with failing errors instead of mere warnings
160
160
  - `jsdoc.configs['flat/recommended-typescript-flavor']`: A similar recommended starting list, adjusted for projects using JavaScript syntax (source files that are still `.js`) but using TypeScript flavor within JSDoc (i.e., the default "typescript" `mode` in `eslint-plugin-jsdoc`)
161
161
  - `jsdoc.configs['flat/recommended-typescript-flavor-error']`: The same, reporting with failing errors instead of mere warnings
162
+ - `jsdoc.configs['flat/recommended-tsdoc']`: Like `flat/recommended-typescript` but with `require-throws-type`, `require-yields-type`, and `require-next-type` turned off, for use with [TSDoc](https://tsdoc.org/) (e.g., [TypeDoc](https://typedoc.org/))
163
+ - `jsdoc.configs['flat/recommended-tsdoc-error']`: The same, reporting with failing errors instead of mere warnings
162
164
  - `jsdoc.configs['flat/recommended-mixed']`: A combination of `flat/recommended-typescript-flavor` and `flat/recommended-typescript` with automatic assignment of subconfig based on file extension (`**/*.{js,jsx,cjs,mjs}` and `**/*.{ts,tsx,cts,mts}`, respectively)
163
165
 
164
166
  <a name="user-content-eslint-plugin-jsdoc-configuration-flat-config-declarative-granular-flat-configs"></a>
@@ -378,6 +380,26 @@ use:
378
380
  }
379
381
  ```
380
382
 
383
+ If you are using [TSDoc](https://tsdoc.org/) (e.g., with [TSDoc](https://tsdoc.org/) or
384
+ [TypeDoc](https://typedoc.org/)), you may use the `tsdoc` config, which is like
385
+ `recommended-typescript` but additionally turns off `require-throws-type`,
386
+ `require-yields-type`, and `require-next-type` (since TSDoc does not support
387
+ `{Type}` annotations on those tags):
388
+
389
+ ```json
390
+ {
391
+ "extends": ["plugin:jsdoc/recommended-tsdoc"]
392
+ }
393
+ ```
394
+
395
+ ...or to report with failing errors instead of mere warnings:
396
+
397
+ ```json
398
+ {
399
+ "extends": ["plugin:jsdoc/recommended-tsdoc-error"]
400
+ }
401
+ ```
402
+
381
403
  <a name="user-content-eslint-plugin-jsdoc-options"></a>
382
404
  <a name="eslint-plugin-jsdoc-options"></a>
383
405
  ## Options
@@ -372,6 +372,26 @@ const createRecommendedTypeScriptRuleset = (warnOrError, flatName) => {
372
372
  };
373
373
  };
374
374
 
375
+ /**
376
+ * @param {"warn"|"error"} warnOrError
377
+ * @param {string} [flatName]
378
+ * @returns {import('eslint').Linter.Config}
379
+ */
380
+ const createRecommendedTsDocRuleset = (warnOrError, flatName) => {
381
+ const ruleset = createRecommendedTypeScriptRuleset(warnOrError, flatName);
382
+ return {
383
+ ...ruleset,
384
+ rules: {
385
+ ...ruleset.rules,
386
+ /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
387
+ 'jsdoc/require-next-type': 'off',
388
+ 'jsdoc/require-throws-type': 'off',
389
+ 'jsdoc/require-yields-type': 'off'
390
+ /* eslint-enable @stylistic/indent */
391
+ }
392
+ };
393
+ };
394
+
375
395
  /**
376
396
  * @param {"warn"|"error"} warnOrError
377
397
  * @param {string} [flatName]
@@ -436,12 +456,16 @@ index.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('wa
436
456
  index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error');
437
457
  index.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn');
438
458
  index.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error');
459
+ index.configs['recommended-tsdoc'] = createRecommendedTsDocRuleset('warn');
460
+ index.configs['recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error');
439
461
  index.configs['flat/recommended'] = createRecommendedRuleset('warn', 'flat/recommended');
440
462
  index.configs['flat/recommended-error'] = createRecommendedRuleset('error', 'flat/recommended-error');
441
463
  index.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRuleset('warn', 'flat/recommended-typescript');
442
464
  index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', 'flat/recommended-typescript-error');
443
465
  index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor');
444
466
  index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error');
467
+ index.configs['flat/recommended-tsdoc'] = createRecommendedTsDocRuleset('warn', 'flat/recommended-tsdoc');
468
+ index.configs['flat/recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error', 'flat/recommended-tsdoc-error');
445
469
  index.configs['flat/contents-typescript'] = createContentsTypescriptRuleset('warn', 'flat/contents-typescript');
446
470
  index.configs['flat/contents-typescript-error'] = createContentsTypescriptRuleset('error', 'flat/contents-typescript-error');
447
471
  index.configs['flat/contents-typescript-flavor'] = createContentsTypescriptFlavorRuleset('warn', 'flat/contents-typescript-flavor');
@@ -1 +1 @@
1
- {"version":3,"file":"index-cjs.cjs","names":["_buildForbidRuleDefinition","require","_buildRejectOrPreferRuleDefinition","_getJsdocProcessorPlugin","_checkAccess","_interopRequireDefault","_checkAlignment","_checkExamples","_checkIndentation","_checkLineAlignment","_checkParamNames","_checkPropertyNames","_checkSyntax","_checkTagNames","_checkTemplateNames","_checkTypes","_checkValues","_convertToJsdocComments","_emptyTags","_escapeInlineTags","_implementsOnClasses","_importsAsDependencies","_informativeDocs","_linesBeforeBlock","_matchDescription","_matchName","_multilineBlocks","_noBadBlocks","_noBlankBlockDescriptions","_noBlankBlocks","_noDefaults","_noMissingSyntax","_noMultiAsterisks","_noRestrictedSyntax","_noTypes","_noUndefinedTypes","_preferImportTag","_requireAsteriskPrefix","_requireDescription","_requireDescriptionCompleteSentence","_requireExample","_requireFileOverview","_requireHyphenBeforeParamDescription","_requireJsdoc","_requireParam","_requireParamDescription","_requireParamName","_requireParamType","_requireProperty","_requirePropertyDescription","_requirePropertyName","_requirePropertyType","_requireRejects","_requireReturns","_requireReturnsCheck","_requireReturnsDescription","_requireReturnsType","_requireTags","_requireTemplate","_requireThrows","_requireYields","_requireYieldsCheck","_sortTags","_tagLines","_textEscaping","_tsMethodSignatureStyle","_tsNoEmptyObjectType","_tsNoUnnecessaryTemplateExpression","_tsPreferFunctionType","_typeFormatting","_validTypes","_eslint","_semver","e","__esModule","default","index","configs","rules","checkAccess","checkAlignment","checkExamples","checkIndentation","checkLineAlignment","checkParamNames","checkPropertyNames","checkSyntax","checkTagNames","checkTemplateNames","checkTypes","checkValues","convertToJsdocComments","emptyTags","escapeInlineTags","implementsOnClasses","importsAsDependencies","informativeDocs","linesBeforeBlock","matchDescription","matchName","multilineBlocks","noBadBlocks","noBlankBlockDescriptions","noBlankBlocks","noDefaults","noMissingSyntax","noMultiAsterisks","noRestrictedSyntax","noTypes","noUndefinedTypes","preferImportTag","buildRejectOrPreferRuleDefinition","description","overrideSettings","message","replacement","unifyParentAndChildTypeChecks","any","url","Function","requireAsteriskPrefix","requireDescription","requireDescriptionCompleteSentence","requireExample","requireFileOverview","requireHyphenBeforeParamDescription","requireJsdoc","buildForbidRuleDefinition","contexts","comment","context","requireParam","requireParamDescription","requireParamName","requireParamType","requireProperty","requirePropertyDescription","requirePropertyName","requirePropertyType","requireRejects","requireReturns","requireReturnsCheck","requireReturnsDescription","requireReturnsType","requireTags","requireTemplate","requireThrows","requireYields","requireYieldsCheck","sortTags","tagLines","textEscaping","tsMethodSignatureStyle","tsNoEmptyObjectType","tsNoUnnecessaryTemplateExpression","tsPreferFunctionType","typeFormatting","validTypes","createRecommendedRuleset","warnOrError","flatName","name","plugins","jsdoc","createRecommendedTypeScriptRuleset","ruleset","typed","createRecommendedTypeScriptFlavorRuleset","createStandaloneRulesetFactory","ruleNames","Object","fromEntries","map","ruleName","slice","contentsRules","escapeHTML","createContentsTypescriptRuleset","createContentsTypescriptFlavorRuleset","logicalRules","createLogicalTypescriptRuleset","createLogicalTypescriptFlavorRuleset","requirementsRules","createRequirementsTypeScriptRuleset","createRequirementsTypeScriptFlavorRuleset","stylisticRules","createStylisticTypeScriptRuleset","createStylisticTypeScriptFlavorRuleset","Error","recommended","examples","files","getJsdocProcessorPlugin","processor","semver","gte","coerce","ESLint","version","checkDefaults","checkParams","checkProperties","quotes","semi","strict","config","_default","exports","module"],"sources":["../src/index-cjs.js"],"sourcesContent":["import {\n buildForbidRuleDefinition,\n} from './buildForbidRuleDefinition.js';\nimport {\n buildRejectOrPreferRuleDefinition,\n} from './buildRejectOrPreferRuleDefinition.js';\nimport {\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 escapeInlineTags from './rules/escapeInlineTags.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 preferImportTag from './rules/preferImportTag.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 requireRejects from './rules/requireRejects.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 requireTags from './rules/requireTags.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 tsMethodSignatureStyle from './rules/tsMethodSignatureStyle.js';\nimport tsNoEmptyObjectType from './rules/tsNoEmptyObjectType.js';\nimport tsNoUnnecessaryTemplateExpression from './rules/tsNoUnnecessaryTemplateExpression.js';\nimport tsPreferFunctionType from './rules/tsPreferFunctionType.js';\nimport typeFormatting from './rules/typeFormatting.js';\nimport validTypes from './rules/validTypes.js';\nimport {\n ESLint,\n} from 'eslint';\nimport semver from 'semver';\n\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<\n * `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,\n * import('eslint').Linter.Config\n * > &\n * Record<\n * \"examples\"|\"default-expressions\"|\"examples-and-default-expressions\",\n * import('eslint').Linter.Config[]\n * > &\n * Record<\"flat/recommended-mixed\", import('eslint').Linter.Config[]>\n * }}\n */\nconst index = {};\nindex.configs = {};\nindex.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 'escape-inline-tags': escapeInlineTags,\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 'prefer-import-tag': preferImportTag,\n 'reject-any-type': buildRejectOrPreferRuleDefinition({\n description: 'Reports use of `any` or `*` type',\n overrideSettings: {\n '*': {\n message: 'Prefer a more specific type to `*`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n any: {\n message: 'Prefer a more specific type to `any`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n },\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header',\n }),\n 'reject-function-type': buildRejectOrPreferRuleDefinition({\n description: 'Reports use of `Function` type',\n overrideSettings: {\n Function: {\n message: 'Prefer a more specific type to `Function`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n },\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header',\n }),\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-next-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=\"\"]):not([description!=\"\"]))',\n context: 'any',\n message: '@next should have a description',\n },\n ],\n description: 'Requires a description for `@next` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header',\n }),\n 'require-next-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([parsedType.type]))',\n context: 'any',\n message: '@next should have a type',\n },\n ],\n description: 'Requires a type for `@next` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header',\n }),\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-rejects': requireRejects,\n 'require-returns': requireReturns,\n 'require-returns-check': requireReturnsCheck,\n 'require-returns-description': requireReturnsDescription,\n 'require-returns-type': requireReturnsType,\n 'require-tags': requireTags,\n 'require-template': requireTemplate,\n 'require-template-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=template]:not([description!=\"\"]))',\n context: 'any',\n message: '@template should have a description',\n },\n ],\n description: 'Requires a description for `@template` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header',\n }),\n 'require-throws': requireThrows,\n 'require-throws-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([description!=\"\"]))',\n context: 'any',\n message: '@throws should have a description',\n },\n ],\n description: 'Requires a description for `@throws` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header',\n }),\n 'require-throws-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([parsedType.type]))',\n context: 'any',\n message: '@throws should have a type',\n },\n ],\n description: 'Requires a type for `@throws` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header',\n }),\n 'require-yields': requireYields,\n 'require-yields-check': requireYieldsCheck,\n 'require-yields-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([name!=\"\"]):not([description!=\"\"]))',\n context: 'any',\n message: '@yields should have a description',\n },\n ],\n description: 'Requires a description for `@yields` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header',\n }),\n 'require-yields-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([parsedType.type]))',\n context: 'any',\n message: '@yields should have a type',\n },\n ],\n description: 'Requires a type for `@yields` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header',\n }),\n 'sort-tags': sortTags,\n 'tag-lines': tagLines,\n 'text-escaping': textEscaping,\n 'ts-method-signature-style': tsMethodSignatureStyle,\n 'ts-no-empty-object-type': tsNoEmptyObjectType,\n 'ts-no-unnecessary-template-expression': tsNoUnnecessaryTemplateExpression,\n 'ts-prefer-function-type': tsPreferFunctionType,\n 'type-formatting': typeFormatting,\n 'valid-types': validTypes,\n};\n\n/**\n * @param {\"warn\"|\"error\"} warnOrError\n * @param {string} [flatName]\n * @returns {import('eslint').Linter.Config}\n */\nconst createRecommendedRuleset = (warnOrError, flatName) => {\n return {\n ...(flatName ? {\n name: 'jsdoc/' + flatName,\n } : {}),\n // @ts-expect-error ESLint 8 plugins\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/escape-inline-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/prefer-import-tag': 'off',\n 'jsdoc/reject-any-type': warnOrError,\n 'jsdoc/reject-function-type': 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-next-description': 'off',\n 'jsdoc/require-next-type': 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-rejects': 'off',\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-tags': 'off',\n 'jsdoc/require-template': 'off',\n 'jsdoc/require-template-description': 'off',\n 'jsdoc/require-throws': 'off',\n 'jsdoc/require-throws-description': 'off',\n 'jsdoc/require-throws-type': warnOrError,\n 'jsdoc/require-yields': warnOrError,\n 'jsdoc/require-yields-check': warnOrError,\n 'jsdoc/require-yields-description': 'off',\n 'jsdoc/require-yields-type': warnOrError,\n 'jsdoc/sort-tags': 'off',\n 'jsdoc/tag-lines': warnOrError,\n 'jsdoc/text-escaping': 'off',\n 'jsdoc/ts-method-signature-style': 'off',\n 'jsdoc/ts-no-empty-object-type': warnOrError,\n 'jsdoc/ts-no-unnecessary-template-expression': 'off',\n 'jsdoc/ts-prefer-function-type': 'off',\n 'jsdoc/type-formatting': '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.Config}\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.Config}\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.Config}\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/escape-inline-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-next-type',\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-throws-type',\n 'jsdoc/require-yields',\n 'jsdoc/require-yields-type',\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.Config[]} */ ([\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 '@stylistic/eol-last': 0,\n // Often wish to start `@example` code after newline; also may use\n // empty lines for spacing\n '@stylistic/no-multiple-empty-lines': 0,\n\n // Can generally look nicer to pad a little even if code imposes more stringency\n '@stylistic/padded-blocks': 0,\n\n '@typescript-eslint/no-unused-vars': 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 // See import/no-unresolved\n 'n/no-missing-import': 0,\n\n 'n/no-missing-require': 0,\n\n // Unlikely to have inadvertent debugging within examples\n 'no-console': 0,\n\n /* c8 ignore next 11 -- Coercion should work */\n ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {\n // \"always\" newline rule at end unlikely in sample code\n 'eol-last': 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 // Can generally look nicer to pad a little even if code imposes more stringency\n 'padded-blocks': 0,\n }),\n\n // Many variables in examples will be `undefined`\n 'no-undef': 0,\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 },\n]);\n\nindex.configs['default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([\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 '@stylistic/quotes': [\n 'error', 'double',\n ],\n '@stylistic/semi': [\n 'error', 'never',\n ],\n '@typescript-eslint/no-unused-expressions': 0,\n 'chai-friendly/no-unused-expressions': 0,\n 'no-empty-function': 0,\n 'no-new': 0,\n 'no-unused-expressions': 0,\n /* c8 ignore next 8 -- Coercion should work */\n ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {\n quotes: [\n 'error', 'double',\n ],\n semi: [\n 'error', 'never',\n ],\n }),\n strict: 0,\n },\n },\n]);\n\nindex.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([\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\nindex.configs['flat/recommended-mixed'] = [\n {\n ...index.configs['flat/recommended-typescript-flavor'],\n files: [\n '**/*.{js,jsx,cjs,mjs}',\n ],\n },\n {\n ...index.configs['flat/recommended-typescript'],\n files: [\n '**/*.{ts,tsx,cts,mts}',\n ],\n },\n];\n\nexport default index;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index-cjs.cjs","names":["_buildForbidRuleDefinition","require","_buildRejectOrPreferRuleDefinition","_getJsdocProcessorPlugin","_checkAccess","_interopRequireDefault","_checkAlignment","_checkExamples","_checkIndentation","_checkLineAlignment","_checkParamNames","_checkPropertyNames","_checkSyntax","_checkTagNames","_checkTemplateNames","_checkTypes","_checkValues","_convertToJsdocComments","_emptyTags","_escapeInlineTags","_implementsOnClasses","_importsAsDependencies","_informativeDocs","_linesBeforeBlock","_matchDescription","_matchName","_multilineBlocks","_noBadBlocks","_noBlankBlockDescriptions","_noBlankBlocks","_noDefaults","_noMissingSyntax","_noMultiAsterisks","_noRestrictedSyntax","_noTypes","_noUndefinedTypes","_preferImportTag","_requireAsteriskPrefix","_requireDescription","_requireDescriptionCompleteSentence","_requireExample","_requireFileOverview","_requireHyphenBeforeParamDescription","_requireJsdoc","_requireParam","_requireParamDescription","_requireParamName","_requireParamType","_requireProperty","_requirePropertyDescription","_requirePropertyName","_requirePropertyType","_requireRejects","_requireReturns","_requireReturnsCheck","_requireReturnsDescription","_requireReturnsType","_requireTags","_requireTemplate","_requireThrows","_requireYields","_requireYieldsCheck","_sortTags","_tagLines","_textEscaping","_tsMethodSignatureStyle","_tsNoEmptyObjectType","_tsNoUnnecessaryTemplateExpression","_tsPreferFunctionType","_typeFormatting","_validTypes","_eslint","_semver","e","__esModule","default","index","configs","rules","checkAccess","checkAlignment","checkExamples","checkIndentation","checkLineAlignment","checkParamNames","checkPropertyNames","checkSyntax","checkTagNames","checkTemplateNames","checkTypes","checkValues","convertToJsdocComments","emptyTags","escapeInlineTags","implementsOnClasses","importsAsDependencies","informativeDocs","linesBeforeBlock","matchDescription","matchName","multilineBlocks","noBadBlocks","noBlankBlockDescriptions","noBlankBlocks","noDefaults","noMissingSyntax","noMultiAsterisks","noRestrictedSyntax","noTypes","noUndefinedTypes","preferImportTag","buildRejectOrPreferRuleDefinition","description","overrideSettings","message","replacement","unifyParentAndChildTypeChecks","any","url","Function","requireAsteriskPrefix","requireDescription","requireDescriptionCompleteSentence","requireExample","requireFileOverview","requireHyphenBeforeParamDescription","requireJsdoc","buildForbidRuleDefinition","contexts","comment","context","requireParam","requireParamDescription","requireParamName","requireParamType","requireProperty","requirePropertyDescription","requirePropertyName","requirePropertyType","requireRejects","requireReturns","requireReturnsCheck","requireReturnsDescription","requireReturnsType","requireTags","requireTemplate","requireThrows","requireYields","requireYieldsCheck","sortTags","tagLines","textEscaping","tsMethodSignatureStyle","tsNoEmptyObjectType","tsNoUnnecessaryTemplateExpression","tsPreferFunctionType","typeFormatting","validTypes","createRecommendedRuleset","warnOrError","flatName","name","plugins","jsdoc","createRecommendedTypeScriptRuleset","ruleset","typed","createRecommendedTsDocRuleset","createRecommendedTypeScriptFlavorRuleset","createStandaloneRulesetFactory","ruleNames","Object","fromEntries","map","ruleName","slice","contentsRules","escapeHTML","createContentsTypescriptRuleset","createContentsTypescriptFlavorRuleset","logicalRules","createLogicalTypescriptRuleset","createLogicalTypescriptFlavorRuleset","requirementsRules","createRequirementsTypeScriptRuleset","createRequirementsTypeScriptFlavorRuleset","stylisticRules","createStylisticTypeScriptRuleset","createStylisticTypeScriptFlavorRuleset","Error","recommended","examples","files","getJsdocProcessorPlugin","processor","semver","gte","coerce","ESLint","version","checkDefaults","checkParams","checkProperties","quotes","semi","strict","config","_default","exports","module"],"sources":["../src/index-cjs.js"],"sourcesContent":["import {\n buildForbidRuleDefinition,\n} from './buildForbidRuleDefinition.js';\nimport {\n buildRejectOrPreferRuleDefinition,\n} from './buildRejectOrPreferRuleDefinition.js';\nimport {\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 escapeInlineTags from './rules/escapeInlineTags.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 preferImportTag from './rules/preferImportTag.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 requireRejects from './rules/requireRejects.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 requireTags from './rules/requireTags.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 tsMethodSignatureStyle from './rules/tsMethodSignatureStyle.js';\nimport tsNoEmptyObjectType from './rules/tsNoEmptyObjectType.js';\nimport tsNoUnnecessaryTemplateExpression from './rules/tsNoUnnecessaryTemplateExpression.js';\nimport tsPreferFunctionType from './rules/tsPreferFunctionType.js';\nimport typeFormatting from './rules/typeFormatting.js';\nimport validTypes from './rules/validTypes.js';\nimport {\n ESLint,\n} from 'eslint';\nimport semver from 'semver';\n\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<\n * `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,\n * import('eslint').Linter.Config\n * > &\n * Record<\n * \"examples\"|\"default-expressions\"|\"examples-and-default-expressions\",\n * import('eslint').Linter.Config[]\n * > &\n * Record<\"flat/recommended-mixed\", import('eslint').Linter.Config[]>\n * }}\n */\nconst index = {};\nindex.configs = {};\nindex.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 'escape-inline-tags': escapeInlineTags,\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 'prefer-import-tag': preferImportTag,\n 'reject-any-type': buildRejectOrPreferRuleDefinition({\n description: 'Reports use of `any` or `*` type',\n overrideSettings: {\n '*': {\n message: 'Prefer a more specific type to `*`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n any: {\n message: 'Prefer a more specific type to `any`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n },\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header',\n }),\n 'reject-function-type': buildRejectOrPreferRuleDefinition({\n description: 'Reports use of `Function` type',\n overrideSettings: {\n Function: {\n message: 'Prefer a more specific type to `Function`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n },\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header',\n }),\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-next-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=\"\"]):not([description!=\"\"]))',\n context: 'any',\n message: '@next should have a description',\n },\n ],\n description: 'Requires a description for `@next` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header',\n }),\n 'require-next-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([parsedType.type]))',\n context: 'any',\n message: '@next should have a type',\n },\n ],\n description: 'Requires a type for `@next` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header',\n }),\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-rejects': requireRejects,\n 'require-returns': requireReturns,\n 'require-returns-check': requireReturnsCheck,\n 'require-returns-description': requireReturnsDescription,\n 'require-returns-type': requireReturnsType,\n 'require-tags': requireTags,\n 'require-template': requireTemplate,\n 'require-template-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=template]:not([description!=\"\"]))',\n context: 'any',\n message: '@template should have a description',\n },\n ],\n description: 'Requires a description for `@template` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header',\n }),\n 'require-throws': requireThrows,\n 'require-throws-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([description!=\"\"]))',\n context: 'any',\n message: '@throws should have a description',\n },\n ],\n description: 'Requires a description for `@throws` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header',\n }),\n 'require-throws-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([parsedType.type]))',\n context: 'any',\n message: '@throws should have a type',\n },\n ],\n description: 'Requires a type for `@throws` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header',\n }),\n 'require-yields': requireYields,\n 'require-yields-check': requireYieldsCheck,\n 'require-yields-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([name!=\"\"]):not([description!=\"\"]))',\n context: 'any',\n message: '@yields should have a description',\n },\n ],\n description: 'Requires a description for `@yields` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header',\n }),\n 'require-yields-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([parsedType.type]))',\n context: 'any',\n message: '@yields should have a type',\n },\n ],\n description: 'Requires a type for `@yields` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header',\n }),\n 'sort-tags': sortTags,\n 'tag-lines': tagLines,\n 'text-escaping': textEscaping,\n 'ts-method-signature-style': tsMethodSignatureStyle,\n 'ts-no-empty-object-type': tsNoEmptyObjectType,\n 'ts-no-unnecessary-template-expression': tsNoUnnecessaryTemplateExpression,\n 'ts-prefer-function-type': tsPreferFunctionType,\n 'type-formatting': typeFormatting,\n 'valid-types': validTypes,\n};\n\n/**\n * @param {\"warn\"|\"error\"} warnOrError\n * @param {string} [flatName]\n * @returns {import('eslint').Linter.Config}\n */\nconst createRecommendedRuleset = (warnOrError, flatName) => {\n return {\n ...(flatName ? {\n name: 'jsdoc/' + flatName,\n } : {}),\n // @ts-expect-error ESLint 8 plugins\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/escape-inline-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/prefer-import-tag': 'off',\n 'jsdoc/reject-any-type': warnOrError,\n 'jsdoc/reject-function-type': 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-next-description': 'off',\n 'jsdoc/require-next-type': 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-rejects': 'off',\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-tags': 'off',\n 'jsdoc/require-template': 'off',\n 'jsdoc/require-template-description': 'off',\n 'jsdoc/require-throws': 'off',\n 'jsdoc/require-throws-description': 'off',\n 'jsdoc/require-throws-type': warnOrError,\n 'jsdoc/require-yields': warnOrError,\n 'jsdoc/require-yields-check': warnOrError,\n 'jsdoc/require-yields-description': 'off',\n 'jsdoc/require-yields-type': warnOrError,\n 'jsdoc/sort-tags': 'off',\n 'jsdoc/tag-lines': warnOrError,\n 'jsdoc/text-escaping': 'off',\n 'jsdoc/ts-method-signature-style': 'off',\n 'jsdoc/ts-no-empty-object-type': warnOrError,\n 'jsdoc/ts-no-unnecessary-template-expression': 'off',\n 'jsdoc/ts-prefer-function-type': 'off',\n 'jsdoc/type-formatting': '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.Config}\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.Config}\n */\nconst createRecommendedTsDocRuleset = (warnOrError, flatName) => {\n const ruleset = createRecommendedTypeScriptRuleset(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/require-next-type': 'off',\n 'jsdoc/require-throws-type': 'off',\n 'jsdoc/require-yields-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.Config}\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.Config}\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/escape-inline-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-next-type',\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-throws-type',\n 'jsdoc/require-yields',\n 'jsdoc/require-yields-type',\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');\nindex.configs['recommended-tsdoc'] = createRecommendedTsDocRuleset('warn');\nindex.configs['recommended-tsdoc-error'] = createRecommendedTsDocRuleset('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');\nindex.configs['flat/recommended-tsdoc'] = createRecommendedTsDocRuleset('warn', 'flat/recommended-tsdoc');\nindex.configs['flat/recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error', 'flat/recommended-tsdoc-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.Config[]} */ ([\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 '@stylistic/eol-last': 0,\n // Often wish to start `@example` code after newline; also may use\n // empty lines for spacing\n '@stylistic/no-multiple-empty-lines': 0,\n\n // Can generally look nicer to pad a little even if code imposes more stringency\n '@stylistic/padded-blocks': 0,\n\n '@typescript-eslint/no-unused-vars': 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 // See import/no-unresolved\n 'n/no-missing-import': 0,\n\n 'n/no-missing-require': 0,\n\n // Unlikely to have inadvertent debugging within examples\n 'no-console': 0,\n\n /* c8 ignore next 11 -- Coercion should work */\n ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {\n // \"always\" newline rule at end unlikely in sample code\n 'eol-last': 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 // Can generally look nicer to pad a little even if code imposes more stringency\n 'padded-blocks': 0,\n }),\n\n // Many variables in examples will be `undefined`\n 'no-undef': 0,\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 },\n]);\n\nindex.configs['default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([\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 '@stylistic/quotes': [\n 'error', 'double',\n ],\n '@stylistic/semi': [\n 'error', 'never',\n ],\n '@typescript-eslint/no-unused-expressions': 0,\n 'chai-friendly/no-unused-expressions': 0,\n 'no-empty-function': 0,\n 'no-new': 0,\n 'no-unused-expressions': 0,\n /* c8 ignore next 8 -- Coercion should work */\n ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {\n quotes: [\n 'error', 'double',\n ],\n semi: [\n 'error', 'never',\n ],\n }),\n strict: 0,\n },\n },\n]);\n\nindex.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([\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\nindex.configs['flat/recommended-mixed'] = [\n {\n ...index.configs['flat/recommended-typescript-flavor'],\n files: [\n '**/*.{js,jsx,cjs,mjs}',\n ],\n },\n {\n ...index.configs['flat/recommended-typescript'],\n files: [\n '**/*.{ts,tsx,cts,mts}',\n ],\n },\n];\n\nexport default index;\n"],"mappings":"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","ignoreList":[]}
package/dist/index.cjs CHANGED
@@ -383,6 +383,26 @@ const createRecommendedTypeScriptRuleset = (warnOrError, flatName) => {
383
383
  };
384
384
  };
385
385
 
386
+ /**
387
+ * @param {"warn"|"error"} warnOrError
388
+ * @param {string} [flatName]
389
+ * @returns {import('eslint').Linter.Config}
390
+ */
391
+ const createRecommendedTsDocRuleset = (warnOrError, flatName) => {
392
+ const ruleset = createRecommendedTypeScriptRuleset(warnOrError, flatName);
393
+ return {
394
+ ...ruleset,
395
+ rules: {
396
+ ...ruleset.rules,
397
+ /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
398
+ 'jsdoc/require-next-type': 'off',
399
+ 'jsdoc/require-throws-type': 'off',
400
+ 'jsdoc/require-yields-type': 'off'
401
+ /* eslint-enable @stylistic/indent */
402
+ }
403
+ };
404
+ };
405
+
386
406
  /**
387
407
  * @param {"warn"|"error"} warnOrError
388
408
  * @param {string} [flatName]
@@ -447,12 +467,16 @@ index.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('wa
447
467
  index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error');
448
468
  index.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn');
449
469
  index.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error');
470
+ index.configs['recommended-tsdoc'] = createRecommendedTsDocRuleset('warn');
471
+ index.configs['recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error');
450
472
  index.configs['flat/recommended'] = createRecommendedRuleset('warn', 'flat/recommended');
451
473
  index.configs['flat/recommended-error'] = createRecommendedRuleset('error', 'flat/recommended-error');
452
474
  index.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRuleset('warn', 'flat/recommended-typescript');
453
475
  index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', 'flat/recommended-typescript-error');
454
476
  index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor');
455
477
  index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error');
478
+ index.configs['flat/recommended-tsdoc'] = createRecommendedTsDocRuleset('warn', 'flat/recommended-tsdoc');
479
+ index.configs['flat/recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error', 'flat/recommended-tsdoc-error');
456
480
  index.configs['flat/contents-typescript'] = createContentsTypescriptRuleset('warn', 'flat/contents-typescript');
457
481
  index.configs['flat/contents-typescript-error'] = createContentsTypescriptRuleset('error', 'flat/contents-typescript-error');
458
482
  index.configs['flat/contents-typescript-flavor'] = createContentsTypescriptFlavorRuleset('warn', 'flat/contents-typescript-flavor');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["_objectDeepMerge","require","_buildForbidRuleDefinition","_buildRejectOrPreferRuleDefinition","_getJsdocProcessorPlugin","_checkAccess","_interopRequireDefault","_checkAlignment","_checkExamples","_checkIndentation","_checkLineAlignment","_checkParamNames","_checkPropertyNames","_checkSyntax","_checkTagNames","_checkTemplateNames","_checkTypes","_checkValues","_convertToJsdocComments","_emptyTags","_escapeInlineTags","_implementsOnClasses","_importsAsDependencies","_informativeDocs","_linesBeforeBlock","_matchDescription","_matchName","_multilineBlocks","_noBadBlocks","_noBlankBlockDescriptions","_noBlankBlocks","_noDefaults","_noMissingSyntax","_noMultiAsterisks","_noRestrictedSyntax","_noTypes","_noUndefinedTypes","_preferImportTag","_requireAsteriskPrefix","_requireDescription","_requireDescriptionCompleteSentence","_requireExample","_requireFileOverview","_requireHyphenBeforeParamDescription","_requireJsdoc","_requireParam","_requireParamDescription","_requireParamName","_requireParamType","_requireProperty","_requirePropertyDescription","_requirePropertyName","_requirePropertyType","_requireRejects","_requireReturns","_requireReturnsCheck","_requireReturnsDescription","_requireReturnsType","_requireTags","_requireTemplate","_requireThrows","_requireYields","_requireYieldsCheck","_sortTags","_tagLines","_textEscaping","_tsMethodSignatureStyle","_tsNoEmptyObjectType","_tsNoUnnecessaryTemplateExpression","_tsPreferFunctionType","_typeFormatting","_validTypes","_eslint","_semver","e","__esModule","default","index","configs","rules","checkAccess","checkAlignment","checkExamples","checkIndentation","checkLineAlignment","checkParamNames","checkPropertyNames","checkSyntax","checkTagNames","checkTemplateNames","checkTypes","checkValues","convertToJsdocComments","emptyTags","escapeInlineTags","implementsOnClasses","importsAsDependencies","informativeDocs","linesBeforeBlock","matchDescription","matchName","multilineBlocks","noBadBlocks","noBlankBlockDescriptions","noBlankBlocks","noDefaults","noMissingSyntax","noMultiAsterisks","noRestrictedSyntax","noTypes","noUndefinedTypes","preferImportTag","buildRejectOrPreferRuleDefinition","description","overrideSettings","message","replacement","unifyParentAndChildTypeChecks","any","url","Function","requireAsteriskPrefix","requireDescription","requireDescriptionCompleteSentence","requireExample","requireFileOverview","requireHyphenBeforeParamDescription","requireJsdoc","buildForbidRuleDefinition","contexts","comment","context","requireParam","requireParamDescription","requireParamName","requireParamType","requireProperty","requirePropertyDescription","requirePropertyName","requirePropertyType","requireRejects","requireReturns","requireReturnsCheck","requireReturnsDescription","requireReturnsType","requireTags","requireTemplate","requireThrows","requireYields","requireYieldsCheck","sortTags","tagLines","textEscaping","tsMethodSignatureStyle","tsNoEmptyObjectType","tsNoUnnecessaryTemplateExpression","tsPreferFunctionType","typeFormatting","validTypes","createRecommendedRuleset","warnOrError","flatName","name","plugins","jsdoc","createRecommendedTypeScriptRuleset","ruleset","typed","createRecommendedTypeScriptFlavorRuleset","createStandaloneRulesetFactory","ruleNames","Object","fromEntries","map","ruleName","slice","contentsRules","escapeHTML","createContentsTypescriptRuleset","createContentsTypescriptFlavorRuleset","logicalRules","createLogicalTypescriptRuleset","createLogicalTypescriptFlavorRuleset","requirementsRules","createRequirementsTypeScriptRuleset","createRequirementsTypeScriptFlavorRuleset","stylisticRules","createStylisticTypeScriptRuleset","createStylisticTypeScriptFlavorRuleset","Error","recommended","examples","files","getJsdocProcessorPlugin","processor","semver","gte","coerce","ESLint","version","checkDefaults","checkParams","checkProperties","quotes","semi","strict","config","_default","exports","cfg","outputConfig","TypeError","basePath","ignores","language","languageOptions","linterOptions","extraRuleDefinitions","forbid","contextName","entries","preferTypes","typeName","settings","mergeSettings","merge","includes","structuredTags","next","required","rejects"],"sources":["../src/index.js"],"sourcesContent":["/* AUTO-GENERATED BY build SCRIPT */\n/* eslint-disable perfectionist/sort-imports -- For auto-generate; Do not remove */\nimport {\n merge,\n} from 'object-deep-merge';\n\nimport {\n buildForbidRuleDefinition,\n} from './buildForbidRuleDefinition.js';\nimport {\n buildRejectOrPreferRuleDefinition,\n} from './buildRejectOrPreferRuleDefinition.js';\nimport {\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 escapeInlineTags from './rules/escapeInlineTags.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 preferImportTag from './rules/preferImportTag.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 requireRejects from './rules/requireRejects.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 requireTags from './rules/requireTags.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 tsMethodSignatureStyle from './rules/tsMethodSignatureStyle.js';\nimport tsNoEmptyObjectType from './rules/tsNoEmptyObjectType.js';\nimport tsNoUnnecessaryTemplateExpression from './rules/tsNoUnnecessaryTemplateExpression.js';\nimport tsPreferFunctionType from './rules/tsPreferFunctionType.js';\nimport typeFormatting from './rules/typeFormatting.js';\nimport validTypes from './rules/validTypes.js';\nimport {\n ESLint,\n} from 'eslint';\nimport semver from 'semver';\n\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<\n * `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,\n * import('eslint').Linter.Config\n * > &\n * Record<\n * \"examples\"|\"default-expressions\"|\"examples-and-default-expressions\",\n * import('eslint').Linter.Config[]\n * > &\n * Record<\"flat/recommended-mixed\", import('eslint').Linter.Config[]>\n * }}\n */\nconst index = {};\nindex.configs = {};\nindex.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 'escape-inline-tags': escapeInlineTags,\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 'prefer-import-tag': preferImportTag,\n 'reject-any-type': buildRejectOrPreferRuleDefinition({\n description: 'Reports use of `any` or `*` type',\n overrideSettings: {\n '*': {\n message: 'Prefer a more specific type to `*`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n any: {\n message: 'Prefer a more specific type to `any`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n },\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header',\n }),\n 'reject-function-type': buildRejectOrPreferRuleDefinition({\n description: 'Reports use of `Function` type',\n overrideSettings: {\n Function: {\n message: 'Prefer a more specific type to `Function`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n },\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header',\n }),\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-next-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=\"\"]):not([description!=\"\"]))',\n context: 'any',\n message: '@next should have a description',\n },\n ],\n description: 'Requires a description for `@next` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header',\n }),\n 'require-next-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([parsedType.type]))',\n context: 'any',\n message: '@next should have a type',\n },\n ],\n description: 'Requires a type for `@next` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header',\n }),\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-rejects': requireRejects,\n 'require-returns': requireReturns,\n 'require-returns-check': requireReturnsCheck,\n 'require-returns-description': requireReturnsDescription,\n 'require-returns-type': requireReturnsType,\n 'require-tags': requireTags,\n 'require-template': requireTemplate,\n 'require-template-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=template]:not([description!=\"\"]))',\n context: 'any',\n message: '@template should have a description',\n },\n ],\n description: 'Requires a description for `@template` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header',\n }),\n 'require-throws': requireThrows,\n 'require-throws-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([description!=\"\"]))',\n context: 'any',\n message: '@throws should have a description',\n },\n ],\n description: 'Requires a description for `@throws` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header',\n }),\n 'require-throws-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([parsedType.type]))',\n context: 'any',\n message: '@throws should have a type',\n },\n ],\n description: 'Requires a type for `@throws` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header',\n }),\n 'require-yields': requireYields,\n 'require-yields-check': requireYieldsCheck,\n 'require-yields-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([name!=\"\"]):not([description!=\"\"]))',\n context: 'any',\n message: '@yields should have a description',\n },\n ],\n description: 'Requires a description for `@yields` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header',\n }),\n 'require-yields-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([parsedType.type]))',\n context: 'any',\n message: '@yields should have a type',\n },\n ],\n description: 'Requires a type for `@yields` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header',\n }),\n 'sort-tags': sortTags,\n 'tag-lines': tagLines,\n 'text-escaping': textEscaping,\n 'ts-method-signature-style': tsMethodSignatureStyle,\n 'ts-no-empty-object-type': tsNoEmptyObjectType,\n 'ts-no-unnecessary-template-expression': tsNoUnnecessaryTemplateExpression,\n 'ts-prefer-function-type': tsPreferFunctionType,\n 'type-formatting': typeFormatting,\n 'valid-types': validTypes,\n};\n\n/**\n * @param {\"warn\"|\"error\"} warnOrError\n * @param {string} [flatName]\n * @returns {import('eslint').Linter.Config}\n */\nconst createRecommendedRuleset = (warnOrError, flatName) => {\n return {\n ...(flatName ? {\n name: 'jsdoc/' + flatName,\n } : {}),\n // @ts-expect-error ESLint 8 plugins\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/escape-inline-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/prefer-import-tag': 'off',\n 'jsdoc/reject-any-type': warnOrError,\n 'jsdoc/reject-function-type': 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-next-description': 'off',\n 'jsdoc/require-next-type': 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-rejects': 'off',\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-tags': 'off',\n 'jsdoc/require-template': 'off',\n 'jsdoc/require-template-description': 'off',\n 'jsdoc/require-throws': 'off',\n 'jsdoc/require-throws-description': 'off',\n 'jsdoc/require-throws-type': warnOrError,\n 'jsdoc/require-yields': warnOrError,\n 'jsdoc/require-yields-check': warnOrError,\n 'jsdoc/require-yields-description': 'off',\n 'jsdoc/require-yields-type': warnOrError,\n 'jsdoc/sort-tags': 'off',\n 'jsdoc/tag-lines': warnOrError,\n 'jsdoc/text-escaping': 'off',\n 'jsdoc/ts-method-signature-style': 'off',\n 'jsdoc/ts-no-empty-object-type': warnOrError,\n 'jsdoc/ts-no-unnecessary-template-expression': 'off',\n 'jsdoc/ts-prefer-function-type': 'off',\n 'jsdoc/type-formatting': '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.Config}\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.Config}\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.Config}\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/escape-inline-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-next-type',\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-throws-type',\n 'jsdoc/require-yields',\n 'jsdoc/require-yields-type',\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.Config[]} */ ([\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 '@stylistic/eol-last': 0,\n // Often wish to start `@example` code after newline; also may use\n // empty lines for spacing\n '@stylistic/no-multiple-empty-lines': 0,\n\n // Can generally look nicer to pad a little even if code imposes more stringency\n '@stylistic/padded-blocks': 0,\n\n '@typescript-eslint/no-unused-vars': 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 // See import/no-unresolved\n 'n/no-missing-import': 0,\n\n 'n/no-missing-require': 0,\n\n // Unlikely to have inadvertent debugging within examples\n 'no-console': 0,\n\n /* c8 ignore next 11 -- Coercion should work */\n ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {\n // \"always\" newline rule at end unlikely in sample code\n 'eol-last': 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 // Can generally look nicer to pad a little even if code imposes more stringency\n 'padded-blocks': 0,\n }),\n\n // Many variables in examples will be `undefined`\n 'no-undef': 0,\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 },\n]);\n\nindex.configs['default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([\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 '@stylistic/quotes': [\n 'error', 'double',\n ],\n '@stylistic/semi': [\n 'error', 'never',\n ],\n '@typescript-eslint/no-unused-expressions': 0,\n 'chai-friendly/no-unused-expressions': 0,\n 'no-empty-function': 0,\n 'no-new': 0,\n 'no-unused-expressions': 0,\n /* c8 ignore next 8 -- Coercion should work */\n ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {\n quotes: [\n 'error', 'double',\n ],\n semi: [\n 'error', 'never',\n ],\n }),\n strict: 0,\n },\n },\n]);\n\nindex.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([\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\nindex.configs['flat/recommended-mixed'] = [\n {\n ...index.configs['flat/recommended-typescript-flavor'],\n files: [\n '**/*.{js,jsx,cjs,mjs}',\n ],\n },\n {\n ...index.configs['flat/recommended-typescript'],\n files: [\n '**/*.{ts,tsx,cts,mts}',\n ],\n },\n];\n\nexport default index;\n\n/**\n * @type {((\n * cfg?: import('eslint').Linter.Config & {\n * config?: `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,\n * mergeSettings?: boolean,\n * settings?: Partial<import('./iterateJsdoc.js').Settings>,\n * rules?: {[key in keyof import('./rules.d.ts').Rules]?: import('eslint').Linter.RuleEntry<import('./rules.d.ts').Rules[key]>},\n * extraRuleDefinitions?: {\n * forbid?: {\n * [contextName: string]: {\n * description?: string,\n * url?: string,\n * contexts: (string|{\n * message: string,\n * context: string,\n * comment: string\n * })[]\n * }\n * },\n * preferTypes?: {\n * [typeName: string]: {\n * description: string,\n * overrideSettings: {\n * [typeNodeName: string]: {\n * message: string,\n * replacement?: false|string,\n * unifyParentAndChildTypeChecks?: boolean,\n * }\n * },\n * url: string,\n * }\n * }\n * }\n * }\n * ) => import('eslint').Linter.Config)}\n */\nexport const jsdoc = function (cfg) {\n /** @type {import('eslint').Linter.Config} */\n let outputConfig = {\n plugins: {\n jsdoc: index,\n },\n };\n\n if (cfg) {\n if (cfg.config) {\n // @ts-expect-error Security check\n if (cfg.config === '__proto__') {\n throw new TypeError('Disallowed config value');\n }\n\n outputConfig = /** @type {import('eslint').Linter.Config} */ (index.configs[cfg.config]);\n }\n\n if (cfg.rules) {\n outputConfig.rules = {\n ...outputConfig.rules,\n ...cfg.rules,\n };\n }\n\n if (cfg.plugins) {\n outputConfig.plugins = {\n ...outputConfig.plugins,\n ...cfg.plugins,\n };\n }\n\n if (cfg.name) {\n outputConfig.name = cfg.name;\n }\n\n if (cfg.basePath) {\n outputConfig.basePath = cfg.basePath;\n }\n\n if (cfg.files) {\n outputConfig.files = cfg.files;\n }\n\n if (cfg.ignores) {\n outputConfig.ignores = cfg.ignores;\n }\n\n if (cfg.language) {\n outputConfig.language = cfg.language;\n }\n\n if (cfg.languageOptions) {\n outputConfig.languageOptions = cfg.languageOptions;\n }\n\n if (cfg.linterOptions) {\n outputConfig.linterOptions = cfg.linterOptions;\n }\n\n if (cfg.processor) {\n outputConfig.processor = cfg.processor;\n }\n\n if (cfg.extraRuleDefinitions) {\n if (!outputConfig.plugins?.jsdoc?.rules) {\n throw new Error('JSDoc plugin required for `extraRuleDefinitions`');\n }\n\n if (cfg.extraRuleDefinitions.forbid) {\n for (const [\n contextName,\n {\n contexts,\n description,\n url,\n },\n ] of Object.entries(cfg.extraRuleDefinitions.forbid)) {\n outputConfig.plugins.jsdoc.rules[`forbid-${contextName}`] =\n buildForbidRuleDefinition({\n contextName,\n contexts,\n description,\n url,\n });\n }\n }\n\n if (cfg.extraRuleDefinitions.preferTypes) {\n for (const [\n typeName,\n {\n description,\n overrideSettings,\n url,\n },\n ] of Object.entries(cfg.extraRuleDefinitions.preferTypes)) {\n outputConfig.plugins.jsdoc.rules[`prefer-type-${typeName}`] =\n buildRejectOrPreferRuleDefinition({\n description,\n overrideSettings,\n typeName,\n url,\n });\n }\n }\n }\n }\n\n outputConfig.settings = {\n jsdoc: cfg?.mergeSettings === false ?\n cfg.settings :\n merge(\n {},\n cfg?.settings ?? {},\n cfg?.config?.includes('recommended') ?\n {\n // We may need to drop these for \"typescript\" (non-\"flavor\") configs,\n // if support is later added: https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html\n structuredTags: {\n next: {\n required: [\n 'type',\n ],\n },\n rejects: {\n required: [\n 'type',\n ],\n },\n },\n } :\n {},\n ),\n };\n\n return outputConfig;\n};\n\nexport {\n getJsdocProcessorPlugin,\n} from './getJsdocProcessorPlugin.js';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.cjs","names":["_objectDeepMerge","require","_buildForbidRuleDefinition","_buildRejectOrPreferRuleDefinition","_getJsdocProcessorPlugin","_checkAccess","_interopRequireDefault","_checkAlignment","_checkExamples","_checkIndentation","_checkLineAlignment","_checkParamNames","_checkPropertyNames","_checkSyntax","_checkTagNames","_checkTemplateNames","_checkTypes","_checkValues","_convertToJsdocComments","_emptyTags","_escapeInlineTags","_implementsOnClasses","_importsAsDependencies","_informativeDocs","_linesBeforeBlock","_matchDescription","_matchName","_multilineBlocks","_noBadBlocks","_noBlankBlockDescriptions","_noBlankBlocks","_noDefaults","_noMissingSyntax","_noMultiAsterisks","_noRestrictedSyntax","_noTypes","_noUndefinedTypes","_preferImportTag","_requireAsteriskPrefix","_requireDescription","_requireDescriptionCompleteSentence","_requireExample","_requireFileOverview","_requireHyphenBeforeParamDescription","_requireJsdoc","_requireParam","_requireParamDescription","_requireParamName","_requireParamType","_requireProperty","_requirePropertyDescription","_requirePropertyName","_requirePropertyType","_requireRejects","_requireReturns","_requireReturnsCheck","_requireReturnsDescription","_requireReturnsType","_requireTags","_requireTemplate","_requireThrows","_requireYields","_requireYieldsCheck","_sortTags","_tagLines","_textEscaping","_tsMethodSignatureStyle","_tsNoEmptyObjectType","_tsNoUnnecessaryTemplateExpression","_tsPreferFunctionType","_typeFormatting","_validTypes","_eslint","_semver","e","__esModule","default","index","configs","rules","checkAccess","checkAlignment","checkExamples","checkIndentation","checkLineAlignment","checkParamNames","checkPropertyNames","checkSyntax","checkTagNames","checkTemplateNames","checkTypes","checkValues","convertToJsdocComments","emptyTags","escapeInlineTags","implementsOnClasses","importsAsDependencies","informativeDocs","linesBeforeBlock","matchDescription","matchName","multilineBlocks","noBadBlocks","noBlankBlockDescriptions","noBlankBlocks","noDefaults","noMissingSyntax","noMultiAsterisks","noRestrictedSyntax","noTypes","noUndefinedTypes","preferImportTag","buildRejectOrPreferRuleDefinition","description","overrideSettings","message","replacement","unifyParentAndChildTypeChecks","any","url","Function","requireAsteriskPrefix","requireDescription","requireDescriptionCompleteSentence","requireExample","requireFileOverview","requireHyphenBeforeParamDescription","requireJsdoc","buildForbidRuleDefinition","contexts","comment","context","requireParam","requireParamDescription","requireParamName","requireParamType","requireProperty","requirePropertyDescription","requirePropertyName","requirePropertyType","requireRejects","requireReturns","requireReturnsCheck","requireReturnsDescription","requireReturnsType","requireTags","requireTemplate","requireThrows","requireYields","requireYieldsCheck","sortTags","tagLines","textEscaping","tsMethodSignatureStyle","tsNoEmptyObjectType","tsNoUnnecessaryTemplateExpression","tsPreferFunctionType","typeFormatting","validTypes","createRecommendedRuleset","warnOrError","flatName","name","plugins","jsdoc","createRecommendedTypeScriptRuleset","ruleset","typed","createRecommendedTsDocRuleset","createRecommendedTypeScriptFlavorRuleset","createStandaloneRulesetFactory","ruleNames","Object","fromEntries","map","ruleName","slice","contentsRules","escapeHTML","createContentsTypescriptRuleset","createContentsTypescriptFlavorRuleset","logicalRules","createLogicalTypescriptRuleset","createLogicalTypescriptFlavorRuleset","requirementsRules","createRequirementsTypeScriptRuleset","createRequirementsTypeScriptFlavorRuleset","stylisticRules","createStylisticTypeScriptRuleset","createStylisticTypeScriptFlavorRuleset","Error","recommended","examples","files","getJsdocProcessorPlugin","processor","semver","gte","coerce","ESLint","version","checkDefaults","checkParams","checkProperties","quotes","semi","strict","config","_default","exports","cfg","outputConfig","TypeError","basePath","ignores","language","languageOptions","linterOptions","extraRuleDefinitions","forbid","contextName","entries","preferTypes","typeName","settings","mergeSettings","merge","includes","structuredTags","next","required","rejects"],"sources":["../src/index.js"],"sourcesContent":["/* AUTO-GENERATED BY build SCRIPT */\n/* eslint-disable perfectionist/sort-imports -- For auto-generate; Do not remove */\nimport {\n merge,\n} from 'object-deep-merge';\n\nimport {\n buildForbidRuleDefinition,\n} from './buildForbidRuleDefinition.js';\nimport {\n buildRejectOrPreferRuleDefinition,\n} from './buildRejectOrPreferRuleDefinition.js';\nimport {\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 escapeInlineTags from './rules/escapeInlineTags.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 preferImportTag from './rules/preferImportTag.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 requireRejects from './rules/requireRejects.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 requireTags from './rules/requireTags.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 tsMethodSignatureStyle from './rules/tsMethodSignatureStyle.js';\nimport tsNoEmptyObjectType from './rules/tsNoEmptyObjectType.js';\nimport tsNoUnnecessaryTemplateExpression from './rules/tsNoUnnecessaryTemplateExpression.js';\nimport tsPreferFunctionType from './rules/tsPreferFunctionType.js';\nimport typeFormatting from './rules/typeFormatting.js';\nimport validTypes from './rules/validTypes.js';\nimport {\n ESLint,\n} from 'eslint';\nimport semver from 'semver';\n\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<\n * `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,\n * import('eslint').Linter.Config\n * > &\n * Record<\n * \"examples\"|\"default-expressions\"|\"examples-and-default-expressions\",\n * import('eslint').Linter.Config[]\n * > &\n * Record<\"flat/recommended-mixed\", import('eslint').Linter.Config[]>\n * }}\n */\nconst index = {};\nindex.configs = {};\nindex.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 'escape-inline-tags': escapeInlineTags,\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 'prefer-import-tag': preferImportTag,\n 'reject-any-type': buildRejectOrPreferRuleDefinition({\n description: 'Reports use of `any` or `*` type',\n overrideSettings: {\n '*': {\n message: 'Prefer a more specific type to `*`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n any: {\n message: 'Prefer a more specific type to `any`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n },\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header',\n }),\n 'reject-function-type': buildRejectOrPreferRuleDefinition({\n description: 'Reports use of `Function` type',\n overrideSettings: {\n Function: {\n message: 'Prefer a more specific type to `Function`',\n replacement: false,\n unifyParentAndChildTypeChecks: true,\n },\n },\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header',\n }),\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-next-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=\"\"]):not([description!=\"\"]))',\n context: 'any',\n message: '@next should have a description',\n },\n ],\n description: 'Requires a description for `@next` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header',\n }),\n 'require-next-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([parsedType.type]))',\n context: 'any',\n message: '@next should have a type',\n },\n ],\n description: 'Requires a type for `@next` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header',\n }),\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-rejects': requireRejects,\n 'require-returns': requireReturns,\n 'require-returns-check': requireReturnsCheck,\n 'require-returns-description': requireReturnsDescription,\n 'require-returns-type': requireReturnsType,\n 'require-tags': requireTags,\n 'require-template': requireTemplate,\n 'require-template-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=template]:not([description!=\"\"]))',\n context: 'any',\n message: '@template should have a description',\n },\n ],\n description: 'Requires a description for `@template` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header',\n }),\n 'require-throws': requireThrows,\n 'require-throws-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([description!=\"\"]))',\n context: 'any',\n message: '@throws should have a description',\n },\n ],\n description: 'Requires a description for `@throws` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header',\n }),\n 'require-throws-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([parsedType.type]))',\n context: 'any',\n message: '@throws should have a type',\n },\n ],\n description: 'Requires a type for `@throws` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header',\n }),\n 'require-yields': requireYields,\n 'require-yields-check': requireYieldsCheck,\n 'require-yields-description': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([name!=\"\"]):not([description!=\"\"]))',\n context: 'any',\n message: '@yields should have a description',\n },\n ],\n description: 'Requires a description for `@yields` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header',\n }),\n 'require-yields-type': buildForbidRuleDefinition({\n contexts: [\n {\n comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([parsedType.type]))',\n context: 'any',\n message: '@yields should have a type',\n },\n ],\n description: 'Requires a type for `@yields` tags',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header',\n }),\n 'sort-tags': sortTags,\n 'tag-lines': tagLines,\n 'text-escaping': textEscaping,\n 'ts-method-signature-style': tsMethodSignatureStyle,\n 'ts-no-empty-object-type': tsNoEmptyObjectType,\n 'ts-no-unnecessary-template-expression': tsNoUnnecessaryTemplateExpression,\n 'ts-prefer-function-type': tsPreferFunctionType,\n 'type-formatting': typeFormatting,\n 'valid-types': validTypes,\n};\n\n/**\n * @param {\"warn\"|\"error\"} warnOrError\n * @param {string} [flatName]\n * @returns {import('eslint').Linter.Config}\n */\nconst createRecommendedRuleset = (warnOrError, flatName) => {\n return {\n ...(flatName ? {\n name: 'jsdoc/' + flatName,\n } : {}),\n // @ts-expect-error ESLint 8 plugins\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/escape-inline-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/prefer-import-tag': 'off',\n 'jsdoc/reject-any-type': warnOrError,\n 'jsdoc/reject-function-type': 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-next-description': 'off',\n 'jsdoc/require-next-type': 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-rejects': 'off',\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-tags': 'off',\n 'jsdoc/require-template': 'off',\n 'jsdoc/require-template-description': 'off',\n 'jsdoc/require-throws': 'off',\n 'jsdoc/require-throws-description': 'off',\n 'jsdoc/require-throws-type': warnOrError,\n 'jsdoc/require-yields': warnOrError,\n 'jsdoc/require-yields-check': warnOrError,\n 'jsdoc/require-yields-description': 'off',\n 'jsdoc/require-yields-type': warnOrError,\n 'jsdoc/sort-tags': 'off',\n 'jsdoc/tag-lines': warnOrError,\n 'jsdoc/text-escaping': 'off',\n 'jsdoc/ts-method-signature-style': 'off',\n 'jsdoc/ts-no-empty-object-type': warnOrError,\n 'jsdoc/ts-no-unnecessary-template-expression': 'off',\n 'jsdoc/ts-prefer-function-type': 'off',\n 'jsdoc/type-formatting': '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.Config}\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.Config}\n */\nconst createRecommendedTsDocRuleset = (warnOrError, flatName) => {\n const ruleset = createRecommendedTypeScriptRuleset(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/require-next-type': 'off',\n 'jsdoc/require-throws-type': 'off',\n 'jsdoc/require-yields-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.Config}\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.Config}\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/escape-inline-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-next-type',\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-throws-type',\n 'jsdoc/require-yields',\n 'jsdoc/require-yields-type',\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');\nindex.configs['recommended-tsdoc'] = createRecommendedTsDocRuleset('warn');\nindex.configs['recommended-tsdoc-error'] = createRecommendedTsDocRuleset('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');\nindex.configs['flat/recommended-tsdoc'] = createRecommendedTsDocRuleset('warn', 'flat/recommended-tsdoc');\nindex.configs['flat/recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error', 'flat/recommended-tsdoc-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.Config[]} */ ([\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 '@stylistic/eol-last': 0,\n // Often wish to start `@example` code after newline; also may use\n // empty lines for spacing\n '@stylistic/no-multiple-empty-lines': 0,\n\n // Can generally look nicer to pad a little even if code imposes more stringency\n '@stylistic/padded-blocks': 0,\n\n '@typescript-eslint/no-unused-vars': 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 // See import/no-unresolved\n 'n/no-missing-import': 0,\n\n 'n/no-missing-require': 0,\n\n // Unlikely to have inadvertent debugging within examples\n 'no-console': 0,\n\n /* c8 ignore next 11 -- Coercion should work */\n ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {\n // \"always\" newline rule at end unlikely in sample code\n 'eol-last': 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 // Can generally look nicer to pad a little even if code imposes more stringency\n 'padded-blocks': 0,\n }),\n\n // Many variables in examples will be `undefined`\n 'no-undef': 0,\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 },\n]);\n\nindex.configs['default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([\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 '@stylistic/quotes': [\n 'error', 'double',\n ],\n '@stylistic/semi': [\n 'error', 'never',\n ],\n '@typescript-eslint/no-unused-expressions': 0,\n 'chai-friendly/no-unused-expressions': 0,\n 'no-empty-function': 0,\n 'no-new': 0,\n 'no-unused-expressions': 0,\n /* c8 ignore next 8 -- Coercion should work */\n ...(semver.gte(semver.coerce(ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {\n quotes: [\n 'error', 'double',\n ],\n semi: [\n 'error', 'never',\n ],\n }),\n strict: 0,\n },\n },\n]);\n\nindex.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.Config[]} */ ([\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\nindex.configs['flat/recommended-mixed'] = [\n {\n ...index.configs['flat/recommended-typescript-flavor'],\n files: [\n '**/*.{js,jsx,cjs,mjs}',\n ],\n },\n {\n ...index.configs['flat/recommended-typescript'],\n files: [\n '**/*.{ts,tsx,cts,mts}',\n ],\n },\n];\n\nexport default index;\n\n/**\n * @type {((\n * cfg?: import('eslint').Linter.Config & {\n * config?: `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,\n * mergeSettings?: boolean,\n * settings?: Partial<import('./iterateJsdoc.js').Settings>,\n * rules?: {[key in keyof import('./rules.d.ts').Rules]?: import('eslint').Linter.RuleEntry<import('./rules.d.ts').Rules[key]>},\n * extraRuleDefinitions?: {\n * forbid?: {\n * [contextName: string]: {\n * description?: string,\n * url?: string,\n * contexts: (string|{\n * message: string,\n * context: string,\n * comment: string\n * })[]\n * }\n * },\n * preferTypes?: {\n * [typeName: string]: {\n * description: string,\n * overrideSettings: {\n * [typeNodeName: string]: {\n * message: string,\n * replacement?: false|string,\n * unifyParentAndChildTypeChecks?: boolean,\n * }\n * },\n * url: string,\n * }\n * }\n * }\n * }\n * ) => import('eslint').Linter.Config)}\n */\nexport const jsdoc = function (cfg) {\n /** @type {import('eslint').Linter.Config} */\n let outputConfig = {\n plugins: {\n jsdoc: index,\n },\n };\n\n if (cfg) {\n if (cfg.config) {\n // @ts-expect-error Security check\n if (cfg.config === '__proto__') {\n throw new TypeError('Disallowed config value');\n }\n\n outputConfig = /** @type {import('eslint').Linter.Config} */ (index.configs[cfg.config]);\n }\n\n if (cfg.rules) {\n outputConfig.rules = {\n ...outputConfig.rules,\n ...cfg.rules,\n };\n }\n\n if (cfg.plugins) {\n outputConfig.plugins = {\n ...outputConfig.plugins,\n ...cfg.plugins,\n };\n }\n\n if (cfg.name) {\n outputConfig.name = cfg.name;\n }\n\n if (cfg.basePath) {\n outputConfig.basePath = cfg.basePath;\n }\n\n if (cfg.files) {\n outputConfig.files = cfg.files;\n }\n\n if (cfg.ignores) {\n outputConfig.ignores = cfg.ignores;\n }\n\n if (cfg.language) {\n outputConfig.language = cfg.language;\n }\n\n if (cfg.languageOptions) {\n outputConfig.languageOptions = cfg.languageOptions;\n }\n\n if (cfg.linterOptions) {\n outputConfig.linterOptions = cfg.linterOptions;\n }\n\n if (cfg.processor) {\n outputConfig.processor = cfg.processor;\n }\n\n if (cfg.extraRuleDefinitions) {\n if (!outputConfig.plugins?.jsdoc?.rules) {\n throw new Error('JSDoc plugin required for `extraRuleDefinitions`');\n }\n\n if (cfg.extraRuleDefinitions.forbid) {\n for (const [\n contextName,\n {\n contexts,\n description,\n url,\n },\n ] of Object.entries(cfg.extraRuleDefinitions.forbid)) {\n outputConfig.plugins.jsdoc.rules[`forbid-${contextName}`] =\n buildForbidRuleDefinition({\n contextName,\n contexts,\n description,\n url,\n });\n }\n }\n\n if (cfg.extraRuleDefinitions.preferTypes) {\n for (const [\n typeName,\n {\n description,\n overrideSettings,\n url,\n },\n ] of Object.entries(cfg.extraRuleDefinitions.preferTypes)) {\n outputConfig.plugins.jsdoc.rules[`prefer-type-${typeName}`] =\n buildRejectOrPreferRuleDefinition({\n description,\n overrideSettings,\n typeName,\n url,\n });\n }\n }\n }\n }\n\n outputConfig.settings = {\n jsdoc: cfg?.mergeSettings === false ?\n cfg.settings :\n merge(\n {},\n cfg?.settings ?? {},\n cfg?.config?.includes('recommended') ?\n {\n // We may need to drop these for \"typescript\" (non-\"flavor\") configs,\n // if support is later added: https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html\n structuredTags: {\n next: {\n required: [\n 'type',\n ],\n },\n rejects: {\n required: [\n 'type',\n ],\n },\n },\n } :\n {},\n ),\n };\n\n return outputConfig;\n};\n\nexport {\n getJsdocProcessorPlugin,\n} from './getJsdocProcessorPlugin.js';\n"],"mappings":"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","ignoreList":[]}
@@ -31,7 +31,11 @@ const suppressTypes = new Set([
31
31
  */
32
32
  const tryParsePathIgnoreError = (path, mode) => {
33
33
  try {
34
- (0, _jsdoccomment.parseNamePath)(path, mode === 'permissive' ? 'jsdoc' : mode, {
34
+ (0, _jsdoccomment.parseNamePath)(
35
+ // Todo: Should avoid need for this by letting comment-parser parse default
36
+ // values as such when they are not optional
37
+ // Strip default value
38
+ path.replace(/[=].*/v, ''), mode === 'permissive' ? 'jsdoc' : mode, {
35
39
  includeSpecial: true
36
40
  });
37
41
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"validTypes.cjs","names":["_iterateJsdoc","_interopRequireDefault","require","_jsdoccomment","e","__esModule","default","inlineTags","Set","asExpression","suppressTypes","tryParsePathIgnoreError","path","mode","parseNamePath","includeSpecial","tryParseNameIgnoreError","name","parseName","_default","exports","iterateJsdoc","context","jsdoc","report","settings","utils","allowEmptyNamepaths","options","tag","tags","validNamepathParsing","namepath","tagName","handled","endChar","slice","includes","startsWith","test","startChar","charAt","validTypeParsing","type","parsedTypes","tryParse","undefined","classContext","parse","traverse","node","typ","right","meta","position","problems","length","msg","reduce","str","message","thisNamepath","getTagDescription","replace","trim","thatNamepath","value","has","otherModeMaps","filter","mde","map","getTagStructureForMode","tagMightHaveNamePosition","modeInfo","description","mightHaveTypePosition","tagMightHaveTypePosition","tagMustHaveNamePosition","mustHaveTypePosition","tagMustHaveTypePosition","tagMissingRequiredTypeOrNamepath","hasTypePosition","Boolean","hasNamepathPosition","tagMightHaveNamepath","parseClosureTemplateTag","hasNamePosition","tagMightHaveName","inlineTag","text","namepathOrURL","iterateAllJsdocs","docs","url","schema","additionalProperties","properties","module"],"sources":["../../src/rules/validTypes.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\nimport {\n parse,\n parseName,\n parseNamePath,\n traverse,\n tryParse,\n} from '@es-joy/jsdoccomment';\n\nconst inlineTags = new Set([\n // Typdoc\n 'include', 'includeCode',\n // TSDoc\n 'inheritDoc',\n 'inheritdoc',\n 'label',\n // JSDoc\n 'link',\n 'linkcode', 'linkplain',\n 'tutorial',\n]);\n\nconst asExpression = /as\\s+/v;\n\nconst suppressTypes = new Set([\n // https://github.com/google/closure-compiler/wiki/@suppress-annotations\n // https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/ParserConfig.properties#L154\n 'accessControls',\n 'checkDebuggerStatement',\n 'checkEs5InheritanceCorrectnessConditions',\n 'checkPrototypalTypes',\n 'checkRegExp',\n 'checkTypes',\n 'checkVars',\n 'closureClassChecks',\n 'closureDepMethodUsageChecks',\n 'const',\n 'constantProperty',\n 'dangerousUnrecognizedTypeError',\n 'deprecated',\n 'duplicate',\n 'es5Strict',\n 'externsValidation',\n 'extraProvide',\n 'extraRequire',\n 'globalThis',\n 'invalidCasts',\n 'lateProvide',\n 'legacyGoogScopeRequire',\n 'lintChecks',\n 'lintVarDeclarations',\n 'messageConventions',\n 'misplacedTypeAnnotation',\n 'missingOverride',\n 'missingPolyfill',\n 'missingProperties',\n 'missingProvide',\n 'missingRequire',\n 'missingReturn',\n 'missingSourcesWarnings',\n 'moduleLoad',\n 'msgDescriptions',\n 'nonStandardJsDocs',\n 'partialAlias',\n 'polymer',\n 'reportUnknownTypes',\n 'strictCheckTypes',\n 'strictMissingProperties',\n 'strictModuleDepCheck',\n 'strictPrimitiveOperators',\n 'suspiciousCode',\n\n // Not documented in enum\n 'switch',\n 'transitionalSuspiciousCodeWarnings',\n 'undefinedNames',\n 'undefinedVars',\n 'underscore',\n 'unknownDefines',\n 'untranspilableFeatures',\n 'unusedLocalVariables',\n\n // Not documented?\n 'unusedPrivateMembers',\n 'uselessCode',\n 'useOfGoogProvide',\n 'visibility',\n 'with',\n]);\n\n/**\n * @param {string} path\n * @param {import('jsdoc-type-pratt-parser').ParseMode|\"permissive\"} mode\n * @returns {boolean}\n */\nconst tryParsePathIgnoreError = (path, mode) => {\n try {\n parseNamePath(path, mode === 'permissive' ? 'jsdoc' : mode, {\n includeSpecial: true,\n });\n\n return true;\n } catch {\n // Keep the original error for including the whole type\n }\n\n return false;\n};\n\n/**\n * @param {string} name\n * @param {import('jsdoc-type-pratt-parser').ParseMode} mode\n * @returns {boolean}\n */\nconst tryParseNameIgnoreError = (name, mode) => {\n try {\n parseName(name, mode);\n\n return true;\n } catch {\n // Keep the original error for including the whole type\n }\n\n return false;\n};\n\nexport default iterateJsdoc(({\n context,\n jsdoc,\n report,\n settings,\n utils,\n// eslint-disable-next-line complexity\n}) => {\n const {\n allowEmptyNamepaths = false,\n } = context.options[0] || {};\n const {\n mode,\n } = settings;\n\n for (const tag of jsdoc.tags) {\n /**\n * @param {string} namepath\n * @param {string} [tagName]\n * @returns {boolean}\n */\n const validNamepathParsing = function (namepath, tagName) {\n if (\n tryParsePathIgnoreError(namepath, mode)\n ) {\n return true;\n }\n\n let handled = false;\n\n if (tagName) {\n switch (tagName) {\n case 'memberof':\n case 'memberof!': {\n const endChar = namepath.slice(-1);\n if ([\n '#', '.', '~',\n ].includes(endChar)) {\n handled = tryParsePathIgnoreError(namepath.slice(0, -1), mode);\n }\n\n break;\n }\n\n case 'module': case 'requires': {\n if (!namepath.startsWith('module:')) {\n handled = tryParsePathIgnoreError(`module:${namepath}`, mode);\n }\n\n break;\n }\n\n case 'prop':\n case 'property': {\n if (mode === 'jsdoc' && (/^\\d+$/v).test(namepath)) {\n handled = true;\n }\n\n break;\n }\n\n case 'borrows': {\n const startChar = namepath.charAt(0);\n if ([\n '#', '.', '~',\n ].includes(startChar)) {\n handled = tryParsePathIgnoreError(namepath.slice(1), mode);\n }\n }\n }\n }\n\n if (!handled) {\n report(`Syntax error in namepath: ${namepath}`, null, tag);\n\n return false;\n }\n\n return true;\n };\n\n /**\n * @param {string} type\n * @returns {boolean}\n */\n const validTypeParsing = function (type) {\n let parsedTypes;\n try {\n if (mode === 'permissive') {\n parsedTypes = tryParse(type, undefined, {\n classContext: true,\n });\n } else {\n parsedTypes = parse(type, mode, {\n classContext: true,\n });\n }\n } catch {\n report(`Syntax error in type: ${type}`, null, tag);\n\n return false;\n }\n\n if (mode === 'closure' || mode === 'typescript') {\n traverse(parsedTypes, (node) => {\n const {\n type: typ,\n } = node;\n\n if (\n (typ === 'JsdocTypeObjectField' || typ === 'JsdocTypeKeyValue') &&\n node.right?.type === 'JsdocTypeNullable' &&\n node.right?.meta?.position === 'suffix'\n ) {\n report(`Syntax error in type: ${node.right.type}`, null, tag);\n }\n });\n }\n\n return true;\n };\n\n if (tag.problems.length) {\n const msg = tag.problems.reduce((str, {\n message,\n }) => {\n return str + '; ' + message;\n }, '').slice(2);\n report(`Invalid name: ${msg}`, null, tag);\n continue;\n }\n\n if (tag.tag === 'import') {\n // A named import will look like a type, but not be valid; we also don't\n // need to check the name/namepath\n continue;\n }\n\n if (tag.tag === 'borrows') {\n const thisNamepath = /** @type {string} */ (\n utils.getTagDescription(tag)\n ).replace(asExpression, '')\n .trim();\n\n if (!asExpression.test(/** @type {string} */ (\n utils.getTagDescription(tag)\n )) || !thisNamepath) {\n report(`@borrows must have an \"as\" expression. Found \"${utils.getTagDescription(tag)}\"`, null, tag);\n\n continue;\n }\n\n if (validNamepathParsing(thisNamepath, 'borrows')) {\n const thatNamepath = tag.name;\n\n validNamepathParsing(thatNamepath);\n }\n\n continue;\n }\n\n if (tag.tag === 'suppress' && mode === 'closure') {\n let parsedTypes;\n\n try {\n parsedTypes = tryParse(tag.type);\n } catch {\n // Ignore\n }\n\n if (parsedTypes) {\n traverse(parsedTypes, (node) => {\n let type;\n if ('value' in node && typeof node.value === 'string') {\n type = node.value;\n }\n\n if (type !== undefined && !suppressTypes.has(type)) {\n report(`Syntax error in suppress type: ${type}`, null, tag);\n }\n });\n }\n }\n\n const otherModeMaps = /** @type {import('../jsdocUtils.js').ParserMode[]} */ ([\n 'jsdoc', 'typescript', 'closure', 'permissive',\n ]).filter(\n (mde) => {\n return mde !== mode;\n },\n ).map((mde) => {\n return utils.getTagStructureForMode(mde);\n });\n\n const tagMightHaveNamePosition = utils.tagMightHaveNamePosition(tag.tag, otherModeMaps);\n if (tagMightHaveNamePosition !== true && tag.name) {\n const modeInfo = tagMightHaveNamePosition === false ? '' : ` in \"${mode}\" mode`;\n report(`@${tag.tag} should not have a name${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // Documentation like `@returns {@link SomeType}` is technically ambiguous. Specifically it\n // could either be intepreted as a type `\"@link SomeType\"` or a description `\"{@link SomeType}\"`.\n // However this is a good heuristic.\n if (tag.type.trim().startsWith('@')) {\n tag.description = `{${tag.type}} ${tag.description}`;\n tag.type = '';\n }\n\n const mightHaveTypePosition = utils.tagMightHaveTypePosition(tag.tag, otherModeMaps);\n if (mightHaveTypePosition !== true && tag.type) {\n const modeInfo = mightHaveTypePosition === false ? '' : ` in \"${mode}\" mode`;\n report(`@${tag.tag} should not have a bracketed type${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // REQUIRED NAME\n const tagMustHaveNamePosition = utils.tagMustHaveNamePosition(tag.tag, otherModeMaps);\n\n // Don't handle `@param` here though it does require name as handled by\n // `require-param-name` (`@property` would similarly seem to require one,\n // but is handled by `require-property-name`)\n if (tagMustHaveNamePosition !== false && !tag.name && !allowEmptyNamepaths && ![\n 'arg', 'argument', 'param',\n 'prop', 'property',\n ].includes(tag.tag) &&\n (tag.tag !== 'see' || !utils.getTagDescription(tag).includes('{@link'))\n ) {\n const modeInfo = tagMustHaveNamePosition === true ? '' : ` in \"${mode}\" mode`;\n report(`Tag @${tag.tag} must have a name/namepath${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // REQUIRED TYPE\n const mustHaveTypePosition = utils.tagMustHaveTypePosition(tag.tag, otherModeMaps);\n if (mustHaveTypePosition !== false && !tag.type &&\n // Auto-added to settings and has own rule already, so don't duplicate\n tag.tag !== 'next'\n ) {\n const modeInfo = mustHaveTypePosition === true ? '' : ` in \"${mode}\" mode`;\n report(`Tag @${tag.tag} must have a type${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // REQUIRED TYPE OR NAME/NAMEPATH\n const tagMissingRequiredTypeOrNamepath = utils.tagMissingRequiredTypeOrNamepath(tag, otherModeMaps);\n if (tagMissingRequiredTypeOrNamepath !== false && !allowEmptyNamepaths) {\n const modeInfo = tagMissingRequiredTypeOrNamepath === true ? '' : ` in \"${mode}\" mode`;\n report(`Tag @${tag.tag} must have either a type or namepath${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // VALID TYPE\n const hasTypePosition = mightHaveTypePosition === true && Boolean(tag.type);\n if (hasTypePosition && (tag.type !== 'const' || tag.tag !== 'type')) {\n validTypeParsing(tag.type);\n }\n\n // VALID NAME/NAMEPATH\n const hasNamepathPosition = (\n tagMustHaveNamePosition !== false ||\n utils.tagMightHaveNamepath(tag.tag)\n ) && Boolean(tag.name);\n\n if (hasNamepathPosition) {\n if (mode !== 'jsdoc' && tag.tag === 'template') {\n if (!tryParsePathIgnoreError(\n // May be an issue with the commas of\n // `utils.parseClosureTemplateTag`, so first try a raw\n // value; we really need a proper parser instead, however.\n tag.name.trim().replace(/^\\[?(?<name>.*?)=.*$/v, '$<name>'),\n mode,\n )) {\n for (const namepath of utils.parseClosureTemplateTag(tag)) {\n validNamepathParsing(namepath);\n }\n }\n } else {\n validNamepathParsing(tag.name, tag.tag);\n }\n }\n\n const hasNamePosition = utils.tagMightHaveName(tag.tag) &&\n Boolean(tag.name);\n if (\n hasNamePosition &&\n mode === 'typescript' &&\n !tryParseNameIgnoreError(tag.name, mode)\n ) {\n report(`Syntax error in name: ${tag.name}`, null, tag);\n } else if (hasNamePosition && mode !== 'typescript') {\n validNamepathParsing(tag.name, tag.tag);\n }\n\n for (const inlineTag of tag.inlineTags) {\n if (inlineTags.has(inlineTag.tag) && !inlineTag.text && !inlineTag.namepathOrURL) {\n report(`Inline tag \"${inlineTag.tag}\" missing content`, null, tag);\n }\n }\n }\n\n for (const inlineTag of jsdoc.inlineTags) {\n if (inlineTags.has(inlineTag.tag) && !inlineTag.text && !inlineTag.namepathOrURL) {\n report(`Inline tag \"${inlineTag.tag}\" missing content`);\n }\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Requires all types/namepaths to be valid JSDoc, Closure compiler, or TypeScript types (configurable in settings).',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n allowEmptyNamepaths: {\n default: false,\n description: `Set to \\`false\\` to bulk disallow\nempty name paths with namepath groups 2 and 4 (these might often be\nexpected to have an accompanying name path, though they have some\nindicative value without one; these may also allow names to be defined\nin another manner elsewhere in the block); you can use\n\\`settings.jsdoc.structuredTags\\` with the \\`required\\` key set to \"name\" if you\nwish to require name paths on a tag-by-tag basis. Defaults to \\`true\\`.`,\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"validTypes.cjs","names":["_iterateJsdoc","_interopRequireDefault","require","_jsdoccomment","e","__esModule","default","inlineTags","Set","asExpression","suppressTypes","tryParsePathIgnoreError","path","mode","parseNamePath","replace","includeSpecial","tryParseNameIgnoreError","name","parseName","_default","exports","iterateJsdoc","context","jsdoc","report","settings","utils","allowEmptyNamepaths","options","tag","tags","validNamepathParsing","namepath","tagName","handled","endChar","slice","includes","startsWith","test","startChar","charAt","validTypeParsing","type","parsedTypes","tryParse","undefined","classContext","parse","traverse","node","typ","right","meta","position","problems","length","msg","reduce","str","message","thisNamepath","getTagDescription","trim","thatNamepath","value","has","otherModeMaps","filter","mde","map","getTagStructureForMode","tagMightHaveNamePosition","modeInfo","description","mightHaveTypePosition","tagMightHaveTypePosition","tagMustHaveNamePosition","mustHaveTypePosition","tagMustHaveTypePosition","tagMissingRequiredTypeOrNamepath","hasTypePosition","Boolean","hasNamepathPosition","tagMightHaveNamepath","parseClosureTemplateTag","hasNamePosition","tagMightHaveName","inlineTag","text","namepathOrURL","iterateAllJsdocs","docs","url","schema","additionalProperties","properties","module"],"sources":["../../src/rules/validTypes.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\nimport {\n parse,\n parseName,\n parseNamePath,\n traverse,\n tryParse,\n} from '@es-joy/jsdoccomment';\n\nconst inlineTags = new Set([\n // Typdoc\n 'include', 'includeCode',\n // TSDoc\n 'inheritDoc',\n 'inheritdoc',\n 'label',\n // JSDoc\n 'link',\n 'linkcode', 'linkplain',\n 'tutorial',\n]);\n\nconst asExpression = /as\\s+/v;\n\nconst suppressTypes = new Set([\n // https://github.com/google/closure-compiler/wiki/@suppress-annotations\n // https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/ParserConfig.properties#L154\n 'accessControls',\n 'checkDebuggerStatement',\n 'checkEs5InheritanceCorrectnessConditions',\n 'checkPrototypalTypes',\n 'checkRegExp',\n 'checkTypes',\n 'checkVars',\n 'closureClassChecks',\n 'closureDepMethodUsageChecks',\n 'const',\n 'constantProperty',\n 'dangerousUnrecognizedTypeError',\n 'deprecated',\n 'duplicate',\n 'es5Strict',\n 'externsValidation',\n 'extraProvide',\n 'extraRequire',\n 'globalThis',\n 'invalidCasts',\n 'lateProvide',\n 'legacyGoogScopeRequire',\n 'lintChecks',\n 'lintVarDeclarations',\n 'messageConventions',\n 'misplacedTypeAnnotation',\n 'missingOverride',\n 'missingPolyfill',\n 'missingProperties',\n 'missingProvide',\n 'missingRequire',\n 'missingReturn',\n 'missingSourcesWarnings',\n 'moduleLoad',\n 'msgDescriptions',\n 'nonStandardJsDocs',\n 'partialAlias',\n 'polymer',\n 'reportUnknownTypes',\n 'strictCheckTypes',\n 'strictMissingProperties',\n 'strictModuleDepCheck',\n 'strictPrimitiveOperators',\n 'suspiciousCode',\n\n // Not documented in enum\n 'switch',\n 'transitionalSuspiciousCodeWarnings',\n 'undefinedNames',\n 'undefinedVars',\n 'underscore',\n 'unknownDefines',\n 'untranspilableFeatures',\n 'unusedLocalVariables',\n\n // Not documented?\n 'unusedPrivateMembers',\n 'uselessCode',\n 'useOfGoogProvide',\n 'visibility',\n 'with',\n]);\n\n/**\n * @param {string} path\n * @param {import('jsdoc-type-pratt-parser').ParseMode|\"permissive\"} mode\n * @returns {boolean}\n */\nconst tryParsePathIgnoreError = (path, mode) => {\n try {\n parseNamePath(\n // Todo: Should avoid need for this by letting comment-parser parse default\n // values as such when they are not optional\n // Strip default value\n path.replace(/[=].*/v, ''),\n mode === 'permissive' ? 'jsdoc' : mode,\n {\n includeSpecial: true,\n },\n );\n\n return true;\n } catch {\n // Keep the original error for including the whole type\n }\n\n return false;\n};\n\n/**\n * @param {string} name\n * @param {import('jsdoc-type-pratt-parser').ParseMode} mode\n * @returns {boolean}\n */\nconst tryParseNameIgnoreError = (name, mode) => {\n try {\n parseName(name, mode);\n\n return true;\n } catch {\n // Keep the original error for including the whole type\n }\n\n return false;\n};\n\nexport default iterateJsdoc(({\n context,\n jsdoc,\n report,\n settings,\n utils,\n// eslint-disable-next-line complexity\n}) => {\n const {\n allowEmptyNamepaths = false,\n } = context.options[0] || {};\n const {\n mode,\n } = settings;\n\n for (const tag of jsdoc.tags) {\n /**\n * @param {string} namepath\n * @param {string} [tagName]\n * @returns {boolean}\n */\n const validNamepathParsing = function (namepath, tagName) {\n if (\n tryParsePathIgnoreError(namepath, mode)\n ) {\n return true;\n }\n\n let handled = false;\n\n if (tagName) {\n switch (tagName) {\n case 'memberof':\n case 'memberof!': {\n const endChar = namepath.slice(-1);\n if ([\n '#', '.', '~',\n ].includes(endChar)) {\n handled = tryParsePathIgnoreError(namepath.slice(0, -1), mode);\n }\n\n break;\n }\n\n case 'module': case 'requires': {\n if (!namepath.startsWith('module:')) {\n handled = tryParsePathIgnoreError(`module:${namepath}`, mode);\n }\n\n break;\n }\n\n case 'prop':\n case 'property': {\n if (mode === 'jsdoc' && (/^\\d+$/v).test(namepath)) {\n handled = true;\n }\n\n break;\n }\n\n case 'borrows': {\n const startChar = namepath.charAt(0);\n if ([\n '#', '.', '~',\n ].includes(startChar)) {\n handled = tryParsePathIgnoreError(namepath.slice(1), mode);\n }\n }\n }\n }\n\n if (!handled) {\n report(`Syntax error in namepath: ${namepath}`, null, tag);\n\n return false;\n }\n\n return true;\n };\n\n /**\n * @param {string} type\n * @returns {boolean}\n */\n const validTypeParsing = function (type) {\n let parsedTypes;\n try {\n if (mode === 'permissive') {\n parsedTypes = tryParse(type, undefined, {\n classContext: true,\n });\n } else {\n parsedTypes = parse(type, mode, {\n classContext: true,\n });\n }\n } catch {\n report(`Syntax error in type: ${type}`, null, tag);\n\n return false;\n }\n\n if (mode === 'closure' || mode === 'typescript') {\n traverse(parsedTypes, (node) => {\n const {\n type: typ,\n } = node;\n\n if (\n (typ === 'JsdocTypeObjectField' || typ === 'JsdocTypeKeyValue') &&\n node.right?.type === 'JsdocTypeNullable' &&\n node.right?.meta?.position === 'suffix'\n ) {\n report(`Syntax error in type: ${node.right.type}`, null, tag);\n }\n });\n }\n\n return true;\n };\n\n if (tag.problems.length) {\n const msg = tag.problems.reduce((str, {\n message,\n }) => {\n return str + '; ' + message;\n }, '').slice(2);\n report(`Invalid name: ${msg}`, null, tag);\n continue;\n }\n\n if (tag.tag === 'import') {\n // A named import will look like a type, but not be valid; we also don't\n // need to check the name/namepath\n continue;\n }\n\n if (tag.tag === 'borrows') {\n const thisNamepath = /** @type {string} */ (\n utils.getTagDescription(tag)\n ).replace(asExpression, '')\n .trim();\n\n if (!asExpression.test(/** @type {string} */ (\n utils.getTagDescription(tag)\n )) || !thisNamepath) {\n report(`@borrows must have an \"as\" expression. Found \"${utils.getTagDescription(tag)}\"`, null, tag);\n\n continue;\n }\n\n if (validNamepathParsing(thisNamepath, 'borrows')) {\n const thatNamepath = tag.name;\n\n validNamepathParsing(thatNamepath);\n }\n\n continue;\n }\n\n if (tag.tag === 'suppress' && mode === 'closure') {\n let parsedTypes;\n\n try {\n parsedTypes = tryParse(tag.type);\n } catch {\n // Ignore\n }\n\n if (parsedTypes) {\n traverse(parsedTypes, (node) => {\n let type;\n if ('value' in node && typeof node.value === 'string') {\n type = node.value;\n }\n\n if (type !== undefined && !suppressTypes.has(type)) {\n report(`Syntax error in suppress type: ${type}`, null, tag);\n }\n });\n }\n }\n\n const otherModeMaps = /** @type {import('../jsdocUtils.js').ParserMode[]} */ ([\n 'jsdoc', 'typescript', 'closure', 'permissive',\n ]).filter(\n (mde) => {\n return mde !== mode;\n },\n ).map((mde) => {\n return utils.getTagStructureForMode(mde);\n });\n\n const tagMightHaveNamePosition = utils.tagMightHaveNamePosition(tag.tag, otherModeMaps);\n if (tagMightHaveNamePosition !== true && tag.name) {\n const modeInfo = tagMightHaveNamePosition === false ? '' : ` in \"${mode}\" mode`;\n report(`@${tag.tag} should not have a name${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // Documentation like `@returns {@link SomeType}` is technically ambiguous. Specifically it\n // could either be intepreted as a type `\"@link SomeType\"` or a description `\"{@link SomeType}\"`.\n // However this is a good heuristic.\n if (tag.type.trim().startsWith('@')) {\n tag.description = `{${tag.type}} ${tag.description}`;\n tag.type = '';\n }\n\n const mightHaveTypePosition = utils.tagMightHaveTypePosition(tag.tag, otherModeMaps);\n if (mightHaveTypePosition !== true && tag.type) {\n const modeInfo = mightHaveTypePosition === false ? '' : ` in \"${mode}\" mode`;\n report(`@${tag.tag} should not have a bracketed type${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // REQUIRED NAME\n const tagMustHaveNamePosition = utils.tagMustHaveNamePosition(tag.tag, otherModeMaps);\n\n // Don't handle `@param` here though it does require name as handled by\n // `require-param-name` (`@property` would similarly seem to require one,\n // but is handled by `require-property-name`)\n if (tagMustHaveNamePosition !== false && !tag.name && !allowEmptyNamepaths && ![\n 'arg', 'argument', 'param',\n 'prop', 'property',\n ].includes(tag.tag) &&\n (tag.tag !== 'see' || !utils.getTagDescription(tag).includes('{@link'))\n ) {\n const modeInfo = tagMustHaveNamePosition === true ? '' : ` in \"${mode}\" mode`;\n report(`Tag @${tag.tag} must have a name/namepath${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // REQUIRED TYPE\n const mustHaveTypePosition = utils.tagMustHaveTypePosition(tag.tag, otherModeMaps);\n if (mustHaveTypePosition !== false && !tag.type &&\n // Auto-added to settings and has own rule already, so don't duplicate\n tag.tag !== 'next'\n ) {\n const modeInfo = mustHaveTypePosition === true ? '' : ` in \"${mode}\" mode`;\n report(`Tag @${tag.tag} must have a type${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // REQUIRED TYPE OR NAME/NAMEPATH\n const tagMissingRequiredTypeOrNamepath = utils.tagMissingRequiredTypeOrNamepath(tag, otherModeMaps);\n if (tagMissingRequiredTypeOrNamepath !== false && !allowEmptyNamepaths) {\n const modeInfo = tagMissingRequiredTypeOrNamepath === true ? '' : ` in \"${mode}\" mode`;\n report(`Tag @${tag.tag} must have either a type or namepath${modeInfo}.`, null, tag);\n\n continue;\n }\n\n // VALID TYPE\n const hasTypePosition = mightHaveTypePosition === true && Boolean(tag.type);\n if (hasTypePosition && (tag.type !== 'const' || tag.tag !== 'type')) {\n validTypeParsing(tag.type);\n }\n\n // VALID NAME/NAMEPATH\n const hasNamepathPosition = (\n tagMustHaveNamePosition !== false ||\n utils.tagMightHaveNamepath(tag.tag)\n ) && Boolean(tag.name);\n\n if (hasNamepathPosition) {\n if (mode !== 'jsdoc' && tag.tag === 'template') {\n if (!tryParsePathIgnoreError(\n // May be an issue with the commas of\n // `utils.parseClosureTemplateTag`, so first try a raw\n // value; we really need a proper parser instead, however.\n tag.name.trim().replace(/^\\[?(?<name>.*?)=.*$/v, '$<name>'),\n mode,\n )) {\n for (const namepath of utils.parseClosureTemplateTag(tag)) {\n validNamepathParsing(namepath);\n }\n }\n } else {\n validNamepathParsing(tag.name, tag.tag);\n }\n }\n\n const hasNamePosition = utils.tagMightHaveName(tag.tag) &&\n Boolean(tag.name);\n if (\n hasNamePosition &&\n mode === 'typescript' &&\n !tryParseNameIgnoreError(tag.name, mode)\n ) {\n report(`Syntax error in name: ${tag.name}`, null, tag);\n } else if (hasNamePosition && mode !== 'typescript') {\n validNamepathParsing(tag.name, tag.tag);\n }\n\n for (const inlineTag of tag.inlineTags) {\n if (inlineTags.has(inlineTag.tag) && !inlineTag.text && !inlineTag.namepathOrURL) {\n report(`Inline tag \"${inlineTag.tag}\" missing content`, null, tag);\n }\n }\n }\n\n for (const inlineTag of jsdoc.inlineTags) {\n if (inlineTags.has(inlineTag.tag) && !inlineTag.text && !inlineTag.namepathOrURL) {\n report(`Inline tag \"${inlineTag.tag}\" missing content`);\n }\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Requires all types/namepaths to be valid JSDoc, Closure compiler, or TypeScript types (configurable in settings).',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header',\n },\n schema: [\n {\n additionalProperties: false,\n properties: {\n allowEmptyNamepaths: {\n default: false,\n description: `Set to \\`false\\` to bulk disallow\nempty name paths with namepath groups 2 and 4 (these might often be\nexpected to have an accompanying name path, though they have some\nindicative value without one; these may also allow names to be defined\nin another manner elsewhere in the block); you can use\n\\`settings.jsdoc.structuredTags\\` with the \\`required\\` key set to \"name\" if you\nwish to require name paths on a tag-by-tag basis. Defaults to \\`true\\`.`,\n type: 'boolean',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -192,5 +192,5 @@
192
192
  "test-cov": "TIMING=1 c8 --reporter text pnpm run test-no-cov",
193
193
  "test-index": "pnpm run test-no-cov test/rules/index.js"
194
194
  },
195
- "version": "62.7.1"
195
+ "version": "62.8.1"
196
196
  }
package/src/index-cjs.js CHANGED
@@ -394,6 +394,27 @@ const createRecommendedTypeScriptRuleset = (warnOrError, flatName) => {
394
394
  };
395
395
  };
396
396
 
397
+ /**
398
+ * @param {"warn"|"error"} warnOrError
399
+ * @param {string} [flatName]
400
+ * @returns {import('eslint').Linter.Config}
401
+ */
402
+ const createRecommendedTsDocRuleset = (warnOrError, flatName) => {
403
+ const ruleset = createRecommendedTypeScriptRuleset(warnOrError, flatName);
404
+
405
+ return {
406
+ ...ruleset,
407
+ rules: {
408
+ ...ruleset.rules,
409
+ /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
410
+ 'jsdoc/require-next-type': 'off',
411
+ 'jsdoc/require-throws-type': 'off',
412
+ 'jsdoc/require-yields-type': 'off',
413
+ /* eslint-enable @stylistic/indent */
414
+ },
415
+ };
416
+ };
417
+
397
418
  /**
398
419
  * @param {"warn"|"error"} warnOrError
399
420
  * @param {string} [flatName]
@@ -543,6 +564,8 @@ index.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('wa
543
564
  index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error');
544
565
  index.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn');
545
566
  index.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error');
567
+ index.configs['recommended-tsdoc'] = createRecommendedTsDocRuleset('warn');
568
+ index.configs['recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error');
546
569
 
547
570
  index.configs['flat/recommended'] = createRecommendedRuleset('warn', 'flat/recommended');
548
571
  index.configs['flat/recommended-error'] = createRecommendedRuleset('error', 'flat/recommended-error');
@@ -550,6 +573,8 @@ index.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRulese
550
573
  index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', 'flat/recommended-typescript-error');
551
574
  index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor');
552
575
  index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error');
576
+ index.configs['flat/recommended-tsdoc'] = createRecommendedTsDocRuleset('warn', 'flat/recommended-tsdoc');
577
+ index.configs['flat/recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error', 'flat/recommended-tsdoc-error');
553
578
 
554
579
  index.configs['flat/contents-typescript'] = createContentsTypescriptRuleset('warn', 'flat/contents-typescript');
555
580
  index.configs['flat/contents-typescript-error'] = createContentsTypescriptRuleset('error', 'flat/contents-typescript-error');
package/src/index.js CHANGED
@@ -400,6 +400,27 @@ const createRecommendedTypeScriptRuleset = (warnOrError, flatName) => {
400
400
  };
401
401
  };
402
402
 
403
+ /**
404
+ * @param {"warn"|"error"} warnOrError
405
+ * @param {string} [flatName]
406
+ * @returns {import('eslint').Linter.Config}
407
+ */
408
+ const createRecommendedTsDocRuleset = (warnOrError, flatName) => {
409
+ const ruleset = createRecommendedTypeScriptRuleset(warnOrError, flatName);
410
+
411
+ return {
412
+ ...ruleset,
413
+ rules: {
414
+ ...ruleset.rules,
415
+ /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
416
+ 'jsdoc/require-next-type': 'off',
417
+ 'jsdoc/require-throws-type': 'off',
418
+ 'jsdoc/require-yields-type': 'off',
419
+ /* eslint-enable @stylistic/indent */
420
+ },
421
+ };
422
+ };
423
+
403
424
  /**
404
425
  * @param {"warn"|"error"} warnOrError
405
426
  * @param {string} [flatName]
@@ -549,6 +570,8 @@ index.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('wa
549
570
  index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error');
550
571
  index.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn');
551
572
  index.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error');
573
+ index.configs['recommended-tsdoc'] = createRecommendedTsDocRuleset('warn');
574
+ index.configs['recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error');
552
575
 
553
576
  index.configs['flat/recommended'] = createRecommendedRuleset('warn', 'flat/recommended');
554
577
  index.configs['flat/recommended-error'] = createRecommendedRuleset('error', 'flat/recommended-error');
@@ -556,6 +579,8 @@ index.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRulese
556
579
  index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', 'flat/recommended-typescript-error');
557
580
  index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor');
558
581
  index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error');
582
+ index.configs['flat/recommended-tsdoc'] = createRecommendedTsDocRuleset('warn', 'flat/recommended-tsdoc');
583
+ index.configs['flat/recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error', 'flat/recommended-tsdoc-error');
559
584
 
560
585
  index.configs['flat/contents-typescript'] = createContentsTypescriptRuleset('warn', 'flat/contents-typescript');
561
586
  index.configs['flat/contents-typescript-error'] = createContentsTypescriptRuleset('error', 'flat/contents-typescript-error');
@@ -95,9 +95,16 @@ const suppressTypes = new Set([
95
95
  */
96
96
  const tryParsePathIgnoreError = (path, mode) => {
97
97
  try {
98
- parseNamePath(path, mode === 'permissive' ? 'jsdoc' : mode, {
99
- includeSpecial: true,
100
- });
98
+ parseNamePath(
99
+ // Todo: Should avoid need for this by letting comment-parser parse default
100
+ // values as such when they are not optional
101
+ // Strip default value
102
+ path.replace(/[=].*/v, ''),
103
+ mode === 'permissive' ? 'jsdoc' : mode,
104
+ {
105
+ includeSpecial: true,
106
+ },
107
+ );
101
108
 
102
109
  return true;
103
110
  } catch {