typedoc 0.24.0-beta.2 → 0.24.0-beta.4

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 (357) hide show
  1. package/README.md +5 -32
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +2 -1
  4. package/dist/lib/cli.js +12 -16
  5. package/dist/lib/converter/comments/blockLexer.d.ts +2 -1
  6. package/dist/lib/converter/comments/blockLexer.js +45 -4
  7. package/dist/lib/converter/comments/discovery.d.ts +7 -2
  8. package/dist/lib/converter/comments/discovery.js +37 -5
  9. package/dist/lib/converter/comments/index.d.ts +3 -3
  10. package/dist/lib/converter/comments/index.js +18 -17
  11. package/dist/lib/converter/comments/lexer.d.ts +2 -0
  12. package/dist/lib/converter/comments/linkResolver.d.ts +2 -2
  13. package/dist/lib/converter/comments/linkResolver.js +25 -20
  14. package/dist/lib/converter/comments/parser.js +6 -2
  15. package/dist/lib/converter/context.d.ts +1 -1
  16. package/dist/lib/converter/context.js +2 -2
  17. package/dist/lib/converter/converter.d.ts +2 -0
  18. package/dist/lib/converter/converter.js +6 -3
  19. package/dist/lib/converter/factories/signature.js +16 -7
  20. package/dist/lib/converter/jsdoc.js +3 -3
  21. package/dist/lib/converter/plugins/InheritDocPlugin.js +2 -1
  22. package/dist/lib/converter/plugins/PackagePlugin.d.ts +4 -0
  23. package/dist/lib/converter/plugins/PackagePlugin.js +26 -36
  24. package/dist/lib/converter/symbols.js +7 -5
  25. package/dist/lib/models/comments/comment.d.ts +6 -6
  26. package/dist/lib/models/comments/comment.js +26 -10
  27. package/dist/lib/models/reflections/abstract.js +1 -1
  28. package/dist/lib/models/reflections/project.js +1 -1
  29. package/dist/lib/output/events.js +4 -4
  30. package/dist/lib/output/themes/default/DefaultTheme.js +7 -1
  31. package/dist/lib/output/themes/default/layouts/default.js +5 -5
  32. package/dist/lib/output/themes/default/partials/navigation.js +1 -1
  33. package/dist/lib/output/themes/default/partials/typeParameters.js +1 -0
  34. package/dist/lib/output/themes/default/templates/reflection.js +2 -1
  35. package/dist/lib/output/themes/lib.js +1 -0
  36. package/dist/lib/serialization/schema.d.ts +8 -7
  37. package/dist/lib/serialization/serializer.js +1 -1
  38. package/dist/lib/utils/component.js +1 -1
  39. package/dist/lib/utils/entry-point.js +2 -2
  40. package/dist/lib/utils/fs.d.ts +12 -0
  41. package/dist/lib/utils/fs.js +33 -1
  42. package/dist/lib/utils/index.d.ts +2 -2
  43. package/dist/lib/utils/index.js +4 -1
  44. package/dist/lib/utils/options/declaration.d.ts +2 -0
  45. package/dist/lib/utils/options/index.d.ts +1 -1
  46. package/dist/lib/utils/options/index.js +2 -1
  47. package/dist/lib/utils/options/readers/index.d.ts +1 -0
  48. package/dist/lib/utils/options/readers/index.js +3 -1
  49. package/dist/lib/utils/options/readers/package-json.d.ts +9 -0
  50. package/dist/lib/utils/options/readers/package-json.js +45 -0
  51. package/dist/lib/utils/options/sources/typedoc.js +20 -2
  52. package/dist/lib/utils/options/tsdoc-defaults.d.ts +2 -2
  53. package/dist/lib/utils/options/tsdoc-defaults.js +2 -0
  54. package/dist/lib/utils/package-manifest.js +4 -4
  55. package/package.json +8 -8
  56. package/static/style.css +8 -12
  57. package/tsdoc.json +16 -0
  58. package/dist/index.d.ts.map +0 -1
  59. package/dist/index.js.map +0 -1
  60. package/dist/lib/application-events.d.ts.map +0 -1
  61. package/dist/lib/application-events.js.map +0 -1
  62. package/dist/lib/application.d.ts.map +0 -1
  63. package/dist/lib/application.js.map +0 -1
  64. package/dist/lib/cli.d.ts.map +0 -1
  65. package/dist/lib/cli.js.map +0 -1
  66. package/dist/lib/converter/comments/blockLexer.d.ts.map +0 -1
  67. package/dist/lib/converter/comments/blockLexer.js.map +0 -1
  68. package/dist/lib/converter/comments/declarationReference.d.ts.map +0 -1
  69. package/dist/lib/converter/comments/declarationReference.js.map +0 -1
  70. package/dist/lib/converter/comments/declarationReferenceResolver.d.ts.map +0 -1
  71. package/dist/lib/converter/comments/declarationReferenceResolver.js.map +0 -1
  72. package/dist/lib/converter/comments/discovery.d.ts.map +0 -1
  73. package/dist/lib/converter/comments/discovery.js.map +0 -1
  74. package/dist/lib/converter/comments/index.d.ts.map +0 -1
  75. package/dist/lib/converter/comments/index.js.map +0 -1
  76. package/dist/lib/converter/comments/lexer.d.ts.map +0 -1
  77. package/dist/lib/converter/comments/lexer.js.map +0 -1
  78. package/dist/lib/converter/comments/lineLexer.d.ts.map +0 -1
  79. package/dist/lib/converter/comments/lineLexer.js.map +0 -1
  80. package/dist/lib/converter/comments/linkResolver.d.ts.map +0 -1
  81. package/dist/lib/converter/comments/linkResolver.js.map +0 -1
  82. package/dist/lib/converter/comments/parser.d.ts.map +0 -1
  83. package/dist/lib/converter/comments/parser.js.map +0 -1
  84. package/dist/lib/converter/comments/rawLexer.d.ts.map +0 -1
  85. package/dist/lib/converter/comments/rawLexer.js.map +0 -1
  86. package/dist/lib/converter/components.d.ts.map +0 -1
  87. package/dist/lib/converter/components.js.map +0 -1
  88. package/dist/lib/converter/context.d.ts.map +0 -1
  89. package/dist/lib/converter/context.js.map +0 -1
  90. package/dist/lib/converter/convert-expression.d.ts.map +0 -1
  91. package/dist/lib/converter/convert-expression.js.map +0 -1
  92. package/dist/lib/converter/converter-events.d.ts.map +0 -1
  93. package/dist/lib/converter/converter-events.js.map +0 -1
  94. package/dist/lib/converter/converter.d.ts.map +0 -1
  95. package/dist/lib/converter/converter.js.map +0 -1
  96. package/dist/lib/converter/factories/index-signature.d.ts.map +0 -1
  97. package/dist/lib/converter/factories/index-signature.js.map +0 -1
  98. package/dist/lib/converter/factories/signature.d.ts.map +0 -1
  99. package/dist/lib/converter/factories/signature.js.map +0 -1
  100. package/dist/lib/converter/index.d.ts.map +0 -1
  101. package/dist/lib/converter/index.js.map +0 -1
  102. package/dist/lib/converter/jsdoc.d.ts.map +0 -1
  103. package/dist/lib/converter/jsdoc.js.map +0 -1
  104. package/dist/lib/converter/plugins/CategoryPlugin.d.ts.map +0 -1
  105. package/dist/lib/converter/plugins/CategoryPlugin.js.map +0 -1
  106. package/dist/lib/converter/plugins/CommentPlugin.d.ts.map +0 -1
  107. package/dist/lib/converter/plugins/CommentPlugin.js.map +0 -1
  108. package/dist/lib/converter/plugins/GroupPlugin.d.ts.map +0 -1
  109. package/dist/lib/converter/plugins/GroupPlugin.js.map +0 -1
  110. package/dist/lib/converter/plugins/ImplementsPlugin.d.ts.map +0 -1
  111. package/dist/lib/converter/plugins/ImplementsPlugin.js.map +0 -1
  112. package/dist/lib/converter/plugins/InheritDocPlugin.d.ts.map +0 -1
  113. package/dist/lib/converter/plugins/InheritDocPlugin.js.map +0 -1
  114. package/dist/lib/converter/plugins/LinkResolverPlugin.d.ts.map +0 -1
  115. package/dist/lib/converter/plugins/LinkResolverPlugin.js.map +0 -1
  116. package/dist/lib/converter/plugins/PackagePlugin.d.ts.map +0 -1
  117. package/dist/lib/converter/plugins/PackagePlugin.js.map +0 -1
  118. package/dist/lib/converter/plugins/SourcePlugin.d.ts.map +0 -1
  119. package/dist/lib/converter/plugins/SourcePlugin.js.map +0 -1
  120. package/dist/lib/converter/plugins/TypePlugin.d.ts.map +0 -1
  121. package/dist/lib/converter/plugins/TypePlugin.js.map +0 -1
  122. package/dist/lib/converter/plugins/index.d.ts.map +0 -1
  123. package/dist/lib/converter/plugins/index.js.map +0 -1
  124. package/dist/lib/converter/symbols.d.ts.map +0 -1
  125. package/dist/lib/converter/symbols.js.map +0 -1
  126. package/dist/lib/converter/types.d.ts.map +0 -1
  127. package/dist/lib/converter/types.js.map +0 -1
  128. package/dist/lib/converter/utils/base-path.d.ts.map +0 -1
  129. package/dist/lib/converter/utils/base-path.js.map +0 -1
  130. package/dist/lib/converter/utils/nodes.d.ts.map +0 -1
  131. package/dist/lib/converter/utils/nodes.js.map +0 -1
  132. package/dist/lib/converter/utils/reflections.d.ts.map +0 -1
  133. package/dist/lib/converter/utils/reflections.js.map +0 -1
  134. package/dist/lib/converter/utils/repository.d.ts.map +0 -1
  135. package/dist/lib/converter/utils/repository.js.map +0 -1
  136. package/dist/lib/converter/utils/symbols.d.ts.map +0 -1
  137. package/dist/lib/converter/utils/symbols.js.map +0 -1
  138. package/dist/lib/models/ReflectionCategory.d.ts.map +0 -1
  139. package/dist/lib/models/ReflectionCategory.js.map +0 -1
  140. package/dist/lib/models/ReflectionGroup.d.ts.map +0 -1
  141. package/dist/lib/models/ReflectionGroup.js.map +0 -1
  142. package/dist/lib/models/comments/comment.d.ts.map +0 -1
  143. package/dist/lib/models/comments/comment.js.map +0 -1
  144. package/dist/lib/models/comments/index.d.ts.map +0 -1
  145. package/dist/lib/models/comments/index.js.map +0 -1
  146. package/dist/lib/models/index.d.ts.map +0 -1
  147. package/dist/lib/models/index.js.map +0 -1
  148. package/dist/lib/models/reflections/ReflectionSymbolId.d.ts.map +0 -1
  149. package/dist/lib/models/reflections/ReflectionSymbolId.js.map +0 -1
  150. package/dist/lib/models/reflections/abstract.d.ts.map +0 -1
  151. package/dist/lib/models/reflections/abstract.js.map +0 -1
  152. package/dist/lib/models/reflections/container.d.ts.map +0 -1
  153. package/dist/lib/models/reflections/container.js.map +0 -1
  154. package/dist/lib/models/reflections/declaration.d.ts.map +0 -1
  155. package/dist/lib/models/reflections/declaration.js.map +0 -1
  156. package/dist/lib/models/reflections/id.d.ts +0 -30
  157. package/dist/lib/models/reflections/id.d.ts.map +0 -1
  158. package/dist/lib/models/reflections/id.js +0 -52
  159. package/dist/lib/models/reflections/id.js.map +0 -1
  160. package/dist/lib/models/reflections/index.d.ts.map +0 -1
  161. package/dist/lib/models/reflections/index.js.map +0 -1
  162. package/dist/lib/models/reflections/kind.d.ts.map +0 -1
  163. package/dist/lib/models/reflections/kind.js.map +0 -1
  164. package/dist/lib/models/reflections/parameter.d.ts.map +0 -1
  165. package/dist/lib/models/reflections/parameter.js.map +0 -1
  166. package/dist/lib/models/reflections/project.d.ts.map +0 -1
  167. package/dist/lib/models/reflections/project.js.map +0 -1
  168. package/dist/lib/models/reflections/reference.d.ts.map +0 -1
  169. package/dist/lib/models/reflections/reference.js.map +0 -1
  170. package/dist/lib/models/reflections/signature.d.ts.map +0 -1
  171. package/dist/lib/models/reflections/signature.js.map +0 -1
  172. package/dist/lib/models/reflections/type-parameter.d.ts.map +0 -1
  173. package/dist/lib/models/reflections/type-parameter.js.map +0 -1
  174. package/dist/lib/models/reflections/utils.d.ts.map +0 -1
  175. package/dist/lib/models/reflections/utils.js.map +0 -1
  176. package/dist/lib/models/reflections/variant.d.ts.map +0 -1
  177. package/dist/lib/models/reflections/variant.js.map +0 -1
  178. package/dist/lib/models/sources/file.d.ts.map +0 -1
  179. package/dist/lib/models/sources/file.js.map +0 -1
  180. package/dist/lib/models/sources/index.d.ts.map +0 -1
  181. package/dist/lib/models/sources/index.js.map +0 -1
  182. package/dist/lib/models/types.d.ts.map +0 -1
  183. package/dist/lib/models/types.js.map +0 -1
  184. package/dist/lib/output/components.d.ts.map +0 -1
  185. package/dist/lib/output/components.js.map +0 -1
  186. package/dist/lib/output/events.d.ts.map +0 -1
  187. package/dist/lib/output/events.js.map +0 -1
  188. package/dist/lib/output/index.d.ts.map +0 -1
  189. package/dist/lib/output/index.js.map +0 -1
  190. package/dist/lib/output/models/UrlMapping.d.ts.map +0 -1
  191. package/dist/lib/output/models/UrlMapping.js.map +0 -1
  192. package/dist/lib/output/plugins/AssetsPlugin.d.ts.map +0 -1
  193. package/dist/lib/output/plugins/AssetsPlugin.js.map +0 -1
  194. package/dist/lib/output/plugins/JavascriptIndexPlugin.d.ts.map +0 -1
  195. package/dist/lib/output/plugins/JavascriptIndexPlugin.js.map +0 -1
  196. package/dist/lib/output/plugins/index.d.ts.map +0 -1
  197. package/dist/lib/output/plugins/index.js.map +0 -1
  198. package/dist/lib/output/renderer.d.ts.map +0 -1
  199. package/dist/lib/output/renderer.js.map +0 -1
  200. package/dist/lib/output/theme.d.ts.map +0 -1
  201. package/dist/lib/output/theme.js.map +0 -1
  202. package/dist/lib/output/themes/MarkedPlugin.d.ts.map +0 -1
  203. package/dist/lib/output/themes/MarkedPlugin.js.map +0 -1
  204. package/dist/lib/output/themes/default/DefaultTheme.d.ts.map +0 -1
  205. package/dist/lib/output/themes/default/DefaultTheme.js.map +0 -1
  206. package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts.map +0 -1
  207. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js.map +0 -1
  208. package/dist/lib/output/themes/default/layouts/default.d.ts.map +0 -1
  209. package/dist/lib/output/themes/default/layouts/default.js.map +0 -1
  210. package/dist/lib/output/themes/default/partials/analytics.d.ts.map +0 -1
  211. package/dist/lib/output/themes/default/partials/analytics.js.map +0 -1
  212. package/dist/lib/output/themes/default/partials/anchor-icon.d.ts.map +0 -1
  213. package/dist/lib/output/themes/default/partials/anchor-icon.js.map +0 -1
  214. package/dist/lib/output/themes/default/partials/breadcrumb.d.ts.map +0 -1
  215. package/dist/lib/output/themes/default/partials/breadcrumb.js.map +0 -1
  216. package/dist/lib/output/themes/default/partials/comment.d.ts.map +0 -1
  217. package/dist/lib/output/themes/default/partials/comment.js.map +0 -1
  218. package/dist/lib/output/themes/default/partials/footer.d.ts.map +0 -1
  219. package/dist/lib/output/themes/default/partials/footer.js.map +0 -1
  220. package/dist/lib/output/themes/default/partials/header.d.ts.map +0 -1
  221. package/dist/lib/output/themes/default/partials/header.js.map +0 -1
  222. package/dist/lib/output/themes/default/partials/hierarchy.d.ts.map +0 -1
  223. package/dist/lib/output/themes/default/partials/hierarchy.js.map +0 -1
  224. package/dist/lib/output/themes/default/partials/icon.d.ts.map +0 -1
  225. package/dist/lib/output/themes/default/partials/icon.js.map +0 -1
  226. package/dist/lib/output/themes/default/partials/index.d.ts.map +0 -1
  227. package/dist/lib/output/themes/default/partials/index.js.map +0 -1
  228. package/dist/lib/output/themes/default/partials/member.d.ts.map +0 -1
  229. package/dist/lib/output/themes/default/partials/member.declaration.d.ts.map +0 -1
  230. package/dist/lib/output/themes/default/partials/member.declaration.js.map +0 -1
  231. package/dist/lib/output/themes/default/partials/member.getterSetter.d.ts.map +0 -1
  232. package/dist/lib/output/themes/default/partials/member.getterSetter.js.map +0 -1
  233. package/dist/lib/output/themes/default/partials/member.js.map +0 -1
  234. package/dist/lib/output/themes/default/partials/member.reference.d.ts.map +0 -1
  235. package/dist/lib/output/themes/default/partials/member.reference.js.map +0 -1
  236. package/dist/lib/output/themes/default/partials/member.signature.body.d.ts.map +0 -1
  237. package/dist/lib/output/themes/default/partials/member.signature.body.js.map +0 -1
  238. package/dist/lib/output/themes/default/partials/member.signature.title.d.ts.map +0 -1
  239. package/dist/lib/output/themes/default/partials/member.signature.title.js.map +0 -1
  240. package/dist/lib/output/themes/default/partials/member.signatures.d.ts.map +0 -1
  241. package/dist/lib/output/themes/default/partials/member.signatures.js.map +0 -1
  242. package/dist/lib/output/themes/default/partials/member.sources.d.ts.map +0 -1
  243. package/dist/lib/output/themes/default/partials/member.sources.js.map +0 -1
  244. package/dist/lib/output/themes/default/partials/members.d.ts.map +0 -1
  245. package/dist/lib/output/themes/default/partials/members.group.d.ts.map +0 -1
  246. package/dist/lib/output/themes/default/partials/members.group.js.map +0 -1
  247. package/dist/lib/output/themes/default/partials/members.js.map +0 -1
  248. package/dist/lib/output/themes/default/partials/navigation.d.ts.map +0 -1
  249. package/dist/lib/output/themes/default/partials/navigation.js.map +0 -1
  250. package/dist/lib/output/themes/default/partials/parameter.d.ts.map +0 -1
  251. package/dist/lib/output/themes/default/partials/parameter.js.map +0 -1
  252. package/dist/lib/output/themes/default/partials/toolbar.d.ts.map +0 -1
  253. package/dist/lib/output/themes/default/partials/toolbar.js.map +0 -1
  254. package/dist/lib/output/themes/default/partials/type.d.ts.map +0 -1
  255. package/dist/lib/output/themes/default/partials/type.js.map +0 -1
  256. package/dist/lib/output/themes/default/partials/typeAndParent.d.ts.map +0 -1
  257. package/dist/lib/output/themes/default/partials/typeAndParent.js.map +0 -1
  258. package/dist/lib/output/themes/default/partials/typeParameters.d.ts.map +0 -1
  259. package/dist/lib/output/themes/default/partials/typeParameters.js.map +0 -1
  260. package/dist/lib/output/themes/default/templates/index.d.ts.map +0 -1
  261. package/dist/lib/output/themes/default/templates/index.js.map +0 -1
  262. package/dist/lib/output/themes/default/templates/reflection.d.ts.map +0 -1
  263. package/dist/lib/output/themes/default/templates/reflection.js.map +0 -1
  264. package/dist/lib/output/themes/lib.d.ts.map +0 -1
  265. package/dist/lib/output/themes/lib.js.map +0 -1
  266. package/dist/lib/serialization/components.d.ts.map +0 -1
  267. package/dist/lib/serialization/components.js.map +0 -1
  268. package/dist/lib/serialization/deserializer.d.ts.map +0 -1
  269. package/dist/lib/serialization/deserializer.js.map +0 -1
  270. package/dist/lib/serialization/events.d.ts.map +0 -1
  271. package/dist/lib/serialization/events.js.map +0 -1
  272. package/dist/lib/serialization/index.d.ts.map +0 -1
  273. package/dist/lib/serialization/index.js.map +0 -1
  274. package/dist/lib/serialization/schema.d.ts.map +0 -1
  275. package/dist/lib/serialization/schema.js.map +0 -1
  276. package/dist/lib/serialization/serializer.d.ts.map +0 -1
  277. package/dist/lib/serialization/serializer.js.map +0 -1
  278. package/dist/lib/utils/array.d.ts.map +0 -1
  279. package/dist/lib/utils/array.js.map +0 -1
  280. package/dist/lib/utils/component.d.ts.map +0 -1
  281. package/dist/lib/utils/component.js.map +0 -1
  282. package/dist/lib/utils/entry-point.d.ts.map +0 -1
  283. package/dist/lib/utils/entry-point.js.map +0 -1
  284. package/dist/lib/utils/enum.d.ts.map +0 -1
  285. package/dist/lib/utils/enum.js.map +0 -1
  286. package/dist/lib/utils/events.d.ts.map +0 -1
  287. package/dist/lib/utils/events.js.map +0 -1
  288. package/dist/lib/utils/fs.d.ts.map +0 -1
  289. package/dist/lib/utils/fs.js.map +0 -1
  290. package/dist/lib/utils/general.d.ts.map +0 -1
  291. package/dist/lib/utils/general.js.map +0 -1
  292. package/dist/lib/utils/highlighter.d.ts.map +0 -1
  293. package/dist/lib/utils/highlighter.js.map +0 -1
  294. package/dist/lib/utils/hooks.d.ts.map +0 -1
  295. package/dist/lib/utils/hooks.js.map +0 -1
  296. package/dist/lib/utils/index.d.ts.map +0 -1
  297. package/dist/lib/utils/index.js.map +0 -1
  298. package/dist/lib/utils/jsx.d.ts.map +0 -1
  299. package/dist/lib/utils/jsx.elements.d.ts.map +0 -1
  300. package/dist/lib/utils/jsx.elements.js.map +0 -1
  301. package/dist/lib/utils/jsx.js.map +0 -1
  302. package/dist/lib/utils/loggers.d.ts.map +0 -1
  303. package/dist/lib/utils/loggers.js.map +0 -1
  304. package/dist/lib/utils/map.d.ts.map +0 -1
  305. package/dist/lib/utils/map.js.map +0 -1
  306. package/dist/lib/utils/minimalSourceFile.d.ts.map +0 -1
  307. package/dist/lib/utils/minimalSourceFile.js.map +0 -1
  308. package/dist/lib/utils/options/declaration.d.ts.map +0 -1
  309. package/dist/lib/utils/options/declaration.js.map +0 -1
  310. package/dist/lib/utils/options/help.d.ts.map +0 -1
  311. package/dist/lib/utils/options/help.js.map +0 -1
  312. package/dist/lib/utils/options/index.d.ts.map +0 -1
  313. package/dist/lib/utils/options/index.js.map +0 -1
  314. package/dist/lib/utils/options/options.d.ts.map +0 -1
  315. package/dist/lib/utils/options/options.js.map +0 -1
  316. package/dist/lib/utils/options/readers/arguments.d.ts.map +0 -1
  317. package/dist/lib/utils/options/readers/arguments.js.map +0 -1
  318. package/dist/lib/utils/options/readers/index.d.ts.map +0 -1
  319. package/dist/lib/utils/options/readers/index.js.map +0 -1
  320. package/dist/lib/utils/options/readers/tsconfig.d.ts.map +0 -1
  321. package/dist/lib/utils/options/readers/tsconfig.js.map +0 -1
  322. package/dist/lib/utils/options/readers/typedoc.d.ts.map +0 -1
  323. package/dist/lib/utils/options/readers/typedoc.js.map +0 -1
  324. package/dist/lib/utils/options/sources/index.d.ts.map +0 -1
  325. package/dist/lib/utils/options/sources/index.js.map +0 -1
  326. package/dist/lib/utils/options/sources/typedoc.d.ts.map +0 -1
  327. package/dist/lib/utils/options/sources/typedoc.js.map +0 -1
  328. package/dist/lib/utils/options/tsdoc-defaults.d.ts.map +0 -1
  329. package/dist/lib/utils/options/tsdoc-defaults.js.map +0 -1
  330. package/dist/lib/utils/package-manifest.d.ts.map +0 -1
  331. package/dist/lib/utils/package-manifest.js.map +0 -1
  332. package/dist/lib/utils/package.d.ts +0 -13
  333. package/dist/lib/utils/package.d.ts.map +0 -1
  334. package/dist/lib/utils/package.js +0 -154
  335. package/dist/lib/utils/package.js.map +0 -1
  336. package/dist/lib/utils/paths.d.ts.map +0 -1
  337. package/dist/lib/utils/paths.js.map +0 -1
  338. package/dist/lib/utils/perf.d.ts.map +0 -1
  339. package/dist/lib/utils/perf.js.map +0 -1
  340. package/dist/lib/utils/plugins.d.ts.map +0 -1
  341. package/dist/lib/utils/plugins.js.map +0 -1
  342. package/dist/lib/utils/reflections.d.ts.map +0 -1
  343. package/dist/lib/utils/reflections.js.map +0 -1
  344. package/dist/lib/utils/sort.d.ts.map +0 -1
  345. package/dist/lib/utils/sort.js.map +0 -1
  346. package/dist/lib/utils/tsconfig.d.ts.map +0 -1
  347. package/dist/lib/utils/tsconfig.js.map +0 -1
  348. package/dist/lib/utils/tsutils.d.ts.map +0 -1
  349. package/dist/lib/utils/tsutils.js.map +0 -1
  350. package/dist/lib/utils/validation.d.ts.map +0 -1
  351. package/dist/lib/utils/validation.js.map +0 -1
  352. package/dist/lib/validation/documentation.d.ts.map +0 -1
  353. package/dist/lib/validation/documentation.js.map +0 -1
  354. package/dist/lib/validation/exports.d.ts.map +0 -1
  355. package/dist/lib/validation/exports.js.map +0 -1
  356. package/dist/lib/validation/links.d.ts.map +0 -1
  357. package/dist/lib/validation/links.js.map +0 -1
