@depup/typedoc 0.28.17-depup.0

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