typedoc 0.23.10 → 0.23.13

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 (30) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/lib/application-events.d.ts +3 -0
  3. package/dist/lib/application-events.js +6 -0
  4. package/dist/lib/application.d.ts +9 -1
  5. package/dist/lib/application.js +18 -5
  6. package/dist/lib/converter/comments/declarationReferenceResolver.js +9 -1
  7. package/dist/lib/converter/plugins/LinkResolverPlugin.js +5 -0
  8. package/dist/lib/converter/types.js +6 -1
  9. package/dist/lib/converter/utils/nodes.js +1 -3
  10. package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts +2 -2
  11. package/dist/lib/output/themes/default/partials/hierarchy.d.ts +1 -1
  12. package/dist/lib/output/themes/default/partials/hierarchy.js +5 -3
  13. package/dist/lib/output/themes/default/partials/typeParameters.js +14 -11
  14. package/dist/lib/output/themes/default/templates/reflection.js +5 -6
  15. package/dist/lib/utils/entry-point.js +15 -5
  16. package/dist/lib/utils/fs.js +4 -1
  17. package/dist/lib/utils/general.d.ts +1 -0
  18. package/dist/lib/utils/general.js +13 -5
  19. package/dist/lib/utils/index.d.ts +1 -1
  20. package/dist/lib/utils/options/declaration.d.ts +51 -31
  21. package/dist/lib/utils/options/declaration.js +16 -3
  22. package/dist/lib/utils/options/index.d.ts +1 -1
  23. package/dist/lib/utils/options/options.js +4 -1
  24. package/dist/lib/utils/options/sources/typedoc.js +6 -0
  25. package/dist/lib/utils/package-manifest.d.ts +2 -2
  26. package/dist/lib/utils/package-manifest.js +8 -12
  27. package/dist/lib/utils/paths.d.ts +3 -3
  28. package/package.json +13 -13
  29. package/static/main.js +1 -1
  30. package/static/style.css +1 -0
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { Converter, Context, type CommentParserConfig } from "./lib/converter";
7
7
  export { Renderer, DefaultTheme, DefaultThemeRenderContext, UrlMapping, Theme, PageEvent, RendererEvent, MarkdownEvent, IndexEvent, } from "./lib/output";
8
8
  export type { RenderTemplate, RendererHooks } from "./lib/output";
9
9
  export { ArgumentsReader, BindOption, CommentStyle, JSX, LogLevel, Logger, Options, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, EntryPointStrategy, EventHooks, MinimalSourceFile, } 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";
10
+ export type { OptionsReader, TypeDocOptions, TypeDocOptionMap, ValidationOptions, TypeDocOptionValues, KeyToDeclaration, DeclarationOption, DeclarationOptionBase, StringDeclarationOption, NumberDeclarationOption, BooleanDeclarationOption, ArrayDeclarationOption, MixedDeclarationOption, ObjectDeclarationOption, MapDeclarationOption, FlagsDeclarationOption, DeclarationOptionToOptionType, SortStrategy, ParameterTypeToOptionTypeMap, DocumentationEntryPoint, ManuallyValidatedOption, } from "./lib/utils";
11
11
  export type { EventMap, EventCallback } from "./lib/utils/events";
12
12
  export { JSONOutput, Serializer, type SerializerComponent, SerializeEvent, } from "./lib/serialization";
13
13
  export type { SerializeEventData } from "./lib/serialization";
@@ -0,0 +1,3 @@
1
+ export declare const ApplicationEvents: {
2
+ BOOTSTRAP_END: string;
3
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApplicationEvents = void 0;
4
+ exports.ApplicationEvents = {
5
+ BOOTSTRAP_END: "bootstrapEnd",
6
+ };
@@ -39,11 +39,19 @@ export declare class Application extends ChildableComponent<Application, Abstrac
39
39
  logger: Logger;
40
40
  options: Options;
41
41
  /** @internal */
42
- loggerType: string | Function;
42
+ readonly loggerType: string | Function;
43
+ /** @internal */
44
+ readonly skipErrorChecking: boolean;
43
45
  /**
44
46
  * The version number of TypeDoc.
45
47
  */
46
48
  static VERSION: string;
49
+ /**
50
+ * Emitted after plugins have been loaded and options have been read, but before they have been frozen.
51
+ * The listener will be given an instance of {@link Application} and the {@link TypeDocOptions | Partial<TypeDocOptions>}
52
+ * passed to `bootstrap`.
53
+ */
54
+ static readonly EVENT_BOOTSTRAP_END: string;
47
55
  /**
48
56
  * Create a new TypeDoc application instance.
49
57
  *
@@ -24,6 +24,7 @@ const general_1 = require("./utils/general");
24
24
  const exports_1 = require("./validation/exports");
25
25
  const documentation_1 = require("./validation/documentation");
26
26
  const links_1 = require("./validation/links");
27
+ const application_events_1 = require("./application-events");
27
28
  // eslint-disable-next-line @typescript-eslint/no-var-requires
28
29
  const packageInfo = require("../../package.json");
29
30
  const supportedVersionMajorMinor = packageInfo.peerDependencies.typescript
@@ -96,8 +97,9 @@ let Application = Application_1 = class Application extends component_1.Childabl
96
97
  }
97
98
  this.options.read(this.logger);
98
99
  if ((0, general_1.hasBeenLoadedMultipleTimes)()) {
99
- this.logger.warn(`TypeDoc has been loaded multiple times. This is commonly caused by plugins which have their own installation of TypeDoc. This will likely break things.`);
100
+ this.logger.warn(`TypeDoc has been loaded multiple times. This is commonly caused by plugins which have their own installation of TypeDoc. The loaded paths are:\n\t${(0, general_1.getLoadedPaths)().join("\n\t")}`);
100
101
  }
102
+ this.trigger(application_events_1.ApplicationEvents.BOOTSTRAP_END, this, options);
101
103
  }
102
104
  /**
103
105
  * Return the path to the TypeScript compiler.
@@ -136,10 +138,12 @@ let Application = Application_1 = class Application extends component_1.Childabl
136
138
  }
137
139
  const programs = (0, array_1.unique)(entryPoints.map((e) => e.program));
138
140
  this.logger.verbose(`Converting with ${programs.length} programs ${entryPoints.length} entry points`);
139
- const errors = programs.flatMap((program) => ts.getPreEmitDiagnostics(program));
140
- if (errors.length) {
141
- this.logger.diagnostics(errors);
142
- return;
141
+ if (this.skipErrorChecking === false) {
142
+ const errors = programs.flatMap((program) => ts.getPreEmitDiagnostics(program));
143
+ if (errors.length) {
144
+ this.logger.diagnostics(errors);
145
+ return;
146
+ }
143
147
  }
144
148
  if (this.options.getValue("emit") === "both") {
145
149
  for (const program of programs) {
@@ -302,9 +306,18 @@ let Application = Application_1 = class Application extends component_1.Childabl
302
306
  * The version number of TypeDoc.
303
307
  */
304
308
  Application.VERSION = packageInfo.version;
309
+ /**
310
+ * Emitted after plugins have been loaded and options have been read, but before they have been frozen.
311
+ * The listener will be given an instance of {@link Application} and the {@link TypeDocOptions | Partial<TypeDocOptions>}
312
+ * passed to `bootstrap`.
313
+ */
314
+ Application.EVENT_BOOTSTRAP_END = application_events_1.ApplicationEvents.BOOTSTRAP_END;
305
315
  __decorate([
306
316
  (0, utils_1.BindOption)("logger")
307
317
  ], Application.prototype, "loggerType", void 0);
318
+ __decorate([
319
+ (0, utils_1.BindOption)("skipErrorChecking")
320
+ ], Application.prototype, "skipErrorChecking", void 0);
308
321
  Application = Application_1 = __decorate([
309
322
  (0, component_1.Component)({ name: "application", internal: true })
310
323
  ], Application);
@@ -29,6 +29,9 @@ function resolveDeclarationReference(reflection, ref) {
29
29
  if (refl.kindOf(models_1.ReflectionKind.ExportContainer)) {
30
30
  high.push(refl);
31
31
  }
32
+ else {
33
+ low.push(refl);
34
+ }
32
35
  }
33
36
  if (reflection.kindOf(models_1.ReflectionKind.SomeMember)) {
34
37
  high.push(reflection.parent);
@@ -38,7 +41,12 @@ function resolveDeclarationReference(reflection, ref) {
38
41
  high.push(reflection.parent.parent);
39
42
  }
40
43
  else if (high[0] !== reflection) {
41
- high.push(reflection);
44
+ if (reflection.parent instanceof models_1.ContainerReflection) {
45
+ high.push(...(reflection.parent.children?.filter((c) => c.name === reflection.name) || []));
46
+ }
47
+ else {
48
+ high.push(reflection);
49
+ }
42
50
  }
43
51
  }
44
52
  if (ref.symbolReference) {
@@ -10,6 +10,7 @@ exports.LinkResolverPlugin = void 0;
10
10
  const components_1 = require("../components");
11
11
  const converter_events_1 = require("../converter-events");
12
12
  const utils_1 = require("../../utils");
13
+ const models_1 = require("../../models");
13
14
  /**
14
15
  * A plugin that resolves `{@link Foo}` tags.
15
16
  */
@@ -26,6 +27,10 @@ let LinkResolverPlugin = class LinkResolverPlugin extends components_1.Converter
26
27
  if (reflection.comment) {
27
28
  context.converter.resolveLinks(reflection.comment, reflection);
28
29
  }
30
+ if (reflection instanceof models_1.DeclarationReflection &&
31
+ reflection.readme) {
32
+ reflection.readme = context.converter.resolveLinks(reflection.readme, reflection);
33
+ }
29
34
  }
30
35
  if (context.project.readme) {
31
36
  context.project.readme = context.converter.resolveLinks(context.project.readme, context.project);
@@ -91,8 +91,13 @@ function convertType(context, typeOrNode) {
91
91
  }
92
92
  seenTypeSymbols.add(symbol);
93
93
  }
94
- const converter = converters.get(node.kind);
94
+ let converter = converters.get(node.kind);
95
95
  if (converter) {
96
+ // Hacky fix for #2011, need to find a better way to choose the converter.
97
+ if (converter === intersectionConverter &&
98
+ !typeOrNode.isIntersection()) {
99
+ converter = typeLiteralConverter;
100
+ }
96
101
  const result = converter.convertType(context, typeOrNode, node);
97
102
  if (symbol)
98
103
  seenTypeSymbols.delete(symbol);
@@ -4,9 +4,7 @@ exports.getHeritageTypes = exports.isNamedNode = void 0;
4
4
  const ts = require("typescript");
5
5
  function isNamedNode(node) {
6
6
  const name = node.name;
7
- return (!!name &&
8
- (ts.isIdentifierOrPrivateIdentifier(name) ||
9
- ts.isComputedPropertyName(name)));
7
+ return !!name && (ts.isMemberName(name) || ts.isComputedPropertyName(name));
10
8
  }
11
9
  exports.isNamedNode = isNamedNode;
12
10
  function getHeritageTypes(declarations, kind) {
@@ -6,7 +6,7 @@ export declare class DefaultThemeRenderContext {
6
6
  private theme;
7
7
  options: Options;
8
8
  constructor(theme: DefaultTheme, options: Options);
9
- icons: Record<"search" | "anchor" | import("../../../models").ReflectionKind | "checkbox" | "chevronDown" | "menu" | "chevronSmall", () => import("../../../utils/jsx.elements").JsxElement>;
9
+ icons: Record<"anchor" | import("../../../models").ReflectionKind | "search" | "checkbox" | "chevronDown" | "menu" | "chevronSmall", () => import("../../../utils/jsx.elements").JsxElement>;
10
10
  hook: (name: keyof RendererHooks) => import("../../../utils/jsx.elements").JsxElement[];
11
11
  /** Avoid this in favor of urlTo if possible */
12
12
  relativeURL: (url: string | undefined) => string | undefined;
@@ -21,7 +21,7 @@ export declare class DefaultThemeRenderContext {
21
21
  comment: (props: Reflection) => import("../../../utils/jsx.elements").JsxElement | undefined;
22
22
  footer: () => import("../../../utils/jsx.elements").JsxElement | undefined;
23
23
  header: (props: import("../..").PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
24
- hierarchy: (props: import("../../../models").DeclarationHierarchy) => import("../../../utils/jsx.elements").JsxElement;
24
+ hierarchy: (props: import("../../../models").DeclarationHierarchy | undefined) => import("../../../utils/jsx.elements").JsxElement;
25
25
  index: (props: import("../../../models").ContainerReflection) => import("../../../utils/jsx.elements").JsxElement;
26
26
  member: (props: import("../../../models").DeclarationReflection) => import("../../../utils/jsx.elements").JsxElement;
27
27
  memberDeclaration: (props: import("../../../models").DeclarationReflection) => import("../../../utils/jsx.elements").JsxElement;
@@ -1,4 +1,4 @@
1
1
  import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext";
2
2
  import { JSX } from "../../../../utils";
3
3
  import type { DeclarationHierarchy } from "../../../../models";
4
- export declare const hierarchy: (context: DefaultThemeRenderContext, props: DeclarationHierarchy) => JSX.Element;
4
+ export declare const hierarchy: (context: DefaultThemeRenderContext, props: DeclarationHierarchy | undefined) => JSX.Element;
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.hierarchy = void 0;
4
4
  const utils_1 = require("../../../../utils");
5
- const hierarchy = (context, props) => (utils_1.JSX.createElement("ul", { class: "tsd-hierarchy" }, props.types.map((item, i, l) => (utils_1.JSX.createElement("li", null,
6
- props.isTarget ? utils_1.JSX.createElement("span", { class: "target" }, item.toString()) : context.type(item),
7
- i === l.length - 1 && !!props.next && context.hierarchy(props.next))))));
5
+ const hierarchy = (context, props) => (utils_1.JSX.createElement(utils_1.JSX.Fragment, null, !!props && (utils_1.JSX.createElement("section", { class: "tsd-panel tsd-hierarchy" },
6
+ utils_1.JSX.createElement("h4", null, "Hierarchy"),
7
+ utils_1.JSX.createElement("ul", { class: "tsd-hierarchy" }, props.types.map((item, i, l) => (utils_1.JSX.createElement("li", null,
8
+ props.isTarget ? utils_1.JSX.createElement("span", { class: "target" }, item.toString()) : context.type(item),
9
+ i === l.length - 1 && !!props.next && context.hierarchy(props.next)))))))));
8
10
  exports.hierarchy = hierarchy;
@@ -3,16 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.typeParameters = void 0;
4
4
  const utils_1 = require("../../../../utils");
5
5
  function typeParameters(context, typeParameters) {
6
- return (utils_1.JSX.createElement("ul", { class: "tsd-type-parameters" }, typeParameters?.map((item) => (utils_1.JSX.createElement("li", null,
7
- utils_1.JSX.createElement("h4", null,
8
- item.varianceModifier ? `${item.varianceModifier} ` : "",
9
- item.name,
10
- !!item.type && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
11
- utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, " extends "),
12
- context.type(item.type))),
13
- !!item.default && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
14
- " = ",
15
- context.type(item.default)))),
16
- context.comment(item))))));
6
+ return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
7
+ utils_1.JSX.createElement("section", { class: "tsd-panel tsd-type-parameters" },
8
+ utils_1.JSX.createElement("h4", null, "Type Parameters"),
9
+ utils_1.JSX.createElement("ul", { class: "tsd-type-parameters" }, typeParameters?.map((item) => (utils_1.JSX.createElement("li", null,
10
+ utils_1.JSX.createElement("h4", null,
11
+ item.varianceModifier ? `${item.varianceModifier} ` : "",
12
+ item.name,
13
+ !!item.type && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
14
+ utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, " extends "),
15
+ context.type(item.type))),
16
+ !!item.default && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
17
+ " = ",
18
+ context.type(item.default)))),
19
+ context.comment(item))))))));
17
20
  }
