typedoc 0.28.18 → 0.28.20

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 (397) hide show
  1. package/README.md +12 -13
  2. package/bin/typedoc +1 -1
  3. package/dist/browser-locales/fr.d.ts +2 -0
  4. package/dist/browser-locales/fr.js +62 -0
  5. package/dist/browser-utils.js +29 -2
  6. package/dist/cli.js +111 -0
  7. package/dist/index.js +17888 -44
  8. package/dist/models.js +3736 -0
  9. package/dist/node-utils.js +7018 -0
  10. package/dist/serialization.js +430 -0
  11. package/dist/{lib → types}/application-events.d.ts +2 -0
  12. package/dist/{lib → types}/application.d.ts +51 -8
  13. package/dist/{lib → types}/converter/comments/declarationReferenceResolver.d.ts +1 -1
  14. package/dist/{lib → types}/converter/comments/discovery.d.ts +3 -3
  15. package/dist/{lib → types}/converter/comments/index.d.ts +4 -4
  16. package/dist/{lib → types}/converter/comments/lexer.d.ts +1 -1
  17. package/dist/{lib → types}/converter/comments/linkResolver.d.ts +1 -1
  18. package/dist/{lib → types}/converter/comments/parser.d.ts +3 -4
  19. package/dist/{lib → types}/converter/comments/textParser.d.ts +8 -2
  20. package/dist/{lib → types}/converter/components.d.ts +1 -1
  21. package/dist/{lib → types}/converter/context.d.ts +2 -2
  22. package/dist/{lib → types}/converter/converter.d.ts +6 -8
  23. package/dist/{lib → types}/converter/factories/signature.d.ts +1 -1
  24. package/dist/{lib → types}/converter/index.d.ts +1 -0
  25. package/dist/{lib → types}/converter/plugins/CategoryPlugin.d.ts +2 -2
  26. package/dist/{lib → types}/converter/plugins/GroupPlugin.d.ts +2 -3
  27. package/dist/{lib → types}/converter/plugins/IncludePlugin.d.ts +1 -1
  28. package/dist/{lib → types}/converter/plugins/InheritDocPlugin.d.ts +1 -1
  29. package/dist/{lib → types}/converter/plugins/LinkResolverPlugin.d.ts +3 -3
  30. package/dist/{lib → types}/converter/plugins/SourcePlugin.d.ts +1 -2
  31. package/dist/{lib → types}/converter/plugins/TypePlugin.d.ts +1 -1
  32. package/dist/{lib → types}/converter/types.d.ts +1 -1
  33. package/dist/{lib/converter/utils → types/converter/utilities}/reflections.d.ts +1 -1
  34. package/dist/{lib/converter/utils → types/converter/utilities}/repository.d.ts +14 -13
  35. package/dist/{index.d.ts → types/index.d.ts} +15 -16
  36. package/dist/{lib → types}/internationalization/internationalization.d.ts +0 -8
  37. package/dist/types/internationalization/locale-utils.d.ts +3 -0
  38. package/dist/types/internationalization/locales/de.d.ts +368 -0
  39. package/dist/{lib/internationalization/locales/en.d.cts → types/internationalization/locales/en.d.ts} +2 -1
  40. package/dist/types/internationalization/locales/fr.d.ts +346 -0
  41. package/dist/types/internationalization/locales/ja.d.ts +307 -0
  42. package/dist/types/internationalization/locales/ko.d.ts +221 -0
  43. package/dist/types/internationalization/locales/zh.d.ts +452 -0
  44. package/dist/{lib → types}/internationalization/translatable.d.ts +1 -1
  45. package/dist/{lib → types}/models/FileRegistry.d.ts +6 -1
  46. package/dist/{lib → types}/models/ReflectionSymbolId.d.ts +9 -3
  47. package/dist/{lib → types}/models/SourceReference.d.ts +5 -3
  48. package/dist/types/models.d.ts +1 -0
  49. package/dist/types/node-utils.d.ts +1 -0
  50. package/dist/{lib → types}/output/components.d.ts +3 -3
  51. package/dist/{lib → types}/output/events.d.ts +1 -2
  52. package/dist/{lib → types}/output/formatter.d.ts +1 -2
  53. package/dist/{lib → types}/output/output.d.ts +2 -2
  54. package/dist/{lib → types}/output/renderer.d.ts +4 -5
  55. package/dist/{lib → types}/output/router.d.ts +3 -2
  56. package/dist/{lib → types}/output/themes/MarkedPlugin.d.ts +3 -3
  57. package/dist/{lib → types}/output/themes/default/DefaultTheme.d.ts +1 -1
  58. package/dist/{lib → types}/output/themes/default/DefaultThemeRenderContext.d.ts +25 -25
  59. package/dist/{lib → types}/output/themes/default/layouts/default.d.ts +1 -1
  60. package/dist/{lib → types}/output/themes/default/partials/anchor-icon.d.ts +1 -1
  61. package/dist/{lib → types}/output/themes/default/partials/breadcrumb.d.ts +1 -1
  62. package/dist/{lib → types}/output/themes/default/partials/comment.d.ts +1 -1
  63. package/dist/{lib → types}/output/themes/default/partials/header.d.ts +1 -1
  64. package/dist/{lib → types}/output/themes/default/partials/hierarchy.d.ts +1 -1
  65. package/dist/{lib → types}/output/themes/default/partials/icon.d.ts +1 -1
  66. package/dist/{lib → types}/output/themes/default/partials/index.d.ts +1 -1
  67. package/dist/{lib → types}/output/themes/default/partials/member.d.ts +1 -1
  68. package/dist/{lib → types}/output/themes/default/partials/member.getterSetter.d.ts +1 -1
  69. package/dist/{lib → types}/output/themes/default/partials/member.signature.body.d.ts +1 -1
  70. package/dist/{lib → types}/output/themes/default/partials/member.signature.title.d.ts +2 -2
  71. package/dist/{lib → types}/output/themes/default/partials/member.signatures.d.ts +1 -1
  72. package/dist/{lib → types}/output/themes/default/partials/member.sources.d.ts +1 -1
  73. package/dist/{lib → types}/output/themes/default/partials/members.d.ts +1 -1
  74. package/dist/{lib → types}/output/themes/default/partials/moduleReflection.d.ts +1 -1
  75. package/dist/{lib → types}/output/themes/default/partials/navigation.d.ts +1 -1
  76. package/dist/{lib → types}/output/themes/default/partials/reflectionPreview.d.ts +1 -1
  77. package/dist/{lib → types}/output/themes/default/partials/toolbar.d.ts +1 -1
  78. package/dist/{lib → types}/output/themes/default/partials/type.d.ts +2 -2
  79. package/dist/{lib → types}/output/themes/default/partials/typeDetails.d.ts +2 -2
  80. package/dist/{lib → types}/output/themes/default/partials/typeParameters.d.ts +1 -1
  81. package/dist/{lib → types}/output/themes/default/templates/document.d.ts +1 -1
  82. package/dist/{lib → types}/output/themes/default/templates/hierarchy.d.ts +1 -1
  83. package/dist/{lib → types}/output/themes/default/templates/index.d.ts +1 -1
  84. package/dist/{lib → types}/output/themes/default/templates/reflection.d.ts +1 -1
  85. package/dist/{lib → types}/output/themes/lib.d.ts +1 -1
  86. package/dist/types/serialization.d.ts +1 -0
  87. package/dist/types/tsconfig.tsbuildinfo +1 -0
  88. package/dist/{lib → types}/utils/ValidatingFileRegistry.d.ts +1 -1
  89. package/dist/{lib → types}/utils/entry-point.d.ts +2 -2
  90. package/dist/{lib → types}/utils/general.d.ts +3 -0
  91. package/dist/types/utils/index.d.ts +22 -0
  92. package/dist/{lib → types}/utils/options/declaration.d.ts +2 -1
  93. package/dist/{lib → types}/utils/options/defaults.d.ts +1 -1
  94. package/dist/{lib → types}/utils/options/index.d.ts +2 -1
  95. package/dist/{lib → types}/utils/options/options.d.ts +1 -1
  96. package/dist/{lib → types}/utils/options/tsdoc-defaults.d.ts +1 -1
  97. package/dist/{lib → types}/utils/reflections.d.ts +1 -1
  98. package/dist/{lib → types}/utils/sort.d.ts +1 -2
  99. package/dist/{lib → types}/utils-common/general.d.ts +4 -4
  100. package/dist/{lib → types}/utils-common/jsx.elements.d.ts +16 -0
  101. package/dist/types/utils-common.d.ts +1 -0
  102. package/dist/{lib → types}/validation/documentation.d.ts +1 -1
  103. package/dist/{lib → types}/validation/exports.d.ts +1 -1
  104. package/dist/types/validation/filePaths.d.ts +3 -0
  105. package/dist/{lib → types}/validation/links.d.ts +1 -1
  106. package/dist/{lib → types}/validation/unusedMergeModuleWith.d.ts +1 -1
  107. package/dist/utils-common.js +1311 -0
  108. package/package.json +46 -37
  109. package/static/main.js +4 -4
  110. package/static/style.css +18 -3
  111. package/tsdoc.json +4 -0
  112. package/typedoc-config.schema.json +2 -0
  113. package/dist/lib/application-events.js +0 -5
  114. package/dist/lib/application.js +0 -716
  115. package/dist/lib/cli.js +0 -111
  116. package/dist/lib/converter/comments/blockLexer.js +0 -391
  117. package/dist/lib/converter/comments/declarationReferenceResolver.js +0 -218
  118. package/dist/lib/converter/comments/discovery.js +0 -563
  119. package/dist/lib/converter/comments/index.js +0 -241
  120. package/dist/lib/converter/comments/lexer.js +0 -10
  121. package/dist/lib/converter/comments/lineLexer.js +0 -279
  122. package/dist/lib/converter/comments/linkResolver.js +0 -186
  123. package/dist/lib/converter/comments/parser.js +0 -538
  124. package/dist/lib/converter/comments/rawLexer.js +0 -218
  125. package/dist/lib/converter/comments/tagName.js +0 -58
  126. package/dist/lib/converter/comments/textParser.js +0 -372
  127. package/dist/lib/converter/components.js +0 -3
  128. package/dist/lib/converter/context.js +0 -311
  129. package/dist/lib/converter/convert-expression.js +0 -58
  130. package/dist/lib/converter/converter-events.js +0 -13
  131. package/dist/lib/converter/converter.js +0 -705
  132. package/dist/lib/converter/factories/index-signature.js +0 -50
  133. package/dist/lib/converter/factories/signature.js +0 -353
  134. package/dist/lib/converter/factories/symbol-id.js +0 -50
  135. package/dist/lib/converter/index.js +0 -3
  136. package/dist/lib/converter/jsdoc.js +0 -135
  137. package/dist/lib/converter/plugins/CategoryPlugin.js +0 -278
  138. package/dist/lib/converter/plugins/CommentPlugin.js +0 -770
  139. package/dist/lib/converter/plugins/GroupPlugin.js +0 -281
  140. package/dist/lib/converter/plugins/ImplementsPlugin.js +0 -438
  141. package/dist/lib/converter/plugins/IncludePlugin.js +0 -254
  142. package/dist/lib/converter/plugins/InheritDocPlugin.js +0 -220
  143. package/dist/lib/converter/plugins/LinkResolverPlugin.js +0 -88
  144. package/dist/lib/converter/plugins/MergeModuleWithPlugin.js +0 -50
  145. package/dist/lib/converter/plugins/PackagePlugin.js +0 -188
  146. package/dist/lib/converter/plugins/SourcePlugin.js +0 -215
  147. package/dist/lib/converter/plugins/TypePlugin.js +0 -108
  148. package/dist/lib/converter/plugins/index.js +0 -10
  149. package/dist/lib/converter/symbols.js +0 -861
  150. package/dist/lib/converter/types.js +0 -833
  151. package/dist/lib/converter/utils/nodes.js +0 -26
  152. package/dist/lib/converter/utils/reflections.js +0 -17
  153. package/dist/lib/converter/utils/repository.js +0 -295
  154. package/dist/lib/converter/utils/symbols.js +0 -12
  155. package/dist/lib/debug/index.js +0 -2
  156. package/dist/lib/debug/reflectionLifetimes.js +0 -27
  157. package/dist/lib/debug/rendererUrls.js +0 -68
  158. package/dist/lib/internationalization/index.js +0 -7
  159. package/dist/lib/internationalization/internationalization.js +0 -64
  160. package/dist/lib/internationalization/locale-utils.cjs +0 -8
  161. package/dist/lib/internationalization/locale-utils.d.cts +0 -8
  162. package/dist/lib/internationalization/locales/de.cjs +0 -401
  163. package/dist/lib/internationalization/locales/de.d.cts +0 -368
  164. package/dist/lib/internationalization/locales/en.cjs +0 -411
  165. package/dist/lib/internationalization/locales/ja.cjs +0 -320
  166. package/dist/lib/internationalization/locales/ja.d.cts +0 -307
  167. package/dist/lib/internationalization/locales/ko.cjs +0 -233
  168. package/dist/lib/internationalization/locales/ko.d.cts +0 -221
  169. package/dist/lib/internationalization/locales/zh.cjs +0 -488
  170. package/dist/lib/internationalization/locales/zh.d.cts +0 -452
  171. package/dist/lib/internationalization/translatable.js +0 -8
  172. package/dist/lib/models/Comment.js +0 -534
  173. package/dist/lib/models/ContainerReflection.js +0 -159
  174. package/dist/lib/models/DeclarationReflection.js +0 -287
  175. package/dist/lib/models/DocumentReflection.js +0 -66
  176. package/dist/lib/models/FileRegistry.js +0 -133
  177. package/dist/lib/models/ParameterReflection.js +0 -39
  178. package/dist/lib/models/ProjectReflection.js +0 -417
  179. package/dist/lib/models/ReferenceReflection.js +0 -85
  180. package/dist/lib/models/Reflection.js +0 -495
  181. package/dist/lib/models/ReflectionCategory.js +0 -56
  182. package/dist/lib/models/ReflectionGroup.js +0 -72
  183. package/dist/lib/models/ReflectionSymbolId.js +0 -85
  184. package/dist/lib/models/SignatureReflection.js +0 -96
  185. package/dist/lib/models/SourceReference.js +0 -50
  186. package/dist/lib/models/TypeParameterReflection.js +0 -45
  187. package/dist/lib/models/index.js +0 -19
  188. package/dist/lib/models/kind.js +0 -231
  189. package/dist/lib/models/types.js +0 -1296
  190. package/dist/lib/models/utils.js +0 -26
  191. package/dist/lib/models/variant.js +0 -1
  192. package/dist/lib/output/components.js +0 -133
  193. package/dist/lib/output/events.js +0 -195
  194. package/dist/lib/output/formatter.js +0 -660
  195. package/dist/lib/output/index.js +0 -7
  196. package/dist/lib/output/output.js +0 -92
  197. package/dist/lib/output/plugins/AssetsPlugin.js +0 -160
  198. package/dist/lib/output/plugins/HierarchyPlugin.js +0 -65
  199. package/dist/lib/output/plugins/IconsPlugin.js +0 -54
  200. package/dist/lib/output/plugins/JavascriptIndexPlugin.js +0 -222
  201. package/dist/lib/output/plugins/NavigationPlugin.js +0 -23
  202. package/dist/lib/output/plugins/SitemapPlugin.js +0 -82
  203. package/dist/lib/output/plugins/index.js +0 -7
  204. package/dist/lib/output/renderer.js +0 -387
  205. package/dist/lib/output/router.js +0 -520
  206. package/dist/lib/output/theme.js +0 -17
  207. package/dist/lib/output/themes/MarkedPlugin.js +0 -461
  208. package/dist/lib/output/themes/default/DefaultTheme.js +0 -367
  209. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +0 -151
  210. package/dist/lib/output/themes/default/Slugger.js +0 -60
  211. package/dist/lib/output/themes/default/layouts/default.js +0 -89
  212. package/dist/lib/output/themes/default/partials/anchor-icon.js +0 -9
  213. package/dist/lib/output/themes/default/partials/breadcrumb.js +0 -11
  214. package/dist/lib/output/themes/default/partials/comment.js +0 -80
  215. package/dist/lib/output/themes/default/partials/footer.js +0 -37
  216. package/dist/lib/output/themes/default/partials/header.js +0 -39
  217. package/dist/lib/output/themes/default/partials/hierarchy.js +0 -32
  218. package/dist/lib/output/themes/default/partials/icon.js +0 -101
  219. package/dist/lib/output/themes/default/partials/index.js +0 -24
  220. package/dist/lib/output/themes/default/partials/member.declaration.js +0 -35
  221. package/dist/lib/output/themes/default/partials/member.getterSetter.js +0 -12
  222. package/dist/lib/output/themes/default/partials/member.js +0 -36
  223. package/dist/lib/output/themes/default/partials/member.signature.body.js +0 -33
  224. package/dist/lib/output/themes/default/partials/member.signature.title.js +0 -9
  225. package/dist/lib/output/themes/default/partials/member.signatures.js +0 -9
  226. package/dist/lib/output/themes/default/partials/member.sources.js +0 -55
  227. package/dist/lib/output/themes/default/partials/members.js +0 -17
  228. package/dist/lib/output/themes/default/partials/moduleReflection.js +0 -68
  229. package/dist/lib/output/themes/default/partials/navigation.js +0 -144
  230. package/dist/lib/output/themes/default/partials/reflectionPreview.js +0 -26
  231. package/dist/lib/output/themes/default/partials/toolbar.js +0 -13
  232. package/dist/lib/output/themes/default/partials/type.js +0 -9
  233. package/dist/lib/output/themes/default/partials/typeAndParent.js +0 -28
  234. package/dist/lib/output/themes/default/partials/typeDetails.js +0 -284
  235. package/dist/lib/output/themes/default/partials/typeParameters.js +0 -26
  236. package/dist/lib/output/themes/default/templates/document.js +0 -3
  237. package/dist/lib/output/themes/default/templates/hierarchy.js +0 -31
  238. package/dist/lib/output/themes/default/templates/index.js +0 -3
  239. package/dist/lib/output/themes/default/templates/reflection.js +0 -53
  240. package/dist/lib/output/themes/lib.js +0 -218
  241. package/dist/lib/serialization/components.js +0 -1
  242. package/dist/lib/serialization/deserializer.js +0 -235
  243. package/dist/lib/serialization/events.js +0 -18
  244. package/dist/lib/serialization/index.js +0 -4
  245. package/dist/lib/serialization/schema.js +0 -32
  246. package/dist/lib/serialization/serializer.js +0 -65
  247. package/dist/lib/utils/ValidatingFileRegistry.js +0 -52
  248. package/dist/lib/utils/component.js +0 -41
  249. package/dist/lib/utils/compress.js +0 -13
  250. package/dist/lib/utils/declaration-maps.js +0 -51
  251. package/dist/lib/utils/entry-point.js +0 -330
  252. package/dist/lib/utils/fs.js +0 -372
  253. package/dist/lib/utils/general.js +0 -25
  254. package/dist/lib/utils/highlighter.js +0 -150
  255. package/dist/lib/utils/html-entities.js +0 -2329
  256. package/dist/lib/utils/html.js +0 -635
  257. package/dist/lib/utils/index.d.ts +0 -17
  258. package/dist/lib/utils/index.js +0 -15
  259. package/dist/lib/utils/loggers.js +0 -71
  260. package/dist/lib/utils/options/declaration.js +0 -443
  261. package/dist/lib/utils/options/defaults.js +0 -104
  262. package/dist/lib/utils/options/help.js +0 -63
  263. package/dist/lib/utils/options/index.js +0 -4
  264. package/dist/lib/utils/options/options.js +0 -273
  265. package/dist/lib/utils/options/readers/arguments.js +0 -109
  266. package/dist/lib/utils/options/readers/index.js +0 -4
  267. package/dist/lib/utils/options/readers/package-json.js +0 -40
  268. package/dist/lib/utils/options/readers/tsconfig.js +0 -172
  269. package/dist/lib/utils/options/readers/typedoc.js +0 -136
  270. package/dist/lib/utils/options/sources/index.js +0 -1
  271. package/dist/lib/utils/options/sources/typedoc.js +0 -876
  272. package/dist/lib/utils/options/tsdoc-defaults.js +0 -94
  273. package/dist/lib/utils/package-manifest.js +0 -84
  274. package/dist/lib/utils/paths.js +0 -127
  275. package/dist/lib/utils/perf.js +0 -86
  276. package/dist/lib/utils/plugins.js +0 -61
  277. package/dist/lib/utils/reflections.js +0 -64
  278. package/dist/lib/utils/sort.js +0 -153
  279. package/dist/lib/utils/tsconfig.js +0 -60
  280. package/dist/lib/utils/tsutils.js +0 -23
  281. package/dist/lib/utils-common/array.js +0 -152
  282. package/dist/lib/utils-common/declarationReference.js +0 -341
  283. package/dist/lib/utils-common/enum.js +0 -27
  284. package/dist/lib/utils-common/events.js +0 -49
  285. package/dist/lib/utils-common/general.js +0 -22
  286. package/dist/lib/utils-common/hooks.js +0 -90
  287. package/dist/lib/utils-common/i18n.js +0 -39
  288. package/dist/lib/utils-common/index.js +0 -17
  289. package/dist/lib/utils-common/jsx.elements.js +0 -3
  290. package/dist/lib/utils-common/jsx.js +0 -187
  291. package/dist/lib/utils-common/logger.js +0 -129
  292. package/dist/lib/utils-common/map.js +0 -63
  293. package/dist/lib/utils-common/minimalSourceFile.js +0 -43
  294. package/dist/lib/utils-common/path.js +0 -130
  295. package/dist/lib/utils-common/set.js +0 -23
  296. package/dist/lib/utils-common/string.js +0 -84
  297. package/dist/lib/utils-common/validation.js +0 -50
  298. package/dist/lib/validation/documentation.js +0 -91
  299. package/dist/lib/validation/exports.js +0 -65
  300. package/dist/lib/validation/links.js +0 -78
  301. package/dist/lib/validation/unusedMergeModuleWith.js +0 -12
  302. /package/dist/{browser-utils.d.ts → types/browser-utils.d.ts} +0 -0
  303. /package/dist/{lib → types}/cli.d.ts +0 -0
  304. /package/dist/{lib → types}/converter/comments/blockLexer.d.ts +0 -0
  305. /package/dist/{lib → types}/converter/comments/lineLexer.d.ts +0 -0
  306. /package/dist/{lib → types}/converter/comments/rawLexer.d.ts +0 -0
  307. /package/dist/{lib → types}/converter/comments/tagName.d.ts +0 -0
  308. /package/dist/{lib → types}/converter/convert-expression.d.ts +0 -0
  309. /package/dist/{lib → types}/converter/converter-events.d.ts +0 -0
  310. /package/dist/{lib → types}/converter/factories/index-signature.d.ts +0 -0
  311. /package/dist/{lib → types}/converter/factories/symbol-id.d.ts +0 -0
  312. /package/dist/{lib → types}/converter/jsdoc.d.ts +0 -0
  313. /package/dist/{lib → types}/converter/plugins/CommentPlugin.d.ts +0 -0
  314. /package/dist/{lib → types}/converter/plugins/ImplementsPlugin.d.ts +0 -0
  315. /package/dist/{lib → types}/converter/plugins/MergeModuleWithPlugin.d.ts +0 -0
  316. /package/dist/{lib → types}/converter/plugins/PackagePlugin.d.ts +0 -0
  317. /package/dist/{lib → types}/converter/plugins/index.d.ts +0 -0
  318. /package/dist/{lib → types}/converter/symbols.d.ts +0 -0
  319. /package/dist/{lib/converter/utils → types/converter/utilities}/nodes.d.ts +0 -0
  320. /package/dist/{lib/converter/utils → types/converter/utilities}/symbols.d.ts +0 -0
  321. /package/dist/{lib → types}/debug/index.d.ts +0 -0
  322. /package/dist/{lib → types}/debug/reflectionLifetimes.d.ts +0 -0
  323. /package/dist/{lib → types}/debug/rendererUrls.d.ts +0 -0
  324. /package/dist/{lib → types}/internationalization/index.d.ts +0 -0
  325. /package/dist/{lib → types}/models/Comment.d.ts +0 -0
  326. /package/dist/{lib → types}/models/ContainerReflection.d.ts +0 -0
  327. /package/dist/{lib → types}/models/DeclarationReflection.d.ts +0 -0
  328. /package/dist/{lib → types}/models/DocumentReflection.d.ts +0 -0
  329. /package/dist/{lib → types}/models/ParameterReflection.d.ts +0 -0
  330. /package/dist/{lib → types}/models/ProjectReflection.d.ts +0 -0
  331. /package/dist/{lib → types}/models/ReferenceReflection.d.ts +0 -0
  332. /package/dist/{lib → types}/models/Reflection.d.ts +0 -0
  333. /package/dist/{lib → types}/models/ReflectionCategory.d.ts +0 -0
  334. /package/dist/{lib → types}/models/ReflectionGroup.d.ts +0 -0
  335. /package/dist/{lib → types}/models/SignatureReflection.d.ts +0 -0
  336. /package/dist/{lib → types}/models/TypeParameterReflection.d.ts +0 -0
  337. /package/dist/{lib → types}/models/index.d.ts +0 -0
  338. /package/dist/{lib → types}/models/kind.d.ts +0 -0
  339. /package/dist/{lib → types}/models/types.d.ts +0 -0
  340. /package/dist/{lib → types}/models/utils.d.ts +0 -0
  341. /package/dist/{lib → types}/models/variant.d.ts +0 -0
  342. /package/dist/{lib → types}/output/index.d.ts +0 -0
  343. /package/dist/{lib → types}/output/plugins/AssetsPlugin.d.ts +0 -0
  344. /package/dist/{lib → types}/output/plugins/HierarchyPlugin.d.ts +0 -0
  345. /package/dist/{lib → types}/output/plugins/IconsPlugin.d.ts +0 -0
  346. /package/dist/{lib → types}/output/plugins/JavascriptIndexPlugin.d.ts +0 -0
  347. /package/dist/{lib → types}/output/plugins/NavigationPlugin.d.ts +0 -0
  348. /package/dist/{lib → types}/output/plugins/SitemapPlugin.d.ts +0 -0
  349. /package/dist/{lib → types}/output/plugins/index.d.ts +0 -0
  350. /package/dist/{lib → types}/output/theme.d.ts +0 -0
  351. /package/dist/{lib → types}/output/themes/default/Slugger.d.ts +0 -0
  352. /package/dist/{lib → types}/output/themes/default/partials/footer.d.ts +0 -0
  353. /package/dist/{lib → types}/output/themes/default/partials/member.declaration.d.ts +0 -0
  354. /package/dist/{lib → types}/output/themes/default/partials/typeAndParent.d.ts +0 -0
  355. /package/dist/{lib → types}/serialization/components.d.ts +0 -0
  356. /package/dist/{lib → types}/serialization/deserializer.d.ts +0 -0
  357. /package/dist/{lib → types}/serialization/events.d.ts +0 -0
  358. /package/dist/{lib → types}/serialization/index.d.ts +0 -0
  359. /package/dist/{lib → types}/serialization/schema.d.ts +0 -0
  360. /package/dist/{lib → types}/serialization/serializer.d.ts +0 -0
  361. /package/dist/{lib → types}/utils/component.d.ts +0 -0
  362. /package/dist/{lib → types}/utils/compress.d.ts +0 -0
  363. /package/dist/{lib → types}/utils/declaration-maps.d.ts +0 -0
  364. /package/dist/{lib → types}/utils/fs.d.ts +0 -0
  365. /package/dist/{lib → types}/utils/highlighter.d.ts +0 -0
  366. /package/dist/{lib → types}/utils/html-entities.d.ts +0 -0
  367. /package/dist/{lib → types}/utils/html.d.ts +0 -0
  368. /package/dist/{lib → types}/utils/loggers.d.ts +0 -0
  369. /package/dist/{lib → types}/utils/options/help.d.ts +0 -0
  370. /package/dist/{lib → types}/utils/options/readers/arguments.d.ts +0 -0
  371. /package/dist/{lib → types}/utils/options/readers/index.d.ts +0 -0
  372. /package/dist/{lib → types}/utils/options/readers/package-json.d.ts +0 -0
  373. /package/dist/{lib → types}/utils/options/readers/tsconfig.d.ts +0 -0
  374. /package/dist/{lib → types}/utils/options/readers/typedoc.d.ts +0 -0
  375. /package/dist/{lib → types}/utils/options/sources/index.d.ts +0 -0
  376. /package/dist/{lib → types}/utils/options/sources/typedoc.d.ts +0 -0
  377. /package/dist/{lib → types}/utils/package-manifest.d.ts +0 -0
  378. /package/dist/{lib → types}/utils/paths.d.ts +0 -0
  379. /package/dist/{lib → types}/utils/perf.d.ts +0 -0
  380. /package/dist/{lib → types}/utils/plugins.d.ts +0 -0
  381. /package/dist/{lib → types}/utils/tsconfig.d.ts +0 -0
  382. /package/dist/{lib → types}/utils/tsutils.d.ts +0 -0
  383. /package/dist/{lib → types}/utils-common/array.d.ts +0 -0
  384. /package/dist/{lib → types}/utils-common/declarationReference.d.ts +0 -0
  385. /package/dist/{lib → types}/utils-common/enum.d.ts +0 -0
  386. /package/dist/{lib → types}/utils-common/events.d.ts +0 -0
  387. /package/dist/{lib → types}/utils-common/hooks.d.ts +0 -0
  388. /package/dist/{lib → types}/utils-common/i18n.d.ts +0 -0
  389. /package/dist/{lib → types}/utils-common/index.d.ts +0 -0
  390. /package/dist/{lib → types}/utils-common/jsx.d.ts +0 -0
  391. /package/dist/{lib → types}/utils-common/logger.d.ts +0 -0
  392. /package/dist/{lib → types}/utils-common/map.d.ts +0 -0
  393. /package/dist/{lib → types}/utils-common/minimalSourceFile.d.ts +0 -0
  394. /package/dist/{lib → types}/utils-common/path.d.ts +0 -0
  395. /package/dist/{lib → types}/utils-common/set.d.ts +0 -0
  396. /package/dist/{lib → types}/utils-common/string.d.ts +0 -0
  397. /package/dist/{lib → types}/utils-common/validation.d.ts +0 -0
