typedoc 0.22.16 → 0.23.0-beta.2

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 (281) hide show
  1. package/README.md +2 -16
  2. package/dist/index.d.ts +3 -3
  3. package/dist/index.js +1 -2
  4. package/dist/lib/application.js +15 -15
  5. package/dist/lib/converter/comments/blockLexer.d.ts +2 -0
  6. package/dist/lib/converter/comments/blockLexer.js +311 -0
  7. package/dist/lib/converter/comments/discovery.d.ts +5 -0
  8. package/dist/lib/converter/comments/discovery.js +213 -0
  9. package/dist/lib/converter/comments/index.d.ts +11 -0
  10. package/dist/lib/converter/comments/index.js +101 -0
  11. package/dist/lib/converter/comments/lexer.d.ts +13 -0
  12. package/dist/lib/converter/comments/lexer.js +13 -0
  13. package/dist/lib/converter/comments/parser.d.ts +4 -0
  14. package/dist/lib/converter/comments/parser.js +267 -0
  15. package/dist/lib/converter/comments/rawLexer.d.ts +2 -0
  16. package/dist/lib/converter/comments/rawLexer.js +253 -0
  17. package/dist/lib/converter/context.d.ts +2 -15
  18. package/dist/lib/converter/context.js +23 -23
  19. package/dist/lib/converter/convert-expression.js +1 -1
  20. package/dist/lib/converter/converter.d.ts +8 -6
  21. package/dist/lib/converter/converter.js +35 -120
  22. package/dist/lib/converter/factories/index-signature.js +2 -3
  23. package/dist/lib/converter/factories/signature.d.ts +1 -1
  24. package/dist/lib/converter/factories/signature.js +33 -27
  25. package/dist/lib/converter/index.d.ts +1 -0
  26. package/dist/lib/converter/jsdoc.js +13 -13
  27. package/dist/lib/converter/plugins/CategoryPlugin.d.ts +7 -5
  28. package/dist/lib/converter/plugins/CategoryPlugin.js +34 -44
  29. package/dist/lib/converter/plugins/CommentPlugin.d.ts +7 -4
  30. package/dist/lib/converter/plugins/CommentPlugin.js +157 -191
  31. package/dist/lib/converter/plugins/GroupPlugin.d.ts +8 -1
  32. package/dist/lib/converter/plugins/GroupPlugin.js +45 -46
  33. package/dist/lib/converter/plugins/ImplementsPlugin.d.ts +2 -8
  34. package/dist/lib/converter/plugins/ImplementsPlugin.js +112 -81
  35. package/dist/lib/converter/plugins/InheritDocPlugin.d.ts +8 -5
  36. package/dist/lib/converter/plugins/InheritDocPlugin.js +116 -35
  37. package/dist/lib/converter/plugins/LinkResolverPlugin.d.ts +33 -0
  38. package/dist/lib/converter/plugins/LinkResolverPlugin.js +170 -0
  39. package/dist/lib/converter/plugins/PackagePlugin.js +15 -6
  40. package/dist/lib/converter/plugins/SourcePlugin.d.ts +15 -18
  41. package/dist/lib/converter/plugins/SourcePlugin.js +72 -86
  42. package/dist/lib/converter/plugins/index.d.ts +2 -3
  43. package/dist/lib/converter/plugins/index.js +5 -7
  44. package/dist/lib/converter/symbols.js +70 -79
  45. package/dist/lib/converter/types.js +25 -37
  46. package/dist/lib/converter/utils/base-path.js +2 -2
  47. package/dist/lib/converter/utils/nodes.js +3 -5
  48. package/dist/lib/converter/utils/reflections.d.ts +1 -8
  49. package/dist/lib/converter/utils/reflections.js +1 -67
  50. package/dist/lib/converter/{plugins/SourceLinkPlugin.d.ts → utils/repository.d.ts} +3 -37
  51. package/dist/lib/converter/{plugins/SourceLinkPlugin.js → utils/repository.js} +23 -123
  52. package/dist/lib/models/ReflectionCategory.d.ts +2 -0
  53. package/dist/lib/models/ReflectionCategory.js +8 -0
  54. package/dist/lib/models/ReflectionGroup.d.ts +3 -28
  55. package/dist/lib/models/ReflectionGroup.js +10 -3
  56. package/dist/lib/models/comments/comment.d.ts +89 -25
  57. package/dist/lib/models/comments/comment.js +123 -43
  58. package/dist/lib/models/comments/index.d.ts +2 -2
  59. package/dist/lib/models/comments/index.js +1 -2
  60. package/dist/lib/models/reflections/abstract.d.ts +11 -32
  61. package/dist/lib/models/reflections/abstract.js +37 -13
  62. package/dist/lib/models/reflections/container.d.ts +2 -0
  63. package/dist/lib/models/reflections/container.js +10 -2
  64. package/dist/lib/models/reflections/declaration.d.ts +6 -5
  65. package/dist/lib/models/reflections/declaration.js +23 -9
  66. package/dist/lib/models/reflections/index.d.ts +1 -1
  67. package/dist/lib/models/reflections/kind.d.ts +3 -2
  68. package/dist/lib/models/reflections/kind.js +6 -4
  69. package/dist/lib/models/reflections/parameter.d.ts +2 -0
  70. package/dist/lib/models/reflections/parameter.js +7 -0
  71. package/dist/lib/models/reflections/project.d.ts +7 -36
  72. package/dist/lib/models/reflections/project.js +14 -58
  73. package/dist/lib/models/reflections/reference.d.ts +3 -0
  74. package/dist/lib/models/reflections/reference.js +9 -0
  75. package/dist/lib/models/reflections/signature.d.ts +4 -5
  76. package/dist/lib/models/reflections/signature.js +14 -8
  77. package/dist/lib/models/reflections/type-parameter.d.ts +6 -4
  78. package/dist/lib/models/reflections/type-parameter.js +8 -0
  79. package/dist/lib/models/reflections/utils.js +4 -3
  80. package/dist/lib/models/sources/file.d.ts +10 -59
  81. package/dist/lib/models/sources/file.js +18 -24
  82. package/dist/lib/models/sources/index.d.ts +1 -3
  83. package/dist/lib/models/sources/index.js +2 -4
  84. package/dist/lib/models/types.d.ts +64 -47
  85. package/dist/lib/models/types.js +204 -58
  86. package/dist/lib/output/events.d.ts +2 -9
  87. package/dist/lib/output/events.js +2 -3
  88. package/dist/lib/output/plugins/JavascriptIndexPlugin.js +4 -6
  89. package/dist/lib/output/plugins/index.d.ts +0 -2
  90. package/dist/lib/output/plugins/index.js +1 -5
  91. package/dist/lib/output/renderer.d.ts +2 -10
  92. package/dist/lib/output/renderer.js +4 -13
  93. package/dist/lib/output/themes/MarkedPlugin.js +5 -7
  94. package/dist/lib/output/themes/default/DefaultTheme.d.ts +3 -11
  95. package/dist/lib/output/themes/default/DefaultTheme.js +63 -96
  96. package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts +4 -3
  97. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +2 -0
  98. package/dist/lib/output/themes/default/layouts/default.js +12 -12
  99. package/dist/lib/output/themes/default/partials/analytics.js +8 -9
  100. package/dist/lib/output/themes/default/partials/anchor-icon.js +2 -5
  101. package/dist/lib/output/themes/default/partials/comment.d.ts +1 -1
  102. package/dist/lib/output/themes/default/partials/comment.js +8 -13
  103. package/dist/lib/output/themes/default/partials/footer.d.ts +1 -3
  104. package/dist/lib/output/themes/default/partials/footer.js +4 -23
  105. package/dist/lib/output/themes/default/partials/header.d.ts +2 -2
  106. package/dist/lib/output/themes/default/partials/header.js +12 -43
  107. package/dist/lib/output/themes/default/partials/icon.d.ts +6 -0
  108. package/dist/lib/output/themes/default/partials/icon.js +91 -0
  109. package/dist/lib/output/themes/default/partials/index.d.ts +1 -1
  110. package/dist/lib/output/themes/default/partials/index.js +30 -16
  111. package/dist/lib/output/themes/default/partials/member.declaration.js +4 -4
  112. package/dist/lib/output/themes/default/partials/member.getterSetter.js +8 -4
  113. package/dist/lib/output/themes/default/partials/member.js +14 -17
  114. package/dist/lib/output/themes/default/partials/member.signature.body.js +25 -30
  115. package/dist/lib/output/themes/default/partials/member.signature.title.js +18 -21
  116. package/dist/lib/output/themes/default/partials/member.signatures.js +3 -6
  117. package/dist/lib/output/themes/default/partials/members.group.js +2 -2
  118. package/dist/lib/output/themes/default/partials/members.js +1 -2
  119. package/dist/lib/output/themes/default/partials/navigation.js +80 -40
  120. package/dist/lib/output/themes/default/partials/parameter.js +64 -66
  121. package/dist/lib/output/themes/default/partials/toolbar.d.ts +5 -0
  122. package/dist/lib/output/themes/default/partials/toolbar.js +18 -0
  123. package/dist/lib/output/themes/default/partials/type.js +58 -46
  124. package/dist/lib/output/themes/default/partials/typeAndParent.js +3 -3
  125. package/dist/lib/output/themes/default/partials/typeParameters.js +1 -1
  126. package/dist/lib/output/themes/default/templates/index.d.ts +1 -1
  127. package/dist/lib/output/themes/default/templates/index.js +3 -2
  128. package/dist/lib/output/themes/default/templates/reflection.d.ts +1 -1
  129. package/dist/lib/output/themes/default/templates/reflection.js +16 -16
  130. package/dist/lib/output/themes/lib.d.ts +6 -3
  131. package/dist/lib/output/themes/lib.js +65 -16
  132. package/dist/lib/serialization/components.d.ts +5 -51
  133. package/dist/lib/serialization/components.js +0 -52
  134. package/dist/lib/serialization/events.d.ts +2 -2
  135. package/dist/lib/serialization/index.d.ts +1 -2
  136. package/dist/lib/serialization/index.js +1 -30
  137. package/dist/lib/serialization/schema.d.ts +29 -27
  138. package/dist/lib/serialization/serializer.d.ts +10 -7
  139. package/dist/lib/serialization/serializer.js +20 -81
  140. package/dist/lib/utils/array.d.ts +1 -7
  141. package/dist/lib/utils/array.js +10 -33
  142. package/dist/lib/utils/entry-point.js +1 -1
  143. package/dist/lib/utils/enum.js +2 -2
  144. package/dist/lib/utils/events.js +1 -1
  145. package/dist/lib/utils/fs.d.ts +4 -0
  146. package/dist/lib/utils/fs.js +31 -1
  147. package/dist/lib/utils/general.d.ts +4 -0
  148. package/dist/lib/utils/general.js +9 -1
  149. package/dist/lib/utils/highlighter.js +13 -30
  150. package/dist/lib/utils/hooks.d.ts +1 -6
  151. package/dist/lib/utils/hooks.js +2 -8
  152. package/dist/lib/utils/index.d.ts +4 -1
  153. package/dist/lib/utils/index.js +6 -1
  154. package/dist/lib/utils/jsx.d.ts +1 -1
  155. package/dist/lib/utils/jsx.elements.d.ts +29 -0
  156. package/dist/lib/utils/jsx.js +20 -1
  157. package/dist/lib/utils/loggers.d.ts +7 -10
  158. package/dist/lib/utils/loggers.js +40 -25
  159. package/dist/lib/utils/map.d.ts +5 -0
  160. package/dist/lib/utils/map.js +19 -0
  161. package/dist/lib/utils/options/declaration.d.ts +22 -9
  162. package/dist/lib/utils/options/declaration.js +21 -43
  163. package/dist/lib/utils/options/help.js +1 -2
  164. package/dist/lib/utils/options/index.d.ts +1 -1
  165. package/dist/lib/utils/options/options.d.ts +0 -20
  166. package/dist/lib/utils/options/options.js +3 -36
  167. package/dist/lib/utils/options/readers/tsconfig.js +1 -2
  168. package/dist/lib/utils/options/readers/typedoc.js +2 -0
  169. package/dist/lib/utils/options/sources/typedoc.js +104 -23
  170. package/dist/lib/utils/package-manifest.js +5 -16
  171. package/dist/lib/utils/perf.d.ts +3 -0
  172. package/dist/lib/utils/perf.js +66 -0
  173. package/dist/lib/utils/plugins.js +1 -1
  174. package/dist/lib/utils/sort.js +2 -4
  175. package/dist/lib/utils/validation.d.ts +25 -0
  176. package/dist/lib/utils/validation.js +45 -0
  177. package/dist/lib/validation/documentation.js +2 -3
  178. package/dist/lib/validation/exports.d.ts +1 -1
  179. package/dist/lib/validation/exports.js +10 -16
  180. package/dist/lib/validation/links.d.ts +3 -0
  181. package/dist/lib/validation/links.js +25 -0
  182. package/package.json +5 -7
  183. package/static/main.js +4 -2
  184. package/static/style.css +422 -537
  185. package/dist/lib/converter/factories/comment.d.ts +0 -19
  186. package/dist/lib/converter/factories/comment.js +0 -249
  187. package/dist/lib/converter/plugins/DecoratorPlugin.d.ts +0 -28
  188. package/dist/lib/converter/plugins/DecoratorPlugin.js +0 -112
  189. package/dist/lib/models/comments/tag.d.ts +0 -23
  190. package/dist/lib/models/comments/tag.js +0 -19
  191. package/dist/lib/models/sources/directory.d.ts +0 -60
  192. package/dist/lib/models/sources/directory.js +0 -60
  193. package/dist/lib/output/plugins/LegendPlugin.d.ts +0 -38
  194. package/dist/lib/output/plugins/LegendPlugin.js +0 -301
  195. package/dist/lib/output/plugins/MarkedLinksPlugin.d.ts +0 -72
  196. package/dist/lib/output/plugins/MarkedLinksPlugin.js +0 -178
  197. package/dist/lib/serialization/serializers/comments/comment-tag.d.ts +0 -12
  198. package/dist/lib/serialization/serializers/comments/comment-tag.js +0 -28
  199. package/dist/lib/serialization/serializers/comments/comment.d.ts +0 -12
  200. package/dist/lib/serialization/serializers/comments/comment.js +0 -33
  201. package/dist/lib/serialization/serializers/comments/index.d.ts +0 -2
  202. package/dist/lib/serialization/serializers/comments/index.js +0 -7
  203. package/dist/lib/serialization/serializers/decorator.d.ts +0 -12
  204. package/dist/lib/serialization/serializers/decorator.js +0 -31
  205. package/dist/lib/serialization/serializers/index.d.ts +0 -8
  206. package/dist/lib/serialization/serializers/index.js +0 -24
  207. package/dist/lib/serialization/serializers/models/decorator-wrapper.d.ts +0 -9
  208. package/dist/lib/serialization/serializers/models/decorator-wrapper.js +0 -13
  209. package/dist/lib/serialization/serializers/models/index.d.ts +0 -2
  210. package/dist/lib/serialization/serializers/models/index.js +0 -7
  211. package/dist/lib/serialization/serializers/models/source-reference-wrapper.d.ts +0 -9
  212. package/dist/lib/serialization/serializers/models/source-reference-wrapper.js +0 -13
  213. package/dist/lib/serialization/serializers/reflection-category.d.ts +0 -12
  214. package/dist/lib/serialization/serializers/reflection-category.js +0 -28
  215. package/dist/lib/serialization/serializers/reflection-group.d.ts +0 -12
  216. package/dist/lib/serialization/serializers/reflection-group.js +0 -32
  217. package/dist/lib/serialization/serializers/reflections/abstract.d.ts +0 -8
  218. package/dist/lib/serialization/serializers/reflections/abstract.js +0 -49
  219. package/dist/lib/serialization/serializers/reflections/container.d.ts +0 -12
  220. package/dist/lib/serialization/serializers/reflections/container.js +0 -27
  221. package/dist/lib/serialization/serializers/reflections/declaration.d.ts +0 -8
  222. package/dist/lib/serialization/serializers/reflections/declaration.js +0 -38
  223. package/dist/lib/serialization/serializers/reflections/index.d.ts +0 -7
  224. package/dist/lib/serialization/serializers/reflections/index.js +0 -23
  225. package/dist/lib/serialization/serializers/reflections/parameter.d.ts +0 -7
  226. package/dist/lib/serialization/serializers/reflections/parameter.js +0 -19
  227. package/dist/lib/serialization/serializers/reflections/reference.d.ts +0 -8
  228. package/dist/lib/serialization/serializers/reflections/reference.js +0 -20
  229. package/dist/lib/serialization/serializers/reflections/signature.d.ts +0 -7
  230. package/dist/lib/serialization/serializers/reflections/signature.js +0 -22
  231. package/dist/lib/serialization/serializers/reflections/type-parameter.d.ts +0 -7
  232. package/dist/lib/serialization/serializers/reflections/type-parameter.js +0 -19
  233. package/dist/lib/serialization/serializers/sources/index.d.ts +0 -1
  234. package/dist/lib/serialization/serializers/sources/index.js +0 -5
  235. package/dist/lib/serialization/serializers/sources/source-reference.d.ts +0 -9
  236. package/dist/lib/serialization/serializers/sources/source-reference.js +0 -23
  237. package/dist/lib/serialization/serializers/types/abstract.d.ts +0 -8
  238. package/dist/lib/serialization/serializers/types/abstract.js +0 -18
  239. package/dist/lib/serialization/serializers/types/array.d.ts +0 -12
  240. package/dist/lib/serialization/serializers/types/array.js +0 -22
  241. package/dist/lib/serialization/serializers/types/conditional.d.ts +0 -7
  242. package/dist/lib/serialization/serializers/types/conditional.js +0 -20
  243. package/dist/lib/serialization/serializers/types/index.d.ts +0 -20
  244. package/dist/lib/serialization/serializers/types/index.js +0 -36
  245. package/dist/lib/serialization/serializers/types/indexed-access.d.ts +0 -7
  246. package/dist/lib/serialization/serializers/types/indexed-access.js +0 -18
  247. package/dist/lib/serialization/serializers/types/inferred.d.ts +0 -7
  248. package/dist/lib/serialization/serializers/types/inferred.js +0 -20
  249. package/dist/lib/serialization/serializers/types/intersection.d.ts +0 -12
  250. package/dist/lib/serialization/serializers/types/intersection.js +0 -22
  251. package/dist/lib/serialization/serializers/types/intrinsic.d.ts +0 -12
  252. package/dist/lib/serialization/serializers/types/intrinsic.js +0 -22
  253. package/dist/lib/serialization/serializers/types/literal.d.ts +0 -7
  254. package/dist/lib/serialization/serializers/types/literal.js +0 -26
  255. package/dist/lib/serialization/serializers/types/mapped.d.ts +0 -7
  256. package/dist/lib/serialization/serializers/types/mapped.js +0 -22
  257. package/dist/lib/serialization/serializers/types/optional.d.ts +0 -12
  258. package/dist/lib/serialization/serializers/types/optional.js +0 -22
  259. package/dist/lib/serialization/serializers/types/predicate.d.ts +0 -7
  260. package/dist/lib/serialization/serializers/types/predicate.js +0 -21
  261. package/dist/lib/serialization/serializers/types/query.d.ts +0 -7
  262. package/dist/lib/serialization/serializers/types/query.js +0 -17
  263. package/dist/lib/serialization/serializers/types/reference.d.ts +0 -7
  264. package/dist/lib/serialization/serializers/types/reference.js +0 -27
  265. package/dist/lib/serialization/serializers/types/reflection.d.ts +0 -7
  266. package/dist/lib/serialization/serializers/types/reflection.js +0 -18
  267. package/dist/lib/serialization/serializers/types/rest.d.ts +0 -12
  268. package/dist/lib/serialization/serializers/types/rest.js +0 -22
  269. package/dist/lib/serialization/serializers/types/template-literal.d.ts +0 -7
  270. package/dist/lib/serialization/serializers/types/template-literal.js +0 -21
  271. package/dist/lib/serialization/serializers/types/tuple.d.ts +0 -11
  272. package/dist/lib/serialization/serializers/types/tuple.js +0 -32
  273. package/dist/lib/serialization/serializers/types/type-operator.d.ts +0 -7
  274. package/dist/lib/serialization/serializers/types/type-operator.js +0 -18
  275. package/dist/lib/serialization/serializers/types/union.d.ts +0 -12
  276. package/dist/lib/serialization/serializers/types/union.js +0 -22
  277. package/dist/lib/serialization/serializers/types/unknown.d.ts +0 -12
  278. package/dist/lib/serialization/serializers/types/unknown.js +0 -22
  279. package/static/icons.css +0 -1043
  280. package/static/icons.png +0 -0
  281. package/static/icons@2x.png +0 -0