package/README.md CHANGED
@@ -19,7 +19,7 @@ npm install typedoc --save-dev
19
19
 
20
20
  ## Usage
21
21
 
22
- To generate documentation TypeDoc needs to know your project entry point, and TypeScript
22
+ To generate documentation TypeDoc needs to know your project entry point and TypeScript
23
23
  compiler options. It will automatically try to find your `tsconfig.json` file, so you can
24
24
  just specify the entry point of your library:
25
25
 
@@ -38,37 +38,10 @@ By default, TypeDoc will search for a file called `index` under the directory.
38
38
 
39
39
  ### Monorepos / Workspaces
40
40
 
41
- If your codebase is comprised of one or more npm packages, you can pass the paths to these
42
- packages and TypeDoc will attempt to determine entry points based on `package.json`'s `main`
43
- property (with default value `index.js`) and if it wasn't found, based on `types` property.
44
- If any of the packages given are the root of an [npm Workspace](https://docs.npmjs.com/cli/v7/using-npm/workspaces)
45
- or a [Yarn Workspace](https://classic.yarnpkg.com/en/docs/workspaces/) TypeDoc will find all
46
- the `workspaces` defined in the `package.json`. In order to find your entry points, TypeDoc requires
47
- either that you turn on sourcemaps so that it can discover the original TS file, or that you
48
- specify `"typedocMain": "src/index.ts"` to explicitly state where the package entry point is.
49
- Supports wildcard paths in the same fashion as those found in npm or Yarn workspaces.
50
-
51
- #### Single npm module
52
-
53
- ```bash
54
- typedoc --entryPointStrategy packages .
55
- ```
56
-
57
- #### Monorepo with npm/Yarn workspace at the root
58
-
59
- ```bash
60
- typedoc --entryPointStrategy packages .
61
- ```
62
-
63
- #### Monorepo with manually specified sub-packages to document
64
-
65
- This can be useful if you do not want all your workspaces to be processed.
66
- Accepts the same paths as would go in the `package.json`'s workspaces
67
-
68
- ```bash
69
- # Note the single quotes prevent shell wildcard expansion, allowing typedoc to do the expansion
70
- typedoc --entryPointStrategy packages a-package 'some-more-packages/*' 'some-other-packages/*'
71
- ```
41
+ If your codebase is comprised of one or more npm packages, you can build documentation for each of them individually
42
+ and merge the results together into a single site by setting `entryPointStrategy` to `packages`. In this mode TypeDoc
43
+ requires configuration to be present in each directory to specify the entry points. For an example setup, see
44
+ https://github.com/Gerrit0/typedoc-packages-example
72
45
 
73
46
  ### Arguments
74
47
 
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export * from "./lib/models";
6
6
  export { Converter, Context, type CommentParserConfig, type DeclarationReference, type SymbolReference, type ComponentPath, type Meaning, type MeaningKeyword, type ExternalResolveResult, type ExternalSymbolResolver, } from "./lib/converter";
7
7
  export { Renderer, DefaultTheme, DefaultThemeRenderContext, UrlMapping, Theme, PageEvent, RendererEvent, MarkdownEvent, IndexEvent, } from "./lib/output";
8
8
  export type { RenderTemplate, RendererHooks } from "./lib/output";
9
- export { ArgumentsReader, BindOption, CommentStyle, JSX, LogLevel, Logger, Options, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, EntryPointStrategy, EventHooks, MinimalSourceFile, } from "./lib/utils";
9
+ export { ArgumentsReader, BindOption, CommentStyle, JSX, LogLevel, Logger, Options, PackageJsonReader, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, EntryPointStrategy, EventHooks, MinimalSourceFile, } from "./lib/utils";
10
10
  export type { OptionsReader, TypeDocOptions, TypeDocOptionMap, ValidationOptions, TypeDocOptionValues, KeyToDeclaration, DeclarationOption, DeclarationOptionBase, StringDeclarationOption, NumberDeclarationOption, BooleanDeclarationOption, ArrayDeclarationOption, MixedDeclarationOption, ObjectDeclarationOption, MapDeclarationOption, FlagsDeclarationOption, DeclarationOptionToOptionType, SortStrategy, ParameterTypeToOptionTypeMap, DocumentationEntryPoint, ManuallyValidatedOption, EnumKeys, } from "./lib/utils";
11
11
  export type { EventMap, EventCallback } from "./lib/utils/events";
12
12
  export { JSONOutput, Serializer, Deserializer, type Deserializable, type DeserializerComponent, type SerializerComponent, SerializeEvent, } from "./lib/serialization";
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.TypeScript = exports.SerializeEvent = exports.Deserializer = exports.Serializer = exports.JSONOutput = exports.MinimalSourceFile = exports.EventHooks = exports.EntryPointStrategy = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.Options = exports.Logger = exports.LogLevel = exports.JSX = exports.CommentStyle = exports.BindOption = exports.ArgumentsReader = exports.IndexEvent = exports.MarkdownEvent = exports.RendererEvent = exports.PageEvent = exports.Theme = exports.UrlMapping = exports.DefaultThemeRenderContext = exports.DefaultTheme = exports.Renderer = exports.Context = exports.Converter = exports.normalizePath = exports.resetReflectionID = exports.Event = exports.EventDispatcher = exports.Application = void 0;
20
+ exports.TypeScript = exports.SerializeEvent = exports.Deserializer = exports.Serializer = exports.JSONOutput = exports.MinimalSourceFile = exports.EventHooks = exports.EntryPointStrategy = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.PackageJsonReader = exports.Options = exports.Logger = exports.LogLevel = exports.JSX = exports.CommentStyle = exports.BindOption = exports.ArgumentsReader = exports.IndexEvent = exports.MarkdownEvent = exports.RendererEvent = exports.PageEvent = exports.Theme = exports.UrlMapping = exports.DefaultThemeRenderContext = exports.DefaultTheme = exports.Renderer = exports.Context = exports.Converter = exports.normalizePath = exports.resetReflectionID = exports.Event = exports.EventDispatcher = exports.Application = void 0;
21
21
  var application_1 = require("./lib/application");
22
22
  Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return application_1.Application; } });
