@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,715 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import * as Path from "path";
36
+ import ts from "typescript";
37
+ import { Deserializer, Serializer } from "./serialization/index.js";
38
+ import { Converter } from "./converter/index.js";
39
+ import { Renderer } from "./output/renderer.js";
40
+ import { ReflectionSymbolId } from "./models/index.js";
41
+ import { AbstractComponent, FancyConsoleLogger, loadPlugins, PackageJsonReader, TSConfigReader, TypeDocReader, writeFile, } from "./utils/index.js";
42
+ import { Option, Options } from "./utils/index.js";
43
+ import { rootPackageOptions } from "./utils/options/declaration.js";
44
+ import { i18n, Logger, LogLevel, unique } from "#utils";
45
+ import { ok } from "assert";
46
+ import { EntryPointStrategy, getEntryPoints, getPackageDirectories, getWatchEntryPoints, inferEntryPoints, } from "./utils/entry-point.js";
47
+ import { nicePath, normalizePath } from "./utils/paths.js";
48
+ import { getLoadedPaths, hasBeenLoadedMultipleTimes, isDebugging } from "./utils/general.js";
49
+ import { validateExports } from "./validation/exports.js";
50
+ import { validateDocumentation } from "./validation/documentation.js";
51
+ import { validateLinks } from "./validation/links.js";
52
+ import { ApplicationEvents } from "./application-events.js";
53
+ import { deriveRootDir, findTsConfigFile, glob, readFile } from "#node-utils";
54
+ import { FileRegistry } from "./models/FileRegistry.js";
55
+ import { readFileSync } from "fs";
56
+ import { fileURLToPath } from "url";
57
+ import { createRequire } from "module";
58
+ import { Outputs } from "./output/output.js";
59
+ import { validateMergeModuleWith } from "./validation/unusedMergeModuleWith.js";
60
+ import { diagnostic, diagnostics } from "./utils/loggers.js";
61
+ import { ValidatingFileRegistry } from "./utils/ValidatingFileRegistry.js";
62
+ import { Internationalization } from "./internationalization/internationalization.js";
63
+ const packageInfo = JSON.parse(readFileSync(Path.join(fileURLToPath(import.meta.url), "../../../package.json"), "utf8"));
64
+ const supportedVersionMajorMinor = packageInfo.peerDependencies.typescript
65
+ .split("||")
66
+ .map((version) => version.replace(/^\s*|\.x\s*$/g, ""));
67
+ const DETECTOR = Symbol();
68
+ export function createAppForTesting() {
69
+ // @ts-expect-error private constructor
70
+ const app = new Application(DETECTOR);
71
+ app.files = new FileRegistry();
72
+ return app;
73
+ }
74
+ const DEFAULT_READERS = [
75
+ new TypeDocReader(),
76
+ new PackageJsonReader(),
77
+ new TSConfigReader(),
78
+ ];
79
+ /**
80
+ * The default TypeDoc main application class.
81
+ *
82
+ * This class holds the two main components of TypeDoc, the {@link Converter} and
83
+ * the {@link Renderer}. When running TypeDoc, first the {@link Converter} is invoked which
84
+ * generates a {@link ProjectReflection} from the passed in source files. The
85
+ * {@link ProjectReflection} is a hierarchical model representation of the TypeScript
86
+ * project. Afterwards the model is passed to the {@link Renderer} which uses an instance
87
+ * of {@link Theme} to generate the final documentation.
88
+ *
89
+ * Both the {@link Converter} and the {@link Renderer} emit a series of events while processing the project.
90
+ * Subscribe to these Events to control the application flow or alter the output.
91
+ *
92
+ * @remarks
93
+ *
94
+ * Access to an Application instance can be retrieved with {@link Application.bootstrap} or
95
+ * {@link Application.bootstrapWithPlugins}. It can not be constructed manually.
96
+ *
97
+ * @group None
98
+ * @summary Root level class which contains most useful behavior.
99
+ */
100
+ let Application = (() => {
101
+ let _classSuper = AbstractComponent;
102
+ let _lang_decorators;
103
+ let _lang_initializers = [];
104
+ let _lang_extraInitializers = [];
105
+ let _skipErrorChecking_decorators;
106
+ let _skipErrorChecking_initializers = [];
107
+ let _skipErrorChecking_extraInitializers = [];
108
+ let _entryPointStrategy_decorators;
109
+ let _entryPointStrategy_initializers = [];
110
+ let _entryPointStrategy_extraInitializers = [];
111
+ let _entryPoints_decorators;
112
+ let _entryPoints_initializers = [];
113
+ let _entryPoints_extraInitializers = [];
114
+ return class Application extends _classSuper {
115
+ static {
116
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
117
+ _lang_decorators = [Option("lang")];
118
+ _skipErrorChecking_decorators = [Option("skipErrorChecking")];
119
+ _entryPointStrategy_decorators = [Option("entryPointStrategy")];
120
+ _entryPoints_decorators = [Option("entryPoints")];
121
+ __esDecorate(this, null, _lang_decorators, { kind: "accessor", name: "lang", static: false, private: false, access: { has: obj => "lang" in obj, get: obj => obj.lang, set: (obj, value) => { obj.lang = value; } }, metadata: _metadata }, _lang_initializers, _lang_extraInitializers);
122
+ __esDecorate(this, null, _skipErrorChecking_decorators, { kind: "accessor", name: "skipErrorChecking", static: false, private: false, access: { has: obj => "skipErrorChecking" in obj, get: obj => obj.skipErrorChecking, set: (obj, value) => { obj.skipErrorChecking = value; } }, metadata: _metadata }, _skipErrorChecking_initializers, _skipErrorChecking_extraInitializers);
123
+ __esDecorate(this, null, _entryPointStrategy_decorators, { kind: "accessor", name: "entryPointStrategy", static: false, private: false, access: { has: obj => "entryPointStrategy" in obj, get: obj => obj.entryPointStrategy, set: (obj, value) => { obj.entryPointStrategy = value; } }, metadata: _metadata }, _entryPointStrategy_initializers, _entryPointStrategy_extraInitializers);
124
+ __esDecorate(this, null, _entryPoints_decorators, { kind: "accessor", name: "entryPoints", static: false, private: false, access: { has: obj => "entryPoints" in obj, get: obj => obj.entryPoints, set: (obj, value) => { obj.entryPoints = value; } }, metadata: _metadata }, _entryPoints_initializers, _entryPoints_extraInitializers);
125
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
126
+ }
127
+ _logger = new FancyConsoleLogger();
128
+ /**
129
+ * The converter used to create the declaration reflections.
130
+ */
131
+ converter;
132
+ outputs = new Outputs(this);
133
+ /**
134
+ * The renderer used to generate the HTML documentation output.
135
+ */
136
+ renderer;
137
+ /**
138
+ * The serializer used to generate JSON output.
139
+ */
140
+ serializer = new Serializer();
141
+ /**
142
+ * The deserializer used to restore previously serialized JSON output.
143
+ */
144
+ deserializer = new Deserializer(this._logger);
145
+ /**
146
+ * The logger that should be used to output messages.
147
+ */
148
+ get logger() {
149
+ return this._logger;
150
+ }
151
+ set logger(l) {
152
+ this._logger = l;
153
+ this.deserializer.logger = l;
154
+ }
155
+ /**
156
+ * Internationalization module which supports translating according to
157
+ * the `lang` option.
158
+ */
159
+ internationalization = new Internationalization();
160
+ options = new Options();
161
+ /**
162
+ * Due for deprecation in 0.29, use the reference to this on {@link ProjectReflection},
163
+ * this was the wrong place for this member to live.
164
+ */
165
+ files = new ValidatingFileRegistry();
166
+ #lang_accessor_storage = __runInitializers(this, _lang_initializers, void 0);
167
+ /** @internal */
168
+ get lang() { return this.#lang_accessor_storage; }
169
+ set lang(value) { this.#lang_accessor_storage = value; }
170
+ #skipErrorChecking_accessor_storage = (__runInitializers(this, _lang_extraInitializers), __runInitializers(this, _skipErrorChecking_initializers, void 0));
171
+ /** @internal */
172
+ get skipErrorChecking() { return this.#skipErrorChecking_accessor_storage; }
173
+ set skipErrorChecking(value) { this.#skipErrorChecking_accessor_storage = value; }
174
+ #entryPointStrategy_accessor_storage = (__runInitializers(this, _skipErrorChecking_extraInitializers), __runInitializers(this, _entryPointStrategy_initializers, void 0));
175
+ /** @internal */
176
+ get entryPointStrategy() { return this.#entryPointStrategy_accessor_storage; }
177
+ set entryPointStrategy(value) { this.#entryPointStrategy_accessor_storage = value; }
178
+ #entryPoints_accessor_storage = (__runInitializers(this, _entryPointStrategy_extraInitializers), __runInitializers(this, _entryPoints_initializers, void 0));
179
+ /** @internal */
180
+ get entryPoints() { return this.#entryPoints_accessor_storage; }
181
+ set entryPoints(value) { this.#entryPoints_accessor_storage = value; }
182
+ /**
183
+ * The version number of TypeDoc.
184
+ */
185
+ static VERSION = packageInfo.version;
186
+ /**
187
+ * Emitted after plugins have been loaded and options have been read, but before they have been frozen.
188
+ * The listener will be given an instance of {@link Application}.
189
+ */
190
+ static EVENT_BOOTSTRAP_END = ApplicationEvents.BOOTSTRAP_END;
191
+ /**
192
+ * Emitted after a project has been deserialized from JSON.
193
+ * The listener will be given an instance of {@link ProjectReflection}.
194
+ */
195
+ static EVENT_PROJECT_REVIVE = ApplicationEvents.REVIVE;
196
+ /**
197
+ * Emitted when validation is being run.
198
+ * The listener will be given an instance of {@link ProjectReflection}.
199
+ */
200
+ static EVENT_VALIDATE_PROJECT = ApplicationEvents.VALIDATE_PROJECT;
201
+ /**
202
+ * Create a new TypeDoc application instance.
203
+ */
204
+ constructor(detector) {
205
+ if (detector !== DETECTOR) {
206
+ throw new Error("An application handle must be retrieved with Application.bootstrap or Application.bootstrapWithPlugins");
207
+ }
208
+ super(null); // We own ourselves
209
+ this.converter = new Converter(this);
210
+ this.renderer = new Renderer(this);
211
+ this.outputs.addOutput("json", async (out, project) => {
212
+ const ser = this.serializer.projectToObject(project, normalizePath(process.cwd()));
213
+ const space = this.options.getValue("pretty") ? "\t" : "";
214
+ await writeFile(out, JSON.stringify(ser, null, space) + "\n");
215
+ });
216
+ this.outputs.addOutput("html", async (out, project) => {
217
+ await this.renderer.render(project, out);
218
+ });
219
+ }
220
+ /**
221
+ * Initialize TypeDoc, loading plugins if applicable.
222
+ */
223
+ static async bootstrapWithPlugins(options = {}, readers = DEFAULT_READERS) {
224
+ const app = new Application(DETECTOR);
225
+ readers.forEach((r) => app.options.addReader(r));
226
+ app.options.reset();
227
+ app.setOptions(options, /* reportErrors */ false);
228
+ app.internationalization.setLocale(app.lang);
229
+ await app.options.read(new Logger(), undefined, (path) => app.watchConfigFile(path));
230
+ app.internationalization.setLocale(app.lang);
231
+ app.logger.level = app.options.getValue("logLevel");
232
+ await loadPlugins(app, app.options.getValue("plugin"));
233
+ await app._bootstrap(options);
234
+ return app;
235
+ }
236
+ /**
237
+ * Initialize TypeDoc without loading plugins.
238
+ *
239
+ * @example
240
+ * Initialize the application with pretty-printing output disabled.
241
+ * ```ts
242
+ * const app = await Application.bootstrap({ pretty: false });
243
+ * ```
244
+ *
245
+ * @param options Options to set during initialization
246
+ * @param readers Option readers to use to discover options from config files.
247
+ */
248
+ static async bootstrap(options = {}, readers = DEFAULT_READERS) {
249
+ const app = new Application(DETECTOR);
250
+ readers.forEach((r) => app.options.addReader(r));
251
+ await app._bootstrap(options);
252
+ return app;
253
+ }
254
+ async _bootstrap(options) {
255
+ this.options.reset();
256
+ this.setOptions(options, /* reportErrors */ false);
257
+ this.internationalization.setLocale(this.lang);
258
+ await this.options.read(this.logger, undefined, (path) => this.watchConfigFile(path));
259
+ this.setOptions(options);
260
+ this.internationalization.setLocale(this.lang);
261
+ if (isDebugging()) {
262
+ this.logger.level = LogLevel.Verbose;
263
+ }
264
+ else {
265
+ this.logger.level = this.options.getValue("logLevel");
266
+ }
267
+ if (this.files instanceof ValidatingFileRegistry) {
268
+ this.files.basePath = this.options.getValue("basePath");
269
+ }
270
+ for (const [lang, locales] of Object.entries(this.options.getValue("locales"))) {
271
+ this.internationalization.addTranslations(lang, locales);
272
+ }
273
+ if (hasBeenLoadedMultipleTimes()) {
274
+ this.logger.warn(i18n.loaded_multiple_times_0(getLoadedPaths().join("\n\t")));
275
+ }
276
+ this.trigger(ApplicationEvents.BOOTSTRAP_END, this);
277
+ if (!this.internationalization.hasTranslations(this.lang)) {
278
+ // Not internationalized as by definition we don't know what to include here.
279
+ this.logger.warn(`Options specified "${this.lang}" as the language to use, but TypeDoc cannot provide translations for it.`);
280
+ this.logger.info(("The languages that translations are available for are:\n\t" +
281
+ this.internationalization
282
+ .getSupportedLanguages()
283
+ .join("\n\t")));
284
+ this.logger.info("You can define/override local locales with the `locales` option, or contribute them to TypeDoc!");
285
+ }
286
+ if (this.options.getValue("useHostedBaseUrlForAbsoluteLinks") &&
287
+ !this.options.getValue("hostedBaseUrl")) {
288
+ this.logger.warn(i18n.useHostedBaseUrlForAbsoluteLinks_requires_hostedBaseUrl());
289
+ this.options.setValue("useHostedBaseUrlForAbsoluteLinks", false);
290
+ }
291
+ }
292
+ /** @internal */
293
+ setOptions(options, reportErrors = true) {
294
+ let success = true;
295
+ for (const [key, val] of Object.entries(options)) {
296
+ try {
297
+ this.options.setValue(key, val);
298
+ }
299
+ catch (error) {
300
+ success = false;
301
+ ok(error instanceof Error);
302
+ if (reportErrors) {
303
+ this.logger.error(error.message);
304
+ }
305
+ }
306
+ }
307
+ return success;
308
+ }
309
+ /**
310
+ * Return the path to the TypeScript compiler.
311
+ */
312
+ getTypeScriptPath() {
313
+ const req = createRequire(import.meta.url);
314
+ return nicePath(Path.dirname(req.resolve("typescript")));
315
+ }
316
+ getTypeScriptVersion() {
317
+ return ts.version;
318
+ }
319
+ getEntryPoints() {
320
+ if (this.options.isSet("entryPoints")) {
321
+ return this.getDefinedEntryPoints();
322
+ }
323
+ return inferEntryPoints(this.logger, this.options);
324
+ }
325
+ /**
326
+ * Gets the entry points to be documented according to the current `entryPoints` and `entryPointStrategy` options.
327
+ * May return undefined if entry points fail to be expanded.
328
+ */
329
+ getDefinedEntryPoints() {
330
+ return getEntryPoints(this.logger, this.options);
331
+ }
332
+ /**
333
+ * Run the converter for the given set of files and return the generated reflections.
334
+ *
335
+ * @returns An instance of ProjectReflection on success, undefined otherwise.
336
+ */
337
+ async convert() {
338
+ const start = Date.now();
339
+ this.logger.verbose(`Using TypeScript ${this.getTypeScriptVersion()} from ${this.getTypeScriptPath()}`);
340
+ if (this.entryPointStrategy === EntryPointStrategy.Merge) {
341
+ return this._merge();
342
+ }
343
+ if (this.entryPointStrategy === EntryPointStrategy.Packages) {
344
+ return this._convertPackages();
345
+ }
346
+ if (!supportedVersionMajorMinor.some((version) => version == ts.versionMajorMinor)) {
347
+ this.logger.warn(i18n.unsupported_ts_version_0(supportedVersionMajorMinor.join(", ")));
348
+ }
349
+ const entryPoints = this.getEntryPoints();
350
+ if (!entryPoints) {
351
+ // Fatal error already reported.
352
+ return;
353
+ }
354
+ const programs = unique(entryPoints.map((e) => e.program));
355
+ this.logger.verbose(`Converting with ${programs.length} programs ${entryPoints.length} entry points`);
356
+ if (this.skipErrorChecking === false) {
357
+ const errors = programs.flatMap((program) => ts.getPreEmitDiagnostics(program));
358
+ if (errors.length) {
359
+ diagnostics(this.logger, errors);
360
+ return;
361
+ }
362
+ }
363
+ if (this.options.getValue("emit") === "both") {
364
+ for (const program of programs) {
365
+ program.emit();
366
+ }
367
+ }
368
+ const startConversion = Date.now();
369
+ this.logger.verbose(`Finished getting entry points in ${Date.now() - start}ms`);
370
+ const project = this.converter.convert(entryPoints);
371
+ this.logger.verbose(`Finished conversion in ${Date.now() - startConversion}ms`);
372
+ return project;
373
+ }
374
+ watchers = (__runInitializers(this, _entryPoints_extraInitializers), new Map());
375
+ _watchFile;
376
+ criticalFiles = new Set();
377
+ clearWatches() {
378
+ this.watchers.forEach((w) => w.close());
379
+ this.watchers.clear();
380
+ }
381
+ watchConfigFile(path) {
382
+ this.criticalFiles.add(path);
383
+ }
384
+ /**
385
+ * Register that the current build depends on a file, so that in watch mode
386
+ * the build will be repeated. Has no effect if a watch build is not
387
+ * running, or if the file has already been registered.
388
+ *
389
+ * @param path The file to watch. It does not need to exist, and you should
390
+ * in fact register files you look for, but which do not exist, so that if
391
+ * they are created the build will re-run. (e.g. if you look through a list
392
+ * of 5 possibilities and find the third, you should register the first 3.)
393
+ *
394
+ * @param shouldRestart Should the build be completely restarted? (This is
395
+ * normally only used for configuration files -- i.e. files whose contents
396
+ * determine how conversion, rendering, or compiling will be done, as
397
+ * opposed to files that are only read *during* the conversion or
398
+ * rendering.)
399
+ */
400
+ watchFile(path, shouldRestart = false) {
401
+ this._watchFile?.(path, shouldRestart);
402
+ }
403
+ /**
404
+ * Run a convert / watch process.
405
+ *
406
+ * @param success Callback to run after each convert, receiving the project
407
+ * @returns True if the watch process should be restarted due to a
408
+ * configuration change, false for an options error
409
+ */
410
+ async convertAndWatch(success) {
411
+ if (!this.options.getValue("preserveWatchOutput") &&
412
+ this.logger instanceof FancyConsoleLogger) {
413
+ ts.sys.clearScreen?.();
414
+ }
415
+ this.logger.verbose(`Using TypeScript ${this.getTypeScriptVersion()} from ${this.getTypeScriptPath()}`);
416
+ if (!supportedVersionMajorMinor.some((version) => version == ts.versionMajorMinor)) {
417
+ this.logger.warn(i18n.unsupported_ts_version_0(supportedVersionMajorMinor.join(", ")));
418
+ }
419
+ if (Object.keys(this.options.getCompilerOptions(this.logger)).length === 0) {
420
+ this.logger.warn(i18n.no_compiler_options_set());
421
+ }
422
+ // Doing this is considerably more complicated, we'd need to manage an array of programs, not convert until all programs
423
+ // have reported in the first time... just error out for now. I'm not convinced anyone will actually notice.
424
+ if (this.options.getFileNames().length === 0) {
425
+ this.logger.error(i18n.solution_not_supported_in_watch_mode());
426
+ return false;
427
+ }
428
+ // Support for packages mode is currently unimplemented
429
+ if (this.entryPointStrategy !== EntryPointStrategy.Resolve &&
430
+ this.entryPointStrategy !== EntryPointStrategy.Expand) {
431
+ this.logger.error(i18n.strategy_not_supported_in_watch_mode());
432
+ return false;
433
+ }
434
+ const tsconfigFile = findTsConfigFile(this.options.getValue("tsconfig")) ??
435
+ "tsconfig.json";
436
+ // We don't want to do it the first time to preserve initial debug status messages. They'll be lost
437
+ // after the user saves a file, but better than nothing...
438
+ let firstStatusReport = true;
439
+ const host = ts.createWatchCompilerHost(tsconfigFile, this.options.fixCompilerOptions({}, this.logger), ts.sys, ts.createEmitAndSemanticDiagnosticsBuilderProgram, (d) => diagnostic(this.logger, d), (status, newLine, _options, errorCount) => {
440
+ if (!firstStatusReport &&
441
+ errorCount === void 0 &&
442
+ !this.options.getValue("preserveWatchOutput") &&
443
+ this.logger instanceof FancyConsoleLogger) {
444
+ ts.sys.clearScreen?.();
445
+ }
446
+ firstStatusReport = false;
447
+ this.logger.info(ts.flattenDiagnosticMessageText(status.messageText, newLine));
448
+ });
449
+ let successFinished = true;
450
+ let currentProgram;
451
+ let lastProgram = currentProgram;
452
+ let restarting = false;
453
+ this._watchFile = (path, shouldRestart = false) => {
454
+ this.logger.verbose(`Watching ${nicePath(path)}, shouldRestart=${shouldRestart}`);
455
+ if (this.watchers.has(path))
456
+ return;
457
+ this.watchers.set(path, host.watchFile(path, (file) => {
458
+ if (shouldRestart) {
459
+ restartMain(file);
460
+ }
461
+ else if (!currentProgram) {
462
+ currentProgram = lastProgram;
463
+ this.logger.info(i18n.file_0_changed_rebuilding(nicePath(file)));
464
+ }
465
+ if (successFinished)
466
+ runSuccess();
467
+ }, 2000));
468
+ };
469
+ /** resolver for the returned promise */
470
+ let exitWatch;
471
+ const restartMain = (file) => {
472
+ if (restarting)
473
+ return;
474
+ this.logger.info(i18n.file_0_changed_restarting(nicePath(file)));
475
+ restarting = true;
476
+ currentProgram = undefined;
477
+ this.clearWatches();
478
+ tsWatcher.close();
479
+ };
480
+ const runSuccess = () => {
481
+ if (restarting && successFinished) {
482
+ successFinished = false;
483
+ exitWatch(true);
484
+ return;
485
+ }
486
+ if (!currentProgram) {
487
+ return;
488
+ }
489
+ if (successFinished) {
490
+ if (this.options.getValue("emit") === "both" &&
491
+ currentProgram !== lastProgram) {
492
+ currentProgram.emit();
493
+ }
494
+ // Save for possible re-run due to non-.ts file change
495
+ lastProgram = currentProgram;
496
+ this.logger.resetErrors();
497
+ this.logger.resetWarnings();
498
+ const entryPoints = getWatchEntryPoints(this.logger, this.options, currentProgram);
499
+ if (!entryPoints) {
500
+ return;
501
+ }
502
+ this.clearWatches();
503
+ this.criticalFiles.forEach((path) => this.watchFile(path, true));
504
+ const project = this.converter.convert(entryPoints);
505
+ currentProgram = undefined;
506
+ successFinished = false;
507
+ void success(project).then(() => {
508
+ successFinished = true;
509
+ runSuccess();
510
+ });
511
+ }
512
+ };
513
+ const origAfterProgramCreate = host.afterProgramCreate;
514
+ host.afterProgramCreate = (program) => {
515
+ if (!restarting &&
516
+ ts.getPreEmitDiagnostics(program.getProgram()).length === 0) {
517
+ currentProgram = program.getProgram();
518
+ runSuccess();
519
+ }
520
+ origAfterProgramCreate?.(program);
521
+ };
522
+ const tsWatcher = ts.createWatchProgram(host);
523
+ // Don't return to caller until the watch needs to restart
524
+ return await new Promise((res) => {
525
+ exitWatch = res;
526
+ });
527
+ }
528
+ validate(project) {
529
+ const checks = this.options.getValue("validation");
530
+ const start = Date.now();
531
+ // No point in validating exports when merging. Warnings will have already been emitted when
532
+ // creating the project jsons that this run merges together.
533
+ if (checks.notExported &&
534
+ this.entryPointStrategy !== EntryPointStrategy.Merge) {
535
+ validateExports(project, this.logger, this.options.getValue("intentionallyNotExported"));
536
+ }
537
+ if (checks.notDocumented) {
538
+ const packagesRequiringDocumentation = this.options.isSet("packagesRequiringDocumentation")
539
+ ? this.options.getValue("packagesRequiringDocumentation")
540
+ : [project.packageName ?? ReflectionSymbolId.UNKNOWN_PACKAGE];
541
+ validateDocumentation(project, this.logger, this.options.getValue("requiredToBeDocumented"), this.options.getValue("intentionallyNotDocumented"), packagesRequiringDocumentation);
542
+ }
543
+ if (checks.invalidLink) {
544
+ validateLinks(project, this.logger);
545
+ }
546
+ if (checks.unusedMergeModuleWith) {
547
+ validateMergeModuleWith(project, this.logger);
548
+ }
549
+ this.trigger(Application.EVENT_VALIDATE_PROJECT, project);
550
+ this.logger.verbose(`Validation took ${Date.now() - start}ms`);
551
+ }
552
+ /**
553
+ * Render outputs selected with options for the specified project
554
+ */
555
+ async generateOutputs(project) {
556
+ await this.outputs.writeOutputs(project);
557
+ }
558
+ /**
559
+ * Render HTML for the given project
560
+ */
561
+ async generateDocs(project, out) {
562
+ await this.outputs.writeOutput({
563
+ name: "html",
564
+ path: out,
565
+ }, project);
566
+ }
567
+ /**
568
+ * Write the reflections to a json file.
569
+ *
570
+ * @param out The path and file name of the target file.
571
+ * @returns Whether the JSON file could be written successfully.
572
+ */
573
+ async generateJson(project, out) {
574
+ await this.outputs.writeOutput({
575
+ name: "json",
576
+ path: out,
577
+ }, project);
578
+ }
579
+ /**
580
+ * Print the version number.
581
+ */
582
+ toString() {
583
+ return [
584
+ "",
585
+ `TypeDoc ${Application.VERSION}`,
586
+ `Using TypeScript ${this.getTypeScriptVersion()} from ${this.getTypeScriptPath()}`,
587
+ "",
588
+ ].join("\n");
589
+ }
590
+ async _convertPackages() {
591
+ if (!this.options.isSet("entryPoints")) {
592
+ this.logger.error(i18n.no_entry_points_for_packages());
593
+ return;
594
+ }
595
+ const packageDirs = getPackageDirectories(this.logger, this.options, this.options.getValue("entryPoints"));
596
+ if (packageDirs.length === 0) {
597
+ this.logger.error(i18n.failed_to_find_packages());
598
+ return;
599
+ }
600
+ const origFiles = this.files;
601
+ const origOptions = this.options;
602
+ const projects = [];
603
+ for (const opt of Object.keys(this.options.getValue("packageOptions"))) {
604
+ if (rootPackageOptions.includes(opt)) {
605
+ this.logger.warn(i18n.package_option_0_should_be_specified_at_root(opt));
606
+ }
607
+ }
608
+ const projectsToConvert = [];
609
+ // Generate a json file for each package
610
+ for (const dir of packageDirs) {
611
+ this.logger.verbose(`Reading project at ${nicePath(dir)}`);
612
+ let opts;
613
+ try {
614
+ opts = origOptions.copyForPackage(dir);
615
+ }
616
+ catch (error) {
617
+ ok(error instanceof Error);
618
+ this.logger.error(error.message);
619
+ this.logger.info(i18n.previous_error_occurred_when_reading_options_for_0(nicePath(dir)));
620
+ continue;
621
+ }
622
+ await opts.read(this.logger, dir);
623
+ // Invalid links should only be reported after everything has been merged.
624
+ // Same goes for @mergeModuleWith, should only be validated after merging
625
+ // everything together.
626
+ opts.setValue("validation", {
627
+ invalidLink: false,
628
+ unusedMergeModuleWith: false,
629
+ });
630
+ if (opts.getValue("entryPointStrategy") ===
631
+ EntryPointStrategy.Packages) {
632
+ this.logger.error(i18n.nested_packages_unsupported_0(nicePath(dir)));
633
+ continue;
634
+ }
635
+ projectsToConvert.push({ dir, options: opts });
636
+ }
637
+ for (const { dir, options } of projectsToConvert) {
638
+ this.logger.info(i18n.converting_project_at_0(nicePath(dir)));
639
+ this.options = options;
640
+ this.files = new ValidatingFileRegistry(options.getValue("basePath"));
641
+ let project = await this.convert();
642
+ if (project) {
643
+ this.validate(project);
644
+ const serialized = this.serializer.projectToObject(project, normalizePath(process.cwd()));
645
+ projects.push(serialized);
646
+ }
647
+ // When debugging memory issues, it's useful to set these
648
+ // here so that a breakpoint on the continue statement below
649
+ // gets the memory as it ought to be with all TS objects released.
650
+ project = undefined;
651
+ this.files = undefined;
652
+ // global.gc!();
653
+ continue;
654
+ }
655
+ this.options = origOptions;
656
+ this.files = origFiles;
657
+ if (projects.length !== packageDirs.length) {
658
+ this.logger.error(i18n.failed_to_convert_packages());
659
+ return;
660
+ }
661
+ this.logger.info(i18n.merging_converted_projects());
662
+ const result = this.deserializer.reviveProjects(this.options.getValue("name") || "Documentation", projects, {
663
+ projectRoot: normalizePath(process.cwd()),
664
+ registry: this.files,
665
+ alwaysCreateEntryPointModule: this.options.getValue("alwaysCreateEntryPointModule"),
666
+ });
667
+ this.converter.addProjectDocuments(result);
668
+ this.trigger(ApplicationEvents.REVIVE, result);
669
+ return result;
670
+ }
671
+ _merge() {
672
+ const start = Date.now();
673
+ if (!this.options.isSet("entryPoints")) {
674
+ this.logger.error(i18n.no_entry_points_to_merge());
675
+ return;
676
+ }
677
+ const rootDir = deriveRootDir(this.entryPoints);
678
+ const entryPoints = this.entryPoints.flatMap((entry) => {
679
+ const result = glob(entry, rootDir);
680
+ if (result.length === 0) {
681
+ // #2918 - do not pass entry through nicePath here in case it contains
682
+ // windows path separators which should cause additional warnings.
683
+ this.logger.warn(i18n.entrypoint_did_not_match_files_0(entry));
684
+ }
685
+ else if (result.length !== 1) {
686
+ this.logger.verbose(`Expanded ${entry} to:\n\t${result
687
+ .map(nicePath)
688
+ .join("\n\t")}`);
689
+ }
690
+ return result;
691
+ });
692
+ const jsonProjects = entryPoints.map((path) => {
693
+ try {
694
+ return JSON.parse(readFile(path));
695
+ }
696
+ catch {
697
+ this.logger.error(i18n.failed_to_parse_json_0(nicePath(path)));
698
+ return null;
699
+ }
700
+ });
701
+ if (this.logger.hasErrors())
702
+ return;
703
+ const result = this.deserializer.reviveProjects(this.options.getValue("name"), jsonProjects, {
704
+ projectRoot: normalizePath(process.cwd()),
705
+ registry: this.files,
706
+ alwaysCreateEntryPointModule: this.options.getValue("alwaysCreateEntryPointModule"),
707
+ });
708
+ this.converter.addProjectDocuments(result);
709
+ this.logger.verbose(`Reviving projects took ${Date.now() - start}ms`);
710
+ this.trigger(ApplicationEvents.REVIVE, result);
711
+ return result;
712
+ }
713
+ };
714
+ })();
715
+ export { Application };