package/README.md CHANGED
@@ -79,23 +79,17 @@ For a complete list of the command line arguments run `typedoc --help` or visit
79
79
  Specifies the location the documentation should be written to. Defaults to `./docs`
80
80
  - `--json <path/to/output.json>`<br>
81
81
  Specifies the location and file name a json file describing the project is
82
- written to. When specified no documentation will be generated.
82
+ written to. When specified no documentation will be generated unless `--out` is also
83
+ specified.
83
84
  - `--options`<br>
84
85
  Specify a json option file that should be loaded. If not specified TypeDoc
85
86
  will look for 'typedoc.json' in the current directory.
86
87
  - `--tsconfig <path/to/tsconfig.json>`<br>
87
88
  Specify a typescript config file that should be loaded. If not
88
89
  specified TypeDoc will look for 'tsconfig.json' in the current directory.
89
-
90
- #### Source file handling
91
-
92
90
  - `--exclude <pattern>`<br>
93
91
  Exclude files by the given pattern when a path is provided as source.
94
92
  Supports standard minimatch patterns.
95
- - `--excludeNotDocumented`<br>
96
- Only document items which have a doc comment. This option is useful, if you
97
- want to document only small part of your symbols and do not show the
98
- remaining ones in the documentation.
99
93
 
100
94
  #### Theming