23
23
  var events_1 = require("./lib/utils/events");
@@ -49,6 +49,7 @@ Object.defineProperty(exports, "JSX", { enumerable: true, get: function () { ret
49
49
  Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return utils_1.LogLevel; } });
50
50
  Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return utils_1.Logger; } });
51
51
  Object.defineProperty(exports, "Options", { enumerable: true, get: function () { return utils_1.Options; } });
52
+ Object.defineProperty(exports, "PackageJsonReader", { enumerable: true, get: function () { return utils_1.PackageJsonReader; } });
52
53
  Object.defineProperty(exports, "ParameterHint", { enumerable: true, get: function () { return utils_1.ParameterHint; } });
53
54
  Object.defineProperty(exports, "ParameterType", { enumerable: true, get: function () { return utils_1.ParameterType; } });
54
55
  Object.defineProperty(exports, "TSConfigReader", { enumerable: true, get: function () { return utils_1.TSConfigReader; } });
package/dist/lib/cli.js CHANGED
@@ -36,6 +36,7 @@ const td = __importStar(require("typedoc"));
36
36
  const app = new td.Application();
37
37
  app.options.addReader(new td.ArgumentsReader(0));
38
38
  app.options.addReader(new td.TypeDocReader());
39
+ app.options.addReader(new td.PackageJsonReader());
39
40
  app.options.addReader(new td.TSConfigReader());
