@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,218 @@
1
+ import { DeclarationReflection, ProjectReflection, ReferenceReflection, ReflectionKind, SignatureReflection, } from "../../models/index.js";
2
+ import { DefaultMap, filterMap, JSX } from "#utils";
3
+ export function stringify(data) {
4
+ if (typeof data === "bigint") {
5
+ return data.toString() + "n";
6
+ }
7
+ return JSON.stringify(data);
8
+ }
9
+ export function getDisplayName(refl) {
10
+ let version = "";
11
+ if ((refl instanceof DeclarationReflection || refl instanceof ProjectReflection) && refl.packageVersion) {
12
+ version = ` - v${refl.packageVersion}`;
13
+ }
14
+ return `${refl.name}${version}`;
15
+ }
16
+ export function toStyleClass(str) {
17
+ return str.replace(/(\w)([A-Z])/g, (_m, m1, m2) => m1 + "-" + m2).toLowerCase();
18
+ }
19
+ export function getKindClass(refl) {
20
+ if (refl instanceof ReferenceReflection) {
21
+ return getKindClass(refl.getTargetReflectionDeep());
22
+ }
23
+ return ReflectionKind.classString(refl.kind);
24
+ }
25
+ /**
26
+ * Insert word break tags ``<wbr>`` into the given string.
27
+ *
28
+ * Breaks the given string at ``_``, ``-`` and capital letters.
29
+ *
30
+ * @param str The string that should be split.
31
+ * @return The original string containing ``<wbr>`` tags where possible.
32
+ */
33
+ export function wbr(str) {
34
+ // Keep this in sync with the same helper in Navigation.ts
35
+ // We use lookahead/lookbehind to indicate where the string should
36
+ // be split without consuming a character.
37
+ // (?<=[^A-Z])(?=[A-Z]) -- regular camel cased text
38
+ // (?<=[A-Z])(?=[A-Z][a-z]) -- acronym
39
+ // (?<=[_-])(?=[^_-]) -- snake
40
+ const parts = str.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);
41
+ return parts.flatMap(p => [p, JSX.createElement("wbr", null)]).slice(0, -1);
42
+ }
43
+ export function join(joiner, list, cb) {
44
+ const result = [];
45
+ for (const item of list) {
46
+ if (result.length > 0) {
47
+ result.push(joiner);
48
+ }
49
+ result.push(cb(item));
50
+ }
51
+ return JSX.createElement(JSX.Fragment, null, result);
52
+ }
53
+ export function classNames(names, extraCss) {
54
+ const css = Object.keys(names)
55
+ .filter((key) => names[key])
56
+ .concat(extraCss || "")
57
+ .join(" ")
58
+ .trim()
59
+ .replace(/\s+/g, " ");
60
+ return css.length ? css : undefined;
61
+ }
62
+ export function hasTypeParameters(reflection) {
63
+ return ((reflection instanceof DeclarationReflection || reflection instanceof SignatureReflection) &&
64
+ reflection.typeParameters != null &&
65
+ reflection.typeParameters.length > 0);
66
+ }
67
+ export function renderTypeParametersSignature(context, typeParameters) {
68
+ if (!typeParameters || typeParameters.length === 0)
69
+ return JSX.createElement(JSX.Fragment, null);
70
+ return (JSX.createElement(JSX.Fragment, null,
71
+ JSX.createElement("span", { class: "tsd-signature-symbol" }, "<"),
72
+ join(JSX.createElement("span", { class: "tsd-signature-symbol" }, ", "), typeParameters, (item) => (JSX.createElement(JSX.Fragment, null,
73
+ (item.flags.isConst || item.varianceModifier) && (JSX.createElement("span", { class: "tsd-signature-keyword" },
74
+ item.flags.isConst && "const ",
75
+ item.varianceModifier && `${item.varianceModifier} `)),
76
+ JSX.createElement("span", { class: "tsd-signature-type tsd-kind-type-parameter" }, item.name),
77
+ !!item.type && (JSX.createElement(JSX.Fragment, null,
78
+ " ",
79
+ JSX.createElement("span", { class: "tsd-signature-keyword" }, "extends"),
80
+ " ",
81
+ context.type(item.type)))))),
82
+ JSX.createElement("span", { class: "tsd-signature-symbol" }, ">")));
83
+ }
84
+ /**
85
+ * Renders the reflection name with an additional `?` if optional.
86
+ */
87
+ export function renderName(refl) {
88
+ if (refl.flags.isOptional) {
89
+ return JSX.createElement(JSX.Fragment, null,
90
+ wbr(refl.name),
91
+ "?");
92
+ }
93
+ return wbr(refl.name);
94
+ }
95
+ // This is cached to avoid slowness with large projects.
96
+ const rootsCache = new WeakMap();
97
+ export function getHierarchyRoots(project) {
98
+ const cached = rootsCache.get(project);
99
+ if (cached)
100
+ return cached;
101
+ const allClasses = project.getReflectionsByKind(ReflectionKind.ClassOrInterface);
102
+ const roots = allClasses.filter((refl) => {
103
+ // If nobody extends this class, there's no possible hierarchy to display.
104
+ if (!refl.implementedBy && !refl.extendedBy) {
105
+ return false;
106
+ }
107
+ // If we don't extend anything, then we are a root
108
+ if (!refl.implementedTypes && !refl.extendedTypes) {
109
+ return true;
110
+ }
111
+ // We might still be a root, if our extended/implemented types are not included
112
+ // in the documentation.
113
+ const types = [...(refl.implementedTypes || []), ...(refl.extendedTypes || [])];
114
+ return types.every((type) => !type.visit({
115
+ reference(ref) {
116
+ return ref.reflection !== undefined;
117
+ },
118
+ }));
119
+ });
120
+ const result = roots.sort((a, b) => a.name.localeCompare(b.name));
121
+ rootsCache.set(project, result);
122
+ return result;
123
+ }
124
+ export function isNoneSection(section) {
125
+ return section.title.toLocaleLowerCase() === "none";
126
+ }
127
+ function sortNoneSectionFirst(a, b) {
128
+ if (isNoneSection(a)) {
129
+ return -1;
130
+ }
131
+ if (isNoneSection(b)) {
132
+ return 1;
133
+ }
134
+ return 0;
135
+ }
136
+ export function getMemberSections(parent, childFilter = () => true) {
137
+ if (parent.categories?.length) {
138
+ return filterMap(parent.categories, (cat) => {
139
+ const children = cat.children.filter(childFilter);
140
+ if (!children.length)
141
+ return;
142
+ return {
143
+ title: cat.title,
144
+ description: cat.description,
145
+ children,
146
+ };
147
+ }).sort(sortNoneSectionFirst);
148
+ }
149
+ if (parent.groups?.length) {
150
+ return parent.groups.flatMap((group) => {
151
+ if (group.categories?.length) {
152
+ return filterMap(group.categories.slice().sort(sortNoneSectionFirst), (cat) => {
153
+ const children = cat.children.filter(childFilter);
154
+ if (!children.length)
155
+ return;
156
+ return {
157
+ title: isNoneSection(cat) ? group.title : `${group.title} - ${cat.title}`,
158
+ description: cat.description,
159
+ children,
160
+ };
161
+ });
162
+ }
163
+ const children = group.children.filter(childFilter);
164
+ if (!children.length)
165
+ return [];
166
+ return {
167
+ title: group.title,
168
+ description: group.description,
169
+ children,
170
+ };
171
+ }).sort(sortNoneSectionFirst);
172
+ }
173
+ if (parent.children?.length) {
174
+ return [{
175
+ title: "none",
176
+ children: parent.children || [],
177
+ }];
178
+ }
179
+ return [];
180
+ }
181
+ const nameCollisionCache = new WeakMap();
182
+ function getNameCollisionCount(project, name) {
183
+ let collisions = nameCollisionCache.get(project);
184
+ if (collisions === undefined) {
185
+ collisions = new DefaultMap(() => 0);
186
+ for (const reflection of project.getReflectionsByKind(ReflectionKind.SomeExport)) {
187
+ collisions.set(reflection.name, collisions.get(reflection.name) + 1);
188
+ }
189
+ nameCollisionCache.set(project, collisions);
190
+ }
191
+ return collisions.get(name);
192
+ }
193
+ function getNamespacedPath(reflection) {
194
+ const path = [reflection];
195
+ let parent = reflection.parent;
196
+ while (parent?.kindOf(ReflectionKind.Namespace)) {
197
+ path.unshift(parent);
198
+ parent = parent.parent;
199
+ }
200
+ return path;
201
+ }
202
+ /**
203
+ * Returns a (hopefully) globally unique path for the given reflection.
204
+ *
205
+ * This only works for exportable symbols, so e.g. methods are not affected by this.
206
+ *
207
+ * If the given reflection has a globally unique name already, then it will be returned as is. If the name is
208
+ * ambiguous (i.e. there are two classes with the same name in different namespaces), then the namespaces path of the
209
+ * reflection will be returned.
210
+ */
211
+ export function getUniquePath(reflection) {
212
+ if (reflection.kindOf(ReflectionKind.SomeExport)) {
213
+ if (getNameCollisionCount(reflection.project, reflection.name) >= 2) {
214
+ return getNamespacedPath(reflection);
215
+ }
216
+ }
217
+ return [reflection];
218
+ }
@@ -0,0 +1,22 @@
1
+ import type { Serializer } from "./serializer.js";
2
+ import type { ModelToObject } from "./schema.js";
3
+ /**
4
+ * Represents Serializer plugin component.
5
+ *
6
+ * Like Converter plugins each {@link Serializer} plugin defines a predicate that instructs if an
7
+ * object can be serialized by it. This is done dynamically at runtime via a `supports` method.
8
+ */
9
+ export interface SerializerComponent<T extends object> {
10
+ /**
11
+ * The priority this serializer should be executed with.
12
+ * A higher priority means the {@link Serializer} will be applied earlier.
13
+ */
14
+ readonly priority: number;
15
+ /**
16
+ * Technically this should return `item is T`, but that doesn't play nicely
17
+ * with inference, so allow the looser `boolean` return type.
18
+ * @param item
19
+ */
20
+ supports(item: unknown): boolean;
21
+ toObject(item: T, obj: Partial<ModelToObject<T>>, serializer: Serializer): Partial<ModelToObject<T>>;
22
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,70 @@
1
+ import { type FileId, type FileRegistry, ProjectReflection, type ReflectionId, type ReflectionVariant, type TypeKindMap } from "#models";
2
+ import { type Logger, type NormalizedPath } from "#utils";
3
+ import * as JSONOutput from "./schema.js";
4
+ export interface DeserializerComponent {
5
+ priority: number;
6
+ supports(model: unknown, obj: unknown): boolean;
7
+ fromObject(model: unknown, obj: unknown): void;
8
+ }
9
+ export interface Deserializable<T> {
10
+ fromObject(d: Deserializer, o: T): void;
11
+ }
12
+ /**
13
+ * Deserializes TypeDoc's JSON output back to {@link Reflection} instances.
14
+ *
15
+ * @group None
16
+ * @summary Deserializes TypeDoc's JSON output
17
+ */
18
+ export declare class Deserializer {
19
+ logger: Logger;
20
+ private deferred;
21
+ private deserializers;
22
+ private activeReflection;
23
+ reflectionBuilders: {
24
+ [K in keyof ReflectionVariant]: (parent: NonNullable<ReflectionVariant[K]["parent"]>, obj: JSONOutput.ModelToObject<ReflectionVariant[K]>) => ReflectionVariant[K];
25
+ };
26
+ typeBuilders: {
27
+ [K in keyof TypeKindMap]: (obj: JSONOutput.ModelToObject<TypeKindMap[K]>, de: Deserializer) => TypeKindMap[K];
28
+ };
29
+ /**
30
+ * Only set when deserializing.
31
+ */
32
+ projectRoot: NormalizedPath;
33
+ oldIdToNewId: Record<ReflectionId, ReflectionId | undefined>;
34
+ oldFileIdToNewFileId: Record<FileId, FileId | undefined>;
35
+ project: ProjectReflection | undefined;
36
+ constructor(logger: Logger);
37
+ addDeserializer(de: DeserializerComponent): void;
38
+ /**
39
+ * Revive a single project into the structure it was originally created with.
40
+ * This is generally not appropriate for merging multiple projects since projects may
41
+ * contain reflections in their root, not inside a module.
42
+ */
43
+ reviveProject(name: string, projectObj: JSONOutput.ProjectReflection, options: {
44
+ projectRoot: NormalizedPath;
45
+ registry: FileRegistry;
46
+ }): ProjectReflection;
47
+ reviveProjects(name: string, projects: readonly JSONOutput.ProjectReflection[], options: {
48
+ projectRoot: NormalizedPath;
49
+ registry: FileRegistry;
50
+ alwaysCreateEntryPointModule: boolean;
51
+ }): ProjectReflection;
52
+ revive<T extends object, U extends Deserializable<T>>(source: NonNullable<T>, creator: (obj: T) => U): U;
53
+ revive<T extends object, U extends Deserializable<T>>(source: T | undefined, creator: (obj: T) => U): U | undefined;
54
+ reviveMany<T, U extends Deserializable<T>>(sourceArray: T[], creator: (obj: T) => U): U[];
55
+ reviveMany<T, U extends Deserializable<T>>(sourceArray: T[] | undefined, creator: (obj: T) => U): U[] | undefined;
56
+ reviveType<T extends JSONOutput.SomeType>(obj: T): TypeKindMap[T["type"]];
57
+ reviveType<T extends JSONOutput.SomeType>(obj: T | undefined): TypeKindMap[T["type"]] | undefined;
58
+ constructReflection<T extends JSONOutput.SomeReflection>(obj: T): ReflectionVariant[T["variant"]];
59
+ constructType<T extends JSONOutput.SomeType>(obj: T): TypeKindMap[T["type"]];
60
+ fromObject<T>(receiver: {
61
+ fromObject(d: Deserializer, o: T): void;
62
+ }, obj: T): void;
63
+ /**
64
+ * Defers work until the initial pass of serialization has been completed.
65
+ * This can be used to set up references which cannot be immediately restored.
66
+ *
67
+ * May only be called when deserializing.
68
+ */
69
+ defer(cb: (project: ProjectReflection) => void): void;
70
+ }
@@ -0,0 +1,235 @@
1
+ import { ArrayType, ConditionalType, DeclarationReflection, DocumentReflection, IndexedAccessType, InferredType, IntersectionType, IntrinsicType, LiteralType, MappedType, NamedTupleMember, OptionalType, ParameterReflection, PredicateType, ProjectReflection, QueryType, ReferenceReflection, ReferenceType, Reflection, ReflectionKind, ReflectionType, RestType, SignatureReflection, TemplateLiteralType, TupleType, TypeOperatorType, TypeParameterReflection, UnionType, UnknownType, } from "#models";
2
+ import { assert, insertPrioritySorted } from "#utils";
3
+ import * as JSONOutput from "./schema.js";
4
+ const supportedSchemaVersions = [JSONOutput.SCHEMA_VERSION];
5
+ /**
6
+ * Deserializes TypeDoc's JSON output back to {@link Reflection} instances.
7
+ *
8
+ * @group None
9
+ * @summary Deserializes TypeDoc's JSON output
10
+ */
11
+ export class Deserializer {
12
+ logger;
13
+ deferred = [];
14
+ deserializers = [];
15
+ activeReflection = [];
16
+ reflectionBuilders = {
17
+ declaration(parent, obj) {
18
+ return new DeclarationReflection(obj.name, obj.kind, parent);
19
+ },
20
+ document(parent, obj) {
21
+ return new DocumentReflection(obj.name, parent, [], {});
22
+ },
23
+ param(parent, obj) {
24
+ return new ParameterReflection(obj.name, obj.kind, parent);
25
+ },
26
+ project() {
27
+ throw new Error("Not supported, use Deserializer.reviveProject(s) instead.");
28
+ },
29
+ reference(parent, obj) {
30
+ // Ugly, but we don't have a reference yet!
31
+ return new ReferenceReflection(obj.name,
32
+ /* target */ parent, parent);
33
+ },
34
+ signature(parent, obj) {
35
+ return new SignatureReflection(obj.name, obj.kind, parent);
36
+ },
37
+ typeParam(parent, obj) {
38
+ return new TypeParameterReflection(obj.name, parent, void 0);
39
+ },
40
+ };
41
+ typeBuilders = {
42
+ array(obj, de) {
43
+ return new ArrayType(de.reviveType(obj.elementType));
44
+ },
45
+ conditional(obj, de) {
46
+ return new ConditionalType(de.reviveType(obj.checkType), de.reviveType(obj.extendsType), de.reviveType(obj.trueType), de.reviveType(obj.falseType));
47
+ },
48
+ indexedAccess(obj, de) {
49
+ return new IndexedAccessType(de.reviveType(obj.objectType), de.reviveType(obj.indexType));
50
+ },
51
+ inferred(obj, de) {
52
+ return new InferredType(obj.name, de.reviveType(obj.constraint));
53
+ },
54
+ intersection(obj, de) {
55
+ return new IntersectionType(obj.types.map((t) => de.reviveType(t)));
56
+ },
57
+ intrinsic(obj) {
58
+ return new IntrinsicType(obj.name);
59
+ },
60
+ literal(obj) {
61
+ if (typeof obj.value === "object" && obj.value != null) {
62
+ return new LiteralType(BigInt(`${obj.value.negative ? "-" : ""}${obj.value.value}`));
63
+ }
64
+ return new LiteralType(obj.value);
65
+ },
66
+ mapped(obj, de) {
67
+ return new MappedType(obj.parameter, de.reviveType(obj.parameterType), de.reviveType(obj.templateType), obj.readonlyModifier, obj.optionalModifier, de.reviveType(obj.nameType));
68
+ },
69
+ optional(obj, de) {
70
+ return new OptionalType(de.reviveType(obj.elementType));
71
+ },
72
+ predicate(obj, de) {
73
+ return new PredicateType(obj.name, obj.asserts, de.reviveType(obj.targetType));
74
+ },
75
+ query(obj, de) {
76
+ return new QueryType(de.reviveType(obj.queryType));
77
+ },
78
+ reference(obj) {
79
+ // Correct reference will be restored in fromObject
80
+ return ReferenceType.createResolvedReference(obj.name, -2, null);
81
+ },
82
+ reflection(obj, de) {
83
+ return new ReflectionType(de.revive(obj.declaration, (o) => de.constructReflection(o)));
84
+ },
85
+ rest(obj, de) {
86
+ return new RestType(de.reviveType(obj.elementType));
87
+ },
88
+ templateLiteral(obj, de) {
89
+ return new TemplateLiteralType(obj.head, obj.tail.map(([t, s]) => [de.reviveType(t), s]));
90
+ },
91
+ tuple(obj, de) {
92
+ return new TupleType(obj.elements?.map((t) => de.reviveType(t)) || []);
93
+ },
94
+ namedTupleMember(obj, de) {
95
+ return new NamedTupleMember(obj.name, obj.isOptional, de.reviveType(obj.element));
96
+ },
97
+ typeOperator(obj, de) {
98
+ return new TypeOperatorType(de.reviveType(obj.target), obj.operator);
99
+ },
100
+ union(obj, de) {
101
+ return new UnionType(obj.types.map((t) => de.reviveType(t)));
102
+ },
103
+ unknown(obj) {
104
+ return new UnknownType(obj.name);
105
+ },
106
+ };
107
+ /**
108
+ * Only set when deserializing.
109
+ */
110
+ projectRoot;
111
+ oldIdToNewId = {};
112
+ oldFileIdToNewFileId = {};
113
+ project;
114
+ constructor(logger) {
115
+ this.logger = logger;
116
+ }
117
+ addDeserializer(de) {
118
+ insertPrioritySorted(this.deserializers, de);
119
+ }
120
+ /**
121
+ * Revive a single project into the structure it was originally created with.
122
+ * This is generally not appropriate for merging multiple projects since projects may
123
+ * contain reflections in their root, not inside a module.
124
+ */
125
+ reviveProject(name, projectObj, options) {
126
+ assert(this.deferred.length === 0, "Deserializer.defer was called when not deserializing");
127
+ if (!supportedSchemaVersions.includes(projectObj.schemaVersion)) {
128
+ throw new Error(`Attempted to deserialize version "${projectObj.schemaVersion}" JSON, which is not supported. Supported versions: ${supportedSchemaVersions.join(", ")}`);
129
+ }
130
+ const project = new ProjectReflection(name || projectObj.name, options.registry);
131
+ this.project = project;
132
+ this.projectRoot = options.projectRoot;
133
+ this.oldIdToNewId = { [projectObj.id]: project.id };
134
+ this.oldFileIdToNewFileId = {};
135
+ this.fromObject(project, projectObj);
136
+ const deferred = this.deferred;
137
+ this.deferred = [];
138
+ for (const def of deferred) {
139
+ def(project);
140
+ }
141
+ assert(this.deferred.length === 0, "Work may not be double deferred when deserializing.");
142
+ assert(this.activeReflection.length === 0, "Imbalanced reflection deserialization");
143
+ this.project = undefined;
144
+ this.projectRoot = undefined;
145
+ this.oldIdToNewId = {};
146
+ this.oldFileIdToNewFileId = {};
147
+ return project;
148
+ }
149
+ reviveProjects(name, projects, options) {
150
+ if (projects.length === 1 &&
151
+ !options.alwaysCreateEntryPointModule) {
152
+ return this.reviveProject(name, projects[0], options);
153
+ }
154
+ const project = new ProjectReflection(name, options.registry);
155
+ this.project = project;
156
+ this.projectRoot = options.projectRoot;
157
+ for (const proj of projects) {
158
+ assert(this.deferred.length === 0, "Deserializer.defer was called when not deserializing");
159
+ if (!supportedSchemaVersions.includes(proj.schemaVersion)) {
160
+ throw new Error(`Attempted to deserialize version "${proj.schemaVersion}" JSON, which is not supported. Supported versions: ${supportedSchemaVersions.join(", ")}`);
161
+ }
162
+ const projModule = new DeclarationReflection(proj.name, ReflectionKind.Module, project);
163
+ project.registerReflection(projModule, undefined, undefined);
164
+ project.addChild(projModule);
165
+ this.oldIdToNewId = { [proj.id]: projModule.id };
166
+ this.oldFileIdToNewFileId = {};
167
+ this.fromObject(projModule, proj);
168
+ const deferred = this.deferred;
169
+ this.deferred = [];
170
+ for (const def of deferred) {
171
+ def(project);
172
+ }
173
+ assert(this.deferred.length === 0, "Work may not be double deferred when deserializing.");
174
+ assert(this.activeReflection.length === 0, "Imbalanced reflection deserialization");
175
+ }
176
+ this.oldIdToNewId = {};
177
+ this.oldFileIdToNewFileId = {};
178
+ this.project = undefined;
179
+ this.projectRoot = undefined;
180
+ return project;
181
+ }
182
+ revive(source, creator) {
183
+ if (source) {
184
+ const revived = creator(source);
185
+ this.fromObject(revived, source);
186
+ return revived;
187
+ }
188
+ }
189
+ reviveMany(sourceArray, creator) {
190
+ if (sourceArray) {
191
+ return sourceArray.map((item) => {
192
+ const revived = creator(item);
193
+ this.fromObject(revived, item);
194
+ return revived;
195
+ });
196
+ }
197
+ }
198
+ reviveType(obj) {
199
+ return this.revive(obj, (o) => this.constructType(o));
200
+ }
201
+ constructReflection(obj) {
202
+ assert(this.activeReflection.length > 0);
203
+ const result = this.reflectionBuilders[obj.variant](this.activeReflection[this.activeReflection.length - 1], obj);
204
+ this.oldIdToNewId[obj.id] = result.id;
205
+ this.project.registerReflection(result, undefined, undefined);
206
+ return result;
207
+ }
208
+ constructType(obj) {
209
+ const result = this.typeBuilders[obj.type](obj, this);
210
+ return result;
211
+ }
212
+ fromObject(receiver, obj) {
213
+ if (receiver instanceof Reflection) {
214
+ this.activeReflection.push(receiver);
215
+ }
216
+ receiver.fromObject(this, obj);
217
+ for (const de of this.deserializers) {
218
+ if (de.supports(receiver, obj)) {
219
+ de.fromObject(receiver, obj);
220
+ }
221
+ }
222
+ if (receiver instanceof Reflection) {
223
+ this.activeReflection.pop();
224
+ }
225
+ }
226
+ /**
227
+ * Defers work until the initial pass of serialization has been completed.
228
+ * This can be used to set up references which cannot be immediately restored.
229
+ *
230
+ * May only be called when deserializing.
231
+ */
232
+ defer(cb) {
233
+ this.deferred.push(cb);
234
+ }
235
+ }
@@ -0,0 +1,17 @@
1
+ import type { ProjectReflection } from "#models";
2
+ import type { ProjectReflection as JSONProjectReflection } from "./schema.js";
3
+ /**
4
+ * An event emitted by the {@link Serializer} class at the very beginning and
5
+ * ending of the a project serialization process.
6
+ *
7
+ * @see {@link Serializer.EVENT_BEGIN}
8
+ * @see {@link Serializer.EVENT_END}
9
+ */
10
+ export declare class SerializeEvent {
11
+ /**
12
+ * The project the renderer is currently processing.
13
+ */
14
+ readonly project: ProjectReflection;
15
+ output: JSONProjectReflection | undefined;
16
+ constructor(project: ProjectReflection, output?: JSONProjectReflection);
17
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * An event emitted by the {@link Serializer} class at the very beginning and
3
+ * ending of the a project serialization process.
4
+ *
5
+ * @see {@link Serializer.EVENT_BEGIN}
6
+ * @see {@link Serializer.EVENT_END}
7
+ */
8
+ export class SerializeEvent {
9
+ /**
10
+ * The project the renderer is currently processing.
11
+ */
12
+ project;
13
+ output;
14
+ constructor(project, output) {
15
+ this.project = project;
16
+ this.output = output;
17
+ }
18
+ }
@@ -0,0 +1,5 @@
1
+ export type { SerializerComponent } from "./components.js";
2
+ export { type Deserializable, Deserializer, type DeserializerComponent } from "./deserializer.js";
3
+ export { SerializeEvent } from "./events.js";
4
+ export * as JSONOutput from "./schema.js";
5
+ export { Serializer, type SerializerEvents } from "./serializer.js";
@@ -0,0 +1,4 @@
1
+ export { Deserializer } from "./deserializer.js";
2
+ export { SerializeEvent } from "./events.js";
3
+ export * as JSONOutput from "./schema.js";
4
+ export { Serializer } from "./serializer.js";