@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,538 @@
1
+ import assert, { ok } from "assert";
2
+ import { parseDocument as parseYamlDoc } from "yaml";
3
+ import { Comment, CommentTag } from "../../models/index.js";
4
+ import { nicePath } from "../../utils/paths.js";
5
+ import { TokenSyntaxKind } from "./lexer.js";
6
+ import { extractTagName } from "./tagName.js";
7
+ import { FileRegistry } from "../../models/FileRegistry.js";
8
+ import { textContent, TextParserReentryState } from "./textParser.js";
9
+ import { hasDeclarationFileExtension } from "../../utils/fs.js";
10
+ import { assertNever, i18n, removeIf } from "#utils";
11
+ function makeLookaheadGenerator(gen) {
12
+ let trackHistory = false;
13
+ const history = [];
14
+ const next = [gen.next()];
15
+ return {
16
+ done() {
17
+ return !!next[0].done;
18
+ },
19
+ peek() {
20
+ ok(!next[0].done);
21
+ return next[0].value;
22
+ },
23
+ take() {
24
+ const thisItem = next.shift();
25
+ if (trackHistory) {
26
+ history.push(thisItem);
27
+ }
28
+ ok(!thisItem.done);
29
+ next.push(gen.next());
30
+ return thisItem.value;
31
+ },
32
+ mark() {
33
+ ok(!trackHistory, "Can only mark one location for backtracking at a time");
34
+ trackHistory = true;
35
+ },
36
+ release() {
37
+ trackHistory = false;
38
+ next.unshift(...history);
39
+ history.length = 0;
40
+ },
41
+ };
42
+ }
43
+ export function parseComment(tokens, file, context) {
44
+ const lexer = makeLookaheadGenerator(tokens);
45
+ const tok = lexer.done() || lexer.peek();
46
+ const comment = new Comment();
47
+ comment.sourcePath = file.fileName;
48
+ comment.summary = blockContent(comment, lexer, context.config, warningImpl, validationWarningImpl, context.files);
49
+ while (!lexer.done()) {
50
+ comment.blockTags.push(blockTag(comment, lexer, context.config, warningImpl, validationWarningImpl, context.files));
51
+ }
52
+ const tok2 = tok;
53
+ postProcessComment(comment, () => `${nicePath(file.fileName)}:${file.getLineAndCharacterOfPosition(tok2.pos).line + 1}`, (message) => context.logger.warn(message));
54
+ return comment;
55
+ function warningImpl(message, token) {
56
+ if (context.config.suppressCommentWarningsInDeclarationFiles &&
57
+ hasDeclarationFileExtension(file.fileName)) {
58
+ return;
59
+ }
60
+ context.logger.warn(message, token.pos, file);
61
+ }
62
+ function validationWarningImpl(message, token) {
63
+ if (context.config.suppressCommentWarningsInDeclarationFiles &&
64
+ hasDeclarationFileExtension(file.fileName)) {
65
+ return;
66
+ }
67
+ context.logger.validationWarning(message, token.pos, file);
68
+ }
69
+ }
70
+ /**
71
+ * Intended for parsing markdown documents. This only parses code blocks and
72
+ * inline tags outside of code blocks, everything else is text.
73
+ *
74
+ * If you change this, also look at blockContent, as it likely needs similar
75
+ * modifications to ensure parsing is consistent.
76
+ */
77
+ export function parseCommentString(tokens, config, file, logger, files) {
78
+ const suppressWarningsConfig = {
79
+ ...config,
80
+ jsDocCompatibility: {
81
+ defaultTag: true,
82
+ exampleTag: true,
83
+ ignoreUnescapedBraces: true,
84
+ inheritDocTag: true,
85
+ },
86
+ suppressCommentWarningsInDeclarationFiles: true,
87
+ };
88
+ const reentry = new TextParserReentryState();
89
+ const content = [];
90
+ const lexer = makeLookaheadGenerator(tokens);
91
+ let atNewLine = false;
92
+ while (!lexer.done()) {
93
+ let consume = true;
94
+ const next = lexer.peek();
95
+ reentry.checkState(next);
96
+ switch (next.kind) {
97
+ case TokenSyntaxKind.TypeAnnotation:
98
+ // Shouldn't have been produced by our lexer
99
+ assert(false, "Should be unreachable");
100
+ break;
101
+ case TokenSyntaxKind.NewLine:
102
+ case TokenSyntaxKind.Text:
103
+ case TokenSyntaxKind.Tag:
104
+ case TokenSyntaxKind.CloseBrace:
105
+ textContent({
106
+ sourcePath: file.fileName,
107
+ token: next,
108
+ warning: (msg, token) => logger.warn(msg, token.pos, file),
109
+ validationWarning: (msg, token) => logger.validationWarning(msg, token.pos, file),
110
+ files,
111
+ atNewLine,
112
+ validationOptions: config.validationOptions,
113
+ },
114
+ /* out */ content, reentry);
115
+ break;
116
+ case TokenSyntaxKind.Code:
117
+ content.push({ kind: "code", text: next.text });
118
+ break;
119
+ case TokenSyntaxKind.OpenBrace:
120
+ inlineTag(lexer, content, suppressWarningsConfig, (message, token) => logger.warn(message, token.pos, file));
121
+ consume = false;
122
+ break;
123
+ default:
124
+ assertNever(next.kind);
125
+ }
126
+ atNewLine = next.kind === TokenSyntaxKind.NewLine;
127
+ if (consume) {
128
+ lexer.take();
129
+ }
130
+ }
131
+ // Check for frontmatter
132
+ let frontmatterData = {};
133
+ const firstBlock = content.at(0);
134
+ if (firstBlock?.text.startsWith("---\n")) {
135
+ const end = firstBlock.text.indexOf("\n---\n");
136
+ if (end !== -1) {
137
+ const yamlText = firstBlock.text.slice("---\n".length, end);
138
+ firstBlock.text = firstBlock.text
139
+ .slice(end + "\n---\n".length)
140
+ .trimStart();
141
+ const frontmatter = parseYamlDoc(yamlText, { prettyErrors: false });
142
+ for (const warning of frontmatter.warnings) {
143
+ // Can't translate issues coming from external library...
144
+ logger.warn(warning.message, warning.pos[0] + "---\n".length, file);
145
+ }
146
+ for (const error of frontmatter.errors) {
147
+ // Can't translate issues coming from external library...
148
+ logger.error(error.message, error.pos[0] + "---\n".length, file);
149
+ }
150
+ if (frontmatter.errors.length === 0) {
151
+ const data = frontmatter.toJS();
152
+ if (typeof data === "object") {
153
+ frontmatterData = data;
154
+ }
155
+ else {
156
+ logger.error(i18n.yaml_frontmatter_not_an_object(), 5, file);
157
+ }
158
+ }
159
+ }
160
+ }
161
+ return { content, frontmatter: frontmatterData };
162
+ }
163
+ const HAS_USER_IDENTIFIER = [
164
+ "@callback",
165
+ "@param",
166
+ "@prop",
167
+ "@property",
168
+ "@template",
169
+ "@typedef",
170
+ "@typeParam",
171
+ "@inheritDoc",
172
+ ];
173
+ function makeCodeBlock(text) {
174
+ return "```ts\n" + text + "\n```";
175
+ }
176
+ /**
177
+ * Loop over comment, produce lint warnings, and set tag names for tags
178
+ * which have them.
179
+ */
180
+ function postProcessComment(comment, getPosition, warning) {
181
+ for (const tag of comment.blockTags) {
182
+ if (HAS_USER_IDENTIFIER.includes(tag.tag) && tag.content.length) {
183
+ const first = tag.content[0];
184
+ if (first.kind === "text") {
185
+ const { name, newText } = extractTagName(first.text);
186
+ tag.name = name;
187
+ if (newText) {
188
+ first.text = newText;
189
+ }
190
+ else {
191
+ // Remove this token, no real text in it.
192
+ tag.content.shift();
193
+ }
194
+ }
195
+ }
196
+ if (tag.content.some((part) => part.kind === "inline-tag" && part.tag === "@inheritDoc")) {
197
+ warning(i18n.inline_inheritdoc_should_not_appear_in_block_tag_in_comment_at_0(getPosition()));
198
+ }
199
+ }
200
+ const remarks = comment.blockTags.filter((tag) => tag.tag === "@remarks");
201
+ if (remarks.length > 1) {
202
+ warning(i18n.at_most_one_remarks_tag_expected_in_comment_at_0(getPosition()));
203
+ removeIf(comment.blockTags, (tag) => remarks.indexOf(tag) > 0);
204
+ }
205
+ const returns = comment.blockTags.filter((tag) => tag.tag === "@returns");
206
+ if (remarks.length > 1) {
207
+ warning(i18n.at_most_one_returns_tag_expected_in_comment_at_0(getPosition()));
208
+ removeIf(comment.blockTags, (tag) => returns.indexOf(tag) > 0);
209
+ }
210
+ const inheritDoc = comment.blockTags.filter((tag) => tag.tag === "@inheritDoc");
211
+ const inlineInheritDoc = comment.summary.filter((part) => part.kind === "inline-tag" && part.tag === "@inheritDoc");
212
+ if (inlineInheritDoc.length + inheritDoc.length > 1) {
213
+ warning(i18n.at_most_one_inheritdoc_tag_expected_in_comment_at_0(getPosition()));
214
+ const allInheritTags = [...inlineInheritDoc, ...inheritDoc];
215
+ removeIf(comment.summary, (part) => allInheritTags.indexOf(part) > 0);
216
+ removeIf(comment.blockTags, (tag) => allInheritTags.indexOf(tag) > 0);
217
+ }
218
+ if ((inlineInheritDoc.length || inheritDoc.length) &&
219
+ comment.summary.some((part) => part.kind !== "inline-tag" && /\S/.test(part.text))) {
220
+ warning(i18n.content_in_summary_overwritten_by_inheritdoc_in_comment_at_0(getPosition()));
221
+ }
222
+ if ((inlineInheritDoc.length || inheritDoc.length) && remarks.length) {
223
+ warning(i18n.content_in_remarks_block_overwritten_by_inheritdoc_in_comment_at_0(getPosition()));
224
+ }
225
+ if ((inlineInheritDoc.length || inheritDoc.length) && returns.length) {
226
+ warning(i18n.content_in_returns_block_overwritten_by_inheritdoc_in_comment_at_0(getPosition()));
227
+ }
228
+ }
229
+ const aliasedTags = new Map([["@return", "@returns"]]);
230
+ function blockTag(comment, lexer, config, warning, validationWarning, files) {
231
+ const blockTag = lexer.take();
232
+ ok(blockTag.kind === TokenSyntaxKind.Tag, "blockTag called not at the start of a block tag."); // blockContent is broken if this fails.
233
+ if (!config.blockTags.has(blockTag.text)) {
234
+ warning(i18n.unknown_block_tag_0(blockTag.text), blockTag);
235
+ }
236
+ const tagName = aliasedTags.get(blockTag.text) || blockTag.text;
237
+ let content;
238
+ if (tagName === "@example") {
239
+ return exampleBlock(comment, lexer, config, warning, validationWarning, files);
240
+ }
241
+ let typeAnnotation;
242
+ if (!lexer.done() &&
243
+ config.preservedTypeAnnotationTags.has(tagName)) {
244
+ if (lexer.peek().kind === TokenSyntaxKind.Text && /^\s+$/.test(lexer.peek().text)) {
245
+ lexer.take();
246
+ }
247
+ if (lexer.peek().kind === TokenSyntaxKind.TypeAnnotation) {
248
+ typeAnnotation = lexer.take().text;
249
+ }
250
+ }
251
+ if (["@default", "@defaultValue"].includes(tagName) &&
252
+ config.jsDocCompatibility.defaultTag) {
253
+ content = defaultBlockContent(comment, lexer, config, warning, validationWarning, files);
254
+ }
255
+ else {
256
+ content = blockContent(comment, lexer, config, warning, validationWarning, files);
257
+ }
258
+ const tag = new CommentTag(tagName, content);
259
+ if (typeAnnotation) {
260
+ tag.typeAnnotation = typeAnnotation;
261
+ }
262
+ return tag;
263
+ }
264
+ /**
265
+ * The `@default` tag gets a special case because otherwise we will produce many warnings
266
+ * about unescaped/mismatched/missing braces in legacy JSDoc comments
267
+ */
268
+ function defaultBlockContent(comment, lexer, config, warning, validationWarning, files) {
269
+ lexer.mark();
270
+ const tempRegistry = new FileRegistry();
271
+ const content = blockContent(comment, lexer, config, () => { }, () => { }, tempRegistry);
272
+ const end = lexer.done() || lexer.peek();
273
+ lexer.release();
274
+ if (content.some((part) => part.kind === "code" || part.kind === "inline-tag")) {
275
+ return blockContent(comment, lexer, config, warning, validationWarning, files);
276
+ }
277
+ const tokens = [];
278
+ while ((lexer.done() || lexer.peek()) !== end) {
279
+ tokens.push(lexer.take());
280
+ }
281
+ const blockText = tokens
282
+ .map((tok) => tok.text)
283
+ .join("")
284
+ .trim();
285
+ return [
286
+ {
287
+ kind: "code",
288
+ text: makeCodeBlock(blockText),
289
+ },
290
+ ];
291
+ }
292
+ /**
293
+ * The `@example` tag gets a special case because otherwise we will produce many warnings
294
+ * about unescaped/mismatched/missing braces in legacy JSDoc comments.
295
+ *
296
+ * In TSDoc, we also want to treat the first line of the block as the example name.
297
+ */
298
+ function exampleBlock(comment, lexer, config, warning, validationWarning, files) {
299
+ lexer.mark();
300
+ const tempRegistry = new FileRegistry();
301
+ const content = blockContent(comment, lexer, config, () => { }, () => { }, tempRegistry);
302
+ const end = lexer.done() || lexer.peek();
303
+ lexer.release();
304
+ if (!config.jsDocCompatibility.exampleTag ||
305
+ content.some((part) => part.kind === "code" && part.text.startsWith("```"))) {
306
+ let exampleName = "";
307
+ // First line of @example block is the example name.
308
+ let warnedAboutRichNameContent = false;
309
+ outer: while ((lexer.done() || lexer.peek()) !== end) {
310
+ const next = lexer.peek();
311
+ switch (next.kind) {
312
+ case TokenSyntaxKind.NewLine:
313
+ lexer.take();
314
+ break outer;
315
+ case TokenSyntaxKind.Text: {
316
+ const newline = next.text.indexOf("\n");
317
+ if (newline !== -1) {
318
+ exampleName += next.text.substring(0, newline);
319
+ next.pos += newline + 1;
320
+ break outer;
321
+ }
322
+ else {
323
+ exampleName += lexer.take().text;
324
+ }
325
+ break;
326
+ }
327
+ case TokenSyntaxKind.Code:
328
+ case TokenSyntaxKind.Tag:
329
+ case TokenSyntaxKind.TypeAnnotation:
330
+ case TokenSyntaxKind.CloseBrace:
331
+ case TokenSyntaxKind.OpenBrace:
332
+ if (!warnedAboutRichNameContent) {
333
+ warning(i18n.example_tag_literal_name(), lexer.peek());
334
+ warnedAboutRichNameContent = true;
335
+ }
336
+ exampleName += lexer.take().text;
337
+ break;
338
+ default:
339
+ assertNever(next.kind);
340
+ }
341
+ }
342
+ const content = blockContent(comment, lexer, config, warning, validationWarning, files);
343
+ const tag = new CommentTag("@example", content);
344
+ if (exampleName.trim()) {
345
+ tag.name = exampleName.trim();
346
+ }
347
+ return tag;
348
+ }
349
+ const tokens = [];
350
+ while ((lexer.done() || lexer.peek()) !== end) {
351
+ tokens.push(lexer.take());
352
+ }
353
+ const blockText = tokens
354
+ .map((tok) => tok.text)
355
+ .join("")
356
+ .trim();
357
+ const caption = blockText.match(/^\s*<caption>(.*?)<\/caption>\s*(\n|$)/);
358
+ if (caption) {
359
+ const tag = new CommentTag("@example", [
360
+ {
361
+ kind: "code",
362
+ text: makeCodeBlock(blockText.slice(caption[0].length)),
363
+ },
364
+ ]);
365
+ tag.name = caption[1];
366
+ return tag;
367
+ }
368
+ else {
369
+ return new CommentTag("@example", [
370
+ {
371
+ kind: "code",
372
+ text: makeCodeBlock(blockText),
373
+ },
374
+ ]);
375
+ }
376
+ }
377
+ /**
378
+ * If you change this, also look at parseCommentString as it
379
+ * likely needs similar modifications to ensure parsing is consistent.
380
+ */
381
+ function blockContent(comment, lexer, config, warning, validationWarning, files) {
382
+ const content = [];
383
+ let atNewLine = true;
384
+ const reentry = new TextParserReentryState();
385
+ loop: while (!lexer.done()) {
386
+ const next = lexer.peek();
387
+ reentry.checkState(next);
388
+ let consume = true;
389
+ switch (next.kind) {
390
+ case TokenSyntaxKind.NewLine:
391
+ content.push({ kind: "text", text: next.text });
392
+ break;
393
+ case TokenSyntaxKind.Text:
394
+ textContent({
395
+ sourcePath: comment.sourcePath,
396
+ token: next,
397
+ files,
398
+ atNewLine,
399
+ warning,
400
+ validationWarning,
401
+ validationOptions: config.validationOptions,
402
+ },
403
+ /*out*/ content, reentry);
404
+ break;
405
+ case TokenSyntaxKind.Code:
406
+ content.push({ kind: "code", text: next.text });
407
+ break;
408
+ case TokenSyntaxKind.Tag:
409
+ if (next.text === "@inheritdoc") {
410
+ if (!config.jsDocCompatibility.inheritDocTag) {
411
+ warning(i18n.inheritdoc_tag_properly_capitalized(), next);
412
+ }
413
+ next.text = "@inheritDoc";
414
+ }
415
+ if (config.modifierTags.has(next.text)) {
416
+ comment.modifierTags.add(next.text);
417
+ break;
418
+ }
419
+ else if (!atNewLine && !config.blockTags.has(next.text)) {
420
+ // Treat unknown tag as a modifier, but warn about it.
421
+ comment.modifierTags.add(next.text);
422
+ warning(i18n.treating_unrecognized_tag_0_as_modifier(next.text), next);
423
+ break;
424
+ }
425
+ else {
426
+ // Block tag or unknown tag, handled by our caller.
427
+ break loop;
428
+ }
429
+ case TokenSyntaxKind.TypeAnnotation:
430
+ // We always ignore these. In TS files they are redundant, in JS files
431
+ // they are required.
432
+ break;
433
+ case TokenSyntaxKind.CloseBrace:
434
+ // Unmatched closing brace, generate a warning, and treat it as text.
435
+ if (!config.jsDocCompatibility.ignoreUnescapedBraces) {
436
+ warning(i18n.unmatched_closing_brace(), next);
437
+ }
438
+ content.push({ kind: "text", text: next.text });
439
+ break;
440
+ case TokenSyntaxKind.OpenBrace:
441
+ inlineTag(lexer, content, config, warning);
442
+ consume = false;
443
+ break;
444
+ default:
445
+ assertNever(next.kind);
446
+ }
447
+ if (consume && lexer.take().kind === TokenSyntaxKind.NewLine) {
448
+ atNewLine = true;
449
+ }
450
+ }
451
+ // Collapse adjacent text parts
452
+ for (let i = 0; i < content.length - 1 /* inside loop */;) {
453
+ if (content[i].kind === "text" && content[i + 1].kind === "text") {
454
+ content[i].text += content[i + 1].text;
455
+ content.splice(i + 1, 1);
456
+ }
457
+ else {
458
+ i++;
459
+ }
460
+ }
461
+ // Now get rid of extra whitespace, and any empty parts
462
+ for (let i = 0; i < content.length /* inside loop */;) {
463
+ if (i === 0 || content[i].kind === "inline-tag") {
464
+ content[i].text = content[i].text.trimStart();
465
+ }
466
+ if (i === content.length - 1 || content[i].kind === "inline-tag") {
467
+ content[i].text = content[i].text.trimEnd();
468
+ }
469
+ if (!content[i].text && content[i].kind === "text") {
470
+ content.splice(i, 1);
471
+ }
472
+ else {
473
+ i++;
474
+ }
475
+ }
476
+ return content;
477
+ }
478
+ function inlineTag(lexer, block, config, warning) {
479
+ const openBrace = lexer.take();
480
+ // Now skip whitespace to grab the tag name.
481
+ // If the first non-whitespace text after the brace isn't a tag,
482
+ // then produce a warning and treat what we've consumed as plain text.
483
+ if (lexer.done() ||
484
+ ![TokenSyntaxKind.Text, TokenSyntaxKind.Tag].includes(lexer.peek().kind)) {
485
+ if (!config.jsDocCompatibility.ignoreUnescapedBraces) {
486
+ warning(i18n.unescaped_open_brace_without_inline_tag(), openBrace);
487
+ }
488
+ block.push({ kind: "text", text: openBrace.text });
489
+ return;
490
+ }
491
+ let tagName = lexer.take();
492
+ if (lexer.done() ||
493
+ (tagName.kind === TokenSyntaxKind.Text &&
494
+ (!/^\s+$/.test(tagName.text) ||
495
+ lexer.peek().kind != TokenSyntaxKind.Tag))) {
496
+ if (!config.jsDocCompatibility.ignoreUnescapedBraces) {
497
+ warning(i18n.unescaped_open_brace_without_inline_tag(), openBrace);
498
+ }
499
+ block.push({ kind: "text", text: openBrace.text + tagName.text });
500
+ return;
501
+ }
502
+ if (tagName.kind !== TokenSyntaxKind.Tag) {
503
+ tagName = lexer.take();
504
+ }
505
+ if (!config.inlineTags.has(tagName.text)) {
506
+ warning(i18n.unknown_inline_tag_0(tagName.text), tagName);
507
+ }
508
+ const content = [];
509
+ // At this point, we know we have an inline tag. Treat everything following as plain text,
510
+ // until we get to the closing brace.
511
+ while (!lexer.done() && lexer.peek().kind !== TokenSyntaxKind.CloseBrace) {
512
+ const token = lexer.take();
513
+ if (token.kind === TokenSyntaxKind.OpenBrace) {
514
+ warning(i18n.open_brace_within_inline_tag(), token);
515
+ }
516
+ content.push(token.kind === TokenSyntaxKind.NewLine ? " " : token.text);
517
+ }
518
+ if (lexer.done()) {
519
+ warning(i18n.inline_tag_not_closed(), openBrace);
520
+ }
521
+ else {
522
+ lexer.take(); // Close brace
523
+ }
524
+ const inlineTag = {
525
+ kind: "inline-tag",
526
+ tag: tagName.text,
527
+ text: content.join(""),
528
+ };
529
+ if (tagName.tsLinkTarget) {
530
+ inlineTag.target = tagName.tsLinkTarget;
531
+ }
532
+ // Separated from tsLinkTarget to avoid storing a useless empty string
533
+ // if TS doesn't have an opinion on what the link text should be.
534
+ if (tagName.tsLinkText) {
535
+ inlineTag.tsLinkText = tagName.tsLinkText;
536
+ }
537
+ block.push(inlineTag);
538
+ }
@@ -0,0 +1,8 @@
1
+ import { type Token } from "./lexer.js";
2
+ /**
3
+ * Note: This lexer intentionally *only* recognizes inline tags and code blocks.
4
+ * This is because it is intended for use on markdown documents, and we shouldn't
5
+ * take some stray `@user` mention within a "Thanks" section of someone's changelog
6
+ * as starting a block!
7
+ */
8
+ export declare function lexCommentString(file: string): Generator<Token, undefined, undefined>;