Socket
Socket
Sign inDemoInstall

typedoc

Package Overview
Dependencies
Maintainers
5
Versions
309
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typedoc - npm Package Compare versions

Comparing version 0.24.0-beta.7 to 0.24.0-beta.8

4

dist/index.d.ts

@@ -5,2 +5,6 @@ export { Application } from "./lib/application";

export { normalizePath } from "./lib/utils/fs";
/**
* All symbols documented under the Models namespace are also available in the root import.
*/
export * as Models from "./lib/models";
export * from "./lib/models";

@@ -7,0 +11,0 @@ export { Converter, Context, type CommentParserConfig, type DeclarationReference, type SymbolReference, type ComponentPath, type Meaning, type MeaningKeyword, type ExternalResolveResult, type ExternalSymbolResolver, } from "./lib/converter";

@@ -13,2 +13,14 @@ "use strict";

}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __exportStar = (this && this.__exportStar) || function(m, exports) {

@@ -21,3 +33,3 @@ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);

Object.defineProperty(exports, "__esModule", { value: true });
exports.TypeScript = exports.SerializeEvent = exports.Deserializer = exports.Serializer = exports.JSONOutput = exports.MinimalSourceFile = exports.EventHooks = exports.EntryPointStrategy = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.PackageJsonReader = exports.Options = exports.Logger = exports.LogLevel = exports.JSX = exports.CommentStyle = exports.BindOption = exports.ArgumentsReader = exports.IndexEvent = exports.MarkdownEvent = exports.RendererEvent = exports.PageEvent = exports.Theme = exports.UrlMapping = exports.DefaultThemeRenderContext = exports.DefaultTheme = exports.Renderer = exports.Context = exports.Converter = exports.normalizePath = exports.resetReflectionID = exports.Event = exports.EventDispatcher = exports.Application = void 0;
exports.TypeScript = exports.SerializeEvent = exports.Deserializer = exports.Serializer = exports.JSONOutput = exports.MinimalSourceFile = exports.EventHooks = exports.EntryPointStrategy = exports.TypeDocReader = exports.TSConfigReader = exports.ParameterType = exports.ParameterHint = exports.PackageJsonReader = exports.Options = exports.Logger = exports.LogLevel = exports.JSX = exports.CommentStyle = exports.BindOption = exports.ArgumentsReader = exports.IndexEvent = exports.MarkdownEvent = exports.RendererEvent = exports.PageEvent = exports.Theme = exports.UrlMapping = exports.DefaultThemeRenderContext = exports.DefaultTheme = exports.Renderer = exports.Context = exports.Converter = exports.Models = exports.normalizePath = exports.resetReflectionID = exports.Event = exports.EventDispatcher = exports.Application = void 0;
var application_1 = require("./lib/application");

@@ -32,2 +44,6 @@ Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return application_1.Application; } });

Object.defineProperty(exports, "normalizePath", { enumerable: true, get: function () { return fs_1.normalizePath; } });
/**
* All symbols documented under the Models namespace are also available in the root import.
*/
exports.Models = __importStar(require("./lib/models"));
__exportStar(require("./lib/models"), exports);

@@ -34,0 +50,0 @@ var converter_1 = require("./lib/converter");

2

dist/lib/converter/comments/discovery.js

@@ -176,3 +176,3 @@ "use strict";

],
jsDoc: undefined,
jsDoc: comment,
};

@@ -179,0 +179,0 @@ }

@@ -117,6 +117,6 @@ "use strict";

(index_1.ReflectionKind.SomeModule | index_1.ReflectionKind.Reference)) {
reflection.comment = (0, comments_1.getComment)(exportSymbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle, this.converter.useTsLinkResolution ? this.checker : undefined);
reflection.comment = this.getComment(exportSymbol, reflection.kind);
}
if (symbol && !reflection.comment) {
reflection.comment = (0, comments_1.getComment)(symbol, reflection.kind, this.converter.config, this.logger, this.converter.commentStyle, this.converter.useTsLinkResolution ? this.checker : undefined);
reflection.comment = this.getComment(symbol, reflection.kind);
}

@@ -123,0 +123,0 @@ if (this.shouldBeStatic) {

@@ -30,2 +30,4 @@ import ts from "typescript";

/** @internal */
excludeReferences: boolean;
/** @internal */
commentStyle: CommentStyle;

@@ -61,3 +63,3 @@ /** @internal */

* Triggered when the converter has created a declaration reflection.
* The listener will be given {@link Context} and a {@link DeclarationReflection}.
* The listener will be given {@link Context} and a {@link Models.DeclarationReflection}.
* @event

@@ -68,3 +70,3 @@ */

* Triggered when the converter has created a signature reflection.
* The listener will be given {@link Context}, {@link SignatureReflection} | {@link ProjectReflection} the declaration,
* The listener will be given {@link Context}, {@link Models.SignatureReflection} | {@link Models.ProjectReflection} the declaration,
* `ts.SignatureDeclaration | ts.IndexSignatureDeclaration | ts.JSDocSignature | undefined`,

@@ -77,3 +79,3 @@ * and `ts.Signature | undefined`. The signature will be undefined if the created signature is an index signature.

* Triggered when the converter has created a parameter reflection.
* The listener will be given {@link Context}, {@link ParameterReflection} and a `ts.Node?`
* The listener will be given {@link Context}, {@link Models.ParameterReflection} and a `ts.Node?`
* @event

@@ -84,3 +86,3 @@ */

* Triggered when the converter has created a type parameter reflection.
* The listener will be given {@link Context} and a {@link TypeParameterReflection}
* The listener will be given {@link Context} and a {@link Models.TypeParameterReflection}
* @event

@@ -87,0 +89,0 @@ */

@@ -75,3 +75,2 @@ "use strict";

this.trigger(Converter_1.EVENT_END, context);
project.forgetTsReferences();
return project;

@@ -267,3 +266,3 @@ }

* Triggered when the converter has created a declaration reflection.
* The listener will be given {@link Context} and a {@link DeclarationReflection}.
* The listener will be given {@link Context} and a {@link Models.DeclarationReflection}.
* @event

@@ -274,3 +273,3 @@ */

* Triggered when the converter has created a signature reflection.
* The listener will be given {@link Context}, {@link SignatureReflection} | {@link ProjectReflection} the declaration,
* The listener will be given {@link Context}, {@link Models.SignatureReflection} | {@link Models.ProjectReflection} the declaration,
* `ts.SignatureDeclaration | ts.IndexSignatureDeclaration | ts.JSDocSignature | undefined`,

@@ -283,3 +282,3 @@ * and `ts.Signature | undefined`. The signature will be undefined if the created signature is an index signature.

* Triggered when the converter has created a parameter reflection.
* The listener will be given {@link Context}, {@link ParameterReflection} and a `ts.Node?`
* The listener will be given {@link Context}, {@link Models.ParameterReflection} and a `ts.Node?`
* @event

@@ -290,3 +289,3 @@ */

* Triggered when the converter has created a type parameter reflection.
* The listener will be given {@link Context} and a {@link TypeParameterReflection}
* The listener will be given {@link Context} and a {@link Models.TypeParameterReflection}
* @event

@@ -332,2 +331,5 @@ */

__decorate([
(0, utils_1.BindOption)("excludeReferences")
], Converter.prototype, "excludeReferences", void 0);
__decorate([
(0, utils_1.BindOption)("commentStyle")

@@ -334,0 +336,0 @@ ], Converter.prototype, "commentStyle", void 0);

@@ -53,2 +53,3 @@ "use strict";

delete this.readmeFile;
delete this.readmeContents;
delete this.packageJson;

@@ -66,2 +67,3 @@ },

delete this.packageJson;
delete this.readmeContents;
}

@@ -122,3 +124,3 @@ onBegin() {

if (this.includeVersion) {
project.packageVersion = this.packageJson.version;
project.packageVersion = this.packageJson.version?.replace(/^v/, "");
}

@@ -125,0 +127,0 @@ }

@@ -83,3 +83,3 @@ "use strict";

