typedoc 0.28.18 → 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 (397) hide show
  1. package/README.md +12 -13
  2. package/bin/typedoc +1 -1
  3. package/dist/browser-locales/fr.d.ts +2 -0
  4. package/dist/browser-locales/fr.js +62 -0
  5. package/dist/browser-utils.js +29 -2
  6. package/dist/cli.js +111 -0
  7. package/dist/index.js +17888 -44
  8. package/dist/models.js +3736 -0
  9. package/dist/node-utils.js +7018 -0
  10. package/dist/serialization.js +430 -0
  11. package/dist/{lib → types}/application-events.d.ts +2 -0
  12. package/dist/{lib → types}/application.d.ts +51 -8
  13. package/dist/{lib → types}/converter/comments/declarationReferenceResolver.d.ts +1 -1
  14. package/dist/{lib → types}/converter/comments/discovery.d.ts +3 -3
  15. package/dist/{lib → types}/converter/comments/index.d.ts +4 -4
  16. package/dist/{lib → types}/converter/comments/lexer.d.ts +1 -1
  17. package/dist/{lib → types}/converter/comments/linkResolver.d.ts +1 -1
  18. package/dist/{lib → types}/converter/comments/parser.d.ts +3 -4
  19. package/dist/{lib → types}/converter/comments/textParser.d.ts +8 -2
  20. package/dist/{lib → types}/converter/components.d.ts +1 -1
  21. package/dist/{lib → types}/converter/context.d.ts +2 -2
  22. package/dist/{lib → types}/converter/converter.d.ts +6 -8
  23. package/dist/{lib → types}/converter/factories/signature.d.ts +1 -1
  24. package/dist/{lib → types}/converter/index.d.ts +1 -0
  25. package/dist/{lib → types}/converter/plugins/CategoryPlugin.d.ts +2 -2
  26. package/dist/{lib → types}/converter/plugins/GroupPlugin.d.ts +2 -3
  27. package/dist/{lib → types}/converter/plugins/IncludePlugin.d.ts +1 -1
  28. package/dist/{lib → types}/converter/plugins/InheritDocPlugin.d.ts +1 -1
  29. package/dist/{lib → types}/converter/plugins/LinkResolverPlugin.d.ts +3 -3
  30. package/dist/{lib → types}/converter/plugins/SourcePlugin.d.ts +1 -2
  31. package/dist/{lib → types}/converter/plugins/TypePlugin.d.ts +1 -1
  32. package/dist/{lib → types}/converter/types.d.ts +1 -1
  33. package/dist/{lib/converter/utils → types/converter/utilities}/reflections.d.ts +1 -1
  34. package/dist/{lib/converter/utils → types/converter/utilities}/repository.d.ts +14 -13
  35. package/dist/{index.d.ts → types/index.d.ts} +15 -16
  36. package/dist/{lib → types}/internationalization/internationalization.d.ts +0 -8
  37. package/dist/types/internationalization/locale-utils.d.ts +3 -0
  38. package/dist/types/internationalization/locales/de.d.ts +368 -0
  39. package/dist/{lib/internationalization/locales/en.d.cts → types/internationalization/locales/en.d.ts} +2 -1
  40. package/dist/types/internationalization/locales/fr.d.ts +346 -0
  41. package/dist/types/internationalization/locales/ja.d.ts +307 -0
  42. package/dist/types/internationalization/locales/ko.d.ts +221 -0
  43. package/dist/types/internationalization/locales/zh.d.ts +452 -0
  44. package/dist/{lib → types}/internationalization/translatable.d.ts +1 -1
  45. package/dist/{lib → types}/models/FileRegistry.d.ts +6 -1
  46. package/dist/{lib → types}/models/ReflectionSymbolId.d.ts +9 -3
  47. package/dist/{lib → types}/models/SourceReference.d.ts +5 -3
  48. package/dist/types/models.d.ts +1 -0
  49. package/dist/types/node-utils.d.ts +1 -0
  50. package/dist/{lib → types}/output/components.d.ts +3 -3
  51. package/dist/{lib → types}/output/events.d.ts +1 -2
  52. package/dist/{lib → types}/output/formatter.d.ts +1 -2
  53. package/dist/{lib → types}/output/output.d.ts +2 -2
  54. package/dist/{lib → types}/output/renderer.d.ts +4 -5
  55. package/dist/{lib → types}/output/router.d.ts +3 -2
  56. package/dist/{lib → types}/output/themes/MarkedPlugin.d.ts +3 -3
  57. package/dist/{lib → types}/output/themes/default/DefaultTheme.d.ts +1 -1
  58. package/dist/{lib → types}/output/themes/default/DefaultThemeRenderContext.d.ts +25 -25
  59. package/dist/{lib → types}/output/themes/default/layouts/default.d.ts +1 -1
  60. package/dist/{lib → types}/output/themes/default/partials/anchor-icon.d.ts +1 -1
  61. package/dist/{lib → types}/output/themes/default/partials/breadcrumb.d.ts +1 -1
  62. package/dist/{lib → types}/output/themes/default/partials/comment.d.ts +1 -1
  63. package/dist/{lib → types}/output/themes/default/partials/header.d.ts +1 -1
  64. package/dist/{lib → types}/output/themes/default/partials/hierarchy.d.ts +1 -1
  65. package/dist/{lib → types}/output/themes/default/partials/icon.d.ts +1 -1
  66. package/dist/{lib → types}/output/themes/default/partials/index.d.ts +1 -1
  67. package/dist/{lib → types}/output/themes/default/partials/member.d.ts +1 -1
  68. package/dist/{lib → types}/output/themes/default/partials/member.getterSetter.d.ts +1 -1
  69. package/dist/{lib → types}/output/themes/default/partials/member.signature.body.d.ts +1 -1
  70. package/dist/{lib → types}/output/themes/default/partials/member.signature.title.d.ts +2 -2
  71. package/dist/{lib → types}/output/themes/default/partials/member.signatures.d.ts +1 -1
  72. package/dist/{lib → types}/output/themes/default/partials/member.sources.d.ts +1 -1
  73. package/dist/{lib → types}/output/themes/default/partials/members.d.ts +1 -1
  74. package/dist/{lib → types}/output/themes/default/partials/moduleReflection.d.ts +1 -1
  75. package/dist/{lib → types}/output/themes/default/partials/navigation.d.ts +1 -1
  76. package/dist/{lib → types}/output/themes/default/partials/reflectionPreview.d.ts +1 -1
  77. package/dist/{lib → types}/output/themes/default/partials/toolbar.d.ts +1 -1
  78. package/dist/{lib → types}/output/themes/default/partials/type.d.ts +2 -2
  79. package/dist/{lib → types}/output/themes/default/partials/typeDetails.d.ts +2 -2
  80. package/dist/{lib → types}/output/themes/default/partials/typeParameters.d.ts +1 -1
  81. package/dist/{lib → types}/output/themes/default/templates/document.d.ts +1 -1
  82. package/dist/{lib → types}/output/themes/default/templates/hierarchy.d.ts +1 -1
  83. package/dist/{lib → types}/output/themes/default/templates/index.d.ts +1 -1
  84. package/dist/{lib → types}/output/themes/default/templates/reflection.d.ts +1 -1
  85. package/dist/{lib → types}/output/themes/lib.d.ts +1 -1
  86. package/dist/types/serialization.d.ts +1 -0
  87. package/dist/types/tsconfig.tsbuildinfo +1 -0
  88. package/dist/{lib → types}/utils/ValidatingFileRegistry.d.ts +1 -1
  89. package/dist/{lib → types}/utils/entry-point.d.ts +2 -2
  90. package/dist/{lib → types}/utils/general.d.ts +3 -0
  91. package/dist/types/utils/index.d.ts +22 -0
  92. package/dist/{lib → types}/utils/options/declaration.d.ts +2 -1
  93. package/dist/{lib → types}/utils/options/defaults.d.ts +1 -1
  94. package/dist/{lib → types}/utils/options/index.d.ts +2 -1
  95. package/dist/{lib → types}/utils/options/options.d.ts +1 -1
  96. package/dist/{lib → types}/utils/options/tsdoc-defaults.d.ts +1 -1
  97. package/dist/{lib → types}/utils/reflections.d.ts +1 -1
  98. package/dist/{lib → types}/utils/sort.d.ts +1 -2
  99. package/dist/{lib → types}/utils-common/general.d.ts +4 -4
  100. package/dist/{lib → types}/utils-common/jsx.elements.d.ts +16 -0
  101. package/dist/types/utils-common.d.ts +1 -0
  102. package/dist/{lib → types}/validation/documentation.d.ts +1 -1
  103. package/dist/{lib → types}/validation/exports.d.ts +1 -1
  104. package/dist/types/validation/filePaths.d.ts +3 -0
  105. package/dist/{lib → types}/validation/links.d.ts +1 -1
  106. package/dist/{lib → types}/validation/unusedMergeModuleWith.d.ts +1 -1
  107. package/dist/utils-common.js +1311 -0
  108. package/package.json +46 -37
  109. package/static/main.js +4 -4
  110. package/static/style.css +18 -3
  111. package/tsdoc.json +4 -0
  112. package/typedoc-config.schema.json +2 -0
  113. package/dist/lib/application-events.js +0 -5
  114. package/dist/lib/application.js +0 -716
  115. package/dist/lib/cli.js +0 -111
  116. package/dist/lib/converter/comments/blockLexer.js +0 -391
  117. package/dist/lib/converter/comments/declarationReferenceResolver.js +0 -218
  118. package/dist/lib/converter/comments/discovery.js +0 -563
  119. package/dist/lib/converter/comments/index.js +0 -241
  120. package/dist/lib/converter/comments/lexer.js +0 -10
  121. package/dist/lib/converter/comments/lineLexer.js +0 -279
  122. package/dist/lib/converter/comments/linkResolver.js +0 -186
  123. package/dist/lib/converter/comments/parser.js +0 -538
  124. package/dist/lib/converter/comments/rawLexer.js +0 -218
  125. package/dist/lib/converter/comments/tagName.js +0 -58
  126. package/dist/lib/converter/comments/textParser.js +0 -372
  127. package/dist/lib/converter/components.js +0 -3
  128. package/dist/lib/converter/context.js +0 -311
  129. package/dist/lib/converter/convert-expression.js +0 -58
  130. package/dist/lib/converter/converter-events.js +0 -13
  131. package/dist/lib/converter/converter.js +0 -705
  132. package/dist/lib/converter/factories/index-signature.js +0 -50
  133. package/dist/lib/converter/factories/signature.js +0 -353
  134. package/dist/lib/converter/factories/symbol-id.js +0 -50
  135. package/dist/lib/converter/index.js +0 -3
  136. package/dist/lib/converter/jsdoc.js +0 -135
  137. package/dist/lib/converter/plugins/CategoryPlugin.js +0 -278
  138. package/dist/lib/converter/plugins/CommentPlugin.js +0 -770
  139. package/dist/lib/converter/plugins/GroupPlugin.js +0 -281
  140. package/dist/lib/converter/plugins/ImplementsPlugin.js +0 -438
  141. package/dist/lib/converter/plugins/IncludePlugin.js +0 -254
  142. package/dist/lib/converter/plugins/InheritDocPlugin.js +0 -220
  143. package/dist/lib/converter/plugins/LinkResolverPlugin.js +0 -88
  144. package/dist/lib/converter/plugins/MergeModuleWithPlugin.js +0 -50
  145. package/dist/lib/converter/plugins/PackagePlugin.js +0 -188
  146. package/dist/lib/converter/plugins/SourcePlugin.js +0 -215
  147. package/dist/lib/converter/plugins/TypePlugin.js +0 -108
  148. package/dist/lib/converter/plugins/index.js +0 -10
  149. package/dist/lib/converter/symbols.js +0 -861
  150. package/dist/lib/converter/types.js +0 -833
  151. package/dist/lib/converter/utils/nodes.js +0 -26
  152. package/dist/lib/converter/utils/reflections.js +0 -17
  153. package/dist/lib/converter/utils/repository.js +0 -295
  154. package/dist/lib/converter/utils/symbols.js +0 -12
  155. package/dist/lib/debug/index.js +0 -2
  156. package/dist/lib/debug/reflectionLifetimes.js +0 -27
  157. package/dist/lib/debug/rendererUrls.js +0 -68
  158. package/dist/lib/internationalization/index.js +0 -7
  159. package/dist/lib/internationalization/internationalization.js +0 -64
  160. package/dist/lib/internationalization/locale-utils.cjs +0 -8
  161. package/dist/lib/internationalization/locale-utils.d.cts +0 -8
  162. package/dist/lib/internationalization/locales/de.cjs +0 -401
  163. package/dist/lib/internationalization/locales/de.d.cts +0 -368
  164. package/dist/lib/internationalization/locales/en.cjs +0 -411
  165. package/dist/lib/internationalization/locales/ja.cjs +0 -320
  166. package/dist/lib/internationalization/locales/ja.d.cts +0 -307
  167. package/dist/lib/internationalization/locales/ko.cjs +0 -233
  168. package/dist/lib/internationalization/locales/ko.d.cts +0 -221
  169. package/dist/lib/internationalization/locales/zh.cjs +0 -488
  170. package/dist/lib/internationalization/locales/zh.d.cts +0 -452
  171. package/dist/lib/internationalization/translatable.js +0 -8
  172. package/dist/lib/models/Comment.js +0 -534
  173. package/dist/lib/models/ContainerReflection.js +0 -159
  174. package/dist/lib/models/DeclarationReflection.js +0 -287
  175. package/dist/lib/models/DocumentReflection.js +0 -66
  176. package/dist/lib/models/FileRegistry.js +0 -133
  177. package/dist/lib/models/ParameterReflection.js +0 -39
  178. package/dist/lib/models/ProjectReflection.js +0 -417
  179. package/dist/lib/models/ReferenceReflection.js +0 -85
  180. package/dist/lib/models/Reflection.js +0 -495
  181. package/dist/lib/models/ReflectionCategory.js +0 -56
  182. package/dist/lib/models/ReflectionGroup.js +0 -72
  183. package/dist/lib/models/ReflectionSymbolId.js +0 -85
  184. package/dist/lib/models/SignatureReflection.js +0 -96
  185. package/dist/lib/models/SourceReference.js +0 -50
  186. package/dist/lib/models/TypeParameterReflection.js +0 -45
  187. package/dist/lib/models/index.js +0 -19
  188. package/dist/lib/models/kind.js +0 -231
  189. package/dist/lib/models/types.js +0 -1296
  190. package/dist/lib/models/utils.js +0 -26
  191. package/dist/lib/models/variant.js +0 -1
  192. package/dist/lib/output/components.js +0 -133
  193. package/dist/lib/output/events.js +0 -195
  194. package/dist/lib/output/formatter.js +0 -660
  195. package/dist/lib/output/index.js +0 -7
  196. package/dist/lib/output/output.js +0 -92
  197. package/dist/lib/output/plugins/AssetsPlugin.js +0 -160
  198. package/dist/lib/output/plugins/HierarchyPlugin.js +0 -65
  199. package/dist/lib/output/plugins/IconsPlugin.js +0 -54
  200. package/dist/lib/output/plugins/JavascriptIndexPlugin.js +0 -222
  201. package/dist/lib/output/plugins/NavigationPlugin.js +0 -23
  202. package/dist/lib/output/plugins/SitemapPlugin.js +0 -82
  203. package/dist/lib/output/plugins/index.js +0 -7
  204. package/dist/lib/output/renderer.js +0 -387
  205. package/dist/lib/output/router.js +0 -520
  206. package/dist/lib/output/theme.js +0 -17
  207. package/dist/lib/output/themes/MarkedPlugin.js +0 -461
  208. package/dist/lib/output/themes/default/DefaultTheme.js +0 -367
  209. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +0 -151
  210. package/dist/lib/output/themes/default/Slugger.js +0 -60
  211. package/dist/lib/output/themes/default/layouts/default.js +0 -89
  212. package/dist/lib/output/themes/default/partials/anchor-icon.js +0 -9
  213. package/dist/lib/output/themes/default/partials/breadcrumb.js +0 -11
  214. package/dist/lib/output/themes/default/partials/comment.js +0 -80
  215. package/dist/lib/output/themes/default/partials/footer.js +0 -37
  216. package/dist/lib/output/themes/default/partials/header.js +0 -39
  217. package/dist/lib/output/themes/default/partials/hierarchy.js +0 -32
  218. package/dist/lib/output/themes/default/partials/icon.js +0 -101
  219. package/dist/lib/output/themes/default/partials/index.js +0 -24
  220. package/dist/lib/output/themes/default/partials/member.declaration.js +0 -35
  221. package/dist/lib/output/themes/default/partials/member.getterSetter.js +0 -12
  222. package/dist/lib/output/themes/default/partials/member.js +0 -36
  223. package/dist/lib/output/themes/default/partials/member.signature.body.js +0 -33
  224. package/dist/lib/output/themes/default/partials/member.signature.title.js +0 -9
  225. package/dist/lib/output/themes/default/partials/member.signatures.js +0 -9
  226. package/dist/lib/output/themes/default/partials/member.sources.js +0 -55
  227. package/dist/lib/output/themes/default/partials/members.js +0 -17
  228. package/dist/lib/output/themes/default/partials/moduleReflection.js +0 -68
  229. package/dist/lib/output/themes/default/partials/navigation.js +0 -144
  230. package/dist/lib/output/themes/default/partials/reflectionPreview.js +0 -26
  231. package/dist/lib/output/themes/default/partials/toolbar.js +0 -13
  232. package/dist/lib/output/themes/default/partials/type.js +0 -9
  233. package/dist/lib/output/themes/default/partials/typeAndParent.js +0 -28
  234. package/dist/lib/output/themes/default/partials/typeDetails.js +0 -284
  235. package/dist/lib/output/themes/default/partials/typeParameters.js +0 -26
  236. package/dist/lib/output/themes/default/templates/document.js +0 -3
  237. package/dist/lib/output/themes/default/templates/hierarchy.js +0 -31
  238. package/dist/lib/output/themes/default/templates/index.js +0 -3
  239. package/dist/lib/output/themes/default/templates/reflection.js +0 -53
  240. package/dist/lib/output/themes/lib.js +0 -218
  241. package/dist/lib/serialization/components.js +0 -1
  242. package/dist/lib/serialization/deserializer.js +0 -235
  243. package/dist/lib/serialization/events.js +0 -18
  244. package/dist/lib/serialization/index.js +0 -4
  245. package/dist/lib/serialization/schema.js +0 -32
  246. package/dist/lib/serialization/serializer.js +0 -65
  247. package/dist/lib/utils/ValidatingFileRegistry.js +0 -52
  248. package/dist/lib/utils/component.js +0 -41
  249. package/dist/lib/utils/compress.js +0 -13
  250. package/dist/lib/utils/declaration-maps.js +0 -51
  251. package/dist/lib/utils/entry-point.js +0 -330
  252. package/dist/lib/utils/fs.js +0 -372
  253. package/dist/lib/utils/general.js +0 -25
  254. package/dist/lib/utils/highlighter.js +0 -150
  255. package/dist/lib/utils/html-entities.js +0 -2329
  256. package/dist/lib/utils/html.js +0 -635
  257. package/dist/lib/utils/index.d.ts +0 -17
  258. package/dist/lib/utils/index.js +0 -15
  259. package/dist/lib/utils/loggers.js +0 -71
  260. package/dist/lib/utils/options/declaration.js +0 -443
  261. package/dist/lib/utils/options/defaults.js +0 -104
  262. package/dist/lib/utils/options/help.js +0 -63
  263. package/dist/lib/utils/options/index.js +0 -4
  264. package/dist/lib/utils/options/options.js +0 -273
  265. package/dist/lib/utils/options/readers/arguments.js +0 -109
  266. package/dist/lib/utils/options/readers/index.js +0 -4
  267. package/dist/lib/utils/options/readers/package-json.js +0 -40
  268. package/dist/lib/utils/options/readers/tsconfig.js +0 -172
  269. package/dist/lib/utils/options/readers/typedoc.js +0 -136
  270. package/dist/lib/utils/options/sources/index.js +0 -1
  271. package/dist/lib/utils/options/sources/typedoc.js +0 -876
  272. package/dist/lib/utils/options/tsdoc-defaults.js +0 -94
  273. package/dist/lib/utils/package-manifest.js +0 -84
  274. package/dist/lib/utils/paths.js +0 -127
  275. package/dist/lib/utils/perf.js +0 -86
  276. package/dist/lib/utils/plugins.js +0 -61
  277. package/dist/lib/utils/reflections.js +0 -64
  278. package/dist/lib/utils/sort.js +0 -153
  279. package/dist/lib/utils/tsconfig.js +0 -60
  280. package/dist/lib/utils/tsutils.js +0 -23
  281. package/dist/lib/utils-common/array.js +0 -152
  282. package/dist/lib/utils-common/declarationReference.js +0 -341
  283. package/dist/lib/utils-common/enum.js +0 -27
  284. package/dist/lib/utils-common/events.js +0 -49
  285. package/dist/lib/utils-common/general.js +0 -22
  286. package/dist/lib/utils-common/hooks.js +0 -90
  287. package/dist/lib/utils-common/i18n.js +0 -39
  288. package/dist/lib/utils-common/index.js +0 -17
  289. package/dist/lib/utils-common/jsx.elements.js +0 -3
  290. package/dist/lib/utils-common/jsx.js +0 -187
  291. package/dist/lib/utils-common/logger.js +0 -129
  292. package/dist/lib/utils-common/map.js +0 -63
  293. package/dist/lib/utils-common/minimalSourceFile.js +0 -43
  294. package/dist/lib/utils-common/path.js +0 -130
  295. package/dist/lib/utils-common/set.js +0 -23
  296. package/dist/lib/utils-common/string.js +0 -84
  297. package/dist/lib/utils-common/validation.js +0 -50
  298. package/dist/lib/validation/documentation.js +0 -91
  299. package/dist/lib/validation/exports.js +0 -65
  300. package/dist/lib/validation/links.js +0 -78
  301. package/dist/lib/validation/unusedMergeModuleWith.js +0 -12
  302. /package/dist/{browser-utils.d.ts → types/browser-utils.d.ts} +0 -0
  303. /package/dist/{lib → types}/cli.d.ts +0 -0
  304. /package/dist/{lib → types}/converter/comments/blockLexer.d.ts +0 -0
  305. /package/dist/{lib → types}/converter/comments/lineLexer.d.ts +0 -0
  306. /package/dist/{lib → types}/converter/comments/rawLexer.d.ts +0 -0
  307. /package/dist/{lib → types}/converter/comments/tagName.d.ts +0 -0
  308. /package/dist/{lib → types}/converter/convert-expression.d.ts +0 -0
  309. /package/dist/{lib → types}/converter/converter-events.d.ts +0 -0
  310. /package/dist/{lib → types}/converter/factories/index-signature.d.ts +0 -0
  311. /package/dist/{lib → types}/converter/factories/symbol-id.d.ts +0 -0
  312. /package/dist/{lib → types}/converter/jsdoc.d.ts +0 -0
  313. /package/dist/{lib → types}/converter/plugins/CommentPlugin.d.ts +0 -0
  314. /package/dist/{lib → types}/converter/plugins/ImplementsPlugin.d.ts +0 -0
  315. /package/dist/{lib → types}/converter/plugins/MergeModuleWithPlugin.d.ts +0 -0
  316. /package/dist/{lib → types}/converter/plugins/PackagePlugin.d.ts +0 -0
  317. /package/dist/{lib → types}/converter/plugins/index.d.ts +0 -0
  318. /package/dist/{lib → types}/converter/symbols.d.ts +0 -0
  319. /package/dist/{lib/converter/utils → types/converter/utilities}/nodes.d.ts +0 -0
  320. /package/dist/{lib/converter/utils → types/converter/utilities}/symbols.d.ts +0 -0
  321. /package/dist/{lib → types}/debug/index.d.ts +0 -0
  322. /package/dist/{lib → types}/debug/reflectionLifetimes.d.ts +0 -0
  323. /package/dist/{lib → types}/debug/rendererUrls.d.ts +0 -0
  324. /package/dist/{lib → types}/internationalization/index.d.ts +0 -0
  325. /package/dist/{lib → types}/models/Comment.d.ts +0 -0
  326. /package/dist/{lib → types}/models/ContainerReflection.d.ts +0 -0
  327. /package/dist/{lib → types}/models/DeclarationReflection.d.ts +0 -0
  328. /package/dist/{lib → types}/models/DocumentReflection.d.ts +0 -0
  329. /package/dist/{lib → types}/models/ParameterReflection.d.ts +0 -0
  330. /package/dist/{lib → types}/models/ProjectReflection.d.ts +0 -0
  331. /package/dist/{lib → types}/models/ReferenceReflection.d.ts +0 -0
  332. /package/dist/{lib → types}/models/Reflection.d.ts +0 -0
  333. /package/dist/{lib → types}/models/ReflectionCategory.d.ts +0 -0
  334. /package/dist/{lib → types}/models/ReflectionGroup.d.ts +0 -0
  335. /package/dist/{lib → types}/models/SignatureReflection.d.ts +0 -0
  336. /package/dist/{lib → types}/models/TypeParameterReflection.d.ts +0 -0
  337. /package/dist/{lib → types}/models/index.d.ts +0 -0
  338. /package/dist/{lib → types}/models/kind.d.ts +0 -0
  339. /package/dist/{lib → types}/models/types.d.ts +0 -0
  340. /package/dist/{lib → types}/models/utils.d.ts +0 -0
  341. /package/dist/{lib → types}/models/variant.d.ts +0 -0
  342. /package/dist/{lib → types}/output/index.d.ts +0 -0
  343. /package/dist/{lib → types}/output/plugins/AssetsPlugin.d.ts +0 -0
  344. /package/dist/{lib → types}/output/plugins/HierarchyPlugin.d.ts +0 -0
  345. /package/dist/{lib → types}/output/plugins/IconsPlugin.d.ts +0 -0
  346. /package/dist/{lib → types}/output/plugins/JavascriptIndexPlugin.d.ts +0 -0
  347. /package/dist/{lib → types}/output/plugins/NavigationPlugin.d.ts +0 -0
  348. /package/dist/{lib → types}/output/plugins/SitemapPlugin.d.ts +0 -0
  349. /package/dist/{lib → types}/output/plugins/index.d.ts +0 -0
  350. /package/dist/{lib → types}/output/theme.d.ts +0 -0
  351. /package/dist/{lib → types}/output/themes/default/Slugger.d.ts +0 -0
  352. /package/dist/{lib → types}/output/themes/default/partials/footer.d.ts +0 -0
  353. /package/dist/{lib → types}/output/themes/default/partials/member.declaration.d.ts +0 -0
  354. /package/dist/{lib → types}/output/themes/default/partials/typeAndParent.d.ts +0 -0
  355. /package/dist/{lib → types}/serialization/components.d.ts +0 -0
  356. /package/dist/{lib → types}/serialization/deserializer.d.ts +0 -0
  357. /package/dist/{lib → types}/serialization/events.d.ts +0 -0
  358. /package/dist/{lib → types}/serialization/index.d.ts +0 -0
  359. /package/dist/{lib → types}/serialization/schema.d.ts +0 -0
  360. /package/dist/{lib → types}/serialization/serializer.d.ts +0 -0
  361. /package/dist/{lib → types}/utils/component.d.ts +0 -0
  362. /package/dist/{lib → types}/utils/compress.d.ts +0 -0
  363. /package/dist/{lib → types}/utils/declaration-maps.d.ts +0 -0
  364. /package/dist/{lib → types}/utils/fs.d.ts +0 -0
  365. /package/dist/{lib → types}/utils/highlighter.d.ts +0 -0
  366. /package/dist/{lib → types}/utils/html-entities.d.ts +0 -0
  367. /package/dist/{lib → types}/utils/html.d.ts +0 -0
  368. /package/dist/{lib → types}/utils/loggers.d.ts +0 -0
  369. /package/dist/{lib → types}/utils/options/help.d.ts +0 -0
  370. /package/dist/{lib → types}/utils/options/readers/arguments.d.ts +0 -0
  371. /package/dist/{lib → types}/utils/options/readers/index.d.ts +0 -0
  372. /package/dist/{lib → types}/utils/options/readers/package-json.d.ts +0 -0
  373. /package/dist/{lib → types}/utils/options/readers/tsconfig.d.ts +0 -0
  374. /package/dist/{lib → types}/utils/options/readers/typedoc.d.ts +0 -0
  375. /package/dist/{lib → types}/utils/options/sources/index.d.ts +0 -0
  376. /package/dist/{lib → types}/utils/options/sources/typedoc.d.ts +0 -0
  377. /package/dist/{lib → types}/utils/package-manifest.d.ts +0 -0
  378. /package/dist/{lib → types}/utils/paths.d.ts +0 -0
  379. /package/dist/{lib → types}/utils/perf.d.ts +0 -0
  380. /package/dist/{lib → types}/utils/plugins.d.ts +0 -0
  381. /package/dist/{lib → types}/utils/tsconfig.d.ts +0 -0
  382. /package/dist/{lib → types}/utils/tsutils.d.ts +0 -0
  383. /package/dist/{lib → types}/utils-common/array.d.ts +0 -0
  384. /package/dist/{lib → types}/utils-common/declarationReference.d.ts +0 -0
  385. /package/dist/{lib → types}/utils-common/enum.d.ts +0 -0
  386. /package/dist/{lib → types}/utils-common/events.d.ts +0 -0
  387. /package/dist/{lib → types}/utils-common/hooks.d.ts +0 -0
  388. /package/dist/{lib → types}/utils-common/i18n.d.ts +0 -0
  389. /package/dist/{lib → types}/utils-common/index.d.ts +0 -0
  390. /package/dist/{lib → types}/utils-common/jsx.d.ts +0 -0
  391. /package/dist/{lib → types}/utils-common/logger.d.ts +0 -0
  392. /package/dist/{lib → types}/utils-common/map.d.ts +0 -0
  393. /package/dist/{lib → types}/utils-common/minimalSourceFile.d.ts +0 -0
  394. /package/dist/{lib → types}/utils-common/path.d.ts +0 -0
  395. /package/dist/{lib → types}/utils-common/set.d.ts +0 -0
  396. /package/dist/{lib → types}/utils-common/string.d.ts +0 -0
  397. /package/dist/{lib → types}/utils-common/validation.d.ts +0 -0
@@ -1,538 +0,0 @@
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
- }