eslint-plugin-jsdoc 55.0.5 → 55.1.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.
Files changed (87) hide show
  1. package/README.md +11 -1
  2. package/dist/WarnSettings.d.ts +17 -0
  3. package/dist/alignTransform.d.ts +34 -0
  4. package/dist/defaultTagOrder.d.ts +5 -0
  5. package/dist/exportParser.d.ts +41 -0
  6. package/dist/generateRuleTypes.cjs +25 -0
  7. package/dist/generateRuleTypes.cjs.map +1 -0
  8. package/dist/getDefaultTagStructureForMode.d.ts +11 -0
  9. package/dist/index-cjs.d.ts +17 -0
  10. package/dist/index-esm.cjs +5 -1
  11. package/dist/index-esm.cjs.map +1 -1
  12. package/dist/index-esm.d.ts +19 -0
  13. package/dist/index.cjs +5 -1
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.ts +3 -1
  16. package/dist/jsdocUtils.cjs.map +1 -1
  17. package/dist/jsdocUtils.d.ts +455 -0
  18. package/dist/rules/checkAccess.d.ts +3 -0
  19. package/dist/rules/checkAlignment.d.ts +3 -0
  20. package/dist/rules/checkExamples.d.ts +4 -0
  21. package/dist/rules/checkIndentation.d.ts +3 -0
  22. package/dist/rules/checkLineAlignment.d.ts +10 -0
  23. package/dist/rules/checkParamNames.d.ts +3 -0
  24. package/dist/rules/checkPropertyNames.d.ts +3 -0
  25. package/dist/rules/checkSyntax.d.ts +3 -0
  26. package/dist/rules/checkTagNames.d.ts +3 -0
  27. package/dist/rules/checkTemplateNames.d.ts +3 -0
  28. package/dist/rules/checkTypes.d.ts +3 -0
  29. package/dist/rules/checkValues.d.ts +3 -0
  30. package/dist/rules/convertToJsdocComments.d.ts +252 -0
  31. package/dist/rules/emptyTags.d.ts +3 -0
  32. package/dist/rules/implementsOnClasses.d.ts +3 -0
  33. package/dist/rules/importsAsDependencies.d.ts +3 -0
  34. package/dist/rules/informativeDocs.d.ts +3 -0
  35. package/dist/rules/linesBeforeBlock.d.ts +3 -0
  36. package/dist/rules/matchDescription.d.ts +3 -0
  37. package/dist/rules/matchName.d.ts +3 -0
  38. package/dist/rules/multilineBlocks.d.ts +3 -0
  39. package/dist/rules/noBadBlocks.d.ts +3 -0
  40. package/dist/rules/noBlankBlockDescriptions.d.ts +3 -0
  41. package/dist/rules/noBlankBlocks.d.ts +3 -0
  42. package/dist/rules/noDefaults.d.ts +3 -0
  43. package/dist/rules/noMissingSyntax.d.ts +10 -0
  44. package/dist/rules/noMultiAsterisks.d.ts +3 -0
  45. package/dist/rules/noRestrictedSyntax.d.ts +3 -0
  46. package/dist/rules/noTypes.d.ts +3 -0
  47. package/dist/rules/noUndefinedTypes.d.ts +3 -0
  48. package/dist/rules/requireAsteriskPrefix.d.ts +3 -0
  49. package/dist/rules/requireDescription.d.ts +3 -0
  50. package/dist/rules/requireDescriptionCompleteSentence.d.ts +3 -0
  51. package/dist/rules/requireExample.d.ts +3 -0
  52. package/dist/rules/requireFileOverview.d.ts +3 -0
  53. package/dist/rules/requireHyphenBeforeParamDescription.d.ts +3 -0
  54. package/dist/rules/requireJsdoc.d.ts +26 -0
  55. package/dist/rules/requireParam.d.ts +4 -0
  56. package/dist/rules/requireParamDescription.d.ts +3 -0
  57. package/dist/rules/requireParamName.d.ts +3 -0
  58. package/dist/rules/requireParamType.d.ts +3 -0
  59. package/dist/rules/requireProperty.d.ts +3 -0
  60. package/dist/rules/requirePropertyDescription.d.ts +3 -0
  61. package/dist/rules/requirePropertyName.d.ts +3 -0
  62. package/dist/rules/requirePropertyType.d.ts +3 -0
  63. package/dist/rules/requireReturns.d.ts +3 -0
  64. package/dist/rules/requireReturnsCheck.d.ts +3 -0
  65. package/dist/rules/requireReturnsDescription.d.ts +3 -0
  66. package/dist/rules/requireReturnsType.d.ts +3 -0
  67. package/dist/rules/requireTemplate.d.ts +3 -0
  68. package/dist/rules/requireThrows.d.ts +3 -0
  69. package/dist/rules/requireYields.d.ts +3 -0
  70. package/dist/rules/requireYieldsCheck.d.ts +3 -0
  71. package/dist/rules/sortTags.d.ts +3 -0
  72. package/dist/rules/tagLines.d.ts +3 -0
  73. package/dist/rules/textEscaping.d.ts +3 -0
  74. package/dist/rules/validTypes.d.ts +3 -0
  75. package/dist/rules.d.ts +766 -0
  76. package/dist/tagNames.d.ts +16 -0
  77. package/dist/utils/hasReturnValue.d.ts +20 -0
  78. package/package.json +3 -1
  79. package/src/index-esm.js +6 -1
  80. package/src/index.js +6 -1
  81. package/src/jsdocUtils.js +2 -1
  82. package/src/rules.d.ts +766 -0
  83. package/typings/babel__eslint-parser.d.ts +1 -0
  84. package/typings/gitdown.d.ts +12 -0
  85. package/dist/getJsdocProcessorPlugin.d.ts.map +0 -1
  86. package/dist/index.d.ts.map +0 -1
  87. package/dist/iterateJsdoc.d.ts.map +0 -1