40
41
  app.options.addReader(new td.ArgumentsReader(300));
41
42
  void run(app)
@@ -74,17 +75,13 @@ async function run(app) {
74
75
  }
75
76
  if (app.options.getValue("watch")) {
76
77
  app.convertAndWatch(async (project) => {
77
- const out = app.options.getValue("out");
78
- if (out) {
79
- await app.generateDocs(project, out);
80
- }
81
78
  const json = app.options.getValue("json");
79
+ if (!json || app.options.isSet("out")) {
80
+ await app.generateDocs(project, app.options.getValue("out"));
81
+ }
82
82
  if (json) {
83
83
  await app.generateJson(project, json);
84
84
  }
85
- if (!out && !json) {
86
- await app.generateDocs(project, "./docs");
87
- }
88
85
  });
89
86
  return ExitCodes.Ok;
90
87
  }
@@ -96,26 +93,25 @@ async function run(app) {
96
93
  app.logger.hasWarnings()) {
97
94
  return ExitCodes.CompileError;
98
95
  }
96
+ const preValidationWarnCount = app.logger.warningCount;
99
97
  app.validate(project);
98
+ const hadValidationWarnings = app.logger.warningCount !== preValidationWarnCount;
100
99
  if (app.logger.hasErrors()) {
101
100
  return ExitCodes.ValidationError;
102
101
  }
