typedoc 0.28.19 → 0.28.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/bin/typedoc +1 -1
  2. package/dist/browser-utils.js +29 -2
  3. package/dist/cli.js +111 -0
  4. package/dist/index.js +17888 -44
  5. package/dist/models.js +3736 -0
  6. package/dist/node-utils.js +7018 -0
  7. package/dist/serialization.js +430 -0
  8. package/dist/{lib → types}/application-events.d.ts +2 -0
  9. package/dist/{lib → types}/application.d.ts +51 -8
  10. package/dist/{lib → types}/converter/comments/declarationReferenceResolver.d.ts +1 -1
  11. package/dist/{lib → types}/converter/comments/discovery.d.ts +3 -3
  12. package/dist/{lib → types}/converter/comments/index.d.ts +4 -4
  13. package/dist/{lib → types}/converter/comments/lexer.d.ts +1 -1
  14. package/dist/{lib → types}/converter/comments/linkResolver.d.ts +1 -1
  15. package/dist/{lib → types}/converter/comments/parser.d.ts +3 -4
  16. package/dist/{lib → types}/converter/comments/textParser.d.ts +8 -2
  17. package/dist/{lib → types}/converter/components.d.ts +1 -1
  18. package/dist/{lib → types}/converter/context.d.ts +2 -2
  19. package/dist/{lib → types}/converter/converter.d.ts +6 -8
  20. package/dist/{lib → types}/converter/factories/signature.d.ts +1 -1
  21. package/dist/{lib → types}/converter/index.d.ts +1 -0
  22. package/dist/{lib → types}/converter/plugins/CategoryPlugin.d.ts +2 -2
  23. package/dist/{lib → types}/converter/plugins/GroupPlugin.d.ts +2 -3
  24. package/dist/{lib → types}/converter/plugins/IncludePlugin.d.ts +1 -1
  25. package/dist/{lib → types}/converter/plugins/InheritDocPlugin.d.ts +1 -1
  26. package/dist/{lib → types}/converter/plugins/LinkResolverPlugin.d.ts +3 -3
  27. package/dist/{lib → types}/converter/plugins/SourcePlugin.d.ts +1 -2
  28. package/dist/{lib → types}/converter/plugins/TypePlugin.d.ts +1 -1
  29. package/dist/{lib → types}/converter/types.d.ts +1 -1
  30. package/dist/{lib/converter/utils → types/converter/utilities}/reflections.d.ts +1 -1
  31. package/dist/{lib/converter/utils → types/converter/utilities}/repository.d.ts +14 -13
  32. package/dist/{index.d.ts → types/index.d.ts} +15 -16
  33. package/dist/{lib → types}/internationalization/internationalization.d.ts +0 -8
  34. package/dist/types/internationalization/locale-utils.d.ts +3 -0
  35. package/dist/types/internationalization/locales/de.d.ts +368 -0
  36. package/dist/{lib/internationalization/locales/en.d.cts → types/internationalization/locales/en.d.ts} +2 -1
  37. package/dist/types/internationalization/locales/fr.d.ts +346 -0
  38. package/dist/types/internationalization/locales/ja.d.ts +307 -0
  39. package/dist/types/internationalization/locales/ko.d.ts +221 -0
  40. package/dist/types/internationalization/locales/zh.d.ts +452 -0
  41. package/dist/{lib → types}/internationalization/translatable.d.ts +1 -1
  42. package/dist/{lib → types}/models/FileRegistry.d.ts +5 -0
  43. package/dist/{lib → types}/models/ReflectionSymbolId.d.ts +9 -3
  44. package/dist/{lib → types}/models/SourceReference.d.ts +5 -3
  45. package/dist/types/models.d.ts +1 -0
  46. package/dist/types/node-utils.d.ts +1 -0
  47. package/dist/{lib → types}/output/components.d.ts +3 -3
  48. package/dist/{lib → types}/output/events.d.ts +1 -2
  49. package/dist/{lib → types}/output/formatter.d.ts +1 -2
  50. package/dist/{lib → types}/output/output.d.ts +2 -2
  51. package/dist/{lib → types}/output/renderer.d.ts +4 -5
  52. package/dist/{lib → types}/output/router.d.ts +2 -2
  53. package/dist/{lib → types}/output/themes/MarkedPlugin.d.ts +3 -3
  54. package/dist/{lib → types}/output/themes/default/DefaultTheme.d.ts +1 -1
  55. package/dist/{lib → types}/output/themes/default/DefaultThemeRenderContext.d.ts +25 -25
  56. package/dist/{lib → types}/output/themes/default/layouts/default.d.ts +1 -1
  57. package/dist/{lib → types}/output/themes/default/partials/anchor-icon.d.ts +1 -1
  58. package/dist/{lib → types}/output/themes/default/partials/breadcrumb.d.ts +1 -1
  59. package/dist/{lib → types}/output/themes/default/partials/comment.d.ts +1 -1
  60. package/dist/{lib → types}/output/themes/default/partials/header.d.ts +1 -1
  61. package/dist/{lib → types}/output/themes/default/partials/hierarchy.d.ts +1 -1
  62. package/dist/{lib → types}/output/themes/default/partials/icon.d.ts +1 -1
  63. package/dist/{lib → types}/output/themes/default/partials/index.d.ts +1 -1
  64. package/dist/{lib → types}/output/themes/default/partials/member.d.ts +1 -1
  65. package/dist/{lib → types}/output/themes/default/partials/member.getterSetter.d.ts +1 -1
  66. package/dist/{lib → types}/output/themes/default/partials/member.signature.body.d.ts +1 -1
  67. package/dist/{lib → types}/output/themes/default/partials/member.signature.title.d.ts +2 -2
  68. package/dist/{lib → types}/output/themes/default/partials/member.signatures.d.ts +1 -1
  69. package/dist/{lib → types}/output/themes/default/partials/member.sources.d.ts +1 -1
  70. package/dist/{lib → types}/output/themes/default/partials/members.d.ts +1 -1
  71. package/dist/{lib → types}/output/themes/default/partials/moduleReflection.d.ts +1 -1
  72. package/dist/{lib → types}/output/themes/default/partials/navigation.d.ts +1 -1
  73. package/dist/{lib → types}/output/themes/default/partials/reflectionPreview.d.ts +1 -1
  74. package/dist/{lib → types}/output/themes/default/partials/toolbar.d.ts +1 -1
  75. package/dist/{lib → types}/output/themes/default/partials/type.d.ts +2 -2
  76. package/dist/{lib → types}/output/themes/default/partials/typeDetails.d.ts +2 -2
  77. package/dist/{lib → types}/output/themes/default/partials/typeParameters.d.ts +1 -1
  78. package/dist/{lib → types}/output/themes/default/templates/document.d.ts +1 -1
  79. package/dist/{lib → types}/output/themes/default/templates/hierarchy.d.ts +1 -1
  80. package/dist/{lib → types}/output/themes/default/templates/index.d.ts +1 -1
  81. package/dist/{lib → types}/output/themes/default/templates/reflection.d.ts +1 -1
  82. package/dist/{lib → types}/output/themes/lib.d.ts +1 -1
  83. package/dist/types/serialization.d.ts +1 -0
  84. package/dist/types/tsconfig.tsbuildinfo +1 -0
  85. package/dist/{lib → types}/utils/ValidatingFileRegistry.d.ts +1 -1
  86. package/dist/{lib → types}/utils/entry-point.d.ts +2 -2
  87. package/dist/{lib → types}/utils/general.d.ts +3 -0
  88. package/dist/types/utils/index.d.ts +22 -0
  89. package/dist/{lib → types}/utils/options/declaration.d.ts +1 -1
  90. package/dist/{lib → types}/utils/options/defaults.d.ts +1 -1
  91. package/dist/{lib → types}/utils/options/index.d.ts +2 -1
  92. package/dist/{lib → types}/utils/options/options.d.ts +1 -1
  93. package/dist/{lib → types}/utils/options/tsdoc-defaults.d.ts +1 -1
  94. package/dist/{lib → types}/utils/reflections.d.ts +1 -1
  95. package/dist/{lib → types}/utils/sort.d.ts +1 -2
  96. package/dist/{lib → types}/utils-common/general.d.ts +4 -4
  97. package/dist/types/utils-common.d.ts +1 -0
  98. package/dist/{lib → types}/validation/documentation.d.ts +1 -1
  99. package/dist/{lib → types}/validation/exports.d.ts +1 -1
  100. package/dist/types/validation/filePaths.d.ts +3 -0
  101. package/dist/{lib → types}/validation/links.d.ts +1 -1
  102. package/dist/{lib → types}/validation/unusedMergeModuleWith.d.ts +1 -1
  103. package/dist/utils-common.js +1311 -0
  104. package/package.json +45 -36
  105. package/static/main.js +1 -1
  106. package/static/style.css +18 -3
  107. package/tsdoc.json +4 -0
  108. package/typedoc-config.schema.json +1 -0
  109. package/dist/lib/application-events.js +0 -5
  110. package/dist/lib/application.js +0 -716
  111. package/dist/lib/cli.js +0 -111
  112. package/dist/lib/converter/comments/blockLexer.js +0 -391
  113. package/dist/lib/converter/comments/declarationReferenceResolver.js +0 -218
  114. package/dist/lib/converter/comments/discovery.js +0 -567
  115. package/dist/lib/converter/comments/index.js +0 -241
  116. package/dist/lib/converter/comments/lexer.js +0 -10
  117. package/dist/lib/converter/comments/lineLexer.js +0 -279
  118. package/dist/lib/converter/comments/linkResolver.js +0 -186
  119. package/dist/lib/converter/comments/parser.js +0 -538
  120. package/dist/lib/converter/comments/rawLexer.js +0 -218
  121. package/dist/lib/converter/comments/tagName.js +0 -58
  122. package/dist/lib/converter/comments/textParser.js +0 -372
  123. package/dist/lib/converter/components.js +0 -3
  124. package/dist/lib/converter/context.js +0 -311
  125. package/dist/lib/converter/convert-expression.js +0 -58
  126. package/dist/lib/converter/converter-events.js +0 -13
  127. package/dist/lib/converter/converter.js +0 -705
  128. package/dist/lib/converter/factories/index-signature.js +0 -50
  129. package/dist/lib/converter/factories/signature.js +0 -353
  130. package/dist/lib/converter/factories/symbol-id.js +0 -50
  131. package/dist/lib/converter/index.js +0 -3
  132. package/dist/lib/converter/jsdoc.js +0 -135
  133. package/dist/lib/converter/plugins/CategoryPlugin.js +0 -278
  134. package/dist/lib/converter/plugins/CommentPlugin.js +0 -770
  135. package/dist/lib/converter/plugins/GroupPlugin.js +0 -281
  136. package/dist/lib/converter/plugins/ImplementsPlugin.js +0 -438
  137. package/dist/lib/converter/plugins/IncludePlugin.js +0 -254
  138. package/dist/lib/converter/plugins/InheritDocPlugin.js +0 -220
  139. package/dist/lib/converter/plugins/LinkResolverPlugin.js +0 -88
  140. package/dist/lib/converter/plugins/MergeModuleWithPlugin.js +0 -50
  141. package/dist/lib/converter/plugins/PackagePlugin.js +0 -188
  142. package/dist/lib/converter/plugins/SourcePlugin.js +0 -215
  143. package/dist/lib/converter/plugins/TypePlugin.js +0 -108
  144. package/dist/lib/converter/plugins/index.js +0 -10
  145. package/dist/lib/converter/symbols.js +0 -861
  146. package/dist/lib/converter/types.js +0 -833
  147. package/dist/lib/converter/utils/nodes.js +0 -26
  148. package/dist/lib/converter/utils/reflections.js +0 -17
  149. package/dist/lib/converter/utils/repository.js +0 -295
  150. package/dist/lib/converter/utils/symbols.js +0 -12
  151. package/dist/lib/debug/index.js +0 -2
  152. package/dist/lib/debug/reflectionLifetimes.js +0 -27
  153. package/dist/lib/debug/rendererUrls.js +0 -68
  154. package/dist/lib/internationalization/index.js +0 -7
  155. package/dist/lib/internationalization/internationalization.js +0 -64
  156. package/dist/lib/internationalization/locale-utils.cjs +0 -8
  157. package/dist/lib/internationalization/locale-utils.d.cts +0 -8
  158. package/dist/lib/internationalization/locales/de.cjs +0 -401
  159. package/dist/lib/internationalization/locales/de.d.cts +0 -368
  160. package/dist/lib/internationalization/locales/en.cjs +0 -411
  161. package/dist/lib/internationalization/locales/fr.cjs +0 -347
  162. package/dist/lib/internationalization/locales/fr.d.cts +0 -346
  163. package/dist/lib/internationalization/locales/ja.cjs +0 -320
  164. package/dist/lib/internationalization/locales/ja.d.cts +0 -307
  165. package/dist/lib/internationalization/locales/ko.cjs +0 -233
  166. package/dist/lib/internationalization/locales/ko.d.cts +0 -221
  167. package/dist/lib/internationalization/locales/zh.cjs +0 -488
  168. package/dist/lib/internationalization/locales/zh.d.cts +0 -452
  169. package/dist/lib/internationalization/translatable.js +0 -8
  170. package/dist/lib/models/Comment.js +0 -534
  171. package/dist/lib/models/ContainerReflection.js +0 -159
  172. package/dist/lib/models/DeclarationReflection.js +0 -287
  173. package/dist/lib/models/DocumentReflection.js +0 -66
  174. package/dist/lib/models/FileRegistry.js +0 -133
  175. package/dist/lib/models/ParameterReflection.js +0 -39
  176. package/dist/lib/models/ProjectReflection.js +0 -417
  177. package/dist/lib/models/ReferenceReflection.js +0 -85
  178. package/dist/lib/models/Reflection.js +0 -495
  179. package/dist/lib/models/ReflectionCategory.js +0 -56
  180. package/dist/lib/models/ReflectionGroup.js +0 -72
  181. package/dist/lib/models/ReflectionSymbolId.js +0 -85
  182. package/dist/lib/models/SignatureReflection.js +0 -96
  183. package/dist/lib/models/SourceReference.js +0 -50
  184. package/dist/lib/models/TypeParameterReflection.js +0 -45
  185. package/dist/lib/models/index.js +0 -19
  186. package/dist/lib/models/kind.js +0 -231
  187. package/dist/lib/models/types.js +0 -1296
  188. package/dist/lib/models/utils.js +0 -26
  189. package/dist/lib/models/variant.js +0 -1
  190. package/dist/lib/output/components.js +0 -133
  191. package/dist/lib/output/events.js +0 -195
  192. package/dist/lib/output/formatter.js +0 -660
  193. package/dist/lib/output/index.js +0 -7
  194. package/dist/lib/output/output.js +0 -92
  195. package/dist/lib/output/plugins/AssetsPlugin.js +0 -160
  196. package/dist/lib/output/plugins/HierarchyPlugin.js +0 -65
  197. package/dist/lib/output/plugins/IconsPlugin.js +0 -58
  198. package/dist/lib/output/plugins/JavascriptIndexPlugin.js +0 -222
  199. package/dist/lib/output/plugins/NavigationPlugin.js +0 -23
  200. package/dist/lib/output/plugins/SitemapPlugin.js +0 -82
  201. package/dist/lib/output/plugins/index.js +0 -7
  202. package/dist/lib/output/renderer.js +0 -387
  203. package/dist/lib/output/router.js +0 -522
  204. package/dist/lib/output/theme.js +0 -17
  205. package/dist/lib/output/themes/MarkedPlugin.js +0 -461
  206. package/dist/lib/output/themes/default/DefaultTheme.js +0 -367
  207. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +0 -151
  208. package/dist/lib/output/themes/default/Slugger.js +0 -60
  209. package/dist/lib/output/themes/default/layouts/default.js +0 -89
  210. package/dist/lib/output/themes/default/partials/anchor-icon.js +0 -9
  211. package/dist/lib/output/themes/default/partials/breadcrumb.js +0 -11
  212. package/dist/lib/output/themes/default/partials/comment.js +0 -80
  213. package/dist/lib/output/themes/default/partials/footer.js +0 -37
  214. package/dist/lib/output/themes/default/partials/header.js +0 -39
  215. package/dist/lib/output/themes/default/partials/hierarchy.js +0 -32
  216. package/dist/lib/output/themes/default/partials/icon.js +0 -101
  217. package/dist/lib/output/themes/default/partials/index.js +0 -24
  218. package/dist/lib/output/themes/default/partials/member.declaration.js +0 -35
  219. package/dist/lib/output/themes/default/partials/member.getterSetter.js +0 -12
  220. package/dist/lib/output/themes/default/partials/member.js +0 -36
  221. package/dist/lib/output/themes/default/partials/member.signature.body.js +0 -33
  222. package/dist/lib/output/themes/default/partials/member.signature.title.js +0 -9
  223. package/dist/lib/output/themes/default/partials/member.signatures.js +0 -9
  224. package/dist/lib/output/themes/default/partials/member.sources.js +0 -55
  225. package/dist/lib/output/themes/default/partials/members.js +0 -17
  226. package/dist/lib/output/themes/default/partials/moduleReflection.js +0 -68
  227. package/dist/lib/output/themes/default/partials/navigation.js +0 -144
  228. package/dist/lib/output/themes/default/partials/reflectionPreview.js +0 -26
  229. package/dist/lib/output/themes/default/partials/toolbar.js +0 -13
  230. package/dist/lib/output/themes/default/partials/type.js +0 -9
  231. package/dist/lib/output/themes/default/partials/typeAndParent.js +0 -28
  232. package/dist/lib/output/themes/default/partials/typeDetails.js +0 -284
  233. package/dist/lib/output/themes/default/partials/typeParameters.js +0 -26
  234. package/dist/lib/output/themes/default/templates/document.js +0 -3
  235. package/dist/lib/output/themes/default/templates/hierarchy.js +0 -31
  236. package/dist/lib/output/themes/default/templates/index.js +0 -3
  237. package/dist/lib/output/themes/default/templates/reflection.js +0 -53
  238. package/dist/lib/output/themes/lib.js +0 -218
  239. package/dist/lib/serialization/components.js +0 -1
  240. package/dist/lib/serialization/deserializer.js +0 -235
  241. package/dist/lib/serialization/events.js +0 -18
  242. package/dist/lib/serialization/index.js +0 -4
  243. package/dist/lib/serialization/schema.js +0 -32
  244. package/dist/lib/serialization/serializer.js +0 -65
  245. package/dist/lib/utils/ValidatingFileRegistry.js +0 -52
  246. package/dist/lib/utils/component.js +0 -41
  247. package/dist/lib/utils/compress.js +0 -13
  248. package/dist/lib/utils/declaration-maps.js +0 -51
  249. package/dist/lib/utils/entry-point.js +0 -330
  250. package/dist/lib/utils/fs.js +0 -372
  251. package/dist/lib/utils/general.js +0 -25
  252. package/dist/lib/utils/highlighter.js +0 -150
  253. package/dist/lib/utils/html-entities.js +0 -2329
  254. package/dist/lib/utils/html.js +0 -635
  255. package/dist/lib/utils/index.d.ts +0 -17
  256. package/dist/lib/utils/index.js +0 -15
  257. package/dist/lib/utils/loggers.js +0 -71
  258. package/dist/lib/utils/options/declaration.js +0 -444
  259. package/dist/lib/utils/options/defaults.js +0 -104
  260. package/dist/lib/utils/options/help.js +0 -63
  261. package/dist/lib/utils/options/index.js +0 -4
  262. package/dist/lib/utils/options/options.js +0 -273
  263. package/dist/lib/utils/options/readers/arguments.js +0 -109
  264. package/dist/lib/utils/options/readers/index.js +0 -4
  265. package/dist/lib/utils/options/readers/package-json.js +0 -40
  266. package/dist/lib/utils/options/readers/tsconfig.js +0 -172
  267. package/dist/lib/utils/options/readers/typedoc.js +0 -136
  268. package/dist/lib/utils/options/sources/index.js +0 -1
  269. package/dist/lib/utils/options/sources/typedoc.js +0 -876
  270. package/dist/lib/utils/options/tsdoc-defaults.js +0 -94
  271. package/dist/lib/utils/package-manifest.js +0 -84
  272. package/dist/lib/utils/paths.js +0 -127
  273. package/dist/lib/utils/perf.js +0 -86
  274. package/dist/lib/utils/plugins.js +0 -61
  275. package/dist/lib/utils/reflections.js +0 -64
  276. package/dist/lib/utils/sort.js +0 -153
  277. package/dist/lib/utils/tsconfig.js +0 -60
  278. package/dist/lib/utils/tsutils.js +0 -23
  279. package/dist/lib/utils-common/array.js +0 -152
  280. package/dist/lib/utils-common/declarationReference.js +0 -341
  281. package/dist/lib/utils-common/enum.js +0 -27
  282. package/dist/lib/utils-common/events.js +0 -49
  283. package/dist/lib/utils-common/general.js +0 -22
  284. package/dist/lib/utils-common/hooks.js +0 -90
  285. package/dist/lib/utils-common/i18n.js +0 -39
  286. package/dist/lib/utils-common/index.js +0 -17
  287. package/dist/lib/utils-common/jsx.elements.js +0 -3
  288. package/dist/lib/utils-common/jsx.js +0 -187
  289. package/dist/lib/utils-common/logger.js +0 -129
  290. package/dist/lib/utils-common/map.js +0 -63
  291. package/dist/lib/utils-common/minimalSourceFile.js +0 -43
  292. package/dist/lib/utils-common/path.js +0 -130
  293. package/dist/lib/utils-common/set.js +0 -23
  294. package/dist/lib/utils-common/string.js +0 -84
  295. package/dist/lib/utils-common/validation.js +0 -50
  296. package/dist/lib/validation/documentation.js +0 -91
  297. package/dist/lib/validation/exports.js +0 -65
  298. package/dist/lib/validation/links.js +0 -78
  299. package/dist/lib/validation/unusedMergeModuleWith.js +0 -12
  300. /package/dist/{browser-utils.d.ts → types/browser-utils.d.ts} +0 -0
  301. /package/dist/{lib → types}/cli.d.ts +0 -0
  302. /package/dist/{lib → types}/converter/comments/blockLexer.d.ts +0 -0
  303. /package/dist/{lib → types}/converter/comments/lineLexer.d.ts +0 -0
  304. /package/dist/{lib → types}/converter/comments/rawLexer.d.ts +0 -0
  305. /package/dist/{lib → types}/converter/comments/tagName.d.ts +0 -0
  306. /package/dist/{lib → types}/converter/convert-expression.d.ts +0 -0
  307. /package/dist/{lib → types}/converter/converter-events.d.ts +0 -0
  308. /package/dist/{lib → types}/converter/factories/index-signature.d.ts +0 -0
  309. /package/dist/{lib → types}/converter/factories/symbol-id.d.ts +0 -0
  310. /package/dist/{lib → types}/converter/jsdoc.d.ts +0 -0
  311. /package/dist/{lib → types}/converter/plugins/CommentPlugin.d.ts +0 -0
  312. /package/dist/{lib → types}/converter/plugins/ImplementsPlugin.d.ts +0 -0
  313. /package/dist/{lib → types}/converter/plugins/MergeModuleWithPlugin.d.ts +0 -0
  314. /package/dist/{lib → types}/converter/plugins/PackagePlugin.d.ts +0 -0
  315. /package/dist/{lib → types}/converter/plugins/index.d.ts +0 -0
  316. /package/dist/{lib → types}/converter/symbols.d.ts +0 -0
  317. /package/dist/{lib/converter/utils → types/converter/utilities}/nodes.d.ts +0 -0
  318. /package/dist/{lib/converter/utils → types/converter/utilities}/symbols.d.ts +0 -0
  319. /package/dist/{lib → types}/debug/index.d.ts +0 -0
  320. /package/dist/{lib → types}/debug/reflectionLifetimes.d.ts +0 -0
  321. /package/dist/{lib → types}/debug/rendererUrls.d.ts +0 -0
  322. /package/dist/{lib → types}/internationalization/index.d.ts +0 -0
  323. /package/dist/{lib → types}/models/Comment.d.ts +0 -0
  324. /package/dist/{lib → types}/models/ContainerReflection.d.ts +0 -0
  325. /package/dist/{lib → types}/models/DeclarationReflection.d.ts +0 -0
  326. /package/dist/{lib → types}/models/DocumentReflection.d.ts +0 -0
  327. /package/dist/{lib → types}/models/ParameterReflection.d.ts +0 -0
  328. /package/dist/{lib → types}/models/ProjectReflection.d.ts +0 -0
  329. /package/dist/{lib → types}/models/ReferenceReflection.d.ts +0 -0
  330. /package/dist/{lib → types}/models/Reflection.d.ts +0 -0
  331. /package/dist/{lib → types}/models/ReflectionCategory.d.ts +0 -0
  332. /package/dist/{lib → types}/models/ReflectionGroup.d.ts +0 -0
  333. /package/dist/{lib → types}/models/SignatureReflection.d.ts +0 -0
  334. /package/dist/{lib → types}/models/TypeParameterReflection.d.ts +0 -0
  335. /package/dist/{lib → types}/models/index.d.ts +0 -0
  336. /package/dist/{lib → types}/models/kind.d.ts +0 -0
  337. /package/dist/{lib → types}/models/types.d.ts +0 -0
  338. /package/dist/{lib → types}/models/utils.d.ts +0 -0
  339. /package/dist/{lib → types}/models/variant.d.ts +0 -0
  340. /package/dist/{lib → types}/output/index.d.ts +0 -0
  341. /package/dist/{lib → types}/output/plugins/AssetsPlugin.d.ts +0 -0
  342. /package/dist/{lib → types}/output/plugins/HierarchyPlugin.d.ts +0 -0
  343. /package/dist/{lib → types}/output/plugins/IconsPlugin.d.ts +0 -0
  344. /package/dist/{lib → types}/output/plugins/JavascriptIndexPlugin.d.ts +0 -0
  345. /package/dist/{lib → types}/output/plugins/NavigationPlugin.d.ts +0 -0
  346. /package/dist/{lib → types}/output/plugins/SitemapPlugin.d.ts +0 -0
  347. /package/dist/{lib → types}/output/plugins/index.d.ts +0 -0
  348. /package/dist/{lib → types}/output/theme.d.ts +0 -0
  349. /package/dist/{lib → types}/output/themes/default/Slugger.d.ts +0 -0
  350. /package/dist/{lib → types}/output/themes/default/partials/footer.d.ts +0 -0
  351. /package/dist/{lib → types}/output/themes/default/partials/member.declaration.d.ts +0 -0
  352. /package/dist/{lib → types}/output/themes/default/partials/typeAndParent.d.ts +0 -0
  353. /package/dist/{lib → types}/serialization/components.d.ts +0 -0
  354. /package/dist/{lib → types}/serialization/deserializer.d.ts +0 -0
  355. /package/dist/{lib → types}/serialization/events.d.ts +0 -0
  356. /package/dist/{lib → types}/serialization/index.d.ts +0 -0
  357. /package/dist/{lib → types}/serialization/schema.d.ts +0 -0
  358. /package/dist/{lib → types}/serialization/serializer.d.ts +0 -0
  359. /package/dist/{lib → types}/utils/component.d.ts +0 -0
  360. /package/dist/{lib → types}/utils/compress.d.ts +0 -0
  361. /package/dist/{lib → types}/utils/declaration-maps.d.ts +0 -0
  362. /package/dist/{lib → types}/utils/fs.d.ts +0 -0
  363. /package/dist/{lib → types}/utils/highlighter.d.ts +0 -0
  364. /package/dist/{lib → types}/utils/html-entities.d.ts +0 -0
  365. /package/dist/{lib → types}/utils/html.d.ts +0 -0
  366. /package/dist/{lib → types}/utils/loggers.d.ts +0 -0
  367. /package/dist/{lib → types}/utils/options/help.d.ts +0 -0
  368. /package/dist/{lib → types}/utils/options/readers/arguments.d.ts +0 -0
  369. /package/dist/{lib → types}/utils/options/readers/index.d.ts +0 -0
  370. /package/dist/{lib → types}/utils/options/readers/package-json.d.ts +0 -0
  371. /package/dist/{lib → types}/utils/options/readers/tsconfig.d.ts +0 -0
  372. /package/dist/{lib → types}/utils/options/readers/typedoc.d.ts +0 -0
  373. /package/dist/{lib → types}/utils/options/sources/index.d.ts +0 -0
  374. /package/dist/{lib → types}/utils/options/sources/typedoc.d.ts +0 -0
  375. /package/dist/{lib → types}/utils/package-manifest.d.ts +0 -0
  376. /package/dist/{lib → types}/utils/paths.d.ts +0 -0
  377. /package/dist/{lib → types}/utils/perf.d.ts +0 -0
  378. /package/dist/{lib → types}/utils/plugins.d.ts +0 -0
  379. /package/dist/{lib → types}/utils/tsconfig.d.ts +0 -0
  380. /package/dist/{lib → types}/utils/tsutils.d.ts +0 -0
  381. /package/dist/{lib → types}/utils-common/array.d.ts +0 -0
  382. /package/dist/{lib → types}/utils-common/declarationReference.d.ts +0 -0
  383. /package/dist/{lib → types}/utils-common/enum.d.ts +0 -0
  384. /package/dist/{lib → types}/utils-common/events.d.ts +0 -0
  385. /package/dist/{lib → types}/utils-common/hooks.d.ts +0 -0
  386. /package/dist/{lib → types}/utils-common/i18n.d.ts +0 -0
  387. /package/dist/{lib → types}/utils-common/index.d.ts +0 -0
  388. /package/dist/{lib → types}/utils-common/jsx.d.ts +0 -0
  389. /package/dist/{lib → types}/utils-common/jsx.elements.d.ts +0 -0
  390. /package/dist/{lib → types}/utils-common/logger.d.ts +0 -0
  391. /package/dist/{lib → types}/utils-common/map.d.ts +0 -0
  392. /package/dist/{lib → types}/utils-common/minimalSourceFile.d.ts +0 -0
  393. /package/dist/{lib → types}/utils-common/path.d.ts +0 -0
  394. /package/dist/{lib → types}/utils-common/set.d.ts +0 -0
  395. /package/dist/{lib → types}/utils-common/string.d.ts +0 -0
  396. /package/dist/{lib → types}/utils-common/validation.d.ts +0 -0
@@ -1,94 +0,0 @@
1
- // If updating these lists, also update tsdoc.json
2
- export const tsdocBlockTags = [
3
- "@defaultValue",
4
- "@deprecated",
5
- "@example",
6
- "@jsx",
7
- "@param",
8
- "@privateRemarks",
9
- "@remarks",
10
- "@returns",
11
- "@see",
12
- "@throws",
13
- "@typeParam",
14
- ];
15
- export const blockTags = [
16
- ...tsdocBlockTags,
17
- "@author",
18
- "@callback",
19
- "@category",
20
- "@categoryDescription",
21
- "@default",
22
- "@document",
23
- "@extends",
24
- "@augments", // Alias for @extends
25
- "@yields",
26
- "@group",
27
- "@groupDescription",
28
- "@import",
29
- "@inheritDoc",
30
- "@license",
31
- "@module",
32
- "@mergeModuleWith",
33
- "@prop",
34
- "@property",
35
- "@return",
36
- "@satisfies",
37
- "@since",
38
- "@sortStrategy",
39
- "@template", // Alias for @typeParam
40
- "@this",
41
- "@type",
42
- "@typedef",
43
- "@summary",
44
- "@preventInline",
45
- "@inlineType",
46
- "@preventExpand",
47
- "@expandType",
48
- ];
49
- export const tsdocInlineTags = ["@link", "@inheritDoc", "@label"];
50
- export const inlineTags = [
51
- ...tsdocInlineTags,
52
- "@linkcode",
53
- "@linkplain",
54
- "@include",
55
- "@includeCode",
56
- ];
57
- export const tsdocModifierTags = [
58
- "@alpha",
59
- "@beta",
60
- "@eventProperty",
61
- "@experimental",
62
- "@internal",
63
- "@override",
64
- "@packageDocumentation",
65
- "@public",
66
- "@readonly",
67
- "@sealed",
68
- "@virtual",
69
- ];
70
- export const modifierTags = [
71
- ...tsdocModifierTags,
72
- "@abstract",
73
- "@class",
74
- "@disableGroups",
75
- "@enum",
76
- "@event",
77
- "@expand",
78
- "@hidden",
79
- "@hideCategories",
80
- "@hideconstructor",
81
- "@hideGroups",
82
- "@ignore",
83
- "@inline",
84
- "@interface",
85
- "@namespace",
86
- "@function",
87
- "@overload",
88
- "@private",
89
- "@protected",
90
- "@showCategories",
91
- "@showGroups",
92
- "@useDeclaredType",
93
- "@primaryExport",
94
- ];
@@ -1,84 +0,0 @@
1
- // Utilities to support the inspection of node package "manifests"
2
- import { dirname } from "path";
3
- import { glob, readFile } from "./fs.js";
4
- import { createGlobString, nicePath, normalizePath } from "./paths.js";
5
- import { i18n } from "#utils";
6
- /**
7
- * Helper for the TS type system to understand hasOwnProperty
8
- * and narrow a type appropriately.
9
- * @param obj the receiver of the hasOwnProperty method call
10
- * @param prop the property to test for
11
- */
12
- function hasOwnProperty(obj, prop) {
13
- return Object.prototype.hasOwnProperty.call(obj, prop);
14
- }
15
- /**
16
- * Loads a package.json and validates that it is a JSON Object
17
- */
18
- export function loadPackageManifest(logger, packageJsonPath) {
19
- const packageJson = JSON.parse(readFile(packageJsonPath));
20
- if (typeof packageJson !== "object" || !packageJson) {
21
- logger.error(i18n.file_0_not_an_object(nicePath(packageJsonPath)));
22
- return undefined;
23
- }
24
- return packageJson;
25
- }
26
- /**
27
- * Load the paths to packages specified in a Yarn workspace package JSON
28
- * Returns undefined if packageJSON does not define a Yarn workspace
29
- * @param packageJSON the package json object
30
- */
31
- function getPackagePaths(packageJSON) {
32
- if (Array.isArray(packageJSON["workspaces"]) &&
33
- packageJSON["workspaces"].every((i) => typeof i === "string")) {
34
- return packageJSON["workspaces"];
35
- }
36
- if (typeof packageJSON["workspaces"] === "object" &&
37
- packageJSON["workspaces"] != null) {
38
- const workspaces = packageJSON["workspaces"];
39
- if (hasOwnProperty(workspaces, "packages") &&
40
- Array.isArray(workspaces["packages"]) &&
41
- workspaces["packages"].every((i) => typeof i === "string")) {
42
- return workspaces["packages"];
43
- }
44
- }
45
- return undefined;
46
- }
47
- /**
48
- * Given a list of (potentially wildcard containing) package paths,
49
- * return all the actual package folders found.
50
- */
51
- export function expandPackages(logger, packageJsonDir, workspaces, exclude) {
52
- // Technically npm and Yarn workspaces don't support recursive nesting,
53
- // however we support the passing of paths to either packages or
54
- // to the root of a workspace tree in our params and so we could here
55
- // be dealing with either a root or a leaf. So let's do this recursively,
56
- // as it actually is simpler from an implementation perspective anyway.
57
- return workspaces.flatMap((workspace) => {
58
- const expandedPackageJsonPaths = glob(createGlobString(packageJsonDir, `${workspace}/package.json`), packageJsonDir);
59
- if (expandedPackageJsonPaths.length === 0) {
60
- logger.warn(i18n.entry_point_0_did_not_match_any_packages(nicePath(workspace)));
61
- }
62
- else if (expandedPackageJsonPaths.length !== 1) {
63
- logger.verbose(`Expanded ${nicePath(workspace)} to:\n\t${expandedPackageJsonPaths
64
- .map(nicePath)
65
- .join("\n\t")}`);
66
- }
67
- return expandedPackageJsonPaths.flatMap((packageJsonPath) => {
68
- if (exclude.matchesAny(dirname(packageJsonPath))) {
69
- return [];
70
- }
71
- const packageJson = loadPackageManifest(logger, packageJsonPath);
72
- if (packageJson === undefined) {
73
- return [];
74
- }
75
- const packagePaths = getPackagePaths(packageJson);
76
- if (packagePaths === undefined) {
77
- // Assume this is a single package repo
78
- return [dirname(packageJsonPath)];
79
- }
80
- // This is a workspace root package, recurse
81
- return expandPackages(logger, normalizePath(dirname(packageJsonPath)), packagePaths.map(p => createGlobString(normalizePath(dirname(packageJsonPath)), p)), exclude);
82
- });
83
- });
84
- }
@@ -1,127 +0,0 @@
1
- import { countMatches, filterMap } from "#utils";
2
- import { Minimatch } from "minimatch";
3
- import { dirname, isAbsolute, relative, resolve } from "path";
4
- export class MinimatchSet {
5
- patterns;
6
- constructor(patterns) {
7
- this.patterns = patterns.map(p => new Minimatch(p, { dot: true }));
8
- }
9
- matchesAny(path) {
10
- return this.patterns.some(p => {
11
- return p.match(path);
12
- });
13
- }
14
- }
15
- function escapeGlob(glob) {
16
- return glob.replace(/[?*()[\]\\{}]/g, "\\$&");
17
- }
18
- function isGlobalGlob(glob) {
19
- const start = glob.match(/^[!#]+/)?.[0].length ?? 0;
20
- return glob.startsWith("**", start);
21
- }
22
- export function splitGlobToPathAndSpecial(glob) {
23
- const modifiers = glob.match(/^[!#]+/)?.[0] ?? "";
24
- const noModifierGlob = glob.substring(modifiers.length);
25
- if (isGlobalGlob(glob)) {
26
- return { modifiers, path: "", glob: noModifierGlob };
27
- }
28
- const mini = new Minimatch(noModifierGlob, { dot: true });
29
- const basePaths = mini.set.map(set => {
30
- const stop = set.findIndex((part) => typeof part !== "string");
31
- if (stop === -1) {
32
- return set.join("/");
33
- }
34
- else {
35
- return set.slice(0, stop).join("/");
36
- }
37
- });
38
- const base = getCommonPath(basePaths);
39
- if (base) {
40
- const skipIndex = countMatches(base, "/") + 1;
41
- const globPart = mini.globParts.map(s => s.slice(skipIndex));
42
- // This isn't ideal, it will end up re-writing the glob if braces are used,
43
- // but I don't want to write a glob minimizer at this point, and this should
44
- // handle all the edge cases as we're just using Minimatch's glob parsing
45
- const resultingGlob = globPart.length === 1
46
- ? globPart[0].join("/")
47
- : `{${globPart.map(s => s.join("/")).join(",")}}`;
48
- return { modifiers, path: base, glob: resultingGlob };
49
- }
50
- return { modifiers, path: "", glob: noModifierGlob };
51
- }
52
- export function createGlobString(relativeTo, glob) {
53
- if (isAbsolute(glob) || isGlobalGlob(glob))
54
- return glob;
55
- const split = splitGlobToPathAndSpecial(glob);
56
- const leadingPath = normalizePath(resolve(relativeTo, split.path));
57
- if (!split.glob) {
58
- return split.modifiers + escapeGlob(leadingPath);
59
- }
60
- return `${split.modifiers}${escapeGlob(leadingPath)}/${split.glob}`;
61
- }
62
- /**
63
- * Get the longest directory path common to all files.
64
- */
65
- export function getCommonPath(files) {
66
- if (!files.length) {
67
- return "";
68
- }
69
- const roots = files.map((f) => f.split("/"));
70
- if (roots.length === 1) {
71
- return roots[0].join("/");
72
- }
73
- let i = 0;
74
- while (i < roots[0].length &&
75
- new Set(roots.map((part) => part[i])).size === 1) {
76
- i++;
77
- }
78
- return roots[0].slice(0, i).join("/");
79
- }
80
- export function getCommonDirectory(files) {
81
- if (files.length === 1) {
82
- return normalizePath(dirname(files[0]));
83
- }
84
- return getCommonPath(files);
85
- }
86
- export function deriveRootDir(globPaths) {
87
- const globs = new MinimatchSet(globPaths).patterns;
88
- const rootPaths = globs.flatMap((glob, i) => filterMap(glob.set, (set) => {
89
- const stop = set.findIndex((part) => typeof part !== "string");
90
- if (stop === -1) {
91
- return globPaths[i];
92
- }
93
- else {
94
- const kept = set.slice(0, stop).join("/");
95
- return globPaths[i].substring(0, globPaths[i].indexOf(kept) + kept.length);
96
- }
97
- }));
98
- return getCommonDirectory(rootPaths);
99
- }
100
- export function nicePath(absPath) {
101
- if (!isAbsolute(absPath))
102
- return absPath;
103
- const relativePath = relative(process.cwd(), absPath);
104
- if (relativePath.startsWith("..")) {
105
- return normalizePath(absPath);
106
- }
107
- return `./${normalizePath(relativePath)}`;
108
- }
109
- /**
110
- * Normalize the given path.
111
- *
112
- * @param path The path that should be normalized.
113
- * @returns The normalized path.
114
- */
115
- export function normalizePath(path) {
116
- if (process.platform === "win32") {
117
- // Ensure forward slashes
118
- path = path.replace(/\\/g, "/");
119
- // Msys2 git on windows will give paths which use unix-style
120
- // absolute paths, like /c/users/you. Since the rest of TypeDoc
121
- // expects drive letters, convert it to that here.
122
- path = path.replace(/^\/([a-zA-Z])\//, (_m, m1) => `${m1}:/`);
123
- // Make Windows drive letters upper case
124
- path = path.replace(/^([^:]+):\//, (_m, m1) => m1.toUpperCase() + ":/");
125
- }
126
- return path;
127
- }
@@ -1,86 +0,0 @@
1
- /* eslint-disable no-console */
2
- const benchmarks = [];
3
- export function bench(fn, name = fn.name) {
4
- const matching = benchmarks.find((b) => b.name === name);
5
- const timer = matching || {
6
- name,
7
- calls: 0,
8
- time: 0,
9
- };
10
- if (!matching)
11
- benchmarks.push(timer);
12
- return function bench(...args) {
13
- timer.calls++;
14
- const start = performance.now();
15
- const end = () => (timer.time += performance.now() - start);
16
- let result;
17
- try {
18
- result = fn.apply(this, args);
19
- }
20
- catch (error) {
21
- end();
22
- throw error;
23
- }
24
- if (result instanceof Promise) {
25
- result.then((res) => {
26
- end();
27
- return res;
28
- }, (reason) => {
29
- end();
30
- throw reason;
31
- });
32
- }
33
- else {
34
- end();
35
- }
36
- return result;
37
- };
38
- }
39
- function BenchField(_value, context) {
40
- let runner;
41
- return function (value) {
42
- if (!runner) {
43
- const className = context.static
44
- ? this.name
45
- : Object.getPrototypeOf(this).constructor.name;
46
- runner = bench(value, `${className}.${String(context.name)}`);
47
- }
48
- return function (...args) {
49
- return runner.apply(this, args);
50
- };
51
- };
52
- }
53
- function BenchMethod(value, context) {
54
- let runner;
55
- return function (...args) {
56
- if (!runner) {
57
- const className = context.static
58
- ? this.name
59
- : Object.getPrototypeOf(this).constructor.name;
60
- runner = bench(value, `${className}.${String(context.name)}`);
61
- }
62
- return runner.apply(this, args);
63
- };
64
- }
65
- export const Bench = (value, context) => {
66
- if (context.kind === "field") {
67
- return BenchField(value, context);
68
- }
69
- return BenchMethod(value, context);
70
- };
71
- export function measure(cb) {
72
- return bench(cb, "measure()")();
73
- }
74
- process.on("exit", () => {
75
- if (!benchmarks.length)
76
- return;
77
- const table = benchmarks.map((b) => {
78
- return {
79
- Benchmarked: b.name,
80
- Calls: b.calls,
81
- "Time (ms)": Math.round(b.time * 100) / 100,
82
- "Average (ms)": Math.round((b.time / b.calls) * 100) / 100,
83
- };
84
- });
85
- console.table(table);
86
- });
@@ -1,61 +0,0 @@
1
- import { isAbsolute } from "path";
2
- import { pathToFileURL } from "url";
3
- import { nicePath } from "./paths.js";
4
- import { i18n } from "#utils";
5
- export async function loadPlugins(app, plugins) {
6
- for (const plugin of plugins) {
7
- const pluginDisplay = getPluginDisplayName(plugin);
8
- try {
9
- let initFunction;
10
- if (typeof plugin === "function") {
11
- initFunction = plugin;
12
- }
13
- else {
14
- let instance;
15
- // Try importing first to avoid warnings about requiring ESM being experimental.
16
- // If that fails due to importing a directory, fall back to require.
17
- try {
18
- // On Windows, we need to ensure this path is a file path.
19
- // Or we'll get ERR_UNSUPPORTED_ESM_URL_SCHEME
20
- const esmPath = isAbsolute(plugin)
21
- ? pathToFileURL(plugin).toString()
22
- : plugin;
23
- instance = await import(esmPath);
24
- }
25
- catch (error) {
26
- if (error.code === "ERR_UNSUPPORTED_DIR_IMPORT") {
27
- // eslint-disable-next-line @typescript-eslint/no-require-imports
28
- instance = require(plugin);
29
- }
30
- else {
31
- throw error;
32
- }
33
- }
34
- initFunction = instance.load;
35
- }
36
- if (typeof initFunction === "function") {
37
- await initFunction(app);
38
- app.logger.info(i18n.loaded_plugin_0(pluginDisplay));
39
- }
40
- else {
41
- app.logger.error(i18n.invalid_plugin_0_missing_load_function(pluginDisplay));
42
- }
43
- }
44
- catch (error) {
45
- app.logger.error(i18n.plugin_0_could_not_be_loaded(pluginDisplay));
46
- if (error instanceof Error && error.stack) {
47
- app.logger.error(error.stack);
48
- }
49
- }
50
- }
51
- }
52
- function getPluginDisplayName(plugin) {
53
- if (typeof plugin === "function") {
54
- return plugin.name || "function";
55
- }
56
- const path = nicePath(plugin);
57
- if (path.startsWith("./node_modules/")) {
58
- return path.substring("./node_modules/".length);
59
- }
60
- return plugin;
61
- }
@@ -1,64 +0,0 @@
1
- import { ContainerReflection, DeclarationReflection, makeRecursiveVisitor, ParameterReflection, Reflection, SignatureReflection, TypeParameterReflection, } from "../models/index.js";
2
- export function discoverAllReferenceTypes(project, forExportValidation) {
3
- let current = project;
4
- const queue = [];
5
- const result = [];
6
- const visitor = makeRecursiveVisitor({
7
- reference(type) {
8
- result.push({ type, owner: current });
9
- },
10
- reflection(type) {
11
- queue.push(type.declaration);
12
- },
13
- });
14
- const add = (item) => {
15
- if (!item)
16
- return;
17
- if (item instanceof Reflection) {
18
- queue.push(item);
19
- }
20
- else {
21
- queue.push(...item);
22
- }
23
- };
24
- do {
25
- if (current instanceof ContainerReflection) {
26
- add(current.children);
27
- }
28
- if (current instanceof DeclarationReflection) {
29
- current.type?.visit(visitor);
30
- add(current.typeParameters);
31
- add(current.signatures);
32
- add(current.indexSignatures);
33
- add(current.getSignature);
34
- add(current.setSignature);
35
- current.overwrites?.visit(visitor);
36
- current.implementedTypes?.forEach((type) => type.visit(visitor));
37
- if (!forExportValidation) {
38
- current.inheritedFrom?.visit(visitor);
39
- current.implementationOf?.visit(visitor);
40
- current.extendedTypes?.forEach((t) => t.visit(visitor));
41
- current.extendedBy?.forEach((t) => t.visit(visitor));
42
- current.implementedBy?.forEach((t) => t.visit(visitor));
43
- }
44
- }
45
- if (current instanceof SignatureReflection) {
46
- add(current.parameters);
47
- add(current.typeParameters);
48
- current.type?.visit(visitor);
49
- current.overwrites?.visit(visitor);
50
- if (!forExportValidation) {
51
- current.inheritedFrom?.visit(visitor);
52
- current.implementationOf?.visit(visitor);
53
- }
54
- }
55
- if (current instanceof ParameterReflection) {
56
- current.type?.visit(visitor);
57
- }
58
- if (current instanceof TypeParameterReflection) {
59
- current.type?.visit(visitor);
60
- current.default?.visit(visitor);
61
- }
62
- } while ((current = queue.shift()));
63
- return result;
64
- }
@@ -1,153 +0,0 @@
1
- /**
2
- * Module which handles sorting reflections according to a user specified strategy.
3
- * @module
4
- */
5
- import { ReflectionKind } from "../models/kind.js";
6
- import * as OptionDefaults from "./options/defaults.js";
7
- export const SORT_STRATEGIES = [
8
- "source-order",
9
- "alphabetical",
10
- "alphabetical-ignoring-documents",
11
- "enum-value-ascending",
12
- "enum-value-descending",
13
- "enum-member-source-order",
14
- "static-first",
15
- "instance-first",
16
- "visibility",
17
- "required-first",
18
- "kind",
19
- "external-last",
20
- "documents-first",
21
- "documents-last",
22
- ];
23
- // Return true if a < b
24
- const sorts = {
25
- "source-order"(a, b) {
26
- // This is going to be somewhat ambiguous. No way around that. Treat the first
27
- // declaration of a symbol as its ordering declaration.
28
- const aSymbol = a.project.getSymbolIdFromReflection(a);
29
- const bSymbol = b.project.getSymbolIdFromReflection(b);
30
- if (aSymbol && bSymbol) {
31
- if (aSymbol.packageName < bSymbol.packageName) {
32
- return true;
33
- }
34
- if (aSymbol.packageName === bSymbol.packageName &&
35
- aSymbol.packagePath < bSymbol.packagePath) {
36
- return true;
37
- }
38
- if (aSymbol.packageName === bSymbol.packageName &&
39
- aSymbol.packagePath === bSymbol.packagePath &&
40
- aSymbol.pos < bSymbol.pos) {
41
- return true;
42
- }
43
- return false;
44
- }
45
- // Someone is doing something weird. Fail to re-order. This could happen if someone
46
- // tries to sort with a reflection that has been removed from the project.
47
- return false;
48
- },
49
- alphabetical(a, b) {
50
- return a.name.localeCompare(b.name) < 0;
51
- },
52
- "alphabetical-ignoring-documents"(a, b) {
53
- if (a.kindOf(ReflectionKind.Document) ||
54
- b.kindOf(ReflectionKind.Document)) {
55
- return false;
56
- }
57
- return a.name.localeCompare(b.name) < 0;
58
- },
59
- "enum-value-ascending"(a, b) {
60
- if (a.kind == ReflectionKind.EnumMember &&
61
- b.kind == ReflectionKind.EnumMember) {
62
- const aRefl = a;
63
- const bRefl = b;
64
- const aValue = aRefl.type?.type === "literal" ? aRefl.type.value : -Infinity;
65
- const bValue = bRefl.type?.type === "literal" ? bRefl.type.value : -Infinity;
66
- return aValue < bValue;
67
- }
68
- return false;
69
- },
70
- "enum-value-descending"(a, b) {
71
- if (a.kind == ReflectionKind.EnumMember &&
72
- b.kind == ReflectionKind.EnumMember) {
73
- const aRefl = a;
74
- const bRefl = b;
75
- const aValue = aRefl.type?.type === "literal" ? aRefl.type.value : -Infinity;
76
- const bValue = bRefl.type?.type === "literal" ? bRefl.type.value : -Infinity;
77
- return bValue < aValue;
78
- }
79
- return false;
80
- },
81
- "enum-member-source-order"(a, b, data) {
82
- if (a.kind === ReflectionKind.EnumMember &&
83
- b.kind === ReflectionKind.EnumMember) {
84
- return sorts["source-order"](a, b, data);
85
- }
86
- return false;
87
- },
88
- "static-first"(a, b) {
89
- return a.flags.isStatic && !b.flags.isStatic;
90
- },
91
- "instance-first"(a, b) {
92
- return !a.flags.isStatic && b.flags.isStatic;
93
- },
94
- visibility(a, b) {
95
- // Note: flags.isPublic may not be set on public members. It will only be set
96
- // if the user explicitly marks members as public. Therefore, we can't use it
97
- // here to get a reliable sort order.
98
- if (a.flags.isPrivate) {
99
- return false; // Not sorted before anything
100
- }
101
- if (a.flags.isProtected) {
102
- return b.flags.isPrivate; // Sorted before privates
103
- }
104
- if (b.flags.isPrivate || b.flags.isProtected) {
105
- return true; // We are public, sort before b if b is less visible
106
- }
107
- return false;
108
- },
109
- "required-first"(a, b) {
110
- return !a.flags.isOptional && b.flags.isOptional;
111
- },
112
- kind(a, b, { kindSortOrder }) {
113
- return kindSortOrder.indexOf(a.kind) < kindSortOrder.indexOf(b.kind);
114
- },
115
- "external-last"(a, b) {
116
- return !a.flags.isExternal && b.flags.isExternal;
117
- },
118
- "documents-first"(a, b) {
119
- return (a.kindOf(ReflectionKind.Document) &&
120
- !b.kindOf(ReflectionKind.Document));
121
- },
122
- "documents-last"(a, b) {
123
- return (!a.kindOf(ReflectionKind.Document) &&
124
- b.kindOf(ReflectionKind.Document));
125
- },
126
- };
127
- export function isValidSortStrategy(strategy) {
128
- return SORT_STRATEGIES.includes(strategy);
129
- }
130
- export function getSortFunction(opts, strategies = opts.getValue("sort")) {
131
- const kindSortOrder = opts
132
- .getValue("kindSortOrder")
133
- .map((k) => ReflectionKind[k]);
134
- for (const kind of OptionDefaults.kindSortOrder) {
135
- if (!kindSortOrder.includes(ReflectionKind[kind])) {
136
- kindSortOrder.push(ReflectionKind[kind]);
137
- }
138
- }
139
- const data = { kindSortOrder };
140
- return function sortReflections(reflections) {
141
- reflections.sort((a, b) => {
142
- for (const s of strategies) {
143
- if (sorts[s](a, b, data)) {
144
- return -1;
145
- }
146
- if (sorts[s](b, a, data)) {
147
- return 1;
148
- }
149
- }
150
- return 0;
151
- });
152
- };
153
- }