if (previous &&
previous.parent?.kindOf(models_1.ReflectionKind.Module | models_1.ReflectionKind.Project)) {
previous.parent?.kindOf(models_1.ReflectionKind.SomeModule | models_1.ReflectionKind.Project)) {
createAlias(previous, context, symbol, exportSymbol);

@@ -195,3 +195,5 @@ return;

if (typescript_1.default.isTypeAliasDeclaration(declaration)) {
if (symbol.getJsDocTags().some((tag) => tag.name === "interface")) {
if (context
.getComment(symbol, models_1.ReflectionKind.TypeAlias)
?.hasModifier("@interface")) {
return convertTypeAliasAsInterface(context, symbol, exportSymbol, declaration);

@@ -449,2 +451,4 @@ }

function createAlias(target, context, symbol, exportSymbol) {
if (context.converter.excludeReferences)
return;
// We already have this. Create a reference.

@@ -458,8 +462,9 @@ const ref = new models_1.ReferenceReflection(exportSymbol?.name ?? symbol.name, target, context.scope);

(0, assert_1.default)(declaration);
const comment = context.getComment(symbol, models_1.ReflectionKind.Variable);
const type = context.checker.getTypeOfSymbolAtLocation(symbol, declaration);
if (isEnumLike(context.checker, type, declaration) &&
symbol.getJsDocTags().some((tag) => tag.name === "enum")) {
comment?.hasModifier("@enum")) {
return convertVariableAsEnum(context, symbol, exportSymbol);
}
if (symbol.getJsDocTags().some((tag) => tag.name === "namespace")) {
if (comment?.hasModifier("@namespace")) {
return convertVariableAsNamespace(context, symbol, exportSymbol);

@@ -466,0 +471,0 @@ }

@@ -1,2 +0,3 @@

import type { Reflection, ReflectionSymbolId } from "../reflections";
import type { Reflection } from "../reflections";
import { ReflectionSymbolId } from "../reflections/ReflectionSymbolId";
import type { Serializer, Deserializer, JSONOutput } from "../../serialization";

@@ -102,3 +103,2 @@ export type CommentDisplayPart = {

* Label associated with this reflection, if any (https://tsdoc.org/pages/tags/label/)
* Added by the CommentPlugin during resolution.
*/

@@ -105,0 +105,0 @@ label?: string;

@@ -5,2 +5,3 @@ "use strict";

const utils_1 = require("../../utils");
const ReflectionSymbolId_1 = require("../reflections/ReflectionSymbolId");
/**

@@ -166,8 +167,3 @@ * A model that represents a single TypeDoc comment tag.

case "inline-tag": {
if (typeof part.target !== "number") {
// TS isn't quite smart enough here...
// GERRIT this is wrong
return { ...part };
}
else {
if (typeof part.target === "number") {
const part2 = {

@@ -177,2 +173,4 @@ kind: part.kind,

text: part.text,
target: undefined,
tsLinkText: part.tsLinkText,
};

@@ -182,2 +180,24 @@ links.push([part.target, part2]);

}
else if (typeof part.target === "string" ||
part.target === undefined) {
return {
kind: "inline-tag",
tag: part.tag,
text: part.text,
target: part.target,
tsLinkText: part.tsLinkText,
};
}
else if (typeof part.target === "object") {
return {
kind: "inline-tag",
tag: part.tag,
text: part.text,
target: new ReflectionSymbolId_1.ReflectionSymbolId(part.target),
tsLinkText: part.tsLinkText,
};
}
else {
(0, utils_1.assertNever)(part.target);
}
}

@@ -184,0 +204,0 @@ }

@@ -43,3 +43,3 @@ import type * as ts from "typescript";

export declare class DeclarationReflection extends ContainerReflection {
readonly variant: "reference" | "declaration";
readonly variant: "declaration" | "reference";
/**

@@ -46,0 +46,0 @@ * A list of all source files that contributed to this reflection.

@@ -56,8 +56,2 @@ import { Reflection } from "./abstract";

/**
* Disassociate this project with all TypeScript created objects, allowing the underlying
* `ts.Program` to be garbage collected. This is very important for monorepo projects where
* we need to create multiple programs. See #1606 and surrounding discussion.
*/
forgetTsReferences(): void;
/**
* Registers the given reflection so that it can be quickly looked up by helper methods.

@@ -64,0 +58,0 @@ * Should be called for *every* reflection added to the project.

@@ -53,18 +53,2 @@ "use strict";

/**
* Disassociate this project with all TypeScript created objects, allowing the underlying
* `ts.Program` to be garbage collected. This is very important for monorepo projects where
* we need to create multiple programs. See #1606 and surrounding discussion.
*/
forgetTsReferences() {
// Clear ts.Symbol references
this.reflectionIdToSymbolMap.clear();
// TODO: I think we need to do something like this.
// Update local references
this.symbolToReflectionIdMap.clear();
for (const [k, v] of this.reflectionIdToSymbolIdMap) {
v.pos = Infinity;
this.symbolToReflectionIdMap.set(v, k);
}
}
/**
* Registers the given reflection so that it can be quickly looked up by helper methods.

@@ -71,0 +55,0 @@ * Should be called for *every* reflection added to the project.

@@ -27,7 +27,6 @@ "use strict";

exports.UnknownType = exports.UnionType = exports.TypeOperatorType = exports.NamedTupleMember = exports.TupleType = exports.TemplateLiteralType = exports.RestType = exports.ReflectionType = exports.ReferenceType = exports.QueryType = exports.PredicateType = exports.OptionalType = exports.MappedType = exports.LiteralType = exports.IntrinsicType = exports.IntersectionType = exports.InferredType = exports.IndexedAccessType = exports.ConditionalType = exports.ArrayType = exports.TypeContext = exports.makeRecursiveVisitor = exports.Type = void 0;
const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const ts = __importStar(require("typescript"));
const tsutils_1 = require("../utils/tsutils");
const ReflectionSymbolId_1 = require("./reflections/ReflectionSymbolId");
const fs_1 = require("../utils/fs");
/**

@@ -744,3 +743,3 @@ * Base class of all type definitions.

// Otherwise, look for a "package.json" file in a parent path
ref.package = findPackageForPath(symbolPath);
ref.package = (0, fs_1.findPackageForPath)(symbolPath);
return ref;

@@ -1139,29 +1138,1 @@ }

exports.UnknownType = UnknownType;
const packageJsonLookupCache = {};
function findPackageForPath(sourcePath) {
if (packageJsonLookupCache[sourcePath] !== undefined) {
return packageJsonLookupCache[sourcePath];
}
let basePath = sourcePath;
for (;;) {
const nextPath = path.dirname(basePath);
if (nextPath === basePath) {
return;
}
basePath = nextPath;
const projectPath = path.join(basePath, "package.json");
try {
const packageJsonData = fs.readFileSync(projectPath, {
encoding: "utf8",
});
const packageJson = JSON.parse(packageJsonData);
if (packageJson.name !== undefined) {
packageJsonLookupCache[sourcePath] = packageJson.name;
}
return packageJson.name;
}
catch (err) {
continue;
}
}
}
import { Component, AbstractComponent } from "../utils/component";
import { ProjectReflection, DeclarationReflection } from "../models/reflections/index";
import type { ProjectReflection, Reflection } from "../models/reflections/index";
import type { Renderer } from "./renderer";

@@ -19,3 +19,3 @@ import { RendererEvent, PageEvent } from "./events";

*/
protected reflection?: DeclarationReflection;
protected page?: PageEvent<Reflection>;
/**

@@ -54,3 +54,3 @@ * The url of the document that is being currently generated.

*/
protected onBeginPage(page: PageEvent): void;
protected onBeginPage(page: PageEvent<Reflection>): void;
}

@@ -30,3 +30,2 @@ "use strict";

Object.defineProperty(exports, "Component", { enumerable: true, get: function () { return component_1.Component; } });
const index_1 = require("../models/reflections/index");
const events_1 = require("./events");

@@ -88,8 +87,5 @@ class RendererComponent extends component_1.AbstractComponent {

this.location = page.url;
this.reflection =
page.model instanceof index_1.DeclarationReflection
? page.model
: undefined;
this.page = page;
}
}
exports.ContextAwareRendererComponent = ContextAwareRendererComponent;
import { Event } from "../utils/events";
import type { ProjectReflection } from "../models/reflections/project";
import type { RenderTemplate, UrlMapping } from "./models/UrlMapping";
import type { DeclarationReflection } from "../models";
import type { DeclarationReflection, ReflectionKind } from "../models";
/**

@@ -45,3 +45,3 @@ * An event emitted by the {@link Renderer} class at the very beginning and

*/
createPageEvent<Model>(mapping: UrlMapping<Model>): PageEvent<Model>;
createPageEvent<Model>(mapping: UrlMapping<Model>): [RenderTemplate<PageEvent<Model>>, PageEvent<Model>];
}

@@ -55,3 +55,3 @@ /**

*/
export declare class PageEvent<Model = unknown> extends Event {
export declare class PageEvent<out Model = unknown> extends Event {
/**

@@ -72,8 +72,4 @@ * The project the renderer is currently processing.

*/
model: Model;
readonly model: Model;
/**
* The template that should be used to render this page.
*/
template: RenderTemplate<this>;
/**
* The final html content of this page.

@@ -85,2 +81,13 @@ *

/**
* Links to content within this page that should be rendered in the page navigation.
* This is built when rendering the document content.
*/
pageHeadings: Array<{
link: string;
text: string;
level?: number;
kind?: ReflectionKind;
classes?: string;
}>;
/**
* Triggered before a document will be rendered.

@@ -95,2 +102,3 @@ * @event

static readonly END = "endPage";
constructor(name: string, model: Model);
}

@@ -100,3 +108,3 @@ /**

*
* @see {@link PARSE}
* @see {@link MarkdownEvent.PARSE}
*/

@@ -113,2 +121,6 @@ export declare class MarkdownEvent extends Event {

/**
* The page that this markdown is being parsed for.
*/
readonly page: PageEvent;
/**
* Triggered on the renderer when this plugin parses a markdown string.

@@ -118,3 +130,3 @@ * @event

static readonly PARSE = "parseMarkdown";
constructor(name: string, originalText: string, parsedText: string);
constructor(name: string, page: PageEvent, originalText: string, parsedText: string);
}

@@ -121,0 +133,0 @@ /**

@@ -50,9 +50,7 @@ "use strict";

createPageEvent(mapping) {
const event = new PageEvent(PageEvent.BEGIN);
const event = new PageEvent(PageEvent.BEGIN, mapping.model);
event.project = this.project;
event.url = mapping.url;
event.model = mapping.model;
event.template = mapping.template;
event.filename = Path.join(this.outputDirectory, mapping.url);
return event;
return [mapping.template, event];
}

@@ -79,2 +77,11 @@ }

class PageEvent extends events_1.Event {
constructor(name, model) {
super(name);
/**
* Links to content within this page that should be rendered in the page navigation.
* This is built when rendering the document content.
*/
this.pageHeadings = [];
this.model = model;
}
}

@@ -95,7 +102,8 @@ /**

*
* @see {@link PARSE}
* @see {@link MarkdownEvent.PARSE}
*/
class MarkdownEvent extends events_1.Event {
constructor(name, originalText, parsedText) {
constructor(name, page, originalText, parsedText) {
super(name);
this.page = page;
this.originalText = originalText;

@@ -102,0 +110,0 @@ this.parsedText = parsedText;

@@ -98,5 +98,3 @@ "use strict";

url: reflection.url,
classes: this.owner.theme
.getRenderContext()
.getReflectionClasses(reflection),
classes: this.owner.theme.getReflectionClasses(reflection),
};

@@ -103,0 +101,0 @@ if (parent) {

@@ -41,9 +41,17 @@ import type { Application } from "../application";

/**
* Applied immediately before calling `context.navigation`.
* Applied immediately before calling `context.sidebar`.
*/
"navigation.begin": [DefaultThemeRenderContext];
"sidebar.begin": [DefaultThemeRenderContext];
/**
* Applied immediately after calling `context.navigation`.
* Applied immediately after calling `context.sidebar`.
*/
"navigation.end": [DefaultThemeRenderContext];
"sidebar.end": [DefaultThemeRenderContext];
/**
* Applied immediately before calling `context.pageSidebar`.
*/
"pageSidebar.begin": [DefaultThemeRenderContext];
/**
* Applied immediately after calling `context.pageSidebar`.
*/
"pageSidebar.end": [DefaultThemeRenderContext];
}

@@ -50,0 +58,0 @@ /**

@@ -159,3 +159,3 @@ "use strict";

(0, icon_1.clearSeenIconCache)();
this.renderDocument(output.createPageEvent(mapping));
this.renderDocument(...output.createPageEvent(mapping));
(0, type_1.validateStateIsClean)(mapping.url);

@@ -176,3 +176,3 @@ });

*/
renderDocument(page) {
renderDocument(template, page) {
const momento = this.hooks.saveMomento();

@@ -185,3 +185,3 @@ this.trigger(events_1.PageEvent.BEGIN, page);

if (page.model instanceof models_1.Reflection) {
page.contents = this.theme.render(page);
page.contents = this.theme.render(page, template);
}

@@ -188,0 +188,0 @@ else {

import type { Renderer } from "./renderer";
import type { ProjectReflection } from "../models/reflections/project";
import type { UrlMapping } from "./models/UrlMapping";
import type { RenderTemplate, UrlMapping } from "./models/UrlMapping";
import { RendererComponent } from "./components";

@@ -42,3 +42,3 @@ import type { PageEvent } from "./events";

*/
abstract render(page: PageEvent<Reflection>): string;
abstract render(page: PageEvent<Reflection>, template: RenderTemplate<PageEvent<Reflection>>): string;
}
import { Theme } from "../../theme";
import type { Renderer } from "../../renderer";
import { Reflection, ProjectReflection, ContainerReflection, DeclarationReflection } from "../../../models";
import { UrlMapping } from "../../models/UrlMapping";
import { RenderTemplate, UrlMapping } from "../../models/UrlMapping";
import type { PageEvent } from "../../events";

@@ -16,7 +16,7 @@ import type { MarkedPlugin } from "../../plugins";

markedPlugin: MarkedPlugin;
private _renderContext?;
getRenderContext(): DefaultThemeRenderContext;
getRenderContext(pageEvent: PageEvent<Reflection>): DefaultThemeRenderContext;
reflectionTemplate: (pageEvent: PageEvent<ContainerReflection>) => JSX.Element;
indexTemplate: (pageEvent: PageEvent<ProjectReflection>) => JSX.Element;
defaultLayoutTemplate: (pageEvent: PageEvent<Reflection>) => JSX.Element;
defaultLayoutTemplate: (pageEvent: PageEvent<Reflection>, template: RenderTemplate<PageEvent<Reflection>>) => JSX.Element;
getReflectionClasses(reflection: DeclarationReflection): string;
/**

@@ -66,3 +66,3 @@ * Mappings of reflections kinds to templates used by this theme.

buildUrls(reflection: DeclarationReflection, urls: UrlMapping[]): UrlMapping[];
render(page: PageEvent<Reflection>): string;
render(page: PageEvent<Reflection>, template: RenderTemplate<PageEvent<Reflection>>): string;
/**

@@ -69,0 +69,0 @@ * Generate an anchor url for the given reflection and all of its children.

@@ -14,8 +14,9 @@ "use strict";

class DefaultTheme extends theme_1.Theme {
getRenderContext() {
if (!this._renderContext) {
this._renderContext = new DefaultThemeRenderContext_1.DefaultThemeRenderContext(this, this.application.options);
}
return this._renderContext;
getRenderContext(pageEvent) {
return new DefaultThemeRenderContext_1.DefaultThemeRenderContext(this, pageEvent, this.application.options);
}
getReflectionClasses(reflection) {
const filters = this.application.options.getValue("visibilityFilters");
return getReflectionClasses(reflection, filters);
}
/**

@@ -30,9 +31,9 @@ * Create a new DefaultTheme instance.

this.reflectionTemplate = (pageEvent) => {
return this.getRenderContext().reflectionTemplate(pageEvent);
return this.getRenderContext(pageEvent).reflectionTemplate(pageEvent);
};
this.indexTemplate = (pageEvent) => {
return this.getRenderContext().indexTemplate(pageEvent);
return this.getRenderContext(pageEvent).indexTemplate(pageEvent);
};
this.defaultLayoutTemplate = (pageEvent) => {
return this.getRenderContext().defaultLayout(pageEvent);
this.defaultLayoutTemplate = (pageEvent, template) => {
return this.getRenderContext(pageEvent).defaultLayout(template, pageEvent);
};

@@ -167,4 +168,4 @@ /**

}
render(page) {
const templateOutput = this.defaultLayoutTemplate(page);
render(page, template) {
const templateOutput = this.defaultLayoutTemplate(page, template);
return "<!DOCTYPE html>" + utils_1.JSX.renderElement(templateOutput);

@@ -199,1 +200,47 @@ }

}
function toStyleClass(str) {
return str.replace(/(\w)([A-Z])/g, (_m, m1, m2) => m1 + "-" + m2).toLowerCase();
}
function getReflectionClasses(reflection, filters) {
const classes = [];
classes.push(toStyleClass("tsd-kind-" + models_1.ReflectionKind[reflection.kind]));
if (reflection.parent && reflection.parent instanceof models_1.DeclarationReflection) {
classes.push(toStyleClass(`tsd-parent-kind-${models_1.ReflectionKind[reflection.parent.kind]}`));
}
// Filter classes should match up with the settings function in
// partials/navigation.tsx.
for (const key of Object.keys(filters)) {
if (key === "inherited") {
if (reflection.inheritedFrom) {
classes.push("tsd-is-inherited");
}
}
else if (key === "protected") {
if (reflection.flags.isProtected) {
classes.push("tsd-is-protected");
}
}
else if (key === "private") {
if (reflection.flags.isPrivate) {
classes.push("tsd-is-private");
}
}
else if (key === "external") {
if (reflection.flags.isExternal) {
classes.push("tsd-is-external");
}
}
else if (key.startsWith("@")) {
if (key === "@deprecated") {
if (reflection.isDeprecated()) {
classes.push(toStyleClass(`tsd-is-${key.substring(1)}`));
}
}
else if (reflection.comment?.hasModifier(key) ||
reflection.comment?.getTag(key)) {
classes.push(toStyleClass(`tsd-is-${key.substring(1)}`));
}
}
}
return classes.join(" ");
}

@@ -1,3 +0,3 @@

import type { RendererHooks } from "../..";
import { CommentDisplayPart, DeclarationReflection, ReferenceType, Reflection, ReflectionKind } from "../../../models";
import type { PageEvent, RendererHooks } from "../..";
import { CommentDisplayPart, DeclarationReflection, ReferenceType, Reflection } from "../../../models";
import type { NeverIfInternal, Options } from "../../../utils";

@@ -7,5 +7,6 @@ import type { DefaultTheme } from "./DefaultTheme";

private theme;
page: PageEvent<Reflection>;
options: Options;
constructor(theme: DefaultTheme, options: Options);
icons: Record<"search" | "anchor" | ReflectionKind | "checkbox" | "chevronDown" | "menu" | "chevronSmall", () => import("../../../utils/jsx.elements").JsxElement>;
constructor(theme: DefaultTheme, page: PageEvent<Reflection>, options: Options);
icons: Record<"search" | "anchor" | import("../../../models").ReflectionKind | "checkbox" | "chevronDown" | "menu" | "chevronSmall", () => import("../../../utils/jsx.elements").JsxElement>;
hook: (name: keyof RendererHooks) => import("../../../utils/jsx.elements").JsxElement[];

@@ -22,6 +23,6 @@ /** Avoid this in favor of urlTo if possible */

attemptExternalResolution: (type: NeverIfInternal<ReferenceType>) => string | undefined;
getReflectionClasses: (reflection: DeclarationReflection) => string;
reflectionTemplate: (props: import("../..").PageEvent<import("../../../models").ContainerReflection>) => import("../../../utils/jsx.elements").JsxElement;
indexTemplate: (props: import("../..").PageEvent<import("../../../models").ProjectReflection>) => import("../../../utils/jsx.elements").JsxElement;
defaultLayout: (props: import("../..").PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
getReflectionClasses: (refl: DeclarationReflection) => string;
reflectionTemplate: (props: PageEvent<import("../../../models").ContainerReflection>) => import("../../../utils/jsx.elements").JsxElement;
indexTemplate: (props: PageEvent<import("../../../models").ProjectReflection>) => import("../../../utils/jsx.elements").JsxElement;
defaultLayout: (template: import("../..").RenderTemplate<PageEvent<Reflection>>, props: PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
analytics: () => import("../../../utils/jsx.elements").JsxElement | undefined;

@@ -31,3 +32,3 @@ breadcrumb: (props: Reflection) => import("../../../utils/jsx.elements").JsxElement | undefined;

footer: () => import("../../../utils/jsx.elements").JsxElement | undefined;
header: (props: import("../..").PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
header: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
hierarchy: (props: import("../../../models").DeclarationHierarchy | undefined) => import("../../../utils/jsx.elements").JsxElement | undefined;

@@ -50,9 +51,10 @@ index: (props: import("../../../models").ContainerReflection) => import("../../../utils/jsx.elements").JsxElement;

membersGroup: (group: import("../../../models").ReflectionGroup) => import("../../../utils/jsx.elements").JsxElement;
navigation: (props: import("../..").PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
sidebar: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
pageSidebar: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
sidebarLinks: () => import("../../../utils/jsx.elements").JsxElement | null;
settings: () => import("../../../utils/jsx.elements").JsxElement;
primaryNavigation: (props: import("../..").PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
secondaryNavigation: (props: import("../..").PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement | undefined;
navigation: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
pageNavigation: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
parameter: (props: DeclarationReflection) => import("../../../utils/jsx.elements").JsxElement;
toolbar: (props: import("../..").PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
toolbar: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements").JsxElement;
type: (type: import("../../../models").Type | undefined) => import("../../../utils/jsx.elements").JsxElement;

@@ -59,0 +61,0 @@ typeAndParent: (props: import("../../../models").Type) => import("../../../utils/jsx.elements").JsxElement;

@@ -36,4 +36,5 @@ "use strict";

class DefaultThemeRenderContext {
constructor(theme, options) {
constructor(theme, page, options) {
this.theme = theme;
this.page = page;
this.icons = icon_1.icons;

@@ -54,5 +55,5 @@ this.hook = (name) => this.theme.owner.hooks.emit(name, this);

if (md instanceof Array) {
return this.theme.markedPlugin.parseMarkdown(models_1.Comment.displayPartsToMarkdown(md, this.urlTo));
return this.theme.markedPlugin.parseMarkdown(models_1.Comment.displayPartsToMarkdown(md, this.urlTo), this.page);
}
return md ? this.theme.markedPlugin.parseMarkdown(md) : "";
return md ? this.theme.markedPlugin.parseMarkdown(md, this.page) : "";
};

@@ -67,6 +68,3 @@ /**

};
this.getReflectionClasses = (reflection) => {
const filters = this.options.getValue("visibilityFilters");
return getReflectionClasses(reflection, filters);
};
this.getReflectionClasses = (refl) => this.theme.getReflectionClasses(refl);
this.reflectionTemplate = bind(reflection_1.reflectionTemplate, this);

@@ -92,7 +90,8 @@ this.indexTemplate = bind(templates_1.indexTemplate, this);

this.membersGroup = bind(members_group_1.membersGroup, this);
this.navigation = bind(navigation_1.navigation, this);
this.sidebar = bind(navigation_1.sidebar, this);
this.pageSidebar = bind(navigation_1.pageSidebar, this);
this.sidebarLinks = bind(navigation_1.sidebarLinks, this);
this.settings = bind(navigation_1.settings, this);
this.primaryNavigation = bind(navigation_1.primaryNavigation, this);
this.secondaryNavigation = bind(navigation_1.secondaryNavigation, this);
this.navigation = bind(navigation_1.navigation, this);
this.pageNavigation = bind(navigation_1.pageNavigation, this);
this.parameter = bind(parameter_1.parameter, this);

@@ -107,50 +106,1 @@ this.toolbar = bind(toolbar_1.toolbar, this);

exports.DefaultThemeRenderContext = DefaultThemeRenderContext;
function getReflectionClasses(reflection, filters) {
const classes = [];
classes.push(toStyleClass("tsd-kind-" + models_1.ReflectionKind[reflection.kind]));
if (reflection.parent &&
reflection.parent instanceof models_1.DeclarationReflection) {
classes.push(toStyleClass(`tsd-parent-kind-${models_1.ReflectionKind[reflection.parent.kind]}`));
}
// Filter classes should match up with the settings function in
// partials/navigation.tsx.
for (const key of Object.keys(filters)) {
if (key === "inherited") {
if (reflection.inheritedFrom) {
classes.push("tsd-is-inherited");
}
}
else if (key === "protected") {
if (reflection.flags.isProtected) {
classes.push("tsd-is-protected");
}
}
else if (key === "private") {
if (reflection.flags.isPrivate) {
classes.push("tsd-is-private");
}
}
else if (key === "external") {
if (reflection.flags.isExternal) {
classes.push("tsd-is-external");
}
}
else if (key.startsWith("@")) {
if (key === "@deprecated") {
if (reflection.isDeprecated()) {
classes.push(toStyleClass(`tsd-is-${key.substring(1)}`));
}
}
else if (reflection.comment?.hasModifier(key) ||
reflection.comment?.getTag(key)) {
classes.push(toStyleClass(`tsd-is-${key.substring(1)}`));
}
}
}
return classes.join(" ");
}
function toStyleClass(str) {
return str
.replace(/(\w)([A-Z])/g, (_m, m1, m2) => m1 + "-" + m2)
.toLowerCase();
}

@@ -0,1 +1,2 @@

import type { RenderTemplate } from "../../..";
import type { Reflection } from "../../../../models";

@@ -5,2 +6,2 @@ import { JSX } from "../../../../utils";

import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext";
export declare const defaultLayout: (context: DefaultThemeRenderContext, props: PageEvent<Reflection>) => JSX.Element;
export declare const defaultLayout: (context: DefaultThemeRenderContext, template: RenderTemplate<PageEvent<Reflection>>, props: PageEvent<Reflection>) => JSX.Element;

@@ -5,3 +5,4 @@ "use strict";

const utils_1 = require("../../../../utils");
const defaultLayout = (context, props) => (utils_1.JSX.createElement("html", { class: "default", lang: context.options.getValue("htmlLang") },
const lib_1 = require("../../lib");
const defaultLayout = (context, template, props) => (utils_1.JSX.createElement("html", { class: "default", lang: context.options.getValue("htmlLang") },
utils_1.JSX.createElement("head", null,

@@ -11,5 +12,5 @@ utils_1.JSX.createElement("meta", { charSet: "utf-8" }),

utils_1.JSX.createElement("meta", { "http-equiv": "x-ua-compatible", content: "IE=edge" }),
utils_1.JSX.createElement("title", null, props.model.name === props.project.name
? props.project.name
: `${props.model.name} | ${props.project.name}`),
utils_1.JSX.createElement("title", null, props.model.isProject()
? (0, lib_1.getDisplayName)(props.model)
: `${(0, lib_1.getDisplayName)(props.model)} | ${(0, lib_1.getDisplayName)(props.project)}`),
utils_1.JSX.createElement("meta", { name: "description", content: "Documentation for " + props.project.name }),

@@ -20,2 +21,3 @@ utils_1.JSX.createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1" }),

context.options.getValue("customCss") && (utils_1.JSX.createElement("link", { rel: "stylesheet", href: context.relativeURL("assets/custom.css", true) })),
utils_1.JSX.createElement("script", { defer: true, src: context.relativeURL("assets/main.js", true) }),
utils_1.JSX.createElement("script", { async: true, src: context.relativeURL("assets/search.js", true), id: "search-script" }),

@@ -29,16 +31,20 @@ context.hook("head.end")),

utils_1.JSX.createElement("div", { class: "container container-main" },
utils_1.JSX.createElement("div", { class: "col-4 col-menu menu-sticky-wrap menu-highlight" },
context.hook("navigation.begin"),
context.navigation(props),
context.hook("navigation.end")),
utils_1.JSX.createElement("div", { class: "col-8 col-content" },
utils_1.JSX.createElement("div", { class: "col-content" },
context.hook("content.begin"),
context.header(props),
props.template(props),
context.hook("content.end"))),
template(props),
context.hook("content.end")),
utils_1.JSX.createElement("div", { class: "col-sidebar" },
utils_1.JSX.createElement("div", { class: "page-menu" },
context.hook("pageSidebar.begin"),
context.pageSidebar(props),
context.hook("pageSidebar.end")),
utils_1.JSX.createElement("div", { class: "site-menu" },
context.hook("sidebar.begin"),
context.sidebar(props),
context.hook("sidebar.end")))),
context.footer(),
utils_1.JSX.createElement("div", { class: "overlay" }),
utils_1.JSX.createElement("script", { src: context.relativeURL("assets/main.js", true) }),
context.analytics(),
context.hook("body.end"))));
exports.defaultLayout = defaultLayout;

@@ -8,3 +8,3 @@ "use strict";

if (!hideGenerator)
return (utils_1.JSX.createElement("div", { class: "container tsd-generator" },
return (utils_1.JSX.createElement("div", { class: "tsd-generator" },
utils_1.JSX.createElement("p", null,

@@ -11,0 +11,0 @@ "Generated using ",

import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext";
import { JSX } from "../../../../utils";
import { DeclarationReflection } from "../../../../models";
export declare const member: (context: DefaultThemeRenderContext, props: DeclarationReflection) => JSX.Element;
export declare function member(context: DefaultThemeRenderContext, props: DeclarationReflection): JSX.Element;

@@ -8,16 +8,24 @@ "use strict";

const anchor_icon_1 = require("./anchor-icon");
const member = (context, props) => (utils_1.JSX.createElement("section", { class: (0, lib_1.classNames)({ "tsd-panel": true, "tsd-member": true }, context.getReflectionClasses(props)) },
utils_1.JSX.createElement("a", { id: props.anchor, class: "tsd-anchor" }),
!!props.name && (utils_1.JSX.createElement("h3", { class: "tsd-anchor-link" },
(0, lib_1.renderFlags)(props.flags, props.comment),
utils_1.JSX.createElement("span", { class: (0, lib_1.classNames)({ deprecated: props.isDeprecated() }) }, (0, lib_1.wbr)(props.name)),
(0, anchor_icon_1.anchorIcon)(context, props.anchor))),
props.signatures
? context.memberSignatures(props)
: props.hasGetterOrSetter()
? context.memberGetterSetter(props)
: props instanceof models_1.ReferenceReflection
? context.memberReference(props)
: context.memberDeclaration(props),
props.groups?.map((item) => item.children.map((item) => !item.hasOwnDocument && context.member(item)))));
function member(context, props) {
context.page.pageHeadings.push({
link: `#${props.anchor}`,
text: (0, lib_1.getDisplayName)(props),
kind: props.kind,
classes: context.getReflectionClasses(props),
});
return (utils_1.JSX.createElement("section", { class: (0, lib_1.classNames)({ "tsd-panel": true, "tsd-member": true }, context.getReflectionClasses(props)) },
utils_1.JSX.createElement("a", { id: props.anchor, class: "tsd-anchor" }),
!!props.name && (utils_1.JSX.createElement("h3", { class: "tsd-anchor-link" },
(0, lib_1.renderFlags)(props.flags, props.comment),
utils_1.JSX.createElement("span", { class: (0, lib_1.classNames)({ deprecated: props.isDeprecated() }) }, (0, lib_1.wbr)(props.name)),
(0, anchor_icon_1.anchorIcon)(context, props.anchor))),
props.signatures
? context.memberSignatures(props)
: props.hasGetterOrSetter()
? context.memberGetterSetter(props)
: props instanceof models_1.ReferenceReflection
? context.memberReference(props)
: context.memberDeclaration(props),
props.groups?.map((item) => item.children.map((item) => !item.hasOwnDocument && context.member(item)))));
}
exports.member = member;

@@ -9,6 +9,6 @@ "use strict";

utils_1.JSX.createElement("h2", null,
group.title,
!!item.title && utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
item.title,
" "),
group.title),
" - ",
item.title)),
item.children.map((item) => !item.hasOwnDocument && context.member(item)))))));

@@ -15,0 +15,0 @@ }

@@ -5,6 +5,7 @@ import { Reflection } from "../../../../models";

import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext";
export declare function navigation(context: DefaultThemeRenderContext, props: PageEvent<Reflection>): JSX.Element;
export declare function sidebar(context: DefaultThemeRenderContext, props: PageEvent<Reflection>): JSX.Element;
export declare function sidebarLinks(context: DefaultThemeRenderContext): JSX.Element | null;
export declare function settings(context: DefaultThemeRenderContext): JSX.Element;
export declare function primaryNavigation(context: DefaultThemeRenderContext, props: PageEvent<Reflection>): JSX.Element;
export declare function secondaryNavigation(context: DefaultThemeRenderContext, props: PageEvent<Reflection>): JSX.Element | undefined;
export declare function navigation(context: DefaultThemeRenderContext, props: PageEvent<Reflection>): JSX.Element;
export declare function pageSidebar(context: DefaultThemeRenderContext, props: PageEvent<Reflection>): JSX.Element;
export declare function pageNavigation(context: DefaultThemeRenderContext, props: PageEvent<Reflection>): JSX.Element;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.secondaryNavigation = exports.primaryNavigation = exports.settings = exports.sidebarLinks = exports.navigation = void 0;
exports.pageNavigation = exports.pageSidebar = exports.navigation = exports.settings = exports.sidebarLinks = exports.sidebar = void 0;
const models_1 = require("../../../../models");
const utils_1 = require("../../../../utils");
const lib_1 = require("../../lib");
function navigation(context, props) {
function sidebar(context, props) {
return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
context.sidebarLinks(),
context.settings(),
context.primaryNavigation(props),
context.secondaryNavigation(props)));
context.navigation(props)));
}
exports.navigation = navigation;
exports.sidebar = sidebar;
function buildFilterItem(context, name, displayName, defaultValue) {

@@ -53,3 +51,3 @@ return (utils_1.JSX.createElement("li", { class: "tsd-filter-item" },

context.icons.chevronDown(),
" Settings")),
"Settings")),
utils_1.JSX.createElement("div", { class: "tsd-accordion-details" },

@@ -68,77 +66,76 @@ visibilityOptions.length && (utils_1.JSX.createElement("div", { class: "tsd-filter-visibility" },

exports.settings = settings;
function primaryNavigation(context, props) {
function navigation(context, props) {
// Create the navigation for the current page
const modules = props.model.project.getChildrenByKind(models_1.ReflectionKind.SomeModule);
const [ext, int] = (0, utils_1.partition)(modules, (m) => m.flags.isExternal);
const selected = props.model.isProject();
const current = selected || int.some((mod) => inPath(mod, props.model));
return (utils_1.JSX.createElement("nav", { class: "tsd-navigation primary" },
utils_1.JSX.createElement("details", { class: "tsd-index-accordion", open: true },
// Recurse to children if the parent is some kind of module
return (utils_1.JSX.createElement("nav", { class: "tsd-navigation" },
link(props.project),
utils_1.JSX.createElement("ul", { class: "tsd-small-nested-navigation" }, props.project.children?.map((c) => (utils_1.JSX.createElement("li", null, links(c)))))));
function links(mod) {
const children = (mod.kindOf(models_1.ReflectionKind.SomeModule | models_1.ReflectionKind.Project) && mod.children) || [];
const nameClasses = (0, lib_1.classNames)({ deprecated: mod.isDeprecated() }, mod.isProject() ? void 0 : context.getReflectionClasses(mod));
if (!children.length) {
return link(mod, nameClasses);
}
return (utils_1.JSX.createElement("details", { class: (0, lib_1.classNames)({ "tsd-index-accordion": true }, nameClasses), open: inPath(mod), "data-key": mod.getFullName() },
utils_1.JSX.createElement("summary", { class: "tsd-accordion-summary" },
utils_1.JSX.createElement("h3", null,
context.icons.chevronDown(),
" Modules")),
context.icons.chevronDown(),
link(mod)),
utils_1.JSX.createElement("div", { class: "tsd-accordion-details" },
utils_1.JSX.createElement("ul", null,
utils_1.JSX.createElement("li", { class: (0, lib_1.classNames)({ current, selected }) },
utils_1.JSX.createElement("a", { href: context.urlTo(props.model.project) }, (0, lib_1.wbr)(props.project.name)),
utils_1.JSX.createElement("ul", null, int.map(link))),
ext.map(link))))));
function link(mod) {
const current = inPath(mod, props.model);
const selected = mod.name === props.model.name;
let childNav;
const childModules = mod.children?.filter((m) => m.kindOf(models_1.ReflectionKind.SomeModule));
if (childModules?.length) {
childNav = utils_1.JSX.createElement("ul", null, childModules.map(link));
}
return (utils_1.JSX.createElement("li", { class: (0, lib_1.classNames)({ current, selected, deprecated: mod.isDeprecated() }, context.getReflectionClasses(mod)) },
utils_1.JSX.createElement("a", { href: context.urlTo(mod) }, (0, lib_1.wbr)((0, lib_1.getDisplayName)(mod))),
childNav));
utils_1.JSX.createElement("ul", { class: "tsd-nested-navigation" }, children.map((c) => (utils_1.JSX.createElement("li", null, links(c))))))));
}
}
exports.primaryNavigation = primaryNavigation;
function secondaryNavigation(context, props) {
// Multiple entry points, and on main project page.
if (props.model.isProject() && props.model.getChildrenByKind(models_1.ReflectionKind.Module).length) {
return;
function link(child, nameClasses) {
return (utils_1.JSX.createElement("a", { href: context.urlTo(child), class: (0, lib_1.classNames)({ current: child === props.model }, nameClasses) },
context.icons[child.kind](),
utils_1.JSX.createElement("span", null, (0, lib_1.wbr)((0, lib_1.getDisplayName)(child)))));
}
const effectivePageParent = (props.model instanceof models_1.ContainerReflection && props.model.children?.length) || props.model.isProject()
? props.model
: props.model.parent;
const children = effectivePageParent.children || [];
const pageNavigation = children
.filter((child) => !child.kindOf(models_1.ReflectionKind.SomeModule))
.map((child) => {
return (utils_1.JSX.createElement("li", { class: (0, lib_1.classNames)({ deprecated: child.isDeprecated(), current: props.model === child }, context.getReflectionClasses(child)) },
utils_1.JSX.createElement("a", { href: context.urlTo(child), class: "tsd-index-link" },
context.icons[child.kind](),
utils_1.JSX.createElement("span", null, (0, lib_1.renderName)(child)))));
});
if (effectivePageParent.kindOf(models_1.ReflectionKind.SomeModule | models_1.ReflectionKind.Project)) {
return (utils_1.JSX.createElement("nav", { class: "tsd-navigation secondary menu-sticky" }, !!pageNavigation.length && utils_1.JSX.createElement("ul", null, pageNavigation)));
function inPath(mod) {
let iter = props.model;
do {
if (iter == mod)
return true;
iter = iter.parent;
} while (iter);
return false;
}
return (utils_1.JSX.createElement("nav", { class: "tsd-navigation secondary menu-sticky" },
utils_1.JSX.createElement("ul", null,
utils_1.JSX.createElement("li", { class: (0, lib_1.classNames)({
deprecated: effectivePageParent.isDeprecated(),
current: effectivePageParent === props.model,
}, effectivePageParent instanceof models_1.DeclarationReflection
? context.getReflectionClasses(effectivePageParent)
: "") },
utils_1.JSX.createElement("a", { href: context.urlTo(effectivePageParent), class: "tsd-index-link" },
context.icons[effectivePageParent.kind](),
utils_1.JSX.createElement("span", null, (0, lib_1.renderName)(effectivePageParent))),
!!pageNavigation.length && utils_1.JSX.createElement("ul", null, pageNavigation)))));
}
exports.secondaryNavigation = secondaryNavigation;
function inPath(thisPage, toCheck) {
while (toCheck) {
if (toCheck.isProject())
return false;
if (thisPage === toCheck)
return true;
toCheck = toCheck.parent;
exports.navigation = navigation;
function pageSidebar(context, props) {
return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null,
context.settings(),
context.pageNavigation(props)));
}
exports.pageSidebar = pageSidebar;
function pageNavigation(context, props) {
const levels = [[]];
function finalizeLevel() {
const built = (utils_1.JSX.createElement("ul", null, levels.pop().map((l) => (utils_1.JSX.createElement("li", null, l)))));
levels[levels.length - 1].push(built);
}
return false;
for (const heading of props.pageHeadings) {
const inferredLevel = heading.level ? heading.level + 1 : 1;
while (inferredLevel < levels.length) {
finalizeLevel();
}
if (inferredLevel > levels.length) {
// Lower level than before
levels.push([]);
}
levels[levels.length - 1].push(utils_1.JSX.createElement("a", { href: heading.link, class: heading.classes },
heading.kind && context.icons[heading.kind](),
utils_1.JSX.createElement("span", null, (0, lib_1.wbr)(heading.text))));
}
while (levels.length > 1) {
finalizeLevel();
}
if (!levels[0].length) {
return utils_1.JSX.createElement(utils_1.JSX.Fragment, null);
}
return (utils_1.JSX.createElement("details", { open: true, class: "tsd-index-accordion tsd-page-navigation" },
utils_1.JSX.createElement("summary", { class: "tsd-accordion-summary" },
utils_1.JSX.createElement("h3", null,
context.icons.chevronDown(),
"On This Page")),
utils_1.JSX.createElement("div", { class: "tsd-accordion-details" },
utils_1.JSX.createElement("ul", null, levels[0].map((l) => (utils_1.JSX.createElement("li", null, l)))))));
}
exports.pageNavigation = pageNavigation;

@@ -5,2 +5,3 @@ "use strict";

const utils_1 = require("../../../../utils");
const lib_1 = require("../../lib");
const toolbar = (context, props) => (utils_1.JSX.createElement("header", { class: "tsd-page-toolbar" },

@@ -17,5 +18,5 @@ utils_1.JSX.createElement("div", { class: "tsd-toolbar-contents container" },

utils_1.JSX.createElement("li", { class: "state failure" }, "The search index is not available")),
utils_1.JSX.createElement("a", { href: context.options.getValue("titleLink") || context.relativeURL("index.html"), class: "title" }, props.project.name)),
utils_1.JSX.createElement("a", { href: context.options.getValue("titleLink") || context.relativeURL("index.html"), class: "title" }, (0, lib_1.getDisplayName)(props.project))),
utils_1.JSX.createElement("div", { class: "table-cell", id: "tsd-widgets" },
utils_1.JSX.createElement("a", { href: "#", class: "tsd-widget tsd-toolbar-icon menu no-caption", "data-toggle": "menu", "aria-label": "Menu" }, context.icons.menu())))));
exports.toolbar = toolbar;
import { ContextAwareRendererComponent } from "../components";
import { RendererEvent, MarkdownEvent } from "../events";
import { RendererEvent, MarkdownEvent, PageEvent } from "../events";
import type { Theme } from "shiki";

@@ -49,3 +49,3 @@ /**

*/
parseMarkdown(text: string): string;
parseMarkdown(text: string, page: PageEvent<any>): string;
/**

@@ -52,0 +52,0 @@ * Triggered before the renderer starts rendering a project.

@@ -40,11 +40,2 @@ "use strict";

const highlighter_1 = require("../../utils/highlighter");
const customMarkedRenderer = new Marked.Renderer();
customMarkedRenderer.heading = (text, level, _, slugger) => {
const slug = slugger.slug(text);
return `
<a href="#${slug}" id="${slug}" style="color: inherit; text-decoration: none;">
<h${level}>${text}</h${level}>
</a>
`;
};
/**

@@ -102,3 +93,3 @@ * Implements markdown and relativeURL helpers for templates.

*/
parseMarkdown(text) {
parseMarkdown(text, page) {
if (this.includes) {

@@ -129,3 +120,3 @@ text = text.replace(this.includePattern, (_match, path) => {

}
const event = new events_1.MarkdownEvent(events_1.MarkdownEvent.PARSE, text, text);
const event = new events_1.MarkdownEvent(events_1.MarkdownEvent.PARSE, page, text, text);
this.owner.trigger(event);

@@ -175,3 +166,15 @@ return event.parsedText;

markedOptions.highlight ?? (markedOptions.highlight = (text, lang) => this.getHighlighted(text, lang));
markedOptions.renderer ?? (markedOptions.renderer = customMarkedRenderer);
if (!markedOptions.renderer) {
markedOptions.renderer = new Marked.Renderer();
markedOptions.renderer.heading = (text, level, _, slugger) => {
const slug = slugger.slug(text);
// Prefix the slug with an extra `$` to prevent conflicts with TypeDoc's anchors.
this.page.pageHeadings.push({
link: `#$${slug}`,
text,
level,
});
return `<a id="$${slug}" class="tsd-anchor"></a><h${level}><a href="#$${slug}" style="color:inherit;text-decoration:none">${text}</a></h${level}>`;
};
}
markedOptions.mangle ?? (markedOptions.mangle = false); // See https://github.com/TypeStrong/typedoc/issues/1395

@@ -178,0 +181,0 @@ return markedOptions;

@@ -29,2 +29,3 @@ /**

* @module
* @internal
*/

@@ -31,0 +32,0 @@ import type * as M from "../models";

@@ -30,3 +30,4 @@ "use strict";

* @module
* @internal
*/
Object.defineProperty(exports, "__esModule", { value: true });

@@ -18,3 +18,3 @@ import { EventDispatcher } from "../utils";

/**
* Only set after resolve.
* Only set when serializing.
*/

@@ -21,0 +21,0 @@ projectRoot: string;

@@ -10,3 +10,3 @@ import ts from "typescript";

/**
* The default behavior in v0.22-v0.23, expects all provided entry points as being part of a single program.
* The default behavior in v0.22+, expects all provided entry points as being part of a single program.
* Any directories included in the entry point list will result in `dir/index.([cm][tj]s|[tj]sx?)` being used.

@@ -21,4 +21,4 @@ */

/**
* Run TypeDoc in each directory passed as an entry point, and save the json result to `.typedoc/<project>`
* Once all have been saved, use the merge option to produce final output.
* Run TypeDoc in each directory passed as an entry point. Once all directories have been converted,
* use the merge option to produce final output.
*/

@@ -25,0 +25,0 @@ readonly Packages: "packages";

@@ -45,3 +45,3 @@ "use strict";

/**
* The default behavior in v0.22-v0.23, expects all provided entry points as being part of a single program.
* The default behavior in v0.22+, expects all provided entry points as being part of a single program.
* Any directories included in the entry point list will result in `dir/index.([cm][tj]s|[tj]sx?)` being used.

@@ -56,4 +56,4 @@ */

/**
* Run TypeDoc in each directory passed as an entry point, and save the json result to `.typedoc/<project>`
* Once all have been saved, use the merge option to produce final output.
* Run TypeDoc in each directory passed as an entry point. Once all directories have been converted,
* use the merge option to produce final output.
*/

@@ -320,3 +320,3 @@ Packages: "packages",

version: includeVersion
? packageJson["version"]
? packageJson["version"]?.replace(/^v/, "")
: void 0,

@@ -323,0 +323,0 @@ readmeFile: discoverReadmeFile(logger, Path.join(packageJsonPath, ".."), typedocPackageConfig?.readmeFile),

@@ -56,2 +56,6 @@ export declare function isFile(file: string): boolean;

} | undefined;
export declare function discoverInParentDirExactMatch<T extends {}>(name: string, dir: string, read: (content: string) => T | undefined): {
file: string;
content: T;
} | undefined;
export declare function discoverPackageJson(dir: string): {

@@ -65,1 +69,2 @@ file: string;

} | undefined;
export declare function findPackageForPath(sourcePath: string): string | undefined;

@@ -26,3 +26,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
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;
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;
const fs = __importStar(require("fs"));

@@ -291,4 +291,22 @@ const fs_1 = require("fs");

exports.discoverInParentDir = discoverInParentDir;
function discoverInParentDirExactMatch(name, dir, read) {
if (!isDir(dir))
return;
const reachedTopDirectory = (dirName) => dirName === (0, path_1.resolve)((0, path_1.join)(dirName, ".."));
while (!reachedTopDirectory(dir)) {
try {
const content = read(readFile((0, path_1.join)(dir, name)));
if (content != null) {
return { file: (0, path_1.join)(dir, name), content };
}
}
catch {
// Ignore, file didn't pass validation
}
dir = (0, path_1.resolve)((0, path_1.join)(dir, ".."));
}
}
exports.discoverInParentDirExactMatch = discoverInParentDirExactMatch;
function discoverPackageJson(dir) {
return discoverInParentDir("package.json", dir, (content) => {
return discoverInParentDirExactMatch("package.json", dir, (content) => {
const pkg = JSON.parse(content);

@@ -301,1 +319,16 @@ if ((0, validation_1.validate)({ name: String, version: (0, validation_1.optional)(String) }, pkg)) {

exports.discoverPackageJson = discoverPackageJson;
// dir -> package name according to package.json in this or some parent dir
const packageCache = new Map();
function findPackageForPath(sourcePath) {
const dir = (0, path_1.dirname)(sourcePath);
const cache = packageCache.get(dir);
if (cache) {
return cache;
}
const packageJson = discoverPackageJson(dir);
if (packageJson) {
packageCache.set(dir, packageJson.content.name);
return packageJson.content.name;
}
}
exports.findPackageForPath = findPackageForPath;

@@ -72,2 +72,3 @@ import type { Theme as ShikiTheme } from "shiki";

excludeProtected: boolean;
excludeReferences: boolean;
externalSymbolLinkMappings: ManuallyValidatedOption<Record<string, Record<string, string>>>;

@@ -74,0 +75,0 @@ media: string;

@@ -193,2 +193,4 @@ import type * as ts from "typescript";

*
* Note: This is a legacy experimental decorator, and will not work with TS 5.0 decorators
*
* @since v0.16.3

@@ -205,2 +207,5 @@ */

* Binds an option to the given property. Does not register the option.
*
* Note: This is a legacy experimental decorator, and will not work with TS 5.0 decorators
*
* @since v0.16.3

@@ -207,0 +212,0 @@ *

@@ -163,2 +163,7 @@ "use strict";

options.addDeclaration({
name: "excludeReferences",
help: "If a symbol is exported multiple times, ignore all but the first export.",
type: declaration_1.ParameterType.Boolean,
});
options.addDeclaration({
name: "externalSymbolLinkMappings",

@@ -165,0 +170,0 @@ help: "Define custom links for symbols not included in the documentation.",

{
"name": "typedoc",
"description": "Create api documentation for TypeScript projects.",
"version": "0.24.0-beta.7",
"version": "0.24.0-beta.8",
"homepage": "https://typedoc.org",

@@ -6,0 +6,0 @@ "exports": {

"use strict";
"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.
`,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$/,p=/^(.+?)([^s])s$/,f=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,w=/.$/,k=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),z=new RegExp("^"+s+i+"[^aeiouwxy]$"),H=/^(.+?[^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=p,d.test(c)?c=c.replace(d,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),d=f,x=S,d.test(c)){var L=d.exec(c);d=m,d.test(L[1])&&(d=w,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=k,O=_,D=z,x.test(c)?c=c+"e":O.test(c)?(d=w,c=c.replace(d,"")):D.test(c)&&(c=c+"e"))}if(d=H,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=w,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,p=void 0;v in r.output.edges?(p=r.output.edges[v],p.final=p.final||E):(p=new t.TokenSet,p.final=E,r.output.edges[v]=p),i.push({qNode:y,output:p,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 p=0;p<l.fields.length;p++){var f=l.fields[p];o[f]=t.Set.empty}break}for(var S=0;S<E.length;S++)for(var w=E[S],k=this.invertedIndex[w],_=k._index,p=0;p<l.fields.length;p++){var f=l.fields[p],z=k[f],H=Object.keys(z),q=w+"/"+f,$=new t.Set(H);if(l.presence==t.Query.presence.REQUIRED&&(m=m.union($),o[f]===void 0&&(o[f]=t.Set.complete)),l.presence==t.Query.presence.PROHIBITED){a[f]===void 0&&(a[f]=t.Set.empty),a[f]=a[f].union($);continue}if(i[f].upsert(_,l.boost,function(Ie,ke){return Ie+ke}),!s[q]){for(var V=0;V<H.length;V++){var W=H[V],P=new t.FieldRef(W,f),U=z[W],G;(G=r[P])===void 0?r[P]=new t.MatchData(w,f,U):G.add(w,f,U)}s[q]=!0}}}if(l.presence===t.Query.presence.REQUIRED)for(var p=0;p<l.fields.length;p++){var f=l.fields[p];o[f]=o[f].intersect(m)}}for(var N=t.Set.complete,M=t.Set.empty,u=0;u<this.fields.length;u++){var f=this.fields[u];o[f]&&(N=N.intersect(o[f])),a[f]&&(M=M.union(a[f]))}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(Se,Te){return Te.score-Se.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 p=0;p<i.length;p++)E[i[p]]=Object.create(null);this.invertedIndex[y]=E}this.invertedIndex[y][o][r]==null&&(this.invertedIndex[y][o][r]=Object.create(null));for(var f=0;f<this.metadataWhitelist.length;f++){var S=this.metadataWhitelist[f],w=y.metadata[S];this.invertedIndex[y][o][r][S]==null&&(this.invertedIndex[y][o][r][S]=[]),this.invertedIndex[y][o][r][S].push(w)}}}},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 p=m[E],f=h[p],S=this.invertedIndex[p]._index,w,k,_;i[p]===void 0?(w=t.idf(this.invertedIndex[p],this.documentCount),i[p]=w):w=i[p],k=w*((this._k1+1)*f)/(this._k1*(1-this._b+this._b*(u/this.averageFieldLength[a]))+f),k*=b,k*=y,_=Math.round(k*1e3)/1e3,l.insert(S,_)}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 B(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureFocusedElementVisible(){this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null);let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}};var I=class{constructor(e){this.el=e.el,this.app=e.app}};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 I{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()=>{clearTimeout(n),n=setTimeout(()=>t(),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(()=>{He(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"?pe(e,-1):s.key==="ArrowDown"?pe(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 Ae(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 He(t,e,n,r){if(Ae(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=fe(u.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(l+=` (score: ${s[o].score.toFixed(2)})`),u.parent&&(l=`<span class="parent">${fe(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 pe(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 fe(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",j="mouseup",Z={x:0,y:0},ge=!1,se=!1,Be=!1,A=!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&&(Be=!0,F="touchstart",ye="touchmove",j="touchend");document.addEventListener(F,t=>{se=!0,A=!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&&!A){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);A=Math.sqrt(n*n+r*r)>10}});document.addEventListener(j,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends I{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(j,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(j,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){A||(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(!A&&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 I{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; }
`}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),this.app.filterChanged(),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 I{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();B(X,".menu-highlight");B(K,"a[data-toggle]");B(te,".tsd-index-accordion");B(ee,".tsd-filter-item input[type=checkbox]");var we=document.getElementById("theme");we&&be(we);var je=new Y;Object.defineProperty(window,"app",{value:je});})();
"use strict";(()=>{var Se=Object.create;var re=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var ke=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var Pe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ie=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Te(e))!Qe.call(t,i)&&i!==r&&re(t,i,{get:()=>e[i],enumerable:!(n=we(e,i))||n.enumerable});return t};var Ce=(t,e,r)=>(r=t!=null?Se(ke(t)):{},Ie(e||!t||!t.__esModule?re(r,"default",{value:t,enumerable:!0}):r,t));var ae=Pe((se,oe)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i<n.length;i++){var s=n[i],o=e[s];if(Array.isArray(o)){r[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){r[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return r},t.FieldRef=function(e,r,n){this.docRef=e,this.fieldName=r,this._stringValue=n},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var r=e.indexOf(t.FieldRef.joiner);if(r===-1)throw"malformed field ref string";var n=e.slice(0,r),i=e.slice(r+1);return new t.FieldRef(i,n,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 r=0;r<this.length;r++)this.elements[e[r]]=!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 r,n,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(r=this,n=e):(r=e,n=this),i=Object.keys(r.elements);for(var o=0;o<i.length;o++){var a=i[o];a in n.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,r){var n=0;for(var i in e)i!="_index"&&(n+=Object.keys(e[i]).length);var s=(r-n+.5)/(n+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,r){this.str=e||"",this.metadata=r||{}},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(r){return r},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,r){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(r))});for(var n=e.toString().toLowerCase(),i=n.length,s=[],o=0,a=0;o<=i;o++){var l=n.charAt(o),u=o-a;if(l.match(t.tokenizer.separator)||o==i){if(u>0){var d=t.utils.clone(r)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(n.slice(a,o),d))}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,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n<r;n++){for(var i=this._stack[n],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var l=0;l<a.length;l++)s.push(a[l]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,r){var n=new t.Token(e,r);return this.run([n]).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 r=0,n=this.elements.length/2,i=n-r,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(r=s),o>e&&(n=s),o!=e);)i=n-r,s=r+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,r){this.upsert(e,r,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,r,n){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=n(this.elements[i+1],r):this.elements.splice(i,0,e,r)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,r=this.elements.length,n=1;n<r;n+=2){var i=this.elements[n];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var r=0,n=this.elements,i=e.elements,s=n.length,o=i.length,a=0,l=0,u=0,d=0;u<s&&d<o;)a=n[u],l=i[d],a<l?u+=2:a>l?d+=2:a==l&&(r+=n[u+1]*i[d+1],u+=2,d+=2);return r},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),r=1,n=0;r<this.elements.length;r+=2,n++)e[n]=this.elements[r];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"},r={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",s=n+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,l="^("+s+")?"+o+s+"("+o+")?$",u="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,m=new RegExp(a),y=new RegExp(u),b=new RegExp(l),g=new RegExp(d),E=/^(.+?)(ss|i)es$/,f=/^(.+?)([^s])s$/,p=/^(.+?)eed$/,w=/^(.+?)(ed|ing)$/,S=/.$/,k=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),B=new RegExp("^"+s+i+"[^aeiouwxy]$"),A=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,q=/^(.+?)(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)$/,$=/^(.+?)(s|t)(ion)$/,I=/^(.+?)e$/,z=/ll$/,W=new RegExp("^"+s+i+"[^aeiouwxy]$"),H=function(c){var v,C,T,h,x,O,F;if(c.length<3)return c;if(T=c.substr(0,1),T=="y"&&(c=T.toUpperCase()+c.substr(1)),h=E,x=f,h.test(c)?c=c.replace(h,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),h=p,x=w,h.test(c)){var L=h.exec(c);h=m,h.test(L[1])&&(h=S,c=c.replace(h,""))}else if(x.test(c)){var L=x.exec(c);v=L[1],x=g,x.test(v)&&(c=v,x=k,O=_,F=B,x.test(c)?c=c+"e":O.test(c)?(h=S,c=c.replace(h,"")):F.test(c)&&(c=c+"e"))}if(h=A,h.test(c)){var L=h.exec(c);v=L[1],c=v+"i"}if(h=j,h.test(c)){var L=h.exec(c);v=L[1],C=L[2],h=m,h.test(v)&&(c=v+e[C])}if(h=q,h.test(c)){var L=h.exec(c);v=L[1],C=L[2],h=m,h.test(v)&&(c=v+r[C])}if(h=V,x=$,h.test(c)){var L=h.exec(c);v=L[1],h=y,h.test(v)&&(c=v)}else if(x.test(c)){var L=x.exec(c);v=L[1]+L[2],x=y,x.test(v)&&(c=v)}if(h=I,h.test(c)){var L=h.exec(c);v=L[1],h=y,x=b,O=W,(h.test(v)||x.test(v)&&!O.test(v))&&(c=v)}return h=z,x=y,h.test(c)&&x.test(c)&&(h=S,c=c.replace(h,"")),T=="y"&&(c=T.toLowerCase()+c.substr(1)),c};return function(R){return R.update(H)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var r=e.reduce(function(n,i){return n[i]=i,n},{});return function(n){if(n&&r[n.toString()]!==n.toString())return n}},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(r){return r.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 r=new t.TokenSet.Builder,n=0,i=e.length;n<i;n++)r.insert(e[n]);return r.finish(),r.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,r){for(var n=new t.TokenSet,i=[{node:n,editsRemaining:r,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 l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,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 u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),y;m in s.node.edges?y=s.node.edges[m]:(y=new t.TokenSet,s.node.edges[m]=y),s.str.length==1&&(y.final=!0),i.push({node:y,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")r.edges[o]=r,r.final=a;else{var l=new t.TokenSet;l.final=a,r.edges[o]=l,r=l}}return n},t.TokenSet.prototype.toArray=function(){for(var e=[],r=[{prefix:"",node:this}];r.length;){var n=r.pop(),i=Object.keys(n.node.edges),s=i.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var o=0;o<s;o++){var a=i[o];r.push({prefix:n.prefix.concat(a),node:n.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",r=Object.keys(this.edges).sort(),n=r.length,i=0;i<n;i++){var s=r[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var r=new t.TokenSet,n=void 0,i=[{qNode:e,output:r,node:this}];i.length;){n=i.pop();for(var s=Object.keys(n.qNode.edges),o=s.length,a=Object.keys(n.node.edges),l=a.length,u=0;u<o;u++)for(var d=s[u],m=0;m<l;m++){var y=a[m];if(y==d||d=="*"){var b=n.node.edges[y],g=n.qNode.edges[d],E=b.final&&g.final,f=void 0;y in n.output.edges?(f=n.output.edges[y],f.final=f.final||E):(f=new t.TokenSet,f.final=E,n.output.edges[y]=f),i.push({qNode:g,output:f,node:b})}}}return r},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var r,n=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++)n++;this.minimize(n),this.uncheckedNodes.length==0?r=this.root:r=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=n;i<e.length;i++){var s=new t.TokenSet,o=e[i];r.edges[o]=s,this.uncheckedNodes.push({parent:r,char:o,child:s}),r=s}r.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var r=this.uncheckedNodes.length-1;r>=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.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(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)i[this.fields[l]]=new t.Vector;e.call(r,r);for(var l=0;l<r.clauses.length;l++){var u=r.clauses[l],d=null,m=t.Set.empty;u.usePipeline?d=this.pipeline.runString(u.term,{fields:u.fields}):d=[u.term];for(var y=0;y<d.length;y++){var b=d[y];u.term=b;var g=t.TokenSet.fromClause(u),E=this.tokenSet.intersect(g).toArray();if(E.length===0&&u.presence===t.Query.presence.REQUIRED){for(var f=0;f<u.fields.length;f++){var p=u.fields[f];o[p]=t.Set.empty}break}for(var w=0;w<E.length;w++)for(var S=E[w],k=this.invertedIndex[S],_=k._index,f=0;f<u.fields.length;f++){var p=u.fields[f],B=k[p],A=Object.keys(B),j=S+"/"+p,q=new t.Set(A);if(u.presence==t.Query.presence.REQUIRED&&(m=m.union(q),o[p]===void 0&&(o[p]=t.Set.complete)),u.presence==t.Query.presence.PROHIBITED){a[p]===void 0&&(a[p]=t.Set.empty),a[p]=a[p].union(q);continue}if(i[p].upsert(_,u.boost,function(Ee,be){return Ee+be}),!s[j]){for(var V=0;V<A.length;V++){var $=A[V],I=new t.FieldRef($,p),z=B[$],W;(W=n[I])===void 0?n[I]=new t.MatchData(S,p,z):W.add(S,p,z)}s[j]=!0}}}if(u.presence===t.Query.presence.REQUIRED)for(var f=0;f<u.fields.length;f++){var p=u.fields[f];o[p]=o[p].intersect(m)}}for(var H=t.Set.complete,R=t.Set.empty,l=0;l<this.fields.length;l++){var p=this.fields[l];o[p]&&(H=H.intersect(o[p])),a[p]&&(R=R.union(a[p]))}var c=Object.keys(n),v=[],C=Object.create(null);if(r.isNegated()){c=Object.keys(this.fieldVectors);for(var l=0;l<c.length;l++){var I=c[l],T=t.FieldRef.fromString(I);n[I]=new t.MatchData}}for(var l=0;l<c.length;l++){var T=t.FieldRef.fromString(c[l]),h=T.docRef;if(H.contains(h)&&!R.contains(h)){var x=this.fieldVectors[T],O=i[T.fieldName].similarity(x),F;if((F=C[h])!==void 0)F.score+=O,F.matchData.combine(n[T]);else{var L={ref:h,score:O,matchData:n[T]};C[h]=L,v.push(L)}}}return v.sort(function(xe,Le){return Le.score-xe.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(n){return[n,this.invertedIndex[n]]},this),r=Object.keys(this.fieldVectors).map(function(n){return[n,this.fieldVectors[n].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:r,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var r={},n={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,l=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 u=0;u<i.length;u++){var d=i[u],m=d[0],y=d[1];n[m]=new t.Vector(y)}for(var u=0;u<o.length;u++){var d=o[u],b=d[0],g=d[1];a.insert(b),s[b]=g}return a.finish(),r.fields=e.fields,r.fieldVectors=n,r.invertedIndex=s,r.tokenSet=a.root,r.pipeline=l,new t.Index(r)};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,r){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=r||{}},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,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,l=a?a(e):e[o],u=this.tokenizer(l,{fields:[o]}),d=this.pipeline.run(u),m=new t.FieldRef(n,o),y=Object.create(null);this.fieldTermFrequencies[m]=y,this.fieldLengths[m]=0,this.fieldLengths[m]+=d.length;for(var b=0;b<d.length;b++){var g=d[b];if(y[g]==null&&(y[g]=0),y[g]+=1,this.invertedIndex[g]==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[g]=E}this.invertedIndex[g][o][n]==null&&(this.invertedIndex[g][o][n]=Object.create(null));for(var p=0;p<this.metadataWhitelist.length;p++){var w=this.metadataWhitelist[p],S=g.metadata[w];this.invertedIndex[g][o][n][w]==null&&(this.invertedIndex[g][o][n][w]=[]),this.invertedIndex[g][o][n][w].push(S)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),r=e.length,n={},i={},s=0;s<r;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,n[a]||(n[a]=0),n[a]+=this.fieldLengths[o]}for(var l=Object.keys(this._fields),s=0;s<l.length;s++){var u=l[s];n[u]=n[u]/i[u]}this.averageFieldLength=n},t.Builder.prototype.createFieldVectors=function(){for(var e={},r=Object.keys(this.fieldTermFrequencies),n=r.length,i=Object.create(null),s=0;s<n;s++){for(var o=t.FieldRef.fromString(r[s]),a=o.fieldName,l=this.fieldLengths[o],u=new t.Vector,d=this.fieldTermFrequencies[o],m=Object.keys(d),y=m.length,b=this._fields[a].boost||1,g=this._documents[o.docRef].boost||1,E=0;E<y;E++){var f=m[E],p=d[f],w=this.invertedIndex[f]._index,S,k,_;i[f]===void 0?(S=t.idf(this.invertedIndex[f],this.documentCount),i[f]=S):S=i[f],k=S*((this._k1+1)*p)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+p),k*=b,k*=g,_=Math.round(k*1e3)/1e3,u.insert(w,_)}e[o]=u}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 r=Array.prototype.slice.call(arguments,1);r.unshift(this),e.apply(this,r)},t.MatchData=function(e,r,n){for(var i=Object.create(null),s=Object.keys(n||{}),o=0;o<s.length;o++){var a=s[o];i[a]=n[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][r]=i)},t.MatchData.prototype.combine=function(e){for(var r=Object.keys(e.metadata),n=0;n<r.length;n++){var i=r[n],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],l=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var u=0;u<l.length;u++){var d=l[u];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,r,n){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][r]=n;return}if(!(r in this.metadata[e])){this.metadata[e][r]=n;return}for(var i=Object.keys(n),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][r]?this.metadata[e][r][o]=this.metadata[e][r][o].concat(n[o]):this.metadata[e][r][o]=n[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,r){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(r))},this),this;var n=r||{};return n.term=e.toString(),this.clause(n),this},t.QueryParseError=function(e,r,n){this.name="QueryParseError",this.message=e,this.start=r,this.end=n},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=[],r=this.start,n=this.pos,i=0;i<this.escapeCharPositions.length;i++)n=this.escapeCharPositions[i],e.push(this.str.slice(r,n)),r=n+1;return e.push(this.str.slice(r,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,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<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 r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,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 r=e.peekLexeme();if(r!=null)switch(r.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 n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.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 r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.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 '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;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 r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;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,r){typeof define=="function"&&define.amd?define(r):typeof se=="object"?oe.exports=r():e.lunr=r()}(this,function(){return t})})()});var ne=[];function G(t,e){ne.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureActivePageVisible(),this.ensureFocusedElementVisible(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){ne.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n,app:this}),n.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),r=e?.parentElement;for(;r&&!r.classList.contains(".tsd-navigation");)r instanceof HTMLDetailsElement&&e?.parentElement?.parentElement!==r&&(r.open=!0),r=r.parentElement;if(e){let n=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=n}}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let r=e.parentElement;for(;r&&r.tagName!=="SECTION";)r=r.parentElement;if(r&&r.offsetParent==null){this.alwaysVisibleMember=r,r.classList.add("always-visible");let n=document.createElement("p");n.classList.add("warning"),n.textContent="This member is normally hidden due to your filter settings.",r.prepend(n)}}};var ie=(t,e=100)=>{let r;return()=>{clearTimeout(r),r=setTimeout(()=>t(),e)}};var ce=Ce(ae());function de(){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 r=document.querySelector("#tsd-search input"),n=document.querySelector("#tsd-search .results");if(!r||!n)throw new Error("The input field or the result list wrapper was not found");let i=!1;n.addEventListener("mousedown",()=>i=!0),n.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Oe(t,n,r,s)}function Oe(t,e,r,n){r.addEventListener("input",ie(()=>{Re(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Fe(e,r):s.key=="Escape"?r.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),r.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!r.matches(":focus")&&s.key==="/"&&(r.focus(),s.preventDefault())})}function _e(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=ce.Index.load(window.searchData.index))}function Re(t,e,r,n){if(_e(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=i?n.index.search(`*${i}*`):[];for(let o=0;o<s.length;o++){let a=s[o],l=n.data.rows[Number(a.ref)],u=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(u*=1+1/(1+Math.abs(l.name.length-i.length))),a.score*=u}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let l=n.data.rows[Number(s[o].ref)],u=le(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(u+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(u=`<span class="parent">${le(l.parent,i)}.</span>${u}`);let d=document.createElement("li");d.classList.value=l.classes??"";let m=document.createElement("a");m.href=n.base+l.url,m.innerHTML=u,d.append(m),e.appendChild(d)}}function ue(t,e){let r=t.querySelector(".current");if(!r)r=t.querySelector(e==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let n=r;if(e===1)do n=n.nextElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);else do n=n.previousElementSibling??void 0;while(n instanceof HTMLElement&&n.offsetParent==null);n&&(r.classList.remove("current"),n.classList.add("current"))}}function Fe(t,e){let r=t.querySelector(".current");if(r||(r=t.querySelector("li:first-child")),r){let n=r.querySelector("a");n&&(window.location.href=n.href),e.blur()}}function le(t,e){if(e==="")return t;let r=t.toLocaleLowerCase(),n=e.toLocaleLowerCase(),i=[],s=0,o=r.indexOf(n);for(;o!=-1;)i.push(K(t.substring(s,o)),`<b>${K(t.substring(o,o+n.length))}</b>`),s=o+n.length,o=r.indexOf(n,s);return i.push(K(t.substring(s))),i.join("")}var Me={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function K(t){return t.replace(/[&<>"'"]/g,e=>Me[e])}var P=class{constructor(e){this.el=e.el,this.app=e.app}};var M="mousedown",fe="mousemove",N="mouseup",J={x:0,y:0},he=!1,ee=!1,De=!1,D=!1,pe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(pe?"is-mobile":"not-mobile");pe&&"ontouchstart"in document.documentElement&&(De=!0,M="touchstart",fe="touchmove",N="touchend");document.addEventListener(M,t=>{ee=!0,D=!1;let e=M=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=M=="touchstart"?t.targetTouches[0]:t,r=J.x-(e.pageX||0),n=J.y-(e.pageY||0);D=Math.sqrt(r*r+n*n)>10}});document.addEventListener(N,()=>{ee=!1});document.addEventListener("click",t=>{he&&(t.preventDefault(),t.stopImmediatePropagation(),he=!1)});var X=class extends P{constructor(r){super(r);this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(M,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(r){if(this.active==r)return;this.active=r,document.documentElement.classList.toggle("has-"+this.className,r),this.el.classList.toggle("active",r);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(r){D||(this.setActive(!0),r.preventDefault())}onDocumentPointerDown(r){if(this.active){if(r.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(r){if(!D&&this.active&&r.target.closest(".col-sidebar")){let n=r.target.closest("a");if(n){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),n.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var me=document.head.appendChild(document.createElement("style"));me.dataset.for="filters";var Y=class extends P{constructor(r){super(r);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),me.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
`}fromLocalStorage(){let r=Q.getItem(this.key);return r?r==="true":this.el.checked}setLocalStorage(r){Q.setItem(this.key,r.toString()),this.value=r,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let n=Array.from(r.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);r.style.display=n?"none":"block"})}};var Z=class extends P{constructor(r){super(r);this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update()),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ve(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}de();G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var ge=document.getElementById("theme");ge&&ve(ge);var Ae=new U;Object.defineProperty(window,"app",{value:Ae});})();
/*! Bundled license information:

@@ -6,0 +6,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc