typedoc 0.24.8 → 0.25.1

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 (138) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +6 -2
  3. package/dist/index.js +6 -1
  4. package/dist/lib/application.d.ts +13 -11
  5. package/dist/lib/application.js +455 -347
  6. package/dist/lib/cli.js +29 -22
  7. package/dist/lib/converter/comments/blockLexer.js +10 -1
  8. package/dist/lib/converter/comments/declarationReference.js +2 -0
  9. package/dist/lib/converter/comments/declarationReferenceResolver.js +2 -1
  10. package/dist/lib/converter/comments/discovery.js +0 -1
  11. package/dist/lib/converter/comments/linkResolver.d.ts +5 -2
  12. package/dist/lib/converter/comments/linkResolver.js +21 -13
  13. package/dist/lib/converter/comments/parser.js +7 -12
  14. package/dist/lib/converter/comments/tagName.d.ts +8 -0
  15. package/dist/lib/converter/comments/tagName.js +62 -0
  16. package/dist/lib/converter/context.js +1 -2
  17. package/dist/lib/converter/converter.d.ts +12 -10
  18. package/dist/lib/converter/converter.js +440 -309
  19. package/dist/lib/converter/factories/index-signature.js +2 -1
  20. package/dist/lib/converter/factories/signature.js +3 -4
  21. package/dist/lib/converter/plugins/CategoryPlugin.d.ts +8 -8
  22. package/dist/lib/converter/plugins/CategoryPlugin.js +294 -200
  23. package/dist/lib/converter/plugins/CommentPlugin.d.ts +8 -5
  24. package/dist/lib/converter/plugins/CommentPlugin.js +434 -305
  25. package/dist/lib/converter/plugins/GroupPlugin.d.ts +3 -3
  26. package/dist/lib/converter/plugins/GroupPlugin.js +216 -145
  27. package/dist/lib/converter/plugins/ImplementsPlugin.js +240 -192
  28. package/dist/lib/converter/plugins/InheritDocPlugin.d.ts +2 -0
  29. package/dist/lib/converter/plugins/InheritDocPlugin.js +202 -132
  30. package/dist/lib/converter/plugins/LinkResolverPlugin.d.ts +1 -1
  31. package/dist/lib/converter/plugins/LinkResolverPlugin.js +111 -43
  32. package/dist/lib/converter/plugins/PackagePlugin.d.ts +6 -4
  33. package/dist/lib/converter/plugins/PackagePlugin.js +192 -96
  34. package/dist/lib/converter/plugins/SourcePlugin.d.ts +6 -5
  35. package/dist/lib/converter/plugins/SourcePlugin.js +239 -132
  36. package/dist/lib/converter/plugins/TypePlugin.js +148 -101
  37. package/dist/lib/converter/symbols.js +16 -4
  38. package/dist/lib/converter/types.js +16 -1
  39. package/dist/lib/converter/utils/nodes.d.ts +2 -2
  40. package/dist/lib/converter/utils/repository.d.ts +15 -5
  41. package/dist/lib/converter/utils/repository.js +29 -12
  42. package/dist/lib/models/ReflectionGroup.d.ts +4 -2
  43. package/dist/lib/models/ReflectionGroup.js +3 -1
  44. package/dist/lib/models/comments/comment.d.ts +9 -2
  45. package/dist/lib/models/comments/comment.js +2 -0
  46. package/dist/lib/models/reflections/ReflectionSymbolId.js +1 -1
  47. package/dist/lib/models/reflections/abstract.d.ts +6 -1
  48. package/dist/lib/models/reflections/abstract.js +15 -2
  49. package/dist/lib/models/reflections/container.d.ts +3 -0
  50. package/dist/lib/models/reflections/container.js +4 -1
  51. package/dist/lib/models/reflections/declaration.d.ts +1 -0
  52. package/dist/lib/models/reflections/declaration.js +1 -0
  53. package/dist/lib/models/reflections/index.d.ts +1 -1
  54. package/dist/lib/models/reflections/kind.d.ts +4 -4
  55. package/dist/lib/models/reflections/kind.js +5 -7
  56. package/dist/lib/models/reflections/parameter.d.ts +3 -0
  57. package/dist/lib/models/reflections/parameter.js +3 -0
  58. package/dist/lib/models/reflections/project.d.ts +1 -0
  59. package/dist/lib/models/reflections/project.js +3 -1
  60. package/dist/lib/models/reflections/reference.d.ts +1 -0
  61. package/dist/lib/models/reflections/reference.js +1 -0
  62. package/dist/lib/models/reflections/signature.d.ts +3 -0
  63. package/dist/lib/models/reflections/signature.js +3 -0
  64. package/dist/lib/models/reflections/type-parameter.d.ts +3 -0
  65. package/dist/lib/models/reflections/type-parameter.js +3 -0
  66. package/dist/lib/models/sources/file.d.ts +2 -0
  67. package/dist/lib/models/sources/file.js +5 -0
  68. package/dist/lib/models/types.d.ts +24 -0
  69. package/dist/lib/models/types.js +21 -0
  70. package/dist/lib/output/components.d.ts +1 -0
  71. package/dist/lib/output/components.js +10 -3
  72. package/dist/lib/output/events.d.ts +2 -2
  73. package/dist/lib/output/index.d.ts +1 -1
  74. package/dist/lib/output/plugins/AssetsPlugin.d.ts +1 -1
  75. package/dist/lib/output/plugins/AssetsPlugin.js +112 -44
  76. package/dist/lib/output/plugins/JavascriptIndexPlugin.d.ts +2 -1
  77. package/dist/lib/output/plugins/JavascriptIndexPlugin.js +174 -99
  78. package/dist/lib/output/plugins/NavigationPlugin.d.ts +6 -0
  79. package/dist/lib/output/plugins/NavigationPlugin.js +109 -0
  80. package/dist/lib/output/plugins/index.d.ts +2 -1
  81. package/dist/lib/output/plugins/index.js +5 -3
  82. package/dist/lib/output/renderer.d.ts +10 -8
  83. package/dist/lib/output/renderer.js +317 -203
  84. package/dist/lib/output/theme.d.ts +1 -1
  85. package/dist/lib/output/theme.js +64 -18
  86. package/dist/lib/output/themes/MarkedPlugin.d.ts +4 -4
  87. package/dist/lib/output/themes/MarkedPlugin.js +224 -145
  88. package/dist/lib/output/themes/default/DefaultTheme.d.ts +14 -1
  89. package/dist/lib/output/themes/default/DefaultTheme.js +68 -0
  90. package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts +43 -44
  91. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +16 -11
  92. package/dist/lib/output/themes/default/layouts/default.js +2 -0
  93. package/dist/lib/output/themes/default/partials/comment.d.ts +1 -1
  94. package/dist/lib/output/themes/default/partials/comment.js +16 -14
  95. package/dist/lib/output/themes/default/partials/footer.js +1 -1
  96. package/dist/lib/output/themes/default/partials/header.js +2 -2
  97. package/dist/lib/output/themes/default/partials/icon.d.ts +4 -1
  98. package/dist/lib/output/themes/default/partials/icon.js +40 -38
  99. package/dist/lib/output/themes/default/partials/member.js +1 -1
  100. package/dist/lib/output/themes/default/partials/member.signature.body.js +2 -2
  101. package/dist/lib/output/themes/default/partials/navigation.d.ts +1 -1
  102. package/dist/lib/output/themes/default/partials/navigation.js +36 -56
  103. package/dist/lib/output/themes/default/partials/parameter.js +3 -3
  104. package/dist/lib/output/themes/lib.d.ts +1 -2
  105. package/dist/lib/output/themes/lib.js +1 -11
  106. package/dist/lib/serialization/schema.d.ts +37 -1
  107. package/dist/lib/utils/component.d.ts +1 -1
  108. package/dist/lib/utils/component.js +3 -1
  109. package/dist/lib/utils/entry-point.d.ts +0 -6
  110. package/dist/lib/utils/entry-point.js +27 -113
  111. package/dist/lib/utils/events.js +1 -1
  112. package/dist/lib/utils/general.js +1 -1
  113. package/dist/lib/utils/index.d.ts +1 -1
  114. package/dist/lib/utils/index.js +2 -1
  115. package/dist/lib/utils/jsx.d.ts +1 -1
  116. package/dist/lib/utils/jsx.js +24 -15
  117. package/dist/lib/utils/options/declaration.d.ts +5 -1
  118. package/dist/lib/utils/options/declaration.js +1 -1
  119. package/dist/lib/utils/options/index.d.ts +1 -1
  120. package/dist/lib/utils/options/index.js +2 -1
  121. package/dist/lib/utils/options/options.d.ts +22 -9
  122. package/dist/lib/utils/options/options.js +27 -15
  123. package/dist/lib/utils/options/readers/tsconfig.js +2 -7
  124. package/dist/lib/utils/options/readers/typedoc.d.ts +4 -2
  125. package/dist/lib/utils/options/readers/typedoc.js +33 -7
  126. package/dist/lib/utils/options/sources/typedoc.js +25 -4
  127. package/dist/lib/utils/options/tsdoc-defaults.d.ts +1 -1
  128. package/dist/lib/utils/options/tsdoc-defaults.js +4 -0
  129. package/dist/lib/utils/package-manifest.d.ts +0 -25
  130. package/dist/lib/utils/package-manifest.js +7 -148
  131. package/dist/lib/utils/perf.d.ts +1 -1
  132. package/dist/lib/utils/perf.js +36 -31
  133. package/dist/lib/utils/sort.js +0 -1
  134. package/dist/lib/validation/links.js +10 -2
  135. package/package.json +12 -12
  136. package/static/main.js +4 -3
  137. package/static/style.css +26 -10
  138. package/tsdoc.json +16 -0
