@depup/eslint-plugin-jsdoc 62.8.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/LICENSE +24 -0
  2. package/README.md +33 -0
  3. package/changes.json +18 -0
  4. package/dist/WarnSettings.cjs +38 -0
  5. package/dist/WarnSettings.cjs.map +1 -0
  6. package/dist/WarnSettings.d.ts +17 -0
  7. package/dist/alignTransform.cjs +402 -0
  8. package/dist/alignTransform.cjs.map +1 -0
  9. package/dist/alignTransform.d.ts +34 -0
  10. package/dist/buildForbidRuleDefinition.cjs +101 -0
  11. package/dist/buildForbidRuleDefinition.cjs.map +1 -0
  12. package/dist/buildForbidRuleDefinition.d.ts +15 -0
  13. package/dist/buildRejectOrPreferRuleDefinition.cjs +352 -0
  14. package/dist/buildRejectOrPreferRuleDefinition.cjs.map +1 -0
  15. package/dist/buildRejectOrPreferRuleDefinition.d.ts +9 -0
  16. package/dist/cjs/WarnSettings.d.ts +16 -0
  17. package/dist/cjs/alignTransform.d.ts +33 -0
  18. package/dist/cjs/buildForbidRuleDefinition.d.ts +14 -0
  19. package/dist/cjs/buildRejectOrPreferRuleDefinition.d.ts +8 -0
  20. package/dist/cjs/defaultTagOrder.d.ts +4 -0
  21. package/dist/cjs/exportParser.d.ts +40 -0
  22. package/dist/cjs/getDefaultTagStructureForMode.d.ts +10 -0
  23. package/dist/cjs/getJsdocProcessorPlugin.d.cts +5 -0
  24. package/dist/cjs/getJsdocProcessorPlugin.d.ts +66 -0
  25. package/dist/cjs/index-cjs.d.ts +23 -0
  26. package/dist/cjs/index.cjs.d.cts +2 -0
  27. package/dist/cjs/iterateJsdoc.d.cts +7 -0
  28. package/dist/cjs/iterateJsdoc.d.ts +495 -0
  29. package/dist/cjs/jsdocUtils.d.ts +493 -0
  30. package/dist/cjs/rules/checkAccess.d.ts +2 -0
  31. package/dist/cjs/rules/checkAlignment.d.ts +2 -0
  32. package/dist/cjs/rules/checkExamples.d.ts +3 -0
  33. package/dist/cjs/rules/checkIndentation.d.ts +2 -0
  34. package/dist/cjs/rules/checkLineAlignment.d.ts +9 -0
  35. package/dist/cjs/rules/checkParamNames.d.ts +2 -0
  36. package/dist/cjs/rules/checkPropertyNames.d.ts +2 -0
  37. package/dist/cjs/rules/checkSyntax.d.ts +2 -0
  38. package/dist/cjs/rules/checkTagNames.d.ts +2 -0
  39. package/dist/cjs/rules/checkTemplateNames.d.ts +2 -0
  40. package/dist/cjs/rules/checkTypes.d.ts +7 -0
  41. package/dist/cjs/rules/checkValues.d.ts +2 -0
  42. package/dist/cjs/rules/convertToJsdocComments.d.ts +266 -0
  43. package/dist/cjs/rules/emptyTags.d.ts +2 -0
  44. package/dist/cjs/rules/escapeInlineTags.d.ts +2 -0
  45. package/dist/cjs/rules/implementsOnClasses.d.ts +2 -0
  46. package/dist/cjs/rules/importsAsDependencies.d.ts +2 -0
  47. package/dist/cjs/rules/informativeDocs.d.ts +2 -0
  48. package/dist/cjs/rules/linesBeforeBlock.d.ts +2 -0
  49. package/dist/cjs/rules/matchDescription.d.ts +2 -0
  50. package/dist/cjs/rules/matchName.d.ts +2 -0
  51. package/dist/cjs/rules/multilineBlocks.d.ts +2 -0
  52. package/dist/cjs/rules/noBadBlocks.d.ts +2 -0
  53. package/dist/cjs/rules/noBlankBlockDescriptions.d.ts +2 -0
  54. package/dist/cjs/rules/noBlankBlocks.d.ts +2 -0
  55. package/dist/cjs/rules/noDefaults.d.ts +2 -0
  56. package/dist/cjs/rules/noMissingSyntax.d.ts +9 -0
  57. package/dist/cjs/rules/noMultiAsterisks.d.ts +2 -0
  58. package/dist/cjs/rules/noRestrictedSyntax.d.ts +2 -0
  59. package/dist/cjs/rules/noTypes.d.ts +2 -0
  60. package/dist/cjs/rules/noUndefinedTypes.d.ts +2 -0
  61. package/dist/cjs/rules/preferImportTag.d.ts +2 -0
  62. package/dist/cjs/rules/requireAsteriskPrefix.d.ts +2 -0
  63. package/dist/cjs/rules/requireDescription.d.ts +2 -0
  64. package/dist/cjs/rules/requireDescriptionCompleteSentence.d.ts +2 -0
  65. package/dist/cjs/rules/requireExample.d.ts +2 -0
  66. package/dist/cjs/rules/requireFileOverview.d.ts +2 -0
  67. package/dist/cjs/rules/requireHyphenBeforeParamDescription.d.ts +2 -0
  68. package/dist/cjs/rules/requireJsdoc.d.ts +24 -0
  69. package/dist/cjs/rules/requireParam.d.ts +3 -0
  70. package/dist/cjs/rules/requireParamDescription.d.ts +2 -0
  71. package/dist/cjs/rules/requireParamName.d.ts +2 -0
  72. package/dist/cjs/rules/requireParamType.d.ts +2 -0
  73. package/dist/cjs/rules/requireProperty.d.ts +2 -0
  74. package/dist/cjs/rules/requirePropertyDescription.d.ts +2 -0
  75. package/dist/cjs/rules/requirePropertyName.d.ts +2 -0
  76. package/dist/cjs/rules/requirePropertyType.d.ts +2 -0
  77. package/dist/cjs/rules/requireRejects.d.ts +2 -0
  78. package/dist/cjs/rules/requireReturns.d.ts +2 -0
  79. package/dist/cjs/rules/requireReturnsCheck.d.ts +2 -0
  80. package/dist/cjs/rules/requireReturnsDescription.d.ts +2 -0
  81. package/dist/cjs/rules/requireReturnsType.d.ts +2 -0
  82. package/dist/cjs/rules/requireTags.d.ts +2 -0
  83. package/dist/cjs/rules/requireTemplate.d.ts +2 -0
  84. package/dist/cjs/rules/requireThrows.d.ts +2 -0
  85. package/dist/cjs/rules/requireYields.d.ts +2 -0
  86. package/dist/cjs/rules/requireYieldsCheck.d.ts +2 -0
  87. package/dist/cjs/rules/sortTags.d.ts +2 -0
  88. package/dist/cjs/rules/tagLines.d.ts +2 -0
  89. package/dist/cjs/rules/textEscaping.d.ts +2 -0
  90. package/dist/cjs/rules/tsMethodSignatureStyle.d.ts +2 -0
  91. package/dist/cjs/rules/tsNoEmptyObjectType.d.ts +2 -0
  92. package/dist/cjs/rules/tsNoUnnecessaryTemplateExpression.d.ts +2 -0
  93. package/dist/cjs/rules/tsPreferFunctionType.d.ts +2 -0
  94. package/dist/cjs/rules/typeFormatting.d.ts +2 -0
  95. package/dist/cjs/rules/validTypes.d.ts +2 -0
  96. package/dist/cjs/tagNames.d.ts +15 -0
  97. package/dist/cjs/utils/hasReturnValue.d.ts +19 -0
  98. package/dist/defaultTagOrder.cjs +46 -0
  99. package/dist/defaultTagOrder.cjs.map +1 -0
  100. package/dist/defaultTagOrder.d.ts +5 -0
  101. package/dist/exportParser.cjs +732 -0
  102. package/dist/exportParser.cjs.map +1 -0
  103. package/dist/exportParser.d.ts +41 -0
  104. package/dist/generateDocs.cjs +342 -0
  105. package/dist/generateDocs.cjs.map +1 -0
  106. package/dist/generateOptions.cjs +62 -0
  107. package/dist/generateOptions.cjs.map +1 -0
  108. package/dist/generateRule.cjs +248 -0
  109. package/dist/generateRule.cjs.map +1 -0
  110. package/dist/generateRuleTypes.cjs +24 -0
  111. package/dist/generateRuleTypes.cjs.map +1 -0
  112. package/dist/getDefaultTagStructureForMode.cjs +289 -0
  113. package/dist/getDefaultTagStructureForMode.cjs.map +1 -0
  114. package/dist/getDefaultTagStructureForMode.d.ts +11 -0
  115. package/dist/getJsdocProcessorPlugin.cjs +587 -0
  116. package/dist/getJsdocProcessorPlugin.cjs.map +1 -0
  117. package/dist/getJsdocProcessorPlugin.cts +5 -0
  118. package/dist/getJsdocProcessorPlugin.d.ts +67 -0
  119. package/dist/index-cjs.cjs +595 -0
  120. package/dist/index-cjs.cjs.map +1 -0
  121. package/dist/index-cjs.d.ts +24 -0
  122. package/dist/index-esm.cjs +162 -0
  123. package/dist/index-esm.cjs.map +1 -0
  124. package/dist/index-esm.d.ts +72 -0
  125. package/dist/index.cjs +743 -0
  126. package/dist/index.cjs.cts +3 -0
  127. package/dist/index.cjs.map +1 -0
  128. package/dist/index.d.ts +93 -0
  129. package/dist/iterateJsdoc.cjs +2150 -0
  130. package/dist/iterateJsdoc.cjs.map +1 -0
  131. package/dist/iterateJsdoc.cts +7 -0
  132. package/dist/iterateJsdoc.d.ts +496 -0
  133. package/dist/jsdocUtils.cjs +1725 -0
  134. package/dist/jsdocUtils.cjs.map +1 -0
  135. package/dist/jsdocUtils.d.ts +494 -0
  136. package/dist/rules/checkAccess.cjs +40 -0
  137. package/dist/rules/checkAccess.cjs.map +1 -0
  138. package/dist/rules/checkAccess.d.ts +3 -0
  139. package/dist/rules/checkAlignment.cjs +78 -0
  140. package/dist/rules/checkAlignment.cjs.map +1 -0
  141. package/dist/rules/checkAlignment.d.ts +3 -0
  142. package/dist/rules/checkExamples.cjs +521 -0
  143. package/dist/rules/checkExamples.cjs.map +1 -0
  144. package/dist/rules/checkExamples.d.ts +4 -0
  145. package/dist/rules/checkIndentation.cjs +170 -0
  146. package/dist/rules/checkIndentation.cjs.map +1 -0
  147. package/dist/rules/checkIndentation.d.ts +3 -0
  148. package/dist/rules/checkLineAlignment.cjs +398 -0
  149. package/dist/rules/checkLineAlignment.cjs.map +1 -0
  150. package/dist/rules/checkLineAlignment.d.ts +10 -0
  151. package/dist/rules/checkParamNames.cjs +407 -0
  152. package/dist/rules/checkParamNames.cjs.map +1 -0
  153. package/dist/rules/checkParamNames.d.ts +3 -0
  154. package/dist/rules/checkPropertyNames.cjs +135 -0
  155. package/dist/rules/checkPropertyNames.cjs.map +1 -0
  156. package/dist/rules/checkPropertyNames.d.ts +3 -0
  157. package/dist/rules/checkSyntax.cjs +38 -0
  158. package/dist/rules/checkSyntax.cjs.map +1 -0
  159. package/dist/rules/checkSyntax.d.ts +3 -0
  160. package/dist/rules/checkTagNames.cjs +312 -0
  161. package/dist/rules/checkTagNames.cjs.map +1 -0
  162. package/dist/rules/checkTagNames.d.ts +3 -0
  163. package/dist/rules/checkTemplateNames.cjs +185 -0
  164. package/dist/rules/checkTemplateNames.cjs.map +1 -0
  165. package/dist/rules/checkTemplateNames.d.ts +3 -0
  166. package/dist/rules/checkTypes.cjs +111 -0
  167. package/dist/rules/checkTypes.cjs.map +1 -0
  168. package/dist/rules/checkTypes.d.ts +8 -0
  169. package/dist/rules/checkValues.cjs +166 -0
  170. package/dist/rules/checkValues.cjs.map +1 -0
  171. package/dist/rules/checkValues.d.ts +3 -0
  172. package/dist/rules/convertToJsdocComments.cjs +356 -0
  173. package/dist/rules/convertToJsdocComments.cjs.map +1 -0
  174. package/dist/rules/convertToJsdocComments.d.ts +267 -0
  175. package/dist/rules/emptyTags.cjs +85 -0
  176. package/dist/rules/emptyTags.cjs.map +1 -0
  177. package/dist/rules/emptyTags.d.ts +3 -0
  178. package/dist/rules/escapeInlineTags.cjs +149 -0
  179. package/dist/rules/escapeInlineTags.cjs.map +1 -0
  180. package/dist/rules/escapeInlineTags.d.ts +3 -0
  181. package/dist/rules/implementsOnClasses.cjs +74 -0
  182. package/dist/rules/implementsOnClasses.cjs.map +1 -0
  183. package/dist/rules/implementsOnClasses.d.ts +3 -0
  184. package/dist/rules/importsAsDependencies.cjs +104 -0
  185. package/dist/rules/importsAsDependencies.cjs.map +1 -0
  186. package/dist/rules/importsAsDependencies.d.ts +3 -0
  187. package/dist/rules/informativeDocs.cjs +187 -0
  188. package/dist/rules/informativeDocs.cjs.map +1 -0
  189. package/dist/rules/informativeDocs.d.ts +3 -0
  190. package/dist/rules/linesBeforeBlock.cjs +120 -0
  191. package/dist/rules/linesBeforeBlock.cjs.map +1 -0
  192. package/dist/rules/linesBeforeBlock.d.ts +3 -0
  193. package/dist/rules/matchDescription.cjs +356 -0
  194. package/dist/rules/matchDescription.cjs.map +1 -0
  195. package/dist/rules/matchDescription.d.ts +3 -0
  196. package/dist/rules/matchName.cjs +160 -0
  197. package/dist/rules/matchName.cjs.map +1 -0
  198. package/dist/rules/matchName.d.ts +3 -0
  199. package/dist/rules/multilineBlocks.cjs +431 -0
  200. package/dist/rules/multilineBlocks.cjs.map +1 -0
  201. package/dist/rules/multilineBlocks.d.ts +3 -0
  202. package/dist/rules/noBadBlocks.cjs +100 -0
  203. package/dist/rules/noBadBlocks.cjs.map +1 -0
  204. package/dist/rules/noBadBlocks.d.ts +3 -0
  205. package/dist/rules/noBlankBlockDescriptions.cjs +63 -0
  206. package/dist/rules/noBlankBlockDescriptions.cjs.map +1 -0
  207. package/dist/rules/noBlankBlockDescriptions.d.ts +3 -0
  208. package/dist/rules/noBlankBlocks.cjs +54 -0
  209. package/dist/rules/noBlankBlocks.cjs.map +1 -0
  210. package/dist/rules/noBlankBlocks.d.ts +3 -0
  211. package/dist/rules/noDefaults.cjs +102 -0
  212. package/dist/rules/noDefaults.cjs.map +1 -0
  213. package/dist/rules/noDefaults.d.ts +3 -0
  214. package/dist/rules/noMissingSyntax.cjs +196 -0
  215. package/dist/rules/noMissingSyntax.cjs.map +1 -0
  216. package/dist/rules/noMissingSyntax.d.ts +10 -0
  217. package/dist/rules/noMultiAsterisks.cjs +126 -0
  218. package/dist/rules/noMultiAsterisks.cjs.map +1 -0
  219. package/dist/rules/noMultiAsterisks.d.ts +3 -0
  220. package/dist/rules/noRestrictedSyntax.cjs +68 -0
  221. package/dist/rules/noRestrictedSyntax.cjs.map +1 -0
  222. package/dist/rules/noRestrictedSyntax.d.ts +3 -0
  223. package/dist/rules/noTypes.cjs +101 -0
  224. package/dist/rules/noTypes.cjs.map +1 -0
  225. package/dist/rules/noTypes.d.ts +3 -0
  226. package/dist/rules/noUndefinedTypes.cjs +588 -0
  227. package/dist/rules/noUndefinedTypes.cjs.map +1 -0
  228. package/dist/rules/noUndefinedTypes.d.ts +3 -0
  229. package/dist/rules/preferImportTag.cjs +362 -0
  230. package/dist/rules/preferImportTag.cjs.map +1 -0
  231. package/dist/rules/preferImportTag.d.ts +3 -0
  232. package/dist/rules/requireAsteriskPrefix.cjs +190 -0
  233. package/dist/rules/requireAsteriskPrefix.cjs.map +1 -0
  234. package/dist/rules/requireAsteriskPrefix.d.ts +3 -0
  235. package/dist/rules/requireDescription.cjs +164 -0
  236. package/dist/rules/requireDescription.cjs.map +1 -0
  237. package/dist/rules/requireDescription.d.ts +3 -0
  238. package/dist/rules/requireDescriptionCompleteSentence.cjs +321 -0
  239. package/dist/rules/requireDescriptionCompleteSentence.cjs.map +1 -0
  240. package/dist/rules/requireDescriptionCompleteSentence.d.ts +3 -0
  241. package/dist/rules/requireExample.cjs +133 -0
  242. package/dist/rules/requireExample.cjs.map +1 -0
  243. package/dist/rules/requireExample.d.ts +3 -0
  244. package/dist/rules/requireFileOverview.cjs +194 -0
  245. package/dist/rules/requireFileOverview.cjs.map +1 -0
  246. package/dist/rules/requireFileOverview.d.ts +3 -0
  247. package/dist/rules/requireHyphenBeforeParamDescription.cjs +166 -0
  248. package/dist/rules/requireHyphenBeforeParamDescription.cjs.map +1 -0
  249. package/dist/rules/requireHyphenBeforeParamDescription.d.ts +3 -0
  250. package/dist/rules/requireJsdoc.cjs +722 -0
  251. package/dist/rules/requireJsdoc.cjs.map +1 -0
  252. package/dist/rules/requireJsdoc.d.ts +25 -0
  253. package/dist/rules/requireParam.cjs +772 -0
  254. package/dist/rules/requireParam.cjs.map +1 -0
  255. package/dist/rules/requireParam.d.ts +4 -0
  256. package/dist/rules/requireParamDescription.cjs +105 -0
  257. package/dist/rules/requireParamDescription.cjs.map +1 -0
  258. package/dist/rules/requireParamDescription.d.ts +3 -0
  259. package/dist/rules/requireParamName.cjs +68 -0
  260. package/dist/rules/requireParamName.cjs.map +1 -0
  261. package/dist/rules/requireParamName.d.ts +3 -0
  262. package/dist/rules/requireParamType.cjs +104 -0
  263. package/dist/rules/requireParamType.cjs.map +1 -0
  264. package/dist/rules/requireParamType.d.ts +3 -0
  265. package/dist/rules/requireProperty.cjs +63 -0
  266. package/dist/rules/requireProperty.cjs.map +1 -0
  267. package/dist/rules/requireProperty.d.ts +3 -0
  268. package/dist/rules/requirePropertyDescription.cjs +29 -0
  269. package/dist/rules/requirePropertyDescription.cjs.map +1 -0
  270. package/dist/rules/requirePropertyDescription.d.ts +3 -0
  271. package/dist/rules/requirePropertyName.cjs +29 -0
  272. package/dist/rules/requirePropertyName.cjs.map +1 -0
  273. package/dist/rules/requirePropertyName.d.ts +3 -0
  274. package/dist/rules/requirePropertyType.cjs +29 -0
  275. package/dist/rules/requirePropertyType.cjs.map +1 -0
  276. package/dist/rules/requirePropertyType.d.ts +3 -0
  277. package/dist/rules/requireRejects.cjs +226 -0
  278. package/dist/rules/requireRejects.cjs.map +1 -0
  279. package/dist/rules/requireRejects.d.ts +3 -0
  280. package/dist/rules/requireReturns.cjs +262 -0
  281. package/dist/rules/requireReturns.cjs.map +1 -0
  282. package/dist/rules/requireReturns.d.ts +3 -0
  283. package/dist/rules/requireReturnsCheck.cjs +140 -0
  284. package/dist/rules/requireReturnsCheck.cjs.map +1 -0
  285. package/dist/rules/requireReturnsCheck.d.ts +3 -0
  286. package/dist/rules/requireReturnsDescription.cjs +72 -0
  287. package/dist/rules/requireReturnsDescription.cjs.map +1 -0
  288. package/dist/rules/requireReturnsDescription.d.ts +3 -0
  289. package/dist/rules/requireReturnsType.cjs +68 -0
  290. package/dist/rules/requireReturnsType.cjs.map +1 -0
  291. package/dist/rules/requireReturnsType.d.ts +3 -0
  292. package/dist/rules/requireTags.cjs +74 -0
  293. package/dist/rules/requireTags.cjs.map +1 -0
  294. package/dist/rules/requireTags.d.ts +3 -0
  295. package/dist/rules/requireTemplate.cjs +220 -0
  296. package/dist/rules/requireTemplate.cjs.map +1 -0
  297. package/dist/rules/requireTemplate.d.ts +3 -0
  298. package/dist/rules/requireThrows.cjs +118 -0
  299. package/dist/rules/requireThrows.cjs.map +1 -0
  300. package/dist/rules/requireThrows.d.ts +3 -0
  301. package/dist/rules/requireYields.cjs +224 -0
  302. package/dist/rules/requireYields.cjs.map +1 -0
  303. package/dist/rules/requireYields.d.ts +3 -0
  304. package/dist/rules/requireYieldsCheck.cjs +179 -0
  305. package/dist/rules/requireYieldsCheck.cjs.map +1 -0
  306. package/dist/rules/requireYieldsCheck.d.ts +3 -0
  307. package/dist/rules/sortTags.cjs +656 -0
  308. package/dist/rules/sortTags.cjs.map +1 -0
  309. package/dist/rules/sortTags.d.ts +3 -0
  310. package/dist/rules/tagLines.cjs +374 -0
  311. package/dist/rules/tagLines.cjs.map +1 -0
  312. package/dist/rules/tagLines.d.ts +3 -0
  313. package/dist/rules/textEscaping.cjs +141 -0
  314. package/dist/rules/textEscaping.cjs.map +1 -0
  315. package/dist/rules/textEscaping.d.ts +3 -0
  316. package/dist/rules/tsMethodSignatureStyle.cjs +240 -0
  317. package/dist/rules/tsMethodSignatureStyle.cjs.map +1 -0
  318. package/dist/rules/tsMethodSignatureStyle.d.ts +3 -0
  319. package/dist/rules/tsNoEmptyObjectType.cjs +62 -0
  320. package/dist/rules/tsNoEmptyObjectType.cjs.map +1 -0
  321. package/dist/rules/tsNoEmptyObjectType.d.ts +3 -0
  322. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs +104 -0
  323. package/dist/rules/tsNoUnnecessaryTemplateExpression.cjs.map +1 -0
  324. package/dist/rules/tsNoUnnecessaryTemplateExpression.d.ts +3 -0
  325. package/dist/rules/tsPreferFunctionType.cjs +110 -0
  326. package/dist/rules/tsPreferFunctionType.cjs.map +1 -0
  327. package/dist/rules/tsPreferFunctionType.d.ts +3 -0
  328. package/dist/rules/typeFormatting.cjs +607 -0
  329. package/dist/rules/typeFormatting.cjs.map +1 -0
  330. package/dist/rules/typeFormatting.d.ts +3 -0
  331. package/dist/rules/validTypes.cjs +328 -0
  332. package/dist/rules/validTypes.cjs.map +1 -0
  333. package/dist/rules/validTypes.d.ts +3 -0
  334. package/dist/rules.d.ts +3203 -0
  335. package/dist/tagNames.cjs +244 -0
  336. package/dist/tagNames.cjs.map +1 -0
  337. package/dist/tagNames.d.ts +16 -0
  338. package/dist/to-valid-identifier.cjs +263 -0
  339. package/dist/utils/hasReturnValue.cjs +495 -0
  340. package/dist/utils/hasReturnValue.cjs.map +1 -0
  341. package/dist/utils/hasReturnValue.d.ts +20 -0
  342. package/package.json +220 -0
  343. package/rollup.config.js +16 -0
  344. package/src/WarnSettings.js +34 -0
  345. package/src/alignTransform.js +444 -0
  346. package/src/buildForbidRuleDefinition.js +106 -0
  347. package/src/buildRejectOrPreferRuleDefinition.js +481 -0
  348. package/src/defaultTagOrder.js +169 -0
  349. package/src/exportParser.js +973 -0
  350. package/src/getDefaultTagStructureForMode.js +968 -0
  351. package/src/getJsdocProcessorPlugin.cts +5 -0
  352. package/src/getJsdocProcessorPlugin.js +692 -0
  353. package/src/index-cjs.js +755 -0
  354. package/src/index-esm.js +196 -0
  355. package/src/index.cjs.cts +3 -0
  356. package/src/index.js +940 -0
  357. package/src/iterateJsdoc.cts +7 -0
  358. package/src/iterateJsdoc.js +2612 -0
  359. package/src/jsdocUtils.js +2158 -0
  360. package/src/rules/checkAccess.js +45 -0
  361. package/src/rules/checkAlignment.js +82 -0
  362. package/src/rules/checkExamples.js +613 -0
  363. package/src/rules/checkIndentation.js +176 -0
  364. package/src/rules/checkLineAlignment.js +453 -0
  365. package/src/rules/checkParamNames.js +541 -0
  366. package/src/rules/checkPropertyNames.js +174 -0
  367. package/src/rules/checkSyntax.js +30 -0
  368. package/src/rules/checkTagNames.js +414 -0
  369. package/src/rules/checkTemplateNames.js +208 -0
  370. package/src/rules/checkTypes.js +130 -0
  371. package/src/rules/checkValues.js +264 -0
  372. package/src/rules/convertToJsdocComments.js +444 -0
  373. package/src/rules/emptyTags.js +106 -0
  374. package/src/rules/escapeInlineTags.js +189 -0
  375. package/src/rules/implementsOnClasses.js +78 -0
  376. package/src/rules/importsAsDependencies.js +132 -0
  377. package/src/rules/informativeDocs.js +228 -0
  378. package/src/rules/linesBeforeBlock.js +144 -0
  379. package/src/rules/matchDescription.js +413 -0
  380. package/src/rules/matchName.js +179 -0
  381. package/src/rules/multilineBlocks.js +562 -0
  382. package/src/rules/noBadBlocks.js +127 -0
  383. package/src/rules/noBlankBlockDescriptions.js +69 -0
  384. package/src/rules/noBlankBlocks.js +55 -0
  385. package/src/rules/noDefaults.js +104 -0
  386. package/src/rules/noMissingSyntax.js +215 -0
  387. package/src/rules/noMultiAsterisks.js +162 -0
  388. package/src/rules/noRestrictedSyntax.js +72 -0
  389. package/src/rules/noTypes.js +108 -0
  390. package/src/rules/noUndefinedTypes.js +797 -0
  391. package/src/rules/preferImportTag.js +521 -0
  392. package/src/rules/requireAsteriskPrefix.js +217 -0
  393. package/src/rules/requireDescription.js +190 -0
  394. package/src/rules/requireDescriptionCompleteSentence.js +376 -0
  395. package/src/rules/requireExample.js +143 -0
  396. package/src/rules/requireFileOverview.js +213 -0
  397. package/src/rules/requireHyphenBeforeParamDescription.js +210 -0
  398. package/src/rules/requireJsdoc.js +897 -0
  399. package/src/rules/requireParam.js +848 -0
  400. package/src/rules/requireParamDescription.js +110 -0
  401. package/src/rules/requireParamName.js +69 -0
  402. package/src/rules/requireParamType.js +109 -0
  403. package/src/rules/requireProperty.js +66 -0
  404. package/src/rules/requirePropertyDescription.js +25 -0
  405. package/src/rules/requirePropertyName.js +25 -0
  406. package/src/rules/requirePropertyType.js +25 -0
  407. package/src/rules/requireRejects.js +246 -0
  408. package/src/rules/requireReturns.js +291 -0
  409. package/src/rules/requireReturnsCheck.js +180 -0
  410. package/src/rules/requireReturnsDescription.js +73 -0
  411. package/src/rules/requireReturnsType.js +65 -0
  412. package/src/rules/requireTags.js +85 -0
  413. package/src/rules/requireTemplate.js +246 -0
  414. package/src/rules/requireThrows.js +128 -0
  415. package/src/rules/requireYields.js +265 -0
  416. package/src/rules/requireYieldsCheck.js +226 -0
  417. package/src/rules/sortTags.js +766 -0
  418. package/src/rules/tagLines.js +486 -0
  419. package/src/rules/textEscaping.js +158 -0
  420. package/src/rules/tsMethodSignatureStyle.js +300 -0
  421. package/src/rules/tsNoEmptyObjectType.js +61 -0
  422. package/src/rules/tsNoUnnecessaryTemplateExpression.js +130 -0
  423. package/src/rules/tsPreferFunctionType.js +127 -0
  424. package/src/rules/typeFormatting.js +690 -0
  425. package/src/rules/validTypes.js +466 -0
  426. package/src/rules.d.ts +3203 -0
  427. package/src/tagNames.js +301 -0
  428. package/src/utils/hasReturnValue.js +572 -0
  429. package/typings/babel__eslint-parser.d.ts +1 -0
  430. package/typings/gitdown.d.ts +16 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,743 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ Object.defineProperty(exports, "getJsdocProcessorPlugin", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _getJsdocProcessorPlugin.getJsdocProcessorPlugin;
11
+ }
12
+ });
13
+ exports.jsdoc = void 0;
14
+ var _objectDeepMerge = require("object-deep-merge");
15
+ var _buildForbidRuleDefinition = require("./buildForbidRuleDefinition.cjs");
16
+ var _buildRejectOrPreferRuleDefinition = require("./buildRejectOrPreferRuleDefinition.cjs");
17
+ var _getJsdocProcessorPlugin = require("./getJsdocProcessorPlugin.cjs");
18
+ var _checkAccess = _interopRequireDefault(require("./rules/checkAccess.cjs"));
19
+ var _checkAlignment = _interopRequireDefault(require("./rules/checkAlignment.cjs"));
20
+ var _checkExamples = _interopRequireDefault(require("./rules/checkExamples.cjs"));
21
+ var _checkIndentation = _interopRequireDefault(require("./rules/checkIndentation.cjs"));
22
+ var _checkLineAlignment = _interopRequireDefault(require("./rules/checkLineAlignment.cjs"));
23
+ var _checkParamNames = _interopRequireDefault(require("./rules/checkParamNames.cjs"));
24
+ var _checkPropertyNames = _interopRequireDefault(require("./rules/checkPropertyNames.cjs"));
25
+ var _checkSyntax = _interopRequireDefault(require("./rules/checkSyntax.cjs"));
26
+ var _checkTagNames = _interopRequireDefault(require("./rules/checkTagNames.cjs"));
27
+ var _checkTemplateNames = _interopRequireDefault(require("./rules/checkTemplateNames.cjs"));
28
+ var _checkTypes = _interopRequireDefault(require("./rules/checkTypes.cjs"));
29
+ var _checkValues = _interopRequireDefault(require("./rules/checkValues.cjs"));
30
+ var _convertToJsdocComments = _interopRequireDefault(require("./rules/convertToJsdocComments.cjs"));
31
+ var _emptyTags = _interopRequireDefault(require("./rules/emptyTags.cjs"));
32
+ var _escapeInlineTags = _interopRequireDefault(require("./rules/escapeInlineTags.cjs"));
33
+ var _implementsOnClasses = _interopRequireDefault(require("./rules/implementsOnClasses.cjs"));
34
+ var _importsAsDependencies = _interopRequireDefault(require("./rules/importsAsDependencies.cjs"));
35
+ var _informativeDocs = _interopRequireDefault(require("./rules/informativeDocs.cjs"));
36
+ var _linesBeforeBlock = _interopRequireDefault(require("./rules/linesBeforeBlock.cjs"));
37
+ var _matchDescription = _interopRequireDefault(require("./rules/matchDescription.cjs"));
38
+ var _matchName = _interopRequireDefault(require("./rules/matchName.cjs"));
39
+ var _multilineBlocks = _interopRequireDefault(require("./rules/multilineBlocks.cjs"));
40
+ var _noBadBlocks = _interopRequireDefault(require("./rules/noBadBlocks.cjs"));
41
+ var _noBlankBlockDescriptions = _interopRequireDefault(require("./rules/noBlankBlockDescriptions.cjs"));
42
+ var _noBlankBlocks = _interopRequireDefault(require("./rules/noBlankBlocks.cjs"));
43
+ var _noDefaults = _interopRequireDefault(require("./rules/noDefaults.cjs"));
44
+ var _noMissingSyntax = _interopRequireDefault(require("./rules/noMissingSyntax.cjs"));
45
+ var _noMultiAsterisks = _interopRequireDefault(require("./rules/noMultiAsterisks.cjs"));
46
+ var _noRestrictedSyntax = _interopRequireDefault(require("./rules/noRestrictedSyntax.cjs"));
47
+ var _noTypes = _interopRequireDefault(require("./rules/noTypes.cjs"));
48
+ var _noUndefinedTypes = _interopRequireDefault(require("./rules/noUndefinedTypes.cjs"));
49
+ var _preferImportTag = _interopRequireDefault(require("./rules/preferImportTag.cjs"));
50
+ var _requireAsteriskPrefix = _interopRequireDefault(require("./rules/requireAsteriskPrefix.cjs"));
51
+ var _requireDescription = _interopRequireDefault(require("./rules/requireDescription.cjs"));
52
+ var _requireDescriptionCompleteSentence = _interopRequireDefault(require("./rules/requireDescriptionCompleteSentence.cjs"));
53
+ var _requireExample = _interopRequireDefault(require("./rules/requireExample.cjs"));
54
+ var _requireFileOverview = _interopRequireDefault(require("./rules/requireFileOverview.cjs"));
55
+ var _requireHyphenBeforeParamDescription = _interopRequireDefault(require("./rules/requireHyphenBeforeParamDescription.cjs"));
56
+ var _requireJsdoc = _interopRequireDefault(require("./rules/requireJsdoc.cjs"));
57
+ var _requireParam = _interopRequireDefault(require("./rules/requireParam.cjs"));
58
+ var _requireParamDescription = _interopRequireDefault(require("./rules/requireParamDescription.cjs"));
59
+ var _requireParamName = _interopRequireDefault(require("./rules/requireParamName.cjs"));
60
+ var _requireParamType = _interopRequireDefault(require("./rules/requireParamType.cjs"));
61
+ var _requireProperty = _interopRequireDefault(require("./rules/requireProperty.cjs"));
62
+ var _requirePropertyDescription = _interopRequireDefault(require("./rules/requirePropertyDescription.cjs"));
63
+ var _requirePropertyName = _interopRequireDefault(require("./rules/requirePropertyName.cjs"));
64
+ var _requirePropertyType = _interopRequireDefault(require("./rules/requirePropertyType.cjs"));
65
+ var _requireRejects = _interopRequireDefault(require("./rules/requireRejects.cjs"));
66
+ var _requireReturns = _interopRequireDefault(require("./rules/requireReturns.cjs"));
67
+ var _requireReturnsCheck = _interopRequireDefault(require("./rules/requireReturnsCheck.cjs"));
68
+ var _requireReturnsDescription = _interopRequireDefault(require("./rules/requireReturnsDescription.cjs"));
69
+ var _requireReturnsType = _interopRequireDefault(require("./rules/requireReturnsType.cjs"));
70
+ var _requireTags = _interopRequireDefault(require("./rules/requireTags.cjs"));
71
+ var _requireTemplate = _interopRequireDefault(require("./rules/requireTemplate.cjs"));
72
+ var _requireThrows = _interopRequireDefault(require("./rules/requireThrows.cjs"));
73
+ var _requireYields = _interopRequireDefault(require("./rules/requireYields.cjs"));
74
+ var _requireYieldsCheck = _interopRequireDefault(require("./rules/requireYieldsCheck.cjs"));
75
+ var _sortTags = _interopRequireDefault(require("./rules/sortTags.cjs"));
76
+ var _tagLines = _interopRequireDefault(require("./rules/tagLines.cjs"));
77
+ var _textEscaping = _interopRequireDefault(require("./rules/textEscaping.cjs"));
78
+ var _tsMethodSignatureStyle = _interopRequireDefault(require("./rules/tsMethodSignatureStyle.cjs"));
79
+ var _tsNoEmptyObjectType = _interopRequireDefault(require("./rules/tsNoEmptyObjectType.cjs"));
80
+ var _tsNoUnnecessaryTemplateExpression = _interopRequireDefault(require("./rules/tsNoUnnecessaryTemplateExpression.cjs"));
81
+ var _tsPreferFunctionType = _interopRequireDefault(require("./rules/tsPreferFunctionType.cjs"));
82
+ var _typeFormatting = _interopRequireDefault(require("./rules/typeFormatting.cjs"));
83
+ var _validTypes = _interopRequireDefault(require("./rules/validTypes.cjs"));
84
+ var _eslint = require("eslint");
85
+ var _semver = _interopRequireDefault(require("semver"));
86
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
87
+ /* AUTO-GENERATED BY build SCRIPT */
88
+ /* eslint-disable perfectionist/sort-imports -- For auto-generate; Do not remove */
89
+
90
+ /**
91
+ * @typedef {"recommended" | "stylistic" | "contents" | "logical" | "requirements"} ConfigGroups
92
+ * @typedef {"" | "-typescript" | "-typescript-flavor"} ConfigVariants
93
+ * @typedef {"" | "-error"} ErrorLevelVariants
94
+ * @type {import('eslint').ESLint.Plugin & {
95
+ * configs: Record<
96
+ * `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,
97
+ * import('eslint').Linter.Config
98
+ * > &
99
+ * Record<
100
+ * "examples"|"default-expressions"|"examples-and-default-expressions",
101
+ * import('eslint').Linter.Config[]
102
+ * > &
103
+ * Record<"flat/recommended-mixed", import('eslint').Linter.Config[]>
104
+ * }}
105
+ */
106
+ const index = {};
107
+ index.configs = {};
108
+ index.rules = {
109
+ 'check-access': _checkAccess.default,
110
+ 'check-alignment': _checkAlignment.default,
111
+ 'check-examples': _checkExamples.default,
112
+ 'check-indentation': _checkIndentation.default,
113
+ 'check-line-alignment': _checkLineAlignment.default,
114
+ 'check-param-names': _checkParamNames.default,
115
+ 'check-property-names': _checkPropertyNames.default,
116
+ 'check-syntax': _checkSyntax.default,
117
+ 'check-tag-names': _checkTagNames.default,
118
+ 'check-template-names': _checkTemplateNames.default,
119
+ 'check-types': _checkTypes.default,
120
+ 'check-values': _checkValues.default,
121
+ 'convert-to-jsdoc-comments': _convertToJsdocComments.default,
122
+ 'empty-tags': _emptyTags.default,
123
+ 'escape-inline-tags': _escapeInlineTags.default,
124
+ 'implements-on-classes': _implementsOnClasses.default,
125
+ 'imports-as-dependencies': _importsAsDependencies.default,
126
+ 'informative-docs': _informativeDocs.default,
127
+ 'lines-before-block': _linesBeforeBlock.default,
128
+ 'match-description': _matchDescription.default,
129
+ 'match-name': _matchName.default,
130
+ 'multiline-blocks': _multilineBlocks.default,
131
+ 'no-bad-blocks': _noBadBlocks.default,
132
+ 'no-blank-block-descriptions': _noBlankBlockDescriptions.default,
133
+ 'no-blank-blocks': _noBlankBlocks.default,
134
+ 'no-defaults': _noDefaults.default,
135
+ 'no-missing-syntax': _noMissingSyntax.default,
136
+ 'no-multi-asterisks': _noMultiAsterisks.default,
137
+ 'no-restricted-syntax': _noRestrictedSyntax.default,
138
+ 'no-types': _noTypes.default,
139
+ 'no-undefined-types': _noUndefinedTypes.default,
140
+ 'prefer-import-tag': _preferImportTag.default,
141
+ 'reject-any-type': (0, _buildRejectOrPreferRuleDefinition.buildRejectOrPreferRuleDefinition)({
142
+ description: 'Reports use of `any` or `*` type',
143
+ overrideSettings: {
144
+ '*': {
145
+ message: 'Prefer a more specific type to `*`',
146
+ replacement: false,
147
+ unifyParentAndChildTypeChecks: true
148
+ },
149
+ any: {
150
+ message: 'Prefer a more specific type to `any`',
151
+ replacement: false,
152
+ unifyParentAndChildTypeChecks: true
153
+ }
154
+ },
155
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header'
156
+ }),
157
+ 'reject-function-type': (0, _buildRejectOrPreferRuleDefinition.buildRejectOrPreferRuleDefinition)({
158
+ description: 'Reports use of `Function` type',
159
+ overrideSettings: {
160
+ Function: {
161
+ message: 'Prefer a more specific type to `Function`',
162
+ replacement: false,
163
+ unifyParentAndChildTypeChecks: true
164
+ }
165
+ },
166
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header'
167
+ }),
168
+ 'require-asterisk-prefix': _requireAsteriskPrefix.default,
169
+ 'require-description': _requireDescription.default,
170
+ 'require-description-complete-sentence': _requireDescriptionCompleteSentence.default,
171
+ 'require-example': _requireExample.default,
172
+ 'require-file-overview': _requireFileOverview.default,
173
+ 'require-hyphen-before-param-description': _requireHyphenBeforeParamDescription.default,
174
+ 'require-jsdoc': _requireJsdoc.default,
175
+ 'require-next-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
176
+ contexts: [{
177
+ comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([name!=""]):not([description!=""]))',
178
+ context: 'any',
179
+ message: '@next should have a description'
180
+ }],
181
+ description: 'Requires a description for `@next` tags',
182
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header'
183
+ }),
184
+ 'require-next-type': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
185
+ contexts: [{
186
+ comment: 'JsdocBlock:has(JsdocTag[tag=next]:not([parsedType.type]))',
187
+ context: 'any',
188
+ message: '@next should have a type'
189
+ }],
190
+ description: 'Requires a type for `@next` tags',
191
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header'
192
+ }),
193
+ 'require-param': _requireParam.default,
194
+ 'require-param-description': _requireParamDescription.default,
195
+ 'require-param-name': _requireParamName.default,
196
+ 'require-param-type': _requireParamType.default,
197
+ 'require-property': _requireProperty.default,
198
+ 'require-property-description': _requirePropertyDescription.default,
199
+ 'require-property-name': _requirePropertyName.default,
200
+ 'require-property-type': _requirePropertyType.default,
201
+ 'require-rejects': _requireRejects.default,
202
+ 'require-returns': _requireReturns.default,
203
+ 'require-returns-check': _requireReturnsCheck.default,
204
+ 'require-returns-description': _requireReturnsDescription.default,
205
+ 'require-returns-type': _requireReturnsType.default,
206
+ 'require-tags': _requireTags.default,
207
+ 'require-template': _requireTemplate.default,
208
+ 'require-template-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
209
+ contexts: [{
210
+ comment: 'JsdocBlock:has(JsdocTag[tag=template]:not([description!=""]))',
211
+ context: 'any',
212
+ message: '@template should have a description'
213
+ }],
214
+ description: 'Requires a description for `@template` tags',
215
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header'
216
+ }),
217
+ 'require-throws': _requireThrows.default,
218
+ 'require-throws-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
219
+ contexts: [{
220
+ comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([description!=""]))',
221
+ context: 'any',
222
+ message: '@throws should have a description'
223
+ }],
224
+ description: 'Requires a description for `@throws` tags',
225
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header'
226
+ }),
227
+ 'require-throws-type': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
228
+ contexts: [{
229
+ comment: 'JsdocBlock:has(JsdocTag[tag=/^(?:throws|exception)$/]:not([parsedType.type]))',
230
+ context: 'any',
231
+ message: '@throws should have a type'
232
+ }],
233
+ description: 'Requires a type for `@throws` tags',
234
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header'
235
+ }),
236
+ 'require-yields': _requireYields.default,
237
+ 'require-yields-check': _requireYieldsCheck.default,
238
+ 'require-yields-description': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
239
+ contexts: [{
240
+ comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([name!=""]):not([description!=""]))',
241
+ context: 'any',
242
+ message: '@yields should have a description'
243
+ }],
244
+ description: 'Requires a description for `@yields` tags',
245
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header'
246
+ }),
247
+ 'require-yields-type': (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
248
+ contexts: [{
249
+ comment: 'JsdocBlock:has(JsdocTag[tag=/^yields?$/]:not([parsedType.type]))',
250
+ context: 'any',
251
+ message: '@yields should have a type'
252
+ }],
253
+ description: 'Requires a type for `@yields` tags',
254
+ url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header'
255
+ }),
256
+ 'sort-tags': _sortTags.default,
257
+ 'tag-lines': _tagLines.default,
258
+ 'text-escaping': _textEscaping.default,
259
+ 'ts-method-signature-style': _tsMethodSignatureStyle.default,
260
+ 'ts-no-empty-object-type': _tsNoEmptyObjectType.default,
261
+ 'ts-no-unnecessary-template-expression': _tsNoUnnecessaryTemplateExpression.default,
262
+ 'ts-prefer-function-type': _tsPreferFunctionType.default,
263
+ 'type-formatting': _typeFormatting.default,
264
+ 'valid-types': _validTypes.default
265
+ };
266
+
267
+ /**
268
+ * @param {"warn"|"error"} warnOrError
269
+ * @param {string} [flatName]
270
+ * @returns {import('eslint').Linter.Config}
271
+ */
272
+ const createRecommendedRuleset = (warnOrError, flatName) => {
273
+ return {
274
+ ...(flatName ? {
275
+ name: 'jsdoc/' + flatName
276
+ } : {}),
277
+ // @ts-expect-error ESLint 8 plugins
278
+ plugins: flatName ? {
279
+ jsdoc: index
280
+ } : ['jsdoc'],
281
+ rules: {
282
+ 'jsdoc/check-access': warnOrError,
283
+ 'jsdoc/check-alignment': warnOrError,
284
+ 'jsdoc/check-examples': 'off',
285
+ 'jsdoc/check-indentation': 'off',
286
+ 'jsdoc/check-line-alignment': 'off',
287
+ 'jsdoc/check-param-names': warnOrError,
288
+ 'jsdoc/check-property-names': warnOrError,
289
+ 'jsdoc/check-syntax': 'off',
290
+ 'jsdoc/check-tag-names': warnOrError,
291
+ 'jsdoc/check-template-names': 'off',
292
+ 'jsdoc/check-types': warnOrError,
293
+ 'jsdoc/check-values': warnOrError,
294
+ 'jsdoc/convert-to-jsdoc-comments': 'off',
295
+ 'jsdoc/empty-tags': warnOrError,
296
+ 'jsdoc/escape-inline-tags': warnOrError,
297
+ 'jsdoc/implements-on-classes': warnOrError,
298
+ 'jsdoc/imports-as-dependencies': 'off',
299
+ 'jsdoc/informative-docs': 'off',
300
+ 'jsdoc/lines-before-block': 'off',
301
+ 'jsdoc/match-description': 'off',
302
+ 'jsdoc/match-name': 'off',
303
+ 'jsdoc/multiline-blocks': warnOrError,
304
+ 'jsdoc/no-bad-blocks': 'off',
305
+ 'jsdoc/no-blank-block-descriptions': 'off',
306
+ 'jsdoc/no-blank-blocks': 'off',
307
+ 'jsdoc/no-defaults': warnOrError,
308
+ 'jsdoc/no-missing-syntax': 'off',
309
+ 'jsdoc/no-multi-asterisks': warnOrError,
310
+ 'jsdoc/no-restricted-syntax': 'off',
311
+ 'jsdoc/no-types': 'off',
312
+ 'jsdoc/no-undefined-types': warnOrError,
313
+ 'jsdoc/prefer-import-tag': 'off',
314
+ 'jsdoc/reject-any-type': warnOrError,
315
+ 'jsdoc/reject-function-type': warnOrError,
316
+ 'jsdoc/require-asterisk-prefix': 'off',
317
+ 'jsdoc/require-description': 'off',
318
+ 'jsdoc/require-description-complete-sentence': 'off',
319
+ 'jsdoc/require-example': 'off',
320
+ 'jsdoc/require-file-overview': 'off',
321
+ 'jsdoc/require-hyphen-before-param-description': 'off',
322
+ 'jsdoc/require-jsdoc': warnOrError,
323
+ 'jsdoc/require-next-description': 'off',
324
+ 'jsdoc/require-next-type': warnOrError,
325
+ 'jsdoc/require-param': warnOrError,
326
+ 'jsdoc/require-param-description': warnOrError,
327
+ 'jsdoc/require-param-name': warnOrError,
328
+ 'jsdoc/require-param-type': warnOrError,
329
+ 'jsdoc/require-property': warnOrError,
330
+ 'jsdoc/require-property-description': warnOrError,
331
+ 'jsdoc/require-property-name': warnOrError,
332
+ 'jsdoc/require-property-type': warnOrError,
333
+ 'jsdoc/require-rejects': 'off',
334
+ 'jsdoc/require-returns': warnOrError,
335
+ 'jsdoc/require-returns-check': warnOrError,
336
+ 'jsdoc/require-returns-description': warnOrError,
337
+ 'jsdoc/require-returns-type': warnOrError,
338
+ 'jsdoc/require-tags': 'off',
339
+ 'jsdoc/require-template': 'off',
340
+ 'jsdoc/require-template-description': 'off',
341
+ 'jsdoc/require-throws': 'off',
342
+ 'jsdoc/require-throws-description': 'off',
343
+ 'jsdoc/require-throws-type': warnOrError,
344
+ 'jsdoc/require-yields': warnOrError,
345
+ 'jsdoc/require-yields-check': warnOrError,
346
+ 'jsdoc/require-yields-description': 'off',
347
+ 'jsdoc/require-yields-type': warnOrError,
348
+ 'jsdoc/sort-tags': 'off',
349
+ 'jsdoc/tag-lines': warnOrError,
350
+ 'jsdoc/text-escaping': 'off',
351
+ 'jsdoc/ts-method-signature-style': 'off',
352
+ 'jsdoc/ts-no-empty-object-type': warnOrError,
353
+ 'jsdoc/ts-no-unnecessary-template-expression': 'off',
354
+ 'jsdoc/ts-prefer-function-type': 'off',
355
+ 'jsdoc/type-formatting': 'off',
356
+ 'jsdoc/valid-types': warnOrError
357
+ }
358
+ };
359
+ };
360
+
361
+ /**
362
+ * @param {"warn"|"error"} warnOrError
363
+ * @param {string} [flatName]
364
+ * @returns {import('eslint').Linter.Config}
365
+ */
366
+ const createRecommendedTypeScriptRuleset = (warnOrError, flatName) => {
367
+ const ruleset = createRecommendedRuleset(warnOrError, flatName);
368
+ return {
369
+ ...ruleset,
370
+ rules: {
371
+ ...ruleset.rules,
372
+ /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
373
+ 'jsdoc/check-tag-names': [warnOrError, {
374
+ typed: true
375
+ }],
376
+ 'jsdoc/no-types': warnOrError,
377
+ 'jsdoc/no-undefined-types': 'off',
378
+ 'jsdoc/require-param-type': 'off',
379
+ 'jsdoc/require-property-type': 'off',
380
+ 'jsdoc/require-returns-type': 'off'
381
+ /* eslint-enable @stylistic/indent */
382
+ }
383
+ };
384
+ };
385
+
386
+ /**
387
+ * @param {"warn"|"error"} warnOrError
388
+ * @param {string} [flatName]
389
+ * @returns {import('eslint').Linter.Config}
390
+ */
391
+ const createRecommendedTsDocRuleset = (warnOrError, flatName) => {
392
+ const ruleset = createRecommendedTypeScriptRuleset(warnOrError, flatName);
393
+ return {
394
+ ...ruleset,
395
+ rules: {
396
+ ...ruleset.rules,
397
+ /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
398
+ 'jsdoc/require-next-type': 'off',
399
+ 'jsdoc/require-throws-type': 'off',
400
+ 'jsdoc/require-yields-type': 'off'
401
+ /* eslint-enable @stylistic/indent */
402
+ }
403
+ };
404
+ };
405
+
406
+ /**
407
+ * @param {"warn"|"error"} warnOrError
408
+ * @param {string} [flatName]
409
+ * @returns {import('eslint').Linter.Config}
410
+ */
411
+ const createRecommendedTypeScriptFlavorRuleset = (warnOrError, flatName) => {
412
+ const ruleset = createRecommendedRuleset(warnOrError, flatName);
413
+ return {
414
+ ...ruleset,
415
+ rules: {
416
+ ...ruleset.rules,
417
+ /* eslint-disable @stylistic/indent -- Extra indent to avoid use by auto-rule-editing */
418
+ 'jsdoc/no-undefined-types': 'off'
419
+ /* eslint-enable @stylistic/indent */
420
+ }
421
+ };
422
+ };
423
+
424
+ /**
425
+ * @param {(string | unknown[])[]} ruleNames
426
+ */
427
+ const createStandaloneRulesetFactory = ruleNames => {
428
+ /**
429
+ * @param {"warn"|"error"} warnOrError
430
+ * @param {string} [flatName]
431
+ * @returns {import('eslint').Linter.Config}
432
+ */
433
+ return (warnOrError, flatName) => {
434
+ return {
435
+ name: 'jsdoc/' + flatName,
436
+ plugins: {
437
+ jsdoc: index
438
+ },
439
+ rules: Object.fromEntries(ruleNames.map(ruleName => {
440
+ return typeof ruleName === 'string' ? [ruleName, warnOrError] : [ruleName[0], [warnOrError, ...ruleName.slice(1)]];
441
+ }))
442
+ };
443
+ };
444
+ };
445
+ const contentsRules = ['jsdoc/informative-docs', 'jsdoc/match-description', 'jsdoc/no-blank-block-descriptions', 'jsdoc/no-blank-blocks', ['jsdoc/text-escaping', {
446
+ escapeHTML: true
447
+ }]];
448
+ const createContentsTypescriptRuleset = createStandaloneRulesetFactory(contentsRules);
449
+ const createContentsTypescriptFlavorRuleset = createStandaloneRulesetFactory(contentsRules);
450
+ const logicalRules = ['jsdoc/check-access', 'jsdoc/check-param-names', 'jsdoc/check-property-names', 'jsdoc/check-syntax', 'jsdoc/check-tag-names', 'jsdoc/check-template-names', 'jsdoc/check-types', 'jsdoc/check-values', 'jsdoc/empty-tags', 'jsdoc/escape-inline-tags', 'jsdoc/implements-on-classes', 'jsdoc/require-returns-check', 'jsdoc/require-yields-check', 'jsdoc/no-bad-blocks', 'jsdoc/no-defaults', 'jsdoc/no-types', 'jsdoc/no-undefined-types', 'jsdoc/valid-types'];
451
+ const createLogicalTypescriptRuleset = createStandaloneRulesetFactory(logicalRules);
452
+ const createLogicalTypescriptFlavorRuleset = createStandaloneRulesetFactory(logicalRules);
453
+ const requirementsRules = ['jsdoc/require-example', 'jsdoc/require-jsdoc', 'jsdoc/require-next-type', 'jsdoc/require-param', 'jsdoc/require-param-description', 'jsdoc/require-param-name', 'jsdoc/require-property', 'jsdoc/require-property-description', 'jsdoc/require-property-name', 'jsdoc/require-returns', 'jsdoc/require-returns-description', 'jsdoc/require-throws-type', 'jsdoc/require-yields', 'jsdoc/require-yields-type'];
454
+ const createRequirementsTypeScriptRuleset = createStandaloneRulesetFactory(requirementsRules);
455
+ const createRequirementsTypeScriptFlavorRuleset = createStandaloneRulesetFactory([...requirementsRules, 'jsdoc/require-param-type', 'jsdoc/require-property-type', 'jsdoc/require-returns-type', 'jsdoc/require-template']);
456
+ const stylisticRules = ['jsdoc/check-alignment', 'jsdoc/check-line-alignment', 'jsdoc/lines-before-block', 'jsdoc/multiline-blocks', 'jsdoc/no-multi-asterisks', 'jsdoc/require-asterisk-prefix', ['jsdoc/require-hyphen-before-param-description', 'never'], 'jsdoc/tag-lines'];
457
+ const createStylisticTypeScriptRuleset = createStandaloneRulesetFactory(stylisticRules);
458
+ const createStylisticTypeScriptFlavorRuleset = createStandaloneRulesetFactory(stylisticRules);
459
+
460
+ /* c8 ignore next 3 -- TS */
461
+ if (!index.configs) {
462
+ throw new Error('TypeScript guard');
463
+ }
464
+ index.configs.recommended = createRecommendedRuleset('warn');
465
+ index.configs['recommended-error'] = createRecommendedRuleset('error');
466
+ index.configs['recommended-typescript'] = createRecommendedTypeScriptRuleset('warn');
467
+ index.configs['recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error');
468
+ index.configs['recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn');
469
+ index.configs['recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error');
470
+ index.configs['recommended-tsdoc'] = createRecommendedTsDocRuleset('warn');
471
+ index.configs['recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error');
472
+ index.configs['flat/recommended'] = createRecommendedRuleset('warn', 'flat/recommended');
473
+ index.configs['flat/recommended-error'] = createRecommendedRuleset('error', 'flat/recommended-error');
474
+ index.configs['flat/recommended-typescript'] = createRecommendedTypeScriptRuleset('warn', 'flat/recommended-typescript');
475
+ index.configs['flat/recommended-typescript-error'] = createRecommendedTypeScriptRuleset('error', 'flat/recommended-typescript-error');
476
+ index.configs['flat/recommended-typescript-flavor'] = createRecommendedTypeScriptFlavorRuleset('warn', 'flat/recommended-typescript-flavor');
477
+ index.configs['flat/recommended-typescript-flavor-error'] = createRecommendedTypeScriptFlavorRuleset('error', 'flat/recommended-typescript-flavor-error');
478
+ index.configs['flat/recommended-tsdoc'] = createRecommendedTsDocRuleset('warn', 'flat/recommended-tsdoc');
479
+ index.configs['flat/recommended-tsdoc-error'] = createRecommendedTsDocRuleset('error', 'flat/recommended-tsdoc-error');
480
+ index.configs['flat/contents-typescript'] = createContentsTypescriptRuleset('warn', 'flat/contents-typescript');
481
+ index.configs['flat/contents-typescript-error'] = createContentsTypescriptRuleset('error', 'flat/contents-typescript-error');
482
+ index.configs['flat/contents-typescript-flavor'] = createContentsTypescriptFlavorRuleset('warn', 'flat/contents-typescript-flavor');
483
+ index.configs['flat/contents-typescript-flavor-error'] = createContentsTypescriptFlavorRuleset('error', 'flat/contents-typescript-error-flavor');
484
+ index.configs['flat/logical-typescript'] = createLogicalTypescriptRuleset('warn', 'flat/logical-typescript');
485
+ index.configs['flat/logical-typescript-error'] = createLogicalTypescriptRuleset('error', 'flat/logical-typescript-error');
486
+ index.configs['flat/logical-typescript-flavor'] = createLogicalTypescriptFlavorRuleset('warn', 'flat/logical-typescript-flavor');
487
+ index.configs['flat/logical-typescript-flavor-error'] = createLogicalTypescriptFlavorRuleset('error', 'flat/logical-typescript-error-flavor');
488
+ index.configs['flat/requirements-typescript'] = createRequirementsTypeScriptRuleset('warn', 'flat/requirements-typescript');
489
+ index.configs['flat/requirements-typescript-error'] = createRequirementsTypeScriptRuleset('error', 'flat/requirements-typescript-error');
490
+ index.configs['flat/requirements-typescript-flavor'] = createRequirementsTypeScriptFlavorRuleset('warn', 'flat/requirements-typescript-flavor');
491
+ index.configs['flat/requirements-typescript-flavor-error'] = createRequirementsTypeScriptFlavorRuleset('error', 'flat/requirements-typescript-error-flavor');
492
+ index.configs['flat/stylistic-typescript'] = createStylisticTypeScriptRuleset('warn', 'flat/stylistic-typescript');
493
+ index.configs['flat/stylistic-typescript-error'] = createStylisticTypeScriptRuleset('error', 'flat/stylistic-typescript-error');
494
+ index.configs['flat/stylistic-typescript-flavor'] = createStylisticTypeScriptFlavorRuleset('warn', 'flat/stylistic-typescript-flavor');
495
+ index.configs['flat/stylistic-typescript-flavor-error'] = createStylisticTypeScriptFlavorRuleset('error', 'flat/stylistic-typescript-error-flavor');
496
+ index.configs.examples = /** @type {import('eslint').Linter.Config[]} */[{
497
+ files: ['**/*.js'],
498
+ name: 'jsdoc/examples/processor',
499
+ plugins: {
500
+ examples: (0, _getJsdocProcessorPlugin.getJsdocProcessorPlugin)()
501
+ },
502
+ processor: 'examples/examples'
503
+ }, {
504
+ files: ['**/*.md/*.js'],
505
+ name: 'jsdoc/examples/rules',
506
+ rules: {
507
+ // "always" newline rule at end unlikely in sample code
508
+ '@stylistic/eol-last': 0,
509
+ // Often wish to start `@example` code after newline; also may use
510
+ // empty lines for spacing
511
+ '@stylistic/no-multiple-empty-lines': 0,
512
+ // Can generally look nicer to pad a little even if code imposes more stringency
513
+ '@stylistic/padded-blocks': 0,
514
+ '@typescript-eslint/no-unused-vars': 0,
515
+ // Wouldn't generally expect example paths to resolve relative to JS file
516
+ 'import/no-unresolved': 0,
517
+ // Snippets likely too short to always include import/export info
518
+ 'import/unambiguous': 0,
519
+ 'jsdoc/require-file-overview': 0,
520
+ // The end of a multiline comment would end the comment the example is in.
521
+ 'jsdoc/require-jsdoc': 0,
522
+ // See import/no-unresolved
523
+ 'n/no-missing-import': 0,
524
+ 'n/no-missing-require': 0,
525
+ // Unlikely to have inadvertent debugging within examples
526
+ 'no-console': 0,
527
+ /* c8 ignore next 11 -- Coercion should work */
528
+ ...(_semver.default.gte(_semver.default.coerce(_eslint.ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
529
+ // "always" newline rule at end unlikely in sample code
530
+ 'eol-last': 0,
531
+ // Often wish to start `@example` code after newline; also may use
532
+ // empty lines for spacing
533
+ 'no-multiple-empty-lines': 0,
534
+ // Can generally look nicer to pad a little even if code imposes more stringency
535
+ 'padded-blocks': 0
536
+ }),
537
+ // Many variables in examples will be `undefined`
538
+ 'no-undef': 0,
539
+ // Common to define variables for clarity without always using them
540
+ 'no-unused-vars': 0,
541
+ // See import/no-unresolved
542
+ 'node/no-missing-import': 0,
543
+ 'node/no-missing-require': 0
544
+ }
545
+ }];
546
+ index.configs['default-expressions'] = /** @type {import('eslint').Linter.Config[]} */[{
547
+ files: ['**/*.js'],
548
+ name: 'jsdoc/default-expressions/processor',
549
+ plugins: {
550
+ examples: (0, _getJsdocProcessorPlugin.getJsdocProcessorPlugin)({
551
+ checkDefaults: true,
552
+ checkParams: true,
553
+ checkProperties: true
554
+ })
555
+ },
556
+ processor: 'examples/examples'
557
+ }, {
558
+ files: ['**/*.jsdoc-defaults', '**/*.jsdoc-params', '**/*.jsdoc-properties'],
559
+ name: 'jsdoc/default-expressions/rules',
560
+ rules: {
561
+ ...index.configs.examples[1].rules,
562
+ '@stylistic/quotes': ['error', 'double'],
563
+ '@stylistic/semi': ['error', 'never'],
564
+ '@typescript-eslint/no-unused-expressions': 0,
565
+ 'chai-friendly/no-unused-expressions': 0,
566
+ 'no-empty-function': 0,
567
+ 'no-new': 0,
568
+ 'no-unused-expressions': 0,
569
+ /* c8 ignore next 8 -- Coercion should work */
570
+ ...(_semver.default.gte(_semver.default.coerce(_eslint.ESLint.version) ?? '9.0.0', '9.0.0') ? {} : {
571
+ quotes: ['error', 'double'],
572
+ semi: ['error', 'never']
573
+ }),
574
+ strict: 0
575
+ }
576
+ }];
577
+ index.configs['examples-and-default-expressions'] = /** @type {import('eslint').Linter.Config[]} */[{
578
+ name: 'jsdoc/examples-and-default-expressions',
579
+ plugins: {
580
+ examples: (0, _getJsdocProcessorPlugin.getJsdocProcessorPlugin)({
581
+ checkDefaults: true,
582
+ checkParams: true,
583
+ checkProperties: true
584
+ })
585
+ }
586
+ }, ...index.configs.examples.map(config => {
587
+ return {
588
+ ...config,
589
+ plugins: {}
590
+ };
591
+ }), ...index.configs['default-expressions'].map(config => {
592
+ return {
593
+ ...config,
594
+ plugins: {}
595
+ };
596
+ })];
597
+ index.configs['flat/recommended-mixed'] = [{
598
+ ...index.configs['flat/recommended-typescript-flavor'],
599
+ files: ['**/*.{js,jsx,cjs,mjs}']
600
+ }, {
601
+ ...index.configs['flat/recommended-typescript'],
602
+ files: ['**/*.{ts,tsx,cts,mts}']
603
+ }];
604
+ var _default = exports.default = index;
605
+ /**
606
+ * @type {((
607
+ * cfg?: import('eslint').Linter.Config & {
608
+ * config?: `flat/${ConfigGroups}${ConfigVariants}${ErrorLevelVariants}`,
609
+ * mergeSettings?: boolean,
610
+ * settings?: Partial<import('./iterateJsdoc.js').Settings>,
611
+ * rules?: {[key in keyof import('./rules.d.ts').Rules]?: import('eslint').Linter.RuleEntry<import('./rules.d.ts').Rules[key]>},
612
+ * extraRuleDefinitions?: {
613
+ * forbid?: {
614
+ * [contextName: string]: {
615
+ * description?: string,
616
+ * url?: string,
617
+ * contexts: (string|{
618
+ * message: string,
619
+ * context: string,
620
+ * comment: string
621
+ * })[]
622
+ * }
623
+ * },
624
+ * preferTypes?: {
625
+ * [typeName: string]: {
626
+ * description: string,
627
+ * overrideSettings: {
628
+ * [typeNodeName: string]: {
629
+ * message: string,
630
+ * replacement?: false|string,
631
+ * unifyParentAndChildTypeChecks?: boolean,
632
+ * }
633
+ * },
634
+ * url: string,
635
+ * }
636
+ * }
637
+ * }
638
+ * }
639
+ * ) => import('eslint').Linter.Config)}
640
+ */
641
+ const jsdoc = function (cfg) {
642
+ /** @type {import('eslint').Linter.Config} */
643
+ let outputConfig = {
644
+ plugins: {
645
+ jsdoc: index
646
+ }
647
+ };
648
+ if (cfg) {
649
+ if (cfg.config) {
650
+ // @ts-expect-error Security check
651
+ if (cfg.config === '__proto__') {
652
+ throw new TypeError('Disallowed config value');
653
+ }
654
+ outputConfig = /** @type {import('eslint').Linter.Config} */index.configs[cfg.config];
655
+ }
656
+ if (cfg.rules) {
657
+ outputConfig.rules = {
658
+ ...outputConfig.rules,
659
+ ...cfg.rules
660
+ };
661
+ }
662
+ if (cfg.plugins) {
663
+ outputConfig.plugins = {
664
+ ...outputConfig.plugins,
665
+ ...cfg.plugins
666
+ };
667
+ }
668
+ if (cfg.name) {
669
+ outputConfig.name = cfg.name;
670
+ }
671
+ if (cfg.basePath) {
672
+ outputConfig.basePath = cfg.basePath;
673
+ }
674
+ if (cfg.files) {
675
+ outputConfig.files = cfg.files;
676
+ }
677
+ if (cfg.ignores) {
678
+ outputConfig.ignores = cfg.ignores;
679
+ }
680
+ if (cfg.language) {
681
+ outputConfig.language = cfg.language;
682
+ }
683
+ if (cfg.languageOptions) {
684
+ outputConfig.languageOptions = cfg.languageOptions;
685
+ }
686
+ if (cfg.linterOptions) {
687
+ outputConfig.linterOptions = cfg.linterOptions;
688
+ }
689
+ if (cfg.processor) {
690
+ outputConfig.processor = cfg.processor;
691
+ }
692
+ if (cfg.extraRuleDefinitions) {
693
+ if (!outputConfig.plugins?.jsdoc?.rules) {
694
+ throw new Error('JSDoc plugin required for `extraRuleDefinitions`');
695
+ }
696
+ if (cfg.extraRuleDefinitions.forbid) {
697
+ for (const [contextName, {
698
+ contexts,
699
+ description,
700
+ url
701
+ }] of Object.entries(cfg.extraRuleDefinitions.forbid)) {
702
+ outputConfig.plugins.jsdoc.rules[`forbid-${contextName}`] = (0, _buildForbidRuleDefinition.buildForbidRuleDefinition)({
703
+ contextName,
704
+ contexts,
705
+ description,
706
+ url
707
+ });
708
+ }
709
+ }
710
+ if (cfg.extraRuleDefinitions.preferTypes) {
711
+ for (const [typeName, {
712
+ description,
713
+ overrideSettings,
714
+ url
715
+ }] of Object.entries(cfg.extraRuleDefinitions.preferTypes)) {
716
+ outputConfig.plugins.jsdoc.rules[`prefer-type-${typeName}`] = (0, _buildRejectOrPreferRuleDefinition.buildRejectOrPreferRuleDefinition)({
717
+ description,
718
+ overrideSettings,
719
+ typeName,
720
+ url
721
+ });
722
+ }
723
+ }
724
+ }
725
+ }
726
+ outputConfig.settings = {
727
+ jsdoc: cfg?.mergeSettings === false ? cfg.settings : (0, _objectDeepMerge.merge)({}, cfg?.settings ?? {}, cfg?.config?.includes('recommended') ? {
728
+ // We may need to drop these for "typescript" (non-"flavor") configs,
729
+ // if support is later added: https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html
730
+ structuredTags: {
731
+ next: {
732
+ required: ['type']
733
+ },
734
+ rejects: {
735
+ required: ['type']
736
+ }
737
+ }
738
+ } : {})
739
+ };
740
+ return outputConfig;
741
+ };
742
+ exports.jsdoc = jsdoc;
743
+ //# sourceMappingURL=index.cjs.map