18
21
  exports.typeParameters = typeParameters;
@@ -10,13 +10,12 @@ function reflectionTemplate(context, props) {
10
10
  return context.memberDeclaration(props.model);
11
11
  return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
12
12
  props.model.hasComment() && (utils_1.JSX.createElement("section", { class: "tsd-panel tsd-comment" }, context.comment(props.model))),
13
- (0, lib_1.hasTypeParameters)(props.model) && (utils_1.JSX.createElement("section", { class: "tsd-panel tsd-type-parameters" },
14
- utils_1.JSX.createElement("h4", null, "Type Parameters"),
15
- context.typeParameters(props.model.typeParameters))),
13
+ (0, lib_1.hasTypeParameters)(props.model) && utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
14
+ " ",
15
+ context.typeParameters(props.model.typeParameters),
16
+ " "),
16
17
  props.model instanceof models_1.DeclarationReflection && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
17
- !!props.model.typeHierarchy && (utils_1.JSX.createElement("section", { class: "tsd-panel tsd-hierarchy" },
18
- utils_1.JSX.createElement("h4", null, "Hierarchy"),
19
- context.hierarchy(props.model.typeHierarchy))),
18
+ context.hierarchy(props.model.typeHierarchy),
20
19
  !!props.model.implementedTypes && (utils_1.JSX.createElement("section", { class: "tsd-panel" },
21
20
  utils_1.JSX.createElement("h4", null, "Implements"),
22
21
  utils_1.JSX.createElement("ul", { class: "tsd-hierarchy" }, props.model.implementedTypes.map((item) => (utils_1.JSX.createElement("li", null, context.type(item))))))),
@@ -8,6 +8,8 @@ const Path = require("path");
8
8
  const package_manifest_1 = require("./package-manifest");
9
9
  const paths_1 = require("./paths");
10
10
  const fs_1 = require("./fs");
11
+ const validation_1 = require("./validation");
12
+ const array_1 = require("./array");
11
13
  /**
12
14
  * Defines how entry points are interpreted.
13
15
  * @enum
@@ -190,6 +192,15 @@ function expandInputFiles(logger, entryPoints, options) {
190
192
  });
191
193
  return files;
192
194
  }
195
+ function deriveRootDir(packageGlobPaths) {
196
+ const globs = (0, paths_1.createMinimatch)(packageGlobPaths);
197
+ const rootPaths = globs.flatMap((glob) => (0, array_1.filterMap)(glob.set, (set) => {
198
+ const stop = set.findIndex((part) => typeof part !== "string");
199
+ const path = stop === -1 ? set : set.slice(0, stop);
200
+ return `/${path.join("/")}`;
201
+ }));
202
+ return (0, fs_1.getCommonDirectory)(rootPaths);
203
+ }
193
204
  /**
194
205
  * Expand the provided packages configuration paths, determining the entry points
195
206
  * and creating the ts.Programs for any which are found.
@@ -200,9 +211,10 @@ function expandInputFiles(logger, entryPoints, options) {
200
211
  function getEntryPointsForPackages(logger, packageGlobPaths, options) {
201
212
  const results = [];
202
213
  const exclude = (0, paths_1.createMinimatch)(options.getValue("exclude"));
214
+ const rootDir = deriveRootDir(packageGlobPaths);
203
215
  // packages arguments are workspace tree roots, or glob patterns
204
216
  // This expands them to leave only leaf packages
205
- const expandedPackages = (0, package_manifest_1.expandPackages)(logger, ".", packageGlobPaths, exclude);
217
+ const expandedPackages = (0, package_manifest_1.expandPackages)(logger, rootDir, packageGlobPaths, exclude);
206
218
  for (const packagePath of expandedPackages) {
207
219
  const packageJsonPath = (0, path_1.resolve)(packagePath, "package.json");
208
220
  const packageJson = (0, package_manifest_1.loadPackageManifest)(logger, packageJsonPath);
@@ -250,12 +262,10 @@ function getEntryPointsForPackages(logger, packageGlobPaths, options) {
250
262
  });
251
263
  const sourceFile = program.getSourceFile(packageEntryPoint);
252
264
  if (sourceFile === undefined) {
253
- logger.error(`Entry point "${packageEntryPoint}" does not appear to be built by the tsconfig found at "${tsconfigFile}"`);
265
+ logger.error(`Entry point "${packageEntryPoint}" does not appear to be built by/included in the tsconfig found at "${tsconfigFile}"`);
254
266
  return;
255
267
  }
256
- if (includeVersion &&
257
- (!packageJson["version"] ||
258
- typeof packageJson["version"] !== "string")) {
268
+ if (includeVersion && !(0, validation_1.validate)({ version: String }, packageJson)) {
259
269
  logger.warn(`--includeVersion was specified, but "${(0, paths_1.nicePath)(packageJsonPath)}" does not properly specify a version.`);
260
270
  }
261
271
  results.push({
@@ -149,7 +149,10 @@ function glob(pattern, root, options) {
149
149
  }
150
150
  if (child.isDirectory() && child.name !== "node_modules") {
151
151
  const childPath = dir.concat(child.name);
152
- if (mini.set.some((row) => mini.matchOne(childPath, row, /* partial */ true))) {
152
+ if (mini.set.some((row) => mini.matchOne(childPath,
153
+ // @ts-expect-error https://github.com/DefinitelyTyped/DefinitelyTyped/pull/62049
154
+ row,
155
+ /* partial */ true))) {
153
156
  dirs.push(childPath);
154
157
  }
155
158
  }
@@ -39,4 +39,5 @@ export declare type Chars<T extends string> = T extends `${infer C}${infer R}` ?
39
39
  */
40
40
  export declare function assertNever(x: never): never;
41
41
  export declare function hasBeenLoadedMultipleTimes(): boolean;
42
+ export declare function getLoadedPaths(): string[];
42
43
  export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasBeenLoadedMultipleTimes = exports.assertNever = void 0;
3
+ exports.getLoadedPaths = exports.hasBeenLoadedMultipleTimes = exports.assertNever = void 0;
4
+ const path_1 = require("path");
4
5
  const Util = require("util");
5
6
  /**
6
7
  * Utility to help type checking ensure that there is no uncovered case.
@@ -15,10 +16,17 @@ exports.assertNever = assertNever;
15
16
  * multiple times, then parts of it will not work as expected.
16
17
  */
17
18
  const loadSymbol = Symbol.for("typedoc_loads");
18
- const getLoads = () => globalThis[loadSymbol] || 0;
19
- // @ts-expect-error there's no way to add symbols to globalThis, sadly.
20
- globalThis[loadSymbol] = getLoads() + 1;
19
+ const pathSymbol = Symbol.for("typedoc_paths");
20
+ const g = globalThis;
21
+ g[loadSymbol] = (g[loadSymbol] || 0) + 1;
22
+ g[pathSymbol] || (g[pathSymbol] = []);
23
+ // transform /abs/path/to/typedoc/dist/lib/utils/general -> /abs/path/to/typedoc
24
+ g[pathSymbol].push((0, path_1.dirname)((0, path_1.dirname)((0, path_1.dirname)(__dirname))));
21
25
  function hasBeenLoadedMultipleTimes() {
22
- return getLoads() !== 1;
26
+ return g[loadSymbol] !== 1;
23
27
  }
24
28
  exports.hasBeenLoadedMultipleTimes = hasBeenLoadedMultipleTimes;
29
+ function getLoadedPaths() {
30
+ return g[pathSymbol] || [];
31
+ }
32
+ exports.getLoadedPaths = getLoadedPaths;
@@ -7,7 +7,7 @@ export { assertNever } from "./general";
7
7
  export { CallbackLogger, ConsoleLogger, Logger, LogLevel } from "./loggers";
8
8
  export { DefaultMap } from "./map";
9
9
  export { ArgumentsReader, BindOption, CommentStyle, Options, ParameterHint, ParameterType, TSConfigReader, TypeDocReader, } from "./options";
