@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,130 @@
1
+ import { assert } from "./general.js";
2
+ export var NormalizedPathUtils;
3
+ (function (NormalizedPathUtils) {
4
+ function dirname(path) {
5
+ let end = path.length - 2;
6
+ for (; end > 0; --end) {
7
+ if (path[end] === "/")
8
+ break;
9
+ }
10
+ switch (end) {
11
+ case -2:
12
+ case -1:
13
+ return (path[0] === "/" ? "/" : ".");
14
+ case 0:
15
+ return path.substring(0, path.indexOf("/") + 1);
16
+ default:
17
+ return path.slice(0, end);
18
+ }
19
+ }
20
+ NormalizedPathUtils.dirname = dirname;
21
+ function basename(path) {
22
+ // We start at length - 2 as /var/typedoc/ should give `typedoc`
23
+ let end = path.length - 2;
24
+ for (; end >= 0; --end) {
25
+ if (path[end] === "/")
26
+ break;
27
+ }
28
+ switch (end) {
29
+ case -2:
30
+ case -1:
31
+ return path;
32
+ default:
33
+ if (path.endsWith("/")) {
34
+ return path.slice(end + 1, -1);
35
+ }
36
+ return path.slice(end + 1);
37
+ }
38
+ }
39
+ NormalizedPathUtils.basename = basename;
40
+ function relative(from, to) {
41
+ if (from == to) {
42
+ return "";
43
+ }
44
+ assert(isAbsolute(from) && isAbsolute(to), "resolving relative paths without absolute inputs requires a filesystem");
45
+ if (!from.endsWith("/")) {
46
+ from += "/";
47
+ }
48
+ const end = to.length;
49
+ if (!to.endsWith("/")) {
50
+ to += "/";
51
+ }
52
+ const minLen = Math.min(from.length, to.length);
53
+ let lastCommonSlash = 0;
54
+ let i = 0;
55
+ for (; i < minLen; ++i) {
56
+ if (from[i] === to[i]) {
57
+ if (from[i] === "/") {
58
+ lastCommonSlash = i;
59
+ }
60
+ }
61
+ else {
62
+ break;
63
+ }
64
+ }
65
+ if (lastCommonSlash === from.length - 1) {
66
+ return to.substring(from.length, end);
67
+ }
68
+ let prefix = "";
69
+ for (let i = lastCommonSlash + 1; i < from.length; ++i) {
70
+ if (from[i] === "/" || i + 1 === from.length) {
71
+ prefix += prefix ? "/.." : "..";
72
+ }
73
+ }
74
+ return prefix + to.substring(lastCommonSlash, end);
75
+ }
76
+ NormalizedPathUtils.relative = relative;
77
+ function normalize(path) {
78
+ const parts = path.split("/");
79
+ let canRemoveDotDot = false;
80
+ for (let i = 0; i < parts.length; /* inside loop */) {
81
+ if (parts[i] == "." && i + 1 != parts.length) {
82
+ parts.splice(i, 1);
83
+ }
84
+ else if (parts[i] == "..") {
85
+ if (canRemoveDotDot) {
86
+ if (i - 1 === 0 && /\w:/i.test(parts[0])) {
87
+ parts.splice(i, 1);
88
+ }
89
+ else {
90
+ parts.splice(i - 1, 2);
91
+ i = i - 1;
92
+ }
93
+ }
94
+ else {
95
+ ++i;
96
+ }
97
+ }
98
+ else {
99
+ canRemoveDotDot = true;
100
+ ++i;
101
+ }
102
+ }
103
+ return parts.join("/");
104
+ }
105
+ NormalizedPathUtils.normalize = normalize;
106
+ function resolve(from, to) {
107
+ assert(isAbsolute(from), "resolving without an absolute path requires a filesystem");
108
+ if (isAbsolute(to)) {
109
+ return to;
110
+ }
111
+ return normalize(`${from}/${to}`);
112
+ }
113
+ NormalizedPathUtils.resolve = resolve;
114
+ function isAbsolute(from) {
115
+ return /^\/|^\w:\//.test(from);
116
+ }
117
+ NormalizedPathUtils.isAbsolute = isAbsolute;
118
+ function splitFilename(name) {
119
+ const lastDot = name.lastIndexOf(".");
120
+ if (lastDot < 1) {
121
+ return { name, ext: "" };
122
+ }
123
+ return { name: name.substring(0, lastDot), ext: name.substring(lastDot) };
124
+ }
125
+ NormalizedPathUtils.splitFilename = splitFilename;
126
+ function isDeclarationFilePath(path) {
127
+ return /\.d\.(ts|mts|cts)$/.test(path);
128
+ }
129
+ NormalizedPathUtils.isDeclarationFilePath = isDeclarationFilePath;
130
+ })(NormalizedPathUtils || (NormalizedPathUtils = {}));
@@ -0,0 +1,3 @@
1
+ export declare function setIntersection<T>(a: Iterable<T>, b: Set<T>): Set<T>;
2
+ export declare function setDifference<T>(a: Iterable<T>, b: Iterable<T>): Set<T>;
3
+ export declare function setUnion<T>(a: Iterable<T>, b: Iterable<T>): Set<T>;
@@ -0,0 +1,23 @@
1
+ export function setIntersection(a, b) {
2
+ const result = new Set();
3
+ for (const elem of a) {
4
+ if (b.has(elem)) {
5
+ result.add(elem);
6
+ }
7
+ }
8
+ return result;
9
+ }
10
+ export function setDifference(a, b) {
11
+ const result = new Set(a);
12
+ for (const elem of b) {
13
+ result.delete(elem);
14
+ }
15
+ return result;
16
+ }
17
+ export function setUnion(a, b) {
18
+ const result = new Set(a);
19
+ for (const elem of b) {
20
+ result.add(elem);
21
+ }
22
+ return result;
23
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Resolves a string type into a union of characters, `"ab"` turns into `"a" | "b"`.
3
+ */
4
+ export type Chars<T extends string> = T extends `${infer C}${infer R}` ? C | Chars<R> : never;
5
+ /** Count the number of times `search` appears in `text` */
6
+ export declare function countMatches(text: string, search: string): number;
7
+ export declare function dedent(text: string): string;
8
+ export declare function editDistance(s: string, t: string): number;
9
+ export declare function getSimilarValues(values: Iterable<string>, compareTo: string): string[];
10
+ export declare function escapeRegExp(s: string): string;
11
+ export declare function escapeHtml(html: string): string;
@@ -0,0 +1,84 @@
1
+ import { DefaultMap } from "./map.js";
2
+ /** Count the number of times `search` appears in `text` */
3
+ export function countMatches(text, search) {
4
+ let count = 0;
5
+ let last = 0;
6
+ for (;;) {
7
+ const index = text.indexOf(search, last);
8
+ if (index === -1) {
9
+ break;
10
+ }
11
+ else {
12
+ last = index + 1;
13
+ ++count;
14
+ }
15
+ }
16
+ return count;
17
+ }
18
+ export function dedent(text) {
19
+ const lines = text.split(/\r?\n/);
20
+ while (lines.length && lines[0].search(/\S/) === -1) {
21
+ lines.shift();
22
+ }
23
+ while (lines.length && lines[lines.length - 1].search(/\S/) === -1) {
24
+ lines.pop();
25
+ }
26
+ const minIndent = lines.reduce((indent, line) => line.length ? Math.min(indent, line.search(/\S/)) : indent, Infinity);
27
+ return lines.map((line) => line.substring(minIndent)).join("\n");
28
+ }
29
+ // Based on https://en.wikipedia.org/wiki/Levenshtein_distance#Iterative_with_two_matrix_rows
30
+ // Slightly modified for improved match results for options
31
+ export function editDistance(s, t) {
32
+ if (s.length < t.length)
33
+ return editDistance(t, s);
34
+ let v0 = Array.from({ length: t.length + 1 }, (_, i) => i);
35
+ let v1 = Array.from({ length: t.length + 1 }, () => 0);
36
+ for (let i = 0; i < s.length; i++) {
37
+ v1[0] = i + 1;
38
+ for (let j = 0; j < s.length; j++) {
39
+ const deletionCost = v0[j + 1] + 1;
40
+ const insertionCost = v1[j] + 1;
41
+ let substitutionCost;
42
+ if (s[i] === t[j]) {
43
+ substitutionCost = v0[j];
44
+ }
45
+ else if (s[i]?.toUpperCase() === t[j]?.toUpperCase()) {
46
+ substitutionCost = v0[j] + 1;
47
+ }
48
+ else {
49
+ substitutionCost = v0[j] + 3;
50
+ }
51
+ v1[j + 1] = Math.min(deletionCost, insertionCost, substitutionCost);
52
+ }
53
+ [v0, v1] = [v1, v0];
54
+ }
55
+ return v0[t.length];
56
+ }
57
+ export function getSimilarValues(values, compareTo) {
58
+ const results = new DefaultMap(() => []);
59
+ let lowest = Infinity;
60
+ for (const name of values) {
61
+ const distance = editDistance(compareTo, name);
62
+ lowest = Math.min(lowest, distance);
63
+ results.get(distance).push(name);
64
+ }
65
+ // Experimenting a bit, it seems an edit distance of 3 is roughly the
66
+ // right metric for relevant "similar" results without showing obviously wrong suggestions
67
+ return results
68
+ .get(lowest)
69
+ .concat(results.get(lowest + 1), results.get(lowest + 2));
70
+ }
71
+ // From MDN
72
+ export function escapeRegExp(s) {
73
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
74
+ }
75
+ const htmlEscapes = {
76
+ "&": "&amp;",
77
+ "<": "&lt;",
78
+ ">": "&gt;",
79
+ '"': "&quot;",
80
+ "'": "&#39;",
81
+ };
82
+ export function escapeHtml(html) {
83
+ return html.replace(/[&<>'"]/g, (c) => htmlEscapes[c]);
84
+ }
@@ -0,0 +1,33 @@
1
+ export type Infer<T extends Schema> = T extends Optional<infer U> ? Infer<U> : T extends Guard<infer U> ? U : T extends typeof String ? string : T extends typeof Number ? number : T extends typeof Boolean ? boolean : T extends readonly string[] ? T[number] : T extends readonly [typeof Array, Schema] ? Array<Infer<T[1]>> : {
2
+ -readonly [K in OptionalKeys<T>]?: Infer<Extract<T[K & keyof T], Schema>>;
3
+ } & {
4
+ -readonly [K in Exclude<keyof T, OptionalKeys<T> | typeof additionalProperties>]: Infer<Extract<T[K], Schema>>;
5
+ };
6
+ export type Optional<T extends Schema> = Record<typeof opt, T>;
7
+ export type Guard<T> = (x: unknown) => x is T;
8
+ type OptionalKeys<T> = keyof {
9
+ [K in keyof T as T[K] extends Optional<any> ? K : never]: 1;
10
+ };
11
+ declare const opt: unique symbol;
12
+ /**
13
+ * Symbol that may be placed on a schema object to define how additional properties are handled.
14
+ * By default, additional properties are not checked.
15
+ */
16
+ export declare const additionalProperties: unique symbol;
17
+ export type Schema = typeof String | typeof Number | typeof Boolean | readonly string[] | readonly [typeof Array, Schema] | {
18
+ readonly [k: string]: Schema;
19
+ [additionalProperties]?: boolean;
20
+ } | Guard<unknown> | Optional<typeof String> | Optional<typeof Number> | Optional<typeof Boolean> | Optional<readonly string[]> | Optional<readonly [typeof Array, Schema]> | Optional<{
21
+ readonly [k: string]: Schema;
22
+ [additionalProperties]?: boolean;
23
+ }> | Optional<Guard<unknown>>;
24
+ /**
25
+ * Straightforward, fairly dumb, validation helper.
26
+ * @param schema
27
+ * @param obj
28
+ */
29
+ export declare function validate<T extends Schema>(schema: T, obj: unknown): obj is Infer<T>;
30
+ export declare function optional<T extends Schema>(x: T): Optional<T>;
31
+ export type TagString = `@${string}`;
32
+ export declare function isTagString(x: unknown): x is TagString;
33
+ export {};
@@ -0,0 +1,50 @@
1
+ const opt = Symbol();
2
+ /**
3
+ * Symbol that may be placed on a schema object to define how additional properties are handled.
4
+ * By default, additional properties are not checked.
5
+ */
6
+ export const additionalProperties = Symbol();
7
+ export function validate(schema, obj) {
8
+ let type = schema;
9
+ if (opt in schema) {
10
+ if (obj == null) {
11
+ return true;
12
+ }
13
+ type = schema[opt];
14
+ }
15
+ if (type === String) {
16
+ return typeof obj === "string";
17
+ }
18
+ if (type === Number) {
19
+ return typeof obj === "number";
20
+ }
21
+ if (type === Boolean) {
22
+ return typeof obj === "boolean";
23
+ }
24
+ if (typeof type === "function") {
25
+ return type(obj);
26
+ }
27
+ if (Array.isArray(type)) {
28
+ if (type[0] === Array) {
29
+ return (Array.isArray(obj) &&
30
+ obj.every((item) => validate(type[1], item)));
31
+ }
32
+ return type.includes(obj);
33
+ }
34
+ if (additionalProperties in schema &&
35
+ !schema[additionalProperties]) {
36
+ if (Object.keys(obj).some((key) => !(key in schema))) {
37
+ return false;
38
+ }
39
+ }
40
+ return (!!obj &&
41
+ typeof obj === "object" &&
42
+ !Array.isArray(obj) &&
43
+ Object.entries(type).every(([key, prop]) => validate(prop, obj[key])));
44
+ }
45
+ export function optional(x) {
46
+ return { [opt]: x };
47
+ }
48
+ export function isTagString(x) {
49
+ return typeof x === "string" && /^@[a-z][a-z0-9-]*$/i.test(x);
50
+ }
@@ -0,0 +1,3 @@
1
+ import { type ProjectReflection, ReflectionKind } from "../models/index.js";
2
+ import { type Logger } from "#utils";
3
+ export declare function validateDocumentation(project: ProjectReflection, logger: Logger, requiredToBeDocumented: readonly ReflectionKind.KindString[], intentionallyNotDocumented: readonly string[], packagesRequiringDocumentation: readonly string[]): void;
@@ -0,0 +1,91 @@
1
+ import { DeclarationReflection, ReflectionKind, ReflectionType, } from "../models/index.js";
2
+ import { i18n, removeFlag } from "#utils";
3
+ export function validateDocumentation(project, logger, requiredToBeDocumented, intentionallyNotDocumented, packagesRequiringDocumentation) {
4
+ let kinds = requiredToBeDocumented.reduce((prev, cur) => prev | ReflectionKind[cur], 0);
5
+ // Functions, Constructors, and Accessors never have comments directly on them.
6
+ // If they are required to be documented, what's really required is that their
7
+ // contained signatures have a comment.
8
+ if (kinds & ReflectionKind.FunctionOrMethod) {
9
+ kinds |= ReflectionKind.CallSignature;
10
+ kinds = removeFlag(kinds, ReflectionKind.FunctionOrMethod);
11
+ }
12
+ if (kinds & ReflectionKind.Constructor) {
13
+ kinds |= ReflectionKind.ConstructorSignature;
14
+ kinds = removeFlag(kinds, ReflectionKind.Constructor);
15
+ }
16
+ if (kinds & ReflectionKind.Accessor) {
17
+ kinds |= ReflectionKind.GetSignature | ReflectionKind.SetSignature;
18
+ kinds = removeFlag(kinds, ReflectionKind.Accessor);
19
+ }
20
+ const toProcess = project.getReflectionsByKind(kinds);
21
+ const seen = new Set();
22
+ const intentionalUsage = new Set();
23
+ outer: while (toProcess.length) {
24
+ const ref = toProcess.shift();
25
+ if (seen.has(ref))
26
+ continue;
27
+ seen.add(ref);
28
+ // If inside a parameter, we shouldn't care. Callback parameter's values don't get deeply documented.
29
+ let r = ref.parent;
30
+ while (r) {
31
+ if (r.kindOf(ReflectionKind.Parameter)) {
32
+ continue outer;
33
+ }
34
+ r = r.parent;
35
+ }
36
+ // Type aliases own their comments, even if they're function-likes.
37
+ // So if we're a type literal owned by a type alias, don't do anything.
38
+ if (ref.kindOf(ReflectionKind.TypeLiteral) &&
39
+ ref.parent?.kindOf(ReflectionKind.TypeAlias)) {
40
+ toProcess.push(ref.parent);
41
+ continue;
42
+ }
43
+ // Call signatures are considered documented if they have a comment directly, or their
44
+ // container has a comment and they are directly within a type literal belonging to that container.
45
+ if (ref.kindOf(ReflectionKind.CallSignature) &&
46
+ ref.parent?.kindOf(ReflectionKind.TypeLiteral)) {
47
+ toProcess.push(ref.parent.parent);
48
+ continue;
49
+ }
50
+ // Construct signatures are considered documented if they are directly within a documented type alias.
51
+ if (ref.kindOf(ReflectionKind.ConstructorSignature) &&
52
+ ref.parent?.parent?.kindOf(ReflectionKind.TypeAlias)) {
53
+ toProcess.push(ref.parent.parent);
54
+ continue;
55
+ }
56
+ if (ref instanceof DeclarationReflection) {
57
+ const signatures = ref.type instanceof ReflectionType
58
+ ? ref.type.declaration.getNonIndexSignatures()
59
+ : ref.getNonIndexSignatures();
60
+ if (signatures.length) {
61
+ // We've been asked to validate this reflection, so we should validate that
62
+ // signatures all have comments
63
+ toProcess.push(...signatures);
64
+ if (ref.kindOf(ReflectionKind.SignatureContainer)) {
65
+ // Comments belong to each signature, and will not be included on this object.
66
+ continue;
67
+ }
68
+ }
69
+ }
70
+ const symbolId = project.getSymbolIdFromReflection(ref);
71
+ // #2644, signatures may be documented by their parent reflection.
72
+ const hasComment = ref.hasComment() ||
73
+ (ref.kindOf(ReflectionKind.SomeSignature) &&
74
+ ref.parent?.hasComment());
75
+ if (!hasComment && symbolId) {
76
+ if (!packagesRequiringDocumentation.includes(symbolId.packageName)) {
77
+ continue;
78
+ }
79
+ const intentionalIndex = intentionallyNotDocumented.indexOf(ref.getFriendlyFullName());
80
+ if (intentionalIndex !== -1) {
81
+ intentionalUsage.add(intentionalIndex);
82
+ continue;
83
+ }
84
+ logger.validationWarning(i18n.reflection_0_kind_1_defined_in_2_does_not_have_any_documentation(ref.getFriendlyFullName(), ReflectionKind[ref.kind], `${symbolId.packageName}/${symbolId.packagePath}`));
85
+ }
86
+ }
87
+ const unusedIntentional = intentionallyNotDocumented.filter((_, i) => !intentionalUsage.has(i));
88
+ if (unusedIntentional.length) {
89
+ logger.validationWarning(i18n.invalid_intentionally_not_documented_names_0(unusedIntentional.join("\n\t")));
90
+ }
91
+ }
@@ -0,0 +1,3 @@
1
+ import type { ProjectReflection } from "../models/index.js";
2
+ import { type Logger } from "#utils";
3
+ export declare function validateExports(project: ProjectReflection, logger: Logger, intentionallyNotExported: readonly string[]): void;
@@ -0,0 +1,65 @@
1
+ import { ok } from "assert";
2
+ import { discoverAllReferenceTypes } from "../utils/reflections.js";
3
+ import { i18n } from "#utils";
4
+ function makeIntentionallyExportedHelper(project, intentional, logger) {
5
+ const used = new Set();
6
+ const processed = intentional.map((v) => {
7
+ const index = v.lastIndexOf(":");
8
+ if (index === -1) {
9
+ return ["", v];
10
+ }
11
+ return [v.substring(0, index), v.substring(index + 1)];
12
+ });
13
+ return {
14
+ has(type, typeName) {
15
+ ok(!type.reflection);
16
+ // If it isn't declared anywhere, we can't produce a good error message about where
17
+ // the non-exported symbol is, so even if it isn't ignored, pretend it is. In practice,
18
+ // this will happen incredibly rarely, since symbols without declarations are very rare.
19
+ // I know of only two instances:
20
+ // 1. `undefined` in `globalThis`
21
+ // 2. Properties on non-homomorphic mapped types, e.g. the symbol for "foo" on `Record<"foo", 1>`
22
+ // There might be others, so still check this here rather than asserting, but print a debug log
23
+ // so that we can possibly improve this in the future.
24
+ if (!type.package) {
25
+ logger.verbose(`The type ${type.qualifiedName} has no declarations, implicitly allowing missing export.`);
26
+ return true;
27
+ }
28
+ // Don't produce warnings for third-party symbols.
29
+ if (type.package !== project.packageName) {
30
+ return true;
31
+ }
32
+ for (const [index, [file, name]] of processed.entries()) {
33
+ if (typeName === name &&
34
+ `${type.symbolId.packageName}/${type.symbolId.packagePath}`.endsWith(file)) {
35
+ used.add(index);
36
+ return true;
37
+ }
38
+ }
39
+ return false;
40
+ },
41
+ getUnused() {
42
+ return intentional.filter((_, i) => !used.has(i));
43
+ },
44
+ };
45
+ }
46
+ export function validateExports(project, logger, intentionallyNotExported) {
47
+ const intentional = makeIntentionallyExportedHelper(project, intentionallyNotExported, logger);
48
+ const warned = new Set();
49
+ for (const { type, owner } of discoverAllReferenceTypes(project, true)) {
50
+ const uniqueId = type.symbolId?.getStableKey();
51
+ if (!type.reflection &&
52
+ !type.externalUrl &&
53
+ !type.isIntentionallyBroken() &&
54
+ !intentional.has(type, type.qualifiedName) &&
55
+ !warned.has(uniqueId) &&
56
+ !project.symbolIdHasBeenRemoved(type.symbolId)) {
57
+ warned.add(uniqueId);
58
+ logger.validationWarning(i18n.type_0_defined_in_1_is_referenced_by_2_but_not_included_in_docs(type.qualifiedName, `${type.symbolId.packageName}/${type.symbolId.packagePath}`, owner.getFriendlyFullName()));
59
+ }
60
+ }
61
+ const unusedIntentional = intentional.getUnused();
62
+ if (unusedIntentional.length) {
63
+ logger.validationWarning(i18n.invalid_intentionally_not_exported_symbols_0(unusedIntentional.join("\n\t")));
64
+ }
65
+ }
@@ -0,0 +1,3 @@
1
+ import { type Logger } from "#utils";
2
+ import { type ProjectReflection } from "../models/index.js";
3
+ export declare function validateLinks(project: ProjectReflection, logger: Logger): void;
@@ -0,0 +1,78 @@
1
+ import { i18n } from "#utils";
2
+ import { ReflectionKind, ReflectionSymbolId, } from "../models/index.js";
3
+ const linkTags = ["@link", "@linkcode", "@linkplain"];
4
+ function getBrokenPartLinks(parts) {
5
+ const links = [];
6
+ for (const part of parts) {
7
+ if (part.kind === "inline-tag" &&
8
+ linkTags.includes(part.tag) &&
9
+ (!part.target || part.target instanceof ReflectionSymbolId)) {
10
+ links.push(part);
11
+ }
12
+ }
13
+ return links;
14
+ }
15
+ function getBrokenLinks(comment) {
16
+ if (!comment)
17
+ return [];
18
+ const links = [...getBrokenPartLinks(comment.summary)];
19
+ for (const tag of comment.blockTags) {
20
+ links.push(...getBrokenPartLinks(tag.content));
21
+ }
22
+ return links;
23
+ }
24
+ export function validateLinks(project, logger) {
25
+ for (const id in project.reflections) {
26
+ checkReflection(project.reflections[id], logger);
27
+ }
28
+ }
29
+ function checkReflection(reflection, logger) {
30
+ if (reflection.isProject() || reflection.isDeclaration()) {
31
+ for (const broken of getBrokenPartLinks(reflection.readme || [])) {
32
+ const linkText = broken.text.trim();
33
+ // #2360, "@" is a future reserved character in TSDoc component paths
34
+ // If a link starts with it, and doesn't include a module source indicator "!"
35
+ // then the user probably is trying to link to a package containing "@" with an absolute link.
36
+ if (linkText.startsWith("@") && !linkText.includes("!")) {
37
+ logger.validationWarning(i18n.failed_to_resolve_link_to_0_in_readme_for_1_may_have_meant_2(linkText, reflection.getFriendlyFullName(), linkText.replace(/[.#~]/, "!")));
38
+ }
39
+ else {
40
+ logger.validationWarning(i18n.failed_to_resolve_link_to_0_in_readme_for_1(linkText, reflection.getFriendlyFullName()));
41
+ }
42
+ }
43
+ }
44
+ if (reflection.isDocument()) {
45
+ for (const broken of getBrokenPartLinks(reflection.content)) {
46
+ const linkText = broken.text.trim();
47
+ if (linkText.startsWith("@") && !linkText.includes("!")) {
48
+ logger.validationWarning(i18n.failed_to_resolve_link_to_0_in_document_1_may_have_meant_2(linkText, reflection.getFriendlyFullName(), linkText.replace(/[.#~]/, "!")));
49
+ }
50
+ else {
51
+ logger.validationWarning(i18n.failed_to_resolve_link_to_0_in_document_1(linkText, reflection.getFriendlyFullName()));
52
+ }
53
+ }
54
+ }
55
+ for (const broken of getBrokenLinks(reflection.comment)) {
56
+ reportBrokenCommentLink(broken, reflection, logger);
57
+ }
58
+ if (reflection.isDeclaration() &&
59
+ reflection.kindOf(ReflectionKind.TypeAlias) &&
60
+ reflection.type?.type === "union" &&
61
+ reflection.type.elementSummaries) {
62
+ for (const broken of reflection.type.elementSummaries.flatMap(getBrokenPartLinks)) {
63
+ reportBrokenCommentLink(broken, reflection, logger);
64
+ }
65
+ }
66
+ }
67
+ function reportBrokenCommentLink(broken, reflection, logger) {
68
+ const linkText = broken.text.trim();
69
+ if (broken.target instanceof ReflectionSymbolId) {
70
+ logger.validationWarning(i18n.comment_for_0_links_to_1_not_included_in_docs_use_external_link_2(reflection.getFriendlyFullName(), linkText, `{ "${broken.target.packageName}": { "${broken.target.qualifiedName}": "#" }}`));
71
+ }
72
+ else if (linkText.startsWith("@") && !linkText.includes("!")) {
73
+ logger.validationWarning(i18n.failed_to_resolve_link_to_0_in_comment_for_1_may_have_meant_2(linkText, reflection.getFriendlyFullName(), linkText.replace(/[.#~]/, "!")));
74
+ }
75
+ else {
76
+ logger.validationWarning(i18n.failed_to_resolve_link_to_0_in_comment_for_1(linkText, reflection.getFriendlyFullName()));
77
+ }
78
+ }
@@ -0,0 +1,3 @@
1
+ import { type Logger } from "#utils";
2
+ import { type ProjectReflection } from "../models/index.js";
3
+ export declare function validateMergeModuleWith(project: ProjectReflection, logger: Logger): void;
@@ -0,0 +1,12 @@
1
+ import { i18n } from "#utils";
2
+ import { ReflectionKind } from "../models/index.js";
3
+ export function validateMergeModuleWith(project, logger) {
4
+ for (const refl of project.getReflectionsByKind(ReflectionKind.SomeModule)) {
5
+ if (refl.comment?.getTag("@mergeModuleWith")) {
6
+ logger.warn(i18n.reflection_0_has_unused_mergeModuleWith_tag(refl.getFriendlyFullName()));
7
+ }
8
+ }
9
+ if (project.comment?.getTag("@mergeModuleWith")) {
10
+ logger.warn(i18n.reflection_0_has_unused_mergeModuleWith_tag("<project>"));
11
+ }
12
+ }