@@ -40,7 +40,7 @@ const parameter = (context, props) => (utils_1.JSX.createElement(utils_1.JSX.Fra
40
40
  context.memberSignatures(item))) : item.type ? (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
41
41
  utils_1.JSX.createElement("li", { class: "tsd-parameter" },
42
42
  utils_1.JSX.createElement("h5", null,
43
- (0, lib_1.renderFlags)(item.flags, item.comment),
43
+ context.reflectionFlags(item),
44
44
  !!item.flags.isRest && utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "..."),
45
45
  utils_1.JSX.createElement("span", { class: (0, lib_1.getKindClass)(item) }, (0, lib_1.wbr)(item.name)),
46
46
  utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" },
@@ -54,7 +54,7 @@ const parameter = (context, props) => (utils_1.JSX.createElement(utils_1.JSX.Fra
54
54
  item.getSignature && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
55
55
  utils_1.JSX.createElement("li", { class: "tsd-parameter" },
56
56
  utils_1.JSX.createElement("h5", null,
57
- (0, lib_1.renderFlags)(item.getSignature.flags, item.getSignature.comment),
57
+ context.reflectionFlags(item.getSignature),
58
58
  utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "get "),
59
59
  utils_1.JSX.createElement("span", { class: (0, lib_1.getKindClass)(item) }, (0, lib_1.wbr)(item.name)),
60
60
  utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "(): "),
@@ -64,7 +64,7 @@ const parameter = (context, props) => (utils_1.JSX.createElement(utils_1.JSX.Fra
64
64
  item.setSignature && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
65
65
  utils_1.JSX.createElement("li", { class: "tsd-parameter" },
66
66
  utils_1.JSX.createElement("h5", null,
67
- (0, lib_1.renderFlags)(item.setSignature.flags, item.setSignature.comment),
67
+ context.reflectionFlags(item.setSignature),
68
68
  utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "set "),
69
69
  utils_1.JSX.createElement("span", { class: (0, lib_1.getKindClass)(item) }, (0, lib_1.wbr)(item.name)),
70
70
  utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "("),
@@ -1,5 +1,5 @@
1
1
  import type { DefaultThemeRenderContext } from "..";
2
- import { Comment, Reflection, ReflectionFlags, TypeParameterReflection } from "../../models";
2
+ import { Reflection, TypeParameterReflection } from "../../models";
3
3
  import { JSX } from "../../utils";
4
4
  export declare function stringify(data: unknown): string;
5
5
  export declare function getDisplayName(refl: Reflection): string;
@@ -15,7 +15,6 @@ export declare function getKindClass(refl: Reflection): string;
15
15
  */
16
16
  export declare function wbr(str: string): (string | JSX.Element)[];
17
17
  export declare function join<T>(joiner: JSX.Children, list: readonly T[], cb: (x: T) => JSX.Children): JSX.Element;
18
- export declare function renderFlags(flags: ReflectionFlags, comment: Comment | undefined): JSX.Element;
19
18
  export declare function classNames(names: Record<string, boolean | null | undefined>, extraCss?: string): string | undefined;
20
19
  export declare function hasTypeParameters(reflection: Reflection): reflection is Reflection & {
21
20
  typeParameters: TypeParameterReflection[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.renderName = exports.camelToTitleCase = exports.renderTypeParametersSignature = exports.hasTypeParameters = exports.classNames = exports.renderFlags = exports.join = exports.wbr = exports.getKindClass = exports.toStyleClass = exports.getDisplayName = exports.stringify = void 0;
3
+ exports.renderName = exports.camelToTitleCase = exports.renderTypeParametersSignature = exports.hasTypeParameters = exports.classNames = exports.join = exports.wbr = exports.getKindClass = exports.toStyleClass = exports.getDisplayName = exports.stringify = void 0;
4
4
  const models_1 = require("../../models");
5
5
  const utils_1 = require("../../utils");
6
6
  function stringify(data) {
@@ -62,16 +62,6 @@ function join(joiner, list, cb) {
62
62
  return utils_1.JSX.createElement(utils_1.JSX.Fragment, null, result);
63
63
  }
64
64
  exports.join = join;
65
- function renderFlags(flags, comment) {
66
- const allFlags = [...flags];
67
- if (comment) {
68
- allFlags.push(...Array.from(comment.modifierTags, (tag) => tag.replace(/@([a-z])/, (x) => x[1].toUpperCase())));
69
- }
70
- return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null, allFlags.map((item) => (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
71
- utils_1.JSX.createElement("code", { class: "tsd-tag ts-flag" + item }, item),
72
- " ")))));
73
- }
74
- exports.renderFlags = renderFlags;
75
65
  function classNames(names, extraCss) {
76
66
  const css = Object.keys(names)
77
67
  .filter((key) => names[key])
@@ -57,9 +57,11 @@ export interface ReflectionGroup extends S<M.ReflectionGroup, "title" | "categor
57
57
  export interface ReflectionCategory extends S<M.ReflectionCategory, "title"> {
58
58
  children?: M.ReflectionCategory["children"][number]["id"][];
59
59
  }
60
+ /** @category Reflections */
60
61
  export type SomeReflection = {
61
62
  [K in keyof M.ReflectionVariant]: ModelToObject<M.ReflectionVariant[K]>;
62
63
  }[keyof M.ReflectionVariant];
64
+ /** @category Reflections */
63
65
  export interface ReferenceReflection extends Omit<DeclarationReflection, "variant">, S<M.ReferenceReflection, "variant"> {
64
66
  /**
65
67
  * -1 if the reference refers to a symbol that does not exist in the documentation.
@@ -67,25 +69,34 @@ export interface ReferenceReflection extends Omit<DeclarationReflection, "varian
67
69
  */
68
70
  target: number;
69
71
  }
72
+ /** @category Reflections */
70
73
  export interface SignatureReflection extends Omit<Reflection, "variant">, S<M.SignatureReflection, "variant" | "sources" | "parameters" | "type" | "overwrites" | "inheritedFrom" | "implementationOf"> {
71
74
  typeParameter?: ModelToObject<M.SignatureReflection["typeParameters"]>;
72
75
  }
76
+ /** @category Reflections */
73
77
  export interface ParameterReflection extends Omit<Reflection, "variant">, S<M.ParameterReflection, "variant" | "type" | "defaultValue"> {
74
78
  variant: "param";
75
79
  }
80
+ /** @category Reflections */
76
81
  export interface DeclarationReflection extends Omit<ContainerReflection, "variant">, S<M.DeclarationReflection, "variant" | "packageVersion" | "sources" | "relevanceBoost" | "type" | "signatures" | "indexSignature" | "defaultValue" | "overwrites" | "inheritedFrom" | "implementationOf" | "extendedTypes" | "extendedBy" | "implementedTypes" | "implementedBy" | "getSignature" | "setSignature" | "typeParameters"> {
77
82
  }
83
+ /** @category Reflections */
78
84
  export interface TypeParameterReflection extends Omit<Reflection, "variant">, S<M.TypeParameterReflection, "variant" | "type" | "default" | "varianceModifier"> {
79
85
  }
86
+ /** @category Reflections */
80
87
  export interface ProjectReflection extends Omit<ContainerReflection, "variant">, S<M.ProjectReflection, "variant" | "packageName" | "packageVersion" | "readme"> {
81
88
  symbolIdMap: Record<number, ReflectionSymbolId>;
82
89
  }
90
+ /** @category Reflections */
83
91
  export interface ContainerReflection extends Reflection, S<M.ContainerReflection, "children" | "groups" | "categories"> {
84
92
  }
93
+ /** @category Reflections */
85
94
  export interface Reflection extends S<M.Reflection, "id" | "variant" | "name" | "kind" | "comment"> {
86
95
  flags: ReflectionFlags;
87
96
  }
97
+ /** @category Types */
88
98
  export type SomeType = ModelToObject<M.SomeType>;
99
+ /** @category Types */
89
100
  export type TypeKindMap = {
90
101
  array: ArrayType;
91
102
  conditional: ConditionalType;
@@ -108,51 +119,72 @@ export type TypeKindMap = {
108
119
  union: UnionType;
109
120
  unknown: UnknownType;
110
121
  };
122
+ /** @category Types */
111
123
  export interface ArrayType extends Type, S<M.ArrayType, "type" | "elementType"> {
112
124
  }
125
+ /** @category Types */
113
126
  export interface ConditionalType extends Type, S<M.ConditionalType, "type" | "checkType" | "extendsType" | "trueType" | "falseType"> {
114
127
  }
128
+ /** @category Types */
115
129
  export interface IndexedAccessType extends Type, S<M.IndexedAccessType, "type" | "indexType" | "objectType"> {
116
130
  }
131
+ /** @category Types */
117
132
  export interface InferredType extends Type, S<M.InferredType, "type" | "name" | "constraint"> {
118
133
  }
134
+ /** @category Types */
119
135
  export interface IntersectionType extends Type, S<M.IntersectionType, "type" | "types"> {
120
136
  }
137
+ /** @category Types */
121
138
  export interface IntrinsicType extends Type, S<M.IntrinsicType, "type" | "name"> {
122
139
  }
140
+ /** @category Types */
123
141
  export interface OptionalType extends Type, S<M.OptionalType, "type" | "elementType"> {
124
142
  }
143
+ /** @category Types */
125
144
  export interface PredicateType extends Type, S<M.PredicateType, "type" | "name" | "asserts" | "targetType"> {
126
145
  }
146
+ /** @category Types */
127
147
  export interface QueryType extends Type, S<M.QueryType, "type" | "queryType"> {
128
148
  }
149
+ /** @category Types */
129
150
  export interface ReferenceType extends Type, S<M.ReferenceType, "type" | "name" | "typeArguments" | "package" | "externalUrl"> {
130
151
  target: number | ReflectionSymbolId;
131
152
  qualifiedName?: string;
132
153
  refersToTypeParameter?: boolean;
133
154
  }
155
+ /** @category Types */
134
156
  export interface ReflectionType extends Type, S<M.ReflectionType, "type" | "declaration"> {
135
157
  }
158
+ /** @category Types */
136
159
  export interface RestType extends Type, S<M.RestType, "type" | "elementType"> {
137
160
  }
161
+ /** @category Types */
138
162
  export interface LiteralType extends Type, S<M.LiteralType, "type" | "value"> {
139
163
  }
164
+ /** @category Types */
140
165
  export interface TupleType extends Type, S<M.TupleType, "type"> {
141
166
  elements?: ModelToObject<M.TupleType["elements"]>;
142
167
  }
168
+ /** @category Types */
143
169
  export interface NamedTupleMemberType extends Type, S<M.NamedTupleMember, "type" | "name" | "isOptional" | "element"> {
144
170
  }
171
+ /** @category Types */
145
172
  export interface TemplateLiteralType extends Type, S<M.TemplateLiteralType, "type" | "head"> {
146
173
  tail: [SomeType, string][];
147
174
  }
175
+ /** @category Types */
148
176
  export interface MappedType extends Type, S<M.MappedType, "type" | "parameter" | "parameterType" | "templateType" | "readonlyModifier" | "optionalModifier" | "nameType"> {
149
177
  }
178
+ /** @category Types */
150
179
  export interface TypeOperatorType extends Type, S<M.TypeOperatorType, "type" | "operator" | "target"> {
151
180
  }
181
+ /** @category Types */
152
182
  export interface UnionType extends Type, S<M.UnionType, "type" | "types"> {
153
183
  }
184
+ /** @category Types */
154
185
  export interface UnknownType extends Type, S<M.UnknownType, "type" | "name"> {
155
186
  }
187
+ /** @category Types */
156
188
  export interface Type {
157
189
  }
158
190
  type BoolKeys<T> = {
@@ -160,13 +192,16 @@ type BoolKeys<T> = {
160
192
  }[keyof T];
161
193
  export interface ReflectionFlags extends Partial<S<M.ReflectionFlags, BoolKeys<M.ReflectionFlags>>> {
162
194
  }
195
+ /** @category Comments */
163
196
  export interface Comment extends Partial<S<M.Comment, "blockTags" | "label">> {
164
197
  summary: CommentDisplayPart[];
165
- modifierTags?: string[];
198
+ modifierTags?: `@${string}`[];
166
199
  }
200
+ /** @category Comments */
167
201
  export interface CommentTag extends S<M.CommentTag, "tag" | "name"> {
168
202
  content: CommentDisplayPart[];
169
203
  }
204
+ /** @category Comments */
170
205
  export type CommentDisplayPart = {
171
206
  kind: "text";
172
207
  text: string;
@@ -177,6 +212,7 @@ export type CommentDisplayPart = {
177
212
  /**
178
213
  * If `target` is a number, it is a reflection ID. If a string, it is a URL.
179
214
  * `target` will only be set for `@link`, `@linkcode`, and `@linkplain` tags.
215
+ * @category Comments
180
216
  */
181
217
  export interface InlineTagDisplayPart {
182
218
  kind: "inline-tag";
@@ -23,7 +23,7 @@ export interface ComponentOptions {
23
23
  /**
24
24
  * Class decorator applied to Components
25
25
  */
26
- export declare function Component(options: ComponentOptions): ClassDecorator;
26
+ export declare function Component(options: ComponentOptions): (target: Function, _context: unknown) => void;
27
27
  export declare class ComponentEvent extends Event {
28
28
  owner: ComponentHost;
29
29
  component: AbstractComponent<ComponentHost>;
@@ -7,7 +7,9 @@ const childMappings = [];
7
7
  * Class decorator applied to Components
8
8
  */
9
9
  function Component(options) {
10
- return (target) => {
10
+ // _context is ClassDecoratorContext, but that then requires a public constructor
11
+ // which Application does not have.
12
+ return (target, _context) => {
11
13
  const proto = target.prototype;
12
14
  if (!(proto instanceof AbstractComponent)) {
13
15
  throw new Error("The `Component` decorator can only be used with a subclass of `AbstractComponent`.");
@@ -21,12 +21,6 @@ export declare const EntryPointStrategy: {
21
21
  * use the merge option to produce final output.
22
22
  */
23
23
  readonly Packages: "packages";
24
- /**
25
- * Will be removed in 0.25, this was called packages mode in 0.24.
26
- * Alternative resolution mode useful for monorepos. With this mode, TypeDoc will look for a package.json
27
- * and tsconfig.json under each provided entry point. The `main` field of each package will be documented.
28
- */
29
- readonly LegacyPackages: "legacy-packages";
30
24
  /**
31
25
  * Merges multiple previously generated output from TypeDoc's --json output together into a single project.
32
26
  */
@@ -30,7 +30,6 @@ exports.getExpandedEntryPointsForPaths = exports.getPackageDirectories = exports
30
30
  const path_1 = require("path");
31
31
  const typescript_1 = __importDefault(require("typescript"));
32
32
  const FS = __importStar(require("fs"));
33
- const Path = __importStar(require("path"));
34
33
  const package_manifest_1 = require("./package-manifest");
35
34
  const paths_1 = require("./paths");
36
35
  const fs_1 = require("./fs");
@@ -55,12 +54,6 @@ exports.EntryPointStrategy = {
55
54
  * use the merge option to produce final output.
56
55
  */
57
56
  Packages: "packages",
58
- /**
59
- * Will be removed in 0.25, this was called packages mode in 0.24.
60
- * Alternative resolution mode useful for monorepos. With this mode, TypeDoc will look for a package.json
61
- * and tsconfig.json under each provided entry point. The `main` field of each package will be documented.
62
- */
63
- LegacyPackages: "legacy-packages",
64
57
  /**
65
58
  * Merges multiple previously generated output from TypeDoc's --json output together into a single project.
66
59
  */
@@ -72,6 +65,7 @@ function getEntryPoints(logger, options) {
72
65
  return [];
73
66
  }
74
67
  const entryPoints = options.getValue("entryPoints");
68
+ const exclude = options.getValue("exclude");
75
69
  // May be set explicitly to be an empty array to only include a readme for a package
76
70
  // See #2264
77
71
  if (entryPoints.length === 0) {
@@ -81,13 +75,10 @@ function getEntryPoints(logger, options) {
81
75
  const strategy = options.getValue("entryPointStrategy");
82
76
  switch (strategy) {
83
77
  case exports.EntryPointStrategy.Resolve:
84
- result = getEntryPointsForPaths(logger, expandGlobs(entryPoints, logger), options);
78
+ result = getEntryPointsForPaths(logger, expandGlobs(entryPoints, exclude, logger), options);
85
79
  break;
86
80
  case exports.EntryPointStrategy.Expand:
87
- result = getExpandedEntryPointsForPaths(logger, expandGlobs(entryPoints, logger), options);
88
- break;
89
- case exports.EntryPointStrategy.LegacyPackages:
90
- result = getEntryPointsForLegacyPackages(logger, entryPoints, options);
81
+ result = getExpandedEntryPointsForPaths(logger, expandGlobs(entryPoints, exclude, logger), options);
91
82
  break;
92
83
  case exports.EntryPointStrategy.Merge:
93
84
  case exports.EntryPointStrategy.Packages:
@@ -106,18 +97,23 @@ exports.getEntryPoints = getEntryPoints;
106
97
  function getWatchEntryPoints(logger, options, program) {
107
98
  let result;
108
99
  const entryPoints = options.getValue("entryPoints");
109
- switch (options.getValue("entryPointStrategy")) {
100
+ const exclude = options.getValue("exclude");
101
+ const strategy = options.getValue("entryPointStrategy");
102
+ switch (strategy) {
110
103
  case exports.EntryPointStrategy.Resolve:
111
- result = getEntryPointsForPaths(logger, entryPoints, options, [
112
- program,
113
- ]);
104
+ result = getEntryPointsForPaths(logger, expandGlobs(entryPoints, exclude, logger), options, [program]);
114
105
  break;
115
106
  case exports.EntryPointStrategy.Expand:
116
- result = getExpandedEntryPointsForPaths(logger, entryPoints, options, [program]);
107
+ result = getExpandedEntryPointsForPaths(logger, expandGlobs(entryPoints, exclude, logger), options, [program]);
117
108
  break;
118
109
  case exports.EntryPointStrategy.Packages:
119
110
  logger.error("Watch mode does not support 'packages' style entry points.");
120
111
  break;
112
+ case exports.EntryPointStrategy.Merge:
113
+ logger.error("Watch mode does not support 'merge' style entry points.");
114
+ break;
115
+ default:
116
+ (0, general_1.assertNever)(strategy);
121
117
  }
122
118
  if (result && result.length === 0) {
123
119
  logger.error("Unable to find any entry points.");
@@ -141,7 +137,7 @@ function getModuleName(fileName, baseDir) {
141
137
  * Converts a list of file-oriented paths in to DocumentationEntryPoints for conversion.
142
138
  * This is in contrast with the package-oriented `getEntryPointsForPackages`
143
139
  */
144
- function getEntryPointsForPaths(logger, inputFiles, options, programs = getEntryPrograms(logger, options)) {
140
+ function getEntryPointsForPaths(logger, inputFiles, options, programs = getEntryPrograms(inputFiles, logger, options)) {
145
141
  const baseDir = options.getValue("basePath") || (0, fs_1.deriveRootDir)(inputFiles);
146
142
  const entryPoints = [];
147
143
  entryLoop: for (const fileOrDir of inputFiles.map(paths_1.normalizePath)) {
@@ -169,32 +165,39 @@ function getEntryPointsForPaths(logger, inputFiles, options, programs = getEntry
169
165
  }
170
166
  return entryPoints;
171
167
  }
172
- function getExpandedEntryPointsForPaths(logger, inputFiles, options, programs = getEntryPrograms(logger, options)) {
168
+ function getExpandedEntryPointsForPaths(logger, inputFiles, options, programs = getEntryPrograms(inputFiles, logger, options)) {
173
169
  return getEntryPointsForPaths(logger, expandInputFiles(logger, inputFiles, options), options, programs);
174
170
  }
175
171
  exports.getExpandedEntryPointsForPaths = getExpandedEntryPointsForPaths;
176
- function expandGlobs(inputFiles, logger) {
172
+ function expandGlobs(inputFiles, exclude, logger) {
173
+ const excludePatterns = (0, paths_1.createMinimatch)(exclude);
177
174
  const base = (0, fs_1.deriveRootDir)(inputFiles);
178
175
  const result = inputFiles.flatMap((entry) => {
179
176
  const result = (0, fs_1.glob)(entry, base, {
180
177
  includeDirectories: true,
181
178
  followSymlinks: true,
182
179
  });
180
+ const filtered = result.filter((file) => file === entry || !(0, paths_1.matchesAny)(excludePatterns, file));
183
181
  if (result.length === 0) {
184
182
  logger.warn(`The entrypoint glob ${(0, paths_1.nicePath)(entry)} did not match any files.`);
185
183
  }
184
+ else if (filtered.length === 0) {
185
+ logger.warn(`The entrypoint glob ${(0, paths_1.nicePath)(entry)} did not match any files after applying exclude patterns.`);
186
+ }
186
187
  else {
187
- logger.verbose(`Expanded ${(0, paths_1.nicePath)(entry)} to:\n\t${result
188
+ logger.verbose(`Expanded ${(0, paths_1.nicePath)(entry)} to:\n\t${filtered
188
189
  .map(paths_1.nicePath)
189
190
  .join("\n\t")}`);
190
191
  }
191
- return result;
192
+ return filtered;
192
193
  });
193
194
  return result;
194
195
  }
195
- function getEntryPrograms(logger, options) {
196
+ function getEntryPrograms(inputFiles, logger, options) {
196
197
  const rootProgram = typescript_1.default.createProgram({
197
- rootNames: options.getFileNames(),
198
+ rootNames: options.getFileNames().length
199
+ ? options.getFileNames()
200
+ : inputFiles,
198
201
  options: options.getCompilerOptions(),
199
202
  projectReferences: options.getProjectReferences(),
200
203
  });
@@ -268,92 +271,3 @@ function expandInputFiles(logger, entryPoints, options) {
268
271
  });
269
272
  return files;
270
273
  }
271
- /**
272
- * Expand the provided packages configuration paths, determining the entry points
273
- * and creating the ts.Programs for any which are found.
274
- * @param logger
275
- * @param packageGlobPaths
276
- * @returns The information about the discovered programs, undefined if an error occurs.
277
- */
278
- function getEntryPointsForLegacyPackages(logger, packageGlobPaths, options) {
279
- const results = [];
280
- for (const packagePath of getPackageDirectories(logger, options, packageGlobPaths)) {
281
- const packageJsonPath = (0, path_1.resolve)(packagePath, "package.json");
282
- const packageJson = (0, package_manifest_1.loadPackageManifest)(logger, packageJsonPath);
283
- const includeVersion = options.getValue("includeVersion");
284
- const typedocPackageConfig = packageJson
285
- ? (0, package_manifest_1.extractTypedocConfigFromPackageManifest)(logger, packageJsonPath)
286
- : undefined;
287
- if (packageJson === undefined) {
288
- logger.error(`Could not load package manifest ${packageJsonPath}`);
289
- return;
290
- }
291
- const packageEntryPoint = (0, package_manifest_1.getTsEntryPointForPackage)(logger, packageJsonPath, packageJson);
292
- if (packageEntryPoint === undefined) {
293
- logger.error(`Could not determine TS entry point for package ${packageJsonPath}`);
294
- return;
295
- }
296
- if (packageEntryPoint === package_manifest_1.ignorePackage) {
297
- continue;
298
- }
299
- const tsconfigFile = typescript_1.default.findConfigFile(packageEntryPoint, typescript_1.default.sys.fileExists, typedocPackageConfig?.tsconfig);
300
- if (tsconfigFile === undefined) {
301
- logger.error(`Could not determine tsconfig.json for source file ${packageEntryPoint} (it must be on an ancestor path)`);
302
- return;
303
- }
304
- // Consider deduplicating this with similar code in src/lib/utils/options/readers/tsconfig.ts
305
- let fatalError = false;
306
- const parsedCommandLine = typescript_1.default.getParsedCommandLineOfConfigFile(tsconfigFile, {}, {
307
- ...typescript_1.default.sys,
308
- onUnRecoverableConfigFileDiagnostic: (error) => {
309
- logger.diagnostic(error);
310
- fatalError = true;
311
- },
312
- });
313
- if (!parsedCommandLine) {
314
- return;
315
- }
316
- logger.diagnostics(parsedCommandLine.errors);
317
- if (fatalError) {
318
- return;
319
- }
320
- const program = typescript_1.default.createProgram({
321
- rootNames: parsedCommandLine.fileNames,
322
- options: options.fixCompilerOptions(parsedCommandLine.options),
323
- projectReferences: parsedCommandLine.projectReferences,
324
- });
325
- const sourceFile = program.getSourceFile(packageEntryPoint);
326
- if (sourceFile === undefined) {
327
- logger.error(`Entry point "${packageEntryPoint}" does not appear to be built by/included in the tsconfig found at "${tsconfigFile}"`);
328
- return;
329
- }
330
- const packageName = packageJson["name"];
331
- results.push({
332
- displayName: typedocPackageConfig?.displayName ?? packageName,
333
- version: includeVersion
334
- ? packageJson["version"]?.replace(/^v/, "")
335
- : void 0,
336
- readmeFile: discoverReadmeFile(logger, Path.join(packageJsonPath, ".."), typedocPackageConfig?.readmeFile),
337
- program,
338
- sourceFile,
339
- });
340
- }
341
- return results;
342
- }
343
- function discoverReadmeFile(logger, packageDir, userReadme) {
344
- if (userReadme?.endsWith("none")) {
345
- return;
346
- }
347
- if (userReadme) {
348
- if (!FS.existsSync(Path.join(packageDir, userReadme))) {
349
- logger.warn(`Failed to find ${userReadme} in ${(0, paths_1.nicePath)(packageDir)}`);
350
- return;
351
- }
352
- return Path.resolve(Path.join(packageDir, userReadme));
353
- }
354
- for (const file of FS.readdirSync(packageDir)) {
355
- if (file.toLowerCase() === "readme.md") {
356
- return Path.resolve(Path.join(packageDir, file));
357
- }
358
- }
359
- }
@@ -66,7 +66,7 @@ function eventsApi(iteratee, events, name, callback, options) {
66
66
  */
67
67
  function onApi(events, name, callback, options) {
68
68
  if (callback) {
69
- const handlers = (events[name] || (events[name] = []));
69
+ const handlers = (events[name] ||= []);
70
70
  const context = options.context, ctx = options.ctx, listening = options.listening, priority = options.priority;
71
71
  if (listening) {
72
72
  listening.count++;
@@ -42,7 +42,7 @@ const loadSymbol = Symbol.for("typedoc_loads");
42
42
  const pathSymbol = Symbol.for("typedoc_paths");
43
43
  const g = globalThis;
44
44
  g[loadSymbol] = (g[loadSymbol] || 0) + 1;
45
- g[pathSymbol] || (g[pathSymbol] = []);
45
+ g[pathSymbol] ||= [];
46
46
  // transform /abs/path/to/typedoc/dist/lib/utils/general -> /abs/path/to/typedoc
47
47
  g[pathSymbol].push((0, path_1.dirname)((0, path_1.dirname)((0, path_1.dirname)(__dirname))));
48
48
  function hasBeenLoadedMultipleTimes() {
@@ -8,7 +8,7 @@ export type { IfInternal, NeverIfInternal, Chars } from "./general";
8
8
  export { assertNever } from "./general";
9
9
  export { ConsoleLogger, Logger, LogLevel } from "./loggers";
10
10
  export { DefaultMap } from "./map";
11
- export { ArgumentsReader, BindOption, CommentStyle, Options, PackageJsonReader, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, } from "./options";
11
+ export { ArgumentsReader, Option, BindOption, CommentStyle, Options, PackageJsonReader, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, } from "./options";
12
12
  export type { ArrayDeclarationOption, BooleanDeclarationOption, DeclarationOption, DeclarationOptionBase, DeclarationOptionToOptionType, KeyToDeclaration, MapDeclarationOption, MixedDeclarationOption, NumberDeclarationOption, FlagsDeclarationOption, ObjectDeclarationOption, OptionsReader, StringDeclarationOption, TypeDocOptionMap, TypeDocOptions, ValidationOptions, TypeDocOptionValues, ParameterTypeToOptionTypeMap, ManuallyValidatedOption, JsDocCompatibility, } from "./options";
13
13
  export { loadPlugins } from "./plugins";
14
14
  export { getSortFunction } from "./sort";
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.MinimalSourceFile = exports.Validation = exports.renderElement = exports.Raw = exports.Fragment = exports.JSX = exports.EventHooks = exports.getSortFunction = exports.loadPlugins = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.PackageJsonReader = exports.Options = exports.CommentStyle = exports.BindOption = exports.ArgumentsReader = exports.DefaultMap = exports.LogLevel = exports.Logger = exports.ConsoleLogger = exports.assertNever = exports.normalizePath = exports.discoverPackageJson = exports.discoverInParentDir = exports.writeFileSync = exports.writeFile = exports.readFile = exports.getCommonDirectory = exports.copySync = exports.copy = exports.isFile = exports.EventDispatcher = exports.Event = exports.Component = exports.ChildableComponent = exports.AbstractComponent = exports.unique = exports.removeIfPresent = exports.removeIf = exports.partition = exports.insertPrioritySorted = exports.filterMap = void 0;
29
+ exports.MinimalSourceFile = exports.Validation = exports.renderElement = exports.Raw = exports.Fragment = exports.JSX = exports.EventHooks = exports.getSortFunction = exports.loadPlugins = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.PackageJsonReader = exports.Options = exports.CommentStyle = exports.BindOption = exports.Option = exports.ArgumentsReader = exports.DefaultMap = exports.LogLevel = exports.Logger = exports.ConsoleLogger = exports.assertNever = exports.normalizePath = exports.discoverPackageJson = exports.discoverInParentDir = exports.writeFileSync = exports.writeFile = exports.readFile = exports.getCommonDirectory = exports.copySync = exports.copy = exports.isFile = exports.EventDispatcher = exports.Event = exports.Component = exports.ChildableComponent = exports.AbstractComponent = exports.unique = exports.removeIfPresent = exports.removeIf = exports.partition = exports.insertPrioritySorted = exports.filterMap = void 0;
30
30
  var array_1 = require("./array");
31
31
  Object.defineProperty(exports, "filterMap", { enumerable: true, get: function () { return array_1.filterMap; } });
32
32
  Object.defineProperty(exports, "insertPrioritySorted", { enumerable: true, get: function () { return array_1.insertPrioritySorted; } });
@@ -64,6 +64,7 @@ var map_1 = require("./map");
64
64
  Object.defineProperty(exports, "DefaultMap", { enumerable: true, get: function () { return map_1.DefaultMap; } });
65
65
  var options_1 = require("./options");
66
66
  Object.defineProperty(exports, "ArgumentsReader", { enumerable: true, get: function () { return options_1.ArgumentsReader; } });
67
+ Object.defineProperty(exports, "Option", { enumerable: true, get: function () { return options_1.Option; } });
67
68
  Object.defineProperty(exports, "BindOption", { enumerable: true, get: function () { return options_1.BindOption; } });
68
69
  Object.defineProperty(exports, "CommentStyle", { enumerable: true, get: function () { return options_1.CommentStyle; } });
69
70
  Object.defineProperty(exports, "Options", { enumerable: true, get: function () { return options_1.Options; } });
@@ -44,4 +44,4 @@ export declare function createElement(tag: typeof Fragment | string | JsxCompone
44
44
  export declare function setRenderSettings(options: {
45
45
  pretty: boolean;
46
46
  }): void;
47
- export declare function renderElement(element: JsxElement | null | undefined): string;
47
+ export declare const renderElement: (element: JsxElement | null | undefined) => string;
@@ -76,8 +76,8 @@ function setRenderSettings(options) {
76
76
  renderPretty = options.pretty;
77
77
  }
78
78
  exports.setRenderSettings = setRenderSettings;
79
- function renderElement(element) {
80
- if (!element) {
79
+ const renderElement = function renderElement(element) {
80
+ if (!element || typeof element === "boolean") {
81
81
  return "";
82
82
  }
83
83
  const { tag, props, children } = element;
@@ -87,22 +87,27 @@ function renderElement(element) {
87
87
  }
88
88
  return renderElement(tag(Object.assign({ children }, props)));
89
89
  }
90
- const html = [];
90
+ let html = "";
91
91
  if (tag !== jsx_elements_1.JsxFragment) {
92
92
  if (blockElements.has(tag) && renderPretty) {
93
- html.push("\n");
93
+ html += "\n";
94
94
  }
95
- html.push("<", tag);
95
+ html += "<";
96
+ html += tag;
96
97
  for (const [key, val] of Object.entries(props ?? {})) {
97
98
  if (val == null)
98
99
  continue;
99
100
  if (typeof val == "boolean") {
100
101
  if (val) {
101
- html.push(" ", key);
102
+ html += " ";
103
+ html += key;
102
104
  }
103
105
  }
104
106
  else {
105
- html.push(" ", key, "=", JSON.stringify(val));
107
+ html += " ";
108
+ html += key;
109
+ html += "=";
110
+ html += JSON.stringify(val);
106
111
  }
107
112
  }
108
113
  }
@@ -110,23 +115,27 @@ function renderElement(element) {
110
115
  if (children.length) {
111
116
  hasChildren = true;
112
117
  if (tag !== jsx_elements_1.JsxFragment)
113
- html.push(">");
118
+ html += ">";
114
119
  renderChildren(children);
115
120
  }
116
121
  if (tag !== jsx_elements_1.JsxFragment) {
117
122
  if (!hasChildren) {
118
123
  if (voidElements.has(tag)) {
119
- html.push("/>");
124
+ html += "/>";
120
125
  }
121
126
  else {
122
- html.push("></", tag, ">");
127
+ html += "></";
128
+ html += tag;
129
+ html += ">";
123
130
  }
124
131
  }
125
132
  else {
126
- html.push("</", tag, ">");
133
+ html += "</";
134
+ html += tag;
135
+ html += ">";
127
136
  }
128
137
  }
129
- return html.join("");
138
+ return html;
130
139
  function renderChildren(children) {
131
140
  for (const child of children) {
132
141
  if (!child)
@@ -135,12 +144,12 @@ function renderElement(element) {
135
144
  renderChildren(child);
136
145
  }
137
146
  else if (typeof child === "string" || typeof child === "number") {
138
- html.push((0, html_1.escapeHtml)(child.toString()));
147
+ html += (0, html_1.escapeHtml)(child.toString());
139
148
  }
140
149
  else {
141
- html.push(renderElement(child));
150
+ html += renderElement(child);
142
151
  }
143
152
  }
144
153
  }
145
- }
154
+ };
146
155
  exports.renderElement = renderElement;