101
95
 
@@ -109,8 +103,6 @@ For a complete list of the command line arguments run `typedoc --help` or visit
109
103
 
110
104
  #### Miscellaneous
111
105
 
112
- - `--listInvalidSymbolLinks`<br>
113
- Display the list of links that don't point to actual code symbols.
114
106
  - `--version`<br>
115
107
  Display the version number of TypeDoc.
116
108
  - `--help`<br>
@@ -123,9 +115,3 @@ You can find TypeDoc on GitHub; feel free to open an issue or create a pull requ
123
115
  https://github.com/TypeStrong/typedoc
124
116
 
125
117
  For more information, read the [contribution guide](https://github.com/TypeStrong/typedoc/blob/master/.github/CONTRIBUTING.md).
126
-
127
- ## License
128
-
129
- Copyright (c) 2015 [Sebastian Lenz](https://typedoc.org).<br>
130
- Copyright (c) 2016-2021 [TypeDoc Contributors](https://github.com/TypeStrong/typedoc/graphs/contributors).<br>
131
- Licensed under the Apache License 2.0.
package/dist/index.d.ts CHANGED
@@ -3,13 +3,13 @@ export { EventDispatcher, Event } from "./lib/utils/events";
3
3
  export { resetReflectionID } from "./lib/models/reflections/abstract";
4
4
  export { normalizePath } from "./lib/utils/fs";
5
5
  export * from "./lib/models";
6
- export { Converter, Context } from "./lib/converter";
6
+ export { Converter, Context, type CommentParserConfig } from "./lib/converter";
7
7
  export { Renderer, DefaultTheme, DefaultThemeRenderContext, UrlMapping, Theme, PageEvent, RendererEvent, MarkdownEvent, } from "./lib/output";
8
8
  export type { RenderTemplate, RendererHooks } from "./lib/output";
9
9
  export { ArgumentsReader, BindOption, JSX, LogLevel, Logger, Options, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, EntryPointStrategy, EventHooks, } from "./lib/utils";
10
- export type { OptionsReader, TypeDocOptions, TypeDocOptionMap, ValidationOptions, TypeDocOptionValues, KeyToDeclaration, DeclarationOption, DeclarationOptionBase, StringDeclarationOption, NumberDeclarationOption, BooleanDeclarationOption, ArrayDeclarationOption, MixedDeclarationOption, MapDeclarationOption, FlagsDeclarationOption, DeclarationOptionToOptionType, SortStrategy, ParameterTypeToOptionTypeMap, DocumentationEntryPoint, } from "./lib/utils";
10
+ export type { OptionsReader, TypeDocOptions, TypeDocOptionMap, ValidationOptions, TypeDocOptionValues, KeyToDeclaration, DeclarationOption, DeclarationOptionBase, StringDeclarationOption, NumberDeclarationOption, BooleanDeclarationOption, ArrayDeclarationOption, MixedDeclarationOption, MapDeclarationOption, FlagsDeclarationOption, DeclarationOptionToOptionType, SortStrategy, ParameterTypeToOptionTypeMap, DocumentationEntryPoint, ManuallyValidatedOption, } from "./lib/utils";
11
11
  export type { EventMap, EventCallback } from "./lib/utils/events";
12
- export { JSONOutput, Serializer, SerializerComponent, SerializeEvent, } from "./lib/serialization";
12
+ export { JSONOutput, Serializer, type SerializerComponent, SerializeEvent, } from "./lib/serialization";
13
13
  export type { SerializeEventData } from "./lib/serialization";
14
14
  import * as TypeScript from "typescript";
15
15
  export { TypeScript };
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.TypeScript = exports.SerializeEvent = exports.SerializerComponent = exports.Serializer = exports.JSONOutput = exports.EventHooks = exports.EntryPointStrategy = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.Options = exports.Logger = exports.LogLevel = exports.JSX = exports.BindOption = exports.ArgumentsReader = exports.MarkdownEvent = exports.RendererEvent = exports.PageEvent = exports.Theme = exports.UrlMapping = exports.DefaultThemeRenderContext = exports.DefaultTheme = exports.Renderer = exports.Context = exports.Converter = exports.normalizePath = exports.resetReflectionID = exports.Event = exports.EventDispatcher = exports.Application = void 0;
17
+ exports.TypeScript = exports.SerializeEvent = exports.Serializer = exports.JSONOutput = exports.EventHooks = exports.EntryPointStrategy = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.Options = exports.Logger = exports.LogLevel = exports.JSX = exports.BindOption = exports.ArgumentsReader = exports.MarkdownEvent = exports.RendererEvent = exports.PageEvent = exports.Theme = exports.UrlMapping = exports.DefaultThemeRenderContext = exports.DefaultTheme = exports.Renderer = exports.Context = exports.Converter = exports.normalizePath = exports.resetReflectionID = exports.Event = exports.EventDispatcher = exports.Application = void 0;
18
18
  var application_1 = require("./lib/application");
19
19
  Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return application_1.Application; } });
