typedoc 0.24.0-beta.7 → 0.24.0-beta.8

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 (50) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.js +17 -1
  3. package/dist/lib/converter/comments/discovery.js +1 -1
  4. package/dist/lib/converter/context.js +2 -2
  5. package/dist/lib/converter/converter.d.ts +6 -4
  6. package/dist/lib/converter/converter.js +7 -5
  7. package/dist/lib/converter/plugins/PackagePlugin.js +3 -1
  8. package/dist/lib/converter/symbols.js +9 -4
  9. package/dist/lib/models/comments/comment.d.ts +2 -2
  10. package/dist/lib/models/comments/comment.js +26 -6
  11. package/dist/lib/models/reflections/declaration.d.ts +1 -1
  12. package/dist/lib/models/reflections/project.d.ts +0 -6
  13. package/dist/lib/models/reflections/project.js +0 -16
  14. package/dist/lib/models/types.js +2 -31
  15. package/dist/lib/output/components.d.ts +3 -3
  16. package/dist/lib/output/components.js +1 -5
  17. package/dist/lib/output/events.d.ts +22 -10
  18. package/dist/lib/output/events.js +14 -6
  19. package/dist/lib/output/plugins/JavascriptIndexPlugin.js +1 -3
  20. package/dist/lib/output/renderer.d.ts +12 -4
  21. package/dist/lib/output/renderer.js +3 -3
  22. package/dist/lib/output/theme.d.ts +2 -2
  23. package/dist/lib/output/themes/MarkedPlugin.d.ts +2 -2
  24. package/dist/lib/output/themes/MarkedPlugin.js +15 -12
  25. package/dist/lib/output/themes/default/DefaultTheme.d.ts +5 -5
  26. package/dist/lib/output/themes/default/DefaultTheme.js +58 -11
  27. package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts +15 -13
  28. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +9 -59
  29. package/dist/lib/output/themes/default/layouts/default.d.ts +2 -1
  30. package/dist/lib/output/themes/default/layouts/default.js +18 -12
  31. package/dist/lib/output/themes/default/partials/footer.js +1 -1
  32. package/dist/lib/output/themes/default/partials/member.d.ts +1 -1
  33. package/dist/lib/output/themes/default/partials/member.js +22 -14
  34. package/dist/lib/output/themes/default/partials/members.group.js +3 -3
  35. package/dist/lib/output/themes/default/partials/navigation.d.ts +4 -3
  36. package/dist/lib/output/themes/default/partials/navigation.js +71 -74
  37. package/dist/lib/output/themes/default/partials/toolbar.js +2 -1
  38. package/dist/lib/serialization/schema.d.ts +1 -0
  39. package/dist/lib/serialization/schema.js +1 -0
  40. package/dist/lib/serialization/serializer.d.ts +1 -1
  41. package/dist/lib/utils/entry-point.d.ts +3 -3
  42. package/dist/lib/utils/entry-point.js +4 -4
  43. package/dist/lib/utils/fs.d.ts +5 -0
  44. package/dist/lib/utils/fs.js +35 -2
  45. package/dist/lib/utils/options/declaration.d.ts +1 -0
  46. package/dist/lib/utils/options/options.d.ts +5 -0
  47. package/dist/lib/utils/options/sources/typedoc.js +5 -0
  48. package/package.json +1 -1
  49. package/static/main.js +3 -3
  50. package/static/style.css +186 -257
@@ -1,17 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.secondaryNavigation = exports.primaryNavigation = exports.settings = exports.sidebarLinks = exports.navigation = void 0;
3
+ exports.pageNavigation = exports.pageSidebar = exports.navigation = exports.settings = exports.sidebarLinks = exports.sidebar = void 0;
4
4
  const models_1 = require("../../../../models");
5
5
  const utils_1 = require("../../../../utils");
6
6
  const lib_1 = require("../../lib");
7
- function navigation(context, props) {
7
+ function sidebar(context, props) {
8
8
  return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
9
9
  context.sidebarLinks(),
10
- context.settings(),
11
- context.primaryNavigation(props),
12
- context.secondaryNavigation(props)));
10
+ context.navigation(props)));
13
11
  }
