typedoc 0.28.19 → 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 (396) hide show
  1. package/bin/typedoc +1 -1
  2. package/dist/browser-utils.js +29 -2
  3. package/dist/cli.js +111 -0
  4. package/dist/index.js +17888 -44
  5. package/dist/models.js +3736 -0
  6. package/dist/node-utils.js +7018 -0
  7. package/dist/serialization.js +430 -0
  8. package/dist/{lib → types}/application-events.d.ts +2 -0
  9. package/dist/{lib → types}/application.d.ts +51 -8
  10. package/dist/{lib → types}/converter/comments/declarationReferenceResolver.d.ts +1 -1
  11. package/dist/{lib → types}/converter/comments/discovery.d.ts +3 -3
  12. package/dist/{lib → types}/converter/comments/index.d.ts +4 -4
  13. package/dist/{lib → types}/converter/comments/lexer.d.ts +1 -1
  14. package/dist/{lib → types}/converter/comments/linkResolver.d.ts +1 -1
  15. package/dist/{lib → types}/converter/comments/parser.d.ts +3 -4
  16. package/dist/{lib → types}/converter/comments/textParser.d.ts +8 -2
  17. package/dist/{lib → types}/converter/components.d.ts +1 -1
  18. package/dist/{lib → types}/converter/context.d.ts +2 -2
  19. package/dist/{lib → types}/converter/converter.d.ts +6 -8
  20. package/dist/{lib → types}/converter/factories/signature.d.ts +1 -1
  21. package/dist/{lib → types}/converter/index.d.ts +1 -0
  22. package/dist/{lib → types}/converter/plugins/CategoryPlugin.d.ts +2 -2
  23. package/dist/{lib → types}/converter/plugins/GroupPlugin.d.ts +2 -3
  24. package/dist/{lib → types}/converter/plugins/IncludePlugin.d.ts +1 -1
  25. package/dist/{lib → types}/converter/plugins/InheritDocPlugin.d.ts +1 -1
  26. package/dist/{lib → types}/converter/plugins/LinkResolverPlugin.d.ts +3 -3
  27. package/dist/{lib → types}/converter/plugins/SourcePlugin.d.ts +1 -2
  28. package/dist/{lib → types}/converter/plugins/TypePlugin.d.ts +1 -1
  29. package/dist/{lib → types}/converter/types.d.ts +1 -1
  30. package/dist/{lib/converter/utils → types/converter/utilities}/reflections.d.ts +1 -1
  31. package/dist/{lib/converter/utils → types/converter/utilities}/repository.d.ts +14 -13
  32. package/dist/{index.d.ts → types/index.d.ts} +15 -16
  33. package/dist/{lib → types}/internationalization/internationalization.d.ts +0 -8
  34. package/dist/types/internationalization/locale-utils.d.ts +3 -0
  35. package/dist/types/internationalization/locales/de.d.ts +368 -0
  36. package/dist/{lib/internationalization/locales/en.d.cts → types/internationalization/locales/en.d.ts} +2 -1
  37. package/dist/types/internationalization/locales/fr.d.ts +346 -0
  38. package/dist/types/internationalization/locales/ja.d.ts +307 -0
  39. package/dist/types/internationalization/locales/ko.d.ts +221 -0
  40. package/dist/types/internationalization/locales/zh.d.ts +452 -0
  41. package/dist/{lib → types}/internationalization/translatable.d.ts +1 -1
  42. package/dist/{lib → types}/models/FileRegistry.d.ts +5 -0
  43. package/dist/{lib → types}/models/ReflectionSymbolId.d.ts +9 -3
  44. package/dist/{lib → types}/models/SourceReference.d.ts +5 -3
  45. package/dist/types/models.d.ts +1 -0
  46. package/dist/types/node-utils.d.ts +1 -0
  47. package/dist/{lib → types}/output/components.d.ts +3 -3
  48. package/dist/{lib → types}/output/events.d.ts +1 -2
  49. package/dist/{lib → types}/output/formatter.d.ts +1 -2
  50. package/dist/{lib → types}/output/output.d.ts +2 -2
  51. package/dist/{lib → types}/output/renderer.d.ts +4 -5
  52. package/dist/{lib → types}/output/router.d.ts +2 -2
  53. package/dist/{lib → types}/output/themes/MarkedPlugin.d.ts +3 -3
  54. package/dist/{lib → types}/output/themes/default/DefaultTheme.d.ts +1 -1
  55. package/dist/{lib → types}/output/themes/default/DefaultThemeRenderContext.d.ts +25 -25
  56. package/dist/{lib → types}/output/themes/default/layouts/default.d.ts +1 -1
  57. package/dist/{lib → types}/output/themes/default/partials/anchor-icon.d.ts +1 -1
  58. package/dist/{lib → types}/output/themes/default/partials/breadcrumb.d.ts +1 -1
  59. package/dist/{lib → types}/output/themes/default/partials/comment.d.ts +1 -1
  60. package/dist/{lib → types}/output/themes/default/partials/header.d.ts +1 -1
  61. package/dist/{lib → types}/output/themes/default/partials/hierarchy.d.ts +1 -1
  62. package/dist/{lib → types}/output/themes/default/partials/icon.d.ts +1 -1
  63. package/dist/{lib → types}/output/themes/default/partials/index.d.ts +1 -1
  64. package/dist/{lib → types}/output/themes/default/partials/member.d.ts +1 -1
  65. package/dist/{lib → types}/output/themes/default/partials/member.getterSetter.d.ts +1 -1
  66. package/dist/{lib → types}/output/themes/default/partials/member.signature.body.d.ts +1 -1
  67. package/dist/{lib → types}/output/themes/default/partials/member.signature.title.d.ts +2 -2
  68. package/dist/{lib → types}/output/themes/default/partials/member.signatures.d.ts +1 -1
  69. package/dist/{lib → types}/output/themes/default/partials/member.sources.d.ts +1 -1
  70. package/dist/{lib → types}/output/themes/default/partials/members.d.ts +1 -1
  71. package/dist/{lib → types}/output/themes/default/partials/moduleReflection.d.ts +1 -1
  72. package/dist/{lib → types}/output/themes/default/partials/navigation.d.ts +1 -1
  73. package/dist/{lib → types}/output/themes/default/partials/reflectionPreview.d.ts +1 -1
  74. package/dist/{lib → types}/output/themes/default/partials/toolbar.d.ts +1 -1
  75. package/dist/{lib → types}/output/themes/default/partials/type.d.ts +2 -2
  76. package/dist/{lib → types}/output/themes/default/partials/typeDetails.d.ts +2 -2
  77. package/dist/{lib → types}/output/themes/default/partials/typeParameters.d.ts +1 -1
  78. package/dist/{lib → types}/output/themes/default/templates/document.d.ts +1 -1
  79. package/dist/{lib → types}/output/themes/default/templates/hierarchy.d.ts +1 -1
  80. package/dist/{lib → types}/output/themes/default/templates/index.d.ts +1 -1
  81. package/dist/{lib → types}/output/themes/default/templates/reflection.d.ts +1 -1
  82. package/dist/{lib → types}/output/themes/lib.d.ts +1 -1
  83. package/dist/types/serialization.d.ts +1 -0
  84. package/dist/types/tsconfig.tsbuildinfo +1 -0
  85. package/dist/{lib → types}/utils/ValidatingFileRegistry.d.ts +1 -1
  86. package/dist/{lib → types}/utils/entry-point.d.ts +2 -2
  87. package/dist/{lib → types}/utils/general.d.ts +3 -0
  88. package/dist/types/utils/index.d.ts +22 -0
  89. package/dist/{lib → types}/utils/options/declaration.d.ts +1 -1
  90. package/dist/{lib → types}/utils/options/defaults.d.ts +1 -1
  91. package/dist/{lib → types}/utils/options/index.d.ts +2 -1
  92. package/dist/{lib → types}/utils/options/options.d.ts +1 -1
  93. package/dist/{lib → types}/utils/options/tsdoc-defaults.d.ts +1 -1
  94. package/dist/{lib → types}/utils/reflections.d.ts +1 -1
  95. package/dist/{lib → types}/utils/sort.d.ts +1 -2
  96. package/dist/{lib → types}/utils-common/general.d.ts +4 -4
  97. package/dist/types/utils-common.d.ts +1 -0
  98. package/dist/{lib → types}/validation/documentation.d.ts +1 -1
  99. package/dist/{lib → types}/validation/exports.d.ts +1 -1
  100. package/dist/types/validation/filePaths.d.ts +3 -0
  101. package/dist/{lib → types}/validation/links.d.ts +1 -1
  102. package/dist/{lib → types}/validation/unusedMergeModuleWith.d.ts +1 -1
  103. package/dist/utils-common.js +1311 -0
  104. package/package.json +45 -36
  105. package/static/main.js +1 -1
  106. package/static/style.css +18 -3
  107. package/tsdoc.json +4 -0
  108. package/typedoc-config.schema.json +1 -0
  109. package/dist/lib/application-events.js +0 -5
  110. package/dist/lib/application.js +0 -716
  111. package/dist/lib/cli.js +0 -111
  112. package/dist/lib/converter/comments/blockLexer.js +0 -391
  113. package/dist/lib/converter/comments/declarationReferenceResolver.js +0 -218
  114. package/dist/lib/converter/comments/discovery.js +0 -567
  115. package/dist/lib/converter/comments/index.js +0 -241
  116. package/dist/lib/converter/comments/lexer.js +0 -10
  117. package/dist/lib/converter/comments/lineLexer.js +0 -279
  118. package/dist/lib/converter/comments/linkResolver.js +0 -186
  119. package/dist/lib/converter/comments/parser.js +0 -538
  120. package/dist/lib/converter/comments/rawLexer.js +0 -218
  121. package/dist/lib/converter/comments/tagName.js +0 -58
  122. package/dist/lib/converter/comments/textParser.js +0 -372
  123. package/dist/lib/converter/components.js +0 -3
  124. package/dist/lib/converter/context.js +0 -311
  125. package/dist/lib/converter/convert-expression.js +0 -58
  126. package/dist/lib/converter/converter-events.js +0 -13
  127. package/dist/lib/converter/converter.js +0 -705
  128. package/dist/lib/converter/factories/index-signature.js +0 -50
  129. package/dist/lib/converter/factories/signature.js +0 -353
  130. package/dist/lib/converter/factories/symbol-id.js +0 -50
  131. package/dist/lib/converter/index.js +0 -3
  132. package/dist/lib/converter/jsdoc.js +0 -135
  133. package/dist/lib/converter/plugins/CategoryPlugin.js +0 -278
  134. package/dist/lib/converter/plugins/CommentPlugin.js +0 -770
  135. package/dist/lib/converter/plugins/GroupPlugin.js +0 -281
  136. package/dist/lib/converter/plugins/ImplementsPlugin.js +0 -438
  137. package/dist/lib/converter/plugins/IncludePlugin.js +0 -254
  138. package/dist/lib/converter/plugins/InheritDocPlugin.js +0 -220
  139. package/dist/lib/converter/plugins/LinkResolverPlugin.js +0 -88
  140. package/dist/lib/converter/plugins/MergeModuleWithPlugin.js +0 -50
  141. package/dist/lib/converter/plugins/PackagePlugin.js +0 -188
  142. package/dist/lib/converter/plugins/SourcePlugin.js +0 -215
  143. package/dist/lib/converter/plugins/TypePlugin.js +0 -108
  144. package/dist/lib/converter/plugins/index.js +0 -10
  145. package/dist/lib/converter/symbols.js +0 -861
  146. package/dist/lib/converter/types.js +0 -833
  147. package/dist/lib/converter/utils/nodes.js +0 -26
  148. package/dist/lib/converter/utils/reflections.js +0 -17
  149. package/dist/lib/converter/utils/repository.js +0 -295
  150. package/dist/lib/converter/utils/symbols.js +0 -12
  151. package/dist/lib/debug/index.js +0 -2
  152. package/dist/lib/debug/reflectionLifetimes.js +0 -27
  153. package/dist/lib/debug/rendererUrls.js +0 -68
  154. package/dist/lib/internationalization/index.js +0 -7
  155. package/dist/lib/internationalization/internationalization.js +0 -64
  156. package/dist/lib/internationalization/locale-utils.cjs +0 -8
  157. package/dist/lib/internationalization/locale-utils.d.cts +0 -8
  158. package/dist/lib/internationalization/locales/de.cjs +0 -401
  159. package/dist/lib/internationalization/locales/de.d.cts +0 -368
  160. package/dist/lib/internationalization/locales/en.cjs +0 -411
  161. package/dist/lib/internationalization/locales/fr.cjs +0 -347
  162. package/dist/lib/internationalization/locales/fr.d.cts +0 -346
  163. package/dist/lib/internationalization/locales/ja.cjs +0 -320
  164. package/dist/lib/internationalization/locales/ja.d.cts +0 -307
  165. package/dist/lib/internationalization/locales/ko.cjs +0 -233
  166. package/dist/lib/internationalization/locales/ko.d.cts +0 -221
  167. package/dist/lib/internationalization/locales/zh.cjs +0 -488
  168. package/dist/lib/internationalization/locales/zh.d.cts +0 -452
  169. package/dist/lib/internationalization/translatable.js +0 -8
  170. package/dist/lib/models/Comment.js +0 -534
  171. package/dist/lib/models/ContainerReflection.js +0 -159
  172. package/dist/lib/models/DeclarationReflection.js +0 -287
  173. package/dist/lib/models/DocumentReflection.js +0 -66
  174. package/dist/lib/models/FileRegistry.js +0 -133
  175. package/dist/lib/models/ParameterReflection.js +0 -39
  176. package/dist/lib/models/ProjectReflection.js +0 -417
  177. package/dist/lib/models/ReferenceReflection.js +0 -85
  178. package/dist/lib/models/Reflection.js +0 -495
  179. package/dist/lib/models/ReflectionCategory.js +0 -56
  180. package/dist/lib/models/ReflectionGroup.js +0 -72
  181. package/dist/lib/models/ReflectionSymbolId.js +0 -85
  182. package/dist/lib/models/SignatureReflection.js +0 -96
  183. package/dist/lib/models/SourceReference.js +0 -50
  184. package/dist/lib/models/TypeParameterReflection.js +0 -45
  185. package/dist/lib/models/index.js +0 -19
  186. package/dist/lib/models/kind.js +0 -231
  187. package/dist/lib/models/types.js +0 -1296
  188. package/dist/lib/models/utils.js +0 -26
  189. package/dist/lib/models/variant.js +0 -1
  190. package/dist/lib/output/components.js +0 -133
  191. package/dist/lib/output/events.js +0 -195
  192. package/dist/lib/output/formatter.js +0 -660
  193. package/dist/lib/output/index.js +0 -7
  194. package/dist/lib/output/output.js +0 -92
  195. package/dist/lib/output/plugins/AssetsPlugin.js +0 -160
  196. package/dist/lib/output/plugins/HierarchyPlugin.js +0 -65
  197. package/dist/lib/output/plugins/IconsPlugin.js +0 -58
  198. package/dist/lib/output/plugins/JavascriptIndexPlugin.js +0 -222
  199. package/dist/lib/output/plugins/NavigationPlugin.js +0 -23
  200. package/dist/lib/output/plugins/SitemapPlugin.js +0 -82
  201. package/dist/lib/output/plugins/index.js +0 -7
  202. package/dist/lib/output/renderer.js +0 -387
  203. package/dist/lib/output/router.js +0 -522
  204. package/dist/lib/output/theme.js +0 -17
  205. package/dist/lib/output/themes/MarkedPlugin.js +0 -461
  206. package/dist/lib/output/themes/default/DefaultTheme.js +0 -367
  207. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +0 -151
  208. package/dist/lib/output/themes/default/Slugger.js +0 -60
  209. package/dist/lib/output/themes/default/layouts/default.js +0 -89
  210. package/dist/lib/output/themes/default/partials/anchor-icon.js +0 -9
  211. package/dist/lib/output/themes/default/partials/breadcrumb.js +0 -11
  212. package/dist/lib/output/themes/default/partials/comment.js +0 -80
  213. package/dist/lib/output/themes/default/partials/footer.js +0 -37
  214. package/dist/lib/output/themes/default/partials/header.js +0 -39
  215. package/dist/lib/output/themes/default/partials/hierarchy.js +0 -32
  216. package/dist/lib/output/themes/default/partials/icon.js +0 -101
  217. package/dist/lib/output/themes/default/partials/index.js +0 -24
  218. package/dist/lib/output/themes/default/partials/member.declaration.js +0 -35
  219. package/dist/lib/output/themes/default/partials/member.getterSetter.js +0 -12
  220. package/dist/lib/output/themes/default/partials/member.js +0 -36
  221. package/dist/lib/output/themes/default/partials/member.signature.body.js +0 -33
  222. package/dist/lib/output/themes/default/partials/member.signature.title.js +0 -9
  223. package/dist/lib/output/themes/default/partials/member.signatures.js +0 -9
  224. package/dist/lib/output/themes/default/partials/member.sources.js +0 -55
  225. package/dist/lib/output/themes/default/partials/members.js +0 -17
  226. package/dist/lib/output/themes/default/partials/moduleReflection.js +0 -68
  227. package/dist/lib/output/themes/default/partials/navigation.js +0 -144
  228. package/dist/lib/output/themes/default/partials/reflectionPreview.js +0 -26
  229. package/dist/lib/output/themes/default/partials/toolbar.js +0 -13
  230. package/dist/lib/output/themes/default/partials/type.js +0 -9
  231. package/dist/lib/output/themes/default/partials/typeAndParent.js +0 -28
  232. package/dist/lib/output/themes/default/partials/typeDetails.js +0 -284
  233. package/dist/lib/output/themes/default/partials/typeParameters.js +0 -26
  234. package/dist/lib/output/themes/default/templates/document.js +0 -3
  235. package/dist/lib/output/themes/default/templates/hierarchy.js +0 -31
  236. package/dist/lib/output/themes/default/templates/index.js +0 -3
  237. package/dist/lib/output/themes/default/templates/reflection.js +0 -53
  238. package/dist/lib/output/themes/lib.js +0 -218
  239. package/dist/lib/serialization/components.js +0 -1
  240. package/dist/lib/serialization/deserializer.js +0 -235
  241. package/dist/lib/serialization/events.js +0 -18
  242. package/dist/lib/serialization/index.js +0 -4
  243. package/dist/lib/serialization/schema.js +0 -32
  244. package/dist/lib/serialization/serializer.js +0 -65
  245. package/dist/lib/utils/ValidatingFileRegistry.js +0 -52
  246. package/dist/lib/utils/component.js +0 -41
  247. package/dist/lib/utils/compress.js +0 -13
  248. package/dist/lib/utils/declaration-maps.js +0 -51
  249. package/dist/lib/utils/entry-point.js +0 -330
  250. package/dist/lib/utils/fs.js +0 -372
  251. package/dist/lib/utils/general.js +0 -25
  252. package/dist/lib/utils/highlighter.js +0 -150
  253. package/dist/lib/utils/html-entities.js +0 -2329
  254. package/dist/lib/utils/html.js +0 -635
  255. package/dist/lib/utils/index.d.ts +0 -17
  256. package/dist/lib/utils/index.js +0 -15
  257. package/dist/lib/utils/loggers.js +0 -71
  258. package/dist/lib/utils/options/declaration.js +0 -444
  259. package/dist/lib/utils/options/defaults.js +0 -104
  260. package/dist/lib/utils/options/help.js +0 -63
  261. package/dist/lib/utils/options/index.js +0 -4
  262. package/dist/lib/utils/options/options.js +0 -273
  263. package/dist/lib/utils/options/readers/arguments.js +0 -109
  264. package/dist/lib/utils/options/readers/index.js +0 -4
  265. package/dist/lib/utils/options/readers/package-json.js +0 -40
  266. package/dist/lib/utils/options/readers/tsconfig.js +0 -172
  267. package/dist/lib/utils/options/readers/typedoc.js +0 -136
  268. package/dist/lib/utils/options/sources/index.js +0 -1
  269. package/dist/lib/utils/options/sources/typedoc.js +0 -876
  270. package/dist/lib/utils/options/tsdoc-defaults.js +0 -94
  271. package/dist/lib/utils/package-manifest.js +0 -84
  272. package/dist/lib/utils/paths.js +0 -127
  273. package/dist/lib/utils/perf.js +0 -86
  274. package/dist/lib/utils/plugins.js +0 -61
  275. package/dist/lib/utils/reflections.js +0 -64
  276. package/dist/lib/utils/sort.js +0 -153
  277. package/dist/lib/utils/tsconfig.js +0 -60
  278. package/dist/lib/utils/tsutils.js +0 -23
  279. package/dist/lib/utils-common/array.js +0 -152
  280. package/dist/lib/utils-common/declarationReference.js +0 -341
  281. package/dist/lib/utils-common/enum.js +0 -27
  282. package/dist/lib/utils-common/events.js +0 -49
  283. package/dist/lib/utils-common/general.js +0 -22
  284. package/dist/lib/utils-common/hooks.js +0 -90
  285. package/dist/lib/utils-common/i18n.js +0 -39
  286. package/dist/lib/utils-common/index.js +0 -17
  287. package/dist/lib/utils-common/jsx.elements.js +0 -3
  288. package/dist/lib/utils-common/jsx.js +0 -187
  289. package/dist/lib/utils-common/logger.js +0 -129
  290. package/dist/lib/utils-common/map.js +0 -63
  291. package/dist/lib/utils-common/minimalSourceFile.js +0 -43
  292. package/dist/lib/utils-common/path.js +0 -130
  293. package/dist/lib/utils-common/set.js +0 -23
  294. package/dist/lib/utils-common/string.js +0 -84
  295. package/dist/lib/utils-common/validation.js +0 -50
  296. package/dist/lib/validation/documentation.js +0 -91
  297. package/dist/lib/validation/exports.js +0 -65
  298. package/dist/lib/validation/links.js +0 -78
  299. package/dist/lib/validation/unusedMergeModuleWith.js +0 -12
  300. /package/dist/{browser-utils.d.ts → types/browser-utils.d.ts} +0 -0
  301. /package/dist/{lib → types}/cli.d.ts +0 -0
  302. /package/dist/{lib → types}/converter/comments/blockLexer.d.ts +0 -0
  303. /package/dist/{lib → types}/converter/comments/lineLexer.d.ts +0 -0
  304. /package/dist/{lib → types}/converter/comments/rawLexer.d.ts +0 -0
  305. /package/dist/{lib → types}/converter/comments/tagName.d.ts +0 -0
  306. /package/dist/{lib → types}/converter/convert-expression.d.ts +0 -0
  307. /package/dist/{lib → types}/converter/converter-events.d.ts +0 -0
  308. /package/dist/{lib → types}/converter/factories/index-signature.d.ts +0 -0
  309. /package/dist/{lib → types}/converter/factories/symbol-id.d.ts +0 -0
  310. /package/dist/{lib → types}/converter/jsdoc.d.ts +0 -0
  311. /package/dist/{lib → types}/converter/plugins/CommentPlugin.d.ts +0 -0
  312. /package/dist/{lib → types}/converter/plugins/ImplementsPlugin.d.ts +0 -0
  313. /package/dist/{lib → types}/converter/plugins/MergeModuleWithPlugin.d.ts +0 -0
  314. /package/dist/{lib → types}/converter/plugins/PackagePlugin.d.ts +0 -0
  315. /package/dist/{lib → types}/converter/plugins/index.d.ts +0 -0
  316. /package/dist/{lib → types}/converter/symbols.d.ts +0 -0
  317. /package/dist/{lib/converter/utils → types/converter/utilities}/nodes.d.ts +0 -0
  318. /package/dist/{lib/converter/utils → types/converter/utilities}/symbols.d.ts +0 -0
  319. /package/dist/{lib → types}/debug/index.d.ts +0 -0
  320. /package/dist/{lib → types}/debug/reflectionLifetimes.d.ts +0 -0
  321. /package/dist/{lib → types}/debug/rendererUrls.d.ts +0 -0
  322. /package/dist/{lib → types}/internationalization/index.d.ts +0 -0
  323. /package/dist/{lib → types}/models/Comment.d.ts +0 -0
  324. /package/dist/{lib → types}/models/ContainerReflection.d.ts +0 -0
  325. /package/dist/{lib → types}/models/DeclarationReflection.d.ts +0 -0
  326. /package/dist/{lib → types}/models/DocumentReflection.d.ts +0 -0
  327. /package/dist/{lib → types}/models/ParameterReflection.d.ts +0 -0
  328. /package/dist/{lib → types}/models/ProjectReflection.d.ts +0 -0
  329. /package/dist/{lib → types}/models/ReferenceReflection.d.ts +0 -0
  330. /package/dist/{lib → types}/models/Reflection.d.ts +0 -0
  331. /package/dist/{lib → types}/models/ReflectionCategory.d.ts +0 -0
  332. /package/dist/{lib → types}/models/ReflectionGroup.d.ts +0 -0
  333. /package/dist/{lib → types}/models/SignatureReflection.d.ts +0 -0
  334. /package/dist/{lib → types}/models/TypeParameterReflection.d.ts +0 -0
  335. /package/dist/{lib → types}/models/index.d.ts +0 -0
  336. /package/dist/{lib → types}/models/kind.d.ts +0 -0
  337. /package/dist/{lib → types}/models/types.d.ts +0 -0
  338. /package/dist/{lib → types}/models/utils.d.ts +0 -0
  339. /package/dist/{lib → types}/models/variant.d.ts +0 -0
  340. /package/dist/{lib → types}/output/index.d.ts +0 -0
  341. /package/dist/{lib → types}/output/plugins/AssetsPlugin.d.ts +0 -0
  342. /package/dist/{lib → types}/output/plugins/HierarchyPlugin.d.ts +0 -0
  343. /package/dist/{lib → types}/output/plugins/IconsPlugin.d.ts +0 -0
  344. /package/dist/{lib → types}/output/plugins/JavascriptIndexPlugin.d.ts +0 -0
  345. /package/dist/{lib → types}/output/plugins/NavigationPlugin.d.ts +0 -0
  346. /package/dist/{lib → types}/output/plugins/SitemapPlugin.d.ts +0 -0
  347. /package/dist/{lib → types}/output/plugins/index.d.ts +0 -0
  348. /package/dist/{lib → types}/output/theme.d.ts +0 -0
  349. /package/dist/{lib → types}/output/themes/default/Slugger.d.ts +0 -0
  350. /package/dist/{lib → types}/output/themes/default/partials/footer.d.ts +0 -0
  351. /package/dist/{lib → types}/output/themes/default/partials/member.declaration.d.ts +0 -0
  352. /package/dist/{lib → types}/output/themes/default/partials/typeAndParent.d.ts +0 -0
  353. /package/dist/{lib → types}/serialization/components.d.ts +0 -0
  354. /package/dist/{lib → types}/serialization/deserializer.d.ts +0 -0
  355. /package/dist/{lib → types}/serialization/events.d.ts +0 -0
  356. /package/dist/{lib → types}/serialization/index.d.ts +0 -0
  357. /package/dist/{lib → types}/serialization/schema.d.ts +0 -0
  358. /package/dist/{lib → types}/serialization/serializer.d.ts +0 -0
  359. /package/dist/{lib → types}/utils/component.d.ts +0 -0
  360. /package/dist/{lib → types}/utils/compress.d.ts +0 -0
  361. /package/dist/{lib → types}/utils/declaration-maps.d.ts +0 -0
  362. /package/dist/{lib → types}/utils/fs.d.ts +0 -0
  363. /package/dist/{lib → types}/utils/highlighter.d.ts +0 -0
  364. /package/dist/{lib → types}/utils/html-entities.d.ts +0 -0
  365. /package/dist/{lib → types}/utils/html.d.ts +0 -0
  366. /package/dist/{lib → types}/utils/loggers.d.ts +0 -0
  367. /package/dist/{lib → types}/utils/options/help.d.ts +0 -0
  368. /package/dist/{lib → types}/utils/options/readers/arguments.d.ts +0 -0
  369. /package/dist/{lib → types}/utils/options/readers/index.d.ts +0 -0
  370. /package/dist/{lib → types}/utils/options/readers/package-json.d.ts +0 -0
  371. /package/dist/{lib → types}/utils/options/readers/tsconfig.d.ts +0 -0
  372. /package/dist/{lib → types}/utils/options/readers/typedoc.d.ts +0 -0
  373. /package/dist/{lib → types}/utils/options/sources/index.d.ts +0 -0
  374. /package/dist/{lib → types}/utils/options/sources/typedoc.d.ts +0 -0
  375. /package/dist/{lib → types}/utils/package-manifest.d.ts +0 -0
  376. /package/dist/{lib → types}/utils/paths.d.ts +0 -0
  377. /package/dist/{lib → types}/utils/perf.d.ts +0 -0
  378. /package/dist/{lib → types}/utils/plugins.d.ts +0 -0
  379. /package/dist/{lib → types}/utils/tsconfig.d.ts +0 -0
  380. /package/dist/{lib → types}/utils/tsutils.d.ts +0 -0
  381. /package/dist/{lib → types}/utils-common/array.d.ts +0 -0
  382. /package/dist/{lib → types}/utils-common/declarationReference.d.ts +0 -0
  383. /package/dist/{lib → types}/utils-common/enum.d.ts +0 -0
  384. /package/dist/{lib → types}/utils-common/events.d.ts +0 -0
  385. /package/dist/{lib → types}/utils-common/hooks.d.ts +0 -0
  386. /package/dist/{lib → types}/utils-common/i18n.d.ts +0 -0
  387. /package/dist/{lib → types}/utils-common/index.d.ts +0 -0
  388. /package/dist/{lib → types}/utils-common/jsx.d.ts +0 -0
  389. /package/dist/{lib → types}/utils-common/jsx.elements.d.ts +0 -0
  390. /package/dist/{lib → types}/utils-common/logger.d.ts +0 -0
  391. /package/dist/{lib → types}/utils-common/map.d.ts +0 -0
  392. /package/dist/{lib → types}/utils-common/minimalSourceFile.d.ts +0 -0
  393. /package/dist/{lib → types}/utils-common/path.d.ts +0 -0
  394. /package/dist/{lib → types}/utils-common/set.d.ts +0 -0
  395. /package/dist/{lib → types}/utils-common/string.d.ts +0 -0
  396. /package/dist/{lib → types}/utils-common/validation.d.ts +0 -0
@@ -1,567 +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.TripleSlash:
558
- return (ranges[0].kind === ts.SyntaxKind.SingleLineCommentTrivia &&
559
- text[ranges[0].pos + 2] === "/" &&
560
- text[ranges[0].pos + 3] !== "/");
561
- case CommentStyle.JSDoc:
562
- return (ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia &&
563
- text[ranges[0].pos] === "/" &&
564
- text[ranges[0].pos + 1] === "*" &&
565
- text[ranges[0].pos + 2] === "*");
566
- }
567
- }