20
20
  var events_1 = require("./lib/utils/events");
@@ -53,7 +53,6 @@ Object.defineProperty(exports, "EventHooks", { enumerable: true, get: function (
53
53
  var serialization_1 = require("./lib/serialization");
54
54
  Object.defineProperty(exports, "JSONOutput", { enumerable: true, get: function () { return serialization_1.JSONOutput; } });
55
55
  Object.defineProperty(exports, "Serializer", { enumerable: true, get: function () { return serialization_1.Serializer; } });
56
- Object.defineProperty(exports, "SerializerComponent", { enumerable: true, get: function () { return serialization_1.SerializerComponent; } });
57
56
  Object.defineProperty(exports, "SerializeEvent", { enumerable: true, get: function () { return serialization_1.SerializeEvent; } });
58
57
  const TypeScript = require("typescript");
59
58
  exports.TypeScript = TypeScript;
@@ -17,12 +17,13 @@ const index_2 = require("./utils/index");
17
17
  const component_1 = require("./utils/component");
18
18
  const utils_1 = require("./utils");
19
19
  const array_1 = require("./utils/array");
20
- const exports_1 = require("./validation/exports");
21
20
  const assert_1 = require("assert");
22
21
  const entry_point_1 = require("./utils/entry-point");
23
22
  const paths_1 = require("./utils/paths");
24
23
  const general_1 = require("./utils/general");
24
+ const exports_1 = require("./validation/exports");
25
25
  const documentation_1 = require("./validation/documentation");
26
+ const links_1 = require("./validation/links");
26
27
  // eslint-disable-next-line @typescript-eslint/no-var-requires
27
28
  const packageInfo = require("../../package.json");
28
29
  const supportedVersionMajorMinor = packageInfo.peerDependencies.typescript
@@ -142,13 +143,12 @@ let Application = Application_1 = class Application extends component_1.Childabl
142
143
  }
143
144
  const programs = (0, array_1.unique)(entryPoints.map((e) => e.program));
144
145
  this.logger.verbose(`Converting with ${programs.length} programs ${entryPoints.length} entry points`);
145
- const errors = (0, array_1.flatMap)([...programs], ts.getPreEmitDiagnostics);
146
+ const errors = programs.flatMap((program) => ts.getPreEmitDiagnostics(program));
146
147
  if (errors.length) {
147
148
  this.logger.diagnostics(errors);
148
149
  return;
149
150
  }
150
- if (this.options.getValue("emit") === "both" ||
151
- this.options.getValue("emit") === true) {
151
+ if (this.options.getValue("emit") === "both") {
152
152
  for (const program of programs) {
153
153
  program.emit();
154
154
  }
@@ -160,11 +160,10 @@ let Application = Application_1 = class Application extends component_1.Childabl
160
160
  return project;
161
161
  }
162
162
  convertAndWatch(success) {
163
- var _a, _b, _c;
164
163
  this.options.freeze();
165
164
  if (!this.options.getValue("preserveWatchOutput") &&
166
165
  this.logger instanceof index_2.ConsoleLogger) {
167
- (_b = (_a = ts.sys).clearScreen) === null || _b === void 0 ? void 0 : _b.call(_a);
166
+ ts.sys.clearScreen?.();
168
167
  }
169
168
  this.logger.verbose(`Using TypeScript ${this.getTypeScriptVersion()} from ${this.getTypeScriptPath()}`);
170
169
  if (!supportedVersionMajorMinor.some((version) => version == ts.versionMajorMinor)) {
@@ -185,17 +184,17 @@ let Application = Application_1 = class Application extends component_1.Childabl
185
184
  this.logger.error("The packages option of entryPointStrategy is not supported in watch mode.");
186
185
  return;
187
186
  }
188
- const tsconfigFile = (_c = index_2.TSConfigReader.findConfigFile(this.options.getValue("tsconfig"))) !== null && _c !== void 0 ? _c : "tsconfig.json";
187
+ const tsconfigFile = index_2.TSConfigReader.findConfigFile(this.options.getValue("tsconfig")) ??
188
+ "tsconfig.json";
189
189
  // We don't want to do it the first time to preserve initial debug status messages. They'll be lost
190
190
  // after the user saves a file, but better than nothing...
191
191
  let firstStatusReport = true;
192
192
  const host = ts.createWatchCompilerHost(tsconfigFile, {}, ts.sys, ts.createEmitAndSemanticDiagnosticsBuilderProgram, (diagnostic) => this.logger.diagnostic(diagnostic), (status, newLine, _options, errorCount) => {
193
- var _a, _b;
194
193
  if (!firstStatusReport &&
195
194
  errorCount === void 0 &&
196
195
  !this.options.getValue("preserveWatchOutput") &&
197
196
  this.logger instanceof index_2.ConsoleLogger) {
198
- (_b = (_a = ts.sys).clearScreen) === null || _b === void 0 ? void 0 : _b.call(_a);
197
+ ts.sys.clearScreen?.();
199
198
  }
200
199
  firstStatusReport = false;
201
200
  this.logger.info(ts.flattenDiagnosticMessageText(status.messageText, newLine));
@@ -207,8 +206,7 @@ let Application = Application_1 = class Application extends component_1.Childabl
207
206
  return;
208
207
  }
209
208
  if (successFinished) {
210
- if (this.options.getValue("emit") === "both" ||
211
- this.options.getValue("emit") === true) {
209
+ if (this.options.getValue("emit") === "both") {
212
210
  currentProgram.emit();
213
211
  }
214
212
  this.logger.resetErrors();
@@ -240,21 +238,23 @@ let Application = Application_1 = class Application extends component_1.Childabl
240
238
  currentProgram = program.getProgram();
241
239
  runSuccess();
242
240
  }
243
- origAfterProgramCreate === null || origAfterProgramCreate === void 0 ? void 0 : origAfterProgramCreate(program);
241
+ origAfterProgramCreate?.(program);
244
242
  };
245
243
  ts.createWatchProgram(host);
246
244
  }
247
245
  validate(project) {
248
246
  const checks = this.options.getValue("validation");
247
+ const start = Date.now();
249
248
  if (checks.notExported) {
250
249
  (0, exports_1.validateExports)(project, this.logger, this.options.getValue("intentionallyNotExported"));
251
250
  }
252
251
  if (checks.notDocumented) {
253
252
  (0, documentation_1.validateDocumentation)(project, this.logger, this.options.getValue("requiredToBeDocumented"));
254
253
  }
255
- // checks.invalidLink is currently handled when rendering by the MarkedLinksPlugin.
256
- // It should really move here, but I'm putting that off until done refactoring the comment
257
- // parsing so that we don't have duplicate parse logic all over the place.
254
+ if (checks.invalidLink) {
255
+ (0, links_1.validateLinks)(project, this.logger);
256
+ }
257
+ this.logger.verbose(`Validation took ${Date.now() - start}ms`);
258
258
  }
259
259
  /**
260
260
  * Render HTML for the given project
@@ -0,0 +1,2 @@
1
+ import { Token } from "./lexer";
2
+ export declare function lexBlockComment(file: string, pos?: number, end?: number): Generator<Token, undefined, undefined>;
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lexBlockComment = void 0;
4
+ const lexer_1 = require("./lexer");
5
+ function* lexBlockComment(file, pos = 0, end = file.length) {
6
+ // Wrapper around our real lex function to collapse adjacent text tokens.
7
+ let textToken;
8
+ for (const token of lexBlockComment2(file, pos, end)) {
9
+ if (token.kind === lexer_1.TokenSyntaxKind.Text) {
10
+ if (textToken) {
11
+ textToken.text += token.text;
12
+ }
13
+ else {
14
+ textToken = token;
15
+ }
16
+ }
17
+ else {
18
+ if (textToken) {
19
+ yield textToken;
20
+ textToken = void 0;
21
+ }
22
+ yield token;
23
+ }
24
+ }
25
+ if (textToken) {
26
+ yield textToken;
27
+ }
28
+ return;
29
+ }
30
+ exports.lexBlockComment = lexBlockComment;
31
+ function* lexBlockComment2(file, pos, end) {
32
+ pos += 2; // Leading '/*'
33
+ end -= 2; // Trailing '*/'
34
+ if (pos < end && file[pos] === "*") {
35
+ // Might start with '/**'
36
+ pos++;
37
+ }
38
+ // Before skipping whitespace, figure out the comment indent size
39
+ const [commentHasStars, indent] = discoverIndent(file, pos, end);
40
+ // Skip leading whitespace
41
+ while (pos < end && /\s/.test(file[pos])) {
42
+ pos++;
43
+ }
44
+ // Trailing whitespace
45
+ while (pos < end && /\s/.test(file[end - 1])) {
46
+ end--;
47
+ }
48
+ let lineStart = true;
49
+ let braceStartsType = false;
50
+ for (;;) {
51
+ if (pos >= end) {
52
+ return;
53
+ }
54
+ if (lineStart) {
55
+ pos = skipIndent(pos);
56
+ if (commentHasStars && file[pos] === "*") {
57
+ pos++;
58
+ if (file[pos] === " ") {
59
+ pos++;
60
+ }
61
+ }
62
+ lineStart = false;
63
+ }
64
+ switch (file[pos]) {
65
+ case "\n":
66
+ yield makeToken(lexer_1.TokenSyntaxKind.NewLine, 1);
67
+ lineStart = true;
68
+ break;
69
+ case "{":
70
+ if (braceStartsType && nextNonWs(pos + 1) !== "@") {
71
+ yield makeToken(lexer_1.TokenSyntaxKind.TypeAnnotation, findEndOfType(pos) - pos);
72
+ braceStartsType = false;
73
+ }
74
+ else {
75
+ yield makeToken(lexer_1.TokenSyntaxKind.OpenBrace, 1);
76
+ }
77
+ break;
78
+ case "}":
79
+ yield makeToken(lexer_1.TokenSyntaxKind.CloseBrace, 1);
80
+ braceStartsType = false;
81
+ break;
82
+ case "`": {
83
+ // Markdown's code rules are a royal pain. This could be one of several things.
84
+ // 1. Inline code: <1-n ticks><text><same number of ticks>
85
+ // 2. Code block: <3 ticks><language, no ticks>\n<text>\n<3 ticks>\n
86
+ // 3. Unmatched tick(s), not code, but part of some text.
87
+ // We don't quite handle #2 correctly yet. PR welcome!
88
+ braceStartsType = false;
89
+ let tickCount = 1;
90
+ let lookahead = pos;
91
+ while (lookahead + 1 < end && file[lookahead + 1] === "`") {
92
+ tickCount++;
93
+ lookahead++;
94
+ }
95
+ let lookaheadStart = pos;
96
+ const codeText = [];
97
+ lookahead++;
98
+ while (lookahead < end) {
99
+ if (lookaheadExactlyNTicks(lookahead, tickCount)) {
100
+ lookahead += tickCount;
101
+ codeText.push(file.substring(lookaheadStart, lookahead));
102
+ yield {
103
+ kind: lexer_1.TokenSyntaxKind.Code,
104
+ text: codeText.join(""),
105
+ };
106
+ pos = lookahead;
107
+ break;
108
+ }
109
+ else if (file[lookahead] === "`") {
110
+ while (lookahead < end && file[lookahead] === "`") {
111
+ lookahead++;
112
+ }
113
+ }
114
+ else if (file[lookahead] === "\\" &&
115
+ lookahead + 1 < end &&
116
+ file[lookahead + 1] === "/") {
117
+ codeText.push(file.substring(lookaheadStart, lookahead));
118
+ lookaheadStart = lookahead + 1;
119
+ lookahead += 2;
120
+ }
121
+ else if (file[lookahead] === "\\" &&
122
+ lookahead + 1 < end &&
123
+ file[lookahead + 1] !== "\n") {
124
+ lookahead += 2;
125
+ }
126
+ else if (file[lookahead] === "\n") {
127
+ lookahead++;
128
+ codeText.push(file.substring(lookaheadStart, lookahead));
129
+ lookahead = skipIndent(lookahead);
130
+ if (commentHasStars && file[lookahead] === "*") {
131
+ lookahead++;
132
+ if (file[lookahead] === " ") {
133
+ lookahead++;
134
+ }
135
+ }
136
+ lookaheadStart = lookahead;
137
+ }
138
+ else {
139
+ lookahead++;
140
+ }
141
+ }
142
+ if (lookahead >= end && pos !== lookahead) {
143
+ if (tickCount === 3 &&
144
+ file.substring(pos, end).includes("\n")) {
145
+ codeText.push(file.substring(lookaheadStart, end));
146
+ yield {
147
+ kind: lexer_1.TokenSyntaxKind.Code,
148
+ text: codeText.join(""),
149
+ };
150
+ pos = lookahead;
151
+ }
152
+ else {
153
+ yield makeToken(lexer_1.TokenSyntaxKind.Text, tickCount);
154
+ }
155
+ }
156
+ break;
157
+ }
158
+ case "@": {
159
+ let lookahead = pos + 1;
160
+ while (lookahead < end && /[a-z]/i.test(file[lookahead])) {
161
+ lookahead++;
162
+ }
163
+ if (lookahead !== pos + 1) {
164
+ while (lookahead < end &&
165
+ /[a-z0-9]/i.test(file[lookahead])) {
166
+ lookahead++;
167
+ }
168
+ }
169
+ if (lookahead !== pos + 1) {
170
+ braceStartsType = true;
171
+ yield makeToken(lexer_1.TokenSyntaxKind.Tag, lookahead - pos);
172
+ break;
173
+ }
174
+ }
175
+ // fall through if we didn't find something that looks like a tag
176
+ default: {
177
+ const textParts = [];
178
+ let lookaheadStart = pos;
179
+ let lookahead = pos;
180
+ while (lookahead < end) {
181
+ if ("{}\n`".includes(file[lookahead]))
182
+ break;
183
+ if (lookahead !== pos &&
184
+ file[lookahead] === "@" &&
185
+ /\s/.test(file[lookahead - 1])) {
186
+ // Probably the start of a modifier tag
187
+ break;
188
+ }
189
+ if (file[lookahead] === "\\" &&
190
+ lookahead + 1 < end &&
191
+ "{}@/`".includes(file[lookahead + 1])) {
192
+ textParts.push(file.substring(lookaheadStart, lookahead), file[lookahead + 1]);
193
+ lookahead++;
194
+ lookaheadStart = lookahead + 1;
195
+ }
196
+ lookahead++;
197
+ }
198
+ textParts.push(file.substring(lookaheadStart, lookahead));
199
+ if (textParts.some((part) => /\S/.test(part))) {
200
+ braceStartsType = false;
201
+ }
202
+ pos = lookahead;
203
+ // This piece of text had line continuations or escaped text
204
+ yield {
205
+ kind: lexer_1.TokenSyntaxKind.Text,
206
+ text: textParts.join(""),
207
+ };
208
+ break;
209
+ }
210
+ }
211
+ }
212
+ function makeToken(kind, size) {
213
+ const start = pos;
214
+ pos += size;
215
+ return {
216
+ kind,
217
+ text: file.substring(start, pos),
218
+ };
219
+ }
220
+ function skipIndent(pos) {
221
+ let taken = indent;
222
+ let lookahead = pos;
223
+ while (taken > 0 &&
224
+ lookahead < end &&
225
+ file[lookahead] !== "\n" &&
226
+ /\s/.test(file[lookahead])) {
227
+ taken--;
228
+ lookahead++;
229
+ }
230
+ return lookahead;
231
+ }
232
+ function lookaheadExactlyNTicks(pos, n) {
233
+ if (pos + n >= end) {
234
+ return false;
235
+ }
236
+ return file.startsWith("`".repeat(n), pos) && file[pos + n] !== "`";
237
+ }
238
+ function findEndOfType(pos) {
239
+ let openBraces = 0;
240
+ while (pos < end) {
241
+ if (file[pos] === "{") {
242
+ openBraces++;
243
+ }
244
+ else if (file[pos] === "}") {
245
+ if (--openBraces === 0) {
246
+ break;
247
+ }
248
+ }
249
+ else if ("`'\"".includes(file[pos])) {
250
+ pos = findEndOfString(pos);
251
+ }
252
+ pos++;
253
+ }
254
+ if (pos < end && file[pos] === "}") {
255
+ pos++;
256
+ }
257
+ return pos;
258
+ }
259
+ function findEndOfString(pos) {
260
+ const endOfString = file[pos];
261
+ pos++;
262
+ while (pos < end) {
263
+ if (file[pos] === endOfString) {
264
+ break;
265
+ }
266
+ else if (file[pos] === "\\") {
267
+ pos++; // Skip escaped character
268
+ }
269
+ else if (endOfString === "`" &&
270
+ file[pos] === "$" &&
271
+ file[pos + 1] === "{") {
272
+ // Template literal with data inside a ${}
273
+ while (pos < end && file[pos] !== "}") {
274
+ if ("`'\"".includes(file[pos])) {
275
+ pos = findEndOfString(pos) + 1;
276
+ }
277
+ else {
278
+ pos++;
279
+ }
280
+ }
281
+ }
282
+ pos++;
283
+ }
284
+ return pos;
285
+ }
286
+ function nextNonWs(pos) {
287
+ while (pos < end && /\s/.test(file[pos])) {
288
+ pos++;
289
+ }
290
+ return file[pos];
291
+ }
292
+ }
293
+ function discoverIndent(file, pos, end) {
294
+ let indent = 0;
295
+ while (pos < end && file[pos] !== "\n") {
296
+ pos++;
297
+ }
298
+ outer: while (pos < end) {
299
+ pos++;
300
+ const lineStart = pos;
301
+ while (pos < end && file[pos] !== "\n") {
302
+ if (/\S/.test(file[pos])) {
303
+ indent = pos - lineStart;
304
+ break outer;
305
+ }
306
+ pos++;
307
+ }
308
+ }
309
+ const commentHasStars = pos < end && file[pos] === "*";
310
+ return [commentHasStars, indent];
311
+ }
@@ -0,0 +1,5 @@
1
+ import * as ts from "typescript";
2
+ import { ReflectionKind } from "../../models";
3
+ import type { Logger } from "../../utils";
4
+ export declare function discoverComment(symbol: ts.Symbol, kind: ReflectionKind, logger: Logger): [ts.SourceFile, ts.CommentRange] | undefined;
5
+ export declare function discoverSignatureComment(declaration: ts.SignatureDeclaration | ts.JSDocSignature): [ts.SourceFile, ts.CommentRange] | undefined;