103
- if (app.options.getValue("treatWarningsAsErrors") &&
104
- app.logger.hasWarnings()) {
102
+ if (hadValidationWarnings &&
103
+ (app.options.getValue("treatWarningsAsErrors") ||
104
+ app.options.getValue("treatValidationWarningsAsErrors"))) {
105
105
  return ExitCodes.ValidationError;
106
106
  }
107
107
  if (app.options.getValue("emit") !== "none") {
108
- const out = app.options.getValue("out");
109
- if (out) {
110
- await app.generateDocs(project, out);
111
- }
112
108
  const json = app.options.getValue("json");
109
+ if (!json || app.options.isSet("out")) {
110
+ await app.generateDocs(project, app.options.getValue("out"));
111
+ }
113
112
  if (json) {
114
113
  await app.generateJson(project, json);
115
114
  }
116
- if (!out && !json) {
117
- await app.generateDocs(project, "./docs");
118
- }
119
115
  if (app.logger.hasErrors()) {
120
116
  return ExitCodes.OutputError;
121
117
  }
@@ -1,2 +1,3 @@
1
+ import ts from "typescript";
1
2
  import { Token } from "./lexer";
2
- export declare function lexBlockComment(file: string, pos?: number, end?: number): Generator<Token, undefined, undefined>;
3
+ export declare function lexBlockComment(file: string, pos?: number, end?: number, jsDoc?: ts.JSDoc | undefined, checker?: ts.TypeChecker | undefined): Generator<Token, undefined, undefined>;
@@ -1,11 +1,17 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.lexBlockComment = void 0;
7
+ const typescript_1 = __importDefault(require("typescript"));
4
8
  const lexer_1 = require("./lexer");
5
- function* lexBlockComment(file, pos = 0, end = file.length) {
9
+ const ReflectionSymbolId_1 = require("../../models/reflections/ReflectionSymbolId");
10
+ const symbols_1 = require("../utils/symbols");
11
+ function* lexBlockComment(file, pos = 0, end = file.length, jsDoc = undefined, checker = undefined) {
6
12
  // Wrapper around our real lex function to collapse adjacent text tokens.
7
13
  let textToken;
8
- for (const token of lexBlockComment2(file, pos, end)) {
14
+ for (const token of lexBlockComment2(file, pos, end, getLinkTags(jsDoc), checker)) {
9
15
  if (token.kind === lexer_1.TokenSyntaxKind.Text) {
10
16
  if (textToken) {
11
17
  textToken.text += token.text;
@@ -28,7 +34,21 @@ function* lexBlockComment(file, pos = 0, end = file.length) {
28
34
  return;
29
35
  }
30
36
  exports.lexBlockComment = lexBlockComment;
31
- function* lexBlockComment2(file, pos, end) {
37
+ function getLinkTags(jsDoc) {
38
+ const result = [];
39
+ if (!jsDoc || typeof jsDoc.comment !== "object")
40
+ return result;
41
+ for (const part of jsDoc.comment) {
42
+ switch (part.kind) {
43
+ case typescript_1.default.SyntaxKind.JSDocLink:
44
+ case typescript_1.default.SyntaxKind.JSDocLinkCode:
45
+ case typescript_1.default.SyntaxKind.JSDocLinkPlain:
46
+ result.push(part);
47
+ }
48
+ }
49
+ return result;
50
+ }
51
+ function* lexBlockComment2(file, pos, end, linkTags, checker) {
32
52
  pos += 2; // Leading '/*'
33
53
  end -= 2; // Trailing '*/'
34
54
  if (pos < end && file[pos] === "*") {
@@ -47,6 +67,7 @@ function* lexBlockComment2(file, pos, end) {
47
67
  }
48
68
  let lineStart = true;
49
69
  let braceStartsType = false;
70
+ let linkTagIndex = 0;
50
71
  for (;;) {
51
72
  if (pos >= end) {
52
73
  return;
@@ -171,7 +192,9 @@ function* lexBlockComment2(file, pos, end) {
171
192
  if (lookahead !== pos + 1 &&
172
193
  (lookahead === end || /\s/.test(file[lookahead]))) {
173
194
  braceStartsType = true;
174
- yield makeToken(lexer_1.TokenSyntaxKind.Tag, lookahead - pos);
195
+ const token = makeToken(lexer_1.TokenSyntaxKind.Tag, lookahead - pos);
196
+ attachLinkTagResult(token);
197
+ yield token;
175
198
  break;
176
199
  }
177
200
  }
@@ -213,6 +236,24 @@ function* lexBlockComment2(file, pos, end) {
213
236
  }
214
237
  }
215
238
  }
239
+ function attachLinkTagResult(token) {
240
+ // We might need to skip link tags if someone has link tags inside of an example comment
241
+ // pos-1 for opening brace, TS doesn't allow spaces between opening brace and @ sign as of 5.0.2
242
+ while (linkTagIndex < linkTags.length &&
243
+ linkTags[linkTagIndex].pos < token.pos - 1) {
244
+ linkTagIndex++;
245
+ }
246
+ if (linkTagIndex < linkTags.length &&
247
+ linkTags[linkTagIndex].pos === token.pos - 1) {
248
+ const link = linkTags[linkTagIndex];
249
+ if (link.name) {
250
+ const tsTarget = checker?.getSymbolAtLocation(link.name);
251
+ if (tsTarget) {
252
+ token.linkTarget = new ReflectionSymbolId_1.ReflectionSymbolId((0, symbols_1.resolveAliasedSymbol)(tsTarget, checker));
253
+ }
254
+ }
255
+ }
256
+ }
216
257
  function makeToken(kind, size) {
217
258
  const start = pos;
218
259
  pos += size;
@@ -2,5 +2,10 @@ import ts from "typescript";
2
2
  import { ReflectionKind } from "../../models";
3
3
  import { Logger } from "../../utils";
4
4
  import { CommentStyle } from "../../utils/options/declaration";
5
- export declare function discoverComment(symbol: ts.Symbol, kind: ReflectionKind, logger: Logger, commentStyle: CommentStyle): [ts.SourceFile, ts.CommentRange[]] | undefined;
6
- export declare function discoverSignatureComment(declaration: ts.SignatureDeclaration | ts.JSDocSignature, commentStyle: CommentStyle): [ts.SourceFile, ts.CommentRange[]] | undefined;
5
+ export interface DiscoveredComment {
6
+ file: ts.SourceFile;
7
+ ranges: ts.CommentRange[];
8
+ jsDoc: ts.JSDoc | undefined;
9
+ }
10
+ export declare function discoverComment(symbol: ts.Symbol, kind: ReflectionKind, logger: Logger, commentStyle: CommentStyle): DiscoveredComment | undefined;
11
+ export declare function discoverSignatureComment(declaration: ts.SignatureDeclaration | ts.JSDocSignature, commentStyle: CommentStyle): DiscoveredComment | undefined;
@@ -9,6 +9,7 @@ const models_1 = require("../../models");
9
9
  const utils_1 = require("../../utils");
10
10
  const declaration_1 = require("../../utils/options/declaration");
11
11
  const paths_1 = require("../../utils/paths");
12
+ const assert_1 = require("assert");
12
13
  // Note: This does NOT include JSDoc syntax kinds. This is important!
13
14
  // Comments from @typedef and @callback tags are handled specially by
14
15
  // the JSDoc converter because we only want part of the comment when
@@ -120,7 +121,11 @@ function discoverComment(symbol, kind, logger, commentStyle) {
120
121
  }
121
122
  const selectedDocComment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
122
123
  if (selectedDocComment) {
123
- discovered.push([decl.getSourceFile(), selectedDocComment]);
124
+ discovered.push({
125
+ file: decl.getSourceFile(),
126
+ ranges: selectedDocComment,
127
+ jsDoc: findJsDocForComment(node, selectedDocComment),
128
+ });
124
129
  }
125
130
  }
126
131
  }
@@ -131,9 +136,9 @@ function discoverComment(symbol, kind, logger, commentStyle) {
131
136
  return discovered[0];
132
137
  default: {
133
138
  logger.warn(`${symbol.name} has multiple declarations with a comment. An arbitrary comment will be used.`);
134
- const locations = discovered.map(([sf, [{ pos }]]) => {
135
- const path = (0, paths_1.nicePath)(sf.fileName);
136
- const line = typescript_1.default.getLineAndCharacterOfPosition(sf, pos).line + 1;
139
+ const locations = discovered.map(({ file, ranges: [{ pos }] }) => {
140
+ const path = (0, paths_1.nicePath)(file.fileName);
141
+ const line = typescript_1.default.getLineAndCharacterOfPosition(file, pos).line + 1;
137
142
  return `${path}:${line}`;
138
143
  });
139
144
  logger.info(`The comments for ${symbol.name} are declared at:\n\t${locations.join("\n\t")}`);
@@ -147,15 +152,42 @@ function discoverSignatureComment(declaration, commentStyle) {
147
152
  if (!node) {
148
153
  return;
149
154
  }
155
+ if (typescript_1.default.isJSDocSignature(node)) {
156
+ const comment = node.parent.parent;
157
+ (0, assert_1.ok)(typescript_1.default.isJSDoc(comment));
158
+ return {
159
+ file: node.getSourceFile(),
160
+ ranges: [
161
+ {
162
+ kind: typescript_1.default.SyntaxKind.MultiLineCommentTrivia,
163
+ pos: comment.pos,
164
+ end: comment.end,
165
+ },
166
+ ],
167
+ jsDoc: undefined,
168
+ };
169
+ }
150
170
  const text = node.getSourceFile().text;
151
171
  const comments = collectCommentRanges(typescript_1.default.getLeadingCommentRanges(text, node.pos));
152
172
  comments.reverse();
153
173
  const comment = comments.find((ranges) => permittedRange(text, ranges, commentStyle));
154
174
  if (comment) {
155
- return [node.getSourceFile(), comment];
175
+ return {
176
+ file: node.getSourceFile(),
177
+ ranges: comment,
178
+ jsDoc: findJsDocForComment(node, comment),
179
+ };
156
180
  }
157
181
  }
158
182
  exports.discoverSignatureComment = discoverSignatureComment;
183
+ function findJsDocForComment(node, ranges) {
184
+ if (ranges[0].kind === typescript_1.default.SyntaxKind.MultiLineCommentTrivia) {
185
+ const jsDocs = typescript_1.default
186
+ .getJSDocCommentsAndTags(node)
187
+ .map((doc) => typescript_1.default.findAncestor(doc, typescript_1.default.isJSDoc));
188
+ return jsDocs.find((doc) => doc.pos === ranges[0].pos);
189
+ }
190
+ }
159
191
  /**
160
192
  * Check whether the given module declaration is the topmost.
161
193
  *
@@ -7,6 +7,6 @@ export interface CommentParserConfig {
7
7
  inlineTags: Set<string>;
8
8
  modifierTags: Set<string>;
9
9
  }
10
- export declare function getComment(symbol: ts.Symbol, kind: ReflectionKind, config: CommentParserConfig, logger: Logger, commentStyle: CommentStyle): Comment | undefined;
11
- export declare function getSignatureComment(declaration: ts.SignatureDeclaration | ts.JSDocSignature, config: CommentParserConfig, logger: Logger, commentStyle: CommentStyle): Comment | undefined;
12
- export declare function getJsDocComment(declaration: ts.JSDocPropertyLikeTag | ts.JSDocCallbackTag | ts.JSDocTypedefTag | ts.JSDocTemplateTag | ts.JSDocEnumTag, config: CommentParserConfig, logger: Logger): Comment | undefined;
10
+ export declare function getComment(symbol: ts.Symbol, kind: ReflectionKind, config: CommentParserConfig, logger: Logger, commentStyle: CommentStyle, checker: ts.TypeChecker): Comment | undefined;
11
+ export declare function getSignatureComment(declaration: ts.SignatureDeclaration | ts.JSDocSignature, config: CommentParserConfig, logger: Logger, commentStyle: CommentStyle, checker: ts.TypeChecker): Comment | undefined;
12
+ export declare function getJsDocComment(declaration: ts.JSDocPropertyLikeTag | ts.JSDocCallbackTag | ts.JSDocTypedefTag | ts.JSDocTemplateTag | ts.JSDocEnumTag, config: CommentParserConfig, logger: Logger, checker: ts.TypeChecker): Comment | undefined;
@@ -19,10 +19,10 @@ const jsDocCommentKinds = [
19
19
  typescript_1.default.SyntaxKind.JSDocEnumTag,
20
20
  ];
21
21
  const commentCache = new WeakMap();
22
- function getCommentWithCache(discovered, config, logger) {
22
+ function getCommentWithCache(discovered, config, logger, checker) {
23
23
  if (!discovered)
24
24
  return;
25
- const [file, ranges] = discovered;
25
+ const { file, ranges, jsDoc } = discovered;
26
26
  const cache = commentCache.get(file) || new Map();
27
27
  if (cache?.has(ranges[0].pos)) {
28
28
  return cache.get(ranges[0].pos).clone();
@@ -30,7 +30,7 @@ function getCommentWithCache(discovered, config, logger) {
30
30
  let comment;
31
31
  switch (ranges[0].kind) {
32
32
  case typescript_1.default.SyntaxKind.MultiLineCommentTrivia:
33
- comment = (0, parser_1.parseComment)((0, blockLexer_1.lexBlockComment)(file.text, ranges[0].pos, ranges[0].end), config, file, logger);
33
+ comment = (0, parser_1.parseComment)((0, blockLexer_1.lexBlockComment)(file.text, ranges[0].pos, ranges[0].end, jsDoc, checker), config, file, logger);
34
34
  break;
35
35
  case typescript_1.default.SyntaxKind.SingleLineCommentTrivia:
36
36
  comment = (0, parser_1.parseComment)((0, lineLexer_1.lexLineComments)(file.text, ranges), config, file, logger);
@@ -42,8 +42,8 @@ function getCommentWithCache(discovered, config, logger) {
42
42
  commentCache.set(file, cache);
43
43
  return comment.clone();
44
44
  }
45
- function getCommentImpl(commentSource, config, logger, moduleComment) {
46
- const comment = getCommentWithCache(commentSource, config, logger);
45
+ function getCommentImpl(commentSource, config, logger, moduleComment, checker) {
46
+ const comment = getCommentWithCache(commentSource, config, logger, checker);
47
47
  if (moduleComment && comment) {
48
48
  // Module comment, make sure it is tagged with @packageDocumentation or @module.
49
49
  // If it isn't then the comment applies to the first statement in the file, so throw it away.
@@ -61,35 +61,35 @@ function getCommentImpl(commentSource, config, logger, moduleComment) {
61
61
  }
62
62
  return comment;
63
63
  }
64
- function getComment(symbol, kind, config, logger, commentStyle) {
64
+ function getComment(symbol, kind, config, logger, commentStyle, checker) {
65
65
  const declarations = symbol.declarations || [];
66
66
  if (declarations.length &&
67
67
  declarations.every((d) => jsDocCommentKinds.includes(d.kind))) {
68
- return getJsDocComment(declarations[0], config, logger);
68
+ return getJsDocComment(declarations[0], config, logger, checker);
69
69
  }
70
- const comment = getCommentImpl((0, discovery_1.discoverComment)(symbol, kind, logger, commentStyle), config, logger, declarations.some(typescript_1.default.isSourceFile));
70
+ const comment = getCommentImpl((0, discovery_1.discoverComment)(symbol, kind, logger, commentStyle), config, logger, declarations.some(typescript_1.default.isSourceFile), checker);
71
71
  if (!comment && kind === models_1.ReflectionKind.Property) {
72
- return getConstructorParamPropertyComment(symbol, config, logger, commentStyle);
72
+ return getConstructorParamPropertyComment(symbol, config, logger, commentStyle, checker);
73
73
  }
74
74
  return comment;
75
75
  }
76
76
  exports.getComment = getComment;
77
- function getConstructorParamPropertyComment(symbol, config, logger, commentStyle) {
77
+ function getConstructorParamPropertyComment(symbol, config, logger, commentStyle, checker) {
78
78
  const decl = symbol.declarations?.find(typescript_1.default.isParameter);
79
79
  if (!decl)
80
80
  return;
81
81
  const ctor = decl.parent;
82
- const comment = getSignatureComment(ctor, config, logger, commentStyle);
82
+ const comment = getSignatureComment(ctor, config, logger, commentStyle, checker);
83
83
  const paramTag = comment?.getIdentifiedTag(symbol.name, "@param");
84
84
  if (paramTag) {
85
85
  return new models_1.Comment(paramTag.content);
86
86
  }
87
87
  }
88
- function getSignatureComment(declaration, config, logger, commentStyle) {
89
- return getCommentImpl((0, discovery_1.discoverSignatureComment)(declaration, commentStyle), config, logger, false);
88
+ function getSignatureComment(declaration, config, logger, commentStyle, checker) {
89
+ return getCommentImpl((0, discovery_1.discoverSignatureComment)(declaration, commentStyle), config, logger, false, checker);
90
90
  }
91
91
  exports.getSignatureComment = getSignatureComment;
92
- function getJsDocComment(declaration, config, logger) {
92
+ function getJsDocComment(declaration, config, logger, checker) {
93
93
  const file = declaration.getSourceFile();
94
94
  // First, get the whole comment. We know we'll need all of it.
95
95
  let parent = declaration.parent;
@@ -97,16 +97,17 @@ function getJsDocComment(declaration, config, logger) {
97
97
  parent = parent.parent;
98
98
  }
99
99
  // Then parse it.
100
- const comment = getCommentWithCache([
100
+ const comment = getCommentWithCache({
101
101
  file,
102
- [
102
+ ranges: [
103
103
  {
104
104
  kind: typescript_1.default.SyntaxKind.MultiLineCommentTrivia,
105
105
  pos: parent.pos,
106
106
  end: parent.end,
107
107
  },
108
108
  ],
109
- ], config, logger);
109
+ jsDoc: parent,
110
+ }, config, logger, checker);
110
111
  // And pull out the tag we actually care about.
111
112
  if (typescript_1.default.isJSDocEnumTag(declaration)) {
112
113
  return new models_1.Comment(comment.getTag("@enum")?.content);
@@ -1,3 +1,4 @@
1
+ import type { ReflectionSymbolId } from "../../models";
1
2
  export declare enum TokenSyntaxKind {
2
3
  Text = "text",
3
4
  NewLine = "new_line",
@@ -11,4 +12,5 @@ export interface Token {
11
12
  kind: TokenSyntaxKind;
12
13
  text: string;
13
14
  pos: number;
15
+ linkTarget?: ReflectionSymbolId;
14
16
  }
@@ -5,5 +5,5 @@ export type ExternalResolveResult = {
5
5
  caption?: string;
6
6
  };
7
7
  export type ExternalSymbolResolver = (ref: DeclarationReference, refl: Reflection, part: Readonly<CommentDisplayPart> | undefined) => ExternalResolveResult | string | undefined;
8
- export declare function resolveLinks(comment: Comment, reflection: Reflection, externalResolver: ExternalSymbolResolver): void;
9
- export declare function resolvePartLinks(reflection: Reflection, parts: readonly CommentDisplayPart[], externalResolver: ExternalSymbolResolver): CommentDisplayPart[];
8
+ export declare function resolveLinks(comment: Comment, reflection: Reflection, externalResolver: ExternalSymbolResolver, useTsResolution: boolean): void;
9
+ export declare function resolvePartLinks(reflection: Reflection, parts: readonly CommentDisplayPart[], externalResolver: ExternalSymbolResolver, useTsResolution: boolean): CommentDisplayPart[];
@@ -9,40 +9,48 @@ const models_1 = require("../../models");
9
9
  const declarationReference_1 = require("./declarationReference");
10
10
  const declarationReferenceResolver_1 = require("./declarationReferenceResolver");
11
11
  const urlPrefix = /^(http|ftp)s?:\/\//;
12
- function resolveLinks(comment, reflection, externalResolver) {
13
- comment.summary = resolvePartLinks(reflection, comment.summary, externalResolver);
12
+ function resolveLinks(comment, reflection, externalResolver, useTsResolution) {
13
+ comment.summary = resolvePartLinks(reflection, comment.summary, externalResolver, useTsResolution);
14
14
  for (const tag of comment.blockTags) {
15
- tag.content = resolvePartLinks(reflection, tag.content, externalResolver);
15
+ tag.content = resolvePartLinks(reflection, tag.content, externalResolver, useTsResolution);
16
16
  }
17
17
  if (reflection instanceof models_1.DeclarationReflection && reflection.readme) {
18
- reflection.readme = resolvePartLinks(reflection, reflection.readme, externalResolver);
18
+ reflection.readme = resolvePartLinks(reflection, reflection.readme, externalResolver, useTsResolution);
19
19
  }
20
20
  }
21
21
  exports.resolveLinks = resolveLinks;
22
- function resolvePartLinks(reflection, parts, externalResolver) {
23
- return parts.flatMap((part) => processPart(reflection, part, externalResolver));
22
+ function resolvePartLinks(reflection, parts, externalResolver, useTsResolution) {
23
+ return parts.flatMap((part) => processPart(reflection, part, externalResolver, useTsResolution));
24
24
  }
25
25
  exports.resolvePartLinks = resolvePartLinks;
26
- function processPart(reflection, part, externalResolver) {
26
+ function processPart(reflection, part, externalResolver, useTsResolution) {
27
27
  if (part.kind === "inline-tag") {
28
28
  if (part.tag === "@link" ||
29
29
  part.tag === "@linkcode" ||
30
30
  part.tag === "@linkplain") {
31
- return resolveLinkTag(reflection, part, externalResolver);
31
+ return resolveLinkTag(reflection, part, externalResolver, useTsResolution);
32
32
  }
33
33
  }
34
34
  return part;
35
35
  }
36
- function resolveLinkTag(reflection, part, externalResolver) {
36
+ function resolveLinkTag(reflection, part, externalResolver, useTsResolution) {
37
+ let defaultDisplayText = "";
37
38
  let pos = 0;
38
39
  const end = part.text.length;
39
40
  while (pos < end && typescript_1.default.isWhiteSpaceLike(part.text.charCodeAt(pos))) {
40
41
  pos++;
41
42
  }
42
- // Try to parse one
43
- const declRef = (0, declarationReference_1.parseDeclarationReference)(part.text, pos, end);
44
43
  let target;
45
- let defaultDisplayText = "";
44
+ if (useTsResolution && part.target instanceof models_1.ReflectionSymbolId) {
45
+ target = reflection.project.getReflectionFromSymbolId(part.target);
46
+ if (target) {
47
+ pos = end;
48
+ defaultDisplayText =
49
+ part.text.replace(/^\s*[A-Z_$][\w$]*[ |]*/i, "") || target.name;
50
+ }
51
+ }
52
+ // Try to parse a declaration reference if we didn't use the TS symbol for resolution
53
+ const declRef = !target && (0, declarationReference_1.parseDeclarationReference)(part.text, pos, end);
46
54
  if (declRef) {
47
55
  // Got one, great! Try to resolve the link
48
56
  target = (0, declarationReferenceResolver_1.resolveDeclarationReference)(reflection, declRef[0]);
@@ -65,14 +73,11 @@ function resolveLinkTag(reflection, part, externalResolver) {
65
73
  }
66
74
  }
67
75
  }
68
- if (!target) {
69
- if (urlPrefix.test(part.text)) {
70
- const wsIndex = part.text.search(/\s/);
71
- target =
72
- wsIndex === -1 ? part.text : part.text.substring(0, wsIndex);
73
- pos = target.length;
74
- defaultDisplayText = target;
75
- }
76
+ if (!target && urlPrefix.test(part.text)) {
77
+ const wsIndex = part.text.search(/\s/);
78
+ target = wsIndex === -1 ? part.text : part.text.substring(0, wsIndex);
79
+ pos = target.length;
80
+ defaultDisplayText = target;
76
81
  }
77
82
  // Remaining text after an optional pipe is the link text, so advance
78
83
  // until that's consumed.
@@ -299,9 +299,13 @@ function inlineTag(lexer, block, config, warning) {
299
299
  else {
300
300
  lexer.take(); // Close brace
301
301
  }
302
- block.push({
302
+ const inlineTag = {
303
303
  kind: "inline-tag",
304
304
  tag: tagName.text,
305
305
  text: content.join(""),
306
- });
306
+ };
307
+ if (tagName.linkTarget) {
308
+ inlineTag.target = tagName.linkTarget;
309
+ }
310
+ block.push(inlineTag);
307
311
  }
@@ -46,7 +46,7 @@ export declare class Context {
46
46
  */
47
47
  constructor(converter: Converter, programs: readonly ts.Program[], project: ProjectReflection, scope?: Context["scope"]);
48
48
  /** @internal */
49
- get logger(): import("../utils/loggers").Logger;
49
+ get logger(): import("../utils").Logger;
50
50
  /**
51
51
  * Return the compiler options.
52
52
  */
@@ -120,10 +120,10 @@ class Context {
120
120
  if (exportSymbol &&
121
121
  reflection.kind &
122
122
  (index_1.ReflectionKind.SomeModule | index_1.ReflectionKind.Reference)) {
123
- reflection.comment = (0, comments_1.getComment)(exportSymbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle);
123
+ reflection.comment = (0, comments_1.getComment)(exportSymbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle, this.checker);
124
124
  }
125
125
  if (symbol && !reflection.comment) {
126
- reflection.comment = (0, comments_1.getComment)(symbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle);
126
+ reflection.comment = (0, comments_1.getComment)(symbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle, this.checker);
127
127
  }
128
128
  if (this.shouldBeStatic) {
129
129
  reflection.setFlag(index_1.ReflectionFlag.Static);
@@ -32,6 +32,8 @@ export declare class Converter extends ChildableComponent<Application, Converter
32
32
  validation: ValidationOptions;
33
33
  /** @internal */
34
34
  externalSymbolLinkMappings: Record<string, Record<string, string>>;
35
+ /** @internal */
36
+ useTsLinkResolution: boolean;
35
37
  private _config?;
36
38
  private _externalSymbolResolvers;
37
39
  get config(): CommentParserConfig;
@@ -123,10 +123,10 @@ let Converter = Converter_1 = class Converter extends component_1.ChildableCompo
123
123
  }
124
124
  resolveLinks(comment, owner) {
125
125
  if (comment instanceof index_1.Comment) {
126
- (0, linkResolver_1.resolveLinks)(comment, owner, (ref, part, refl) => this.resolveExternalLink(ref, part, refl));
126
+ (0, linkResolver_1.resolveLinks)(comment, owner, (ref, part, refl) => this.resolveExternalLink(ref, part, refl), this.useTsLinkResolution);
127
127
  }
128
128
  else {
129
- return (0, linkResolver_1.resolvePartLinks)(owner, comment, (ref, part, refl) => this.resolveExternalLink(ref, part, refl));
129
+ return (0, linkResolver_1.resolvePartLinks)(owner, comment, (ref, part, refl) => this.resolveExternalLink(ref, part, refl), this.useTsLinkResolution);
130
130
  }
131
131
  }
132
132
  /**
@@ -166,7 +166,7 @@ let Converter = Converter_1 = class Converter extends component_1.ChildableCompo
166
166
  context.project.registerReflection(context.project, symbol);
167
167
  context.project.comment =
168
168
  symbol &&
169
- (0, comments_1.getComment)(symbol, context.project.kind, this.config, this.application.logger, this.commentStyle);
169
+ (0, comments_1.getComment)(symbol, context.project.kind, this.config, this.application.logger, this.commentStyle, context.checker);
170
170
  context.trigger(Converter_1.EVENT_CREATE_DECLARATION, context.project);
171
171
  moduleContext = context;
172
172
  }
@@ -334,6 +334,9 @@ __decorate([
334
334
  __decorate([
335
335
  (0, utils_1.BindOption)("externalSymbolLinkMappings")
336
336
  ], Converter.prototype, "externalSymbolLinkMappings", void 0);
337
+ __decorate([
338
+ (0, utils_1.BindOption)("useTsLinkResolution")
339
+ ], Converter.prototype, "useTsLinkResolution", void 0);
337
340
  Converter = Converter_1 = __decorate([
338
341
  (0, component_1.Component)({
339
342
  name: "converter",