@@ -0,0 +1,16 @@
1
+ export type AliasedTags = {
2
+ [key: string]: string[];
3
+ };
4
+ /**
5
+ * @type {AliasedTags}
6
+ */
7
+ export const closureTags: AliasedTags;
8
+ /**
9
+ * @type {AliasedTags}
10
+ */
11
+ export const jsdocTags: AliasedTags;
12
+ /**
13
+ * @type {AliasedTags}
14
+ */
15
+ export const typeScriptTags: AliasedTags;
16
+ //# sourceMappingURL=tagNames.d.ts.map
@@ -0,0 +1,20 @@
1
+ export type ESTreeOrTypeScriptNode = import("estree").Node | import("@typescript-eslint/types").TSESTree.Node;
2
+ export type PromiseFilter = (node: ESTreeOrTypeScriptNode | undefined) => boolean;
3
+ /**
4
+ * Checks if a node has a return statement. Void return does not count.
5
+ * @param {ESTreeOrTypeScriptNode|undefined|null} node
6
+ * @param {boolean} [throwOnNullReturn]
7
+ * @param {PromiseFilter} [promFilter]
8
+ * @returns {boolean|undefined}
9
+ */
10
+ export function hasReturnValue(node: ESTreeOrTypeScriptNode | undefined | null, throwOnNullReturn?: boolean, promFilter?: PromiseFilter): boolean | undefined;
11
+ /**
12
+ * Checks if a Promise executor has no resolve value or an empty value.
13
+ * An `undefined` resolve does not count.
14
+ * @param {ESTreeOrTypeScriptNode} node
15
+ * @param {boolean} anyPromiseAsReturn
16
+ * @param {boolean} [allBranches]
17
+ * @returns {boolean}
18
+ */
19
+ export function hasValueOrExecutorHasNonEmptyResolveValue(node: ESTreeOrTypeScriptNode, anyPromiseAsReturn: boolean, allBranches?: boolean): boolean;
20
+ //# sourceMappingURL=hasReturnValue.d.ts.map
package/package.json CHANGED
@@ -58,6 +58,7 @@
58
58
  "husky": "^9.1.7",
59
59
  "jsdoc-type-pratt-parser": "^5.1.1",
60
60
  "json-schema": "^0.4.0",