10
- export type { ArrayDeclarationOption, BooleanDeclarationOption, DeclarationOption, DeclarationOptionBase, DeclarationOptionToOptionType, KeyToDeclaration, MapDeclarationOption, MixedDeclarationOption, NumberDeclarationOption, FlagsDeclarationOption, OptionsReader, StringDeclarationOption, TypeDocOptionMap, TypeDocOptions, ValidationOptions, TypeDocOptionValues, ParameterTypeToOptionTypeMap, ManuallyValidatedOption, } from "./options";
10
+ export type { ArrayDeclarationOption, BooleanDeclarationOption, DeclarationOption, DeclarationOptionBase, DeclarationOptionToOptionType, KeyToDeclaration, MapDeclarationOption, MixedDeclarationOption, NumberDeclarationOption, FlagsDeclarationOption, ObjectDeclarationOption, OptionsReader, StringDeclarationOption, TypeDocOptionMap, TypeDocOptions, ValidationOptions, TypeDocOptionValues, ParameterTypeToOptionTypeMap, ManuallyValidatedOption, } from "./options";
11
11
  export { discoverPlugins, loadPlugins } from "./plugins";
12
12
  export { sortReflections } from "./sort";
13
13
  export type { SortStrategy } from "./sort";
@@ -45,67 +45,68 @@ export declare type TypeDocOptionValues = {
45
45
  export interface TypeDocOptionMap {
46
46
  options: string;
47
47
  tsconfig: string;
48
+ compilerOptions: unknown;
48
49
  entryPoints: string[];
49
50
  entryPointStrategy: typeof EntryPointStrategy;
50
51
  exclude: string[];
51
52
  externalPattern: string[];
52
53
  excludeExternals: boolean;
53
- excludePrivate: boolean;
54
- excludeProtected: boolean;
55
54
  excludeNotDocumented: boolean;
56
55
  excludeInternal: boolean;
57
- disableSources: boolean;
58
- basePath: string;
59
- includes: string;
56
+ excludePrivate: boolean;
57
+ excludeProtected: boolean;
60
58
  media: string;
61
- emit: typeof EmitStrategy;
62
- watch: boolean;
63
- preserveWatchOutput: boolean;
59
+ includes: string;
64
60
  out: string;
65
61
  json: string;
66
62
  pretty: boolean;
63
+ emit: typeof EmitStrategy;
67
64
  theme: string;
68
65
  lightHighlightTheme: ShikiTheme;
69
66
  darkHighlightTheme: ShikiTheme;
70
67
  customCss: string;
71
- visibilityFilters: ManuallyValidatedOption<{
72
- protected?: boolean;
73
- private?: boolean;
74
- inherited?: boolean;
75
- external?: boolean;
76
- [tag: `@${string}`]: boolean;
77
- }>;
68
+ markedOptions: unknown;
78
69
  name: string;
79
70
  includeVersion: boolean;
71
+ disableSources: boolean;
72
+ basePath: string;
73
+ excludeTags: `@${string}`[];
80
74
  readme: string;
81
- defaultCategory: string;
82
- categoryOrder: string[];
83
- categorizeByGroup: boolean;
84
75
  cname: string;
85
- sort: SortStrategy[];
86
76
  gitRevision: string;
87
77
  gitRemote: string;
88
- gaID: string;
89
- githubPages: boolean;
90
78
  htmlLang: string;
79
+ githubPages: boolean;
80
+ gaID: string;
91
81
  hideGenerator: boolean;
92
82
  searchInComments: boolean;
93
83
  cleanOutputDir: boolean;
94
84
  commentStyle: typeof CommentStyle;
95
- excludeTags: `@${string}`[];
96
85
  blockTags: `@${string}`[];
97
86
  inlineTags: `@${string}`[];
98
87
  modifierTags: `@${string}`[];
88
+ categorizeByGroup: boolean;
89
+ defaultCategory: string;
90
+ categoryOrder: string[];
91
+ sort: SortStrategy[];
92
+ visibilityFilters: ManuallyValidatedOption<{
93
+ protected?: boolean;
94
+ private?: boolean;
95
+ inherited?: boolean;
96
+ external?: boolean;
97
+ [tag: `@${string}`]: boolean;
98
+ }>;
99
+ searchCategoryBoosts: ManuallyValidatedOption<Record<string, number>>;
100
+ searchGroupBoosts: ManuallyValidatedOption<Record<string, number>>;
101
+ watch: boolean;
102
+ preserveWatchOutput: boolean;
103
+ skipErrorChecking: boolean;
99
104
  help: boolean;
100
105
  version: boolean;
101
106
  showConfig: boolean;
102
107
  plugin: string[];
103
- searchCategoryBoosts: ManuallyValidatedOption<Record<string, number>>;
104
- searchGroupBoosts: ManuallyValidatedOption<Record<string, number>>;
105
108
  logger: unknown;
106
109
  logLevel: typeof LogLevel;
107
- markedOptions: unknown;
108
- compilerOptions: unknown;
109
110
  treatWarningsAsErrors: boolean;
110
111
  intentionallyNotExported: string[];
111
112
  validation: ValidationOptions;
@@ -136,9 +137,11 @@ export declare type ValidationOptions = {
136
137
  /**
137
138
  * Converts a given TypeDoc option key to the type of the declaration expected.
138
139
  */
139
- export declare type KeyToDeclaration<K extends keyof TypeDocOptionMap> = TypeDocOptionMap[K] extends boolean ? BooleanDeclarationOption : TypeDocOptionMap[K] extends string ? StringDeclarationOption : TypeDocOptionMap[K] extends number ? NumberDeclarationOption : TypeDocOptionMap[K] extends string[] ? ArrayDeclarationOption : unknown extends TypeDocOptionMap[K] ? MixedDeclarationOption : TypeDocOptionMap[K] extends ManuallyValidatedOption<unknown> ? MixedDeclarationOption & {
140
+ export declare type KeyToDeclaration<K extends keyof TypeDocOptionMap> = TypeDocOptionMap[K] extends boolean ? BooleanDeclarationOption : TypeDocOptionMap[K] extends string ? StringDeclarationOption : TypeDocOptionMap[K] extends number ? NumberDeclarationOption : TypeDocOptionMap[K] extends string[] ? ArrayDeclarationOption : unknown extends TypeDocOptionMap[K] ? MixedDeclarationOption | ObjectDeclarationOption : TypeDocOptionMap[K] extends ManuallyValidatedOption<unknown> ? (MixedDeclarationOption & {
141
+ validate(value: unknown): void;
142
+ }) | (ObjectDeclarationOption & {
140
143
  validate(value: unknown): void;
141
- } : TypeDocOptionMap[K] extends Record<string, boolean> ? FlagsDeclarationOption<TypeDocOptionMap[K]> : TypeDocOptionMap[K] extends Record<string | number, infer U> ? MapDeclarationOption<U> : never;
144
+ }) : TypeDocOptionMap[K] extends Record<string, boolean> ? FlagsDeclarationOption<TypeDocOptionMap[K]> : TypeDocOptionMap[K] extends Record<string | number, infer U> ? MapDeclarationOption<U> : never;
142
145
  export declare enum ParameterHint {
143
146
  File = 0,
144
147
  Directory = 1
@@ -166,10 +169,14 @@ export declare enum ParameterType {
166
169
  * Resolved according to the config directory unless it starts with `**`, after skipping any leading `!` and `#` characters.
167
170
  */
168
171
  GlobArray = 9,
172
+ /**
173
+ * An unopinionated object that preserves default settings unless explicitly overridden
174
+ */
175
+ Object = 10,
169
176
  /**
170
177
  * An object with true/false flags
171
178
  */
172
- Flags = 10
179
+ Flags = 11
173
180
  }
174
181
  export interface DeclarationOptionBase {
175
182
  /**
@@ -257,6 +264,18 @@ export interface MixedDeclarationOption extends DeclarationOptionBase {
257
264
  */
258
265
  validate?: (value: unknown) => void;
259
266
  }
267
+ export interface ObjectDeclarationOption extends DeclarationOptionBase {
268
+ type: ParameterType.Object;
269
+ /**
270
+ * If not specified defaults to undefined.
271
+ */
272
+ defaultValue?: unknown;
273
+ /**
274
+ * An optional validation function that validates a potential value of this option.
275
+ * The function must throw an Error if the validation fails and should do nothing otherwise.
276
+ */
277
+ validate?: (value: unknown) => void;
278
+ }
260
279
  export interface MapDeclarationOption<T> extends DeclarationOptionBase {
261
280
  type: ParameterType.Map;
262
281
  /**
@@ -282,13 +301,14 @@ export interface FlagsDeclarationOption<T extends Record<string, boolean>> exten
282
301
  */
283
302
  defaults: T;
284
303
  }
285
- export declare type DeclarationOption = StringDeclarationOption | NumberDeclarationOption | BooleanDeclarationOption | MixedDeclarationOption | MapDeclarationOption<unknown> | ArrayDeclarationOption | FlagsDeclarationOption<Record<string, boolean>>;
304
+ export declare type DeclarationOption = StringDeclarationOption | NumberDeclarationOption | BooleanDeclarationOption | MixedDeclarationOption | ObjectDeclarationOption | MapDeclarationOption<unknown> | ArrayDeclarationOption | FlagsDeclarationOption<Record<string, boolean>>;
286
305
  export interface ParameterTypeToOptionTypeMap {
287
306
  [ParameterType.String]: string;
288
307
  [ParameterType.Path]: string;
289
308
  [ParameterType.Number]: number;
290
309
  [ParameterType.Boolean]: boolean;
291
310
  [ParameterType.Mixed]: unknown;
311
+ [ParameterType.Object]: unknown;
292
312
  [ParameterType.Array]: string[];
293
313
  [ParameterType.PathArray]: string[];
294
314
  [ParameterType.ModuleArray]: string[];
@@ -305,5 +325,5 @@ export declare type DeclarationOptionToOptionType<T extends DeclarationOption> =
305
325
  * @param option The option for which the value should be converted.
306
326
  * @returns The result of the conversion. Might be the value or an error.
307
327
  */
308
- export declare function convert(value: unknown, option: DeclarationOption, configPath: string): unknown;
328
+ export declare function convert(value: unknown, option: DeclarationOption, configPath: string, oldValue?: unknown): unknown;
309
329
  export declare function getDefaultValue(option: DeclarationOption): unknown;
@@ -47,10 +47,14 @@ var ParameterType;
47
47
  * Resolved according to the config directory unless it starts with `**`, after skipping any leading `!` and `#` characters.
48
48
  */
49
49
  ParameterType[ParameterType["GlobArray"] = 9] = "GlobArray";
50
+ /**
51
+ * An unopinionated object that preserves default settings unless explicitly overridden
52
+ */
53
+ ParameterType[ParameterType["Object"] = 10] = "Object";
50
54
  /**
51
55
  * An object with true/false flags
52
56
  */
53
- ParameterType[ParameterType["Flags"] = 10] = "Flags";
57
+ ParameterType[ParameterType["Flags"] = 11] = "Flags";
54
58
  })(ParameterType = exports.ParameterType || (exports.ParameterType = {}));
55
59
  const converters = {
56
60
  [ParameterType.String](value, option) {
@@ -146,6 +150,12 @@ const converters = {
146
150
  option.validate?.(value);
147
151
  return value;
148
152
  },
153
+ [ParameterType.Object](value, option, _configPath, oldValue) {
154
+ option.validate?.(value);
155
+ if (typeof oldValue !== "undefined")
156
+ value = { ...oldValue, ...value };
157
+ return value;
158
+ },
149
159
  [ParameterType.Flags](value, option) {
150
160
  if (typeof value === "boolean") {
151
161
  value = Object.fromEntries(Object.keys(option.defaults).map((key) => [key, value]));
@@ -179,9 +189,9 @@ const converters = {
179
189
  * @param option The option for which the value should be converted.
180
190
  * @returns The result of the conversion. Might be the value or an error.
181
191
  */
182
- function convert(value, option, configPath) {
192
+ function convert(value, option, configPath, oldValue) {
183
193
  const _converters = converters;
184
- return _converters[option.type ?? ParameterType.String](value, option, configPath);
194
+ return _converters[option.type ?? ParameterType.String](value, option, configPath, oldValue);
185
195
  }
186
196
  exports.convert = convert;
187
197
  const defaultGetters = {
@@ -209,6 +219,9 @@ const defaultGetters = {
209
219
  [ParameterType.Mixed](option) {
210
220
  return option.defaultValue;
211
221
  },
222
+ [ParameterType.Object](option) {
223
+ return option.defaultValue;
224
+ },
212
225
  [ParameterType.Array](option) {
213
226
  return option.defaultValue?.slice() ?? [];
214
227
  },
@@ -2,4 +2,4 @@ export { Options, BindOption } from "./options";
2
2
  export type { OptionsReader } from "./options";
3
3
  export { ArgumentsReader, TypeDocReader, TSConfigReader } from "./readers";
4
4
  export { CommentStyle, EmitStrategy, ParameterType, ParameterHint, } from "./declaration";
5
- export type { TypeDocOptions, TypeDocOptionMap, ValidationOptions, KeyToDeclaration, DeclarationOption, DeclarationOptionBase, StringDeclarationOption, NumberDeclarationOption, BooleanDeclarationOption, ArrayDeclarationOption, MixedDeclarationOption, MapDeclarationOption, FlagsDeclarationOption, DeclarationOptionToOptionType, TypeDocOptionValues, ParameterTypeToOptionTypeMap, ManuallyValidatedOption, } from "./declaration";
5
+ export type { TypeDocOptions, TypeDocOptionMap, ValidationOptions, KeyToDeclaration, DeclarationOption, DeclarationOptionBase, StringDeclarationOption, NumberDeclarationOption, BooleanDeclarationOption, ArrayDeclarationOption, MixedDeclarationOption, ObjectDeclarationOption, MapDeclarationOption, FlagsDeclarationOption, DeclarationOptionToOptionType, TypeDocOptionValues, ParameterTypeToOptionTypeMap, ManuallyValidatedOption, } from "./declaration";
@@ -164,7 +164,10 @@ class Options {
164
164
  if (!declaration) {
165
165
  throw new Error(`Tried to set an option (${name}) that was not declared.`);
166
166
  }
167
- const converted = (0, declaration_2.convert)(value, declaration, configPath ?? process.cwd());
167
+ let oldValue = this._values[declaration.name];
168
+ if (typeof oldValue === "undefined")
169
+ oldValue = (0, declaration_2.getDefaultValue)(declaration);
170
+ const converted = (0, declaration_2.convert)(value, declaration, configPath ?? process.cwd(), oldValue);
168
171
  if (declaration.type === declaration_1.ParameterType.Flags) {
169
172
  Object.assign(this._values[declaration.name], converted);
170
173
  }
@@ -397,6 +397,12 @@ function addTypeDocOptions(options) {
397
397
  help: "If set, TypeDoc will not clear the screen between compilation runs.",
398
398
  type: declaration_1.ParameterType.Boolean,
399
399
  });
400
+ options.addDeclaration({
401
+ name: "skipErrorChecking",
402
+ help: "Do not run TypeScript's type checking before generating docs.",
403
+ type: declaration_1.ParameterType.Boolean,
404
+ defaultValue: false,
405
+ });
400
406
  options.addDeclaration({
401
407
  name: "help",
402
408
  help: "Print this message.",
@@ -1,5 +1,5 @@
1
1
  import type { Logger } from "./loggers";
2
- import type { IMinimatch } from "minimatch";
2
+ import type { Minimatch } from "minimatch";
3
3
  import { additionalProperties, Infer } from "./validation";
4
4
  /**
5
5
  * Loads a package.json and validates that it is a JSON Object
@@ -20,7 +20,7 @@ export declare function extractTypedocConfigFromPackageManifest(logger: Logger,
20
20
  * Given a list of (potentially wildcarded) package paths,
21
21
  * return all the actual package folders found.
22
22
  */
23
- export declare function expandPackages(logger: Logger, packageJsonDir: string, workspaces: string[], exclude: IMinimatch[]): string[];
23
+ export declare function expandPackages(logger: Logger, packageJsonDir: string, workspaces: string[], exclude: Minimatch[]): string[];
24
24
  export declare const ignorePackage: unique symbol;
25
25
  /**
26
26
  * Given a package.json, attempt to find the TS file that defines its entry point
@@ -116,8 +116,8 @@ function getTsSourceFromJsSource(logger, jsPath) {
116
116
  const sourceMapPrefix = "\n//# sourceMappingURL=";
117
117
  const indexOfSourceMapPrefix = contents.indexOf(sourceMapPrefix);
118
118
  if (indexOfSourceMapPrefix === -1) {
119
- logger.error(`The file ${jsPath} does not contain a sourceMappingURL`);
120
- return;
119
+ logger.verbose(`The file ${jsPath} does not contain a sourceMappingURL`);
120
+ return jsPath;
121
121
  }
122
122
  const endOfSourceMapPrefix = indexOfSourceMapPrefix + sourceMapPrefix.length;
123
123
  const newLineIndex = contents.indexOf("\n", endOfSourceMapPrefix);
@@ -177,21 +177,17 @@ function getTsEntryPointForPackage(logger, packageJsonPath, packageJson) {
177
177
  if (typedocPackageConfig?.entryPoint) {
178
178
  packageMain = typedocPackageConfig.entryPoint;
179
179
  }
180
- else if (hasOwnProperty(packageJson, "typedocMain") &&
181
- typeof packageJson.typedocMain == "string") {
180
+ else if ((0, validation_1.validate)({ typedocMain: String }, packageJson)) {
182
181
  logger.warn(`Legacy typedoc entry point config (using "typedocMain" field) found for "${(0, paths_1.nicePath)(packageJsonPath)}". Please update to use "typedoc": { "entryPoint": "..." } instead. In future upgrade, "typedocMain" field will be ignored.`);
183
182
  packageMain = packageJson.typedocMain;
184
183
  }
185
- else if (hasOwnProperty(packageJson, "main") &&
186
- typeof packageJson.main == "string") {
184
+ else if ((0, validation_1.validate)({ main: String }, packageJson)) {
187
185
  packageMain = packageJson.main;
188
186
  }
189
- else if (hasOwnProperty(packageJson, "types") &&
190
- typeof packageJson.types == "string") {
187
+ else if ((0, validation_1.validate)({ types: String }, packageJson)) {
191
188
  packageTypes = packageJson.types;
192
189
  }
193
- else if (hasOwnProperty(packageJson, "typings") &&
194
- typeof packageJson.typings == "string") {
190
+ else if ((0, validation_1.validate)({ typings: String }, packageJson)) {
195
191
  packageTypes = packageJson.typings;
196
192
  }
197
193
  let entryPointPath = (0, path_1.resolve)(packageJsonPath, "..", packageMain);
@@ -201,7 +197,7 @@ function getTsEntryPointForPackage(logger, packageJsonPath, packageJson) {
201
197
  // Pass an empty `paths` as node_modules locations do not need to be examined
202
198
  try {
203
199
  entryPointPath = require.resolve(entryPointPath, { paths: [] });
204
- if (/\.([cm]ts|tsx?)$/.test(entryPointPath) &&
200
+ if (/\.([cm]?ts|tsx?)$/.test(entryPointPath) &&
205
201
  (0, fs_1.existsSync)(entryPointPath)) {
206
202
  return entryPointPath;
207
203
  }
@@ -212,7 +208,7 @@ function getTsEntryPointForPackage(logger, packageJsonPath, packageJson) {
212
208
  }
213
209
  else {
214
210
  entryPointPath = (0, path_1.resolve)(packageJsonPath, "..", packageTypes ?? packageMain);
215
- if (/\.([cm][tj]s|tsx?)$/.test(entryPointPath) &&
211
+ if (/\.([cm]?[tj]s|tsx?)$/.test(entryPointPath) &&
216
212
  (0, fs_1.existsSync)(entryPointPath)) {
217
213
  return entryPointPath;
218
214
  }
@@ -1,9 +1,9 @@
1
- import { IMinimatch } from "minimatch";
1
+ import { Minimatch } from "minimatch";
2
2
  /**
3
3
  * Convert array of glob patterns to array of minimatch instances.
4
4
  *
5
5
  * Handle a few Windows-Unix path gotchas.
6
6
  */
7
- export declare function createMinimatch(patterns: string[]): IMinimatch[];
8
- export declare function matchesAny(patterns: readonly IMinimatch[], path: string): boolean;
7
+ export declare function createMinimatch(patterns: string[]): Minimatch[];
8
+ export declare function matchesAny(patterns: readonly Minimatch[], path: string): boolean;
9
9
  export declare function nicePath(absPath: string): string;
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.23.10",
4
+ "version": "0.23.13",
5
5
  "homepage": "https://typedoc.org",
6
6
  "main": "./dist/index.js",
7
7
  "exports": {
@@ -25,25 +25,25 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "lunr": "^2.3.9",
28
- "marked": "^4.0.18",
28
+ "marked": "^4.0.19",
29
29
  "minimatch": "^5.1.0",
30
- "shiki": "^0.10.1"
30
+ "shiki": "^0.11.1"
31
31
  },
32
32
  "peerDependencies": {
33
- "typescript": "4.6.x || 4.7.x"
33
+ "typescript": "4.6.x || 4.7.x || 4.8.x"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/lunr": "^2.3.4",
37
- "@types/marked": "^4.0.3",
38
- "@types/minimatch": "3.0.5",
37
+ "@types/marked": "^4.0.6",
38
+ "@types/minimatch": "5.1.1",
39
39
  "@types/mocha": "^9.1.1",
40
- "@types/node": "^18.6.3",
41
- "@typescript-eslint/eslint-plugin": "^5.31.0",
42
- "@typescript-eslint/parser": "^5.31.0",
43
- "@typestrong/fs-fixture-builder": "github:TypeStrong/fs-fixture-builder#b88cd06fe814614a0d924af9d10d04ff95a551de",
40
+ "@types/node": "14",
41
+ "@typescript-eslint/eslint-plugin": "^5.36.1",
42
+ "@typescript-eslint/parser": "^5.36.1",
43
+ "@typestrong/fs-fixture-builder": "github:TypeStrong/fs-fixture-builder#5a9486bc66f6e36988106685768396281f6cbc10",
44
44
  "c8": "^7.12.0",
45
- "esbuild": "^0.14.39",
46
- "eslint": "^8.20.0",
45
+ "esbuild": "^0.15.6",
46
+ "eslint": "^8.23.0",
47
47
  "mocha": "^10.0.0",
48
48
  "prettier": "2.7.1",
49
49
  "puppeteer": "^13.5.2",
@@ -51,7 +51,7 @@
51
51
  "reg-suit-core": "^0.12.1",
52
52
  "reg-suit-interface": "^0.12.0",
53
53
  "ts-node": "^10.9.1",
54
- "typescript": "^4.7.4"
54
+ "typescript": "^4.8.2"
55
55
  },
56
56
  "files": [
57
57
  "/bin",
package/static/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (()=>{var Qe=Object.create;var ae=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var _e=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Me=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ce(e))!Re.call(t,i)&&i!==n&&ae(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Qe(Oe(t)):{},Me(e||!t||!t.__esModule?ae(n,"default",{value:t,enumerable:!0}):n,t));var de=_e((ce,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var u=r.charAt(o),l=o-a;if(u.match(t.tokenizer.separator)||o==i){if(l>0){var h=t.utils.clone(n)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(r.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
2
+ "use strict";(()=>{var Qe=Object.create;var ae=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var _e=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Me=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ce(e))!Re.call(t,i)&&i!==n&&ae(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Qe(Oe(t)):{},Me(e||!t||!t.__esModule?ae(n,"default",{value:t,enumerable:!0}):n,t));var de=_e((ce,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var u=r.charAt(o),l=o-a;if(u.match(t.tokenizer.separator)||o==i){if(l>0){var h=t.utils.clone(n)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(r.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
3
3
  `,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var u=0;u<a.length;u++)s.push(a[u]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,u=0,l=0,h=0;l<s&&h<o;)a=r[l],u=i[h],a<u?l+=2:a>u?h+=2:a==u&&(n+=r[l+1]*i[h+1],l+=2,h+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,u="^("+s+")?"+o+s+"("+o+")?$",l="^("+s+")?"+o+s+o+s,h="^("+s+")?"+i,m=new RegExp(a),v=new RegExp(l),b=new RegExp(u),y=new RegExp(h),E=/^(.+?)(ss|i)es$/,f=/^(.+?)([^s])s$/,p=/^(.+?)eed$/,w=/^(.+?)(ed|ing)$/,S=/.$/,I=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),z=new RegExp("^"+s+i+"[^aeiouwxy]$"),A=/^(.+?[^aeiou])y$/,q=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,$=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,V=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,W=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,U=/ll$/,G=new RegExp("^"+s+i+"[^aeiouwxy]$"),N=function(c){var g,C,T,d,x,O,D;if(c.length<3)return c;if(T=c.substr(0,1),T=="y"&&(c=T.toUpperCase()+c.substr(1)),d=E,x=f,d.test(c)?c=c.replace(d,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),d=p,x=w,d.test(c)){var L=d.exec(c);d=m,d.test(L[1])&&(d=S,c=c.replace(d,""))}else if(x.test(c)){var L=x.exec(c);g=L[1],x=y,x.test(g)&&(c=g,x=I,O=_,D=z,x.test(c)?c=c+"e":O.test(c)?(d=S,c=c.replace(d,"")):D.test(c)&&(c=c+"e"))}if(d=A,d.test(c)){var L=d.exec(c);g=L[1],c=g+"i"}if(d=q,d.test(c)){var L=d.exec(c);g=L[1],C=L[2],d=m,d.test(g)&&(c=g+e[C])}if(d=$,d.test(c)){var L=d.exec(c);g=L[1],C=L[2],d=m,d.test(g)&&(c=g+n[C])}if(d=V,x=W,d.test(c)){var L=d.exec(c);g=L[1],d=v,d.test(g)&&(c=g)}else if(x.test(c)){var L=x.exec(c);g=L[1]+L[2],x=v,x.test(g)&&(c=g)}if(d=P,d.test(c)){var L=d.exec(c);g=L[1],d=v,x=b,O=G,(d.test(g)||x.test(g)&&!O.test(g))&&(c=g)}return d=U,x=v,d.test(c)&&x.test(c)&&(d=S,c=c.replace(d,"")),T=="y"&&(c=T.toLowerCase()+c.substr(1)),c};return function(M){return M.update(N)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),m=s.str.charAt(1),v;m in s.node.edges?v=s.node.edges[m]:(v=new t.TokenSet,s.node.edges[m]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var u=new t.TokenSet;u.final=a,n.edges[o]=u,n=u}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),u=a.length,l=0;l<o;l++)for(var h=s[l],m=0;m<u;m++){var v=a[m];if(v==h||h=="*"){var b=r.node.edges[v],y=r.qNode.edges[h],E=b.final&&y.final,f=void 0;v in r.output.edges?(f=r.output.edges[v],f.final=f.final||E):(f=new t.TokenSet,f.final=E,r.output.edges[v]=f),i.push({qNode:y,output:f,node:b})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u<this.fields.length;u++)i[this.fields[u]]=new t.Vector;e.call(n,n);for(var u=0;u<n.clauses.length;u++){var l=n.clauses[u],h=null,m=t.Set.empty;l.usePipeline?h=this.pipeline.runString(l.term,{fields:l.fields}):h=[l.term];for(var v=0;v<h.length;v++){var b=h[v];l.term=b;var y=t.TokenSet.fromClause(l),E=this.tokenSet.intersect(y).toArray();if(E.length===0&&l.presence===t.Query.presence.REQUIRED){for(var f=0;f<l.fields.length;f++){var p=l.fields[f];o[p]=t.Set.empty}break}for(var w=0;w<E.length;w++)for(var S=E[w],I=this.invertedIndex[S],_=I._index,f=0;f<l.fields.length;f++){var p=l.fields[f],z=I[p],A=Object.keys(z),q=S+"/"+p,$=new t.Set(A);if(l.presence==t.Query.presence.REQUIRED&&(m=m.union($),o[p]===void 0&&(o[p]=t.Set.complete)),l.presence==t.Query.presence.PROHIBITED){a[p]===void 0&&(a[p]=t.Set.empty),a[p]=a[p].union($);continue}if(i[p].upsert(_,l.boost,function(ke,Ie){return ke+Ie}),!s[q]){for(var V=0;V<A.length;V++){var W=A[V],P=new t.FieldRef(W,p),U=z[W],G;(G=r[P])===void 0?r[P]=new t.MatchData(S,p,U):G.add(S,p,U)}s[q]=!0}}}if(l.presence===t.Query.presence.REQUIRED)for(var f=0;f<l.fields.length;f++){var p=l.fields[f];o[p]=o[p].intersect(m)}}for(var N=t.Set.complete,M=t.Set.empty,u=0;u<this.fields.length;u++){var p=this.fields[u];o[p]&&(N=N.intersect(o[p])),a[p]&&(M=M.union(a[p]))}var c=Object.keys(r),g=[],C=Object.create(null);if(n.isNegated()){c=Object.keys(this.fieldVectors);for(var u=0;u<c.length;u++){var P=c[u],T=t.FieldRef.fromString(P);r[P]=new t.MatchData}}for(var u=0;u<c.length;u++){var T=t.FieldRef.fromString(c[u]),d=T.docRef;if(!!N.contains(d)&&!M.contains(d)){var x=this.fieldVectors[T],O=i[T.fieldName].similarity(x),D;if((D=C[d])!==void 0)D.score+=O,D.matchData.combine(r[T]);else{var L={ref:d,score:O,matchData:r[T]};C[d]=L,g.push(L)}}}return g.sort(function(we,Te){return Te.score-we.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,u=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<i.length;l++){var h=i[l],m=h[0],v=h[1];r[m]=new t.Vector(v)}for(var l=0;l<o.length;l++){var h=o[l],b=h[0],y=h[1];a.insert(b),s[b]=y}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=u,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,u=a?a(e):e[o],l=this.tokenizer(u,{fields:[o]}),h=this.pipeline.run(l),m=new t.FieldRef(r,o),v=Object.create(null);this.fieldTermFrequencies[m]=v,this.fieldLengths[m]=0,this.fieldLengths[m]+=h.length;for(var b=0;b<h.length;b++){var y=h[b];if(v[y]==null&&(v[y]=0),v[y]+=1,this.invertedIndex[y]==null){var E=Object.create(null);E._index=this.termIndex,this.termIndex+=1;for(var f=0;f<i.length;f++)E[i[f]]=Object.create(null);this.invertedIndex[y]=E}this.invertedIndex[y][o][r]==null&&(this.invertedIndex[y][o][r]=Object.create(null));for(var p=0;p<this.metadataWhitelist.length;p++){var w=this.metadataWhitelist[p],S=y.metadata[w];this.invertedIndex[y][o][r][w]==null&&(this.invertedIndex[y][o][r][w]=[]),this.invertedIndex[y][o][r][w].push(S)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var u=Object.keys(this._fields),s=0;s<u.length;s++){var l=u[s];r[l]=r[l]/i[l]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,u=this.fieldLengths[o],l=new t.Vector,h=this.fieldTermFrequencies[o],m=Object.keys(h),v=m.length,b=this._fields[a].boost||1,y=this._documents[o.docRef].boost||1,E=0;E<v;E++){var f=m[E],p=h[f],w=this.invertedIndex[f]._index,S,I,_;i[f]===void 0?(S=t.idf(this.invertedIndex[f],this.documentCount),i[f]=S):S=i[f],I=S*((this._k1+1)*p)/(this._k1*(1-this._b+this._b*(u/this.averageFieldLength[a]))+p),I*=b,I*=y,_=Math.round(I*1e3)/1e3,l.insert(w,_)}e[o]=l}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],u=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var l=0;l<u.length;l++){var h=u[l];this.metadata[i][a][h]==null?this.metadata[i][a][h]=e.metadata[i][a][h]:this.metadata[i][a][h]=this.metadata[i][a][h].concat(e.metadata[i][a][h])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ce=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});var le=[];function j(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r}),r.dataset.hasInstance=String(!0))})})}};var k=class{constructor(e){this.el=e.el}};var J=class{constructor(){this.listeners={}}addEventListener(e,n){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(n)}removeEventListener(e,n){if(!(e in this.listeners))return;let r=this.listeners[e];for(let i=0,s=r.length;i<s;i++)if(r[i]===n){r.splice(i,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return!0;let n=this.listeners[e.type].slice();for(let r=0,i=n.length;r<i;r++)n[r].call(this,e);return!e.defaultPrevented}};var ne=(t,e=100)=>{let n=Date.now();return(...r)=>{n+e-Date.now()<0&&(t(...r),n=Date.now())}};var re=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.navigation=document.querySelector(".col-menu"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.searchInput=document.querySelector("#tsd-search input"),this.searchInput&&this.searchInput.addEventListener("focus",()=>{this.hideShowToolbar()}),this.onResize(),this.onScroll()}triggerResize(){let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onScroll(){this.scrollTop=window.scrollY||0;let n=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(n),this.hideShowToolbar()}hideShowToolbar(){let n=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0||!!this.searchInput&&this.searchInput===document.activeElement,n!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.navigation?.classList.toggle("col-menu--hide")),this.lastY=this.scrollTop}},R=re;R.instance=new re;var X=class extends k{constructor(n){super(n);this.anchors=[];this.index=-1;R.instance.addEventListener("resize",()=>this.onResize()),R.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substring(0,n.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let i=r.href;if(i.indexOf("#")==-1||i.substring(0,n.length)!=n)return;let s=i.substring(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=r.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let n;for(let i=0,s=this.anchors.length;i<s;i++){n=this.anchors[i];let o=n.anchor.getBoundingClientRect();n.position=o.top+document.body.scrollTop}this.anchors.sort((i,s)=>i.position-s.position);let r=new CustomEvent("scroll",{detail:{scrollTop:R.instance.scrollTop}});this.onScroll(r)}onScroll(n){let r=n.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>r;)o-=1;for(;o<s&&i[o+1].position<r;)o+=1;this.index!=o&&(this.index>-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>t(r),e)}};var me=De(de());function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let n=document.querySelector("#tsd-search input"),r=document.querySelector("#tsd-search .results");if(!n||!r)throw new Error("The input field or the result list wrapper was not found");let i=!1;r.addEventListener("mousedown",()=>i=!0),r.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),n.addEventListener("focus",()=>t.classList.add("has-focus")),n.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Fe(t,r,n,s)}function Fe(t,e,n,r){n.addEventListener("input",ue(()=>{Ae(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?fe(e,-1):s.key==="ArrowDown"?fe(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=me.Index.load(window.searchData.index))}function Ae(t,e,n,r){if(He(r,t),!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s=i?r.index.search(`*${i}*`):[];for(let o=0;o<s.length;o++){let a=s[o],u=r.data.rows[Number(a.ref)],l=1;u.name.toLowerCase().startsWith(i.toLowerCase())&&(l*=1+1/(1+Math.abs(u.name.length-i.length))),a.score*=l}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let u=r.data.rows[Number(s[o].ref)],l=pe(u.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(l+=` (score: ${s[o].score.toFixed(2)})`),u.parent&&(l=`<span class="parent">${pe(u.parent,i)}.</span>${l}`);let h=document.createElement("li");h.classList.value=u.classes??"";let m=document.createElement("a");m.href=r.base+u.url,m.innerHTML=l,h.append(m),e.appendChild(h)}}function fe(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function pe(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ie(t.substring(s,o)),`<b>${ie(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(ie(t.substring(s))),i.join("")}var Ne={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function ie(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var F="mousedown",ye="mousemove",B="mouseup",Z={x:0,y:0},ge=!1,se=!1,je=!1,H=!1,xe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(xe?"is-mobile":"not-mobile");xe&&"ontouchstart"in document.documentElement&&(je=!0,F="touchstart",ye="touchmove",B="touchend");document.addEventListener(F,t=>{se=!0,H=!1;let e=F=="touchstart"?t.targetTouches[0]:t;Z.y=e.pageY||0,Z.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!se&&!H){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);H=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends k{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(B,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){H||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!H&&this.active&&n.target.closest(".col-menu")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var oe;try{oe=localStorage}catch{oe={getItem(){return null},setItem(){}}}var Q=oe;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var ee=class extends k{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
4
4
  `}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var te=class extends k{constructor(n){super(n);this.calculateHeights(),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.textContent.replace(/\s+/g,"-").toLowerCase()}`,this.setLocalStorage(this.fromLocalStorage(),!0),this.summary.addEventListener("click",r=>this.toggleVisibility(r)),this.icon.style.transform=this.getIconRotation()}getIconRotation(n=this.el.open){return`rotate(${n?0:-90}deg)`}calculateHeights(){let n=this.el.open,{position:r,left:i}=this.el.style;this.el.style.position="fixed",this.el.style.left="-9999px",this.el.open=!0,this.expandedHeight=this.el.offsetHeight+"px",this.el.open=!1,this.collapsedHeight=this.el.offsetHeight+"px",this.el.open=n,this.el.style.height=n?this.expandedHeight:this.collapsedHeight,this.el.style.position=r,this.el.style.left=i}toggleVisibility(n){n.preventDefault(),this.el.style.overflow="hidden",this.el.open?this.collapse():this.expand()}expand(n=!0){this.el.open=!0,this.animate(this.collapsedHeight,this.expandedHeight,{opening:!0,duration:n?300:0})}collapse(n=!0){this.animate(this.expandedHeight,this.collapsedHeight,{opening:!1,duration:n?300:0})}animate(n,r,{opening:i,duration:s=300}){if(this.animation)return;let o={duration:s,easing:"ease"};this.animation=this.el.animate({height:[n,r]},o),this.icon.animate({transform:[this.icon.style.transform||this.getIconRotation(!i),this.getIconRotation(i)]},o).addEventListener("finish",()=>{this.icon.style.transform=this.getIconRotation(i)}),this.animation.addEventListener("finish",()=>this.animationEnd(i))}animationEnd(n){this.el.open=n,this.animation=void 0,this.el.style.height="auto",this.el.style.overflow="visible",this.setLocalStorage(n)}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.open}setLocalStorage(n,r=!1){this.fromLocalStorage()===n&&!r||(Q.setItem(this.key,n.toString()),this.el.open=n,this.handleValueChange(r))}handleValueChange(n=!1){this.fromLocalStorage()===this.el.open&&!n||(this.fromLocalStorage()?this.expand(!1):this.collapse(!1))}};function be(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,Ee(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),Ee(t.value)})}function Ee(t){document.documentElement.dataset.theme=t}ve();j(X,".menu-highlight");j(K,"a[data-toggle]");j(te,".tsd-index-accordion");j(ee,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("theme");Se&&be(Se);var Be=new Y;Object.defineProperty(window,"app",{value:Be});})();
5
5
  /*!
package/static/style.css CHANGED
@@ -1109,6 +1109,7 @@ ul.tsd-type-parameter-list h5 {
1109
1109
  background: var(--color-background-secondary);
1110
1110
  border-bottom: 1px var(--color-accent) solid;
1111
1111
  transition: transform 0.3s ease-in-out;
1112
+ margin: 0 auto;
1112
1113
  }
1113
1114
  .tsd-page-toolbar a {
1114
1115
  color: var(--color-text);