typedoc 0.28.19 → 0.28.20

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