61
+ "json-schema-to-typescript": "^15.0.4",
61
62
  "lint-staged": "^16.1.6",
62
63
  "mocha": "^11.7.2",
63
64
  "open-editor": "^5.1.0",
@@ -141,6 +142,7 @@
141
142
  "package-lock.json": "pnpm run install-offline"
142
143
  },
143
144
  "scripts": {
145
+ "ruleTypes": "node ./src/bin/generateRuleTypes.js",
144
146
  "tsc": "tsc",
145
147
  "tsc-build": "tsc -p tsconfig-prod.json",
146
148
  "build": "node ./src/bin/buildEntryFileForTS.js && rimraf ./dist && NODE_ENV=production babel ./src --out-file-extension .cjs --out-dir ./dist --copy-files --source-maps --ignore ./src/bin/*.js --no-copy-ignored && replace 'require\\(\"\\.(.*?)\\.[^.]*?\"\\)' 'require(\".$1.cjs\")' 'dist' -r --include=\"*.cjs\" && pnpm tsc-build",
@@ -158,5 +160,5 @@
158
160
  "test-cov": "TIMING=1 c8 --reporter text pnpm run test-no-cov",
159
161
  "test-index": "pnpm run test-no-cov test/rules/index.js"
160
162
  },
161
- "version": "55.0.5"
163
+ "version": "55.1.1"
162
164
  }
package/src/index-esm.js CHANGED
@@ -16,7 +16,8 @@ export default index;
16
16
  * cfg?: {
17
17
  * mergeSettings?: boolean,
18
18
  * config?: `flat/${import('./index-cjs.js').ConfigGroups}${import('./index-cjs.js').ConfigVariants}${import('./index-cjs.js').ErrorLevelVariants}`,
19
- * settings?: Partial<import('./iterateJsdoc.js').Settings>
19
+ * settings?: Partial<import('./iterateJsdoc.js').Settings>,
20
+ * rules?: {[key in keyof import('./rules.d.ts').Rules]?: ["error"|"warn"|"off", ...import('./rules.d.ts').Rules[key]]}
20
21
  * }
21
22
  * ) => import('eslint').Linter.Config)}
22
23
  */
@@ -39,6 +40,10 @@ export const jsdoc = function (cfg) {
39
40
  outputConfig = index.configs[cfg.config];
40
41
  }
41
42
 
43
+ if (cfg?.rules) {
44
+ outputConfig.rules = cfg.rules;
45
+ }
46
+
42
47
  outputConfig.settings = {
43
48
  jsdoc: cfg?.mergeSettings === false ?
44
49
  cfg.settings :
package/src/index.js CHANGED
@@ -539,7 +539,8 @@ export default index;
539
539
  * cfg?: {
540
540
  * mergeSettings?: boolean,
541
541
  * config?: `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,
542
- * settings?: Partial<import('./iterateJsdoc.js').Settings>
542
+ * settings?: Partial<import('./iterateJsdoc.js').Settings>,
543
+ * rules?: {[key in keyof import('./rules.d.ts').Rules]?: ["error"|"warn"|"off", ...import('./rules.d.ts').Rules[key]]}
543
544
  * }
544
545
  * ) => import('eslint').Linter.Config)}
545
546
  */
@@ -562,6 +563,10 @@ export const jsdoc = function (cfg) {
562
563
  outputConfig = index.configs[cfg.config];
563
564
  }
564
565
 
566
+ if (cfg?.rules) {
567
+ outputConfig.rules = cfg.rules;
568
+ }
569
+
565
570
  outputConfig.settings = {
566
571
  jsdoc: cfg?.mergeSettings === false ?
567
572
  cfg.settings :
package/src/jsdocUtils.js CHANGED
@@ -529,7 +529,8 @@ const getTagNamesForMode = (mode, context) => {
529
529
  case 'permissive':
530
530
  return closureTags;
531
531
  case 'jsdoc':
532
- return jsdocTags; case 'typescript':
532
+ return jsdocTags;
533
+ case 'typescript':
533
534
  return typeScriptTags;
534
535
  default:
535
536
  if (!modeWarnSettings.hasBeenWarned(context, 'mode')) {