@@ -1,563 +0,0 @@
1
- import ts from "typescript";
2
- import { ReflectionKind } from "../../models/index.js";
3
- import { CommentStyle } from "../../utils/options/declaration.js";
4
- import { nicePath } from "../../utils/paths.js";
5
- import { ok } from "assert";
6
- import { assertNever, filter, firstDefined, i18n } from "#utils";
7
- import { resolveAliasedSymbol } from "../utils/symbols.js";
8
- const variablePropertyKinds = [
9
- ts.SyntaxKind.PropertyDeclaration,
10
- ts.SyntaxKind.PropertySignature,
11
- ts.SyntaxKind.BinaryExpression,
12
- ts.SyntaxKind.PropertyAssignment,
13
- ts.SyntaxKind.ShorthandPropertyAssignment,
14
- // class X { constructor(/** Comment */ readonly z: string) }
15
- ts.SyntaxKind.Parameter,
16
- // Variable values
17
- ts.SyntaxKind.VariableDeclaration,
18
- ts.SyntaxKind.BindingElement,
19
- ts.SyntaxKind.ExportAssignment,
20
- ts.SyntaxKind.PropertyAccessExpression,
21
- ];
22
- // Note: This does NOT include JSDoc syntax kinds. This is important!
23
- // Comments from @typedef and @callback tags are handled specially by
24
- // the JSDoc converter because we only want part of the comment when
25
- // getting them.
26
- // This also does NOT include kinds which should be checked after the
27
- // first kind/kinds have been checked for a comment.
28
- const wantedKinds = {
29
- [ReflectionKind.Project]: [
30
- ts.SyntaxKind.SourceFile,
31
- ts.SyntaxKind.ModuleDeclaration,
32
- ],
33
- [ReflectionKind.Module]: [
34
- ts.SyntaxKind.SourceFile,
35
- ts.SyntaxKind.ModuleDeclaration,
36
- ],
37
- [ReflectionKind.Namespace]: [
38
- ts.SyntaxKind.ModuleDeclaration,
39
- ts.SyntaxKind.SourceFile,
40
- ts.SyntaxKind.BindingElement,
41
- ts.SyntaxKind.ExportSpecifier,
42
- ts.SyntaxKind.NamespaceExport,
43
- ],
44
- [ReflectionKind.Enum]: [
45
- ts.SyntaxKind.EnumDeclaration,
46
- ],
47
- [ReflectionKind.EnumMember]: [
48
- ts.SyntaxKind.EnumMember,
49
- ],
50
- [ReflectionKind.Variable]: variablePropertyKinds,
51
- [ReflectionKind.Function]: [
52
- ts.SyntaxKind.FunctionDeclaration,
53
- ts.SyntaxKind.BindingElement,
54
- ts.SyntaxKind.VariableDeclaration,
55
- ts.SyntaxKind.ExportAssignment,
56
- ts.SyntaxKind.PropertyAccessExpression,
57
- ts.SyntaxKind.PropertyDeclaration,
58
- ts.SyntaxKind.PropertyAssignment,
59
- ts.SyntaxKind.ShorthandPropertyAssignment,
60
- ],
61
- [ReflectionKind.Class]: [
62
- ts.SyntaxKind.ClassDeclaration,
63
- ts.SyntaxKind.BindingElement,
64
- ],
65
- [ReflectionKind.Interface]: [
66
- ts.SyntaxKind.InterfaceDeclaration,
67
- ],
68
- [ReflectionKind.Constructor]: [ts.SyntaxKind.Constructor],
69
- [ReflectionKind.Property]: variablePropertyKinds,
70
- [ReflectionKind.Method]: [
71
- ts.SyntaxKind.FunctionDeclaration,
72
- ts.SyntaxKind.MethodDeclaration,
73
- ],
74
- [ReflectionKind.CallSignature]: [
75
- ts.SyntaxKind.FunctionDeclaration,
76
- ts.SyntaxKind.VariableDeclaration,
77
- ts.SyntaxKind.MethodDeclaration,
78
- ts.SyntaxKind.MethodDeclaration,
79
- ts.SyntaxKind.PropertyDeclaration,
80
- ts.SyntaxKind.PropertySignature,
81
- ts.SyntaxKind.CallSignature,
82
- ],
83
- [ReflectionKind.IndexSignature]: [ts.SyntaxKind.IndexSignature],
84
- [ReflectionKind.ConstructorSignature]: [ts.SyntaxKind.ConstructSignature],
85
- [ReflectionKind.Parameter]: [ts.SyntaxKind.Parameter],
86
- [ReflectionKind.TypeLiteral]: [ts.SyntaxKind.TypeLiteral],
87
- [ReflectionKind.TypeParameter]: [ts.SyntaxKind.TypeParameter],
88
- [ReflectionKind.Accessor]: [ts.SyntaxKind.PropertyDeclaration],
89
- [ReflectionKind.GetSignature]: [ts.SyntaxKind.GetAccessor],
90
- [ReflectionKind.SetSignature]: [ts.SyntaxKind.SetAccessor],
91
- [ReflectionKind.TypeAlias]: [
92
- ts.SyntaxKind.TypeAliasDeclaration,
93
- ],
94
- [ReflectionKind.Reference]: [
95
- ts.SyntaxKind.NamespaceExport,
96
- ts.SyntaxKind.ExportSpecifier,
97
- ],
98
- // Non-TS kind, will never have comments.
99
- [ReflectionKind.Document]: [],
100
- };
101
- // These kinds are checked after wantedKinds if wantedKinds doesn't result in
102
- // discovering a comment. This is a rather unfortunate tradeoff between discovering
103
- // comments for values in unusual circumstances (#2970) and avoiding duplicate
104
- // comments being discovered for declaration merging nastiness (#3064)
105
- const backupWantedKinds = {
106
- [ReflectionKind.Project]: [],
107
- [ReflectionKind.Module]: [],
108
- [ReflectionKind.Namespace]: [
109
- // @namespace support
110
- ts.SyntaxKind.VariableDeclaration,
111
- ts.SyntaxKind.BindingElement,
112
- ts.SyntaxKind.ExportAssignment,
113
- ts.SyntaxKind.PropertyAccessExpression,
114
- ts.SyntaxKind.PropertyDeclaration,
115
- ts.SyntaxKind.PropertyAssignment,
116
- ts.SyntaxKind.ShorthandPropertyAssignment,
117
- ],
118
- [ReflectionKind.Enum]: [
119
- ts.SyntaxKind.VariableDeclaration,
120
- ],
121
- [ReflectionKind.EnumMember]: [
122
- // These here so that @enum gets comments
123
- ts.SyntaxKind.PropertyAssignment,
124
- ts.SyntaxKind.PropertySignature,
125
- ],
126
- [ReflectionKind.Variable]: [],
127
- [ReflectionKind.Function]: [
128
- ts.SyntaxKind.FunctionDeclaration,
129
- ts.SyntaxKind.BindingElement,
130
- ts.SyntaxKind.VariableDeclaration,
131
- ts.SyntaxKind.ExportAssignment,
132
- ts.SyntaxKind.PropertyAccessExpression,
133
- ts.SyntaxKind.PropertyDeclaration,
134
- ts.SyntaxKind.PropertyAssignment,
135
- ts.SyntaxKind.ShorthandPropertyAssignment,
136
- ],
137
- [ReflectionKind.Class]: [
138
- // If marked with @class
139
- ts.SyntaxKind.VariableDeclaration,
140
- ts.SyntaxKind.ExportAssignment,
141
- ts.SyntaxKind.FunctionDeclaration,
142
- ],
143
- [ReflectionKind.Interface]: [
144
- ts.SyntaxKind.TypeAliasDeclaration,
145
- ts.SyntaxKind.ClassDeclaration, // type only exports
146
- ],
147
- [ReflectionKind.Constructor]: [],
148
- [ReflectionKind.Property]: [],
149
- [ReflectionKind.Method]: [],
150
- [ReflectionKind.CallSignature]: [],
151
- [ReflectionKind.IndexSignature]: [],
152
- [ReflectionKind.ConstructorSignature]: [],
153
- [ReflectionKind.Parameter]: [],
154
- [ReflectionKind.TypeLiteral]: [],
155
- [ReflectionKind.TypeParameter]: [],
156
- [ReflectionKind.Accessor]: [],
157
- [ReflectionKind.GetSignature]: [],
158
- [ReflectionKind.SetSignature]: [],
159
- [ReflectionKind.TypeAlias]: [
160
- ts.SyntaxKind.FunctionDeclaration, // type only exports
161
- ts.SyntaxKind.VariableDeclaration, // type only exports
162
- ],
163
- [ReflectionKind.Reference]: [],
164
- // Non-TS kind, will never have comments.
165
- [ReflectionKind.Document]: [],
166
- };
167
- export function discoverFileComments(node, commentStyle) {
168
- const text = node.text;
169
- const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos));
170
- const selectedDocComments = comments.filter((ranges) => permittedRange(text, ranges, commentStyle));
171
- return selectedDocComments.map((ranges) => {
172
- return {
173
- file: node,
174
- ranges,
175
- jsDoc: findJsDocForComment(node, ranges),
176
- inheritedFromParentDeclaration: false,
177
- };
178
- });
179
- }
180
- export function discoverNodeComment(node, commentStyle) {
181
- const text = node.getSourceFile().text;
182
- const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos));
183
- comments.reverse();
184
- const selectedDocComment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
185
- if (selectedDocComment) {
186
- return {
187
- file: node.getSourceFile(),
188
- ranges: selectedDocComment,
189
- jsDoc: findJsDocForComment(node, selectedDocComment),
190
- inheritedFromParentDeclaration: false,
191
- };
192
- }
193
- }
194
- function checkCommentDeclarations(commentNodes, reverse, commentStyle) {
195
- const discovered = [];
196
- for (const { node, inheritedFromParentDeclaration } of commentNodes) {
197
- const text = node.getSourceFile().text;
198
- const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos));
199
- if (reverse) {
200
- comments.reverse();
201
- }
202
- const selectedDocComment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
203
- if (selectedDocComment) {
204
- discovered.push({
205
- file: node.getSourceFile(),
206
- ranges: selectedDocComment,
207
- jsDoc: findJsDocForComment(node, selectedDocComment),
208
- inheritedFromParentDeclaration,
209
- });
210
- }
211
- }
212
- return discovered;
213
- }
214
- export function discoverComment(symbol, kind, logger, commentStyle, checker, declarationWarnings) {
215
- const discovered = discoverCommentWorker(symbol, kind, logger, commentStyle, checker, declarationWarnings, wantedKinds[kind]);
216
- if (discovered) {
217
- return discovered;
218
- }
219
- return discoverCommentWorker(symbol, kind, logger, commentStyle, checker, declarationWarnings, backupWantedKinds[kind]);
220
- }
221
- function discoverCommentWorker(symbol, kind, logger, commentStyle, checker, declarationWarnings, wanted) {
222
- if (wanted.length === 0) {
223
- return;
224
- }
225
- // For a module comment, we want the first one defined in the file,
226
- // not the last one, since that will apply to the import or declaration.
227
- const reverse = !symbol.declarations?.some(ts.isSourceFile);
228
- const wantedDeclarations = filter(symbol.declarations, (decl) => wanted.includes(decl.kind));
229
- const commentNodes = wantedDeclarations.flatMap((decl) => declarationToCommentNodes(decl, checker));
230
- // Special behavior here!
231
- // Signatures and symbols have two distinct discovery methods as of TypeDoc 0.26.
232
- // This method discovers comments for symbols, and function-likes will only have
233
- // a symbol comment if there is more than one signature (== more than one declaration)
234
- // and there is a comment on the implementation signature.
235
- if (kind & ReflectionKind.ContainsCallSignatures) {
236
- const canHaveOverloads = wantedDeclarations.some((node) => [
237
- ts.SyntaxKind.FunctionDeclaration,
238
- ts.SyntaxKind.MethodDeclaration,
239
- ts.SyntaxKind.Constructor,
240
- ].includes(node.kind));
241
- const isOverloaded = canHaveOverloads && wantedDeclarations.length > 1;
242
- if (isOverloaded) {
243
- commentNodes.length = 0;
244
- const implementationNode = wantedDeclarations.find((node) => node.body);
245
- if (implementationNode) {
246
- commentNodes.push({
247
- node: implementationNode,
248
- inheritedFromParentDeclaration: false,
249
- });
250
- }
251
- }
252
- else if (canHaveOverloads) {
253
- // Single signature function, function reflection doesn't get a comment,
254
- // the signatures do.
255
- commentNodes.length = 0;
256
- }
257
- else {
258
- // Variable declaration which happens to include signatures.
259
- }
260
- }
261
- const discovered = checkCommentDeclarations(commentNodes, reverse, commentStyle);
262
- switch (discovered.length) {
263
- case 0:
264
- return undefined;
265
- case 1:
266
- return discovered[0];
267
- default: {
268
- if (discovered.filter((n) => !n.inheritedFromParentDeclaration)
269
- .length > 1 &&
270
- (declarationWarnings ||
271
- discovered.some((dc) => !dc.file.isDeclarationFile))) {
272
- logger.warn(i18n.symbol_0_has_multiple_declarations_with_comment(symbol.name));
273
- const locations = discovered.map(({ file, ranges: [{ pos }] }) => {
274
- const path = nicePath(file.fileName);
275
- const line = ts.getLineAndCharacterOfPosition(file, pos).line +
276
- 1;
277
- return `${path}:${line}`;
278
- });
279
- logger.info(i18n.comments_for_0_are_declared_at_1(symbol.name, locations.join("\n\t")));
280
- }
281
- return discovered[0];
282
- }
283
- }
284
- }
285
- export function discoverSignatureComment(declaration, checker, commentStyle) {
286
- for (const { node, inheritedFromParentDeclaration, } of declarationToCommentNodes(declaration, checker)) {
287
- if (ts.isJSDocSignature(node)) {
288
- const comment = node.parent.parent;
289
- ok(ts.isJSDoc(comment));
290
- return {
291
- file: node.getSourceFile(),
292
- ranges: [
293
- {
294
- kind: ts.SyntaxKind.MultiLineCommentTrivia,
295
- pos: comment.pos,
296
- end: comment.end,
297
- },
298
- ],
299
- jsDoc: comment,
300
- inheritedFromParentDeclaration,
301
- };
302
- }
303
- const text = node.getSourceFile().text;
304
- const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos));
305
- comments.reverse();
306
- const comment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
307
- if (comment) {
308
- return {
309
- file: node.getSourceFile(),
310
- ranges: comment,
311
- jsDoc: findJsDocForComment(node, comment),
312
- inheritedFromParentDeclaration,
313
- };
314
- }
315
- }
316
- }
317
- function findJsDocForComment(node, ranges) {
318
- if (ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia) {
319
- const jsDocs = ts
320
- .getJSDocCommentsAndTags(node)
321
- .map((doc) => ts.findAncestor(doc, ts.isJSDoc));
322
- if (ts.isSourceFile(node)) {
323
- if (node.statements.length) {
324
- jsDocs.push(...node.statements[0].getChildren().filter(ts.isJSDoc));
325
- }
326
- }
327
- return jsDocs.find((doc) => doc.pos === ranges[0].pos);
328
- }
329
- }
330
- /**
331
- * Check whether the given module declaration is the topmost.
332
- *
333
- * This function returns TRUE if there is no trailing module defined, in
334
- * the following example this would be the case only for module `C`.
335
- *
336
- * ```
337
- * module A.B.C { }
338
- * ```
339
- *
340
- * @param node The module definition that should be tested.
341
- * @return TRUE if the given node is the topmost module declaration, FALSE otherwise.
342
- */
343
- function isTopmostModuleDeclaration(node) {
344
- return node.getChildren().some(ts.isModuleBlock);
345
- }
346
- /**
347
- * Return the root module declaration of the given module declaration.
348
- *
349
- * In the following example this function would always return module
350
- * `A` no matter which of the modules was passed in.
351
- *
352
- * ```
353
- * module A.B.C { }
354
- * ```
355
- */
356
- function getRootModuleDeclaration(node) {
357
- while (node.parent.kind === ts.SyntaxKind.ModuleDeclaration) {
358
- const parent = node.parent;
359
- if (node.name.pos === parent.name.end + 1) {
360
- node = parent;
361
- }
362
- else {
363
- break;
364
- }
365
- }
366
- return node;
367
- }
368
- function declarationToCommentNodeIgnoringParents(node) {
369
- // ts.SourceFile is a counterexample
370
- if (!node.parent)
371
- return node;
372
- // function foo(x: number)
373
- // ^^^^^^^^^
374
- if (node.kind === ts.SyntaxKind.Parameter) {
375
- return node;
376
- }
377
- // const abc = 123
378
- // ^^^
379
- if (node.parent.kind === ts.SyntaxKind.VariableDeclarationList) {
380
- return node.parent.parent;
381
- }
382
- // const a = () => {}
383
- // ^^^^^^^^
384
- if (node.parent.kind === ts.SyntaxKind.VariableDeclaration) {
385
- return node.parent.parent.parent;
386
- }
387
- // class X { y = () => {} }
388
- // ^^^^^^^^
389
- // function Z() {}
390
- // Z.method = () => {}
391
- // ^^^^^^^^
392
- // export default () => {}
393
- // ^^^^^^^^
394
- if ([
395
- ts.SyntaxKind.PropertyDeclaration,
396
- ts.SyntaxKind.BinaryExpression,
397
- ts.SyntaxKind.ExportAssignment,
398
- ].includes(node.parent.kind)) {
399
- return node.parent;
400
- }
401
- if (ts.isModuleDeclaration(node)) {
402
- if (!isTopmostModuleDeclaration(node)) {
403
- return;
404
- }
405
- else {
406
- return getRootModuleDeclaration(node);
407
- }
408
- }
409
- if (node.kind === ts.SyntaxKind.ExportSpecifier) {
410
- return node.parent.parent;
411
- }
412
- if (ts.SyntaxKind.NamespaceExport === node.kind) {
413
- return node.parent;
414
- }
415
- }
416
- function declarationToCommentNodes(node, checker) {
417
- const commentNode = declarationToCommentNodeIgnoringParents(node);
418
- if (commentNode) {
419
- return [
420
- {
421
- node: commentNode,
422
- inheritedFromParentDeclaration: false,
423
- },
424
- ];
425
- }
426
- const result = [
427
- {
428
- node,
429
- inheritedFromParentDeclaration: false,
430
- },
431
- ];
432
- let overloadIndex = undefined;
433
- if (ts.isMethodDeclaration(node)) {
434
- const symbol = checker.getSymbolAtLocation(node.name || node);
435
- if (symbol) {
436
- overloadIndex = symbol.declarations
437
- ?.filter((d) => d.kind === node.kind)
438
- .indexOf(node);
439
- ok(overloadIndex !== -1, "Should always find declaration");
440
- }
441
- }
442
- const seenSymbols = new Set();
443
- const bases = findBaseOfDeclaration(checker, node, (symbol) => {
444
- if (!seenSymbols.has(symbol)) {
445
- seenSymbols.add(symbol);
446
- if (overloadIndex === undefined) {
447
- return symbol.declarations?.map((node) => declarationToCommentNodeIgnoringParents(node) || node);
448
- }
449
- else if (symbol.declarations?.[overloadIndex]) {
450
- const parentSigNode = symbol.declarations[overloadIndex];
451
- return [
452
- declarationToCommentNodeIgnoringParents(parentSigNode) ||
453
- parentSigNode,
454
- ];
455
- }
456
- }
457
- });
458
- for (const parentCommentNode of bases || []) {
459
- result.push({
460
- node: parentCommentNode,
461
- inheritedFromParentDeclaration: true,
462
- });
463
- }
464
- // #2999 automatically pick up comments from the value symbol for shorthand assignments
465
- if (ts.isShorthandPropertyAssignment(node)) {
466
- const sourceSymbol = checker.getShorthandAssignmentValueSymbol(node);
467
- if (sourceSymbol?.valueDeclaration) {
468
- const commentNode = declarationToCommentNodeIgnoringParents(sourceSymbol.valueDeclaration);
469
- if (commentNode) {
470
- result.push({
471
- node: commentNode,
472
- inheritedFromParentDeclaration: true,
473
- });
474
- }
475
- }
476
- // #3003 even more magic for handling an imported symbol which appears in a shorthand property assignment
477
- const originalSymbol = sourceSymbol && resolveAliasedSymbol(sourceSymbol, checker);
478
- if (originalSymbol !== sourceSymbol && originalSymbol?.valueDeclaration) {
479
- const commentNode = declarationToCommentNodeIgnoringParents(originalSymbol?.valueDeclaration);
480
- if (commentNode) {
481
- result.push({
482
- node: commentNode,
483
- inheritedFromParentDeclaration: true,
484
- });
485
- }
486
- }
487
- }
488
- // With overloaded functions/methods, TypeScript will use the comment on the first signature
489
- // declaration
490
- if ((ts.isFunctionDeclaration(node) || ts.isMethodDeclaration(node)) &&
491
- node.name) {
492
- const symbol = checker.getSymbolAtLocation(node.name);
493
- if (symbol && symbol.declarations[0] !== node) {
494
- result.push({
495
- node: symbol.declarations[0],
496
- inheritedFromParentDeclaration: true,
497
- });
498
- }
499
- }
500
- return result;
501
- }
502
- // Lifted from the TS source, with a couple minor modifications
503
- function findBaseOfDeclaration(checker, declaration, cb) {
504
- const classOrInterfaceDeclaration = declaration.parent?.kind === ts.SyntaxKind.Constructor
505
- ? declaration.parent.parent
506
- : declaration.parent;
507
- if (!classOrInterfaceDeclaration)
508
- return;
509
- const isStaticMember = ts.getCombinedModifierFlags(declaration) & ts.ModifierFlags.Static;
510
- return firstDefined(ts.getAllSuperTypeNodes(classOrInterfaceDeclaration), (superTypeNode) => {
511
- const baseType = checker.getTypeAtLocation(superTypeNode);
512
- const type = isStaticMember && baseType.symbol
513
- ? checker.getTypeOfSymbol(baseType.symbol)
514
- : baseType;
515
- const symbol = checker.getPropertyOfType(type, declaration.symbol.name);
516
- return symbol ? cb(symbol) : undefined;
517
- });
518
- }
519
- /**
520
- * Separate comment ranges into arrays so that multiple line comments are kept together
521
- * and each block comment is left on its own.
522
- */
523
- function collectCommentRanges(ranges) {
524
- const result = [];
525
- let collect = [];
526
- for (const range of ranges || []) {
527
- collect.push(range);
528
- switch (range.kind) {
529
- case ts.SyntaxKind.MultiLineCommentTrivia:
530
- if (collect.length) {
531
- result.push(collect);
532
- collect = [];
533
- }
534
- result.push([range]);
535
- break;
536
- case ts.SyntaxKind.SingleLineCommentTrivia:
537
- collect.push(range);
538
- break;
539
- /* istanbul ignore next */
540
- default:
541
- assertNever(range.kind);
542
- }
543
- }
544
- if (collect.length) {
545
- result.push(collect);
546
- }
547
- return result;
548
- }
549
- function permittedRange(text, ranges, commentStyle) {
550
- switch (commentStyle) {
551
- case CommentStyle.All:
552
- return true;
553
- case CommentStyle.Block:
554
- return ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia;
555
- case CommentStyle.Line:
556
- return ranges[0].kind === ts.SyntaxKind.SingleLineCommentTrivia;
557
- case CommentStyle.JSDoc:
558
- return (ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia &&
559
- text[ranges[0].pos] === "/" &&
560
- text[ranges[0].pos + 1] === "*" &&
561
- text[ranges[0].pos + 2] === "*");
562
- }
563
- }