14
- exports.navigation = navigation;
12
+ exports.sidebar = sidebar;
15
13
  function buildFilterItem(context, name, displayName, defaultValue) {
16
14
  return (utils_1.JSX.createElement("li", { class: "tsd-filter-item" },
17
15
  utils_1.JSX.createElement("label", { class: "tsd-filter-input" },
@@ -50,7 +48,7 @@ function settings(context) {
50
48
  utils_1.JSX.createElement("summary", { class: "tsd-accordion-summary" },
51
49
  utils_1.JSX.createElement("h3", null,
52
50
  context.icons.chevronDown(),
53
- " Settings")),
51
+ "Settings")),
54
52
  utils_1.JSX.createElement("div", { class: "tsd-accordion-details" },
55
53
  visibilityOptions.length && (utils_1.JSX.createElement("div", { class: "tsd-filter-visibility" },
56
54
  utils_1.JSX.createElement("h4", { class: "uppercase" }, "Member Visibility"),
@@ -64,79 +62,78 @@ function settings(context) {
64
62
  utils_1.JSX.createElement("option", { value: "dark" }, "Dark")))))));
65
63
  }
66
64
  exports.settings = settings;
67
- function primaryNavigation(context, props) {
65
+ function navigation(context, props) {
68
66
  // Create the navigation for the current page
69
- const modules = props.model.project.getChildrenByKind(models_1.ReflectionKind.SomeModule);
70
- const [ext, int] = (0, utils_1.partition)(modules, (m) => m.flags.isExternal);
71
- const selected = props.model.isProject();
72
- const current = selected || int.some((mod) => inPath(mod, props.model));
73
- return (utils_1.JSX.createElement("nav", { class: "tsd-navigation primary" },
74
- utils_1.JSX.createElement("details", { class: "tsd-index-accordion", open: true },
67
+ // Recurse to children if the parent is some kind of module
68
+ return (utils_1.JSX.createElement("nav", { class: "tsd-navigation" },
69
+ link(props.project),
70
+ utils_1.JSX.createElement("ul", { class: "tsd-small-nested-navigation" }, props.project.children?.map((c) => (utils_1.JSX.createElement("li", null, links(c)))))));
71
+ function links(mod) {
72
+ const children = (mod.kindOf(models_1.ReflectionKind.SomeModule | models_1.ReflectionKind.Project) && mod.children) || [];
73
+ const nameClasses = (0, lib_1.classNames)({ deprecated: mod.isDeprecated() }, mod.isProject() ? void 0 : context.getReflectionClasses(mod));
74
+ if (!children.length) {
75
+ return link(mod, nameClasses);
76
+ }
77
+ return (utils_1.JSX.createElement("details", { class: (0, lib_1.classNames)({ "tsd-index-accordion": true }, nameClasses), open: inPath(mod), "data-key": mod.getFullName() },
75
78
  utils_1.JSX.createElement("summary", { class: "tsd-accordion-summary" },
76
- utils_1.JSX.createElement("h3", null,
77
- context.icons.chevronDown(),
78
- " Modules")),
79
+ context.icons.chevronDown(),
80
+ link(mod)),
79
81
  utils_1.JSX.createElement("div", { class: "tsd-accordion-details" },
80
- utils_1.JSX.createElement("ul", null,
81
- utils_1.JSX.createElement("li", { class: (0, lib_1.classNames)({ current, selected }) },
82
- utils_1.JSX.createElement("a", { href: context.urlTo(props.model.project) }, (0, lib_1.wbr)(props.project.name)),
83
- utils_1.JSX.createElement("ul", null, int.map(link))),
84
- ext.map(link))))));
85
- function link(mod) {
86
- const current = inPath(mod, props.model);
87
- const selected = mod.name === props.model.name;
88
- let childNav;
89
- const childModules = mod.children?.filter((m) => m.kindOf(models_1.ReflectionKind.SomeModule));
90
- if (childModules?.length) {
91
- childNav = utils_1.JSX.createElement("ul", null, childModules.map(link));
92
- }
93
- return (utils_1.JSX.createElement("li", { class: (0, lib_1.classNames)({ current, selected, deprecated: mod.isDeprecated() }, context.getReflectionClasses(mod)) },
94
- utils_1.JSX.createElement("a", { href: context.urlTo(mod) }, (0, lib_1.wbr)((0, lib_1.getDisplayName)(mod))),
95
- childNav));
82
+ utils_1.JSX.createElement("ul", { class: "tsd-nested-navigation" }, children.map((c) => (utils_1.JSX.createElement("li", null, links(c))))))));
96
83
  }
97
- }
98
- exports.primaryNavigation = primaryNavigation;
99
- function secondaryNavigation(context, props) {
100
- // Multiple entry points, and on main project page.
101
- if (props.model.isProject() && props.model.getChildrenByKind(models_1.ReflectionKind.Module).length) {
102
- return;
84
+ function link(child, nameClasses) {
85
+ return (utils_1.JSX.createElement("a", { href: context.urlTo(child), class: (0, lib_1.classNames)({ current: child === props.model }, nameClasses) },
86
+ context.icons[child.kind](),
87
+ utils_1.JSX.createElement("span", null, (0, lib_1.wbr)((0, lib_1.getDisplayName)(child)))));
103
88
  }
104
- const effectivePageParent = (props.model instanceof models_1.ContainerReflection && props.model.children?.length) || props.model.isProject()
105
- ? props.model
106
- : props.model.parent;
107
- const children = effectivePageParent.children || [];
108
- const pageNavigation = children
109
- .filter((child) => !child.kindOf(models_1.ReflectionKind.SomeModule))
110
- .map((child) => {
111
- return (utils_1.JSX.createElement("li", { class: (0, lib_1.classNames)({ deprecated: child.isDeprecated(), current: props.model === child }, context.getReflectionClasses(child)) },
112
- utils_1.JSX.createElement("a", { href: context.urlTo(child), class: "tsd-index-link" },
113
- context.icons[child.kind](),
114
- utils_1.JSX.createElement("span", null, (0, lib_1.renderName)(child)))));
115
- });
116
- if (effectivePageParent.kindOf(models_1.ReflectionKind.SomeModule | models_1.ReflectionKind.Project)) {
117
- return (utils_1.JSX.createElement("nav", { class: "tsd-navigation secondary menu-sticky" }, !!pageNavigation.length && utils_1.JSX.createElement("ul", null, pageNavigation)));
89
+ function inPath(mod) {
90
+ let iter = props.model;
91
+ do {
92
+ if (iter == mod)
93
+ return true;
94
+ iter = iter.parent;
95
+ } while (iter);
96
+ return false;
118
97
  }
119
- return (utils_1.JSX.createElement("nav", { class: "tsd-navigation secondary menu-sticky" },
120
- utils_1.JSX.createElement("ul", null,
121
- utils_1.JSX.createElement("li", { class: (0, lib_1.classNames)({
122
- deprecated: effectivePageParent.isDeprecated(),
123
- current: effectivePageParent === props.model,
124
- }, effectivePageParent instanceof models_1.DeclarationReflection
125
- ? context.getReflectionClasses(effectivePageParent)
126
- : "") },
127
- utils_1.JSX.createElement("a", { href: context.urlTo(effectivePageParent), class: "tsd-index-link" },
128
- context.icons[effectivePageParent.kind](),
129
- utils_1.JSX.createElement("span", null, (0, lib_1.renderName)(effectivePageParent))),
130
- !!pageNavigation.length && utils_1.JSX.createElement("ul", null, pageNavigation)))));
131
98
  }
132
- exports.secondaryNavigation = secondaryNavigation;
133
- function inPath(thisPage, toCheck) {
134
- while (toCheck) {
135
- if (toCheck.isProject())
136
- return false;
137
- if (thisPage === toCheck)
138
- return true;
139
- toCheck = toCheck.parent;
99
+ exports.navigation = navigation;
100
+ function pageSidebar(context, props) {
101
+ return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
102
+ context.settings(),
103
+ context.pageNavigation(props)));
104
+ }
105
+ exports.pageSidebar = pageSidebar;
106
+ function pageNavigation(context, props) {
107
+ const levels = [[]];
108
+ function finalizeLevel() {
109
+ const built = (utils_1.JSX.createElement("ul", null, levels.pop().map((l) => (utils_1.JSX.createElement("li", null, l)))));
110
+ levels[levels.length - 1].push(built);
111
+ }
112
+ for (const heading of props.pageHeadings) {
113
+ const inferredLevel = heading.level ? heading.level + 1 : 1;
114
+ while (inferredLevel < levels.length) {
115
+ finalizeLevel();
116
+ }
117
+ if (inferredLevel > levels.length) {
118
+ // Lower level than before
119
+ levels.push([]);
120
+ }
121
+ levels[levels.length - 1].push(utils_1.JSX.createElement("a", { href: heading.link, class: heading.classes },
122
+ heading.kind && context.icons[heading.kind](),
123
+ utils_1.JSX.createElement("span", null, (0, lib_1.wbr)(heading.text))));
124
+ }
125
+ while (levels.length > 1) {
126
+ finalizeLevel();
127
+ }
128
+ if (!levels[0].length) {
129
+ return utils_1.JSX.createElement(utils_1.JSX.Fragment, null);
140
130
  }
141
- return false;
131
+ return (utils_1.JSX.createElement("details", { open: true, class: "tsd-index-accordion tsd-page-navigation" },
132
+ utils_1.JSX.createElement("summary", { class: "tsd-accordion-summary" },
133
+ utils_1.JSX.createElement("h3", null,
134
+ context.icons.chevronDown(),
135
+ "On This Page")),
136
+ utils_1.JSX.createElement("div", { class: "tsd-accordion-details" },
137
+ utils_1.JSX.createElement("ul", null, levels[0].map((l) => (utils_1.JSX.createElement("li", null, l)))))));
142
138
  }
139
+ exports.pageNavigation = pageNavigation;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toolbar = void 0;
4
4
  const utils_1 = require("../../../../utils");
5
+ const lib_1 = require("../../lib");
5
6
  const toolbar = (context, props) => (utils_1.JSX.createElement("header", { class: "tsd-page-toolbar" },
6
7
  utils_1.JSX.createElement("div", { class: "tsd-toolbar-contents container" },
7
8
  utils_1.JSX.createElement("div", { class: "table-cell", id: "tsd-search", "data-base": context.relativeURL("./") },
@@ -13,7 +14,7 @@ const toolbar = (context, props) => (utils_1.JSX.createElement("header", { class
13
14
  utils_1.JSX.createElement("ul", { class: "results" },
14
15
  utils_1.JSX.createElement("li", { class: "state loading" }, "Preparing search index..."),
15
16
  utils_1.JSX.createElement("li", { class: "state failure" }, "The search index is not available")),
16
- utils_1.JSX.createElement("a", { href: context.options.getValue("titleLink") || context.relativeURL("index.html"), class: "title" }, props.project.name)),
17
+ utils_1.JSX.createElement("a", { href: context.options.getValue("titleLink") || context.relativeURL("index.html"), class: "title" }, (0, lib_1.getDisplayName)(props.project))),
17
18
  utils_1.JSX.createElement("div", { class: "table-cell", id: "tsd-widgets" },
18
19
  utils_1.JSX.createElement("a", { href: "#", class: "tsd-widget tsd-toolbar-icon menu no-caption", "data-toggle": "menu", "aria-label": "Menu" }, context.icons.menu())))));
19
20
  exports.toolbar = toolbar;
@@ -26,6 +26,7 @@
26
26
  *
27
27
  * For documentation on the JSON output properties, view the corresponding model.
28
28
  * @module
29
+ * @internal
29
30
  */
30
31
  import type * as M from "../models";
31
32
  /**
@@ -27,5 +27,6 @@
27
27
  *
28
28
  * For documentation on the JSON output properties, view the corresponding model.
29
29
  * @module
30
+ * @internal
30
31
  */
31
32
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -15,7 +15,7 @@ export declare class Serializer extends EventDispatcher {
15
15
  static EVENT_END: string;
16
16
  private serializers;
17
17
  /**
18
- * Only set after resolve.
18
+ * Only set when serializing.
19
19
  */
20
20
  projectRoot: string;
21
21
  addSerializer(serializer: SerializerComponent<any>): void;
@@ -7,7 +7,7 @@ import type { Options } from "./options";
7
7
  */
8
8
  export declare const EntryPointStrategy: {
9
9
  /**
10
- * The default behavior in v0.22-v0.23, expects all provided entry points as being part of a single program.
10
+ * The default behavior in v0.22+, expects all provided entry points as being part of a single program.
11
11
  * Any directories included in the entry point list will result in `dir/index.([cm][tj]s|[tj]sx?)` being used.
12
12
  */
13
13
  readonly Resolve: "resolve";
@@ -17,8 +17,8 @@ export declare const EntryPointStrategy: {
17
17
  */
18
18
  readonly Expand: "expand";
19
19
  /**
20
- * Run TypeDoc in each directory passed as an entry point, and save the json result to `.typedoc/<project>`
21
- * Once all have been saved, use the merge option to produce final output.
20
+ * Run TypeDoc in each directory passed as an entry point. Once all directories have been converted,
21
+ * use the merge option to produce final output.
22
22
  */
23
23
  readonly Packages: "packages";
24
24
  /**
@@ -42,7 +42,7 @@ const general_1 = require("./general");
42
42
  */
43
43
  exports.EntryPointStrategy = {
44
44
  /**
45
- * The default behavior in v0.22-v0.23, expects all provided entry points as being part of a single program.
45
+ * The default behavior in v0.22+, expects all provided entry points as being part of a single program.
46
46
  * Any directories included in the entry point list will result in `dir/index.([cm][tj]s|[tj]sx?)` being used.
47
47
  */
48
48
  Resolve: "resolve",
@@ -52,8 +52,8 @@ exports.EntryPointStrategy = {
52
52
  */
53
53
  Expand: "expand",
54
54
  /**
55
- * Run TypeDoc in each directory passed as an entry point, and save the json result to `.typedoc/<project>`
56
- * Once all have been saved, use the merge option to produce final output.
55
+ * Run TypeDoc in each directory passed as an entry point. Once all directories have been converted,
56
+ * use the merge option to produce final output.
57
57
  */
58
58
  Packages: "packages",
59
59
  /**
@@ -315,7 +315,7 @@ function getEntryPointsForLegacyPackages(logger, packageGlobPaths, options) {
315
315
  results.push({
316
316
  displayName: typedocPackageConfig?.displayName ?? packageName,
317
317
  version: includeVersion
318
- ? packageJson["version"]
318
+ ? packageJson["version"]?.replace(/^v/, "")
319
319
  : void 0,
320
320
  readmeFile: discoverReadmeFile(logger, Path.join(packageJsonPath, ".."), typedocPackageConfig?.readmeFile),
321
321
  program,
@@ -53,6 +53,10 @@ export declare function discoverInParentDir<T extends {}>(name: string, dir: str
53
53
  file: string;
54
54
  content: T;
55
55
  } | undefined;
56
+ export declare function discoverInParentDirExactMatch<T extends {}>(name: string, dir: string, read: (content: string) => T | undefined): {
57
+ file: string;
58
+ content: T;
59
+ } | undefined;
56
60
  export declare function discoverPackageJson(dir: string): {
57
61
  file: string;
58
62
  content: {
@@ -61,3 +65,4 @@ export declare function discoverPackageJson(dir: string): {
61
65
  name: string;
62
66
  };
63
67
  } | undefined;
68
+ export declare function findPackageForPath(sourcePath: string): string | undefined;
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.discoverPackageJson = exports.discoverInParentDir = exports.hasTsExtension = exports.glob = exports.copySync = exports.copy = exports.writeFile = exports.writeFileSync = exports.readFile = exports.normalizePath = exports.getCommonDirectory = exports.isDir = exports.isFile = void 0;
26
+ exports.findPackageForPath = exports.discoverPackageJson = exports.discoverInParentDirExactMatch = exports.discoverInParentDir = exports.hasTsExtension = exports.glob = exports.copySync = exports.copy = exports.writeFile = exports.writeFileSync = exports.readFile = exports.normalizePath = exports.getCommonDirectory = exports.isDir = exports.isFile = void 0;
27
27
  const fs = __importStar(require("fs"));
28
28
  const fs_1 = require("fs");
29
29
  const minimatch_1 = require("minimatch");
@@ -287,8 +287,26 @@ function discoverInParentDir(name, dir, read) {
287
287
  }
288
288
  }
289
289
  exports.discoverInParentDir = discoverInParentDir;
290
+ function discoverInParentDirExactMatch(name, dir, read) {
291
+ if (!isDir(dir))
292
+ return;
293
+ const reachedTopDirectory = (dirName) => dirName === (0, path_1.resolve)((0, path_1.join)(dirName, ".."));
294
+ while (!reachedTopDirectory(dir)) {
295
+ try {
296
+ const content = read(readFile((0, path_1.join)(dir, name)));
297
+ if (content != null) {
298
+ return { file: (0, path_1.join)(dir, name), content };
299
+ }
300
+ }
301
+ catch {
302
+ // Ignore, file didn't pass validation
303
+ }
304
+ dir = (0, path_1.resolve)((0, path_1.join)(dir, ".."));
305
+ }
306
+ }
307
+ exports.discoverInParentDirExactMatch = discoverInParentDirExactMatch;
290
308
  function discoverPackageJson(dir) {
291
- return discoverInParentDir("package.json", dir, (content) => {
309
+ return discoverInParentDirExactMatch("package.json", dir, (content) => {
292
310
  const pkg = JSON.parse(content);
293
311
  if ((0, validation_1.validate)({ name: String, version: (0, validation_1.optional)(String) }, pkg)) {
294
312
  return pkg;
@@ -296,3 +314,18 @@ function discoverPackageJson(dir) {
296
314
  });
297
315
  }
298
316
  exports.discoverPackageJson = discoverPackageJson;
317
+ // dir -> package name according to package.json in this or some parent dir
318
+ const packageCache = new Map();
319
+ function findPackageForPath(sourcePath) {
320
+ const dir = (0, path_1.dirname)(sourcePath);
321
+ const cache = packageCache.get(dir);
322
+ if (cache) {
323
+ return cache;
324
+ }
325
+ const packageJson = discoverPackageJson(dir);
326
+ if (packageJson) {
327
+ packageCache.set(dir, packageJson.content.name);
328
+ return packageJson.content.name;
329
+ }
330
+ }
331
+ exports.findPackageForPath = findPackageForPath;
@@ -69,6 +69,7 @@ export interface TypeDocOptionMap {
69
69
  excludeInternal: boolean;
70
70
  excludePrivate: boolean;
71
71
  excludeProtected: boolean;
72
+ excludeReferences: boolean;
72
73
  externalSymbolLinkMappings: ManuallyValidatedOption<Record<string, Record<string, string>>>;
73
74
  media: string;
74
75
  includes: string;
@@ -190,6 +190,8 @@ export declare class Options {
190
190
  /**
191
191
  * Binds an option to the given property. Does not register the option.
192
192
  *
193
+ * Note: This is a legacy experimental decorator, and will not work with TS 5.0 decorators
194
+ *
193
195
  * @since v0.16.3
194
196
  */
195
197
  export declare function BindOption<K extends keyof TypeDocOptionMap>(name: K): <IK extends PropertyKey>(target: ({
@@ -201,6 +203,9 @@ export declare function BindOption<K extends keyof TypeDocOptionMap>(name: K): <
201
203
  }, key: IK) => void;
202
204
  /**
203
205
  * Binds an option to the given property. Does not register the option.
206
+ *
207
+ * Note: This is a legacy experimental decorator, and will not work with TS 5.0 decorators
208
+ *
204
209
  * @since v0.16.3
205
210
  *
206
211
  * @privateRemarks
@@ -159,6 +159,11 @@ function addTypeDocOptions(options) {
159
159
  help: "Ignore protected variables and methods.",
160
160
  type: declaration_1.ParameterType.Boolean,
161
161
  });
162
+ options.addDeclaration({
163
+ name: "excludeReferences",
164
+ help: "If a symbol is exported multiple times, ignore all but the first export.",
165
+ type: declaration_1.ParameterType.Boolean,
166
+ });
162
167
  options.addDeclaration({
163
168
  name: "externalSymbolLinkMappings",
164
169
  help: "Define custom links for symbols not included in the documentation.",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "typedoc",
3
3
  "description": "Create api documentation for TypeScript projects.",
4
- "version": "0.24.0-beta.7",
4
+ "version": "0.24.0-beta.8",
5
5
  "homepage": "https://typedoc.org",
6
6
  "exports": {
7
7
  ".": "./dist/index.js",