eslint-plugin-jsdoc 63.0.10 → 63.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dist/WarnSettings.cjs +1 -8
  2. package/dist/WarnSettings.cjs.map +1 -1
  3. package/dist/alignTransform.cjs +6 -10
  4. package/dist/alignTransform.cjs.map +1 -1
  5. package/dist/buildForbidRuleDefinition.cjs +3 -10
  6. package/dist/buildForbidRuleDefinition.cjs.map +1 -1
  7. package/dist/buildRejectOrPreferRuleDefinition.cjs +7 -14
  8. package/dist/buildRejectOrPreferRuleDefinition.cjs.map +1 -1
  9. package/dist/defaultTagOrder.cjs +1 -8
  10. package/dist/defaultTagOrder.cjs.map +1 -1
  11. package/dist/exportParser.cjs +6 -14
  12. package/dist/exportParser.cjs.map +1 -1
  13. package/dist/generateDocs.cjs +36 -44
  14. package/dist/generateDocs.cjs.map +1 -1
  15. package/dist/generateOptions.cjs +15 -18
  16. package/dist/generateOptions.cjs.map +1 -1
  17. package/dist/generateRule.cjs +24 -24
  18. package/dist/generateRule.cjs.map +1 -1
  19. package/dist/generateRuleTypes.cjs +6 -9
  20. package/dist/generateRuleTypes.cjs.map +1 -1
  21. package/dist/getDefaultTagStructureForMode.cjs +1 -8
  22. package/dist/getDefaultTagStructureForMode.cjs.map +1 -1
  23. package/dist/getJsdocProcessorPlugin.cjs +20 -28
  24. package/dist/getJsdocProcessorPlugin.cjs.map +1 -1
  25. package/dist/index-cjs.cjs +152 -159
  26. package/dist/index-cjs.cjs.map +1 -1
  27. package/dist/index-esm.cjs +16 -27
  28. package/dist/index-esm.cjs.map +1 -1
  29. package/dist/index.cjs +159 -172
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/iterateJsdoc.cjs +22 -32
  32. package/dist/iterateJsdoc.cjs.map +1 -1
  33. package/dist/jsdocUtils.cjs +18 -86
  34. package/dist/jsdocUtils.cjs.map +1 -1
  35. package/dist/rules/checkAccess.cjs +2 -10
  36. package/dist/rules/checkAccess.cjs.map +1 -1
  37. package/dist/rules/checkAlignment.cjs +2 -10
  38. package/dist/rules/checkAlignment.cjs.map +1 -1
  39. package/dist/rules/checkExamples.cjs +6 -15
  40. package/dist/rules/checkExamples.cjs.map +1 -1
  41. package/dist/rules/checkIndentation.cjs +2 -9
  42. package/dist/rules/checkIndentation.cjs.map +1 -1
  43. package/dist/rules/checkLineAlignment.cjs +6 -14
  44. package/dist/rules/checkLineAlignment.cjs.map +1 -1
  45. package/dist/rules/checkParamNames.cjs +2 -9
  46. package/dist/rules/checkParamNames.cjs.map +1 -1
  47. package/dist/rules/checkPropertyNames.cjs +2 -9
  48. package/dist/rules/checkPropertyNames.cjs.map +1 -1
  49. package/dist/rules/checkSyntax.cjs +2 -10
  50. package/dist/rules/checkSyntax.cjs.map +1 -1
  51. package/dist/rules/checkTagNames.cjs +4 -11
  52. package/dist/rules/checkTagNames.cjs.map +1 -1
  53. package/dist/rules/checkTemplateNames.cjs +12 -21
  54. package/dist/rules/checkTemplateNames.cjs.map +1 -1
  55. package/dist/rules/checkTypes.cjs +4 -10
  56. package/dist/rules/checkTypes.cjs.map +1 -1
  57. package/dist/rules/checkValues.cjs +9 -17
  58. package/dist/rules/checkValues.cjs.map +1 -1
  59. package/dist/rules/convertToJsdocComments.cjs +13 -19
  60. package/dist/rules/convertToJsdocComments.cjs.map +1 -1
  61. package/dist/rules/emptyTags.cjs +2 -10
  62. package/dist/rules/emptyTags.cjs.map +1 -1
  63. package/dist/rules/escapeInlineTags.cjs +2 -10
  64. package/dist/rules/escapeInlineTags.cjs.map +1 -1
  65. package/dist/rules/implementsOnClasses.cjs +2 -10
  66. package/dist/rules/implementsOnClasses.cjs.map +1 -1
  67. package/dist/rules/importsAsDependencies.cjs +12 -20
  68. package/dist/rules/importsAsDependencies.cjs.map +1 -1
  69. package/dist/rules/informativeDocs.cjs +4 -12
  70. package/dist/rules/informativeDocs.cjs.map +1 -1
  71. package/dist/rules/linesBeforeBlock.cjs +2 -9
  72. package/dist/rules/linesBeforeBlock.cjs.map +1 -1
  73. package/dist/rules/matchDescription.cjs +2 -9
  74. package/dist/rules/matchDescription.cjs.map +1 -1
  75. package/dist/rules/matchName.cjs +2 -10
  76. package/dist/rules/matchName.cjs.map +1 -1
  77. package/dist/rules/multilineBlocks.cjs +2 -9
  78. package/dist/rules/multilineBlocks.cjs.map +1 -1
  79. package/dist/rules/noBadBlocks.cjs +4 -11
  80. package/dist/rules/noBadBlocks.cjs.map +1 -1
  81. package/dist/rules/noBlankBlockDescriptions.cjs +2 -10
  82. package/dist/rules/noBlankBlockDescriptions.cjs.map +1 -1
  83. package/dist/rules/noBlankBlocks.cjs +2 -10
  84. package/dist/rules/noBlankBlocks.cjs.map +1 -1
  85. package/dist/rules/noDefaults.cjs +2 -10
  86. package/dist/rules/noDefaults.cjs.map +1 -1
  87. package/dist/rules/noMissingSyntax.cjs +2 -9
  88. package/dist/rules/noMissingSyntax.cjs.map +1 -1
  89. package/dist/rules/noMultiAsterisks.cjs +2 -10
  90. package/dist/rules/noMultiAsterisks.cjs.map +1 -1
  91. package/dist/rules/noRestrictedSyntax.cjs +2 -9
  92. package/dist/rules/noRestrictedSyntax.cjs.map +1 -1
  93. package/dist/rules/noTypes.cjs +2 -9
  94. package/dist/rules/noTypes.cjs.map +1 -1
  95. package/dist/rules/noUndefinedTypes.cjs +13 -21
  96. package/dist/rules/noUndefinedTypes.cjs.map +1 -1
  97. package/dist/rules/preferImportTag.cjs +21 -28
  98. package/dist/rules/preferImportTag.cjs.map +1 -1
  99. package/dist/rules/requireAsteriskPrefix.cjs +2 -10
  100. package/dist/rules/requireAsteriskPrefix.cjs.map +1 -1
  101. package/dist/rules/requireDescription.cjs +2 -9
  102. package/dist/rules/requireDescription.cjs.map +1 -1
  103. package/dist/rules/requireDescriptionCompleteSentence.cjs +7 -15
  104. package/dist/rules/requireDescriptionCompleteSentence.cjs.map +1 -1
  105. package/dist/rules/requireExample.cjs +2 -10
  106. package/dist/rules/requireExample.cjs.map +1 -1
  107. package/dist/rules/requireFileOverview.cjs +2 -10
  108. package/dist/rules/requireFileOverview.cjs.map +1 -1
  109. package/dist/rules/requireHyphenBeforeParamDescription.cjs +2 -10
  110. package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +1 -1
  111. package/dist/rules/requireJsdoc.cjs +17 -25
  112. package/dist/rules/requireJsdoc.cjs.map +1 -1
  113. package/dist/rules/requireParam.cjs +2 -9
  114. package/dist/rules/requireParam.cjs.map +1 -1
  115. package/dist/rules/requireParamDescription.cjs +2 -10
  116. package/dist/rules/requireParamDescription.cjs.map +1 -1
  117. package/dist/rules/requireParamName.cjs +2 -10
  118. package/dist/rules/requireParamName.cjs.map +1 -1
  119. package/dist/rules/requireParamType.cjs +2 -10
  120. package/dist/rules/requireParamType.cjs.map +1 -1
  121. package/dist/rules/requireProperty.cjs +2 -10
  122. package/dist/rules/requireProperty.cjs.map +1 -1
  123. package/dist/rules/requirePropertyDescription.cjs +2 -10
  124. package/dist/rules/requirePropertyDescription.cjs.map +1 -1
  125. package/dist/rules/requirePropertyName.cjs +2 -10
  126. package/dist/rules/requirePropertyName.cjs.map +1 -1
  127. package/dist/rules/requirePropertyType.cjs +2 -10
  128. package/dist/rules/requirePropertyType.cjs.map +1 -1
  129. package/dist/rules/requireRejects.cjs +2 -9
  130. package/dist/rules/requireRejects.cjs.map +1 -1
  131. package/dist/rules/requireReturns.cjs +4 -11
  132. package/dist/rules/requireReturns.cjs.map +1 -1
  133. package/dist/rules/requireReturnsCheck.cjs +8 -15
  134. package/dist/rules/requireReturnsCheck.cjs.map +1 -1
  135. package/dist/rules/requireReturnsDescription.cjs +2 -10
  136. package/dist/rules/requireReturnsDescription.cjs.map +1 -1
  137. package/dist/rules/requireReturnsType.cjs +2 -10
  138. package/dist/rules/requireReturnsType.cjs.map +1 -1
  139. package/dist/rules/requireTags.cjs +2 -9
  140. package/dist/rules/requireTags.cjs.map +1 -1
  141. package/dist/rules/requireTemplate.cjs +5 -13
  142. package/dist/rules/requireTemplate.cjs.map +1 -1
  143. package/dist/rules/requireThrows.cjs +2 -9
  144. package/dist/rules/requireThrows.cjs.map +1 -1
  145. package/dist/rules/requireYields.cjs +2 -9
  146. package/dist/rules/requireYields.cjs.map +1 -1
  147. package/dist/rules/requireYieldsCheck.cjs +2 -9
  148. package/dist/rules/requireYieldsCheck.cjs.map +1 -1
  149. package/dist/rules/sortTags.cjs +4 -12
  150. package/dist/rules/sortTags.cjs.map +1 -1
  151. package/dist/rules/tagLines.cjs +2 -9
  152. package/dist/rules/tagLines.cjs.map +1 -1
  153. package/dist/rules/textEscaping.cjs +2 -9
  154. package/dist/rules/textEscaping.cjs.map +1 -1
  155. package/dist/rules/tsMethodSignatureStyle.cjs +10 -18
  156. package/dist/rules/tsMethodSignatureStyle.cjs.map +1 -1
  157. package/dist/rules/tsNoEmptyObjectType.cjs +5 -13
  158. package/dist/rules/tsNoEmptyObjectType.cjs.map +1 -1
  159. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +8 -16
  160. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +1 -1
  161. package/dist/rules/tsPreferFunctionType.cjs +8 -16
  162. package/dist/rules/tsPreferFunctionType.cjs.map +1 -1
  163. package/dist/rules/typeFormatting.cjs +9 -17
  164. package/dist/rules/typeFormatting.cjs.map +1 -1
  165. package/dist/rules/validTypes.cjs +10 -18
  166. package/dist/rules/validTypes.cjs.map +1 -1
  167. package/dist/tagNames.cjs +4 -9
  168. package/dist/tagNames.cjs.map +1 -1
  169. package/dist/utils/hasReturnValue.cjs +1 -8
  170. package/dist/utils/hasReturnValue.cjs.map +1 -1
  171. package/package.json +21 -21
  172. package/src/rules/checkTemplateNames.js +0 -1
  173. package/src/rules/requireJsdoc.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"typeFormatting.cjs","names":["_iterateJsdoc","_interopRequireDefault","require","_jsdocUtils","_jsdoccomment","e","__esModule","default","digitRegex","_default","exports","iterateJsdoc","context","indent","jsdoc","settings","utils","arrayBrackets","arrowFunctionPostReturnMarkerSpacing","arrowFunctionPreReturnMarkerSpacing","enableFixer","functionOrClassParameterSpacing","functionOrClassPostGenericSpacing","functionOrClassPostReturnMarkerSpacing","functionOrClassPreReturnMarkerSpacing","functionOrClassTypeParameterSpacing","genericAndTupleElementSpacing","genericDot","keyValuePostColonSpacing","keyValuePostKeySpacing","keyValuePostOptionalSpacing","keyValuePostVariadicSpacing","methodQuotes","objectFieldIndent","objectFieldQuote","objectFieldSeparator","objectFieldSeparatorOptionalLinebreak","objectFieldSeparatorTrailingPunctuation","objectTypeBracketSpacing","parameterDefaultValueSpacing","postMethodNameSpacing","postNewSpacing","separatorForSingleObjectField","stringQuotes","trailingPunctuationMultilineOnly","typeBracketSpacing","unionSpacing","options","mode","checkTypeFormats","tag","potentialType","type","parsedType","tryParseType","parseType","fix","rewireByParsedType","errorMessages","startsWith","endsWith","push","test","traverse","nde","errorMessage","conditionalAdds","meta","typNode","newMeta","parameterSpacing","postGenericSpacing","postReturnMarkerSpacing","preReturnMarkerSpacing","typeParameterSpacing","typeNode","arrow","quote","undefined","left","value","brackets","dot","elementSpacing","postKeySpacing","postColonSpacing","postOptionalSpacing","postVariadicSpacing","variadic","separator","propertyIndent","trailingPunctuation","stringify","includes","replace","bracketSpacing","key","defaultValue","defaultValueSpacing","spacing","differentResult","length","reportJSDoc","tags","getPresentTags","iterateAllJsdocs","docs","description","url","fixable","schema","additionalProperties","properties","enum","module"],"sources":["../../src/rules/typeFormatting.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\nimport {\n rewireByParsedType,\n} from '../jsdocUtils.js';\nimport {\n parse as parseType,\n stringify,\n traverse,\n tryParse as tryParseType,\n} from '@es-joy/jsdoccomment';\n\nconst digitRegex = (/^(\\d+(\\.\\d*)?|\\.\\d+)([eE][\\-+]?\\d+)?$/v);\n\nexport default iterateJsdoc(({\n context,\n indent,\n jsdoc,\n settings,\n utils,\n// eslint-disable-next-line complexity -- Todo\n}) => {\n const {\n arrayBrackets = 'square',\n arrowFunctionPostReturnMarkerSpacing = ' ',\n arrowFunctionPreReturnMarkerSpacing = ' ',\n enableFixer = true,\n functionOrClassParameterSpacing = ' ',\n functionOrClassPostGenericSpacing = '',\n functionOrClassPostReturnMarkerSpacing = ' ',\n functionOrClassPreReturnMarkerSpacing = '',\n functionOrClassTypeParameterSpacing = ' ',\n genericAndTupleElementSpacing = ' ',\n genericDot = false,\n keyValuePostColonSpacing = ' ',\n keyValuePostKeySpacing = '',\n keyValuePostOptionalSpacing = '',\n keyValuePostVariadicSpacing = '',\n methodQuotes = 'double',\n objectFieldIndent = '',\n objectFieldQuote = null,\n objectFieldSeparator = 'comma',\n objectFieldSeparatorOptionalLinebreak = true,\n objectFieldSeparatorTrailingPunctuation = false,\n objectTypeBracketSpacing = '',\n parameterDefaultValueSpacing = ' ',\n postMethodNameSpacing = '',\n postNewSpacing = ' ',\n // propertyQuotes = null,\n separatorForSingleObjectField = false,\n stringQuotes = 'double',\n trailingPunctuationMultilineOnly = false,\n typeBracketSpacing = '',\n unionSpacing = ' ',\n } = context.options[0] || {};\n\n const {\n mode,\n } = settings;\n\n /**\n * @param {import('@es-joy/jsdoccomment').JsdocTagWithInline} tag\n */\n const checkTypeFormats = (tag) => {\n const potentialType = tag.type;\n let parsedType;\n try {\n parsedType = mode === 'permissive' ?\n tryParseType(/** @type {string} */ (potentialType)) :\n parseType(/** @type {string} */ (potentialType), mode);\n } catch {\n return;\n }\n\n const fix = () => {\n rewireByParsedType(jsdoc, tag, parsedType, indent, typeBracketSpacing);\n };\n\n /** @type {string[]} */\n const errorMessages = [];\n\n if (typeBracketSpacing && (!tag.type.startsWith(typeBracketSpacing) || !tag.type.endsWith(typeBracketSpacing))) {\n errorMessages.push(`Must have initial and final \"${typeBracketSpacing}\" spacing`);\n } else if (!typeBracketSpacing && ((/^\\s/v).test(tag.type) || (/\\s$/v).test(tag.type))) {\n errorMessages.push('Must have no initial spacing');\n }\n\n // eslint-disable-next-line complexity -- Todo\n traverse(parsedType, (nde) => {\n let errorMessage = '';\n\n /**\n * @param {Partial<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing?: string,\n * postMethodNameSpacing?: string\n * }} meta\n * @returns {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing?: string,\n * postMethodNameSpacing?: string\n * }}\n */\n const conditionalAdds = (meta) => {\n const typNode =\n /**\n * @type {import('jsdoc-type-pratt-parser').FunctionResult|\n * import('jsdoc-type-pratt-parser').CallSignatureResult|\n * import('jsdoc-type-pratt-parser').ComputedMethodResult|\n * import('jsdoc-type-pratt-parser').ConstructorSignatureResult|\n * import('jsdoc-type-pratt-parser').MethodSignatureResult\n * }\n */ (nde);\n\n /**\n * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing?: string,\n * postMethodNameSpacing?: string\n * }}\n */\n const newMeta = {\n parameterSpacing: meta.parameterSpacing ?? typNode.meta?.parameterSpacing ?? ' ',\n postGenericSpacing: meta.postGenericSpacing ?? typNode.meta?.postGenericSpacing ?? '',\n postReturnMarkerSpacing: meta.postReturnMarkerSpacing ?? typNode.meta?.postReturnMarkerSpacing ?? ' ',\n preReturnMarkerSpacing: meta.preReturnMarkerSpacing ?? typNode.meta?.preReturnMarkerSpacing ?? '',\n typeParameterSpacing: meta.typeParameterSpacing ?? typNode.meta?.typeParameterSpacing ?? ' ',\n };\n\n if (typNode.type === 'JsdocTypeConstructorSignature') {\n newMeta.postNewSpacing = meta.postNewSpacing;\n }\n\n if (typNode.type === 'JsdocTypeMethodSignature') {\n newMeta.postMethodNameSpacing = meta.postMethodNameSpacing ?? typNode.meta?.postMethodNameSpacing ?? '';\n }\n\n return newMeta;\n };\n\n switch (nde.type) {\n case 'JsdocTypeConstructorSignature': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').ConstructorSignatureResult} */ (nde);\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.postNewSpacing ?? ' ') !== postNewSpacing) {\n typeNode.meta =\n /**\n * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing: string,\n * }}\n */ (conditionalAdds({\n postNewSpacing,\n }));\n errorMessage = `Post-\\`new\\` spacing should be \"${postNewSpacing}\"`;\n break;\n }\n }\n\n case 'JsdocTypeFunction': {\n const typeNode =\n /**\n * @type {import('jsdoc-type-pratt-parser').FunctionResult}\n */ nde;\n if ('arrow' in typeNode && typeNode.arrow) {\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.postReturnMarkerSpacing ?? ' ') !== arrowFunctionPostReturnMarkerSpacing) {\n typeNode.meta =\n /**\n * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing: string,\n * }}\n */ (conditionalAdds({\n postReturnMarkerSpacing: arrowFunctionPostReturnMarkerSpacing,\n /* c8 ignore next -- Guard */\n preReturnMarkerSpacing: typeNode.meta?.preReturnMarkerSpacing ?? ' ',\n }));\n errorMessage = `Post-return-marker spacing should be \"${arrowFunctionPostReturnMarkerSpacing}\"`;\n break;\n /* c8 ignore next -- Guard */\n } else if ((typeNode.meta?.preReturnMarkerSpacing ?? ' ') !== arrowFunctionPreReturnMarkerSpacing) {\n typeNode.meta =\n /**\n * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing: string,\n * }}\n */ (conditionalAdds({\n /* c8 ignore next -- Guard */\n postReturnMarkerSpacing: typeNode.meta?.postReturnMarkerSpacing ?? ' ',\n preReturnMarkerSpacing: arrowFunctionPreReturnMarkerSpacing,\n }));\n errorMessage = `Pre-return-marker spacing should be \"${arrowFunctionPreReturnMarkerSpacing}\"`;\n break;\n }\n\n break;\n }\n }\n\n case 'JsdocTypeCallSignature':\n case 'JsdocTypeComputedMethod':\n case 'JsdocTypeMethodSignature': {\n const typeNode =\n /**\n * @type {import('jsdoc-type-pratt-parser').FunctionResult|\n * import('jsdoc-type-pratt-parser').CallSignatureResult|\n * import('jsdoc-type-pratt-parser').ComputedMethodResult|\n * import('jsdoc-type-pratt-parser').ConstructorSignatureResult|\n * import('jsdoc-type-pratt-parser').MethodSignatureResult\n * }\n */ (nde);\n if (typeNode.type === 'JsdocTypeMethodSignature' &&\n (typeNode.meta?.postMethodNameSpacing ?? '') !== postMethodNameSpacing\n ) {\n typeNode.meta = {\n quote: typeNode.meta.quote,\n ...conditionalAdds({\n postMethodNameSpacing,\n }),\n };\n errorMessage = `Post-method-name spacing should be \"${postMethodNameSpacing}\"`;\n break;\n } else if (typeNode.type === 'JsdocTypeMethodSignature' &&\n typeNode.meta.quote !== undefined &&\n typeNode.meta.quote !== methodQuotes\n ) {\n typeNode.meta = {\n ...conditionalAdds({\n postMethodNameSpacing: typeNode.meta.postMethodNameSpacing ?? '',\n }),\n quote: methodQuotes,\n };\n errorMessage = `Method quoting style should be \"${methodQuotes}\"`;\n break;\n }\n\n if ((typeNode.meta?.parameterSpacing ?? ' ') !== functionOrClassParameterSpacing) {\n typeNode.meta = conditionalAdds({\n parameterSpacing: functionOrClassParameterSpacing,\n });\n errorMessage = `Parameter spacing should be \"${functionOrClassParameterSpacing}\"`;\n } else if ((typeNode.meta?.postGenericSpacing ?? '') !== functionOrClassPostGenericSpacing) {\n typeNode.meta = conditionalAdds({\n postGenericSpacing: functionOrClassPostGenericSpacing,\n });\n errorMessage = `Post-generic spacing should be \"${functionOrClassPostGenericSpacing}\"`;\n } else if ((typeNode.meta?.postReturnMarkerSpacing ?? ' ') !== functionOrClassPostReturnMarkerSpacing) {\n typeNode.meta = conditionalAdds({\n postReturnMarkerSpacing: functionOrClassPostReturnMarkerSpacing,\n });\n errorMessage = `Post-return-marker spacing should be \"${functionOrClassPostReturnMarkerSpacing}\"`;\n } else if ((typeNode.meta?.preReturnMarkerSpacing ?? '') !== functionOrClassPreReturnMarkerSpacing) {\n typeNode.meta = conditionalAdds({\n preReturnMarkerSpacing: functionOrClassPreReturnMarkerSpacing,\n });\n errorMessage = `Pre-return-marker spacing should be \"${functionOrClassPreReturnMarkerSpacing}\"`;\n } else if ((typeNode.meta?.typeParameterSpacing ?? ' ') !== functionOrClassTypeParameterSpacing) {\n typeNode.meta = conditionalAdds({\n typeParameterSpacing: functionOrClassTypeParameterSpacing,\n });\n errorMessage = `Type parameter spacing should be \"${functionOrClassTypeParameterSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeGeneric': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').GenericResult} */ (nde);\n if ('value' in typeNode.left && typeNode.left.value === 'Array') {\n if (typeNode.meta.brackets !== arrayBrackets) {\n typeNode.meta.brackets = arrayBrackets;\n errorMessage = `Array bracket style should be ${arrayBrackets}`;\n }\n } else if (typeNode.meta.dot !== genericDot) {\n typeNode.meta.dot = genericDot;\n errorMessage = `Dot usage should be ${genericDot}`;\n } else if ((typeNode.meta.elementSpacing ?? ' ') !== genericAndTupleElementSpacing) {\n typeNode.meta.elementSpacing = genericAndTupleElementSpacing;\n errorMessage = `Element spacing should be \"${genericAndTupleElementSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeKeyValue': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').KeyValueResult} */ (nde);\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.postKeySpacing ?? '') !== keyValuePostKeySpacing) {\n typeNode.meta = {\n /* c8 ignore next -- Guard */\n postColonSpacing: typeNode.meta?.postColonSpacing ?? ' ',\n postKeySpacing: keyValuePostKeySpacing,\n /* c8 ignore next 2 -- Guard */\n postOptionalSpacing: typeNode.meta?.postOptionalSpacing ?? '',\n postVariadicSpacing: typeNode.meta?.postVariadicSpacing ?? '',\n };\n errorMessage = `Post key spacing should be \"${keyValuePostKeySpacing}\"`;\n /* c8 ignore next -- Guard */\n } else if ((typeNode.meta?.postColonSpacing ?? ' ') !== keyValuePostColonSpacing) {\n typeNode.meta = {\n postColonSpacing: keyValuePostColonSpacing,\n /* c8 ignore next 3 -- Guard */\n postKeySpacing: typeNode.meta?.postKeySpacing ?? '',\n postOptionalSpacing: typeNode.meta?.postOptionalSpacing ?? '',\n postVariadicSpacing: typeNode.meta?.postVariadicSpacing ?? '',\n };\n errorMessage = `Post colon spacing should be \"${keyValuePostColonSpacing}\"`;\n /* c8 ignore next -- Guard */\n } else if ((typeNode.meta?.postOptionalSpacing ?? '') !== keyValuePostOptionalSpacing) {\n typeNode.meta = {\n /* c8 ignore next 2 -- Guard */\n postColonSpacing: typeNode.meta?.postColonSpacing ?? ' ',\n postKeySpacing: typeNode.meta?.postKeySpacing ?? '',\n postOptionalSpacing: keyValuePostOptionalSpacing,\n /* c8 ignore next -- Guard */\n postVariadicSpacing: typeNode.meta?.postVariadicSpacing ?? '',\n };\n errorMessage = `Post optional (\\`?\\`) spacing should be \"${keyValuePostOptionalSpacing}\"`;\n /* c8 ignore next -- Guard */\n } else if (typeNode.variadic && (typeNode.meta?.postVariadicSpacing ?? '') !== keyValuePostVariadicSpacing) {\n typeNode.meta = {\n /* c8 ignore next 3 -- Guard */\n postColonSpacing: typeNode.meta?.postColonSpacing ?? ' ',\n postKeySpacing: typeNode.meta?.postKeySpacing ?? '',\n postOptionalSpacing: typeNode.meta?.postOptionalSpacing ?? '',\n postVariadicSpacing: keyValuePostVariadicSpacing,\n };\n errorMessage = `Post variadic (\\`...\\`) spacing should be \"${keyValuePostVariadicSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeObject': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').ObjectResult} */ (nde);\n /* c8 ignore next -- Guard */\n const separator = typeNode.meta.separator ?? 'comma';\n\n if (\n (separator !== objectFieldSeparator &&\n (!objectFieldSeparatorOptionalLinebreak ||\n !(objectFieldSeparator.endsWith('-linebreak') &&\n objectFieldSeparator.startsWith(separator)))) ||\n (typeNode.meta.separatorForSingleObjectField ?? false) !== separatorForSingleObjectField ||\n ((typeNode.meta.propertyIndent ?? '') !== objectFieldIndent &&\n separator.endsWith('-linebreak')) ||\n /* c8 ignore next 5 -- jsdoc-type-pratt-parser doesn't encode as should */\n ((typeNode.meta.trailingPunctuation ?? false) !== objectFieldSeparatorTrailingPunctuation &&\n ((typeNode.meta.trailingPunctuation && (!trailingPunctuationMultilineOnly ||\n !stringify(typeNode).includes('\\n'))) ||\n (!typeNode.meta.trailingPunctuation && (!trailingPunctuationMultilineOnly ||\n stringify(typeNode).includes('\\n')))))\n ) {\n typeNode.meta.separator = objectFieldSeparatorOptionalLinebreak && !separator.endsWith('and-linebreak') ?\n objectFieldSeparator.replace(/-and-linebreak$/v, '') :\n objectFieldSeparator;\n typeNode.meta.separatorForSingleObjectField = separatorForSingleObjectField;\n typeNode.meta.propertyIndent = objectFieldIndent;\n typeNode.meta.trailingPunctuation = objectFieldSeparatorTrailingPunctuation;\n errorMessage = `Inconsistent ${objectFieldSeparator} separator usage`;\n } else if ((typeNode.meta.bracketSpacing ?? '') !== objectTypeBracketSpacing) {\n typeNode.meta.bracketSpacing = objectTypeBracketSpacing;\n // This might not be the cause\n // errorMessage = `Object type bracket spacing should be \"${objectTypeBracketSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeObjectField': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').ObjectFieldResult} */ (nde);\n if ((objectFieldQuote ||\n (typeof typeNode.key === 'string' &&\n (\n (/^[\\p{ID_Start}$_][\\p{ID_Continue}$\\u200C\\u200D]*$/v).test(typeNode.key) ||\n digitRegex.test(typeNode.key)\n )\n )) &&\n typeNode.meta.quote !== (objectFieldQuote ?? undefined) &&\n (typeof typeNode.key !== 'string' ||\n !digitRegex.test(typeNode.key))\n ) {\n typeNode.meta.quote = objectFieldQuote ?? undefined;\n errorMessage = `Inconsistent object field quotes ${objectFieldQuote}`;\n } else if ((typeNode.meta?.postKeySpacing ?? '') !== keyValuePostKeySpacing) {\n typeNode.meta.postKeySpacing = keyValuePostKeySpacing;\n errorMessage = `Post key spacing should be \"${keyValuePostKeySpacing}\"`;\n } else if ((typeNode.meta?.postColonSpacing ?? ' ') !== keyValuePostColonSpacing) {\n typeNode.meta.postColonSpacing = keyValuePostColonSpacing;\n errorMessage = `Post colon spacing should be \"${keyValuePostColonSpacing}\"`;\n } else if ((typeNode.meta?.postOptionalSpacing ?? '') !== keyValuePostOptionalSpacing) {\n typeNode.meta.postOptionalSpacing = keyValuePostOptionalSpacing;\n errorMessage = `Post optional (\\`?\\`) spacing should be \"${keyValuePostOptionalSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeStringValue': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').StringValueResult} */ (nde);\n if (typeNode.meta.quote !== stringQuotes) {\n typeNode.meta.quote = stringQuotes;\n errorMessage = `Inconsistent ${stringQuotes} string quotes usage`;\n }\n\n break;\n }\n\n // Only suitable for namepaths (and would need changes); see https://github.com/gajus/eslint-plugin-jsdoc/issues/1524\n // case 'JsdocTypeProperty': {\n // const typeNode = /** @type {import('jsdoc-type-pratt-parser').PropertyResult} */ (nde);\n\n // if ((propertyQuotes ||\n // (typeof typeNode.value === 'string' && !(/\\s/v).test(typeNode.value))) &&\n // typeNode.meta.quote !== (propertyQuotes ?? undefined)\n // ) {\n // typeNode.meta.quote = propertyQuotes ?? undefined;\n // errorMessage = `Inconsistent ${propertyQuotes} property quotes usage`;\n // }\n\n // break;\n // }\n\n case 'JsdocTypeTuple': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').TupleResult} */ (nde);\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.elementSpacing ?? ' ') !== genericAndTupleElementSpacing) {\n typeNode.meta = {\n elementSpacing: genericAndTupleElementSpacing,\n };\n errorMessage = `Element spacing should be \"${genericAndTupleElementSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeTypeParameter': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').TypeParameterResult} */ (nde);\n /* c8 ignore next -- Guard */\n if (typeNode.defaultValue && (typeNode.meta?.defaultValueSpacing ?? ' ') !== parameterDefaultValueSpacing) {\n typeNode.meta = {\n defaultValueSpacing: parameterDefaultValueSpacing,\n };\n errorMessage = `Default value spacing should be \"${parameterDefaultValueSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeUnion': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').UnionResult} */ (nde);\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.spacing ?? ' ') !== unionSpacing) {\n typeNode.meta = {\n spacing: unionSpacing,\n };\n errorMessage = `Inconsistent \"${unionSpacing}\" union spacing usage`;\n }\n\n break;\n }\n\n default:\n break;\n }\n\n if (errorMessage) {\n errorMessages.push(errorMessage);\n }\n });\n\n const differentResult = tag.type !==\n typeBracketSpacing + stringify(parsedType) + typeBracketSpacing;\n\n if (errorMessages.length && differentResult) {\n for (const errorMessage of errorMessages) {\n utils.reportJSDoc(\n errorMessage, tag, enableFixer ? fix : null,\n );\n }\n // Stringification may have been equal previously (and thus no error reported)\n // because the stringification doesn't preserve everything\n } else if (differentResult) {\n utils.reportJSDoc(\n 'There was an error with type formatting', tag, enableFixer ? fix : null,\n );\n }\n };\n\n const tags = utils.getPresentTags([\n 'param',\n 'property',\n 'returns',\n 'this',\n 'throws',\n 'type',\n 'typedef',\n 'yields',\n ]);\n for (const tag of tags) {\n if (tag.type) {\n checkTypeFormats(tag);\n }\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Formats JSDoc type values.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/type-formatting.md#repos-sticky-header',\n },\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n arrayBrackets: {\n description: 'Determines how array generics are represented. Set to `angle` for the style `Array<type>` or `square` for the style `type[]`. Defaults to \"square\".',\n enum: [\n 'angle',\n 'square',\n ],\n type: 'string',\n },\n arrowFunctionPostReturnMarkerSpacing: {\n description: 'The space character (if any) to use after return markers (`=>`). Defaults to \" \".',\n type: 'string',\n },\n arrowFunctionPreReturnMarkerSpacing: {\n description: 'The space character (if any) to use before return markers (`=>`). Defaults to \" \".',\n type: 'string',\n },\n enableFixer: {\n description: 'Whether to enable the fixer. Defaults to `true`.',\n type: 'boolean',\n },\n functionOrClassParameterSpacing: {\n description: 'The space character (if any) to use between function or class parameters. Defaults to \" \".',\n type: 'string',\n },\n functionOrClassPostGenericSpacing: {\n description: 'The space character (if any) to use after a generic expression in a function or class. Defaults to \"\".',\n type: 'string',\n },\n functionOrClassPostReturnMarkerSpacing: {\n description: 'The space character (if any) to use after return markers (`:`). Defaults to \"\".',\n type: 'string',\n },\n functionOrClassPreReturnMarkerSpacing: {\n description: 'The space character (if any) to use before return markers (`:`). Defaults to \"\".',\n type: 'string',\n },\n functionOrClassTypeParameterSpacing: {\n description: 'The space character (if any) to use between type parameters in a function or class. Defaults to \" \".',\n type: 'string',\n },\n genericAndTupleElementSpacing: {\n description: 'The space character (if any) to use between elements in generics and tuples. Defaults to \" \".',\n type: 'string',\n },\n genericDot: {\n description: 'Boolean value of whether to use a dot before the angled brackets of a generic (e.g., `SomeType.<AnotherType>`). Defaults to `false`.',\n type: 'boolean',\n },\n keyValuePostColonSpacing: {\n description: 'The amount of spacing (if any) after the colon of a key-value or object-field pair. Defaults to \" \".',\n type: 'string',\n },\n keyValuePostKeySpacing: {\n description: 'The amount of spacing (if any) immediately after keys in a key-value or object-field pair. Defaults to \"\".',\n type: 'string',\n },\n keyValuePostOptionalSpacing: {\n description: 'The amount of spacing (if any) after the optional operator (`?`) in a key-value or object-field pair. Defaults to \"\".',\n type: 'string',\n },\n keyValuePostVariadicSpacing: {\n description: 'The amount of spacing (if any) after a variadic operator (`...`) in a key-value pair. Defaults to \"\".',\n type: 'string',\n },\n methodQuotes: {\n description: 'The style of quotation mark for surrounding method names when quoted. Defaults to `double`',\n enum: [\n 'double',\n 'single',\n ],\n type: 'string',\n },\n objectFieldIndent: {\n description: `A string indicating the whitespace to be added on each line preceding an\nobject property-value field. Defaults to the empty string.`,\n type: 'string',\n },\n objectFieldQuote: {\n description: `Whether and how object field properties should be quoted (e.g., \\`{\"a\": string}\\`).\nSet to \\`single\\`, \\`double\\`, or \\`null\\`. Defaults to \\`null\\` (no quotes unless\nrequired due to special characters within the field). Digits will be kept as is,\nregardless of setting (they can either represent a digit or a string digit).`,\n enum: [\n 'double',\n 'single',\n null,\n ],\n },\n objectFieldSeparator: {\n description: `For object properties, specify whether a \"semicolon\", \"comma\", \"linebreak\",\n\"semicolon-and-linebreak\", or \"comma-and-linebreak\" should be used after\neach object property-value pair.\n\nDefaults to \\`\"comma\"\\`.`,\n enum: [\n 'comma',\n 'comma-and-linebreak',\n 'linebreak',\n 'semicolon',\n 'semicolon-and-linebreak',\n ],\n type: 'string',\n },\n objectFieldSeparatorOptionalLinebreak: {\n description: `Whether \\`objectFieldSeparator\\` set to \\`\"semicolon-and-linebreak\"\\` or\n\\`\"comma-and-linebreak\"\\` should be allowed to optionally drop the linebreak.\n\nDefaults to \\`true\\`.`,\n type: 'boolean',\n },\n objectFieldSeparatorTrailingPunctuation: {\n description: `If \\`separatorForSingleObjectField\\` is not in effect (i.e., if it is \\`false\\`\nor there are multiple property-value object fields present), this property\nwill determine whether to add punctuation corresponding to the\n\\`objectFieldSeparator\\` (e.g., a semicolon) to the final object field.\nDefaults to \\`false\\`.`,\n type: 'boolean',\n },\n objectTypeBracketSpacing: {\n description: 'The space character (if any) to add after an object\\'s initial curly bracket and before its ending curly bracket',\n type: 'string',\n },\n parameterDefaultValueSpacing: {\n description: 'The space character (if any) to use between the equal signs of a default value. Defaults to \" \".',\n type: 'string',\n },\n postMethodNameSpacing: {\n description: 'The space character (if any) to add after a method name. Defaults to \"\".',\n type: 'string',\n },\n postNewSpacing: {\n description: 'The space character (if any) to add after \"new\" in a constructor. Defaults to \" \".',\n type: 'string',\n },\n // propertyQuotes: {\n // description: `Whether and how namepath properties should be quoted (e.g., \\`ab.\"cd\".\"ef\"\\`).\n // Set to \\`single\\`, \\`double\\`, or \\`null\\`. Defaults to \\`null\\` (no quotes unless\n // required due to whitespace within the property).`,\n // enum: [\n // 'double',\n // 'single',\n // null,\n // ],\n // },\n separatorForSingleObjectField: {\n description: `Whether to apply the \\`objectFieldSeparator\\` (e.g., a semicolon) when there\nis only one property-value object field present. Defaults to \\`false\\`.`,\n type: 'boolean',\n },\n stringQuotes: {\n description: `How string literals should be quoted (e.g., \\`\"abc\"\\`). Set to \\`single\\`\nor \\`double\\`. Defaults to 'double'.`,\n enum: [\n 'double',\n 'single',\n ],\n type: 'string',\n },\n trailingPunctuationMultilineOnly: {\n description: 'If `objectFieldSeparatorTrailingPunctuation` is set, this will determine whether the trailing puncutation is only added when the type is multiline',\n type: 'boolean',\n },\n typeBracketSpacing: {\n description: `A string of spaces that will be added immediately after the type's initial\ncurly bracket and immediately before its ending curly bracket. Defaults\nto the empty string.`,\n type: 'string',\n },\n unionSpacing: {\n description: 'Determines the spacing to add to unions (`|`). Defaults to a single space (`\" \"`).',\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"typeFormatting.cjs","names":[],"sources":["../../src/rules/typeFormatting.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\nimport {\n rewireByParsedType,\n} from '../jsdocUtils.js';\nimport {\n parse as parseType,\n stringify,\n traverse,\n tryParse as tryParseType,\n} from '@es-joy/jsdoccomment';\n\nconst digitRegex = (/^(\\d+(\\.\\d*)?|\\.\\d+)([eE][\\-+]?\\d+)?$/v);\n\nexport default iterateJsdoc(({\n context,\n indent,\n jsdoc,\n settings,\n utils,\n// eslint-disable-next-line complexity -- Todo\n}) => {\n const {\n arrayBrackets = 'square',\n arrowFunctionPostReturnMarkerSpacing = ' ',\n arrowFunctionPreReturnMarkerSpacing = ' ',\n enableFixer = true,\n functionOrClassParameterSpacing = ' ',\n functionOrClassPostGenericSpacing = '',\n functionOrClassPostReturnMarkerSpacing = ' ',\n functionOrClassPreReturnMarkerSpacing = '',\n functionOrClassTypeParameterSpacing = ' ',\n genericAndTupleElementSpacing = ' ',\n genericDot = false,\n keyValuePostColonSpacing = ' ',\n keyValuePostKeySpacing = '',\n keyValuePostOptionalSpacing = '',\n keyValuePostVariadicSpacing = '',\n methodQuotes = 'double',\n objectFieldIndent = '',\n objectFieldQuote = null,\n objectFieldSeparator = 'comma',\n objectFieldSeparatorOptionalLinebreak = true,\n objectFieldSeparatorTrailingPunctuation = false,\n objectTypeBracketSpacing = '',\n parameterDefaultValueSpacing = ' ',\n postMethodNameSpacing = '',\n postNewSpacing = ' ',\n // propertyQuotes = null,\n separatorForSingleObjectField = false,\n stringQuotes = 'double',\n trailingPunctuationMultilineOnly = false,\n typeBracketSpacing = '',\n unionSpacing = ' ',\n } = context.options[0] || {};\n\n const {\n mode,\n } = settings;\n\n /**\n * @param {import('@es-joy/jsdoccomment').JsdocTagWithInline} tag\n */\n const checkTypeFormats = (tag) => {\n const potentialType = tag.type;\n let parsedType;\n try {\n parsedType = mode === 'permissive' ?\n tryParseType(/** @type {string} */ (potentialType)) :\n parseType(/** @type {string} */ (potentialType), mode);\n } catch {\n return;\n }\n\n const fix = () => {\n rewireByParsedType(jsdoc, tag, parsedType, indent, typeBracketSpacing);\n };\n\n /** @type {string[]} */\n const errorMessages = [];\n\n if (typeBracketSpacing && (!tag.type.startsWith(typeBracketSpacing) || !tag.type.endsWith(typeBracketSpacing))) {\n errorMessages.push(`Must have initial and final \"${typeBracketSpacing}\" spacing`);\n } else if (!typeBracketSpacing && ((/^\\s/v).test(tag.type) || (/\\s$/v).test(tag.type))) {\n errorMessages.push('Must have no initial spacing');\n }\n\n // eslint-disable-next-line complexity -- Todo\n traverse(parsedType, (nde) => {\n let errorMessage = '';\n\n /**\n * @param {Partial<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing?: string,\n * postMethodNameSpacing?: string\n * }} meta\n * @returns {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing?: string,\n * postMethodNameSpacing?: string\n * }}\n */\n const conditionalAdds = (meta) => {\n const typNode =\n /**\n * @type {import('jsdoc-type-pratt-parser').FunctionResult|\n * import('jsdoc-type-pratt-parser').CallSignatureResult|\n * import('jsdoc-type-pratt-parser').ComputedMethodResult|\n * import('jsdoc-type-pratt-parser').ConstructorSignatureResult|\n * import('jsdoc-type-pratt-parser').MethodSignatureResult\n * }\n */ (nde);\n\n /**\n * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing?: string,\n * postMethodNameSpacing?: string\n * }}\n */\n const newMeta = {\n parameterSpacing: meta.parameterSpacing ?? typNode.meta?.parameterSpacing ?? ' ',\n postGenericSpacing: meta.postGenericSpacing ?? typNode.meta?.postGenericSpacing ?? '',\n postReturnMarkerSpacing: meta.postReturnMarkerSpacing ?? typNode.meta?.postReturnMarkerSpacing ?? ' ',\n preReturnMarkerSpacing: meta.preReturnMarkerSpacing ?? typNode.meta?.preReturnMarkerSpacing ?? '',\n typeParameterSpacing: meta.typeParameterSpacing ?? typNode.meta?.typeParameterSpacing ?? ' ',\n };\n\n if (typNode.type === 'JsdocTypeConstructorSignature') {\n newMeta.postNewSpacing = meta.postNewSpacing;\n }\n\n if (typNode.type === 'JsdocTypeMethodSignature') {\n newMeta.postMethodNameSpacing = meta.postMethodNameSpacing ?? typNode.meta?.postMethodNameSpacing ?? '';\n }\n\n return newMeta;\n };\n\n switch (nde.type) {\n case 'JsdocTypeConstructorSignature': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').ConstructorSignatureResult} */ (nde);\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.postNewSpacing ?? ' ') !== postNewSpacing) {\n typeNode.meta =\n /**\n * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing: string,\n * }}\n */ (conditionalAdds({\n postNewSpacing,\n }));\n errorMessage = `Post-\\`new\\` spacing should be \"${postNewSpacing}\"`;\n break;\n }\n }\n\n case 'JsdocTypeFunction': {\n const typeNode =\n /**\n * @type {import('jsdoc-type-pratt-parser').FunctionResult}\n */ nde;\n if ('arrow' in typeNode && typeNode.arrow) {\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.postReturnMarkerSpacing ?? ' ') !== arrowFunctionPostReturnMarkerSpacing) {\n typeNode.meta =\n /**\n * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing: string,\n * }}\n */ (conditionalAdds({\n postReturnMarkerSpacing: arrowFunctionPostReturnMarkerSpacing,\n /* c8 ignore next -- Guard */\n preReturnMarkerSpacing: typeNode.meta?.preReturnMarkerSpacing ?? ' ',\n }));\n errorMessage = `Post-return-marker spacing should be \"${arrowFunctionPostReturnMarkerSpacing}\"`;\n break;\n /* c8 ignore next -- Guard */\n } else if ((typeNode.meta?.preReturnMarkerSpacing ?? ' ') !== arrowFunctionPreReturnMarkerSpacing) {\n typeNode.meta =\n /**\n * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n * postNewSpacing: string,\n * }}\n */ (conditionalAdds({\n /* c8 ignore next -- Guard */\n postReturnMarkerSpacing: typeNode.meta?.postReturnMarkerSpacing ?? ' ',\n preReturnMarkerSpacing: arrowFunctionPreReturnMarkerSpacing,\n }));\n errorMessage = `Pre-return-marker spacing should be \"${arrowFunctionPreReturnMarkerSpacing}\"`;\n break;\n }\n\n break;\n }\n }\n\n case 'JsdocTypeCallSignature':\n case 'JsdocTypeComputedMethod':\n case 'JsdocTypeMethodSignature': {\n const typeNode =\n /**\n * @type {import('jsdoc-type-pratt-parser').FunctionResult|\n * import('jsdoc-type-pratt-parser').CallSignatureResult|\n * import('jsdoc-type-pratt-parser').ComputedMethodResult|\n * import('jsdoc-type-pratt-parser').ConstructorSignatureResult|\n * import('jsdoc-type-pratt-parser').MethodSignatureResult\n * }\n */ (nde);\n if (typeNode.type === 'JsdocTypeMethodSignature' &&\n (typeNode.meta?.postMethodNameSpacing ?? '') !== postMethodNameSpacing\n ) {\n typeNode.meta = {\n quote: typeNode.meta.quote,\n ...conditionalAdds({\n postMethodNameSpacing,\n }),\n };\n errorMessage = `Post-method-name spacing should be \"${postMethodNameSpacing}\"`;\n break;\n } else if (typeNode.type === 'JsdocTypeMethodSignature' &&\n typeNode.meta.quote !== undefined &&\n typeNode.meta.quote !== methodQuotes\n ) {\n typeNode.meta = {\n ...conditionalAdds({\n postMethodNameSpacing: typeNode.meta.postMethodNameSpacing ?? '',\n }),\n quote: methodQuotes,\n };\n errorMessage = `Method quoting style should be \"${methodQuotes}\"`;\n break;\n }\n\n if ((typeNode.meta?.parameterSpacing ?? ' ') !== functionOrClassParameterSpacing) {\n typeNode.meta = conditionalAdds({\n parameterSpacing: functionOrClassParameterSpacing,\n });\n errorMessage = `Parameter spacing should be \"${functionOrClassParameterSpacing}\"`;\n } else if ((typeNode.meta?.postGenericSpacing ?? '') !== functionOrClassPostGenericSpacing) {\n typeNode.meta = conditionalAdds({\n postGenericSpacing: functionOrClassPostGenericSpacing,\n });\n errorMessage = `Post-generic spacing should be \"${functionOrClassPostGenericSpacing}\"`;\n } else if ((typeNode.meta?.postReturnMarkerSpacing ?? ' ') !== functionOrClassPostReturnMarkerSpacing) {\n typeNode.meta = conditionalAdds({\n postReturnMarkerSpacing: functionOrClassPostReturnMarkerSpacing,\n });\n errorMessage = `Post-return-marker spacing should be \"${functionOrClassPostReturnMarkerSpacing}\"`;\n } else if ((typeNode.meta?.preReturnMarkerSpacing ?? '') !== functionOrClassPreReturnMarkerSpacing) {\n typeNode.meta = conditionalAdds({\n preReturnMarkerSpacing: functionOrClassPreReturnMarkerSpacing,\n });\n errorMessage = `Pre-return-marker spacing should be \"${functionOrClassPreReturnMarkerSpacing}\"`;\n } else if ((typeNode.meta?.typeParameterSpacing ?? ' ') !== functionOrClassTypeParameterSpacing) {\n typeNode.meta = conditionalAdds({\n typeParameterSpacing: functionOrClassTypeParameterSpacing,\n });\n errorMessage = `Type parameter spacing should be \"${functionOrClassTypeParameterSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeGeneric': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').GenericResult} */ (nde);\n if ('value' in typeNode.left && typeNode.left.value === 'Array') {\n if (typeNode.meta.brackets !== arrayBrackets) {\n typeNode.meta.brackets = arrayBrackets;\n errorMessage = `Array bracket style should be ${arrayBrackets}`;\n }\n } else if (typeNode.meta.dot !== genericDot) {\n typeNode.meta.dot = genericDot;\n errorMessage = `Dot usage should be ${genericDot}`;\n } else if ((typeNode.meta.elementSpacing ?? ' ') !== genericAndTupleElementSpacing) {\n typeNode.meta.elementSpacing = genericAndTupleElementSpacing;\n errorMessage = `Element spacing should be \"${genericAndTupleElementSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeKeyValue': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').KeyValueResult} */ (nde);\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.postKeySpacing ?? '') !== keyValuePostKeySpacing) {\n typeNode.meta = {\n /* c8 ignore next -- Guard */\n postColonSpacing: typeNode.meta?.postColonSpacing ?? ' ',\n postKeySpacing: keyValuePostKeySpacing,\n /* c8 ignore next 2 -- Guard */\n postOptionalSpacing: typeNode.meta?.postOptionalSpacing ?? '',\n postVariadicSpacing: typeNode.meta?.postVariadicSpacing ?? '',\n };\n errorMessage = `Post key spacing should be \"${keyValuePostKeySpacing}\"`;\n /* c8 ignore next -- Guard */\n } else if ((typeNode.meta?.postColonSpacing ?? ' ') !== keyValuePostColonSpacing) {\n typeNode.meta = {\n postColonSpacing: keyValuePostColonSpacing,\n /* c8 ignore next 3 -- Guard */\n postKeySpacing: typeNode.meta?.postKeySpacing ?? '',\n postOptionalSpacing: typeNode.meta?.postOptionalSpacing ?? '',\n postVariadicSpacing: typeNode.meta?.postVariadicSpacing ?? '',\n };\n errorMessage = `Post colon spacing should be \"${keyValuePostColonSpacing}\"`;\n /* c8 ignore next -- Guard */\n } else if ((typeNode.meta?.postOptionalSpacing ?? '') !== keyValuePostOptionalSpacing) {\n typeNode.meta = {\n /* c8 ignore next 2 -- Guard */\n postColonSpacing: typeNode.meta?.postColonSpacing ?? ' ',\n postKeySpacing: typeNode.meta?.postKeySpacing ?? '',\n postOptionalSpacing: keyValuePostOptionalSpacing,\n /* c8 ignore next -- Guard */\n postVariadicSpacing: typeNode.meta?.postVariadicSpacing ?? '',\n };\n errorMessage = `Post optional (\\`?\\`) spacing should be \"${keyValuePostOptionalSpacing}\"`;\n /* c8 ignore next -- Guard */\n } else if (typeNode.variadic && (typeNode.meta?.postVariadicSpacing ?? '') !== keyValuePostVariadicSpacing) {\n typeNode.meta = {\n /* c8 ignore next 3 -- Guard */\n postColonSpacing: typeNode.meta?.postColonSpacing ?? ' ',\n postKeySpacing: typeNode.meta?.postKeySpacing ?? '',\n postOptionalSpacing: typeNode.meta?.postOptionalSpacing ?? '',\n postVariadicSpacing: keyValuePostVariadicSpacing,\n };\n errorMessage = `Post variadic (\\`...\\`) spacing should be \"${keyValuePostVariadicSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeObject': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').ObjectResult} */ (nde);\n /* c8 ignore next -- Guard */\n const separator = typeNode.meta.separator ?? 'comma';\n\n if (\n (separator !== objectFieldSeparator &&\n (!objectFieldSeparatorOptionalLinebreak ||\n !(objectFieldSeparator.endsWith('-linebreak') &&\n objectFieldSeparator.startsWith(separator)))) ||\n (typeNode.meta.separatorForSingleObjectField ?? false) !== separatorForSingleObjectField ||\n ((typeNode.meta.propertyIndent ?? '') !== objectFieldIndent &&\n separator.endsWith('-linebreak')) ||\n /* c8 ignore next 5 -- jsdoc-type-pratt-parser doesn't encode as should */\n ((typeNode.meta.trailingPunctuation ?? false) !== objectFieldSeparatorTrailingPunctuation &&\n ((typeNode.meta.trailingPunctuation && (!trailingPunctuationMultilineOnly ||\n !stringify(typeNode).includes('\\n'))) ||\n (!typeNode.meta.trailingPunctuation && (!trailingPunctuationMultilineOnly ||\n stringify(typeNode).includes('\\n')))))\n ) {\n typeNode.meta.separator = objectFieldSeparatorOptionalLinebreak && !separator.endsWith('and-linebreak') ?\n objectFieldSeparator.replace(/-and-linebreak$/v, '') :\n objectFieldSeparator;\n typeNode.meta.separatorForSingleObjectField = separatorForSingleObjectField;\n typeNode.meta.propertyIndent = objectFieldIndent;\n typeNode.meta.trailingPunctuation = objectFieldSeparatorTrailingPunctuation;\n errorMessage = `Inconsistent ${objectFieldSeparator} separator usage`;\n } else if ((typeNode.meta.bracketSpacing ?? '') !== objectTypeBracketSpacing) {\n typeNode.meta.bracketSpacing = objectTypeBracketSpacing;\n // This might not be the cause\n // errorMessage = `Object type bracket spacing should be \"${objectTypeBracketSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeObjectField': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').ObjectFieldResult} */ (nde);\n if ((objectFieldQuote ||\n (typeof typeNode.key === 'string' &&\n (\n (/^[\\p{ID_Start}$_][\\p{ID_Continue}$\\u200C\\u200D]*$/v).test(typeNode.key) ||\n digitRegex.test(typeNode.key)\n )\n )) &&\n typeNode.meta.quote !== (objectFieldQuote ?? undefined) &&\n (typeof typeNode.key !== 'string' ||\n !digitRegex.test(typeNode.key))\n ) {\n typeNode.meta.quote = objectFieldQuote ?? undefined;\n errorMessage = `Inconsistent object field quotes ${objectFieldQuote}`;\n } else if ((typeNode.meta?.postKeySpacing ?? '') !== keyValuePostKeySpacing) {\n typeNode.meta.postKeySpacing = keyValuePostKeySpacing;\n errorMessage = `Post key spacing should be \"${keyValuePostKeySpacing}\"`;\n } else if ((typeNode.meta?.postColonSpacing ?? ' ') !== keyValuePostColonSpacing) {\n typeNode.meta.postColonSpacing = keyValuePostColonSpacing;\n errorMessage = `Post colon spacing should be \"${keyValuePostColonSpacing}\"`;\n } else if ((typeNode.meta?.postOptionalSpacing ?? '') !== keyValuePostOptionalSpacing) {\n typeNode.meta.postOptionalSpacing = keyValuePostOptionalSpacing;\n errorMessage = `Post optional (\\`?\\`) spacing should be \"${keyValuePostOptionalSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeStringValue': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').StringValueResult} */ (nde);\n if (typeNode.meta.quote !== stringQuotes) {\n typeNode.meta.quote = stringQuotes;\n errorMessage = `Inconsistent ${stringQuotes} string quotes usage`;\n }\n\n break;\n }\n\n // Only suitable for namepaths (and would need changes); see https://github.com/gajus/eslint-plugin-jsdoc/issues/1524\n // case 'JsdocTypeProperty': {\n // const typeNode = /** @type {import('jsdoc-type-pratt-parser').PropertyResult} */ (nde);\n\n // if ((propertyQuotes ||\n // (typeof typeNode.value === 'string' && !(/\\s/v).test(typeNode.value))) &&\n // typeNode.meta.quote !== (propertyQuotes ?? undefined)\n // ) {\n // typeNode.meta.quote = propertyQuotes ?? undefined;\n // errorMessage = `Inconsistent ${propertyQuotes} property quotes usage`;\n // }\n\n // break;\n // }\n\n case 'JsdocTypeTuple': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').TupleResult} */ (nde);\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.elementSpacing ?? ' ') !== genericAndTupleElementSpacing) {\n typeNode.meta = {\n elementSpacing: genericAndTupleElementSpacing,\n };\n errorMessage = `Element spacing should be \"${genericAndTupleElementSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeTypeParameter': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').TypeParameterResult} */ (nde);\n /* c8 ignore next -- Guard */\n if (typeNode.defaultValue && (typeNode.meta?.defaultValueSpacing ?? ' ') !== parameterDefaultValueSpacing) {\n typeNode.meta = {\n defaultValueSpacing: parameterDefaultValueSpacing,\n };\n errorMessage = `Default value spacing should be \"${parameterDefaultValueSpacing}\"`;\n }\n\n break;\n }\n\n case 'JsdocTypeUnion': {\n const typeNode = /** @type {import('jsdoc-type-pratt-parser').UnionResult} */ (nde);\n /* c8 ignore next -- Guard */\n if ((typeNode.meta?.spacing ?? ' ') !== unionSpacing) {\n typeNode.meta = {\n spacing: unionSpacing,\n };\n errorMessage = `Inconsistent \"${unionSpacing}\" union spacing usage`;\n }\n\n break;\n }\n\n default:\n break;\n }\n\n if (errorMessage) {\n errorMessages.push(errorMessage);\n }\n });\n\n const differentResult = tag.type !==\n typeBracketSpacing + stringify(parsedType) + typeBracketSpacing;\n\n if (errorMessages.length && differentResult) {\n for (const errorMessage of errorMessages) {\n utils.reportJSDoc(\n errorMessage, tag, enableFixer ? fix : null,\n );\n }\n // Stringification may have been equal previously (and thus no error reported)\n // because the stringification doesn't preserve everything\n } else if (differentResult) {\n utils.reportJSDoc(\n 'There was an error with type formatting', tag, enableFixer ? fix : null,\n );\n }\n };\n\n const tags = utils.getPresentTags([\n 'param',\n 'property',\n 'returns',\n 'this',\n 'throws',\n 'type',\n 'typedef',\n 'yields',\n ]);\n for (const tag of tags) {\n if (tag.type) {\n checkTypeFormats(tag);\n }\n }\n}, {\n iterateAllJsdocs: true,\n meta: {\n docs: {\n description: 'Formats JSDoc type values.',\n url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/type-formatting.md#repos-sticky-header',\n },\n fixable: 'code',\n schema: [\n {\n additionalProperties: false,\n properties: {\n arrayBrackets: {\n description: 'Determines how array generics are represented. Set to `angle` for the style `Array<type>` or `square` for the style `type[]`. Defaults to \"square\".',\n enum: [\n 'angle',\n 'square',\n ],\n type: 'string',\n },\n arrowFunctionPostReturnMarkerSpacing: {\n description: 'The space character (if any) to use after return markers (`=>`). Defaults to \" \".',\n type: 'string',\n },\n arrowFunctionPreReturnMarkerSpacing: {\n description: 'The space character (if any) to use before return markers (`=>`). Defaults to \" \".',\n type: 'string',\n },\n enableFixer: {\n description: 'Whether to enable the fixer. Defaults to `true`.',\n type: 'boolean',\n },\n functionOrClassParameterSpacing: {\n description: 'The space character (if any) to use between function or class parameters. Defaults to \" \".',\n type: 'string',\n },\n functionOrClassPostGenericSpacing: {\n description: 'The space character (if any) to use after a generic expression in a function or class. Defaults to \"\".',\n type: 'string',\n },\n functionOrClassPostReturnMarkerSpacing: {\n description: 'The space character (if any) to use after return markers (`:`). Defaults to \"\".',\n type: 'string',\n },\n functionOrClassPreReturnMarkerSpacing: {\n description: 'The space character (if any) to use before return markers (`:`). Defaults to \"\".',\n type: 'string',\n },\n functionOrClassTypeParameterSpacing: {\n description: 'The space character (if any) to use between type parameters in a function or class. Defaults to \" \".',\n type: 'string',\n },\n genericAndTupleElementSpacing: {\n description: 'The space character (if any) to use between elements in generics and tuples. Defaults to \" \".',\n type: 'string',\n },\n genericDot: {\n description: 'Boolean value of whether to use a dot before the angled brackets of a generic (e.g., `SomeType.<AnotherType>`). Defaults to `false`.',\n type: 'boolean',\n },\n keyValuePostColonSpacing: {\n description: 'The amount of spacing (if any) after the colon of a key-value or object-field pair. Defaults to \" \".',\n type: 'string',\n },\n keyValuePostKeySpacing: {\n description: 'The amount of spacing (if any) immediately after keys in a key-value or object-field pair. Defaults to \"\".',\n type: 'string',\n },\n keyValuePostOptionalSpacing: {\n description: 'The amount of spacing (if any) after the optional operator (`?`) in a key-value or object-field pair. Defaults to \"\".',\n type: 'string',\n },\n keyValuePostVariadicSpacing: {\n description: 'The amount of spacing (if any) after a variadic operator (`...`) in a key-value pair. Defaults to \"\".',\n type: 'string',\n },\n methodQuotes: {\n description: 'The style of quotation mark for surrounding method names when quoted. Defaults to `double`',\n enum: [\n 'double',\n 'single',\n ],\n type: 'string',\n },\n objectFieldIndent: {\n description: `A string indicating the whitespace to be added on each line preceding an\nobject property-value field. Defaults to the empty string.`,\n type: 'string',\n },\n objectFieldQuote: {\n description: `Whether and how object field properties should be quoted (e.g., \\`{\"a\": string}\\`).\nSet to \\`single\\`, \\`double\\`, or \\`null\\`. Defaults to \\`null\\` (no quotes unless\nrequired due to special characters within the field). Digits will be kept as is,\nregardless of setting (they can either represent a digit or a string digit).`,\n enum: [\n 'double',\n 'single',\n null,\n ],\n },\n objectFieldSeparator: {\n description: `For object properties, specify whether a \"semicolon\", \"comma\", \"linebreak\",\n\"semicolon-and-linebreak\", or \"comma-and-linebreak\" should be used after\neach object property-value pair.\n\nDefaults to \\`\"comma\"\\`.`,\n enum: [\n 'comma',\n 'comma-and-linebreak',\n 'linebreak',\n 'semicolon',\n 'semicolon-and-linebreak',\n ],\n type: 'string',\n },\n objectFieldSeparatorOptionalLinebreak: {\n description: `Whether \\`objectFieldSeparator\\` set to \\`\"semicolon-and-linebreak\"\\` or\n\\`\"comma-and-linebreak\"\\` should be allowed to optionally drop the linebreak.\n\nDefaults to \\`true\\`.`,\n type: 'boolean',\n },\n objectFieldSeparatorTrailingPunctuation: {\n description: `If \\`separatorForSingleObjectField\\` is not in effect (i.e., if it is \\`false\\`\nor there are multiple property-value object fields present), this property\nwill determine whether to add punctuation corresponding to the\n\\`objectFieldSeparator\\` (e.g., a semicolon) to the final object field.\nDefaults to \\`false\\`.`,\n type: 'boolean',\n },\n objectTypeBracketSpacing: {\n description: 'The space character (if any) to add after an object\\'s initial curly bracket and before its ending curly bracket',\n type: 'string',\n },\n parameterDefaultValueSpacing: {\n description: 'The space character (if any) to use between the equal signs of a default value. Defaults to \" \".',\n type: 'string',\n },\n postMethodNameSpacing: {\n description: 'The space character (if any) to add after a method name. Defaults to \"\".',\n type: 'string',\n },\n postNewSpacing: {\n description: 'The space character (if any) to add after \"new\" in a constructor. Defaults to \" \".',\n type: 'string',\n },\n // propertyQuotes: {\n // description: `Whether and how namepath properties should be quoted (e.g., \\`ab.\"cd\".\"ef\"\\`).\n // Set to \\`single\\`, \\`double\\`, or \\`null\\`. Defaults to \\`null\\` (no quotes unless\n // required due to whitespace within the property).`,\n // enum: [\n // 'double',\n // 'single',\n // null,\n // ],\n // },\n separatorForSingleObjectField: {\n description: `Whether to apply the \\`objectFieldSeparator\\` (e.g., a semicolon) when there\nis only one property-value object field present. Defaults to \\`false\\`.`,\n type: 'boolean',\n },\n stringQuotes: {\n description: `How string literals should be quoted (e.g., \\`\"abc\"\\`). Set to \\`single\\`\nor \\`double\\`. Defaults to 'double'.`,\n enum: [\n 'double',\n 'single',\n ],\n type: 'string',\n },\n trailingPunctuationMultilineOnly: {\n description: 'If `objectFieldSeparatorTrailingPunctuation` is set, this will determine whether the trailing puncutation is only added when the type is multiline',\n type: 'boolean',\n },\n typeBracketSpacing: {\n description: `A string of spaces that will be added immediately after the type's initial\ncurly bracket and immediately before its ending curly bracket. Defaults\nto the empty string.`,\n type: 'string',\n },\n unionSpacing: {\n description: 'Determines the spacing to add to unions (`|`). Defaults to a single space (`\" \"`).',\n type: 'string',\n },\n },\n type: 'object',\n },\n ],\n type: 'suggestion',\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,5 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc.cjs"));
8
- var _jsdoccomment = require("@es-joy/jsdoccomment");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
1
+ import iterateJsdoc from '../iterateJsdoc.js';
2
+ import { parse, parseName, parseNamePath, traverse, tryParse } from '@es-joy/jsdoccomment';
10
3
  const inlineTags = new Set([
11
4
  // Typdoc
12
5
  'include', 'includeCode',
@@ -31,7 +24,7 @@ const suppressTypes = new Set([
31
24
  */
32
25
  const tryParsePathIgnoreError = (path, mode) => {
33
26
  try {
34
- (0, _jsdoccomment.parseNamePath)(path, mode === 'permissive' ? 'jsdoc' : mode, {
27
+ parseNamePath(path, mode === 'permissive' ? 'jsdoc' : mode, {
35
28
  includeSpecial: true
36
29
  });
37
30
  return true;
@@ -48,14 +41,14 @@ const tryParsePathIgnoreError = (path, mode) => {
48
41
  */
49
42
  const tryParseNameIgnoreError = (name, mode) => {
50
43
  try {
51
- (0, _jsdoccomment.parseName)(name, mode);
44
+ parseName(name, mode);
52
45
  return true;
53
46
  } catch {
54
47
  // Keep the original error for including the whole type
55
48
  }
56
49
  return false;
57
50
  };
58
- var _default = exports.default = (0, _iterateJsdoc.default)(({
51
+ export default iterateJsdoc(({
59
52
  context,
60
53
  jsdoc,
61
54
  report,
@@ -131,11 +124,11 @@ var _default = exports.default = (0, _iterateJsdoc.default)(({
131
124
  let parsedTypes;
132
125
  try {
133
126
  if (mode === 'permissive') {
134
- parsedTypes = (0, _jsdoccomment.tryParse)(type, undefined, {
127
+ parsedTypes = tryParse(type, undefined, {
135
128
  classContext: true
136
129
  });
137
130
  } else {
138
- parsedTypes = (0, _jsdoccomment.parse)(type, mode, {
131
+ parsedTypes = parse(type, mode, {
139
132
  classContext: true
140
133
  });
141
134
  }
@@ -144,7 +137,7 @@ var _default = exports.default = (0, _iterateJsdoc.default)(({
144
137
  return false;
145
138
  }
146
139
  if (mode === 'closure' || mode === 'typescript') {
147
- (0, _jsdoccomment.traverse)(parsedTypes, node => {
140
+ traverse(parsedTypes, node => {
148
141
  const {
149
142
  type: typ
150
143
  } = node;
@@ -185,12 +178,12 @@ var _default = exports.default = (0, _iterateJsdoc.default)(({
185
178
  if (tag.tag === 'suppress' && mode === 'closure') {
186
179
  let parsedTypes;
187
180
  try {
188
- parsedTypes = (0, _jsdoccomment.tryParse)(tag.type);
181
+ parsedTypes = tryParse(tag.type);
189
182
  } catch {
190
183
  // Ignore
191
184
  }
192
185
  if (parsedTypes) {
193
- (0, _jsdoccomment.traverse)(parsedTypes, node => {
186
+ traverse(parsedTypes, node => {
194
187
  let type;
195
188
  if ('value' in node && typeof node.value === 'string') {
196
189
  type = node.value;
@@ -320,5 +313,4 @@ wish to require name paths on a tag-by-tag basis. Defaults to \`true\`.`,
320
313
  type: 'suggestion'
321
314
  }
322
315
  });
323
- module.exports = exports.default;
324
316
  //# sourceMappingURL=validTypes.cjs.map
@@ -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(\n path,\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(tag.name.trim(), mode)) {\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":[],"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 path,\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(tag.name.trim(), mode)) {\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":"AAAA,OAAO,YAAY,MAAM,oBAAoB;AAC7C,SACE,KAAK,EACL,SAAS,EACT,aAAa,EACb,QAAQ,EACR,QAAQ,QACH,sBAAsB;AAE7B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;AACzB;AACA,SAAS,EAAE,aAAa;AACxB;AACA,YAAY,EACZ,YAAY,EACZ,OAAO;AACP;AACA,MAAM,EACN,UAAU,EAAE,WAAW,EACvB,UAAU,CACX,CAAC;AAEF,MAAM,YAAY,GAAG,QAAQ;AAE7B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;AAC5B;AACA;AACA,gBAAgB,EAChB,wBAAwB,EACxB,0CAA0C,EAC1C,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,6BAA6B,EAC7B,OAAO,EACP,kBAAkB,EAClB,gCAAgC,EAChC,YAAY,EACZ,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB;AAEhB;AACA,QAAQ,EACR,oCAAoC,EACpC,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB;AAEtB;AACA,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,MAAM,CACP,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK;EAC9C,IAAI;IACF,aAAa,CACX,IAAI,EACJ,IAAI,KAAK,YAAY,GAAG,OAAO,GAAG,IAAI,EACtC;MACE,cAAc,EAAE;IAClB,CACF,CAAC;IAED,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN;EAAA;EAGF,OAAO,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK;EAC9C,IAAI;IACF,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IAErB,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN;EAAA;EAGF,OAAO,KAAK;AACd,CAAC;AAED,eAAe,YAAY,CAAC,CAAC;EAC3B,OAAO;EACP,KAAK;EACL,MAAM;EACN,QAAQ;EACR;EACF;AACA,CAAC,KAAK;EACJ,MAAM;IACJ,mBAAmB,GAAG;EACxB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;EAC5B,MAAM;IACJ;EACF,CAAC,GAAG,QAAQ;EAEZ,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;IAC5B;AACJ;AACA;AACA;AACA;IACI,MAAM,oBAAoB,GAAG,UAAU,QAAQ,EAAE,OAAO,EAAE;MACxD,IACE,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,EACvC;QACA,OAAO,IAAI;MACb;MAEA,IAAI,OAAO,GAAG,KAAK;MAEnB,IAAI,OAAO,EAAE;QACX,QAAQ,OAAO;UACb,KAAK,UAAU;UACf,KAAK,WAAW;YAAE;cAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;cAClC,IAAI,CACF,GAAG,EAAE,GAAG,EAAE,GAAG,CACd,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACnB,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;cAChE;cAEA;YACF;UAEA,KAAK,QAAQ;UAAE,KAAK,UAAU;YAAE;cAC9B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBACnC,OAAO,GAAG,uBAAuB,CAAC,UAAU,QAAQ,EAAE,EAAE,IAAI,CAAC;cAC/D;cAEA;YACF;UAEA,KAAK,MAAM;UACX,KAAK,UAAU;YAAE;cACf,IAAI,IAAI,KAAK,OAAO,IAAK,QAAQ,CAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACjD,OAAO,GAAG,IAAI;cAChB;cAEA;YACF;UAEA,KAAK,SAAS;YAAE;cACd,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;cACpC,IAAI,CACF,GAAG,EAAE,GAAG,EAAE,GAAG,CACd,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACrB,OAAO,GAAG,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;cAC5D;YACF;QACF;MACF;MAEA,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,CAAC,6BAA6B,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;QAE1D,OAAO,KAAK;MACd;MAEA,OAAO,IAAI;IACb,CAAC;;IAED;AACJ;AACA;AACA;IACI,MAAM,gBAAgB,GAAG,UAAU,IAAI,EAAE;MACvC,IAAI,WAAW;MACf,IAAI;QACF,IAAI,IAAI,KAAK,YAAY,EAAE;UACzB,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE;YACtC,YAAY,EAAE;UAChB,CAAC,CAAC;QACJ,CAAC,MAAM;UACL,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;YAC9B,YAAY,EAAE;UAChB,CAAC,CAAC;QACJ;MACF,CAAC,CAAC,MAAM;QACN,MAAM,CAAC,yBAAyB,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;QAElD,OAAO,KAAK;MACd;MAEA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,EAAE;QAC/C,QAAQ,CAAC,WAAW,EAAG,IAAI,IAAK;UAC9B,MAAM;YACJ,IAAI,EAAE;UACR,CAAC,GAAG,IAAI;UAER,IACE,CAAC,GAAG,KAAK,sBAAsB,IAAI,GAAG,KAAK,mBAAmB,KAC9D,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,mBAAmB,IACxC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,KAAK,QAAQ,EACvC;YACA,MAAM,CAAC,yBAAyB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;UAC/D;QACF,CAAC,CAAC;MACJ;MAEA,OAAO,IAAI;IACb,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;MACvB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE;QACpC;MACF,CAAC,KAAK;QACJ,OAAO,GAAG,GAAG,IAAI,GAAG,OAAO;MAC7B,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;MACf,MAAM,CAAC,iBAAiB,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;MACzC;IACF;IAEA,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE;MACxB;MACA;MACA;IACF;IAEA,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE;MACzB,MAAM,YAAY,GAAG,qBACnB,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAC5B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CACxB,IAAI,CAAC,CAAC;MAET,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;MACrB,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAC5B,CAAC,IAAI,CAAC,YAAY,EAAE;QACnB,MAAM,CAAC,iDAAiD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;QAEnG;MACF;MAEA,IAAI,oBAAoB,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE;QACjD,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI;QAE7B,oBAAoB,CAAC,YAAY,CAAC;MACpC;MAEA;IACF;IAEA,IAAI,GAAG,CAAC,GAAG,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS,EAAE;MAChD,IAAI,WAAW;MAEf,IAAI;QACF,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;MAClC,CAAC,CAAC,MAAM;QACN;MAAA;MAGF,IAAI,WAAW,EAAE;QACf,QAAQ,CAAC,WAAW,EAAG,IAAI,IAAK;UAC9B,IAAI,IAAI;UACR,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrD,IAAI,GAAG,IAAI,CAAC,KAAK;UACnB;UAEA,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClD,MAAM,CAAC,kCAAkC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;UAC7D;QACF,CAAC,CAAC;MACJ;IACF;IAEA,MAAM,aAAa,GAAG,sDAAwD,CAC5E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,CAC/C,CAAE,MAAM,CACN,GAAG,IAAK;MACP,OAAO,GAAG,KAAK,IAAI;IACrB,CACF,CAAC,CAAC,GAAG,CAAE,GAAG,IAAK;MACb,OAAO,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC;IACvF,IAAI,wBAAwB,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;MACjD,MAAM,QAAQ,GAAG,wBAAwB,KAAK,KAAK,GAAG,EAAE,GAAG,QAAQ,IAAI,QAAQ;MAC/E,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,0BAA0B,QAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;MAEnE;IACF;;IAEA;IACA;IACA;IACA,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;MACnC,GAAG,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,WAAW,EAAE;MACpD,GAAG,CAAC,IAAI,GAAG,EAAE;IACf;IAEA,MAAM,qBAAqB,GAAG,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC;IACpF,IAAI,qBAAqB,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;MAC9C,MAAM,QAAQ,GAAG,qBAAqB,KAAK,KAAK,GAAG,EAAE,GAAG,QAAQ,IAAI,QAAQ;MAC5E,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,oCAAoC,QAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;MAE7E;IACF;;IAEA;IACA,MAAM,uBAAuB,GAAG,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC;;IAErF;IACA;IACA;IACA,IAAI,uBAAuB,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAC7E,KAAK,EAAE,UAAU,EAAE,OAAO,EAC1B,MAAM,EAAE,UAAU,CACnB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAChB,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACvE;MACA,MAAM,QAAQ,GAAG,uBAAuB,KAAK,IAAI,GAAG,EAAE,GAAG,QAAQ,IAAI,QAAQ;MAC7E,MAAM,CAAC,QAAQ,GAAG,CAAC,GAAG,6BAA6B,QAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;MAE1E;IACF;;IAEA;IACA,MAAM,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC;IAClF,IAAI,oBAAoB,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI;IAC7C;IACA,GAAG,CAAC,GAAG,KAAK,MAAM,EAClB;MACA,MAAM,QAAQ,GAAG,oBAAoB,KAAK,IAAI,GAAG,EAAE,GAAG,QAAQ,IAAI,QAAQ;MAC1E,MAAM,CAAC,QAAQ,GAAG,CAAC,GAAG,oBAAoB,QAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;MAEjE;IACF;;IAEA;IACA,MAAM,gCAAgC,GAAG,KAAK,CAAC,gCAAgC,CAAC,GAAG,EAAE,aAAa,CAAC;IACnG,IAAI,gCAAgC,KAAK,KAAK,IAAI,CAAC,mBAAmB,EAAE;MACtE,MAAM,QAAQ,GAAG,gCAAgC,KAAK,IAAI,GAAG,EAAE,GAAG,QAAQ,IAAI,QAAQ;MACtF,MAAM,CAAC,QAAQ,GAAG,CAAC,GAAG,uCAAuC,QAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;MAEpF;IACF;;IAEA;IACA,MAAM,eAAe,GAAG,qBAAqB,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC3E,IAAI,eAAe,KAAK,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE;MACnE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5B;;IAEA;IACA,MAAM,mBAAmB,GAAG,CAC1B,uBAAuB,KAAK,KAAK,IACjC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,KAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAEtB,IAAI,mBAAmB,EAAE;MACvB,IAAI,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,GAAG,KAAK,UAAU,EAAE;QAC9C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;UACnD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE;YACzD,oBAAoB,CAAC,QAAQ,CAAC;UAChC;QACF;MACF,CAAC,MAAM;QACL,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;MACzC;IACF;IAEA,MAAM,eAAe,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACnB,IACE,eAAe,IACf,IAAI,KAAK,YAAY,IACrB,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EACxC;MACA,MAAM,CAAC,yBAAyB,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;IACxD,CAAC,MAAM,IAAI,eAAe,IAAI,IAAI,KAAK,YAAY,EAAE;MACnD,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;IACzC;IAEA,KAAK,MAAM,SAAS,IAAI,GAAG,CAAC,UAAU,EAAE;MACtC,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;QAChF,MAAM,CAAC,eAAe,SAAS,CAAC,GAAG,mBAAmB,EAAE,IAAI,EAAE,GAAG,CAAC;MACpE;IACF;EACF;EAEA,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE;IACxC,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;MAChF,MAAM,CAAC,eAAe,SAAS,CAAC,GAAG,mBAAmB,CAAC;IACzD;EACF;AACF,CAAC,EAAE;EACD,gBAAgB,EAAE,IAAI;EACtB,IAAI,EAAE;IACJ,IAAI,EAAE;MACJ,WAAW,EAAE,mHAAmH;MAChI,GAAG,EAAE;IACP,CAAC;IACD,MAAM,EAAE,CACN;MACE,oBAAoB,EAAE,KAAK;MAC3B,UAAU,EAAE;QACV,mBAAmB,EAAE;UACnB,OAAO,EAAE,KAAK;UACd,WAAW,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,wEAAwE;UAC5D,IAAI,EAAE;QACR;MACF,CAAC;MACD,IAAI,EAAE;IACR,CAAC,CACF;IACD,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
package/dist/tagNames.cjs CHANGED
@@ -1,9 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.typeScriptTags = exports.jsdocTags = exports.closureTags = void 0;
7
1
  /**
8
2
  * @typedef {{
9
3
  * [key: string]: string[]
@@ -23,7 +17,7 @@ const jsdocTagsUndocumented = {
23
17
  /**
24
18
  * @type {AliasedTags}
25
19
  */
26
- const jsdocTags = exports.jsdocTags = {
20
+ const jsdocTags = {
27
21
  ...jsdocTagsUndocumented,
28
22
  abstract: ['virtual'],
29
23
  access: [],
@@ -155,7 +149,7 @@ const typedocTags = {
155
149
  /**
156
150
  * @type {AliasedTags}
157
151
  */
158
- const typeScriptTags = exports.typeScriptTags = {
152
+ const typeScriptTags = {
159
153
  ...jsdocTags,
160
154
  ...tsdocTags,
161
155
  ...typedocTags,
@@ -211,7 +205,7 @@ const {
211
205
  /**
212
206
  * @type {AliasedTags}
213
207
  */
214
- const closureTags = exports.closureTags = {
208
+ const closureTags = {
215
209
  ...typeScriptTagsInClosure,
216
210
  ...undocumentedClosureTags,
217
211
  // From https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler
@@ -241,4 +235,5 @@ const closureTags = exports.closureTags = {
241
235
  suppress: [],
242
236
  unrestricted: []
243
237
  };
238
+ export { closureTags, jsdocTags, typeScriptTags };
244
239
  //# sourceMappingURL=tagNames.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tagNames.cjs","names":["jsdocTagsUndocumented","modifies","jsdocTags","exports","abstract","access","alias","async","augments","author","borrows","callback","class","classdesc","constant","constructs","copyright","default","deprecated","description","enum","event","example","external","file","fires","function","generator","global","hideconstructor","ignore","implements","inheritdoc","inheritDoc","inner","instance","interface","kind","lends","license","listens","member","memberof","mixes","mixin","module","name","namespace","override","package","param","private","property","protected","public","readonly","requires","returns","see","since","static","summary","this","throws","todo","tutorial","type","typedef","variation","version","yields","tsdocTags","alpha","beta","decorator","eventProperty","experimental","packageDocumentation","privateRemarks","remarks","sealed","typedocTags","category","categoryDescription","disableGroups","document","expand","expandType","group","groupDescription","hidden","hideCategories","hideGroups","inline","inlineType","mergeModuleWith","preventExpand","preventInline","primaryExport","showCategories","showGroups","sortStrategy","useDeclaredType","typeScriptTags","import","internal","jsx","overload","satisfies","template","undocumentedClosureTags","closurePrimitive","customElement","expose","idGenerator","meaning","mixinClass","mixinFunction","ngInject","owner","typeSummary","wizaction","typeScriptTagsInClosure","closureTags","define","dict","export","externs","final","implicitCast","noalias","nocollapse","nocompile","noinline","nosideeffects","polymer","polymerBehavior","preserve","record","return","struct","suppress","unrestricted"],"sources":["../src/tagNames.js"],"sourcesContent":["/**\n * @typedef {{\n * [key: string]: string[]\n * }} AliasedTags\n */\n\n/**\n * @type {AliasedTags}\n */\nconst jsdocTagsUndocumented = {\n // Undocumented but present; see\n // https://github.com/jsdoc/jsdoc/issues/1283#issuecomment-516816802\n // https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594\n modifies: [],\n};\n\n/**\n * @type {AliasedTags}\n */\nconst jsdocTags = {\n ...jsdocTagsUndocumented,\n abstract: [\n 'virtual',\n ],\n access: [],\n alias: [],\n async: [],\n augments: [\n 'extends',\n ],\n author: [],\n borrows: [],\n callback: [],\n class: [\n 'constructor',\n ],\n classdesc: [],\n constant: [\n 'const',\n ],\n constructs: [],\n copyright: [],\n default: [\n 'defaultvalue',\n ],\n deprecated: [],\n description: [\n 'desc',\n ],\n enum: [],\n event: [],\n example: [],\n exports: [],\n external: [\n 'host',\n ],\n file: [\n 'fileoverview',\n 'overview',\n ],\n fires: [\n 'emits',\n ],\n function: [\n 'func',\n 'method',\n ],\n generator: [],\n global: [],\n hideconstructor: [],\n ignore: [],\n implements: [],\n inheritdoc: [],\n\n // Allowing casing distinct from jsdoc `definitions.js` (required in Closure)\n inheritDoc: [],\n\n inner: [],\n instance: [],\n interface: [],\n kind: [],\n lends: [],\n license: [],\n listens: [],\n member: [\n 'var',\n ],\n memberof: [],\n 'memberof!': [],\n mixes: [],\n mixin: [],\n\n module: [],\n name: [],\n namespace: [],\n override: [],\n package: [],\n param: [\n 'arg',\n 'argument',\n ],\n private: [],\n property: [\n 'prop',\n ],\n protected: [],\n public: [],\n readonly: [],\n requires: [],\n returns: [\n 'return',\n ],\n see: [],\n since: [],\n static: [],\n summary: [],\n\n this: [],\n throws: [\n 'exception',\n ],\n todo: [],\n tutorial: [],\n type: [],\n typedef: [],\n variation: [],\n version: [],\n yields: [\n 'yield',\n ],\n};\n\n/**\n * @see {@link https://tsdoc.org/}\n * @type {AliasedTags}\n */\nconst tsdocTags = {\n alpha: [],\n beta: [],\n decorator: [],\n eventProperty: [],\n experimental: [],\n packageDocumentation: [],\n privateRemarks: [],\n remarks: [],\n sealed: [],\n};\n\n/**\n * @see {@link https://typedoc.org/documents/Tags.html}\n * @type {AliasedTags}\n */\nconst typedocTags = {\n category: [],\n // https://typedoc.org/documents/Tags._category.html#category-descriptions\n categoryDescription: [],\n // https://typedoc.org/documents/Tags._group.html#disablegroups\n disableGroups: [],\n document: [],\n expand: [],\n // https://typedoc.org/documents/Tags._expand.html#expandtype\n expandType: [],\n group: [],\n // https://typedoc.org/documents/Tags._group.html#groupdescription\n groupDescription: [],\n hidden: [],\n // https://typedoc.org/documents/Tags._category.html#navigation-customization\n hideCategories: [],\n // https://typedoc.org/documents/Tags._group.html#navigation-customization\n hideGroups: [],\n inline: [],\n // https://typedoc.org/documents/Tags._inline.html#inlinetype\n inlineType: [],\n mergeModuleWith: [],\n // https://typedoc.org/documents/Tags._expand.html#preventexpand\n preventExpand: [],\n // https://typedoc.org/documents/Tags._inline.html#preventinline\n preventInline: [],\n primaryExport: [],\n // https://typedoc.org/documents/Tags._category.html#navigation-customization\n showCategories: [],\n // https://typedoc.org/documents/Tags._group.html#navigation-customization\n showGroups: [],\n sortStrategy: [],\n useDeclaredType: [],\n};\n\n/**\n * @type {AliasedTags}\n */\nconst typeScriptTags = {\n ...jsdocTags,\n ...tsdocTags,\n ...typedocTags,\n\n // https://github.com/microsoft/TypeScript/issues/22160\n // https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#the-jsdoc-import-tag\n import: [],\n\n // https://www.typescriptlang.org/tsconfig/#stripInternal\n internal: [],\n\n // https://typedoc.org/documents/Tags.TypeScript_Tags.html\n jsx: [],\n\n // https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#overload-support-in-jsdoc\n overload: [],\n\n // https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#satisfies-support-in-jsdoc\n satisfies: [],\n\n // `@template` is also in TypeScript per:\n // https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#template\n template: [\n // Alias as per https://typedoc.org/documents/Tags._typeParam.html\n 'typeParam',\n ],\n};\n\n/**\n * @type {AliasedTags}\n */\nconst undocumentedClosureTags = {\n // These are in Closure source but not in jsdoc source nor in the Closure\n // docs: https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java\n closurePrimitive: [],\n customElement: [],\n expose: [],\n hidden: [],\n idGenerator: [],\n meaning: [],\n mixinClass: [],\n mixinFunction: [],\n ngInject: [],\n owner: [],\n typeSummary: [],\n wizaction: [],\n};\n\nconst {\n /* eslint-disable no-unused-vars */\n inheritdoc,\n internal,\n overload,\n // Will be inverted to prefer `return`\n returns,\n\n satisfies,\n /* eslint-enable no-unused-vars */\n ...typeScriptTagsInClosure\n} = typeScriptTags;\n\n/**\n * @type {AliasedTags}\n */\nconst closureTags = {\n ...typeScriptTagsInClosure,\n ...undocumentedClosureTags,\n\n // From https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler\n // These are all recognized in https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js\n // except for the experimental `noinline` and the casing differences noted below\n\n // Defined as a synonym of `const` in jsdoc `definitions.js`\n define: [],\n\n dict: [],\n export: [],\n externs: [],\n final: [],\n\n // With casing distinct from jsdoc `definitions.js`\n implicitCast: [],\n\n noalias: [],\n nocollapse: [],\n nocompile: [],\n noinline: [],\n nosideeffects: [],\n polymer: [],\n polymerBehavior: [],\n preserve: [],\n\n // Defined as a synonym of `interface` in jsdoc `definitions.js`\n record: [],\n\n return: [\n 'returns',\n ],\n\n struct: [],\n suppress: [],\n\n unrestricted: [],\n};\n\nexport {\n closureTags,\n jsdocTags,\n typeScriptTags,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"tagNames.cjs","names":[],"sources":["../src/tagNames.js"],"sourcesContent":["/**\n * @typedef {{\n * [key: string]: string[]\n * }} AliasedTags\n */\n\n/**\n * @type {AliasedTags}\n */\nconst jsdocTagsUndocumented = {\n // Undocumented but present; see\n // https://github.com/jsdoc/jsdoc/issues/1283#issuecomment-516816802\n // https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594\n modifies: [],\n};\n\n/**\n * @type {AliasedTags}\n */\nconst jsdocTags = {\n ...jsdocTagsUndocumented,\n abstract: [\n 'virtual',\n ],\n access: [],\n alias: [],\n async: [],\n augments: [\n 'extends',\n ],\n author: [],\n borrows: [],\n callback: [],\n class: [\n 'constructor',\n ],\n classdesc: [],\n constant: [\n 'const',\n ],\n constructs: [],\n copyright: [],\n default: [\n 'defaultvalue',\n ],\n deprecated: [],\n description: [\n 'desc',\n ],\n enum: [],\n event: [],\n example: [],\n exports: [],\n external: [\n 'host',\n ],\n file: [\n 'fileoverview',\n 'overview',\n ],\n fires: [\n 'emits',\n ],\n function: [\n 'func',\n 'method',\n ],\n generator: [],\n global: [],\n hideconstructor: [],\n ignore: [],\n implements: [],\n inheritdoc: [],\n\n // Allowing casing distinct from jsdoc `definitions.js` (required in Closure)\n inheritDoc: [],\n\n inner: [],\n instance: [],\n interface: [],\n kind: [],\n lends: [],\n license: [],\n listens: [],\n member: [\n 'var',\n ],\n memberof: [],\n 'memberof!': [],\n mixes: [],\n mixin: [],\n\n module: [],\n name: [],\n namespace: [],\n override: [],\n package: [],\n param: [\n 'arg',\n 'argument',\n ],\n private: [],\n property: [\n 'prop',\n ],\n protected: [],\n public: [],\n readonly: [],\n requires: [],\n returns: [\n 'return',\n ],\n see: [],\n since: [],\n static: [],\n summary: [],\n\n this: [],\n throws: [\n 'exception',\n ],\n todo: [],\n tutorial: [],\n type: [],\n typedef: [],\n variation: [],\n version: [],\n yields: [\n 'yield',\n ],\n};\n\n/**\n * @see {@link https://tsdoc.org/}\n * @type {AliasedTags}\n */\nconst tsdocTags = {\n alpha: [],\n beta: [],\n decorator: [],\n eventProperty: [],\n experimental: [],\n packageDocumentation: [],\n privateRemarks: [],\n remarks: [],\n sealed: [],\n};\n\n/**\n * @see {@link https://typedoc.org/documents/Tags.html}\n * @type {AliasedTags}\n */\nconst typedocTags = {\n category: [],\n // https://typedoc.org/documents/Tags._category.html#category-descriptions\n categoryDescription: [],\n // https://typedoc.org/documents/Tags._group.html#disablegroups\n disableGroups: [],\n document: [],\n expand: [],\n // https://typedoc.org/documents/Tags._expand.html#expandtype\n expandType: [],\n group: [],\n // https://typedoc.org/documents/Tags._group.html#groupdescription\n groupDescription: [],\n hidden: [],\n // https://typedoc.org/documents/Tags._category.html#navigation-customization\n hideCategories: [],\n // https://typedoc.org/documents/Tags._group.html#navigation-customization\n hideGroups: [],\n inline: [],\n // https://typedoc.org/documents/Tags._inline.html#inlinetype\n inlineType: [],\n mergeModuleWith: [],\n // https://typedoc.org/documents/Tags._expand.html#preventexpand\n preventExpand: [],\n // https://typedoc.org/documents/Tags._inline.html#preventinline\n preventInline: [],\n primaryExport: [],\n // https://typedoc.org/documents/Tags._category.html#navigation-customization\n showCategories: [],\n // https://typedoc.org/documents/Tags._group.html#navigation-customization\n showGroups: [],\n sortStrategy: [],\n useDeclaredType: [],\n};\n\n/**\n * @type {AliasedTags}\n */\nconst typeScriptTags = {\n ...jsdocTags,\n ...tsdocTags,\n ...typedocTags,\n\n // https://github.com/microsoft/TypeScript/issues/22160\n // https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#the-jsdoc-import-tag\n import: [],\n\n // https://www.typescriptlang.org/tsconfig/#stripInternal\n internal: [],\n\n // https://typedoc.org/documents/Tags.TypeScript_Tags.html\n jsx: [],\n\n // https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#overload-support-in-jsdoc\n overload: [],\n\n // https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#satisfies-support-in-jsdoc\n satisfies: [],\n\n // `@template` is also in TypeScript per:\n // https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#template\n template: [\n // Alias as per https://typedoc.org/documents/Tags._typeParam.html\n 'typeParam',\n ],\n};\n\n/**\n * @type {AliasedTags}\n */\nconst undocumentedClosureTags = {\n // These are in Closure source but not in jsdoc source nor in the Closure\n // docs: https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java\n closurePrimitive: [],\n customElement: [],\n expose: [],\n hidden: [],\n idGenerator: [],\n meaning: [],\n mixinClass: [],\n mixinFunction: [],\n ngInject: [],\n owner: [],\n typeSummary: [],\n wizaction: [],\n};\n\nconst {\n /* eslint-disable no-unused-vars */\n inheritdoc,\n internal,\n overload,\n // Will be inverted to prefer `return`\n returns,\n\n satisfies,\n /* eslint-enable no-unused-vars */\n ...typeScriptTagsInClosure\n} = typeScriptTags;\n\n/**\n * @type {AliasedTags}\n */\nconst closureTags = {\n ...typeScriptTagsInClosure,\n ...undocumentedClosureTags,\n\n // From https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler\n // These are all recognized in https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js\n // except for the experimental `noinline` and the casing differences noted below\n\n // Defined as a synonym of `const` in jsdoc `definitions.js`\n define: [],\n\n dict: [],\n export: [],\n externs: [],\n final: [],\n\n // With casing distinct from jsdoc `definitions.js`\n implicitCast: [],\n\n noalias: [],\n nocollapse: [],\n nocompile: [],\n noinline: [],\n nosideeffects: [],\n polymer: [],\n polymerBehavior: [],\n preserve: [],\n\n // Defined as a synonym of `interface` in jsdoc `definitions.js`\n record: [],\n\n return: [\n 'returns',\n ],\n\n struct: [],\n suppress: [],\n\n unrestricted: [],\n};\n\nexport {\n closureTags,\n jsdocTags,\n typeScriptTags,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.hasValueOrExecutorHasNonEmptyResolveValue = exports.hasReturnValue = void 0;
7
1
  /**
8
2
  * @typedef {import('estree').Node|
9
3
  * import('@typescript-eslint/types').TSESTree.Node} ESTreeOrTypeScriptNode
@@ -123,7 +117,6 @@ const hasReturnValue = (node, throwOnNullReturn, promFilter) => {
123
117
  * @returns {undefined|boolean|ESTreeOrTypeScriptNode}
124
118
  */
125
119
  // eslint-disable-next-line complexity
126
- exports.hasReturnValue = hasReturnValue;
127
120
  const allBrancheshaveReturnValues = (node, promFilter) => {
128
121
  if (!node) {
129
122
  return false;
@@ -491,5 +484,5 @@ const hasValueOrExecutorHasNonEmptyResolveValue = (node, anyPromiseAsReturn, all
491
484
  return hasNonEmptyResolverCall(body, resolverName);
492
485
  });
493
486
  };
494
- exports.hasValueOrExecutorHasNonEmptyResolveValue = hasValueOrExecutorHasNonEmptyResolveValue;
487
+ export { hasReturnValue, hasValueOrExecutorHasNonEmptyResolveValue };
495
488
  //# sourceMappingURL=hasReturnValue.cjs.map