typedoc
Advanced tools
Comparing version 0.24.0-beta.1 to 0.24.0-beta.2
@@ -6,3 +6,3 @@ export { Application } from "./lib/application"; | ||
export * from "./lib/models"; | ||
export { Converter, Context, type CommentParserConfig, type DeclarationReference, type SymbolReference, type ComponentPath, type Meaning, type MeaningKeyword, } from "./lib/converter"; | ||
export { Converter, Context, type CommentParserConfig, type DeclarationReference, type SymbolReference, type ComponentPath, type Meaning, type MeaningKeyword, type ExternalResolveResult, type ExternalSymbolResolver, } from "./lib/converter"; | ||
export { Renderer, DefaultTheme, DefaultThemeRenderContext, UrlMapping, Theme, PageEvent, RendererEvent, MarkdownEvent, IndexEvent, } from "./lib/output"; | ||
@@ -14,3 +14,3 @@ export type { RenderTemplate, RendererHooks } from "./lib/output"; | ||
export { JSONOutput, Serializer, Deserializer, type Deserializable, type DeserializerComponent, type SerializerComponent, SerializeEvent, } from "./lib/serialization"; | ||
import * as TypeScript from "typescript"; | ||
import TypeScript from "typescript"; | ||
export { TypeScript }; |
@@ -13,16 +13,7 @@ "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 __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
@@ -74,3 +65,3 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||
Object.defineProperty(exports, "SerializeEvent", { enumerable: true, get: function () { return serialization_1.SerializeEvent; } }); | ||
const TypeScript = __importStar(require("typescript")); | ||
exports.TypeScript = TypeScript; | ||
const typescript_1 = __importDefault(require("typescript")); | ||
exports.TypeScript = typescript_1.default; |
export declare const ApplicationEvents: { | ||
BOOTSTRAP_END: string; | ||
REVIVE: string; | ||
VALIDATE_PROJECT: string; | ||
}; |
@@ -7,2 +7,3 @@ "use strict"; | ||
REVIVE: "reviveProject", | ||
VALIDATE_PROJECT: "validateProject", | ||
}; |
@@ -62,8 +62,12 @@ import { Converter } from "./converter/index"; | ||
* Emitted after a project has been deserialized from JSON. | ||
* The listener will be given an instance of {@link ProjectReflection}. | ||
*/ | ||
static readonly EVENT_PROJECT_REVIVE: string; | ||
/** | ||
* Emitted when validation is being run. | ||
* The listener will be given an instance of {@link ProjectReflection}. | ||
*/ | ||
static readonly EVENT_VALIDATE_PROJECT: string; | ||
/** | ||
* Create a new TypeDoc application instance. | ||
* | ||
* @param options An object containing the options that should be used. | ||
*/ | ||
@@ -70,0 +74,0 @@ constructor(); |
@@ -31,2 +31,5 @@ "use strict"; | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
var Application_1; | ||
@@ -36,3 +39,3 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||
const Path = __importStar(require("path")); | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const index_1 = require("./converter/index"); | ||
@@ -77,4 +80,2 @@ const renderer_1 = require("./output/renderer"); | ||
* Create a new TypeDoc application instance. | ||
* | ||
* @param options An object containing the options that should be used. | ||
*/ | ||
@@ -141,3 +142,3 @@ constructor() { | ||
getTypeScriptVersion() { | ||
return ts.version; | ||
return typescript_1.default.version; | ||
} | ||
@@ -168,3 +169,3 @@ /** | ||
} | ||
if (!supportedVersionMajorMinor.some((version) => version == ts.versionMajorMinor)) { | ||
if (!supportedVersionMajorMinor.some((version) => version == typescript_1.default.versionMajorMinor)) { | ||
this.logger.warn(`You are running with an unsupported TypeScript version! If TypeDoc crashes, this is why. TypeDoc supports ${supportedVersionMajorMinor.join(", ")}`); | ||
@@ -180,3 +181,3 @@ } | ||
if (this.skipErrorChecking === false) { | ||
const errors = programs.flatMap((program) => ts.getPreEmitDiagnostics(program)); | ||
const errors = programs.flatMap((program) => typescript_1.default.getPreEmitDiagnostics(program)); | ||
if (errors.length) { | ||
@@ -202,6 +203,6 @@ this.logger.diagnostics(errors); | ||
this.logger instanceof index_2.ConsoleLogger) { | ||
ts.sys.clearScreen?.(); | ||
typescript_1.default.sys.clearScreen?.(); | ||
} | ||
this.logger.verbose(`Using TypeScript ${this.getTypeScriptVersion()} from ${this.getTypeScriptPath()}`); | ||
if (!supportedVersionMajorMinor.some((version) => version == ts.versionMajorMinor)) { | ||
if (!supportedVersionMajorMinor.some((version) => version == typescript_1.default.versionMajorMinor)) { | ||
this.logger.warn(`You are running with an unsupported TypeScript version! TypeDoc supports ${supportedVersionMajorMinor.join(", ")}`); | ||
@@ -229,3 +230,3 @@ } | ||
let firstStatusReport = true; | ||
const host = ts.createWatchCompilerHost(tsconfigFile, {}, ts.sys, ts.createEmitAndSemanticDiagnosticsBuilderProgram, (diagnostic) => this.logger.diagnostic(diagnostic), (status, newLine, _options, errorCount) => { | ||
const host = typescript_1.default.createWatchCompilerHost(tsconfigFile, {}, typescript_1.default.sys, typescript_1.default.createEmitAndSemanticDiagnosticsBuilderProgram, (diagnostic) => this.logger.diagnostic(diagnostic), (status, newLine, _options, errorCount) => { | ||
if (!firstStatusReport && | ||
@@ -235,6 +236,6 @@ errorCount === void 0 && | ||
this.logger instanceof index_2.ConsoleLogger) { | ||
ts.sys.clearScreen?.(); | ||
typescript_1.default.sys.clearScreen?.(); | ||
} | ||
firstStatusReport = false; | ||
this.logger.info(ts.flattenDiagnosticMessageText(status.messageText, newLine)); | ||
this.logger.info(typescript_1.default.flattenDiagnosticMessageText(status.messageText, newLine)); | ||
}); | ||
@@ -276,3 +277,3 @@ let successFinished = true; | ||
host.afterProgramCreate = (program) => { | ||
if (ts.getPreEmitDiagnostics(program.getProgram()).length === 0) { | ||
if (typescript_1.default.getPreEmitDiagnostics(program.getProgram()).length === 0) { | ||
currentProgram = program.getProgram(); | ||
@@ -283,3 +284,3 @@ runSuccess(); | ||
}; | ||
ts.createWatchProgram(host); | ||
typescript_1.default.createWatchProgram(host); | ||
} | ||
@@ -301,2 +302,3 @@ validate(project) { | ||
} | ||
this.trigger(Application_1.EVENT_VALIDATE_PROJECT, project); | ||
this.logger.verbose(`Validation took ${Date.now() - start}ms`); | ||
@@ -419,4 +421,10 @@ } | ||
* Emitted after a project has been deserialized from JSON. | ||
* The listener will be given an instance of {@link ProjectReflection}. | ||
*/ | ||
Application.EVENT_PROJECT_REVIVE = application_events_1.ApplicationEvents.REVIVE; | ||
/** | ||
* Emitted when validation is being run. | ||
* The listener will be given an instance of {@link ProjectReflection}. | ||
*/ | ||
Application.EVENT_VALIDATE_PROJECT = application_events_1.ApplicationEvents.VALIDATE_PROJECT; | ||
__decorate([ | ||
@@ -423,0 +431,0 @@ (0, utils_1.BindOption)("skipErrorChecking") |
@@ -9,3 +9,3 @@ /** | ||
export declare const MeaningKeywords: readonly ["class", "interface", "type", "enum", "namespace", "function", "var", "constructor", "member", "event", "call", "new", "index", "complex", "getter", "setter"]; | ||
export type MeaningKeyword = typeof MeaningKeywords[number]; | ||
export type MeaningKeyword = (typeof MeaningKeywords)[number]; | ||
export interface DeclarationReference { | ||
@@ -12,0 +12,0 @@ resolutionStart: "global" | "local"; |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import { ReflectionKind } from "../../models"; | ||
@@ -3,0 +3,0 @@ import { Logger } from "../../utils"; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.discoverSignatureComment = exports.discoverComment = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const models_1 = require("../../models"); | ||
@@ -37,74 +17,74 @@ const utils_1 = require("../../utils"); | ||
const wantedKinds = { | ||
[models_1.ReflectionKind.Project]: [ts.SyntaxKind.SourceFile], | ||
[models_1.ReflectionKind.Module]: [ts.SyntaxKind.SourceFile], | ||
[models_1.ReflectionKind.Project]: [typescript_1.default.SyntaxKind.SourceFile], | ||
[models_1.ReflectionKind.Module]: [typescript_1.default.SyntaxKind.SourceFile], | ||
[models_1.ReflectionKind.Namespace]: [ | ||
ts.SyntaxKind.ModuleDeclaration, | ||
ts.SyntaxKind.SourceFile, | ||
ts.SyntaxKind.BindingElement, | ||
ts.SyntaxKind.ExportSpecifier, | ||
ts.SyntaxKind.NamespaceExport, | ||
typescript_1.default.SyntaxKind.ModuleDeclaration, | ||
typescript_1.default.SyntaxKind.SourceFile, | ||
typescript_1.default.SyntaxKind.BindingElement, | ||
typescript_1.default.SyntaxKind.ExportSpecifier, | ||
typescript_1.default.SyntaxKind.NamespaceExport, | ||
], | ||
[models_1.ReflectionKind.Enum]: [ | ||
ts.SyntaxKind.EnumDeclaration, | ||
ts.SyntaxKind.VariableDeclaration, | ||
typescript_1.default.SyntaxKind.EnumDeclaration, | ||
typescript_1.default.SyntaxKind.VariableDeclaration, | ||
], | ||
[models_1.ReflectionKind.EnumMember]: [ | ||
ts.SyntaxKind.EnumMember, | ||
typescript_1.default.SyntaxKind.EnumMember, | ||
// These here so that @enum gets comments | ||
ts.SyntaxKind.PropertyAssignment, | ||
ts.SyntaxKind.PropertySignature, | ||
typescript_1.default.SyntaxKind.PropertyAssignment, | ||
typescript_1.default.SyntaxKind.PropertySignature, | ||
], | ||
[models_1.ReflectionKind.Variable]: [ | ||
ts.SyntaxKind.VariableDeclaration, | ||
ts.SyntaxKind.BindingElement, | ||
ts.SyntaxKind.ExportAssignment, | ||
ts.SyntaxKind.PropertyAccessExpression, | ||
typescript_1.default.SyntaxKind.VariableDeclaration, | ||
typescript_1.default.SyntaxKind.BindingElement, | ||
typescript_1.default.SyntaxKind.ExportAssignment, | ||
typescript_1.default.SyntaxKind.PropertyAccessExpression, | ||
], | ||
[models_1.ReflectionKind.Function]: [ | ||
ts.SyntaxKind.FunctionDeclaration, | ||
ts.SyntaxKind.BindingElement, | ||
ts.SyntaxKind.VariableDeclaration, | ||
ts.SyntaxKind.ExportAssignment, | ||
ts.SyntaxKind.PropertyAccessExpression, | ||
typescript_1.default.SyntaxKind.FunctionDeclaration, | ||
typescript_1.default.SyntaxKind.BindingElement, | ||
typescript_1.default.SyntaxKind.VariableDeclaration, | ||
typescript_1.default.SyntaxKind.ExportAssignment, | ||
typescript_1.default.SyntaxKind.PropertyAccessExpression, | ||
], | ||
[models_1.ReflectionKind.Class]: [ | ||
ts.SyntaxKind.ClassDeclaration, | ||
ts.SyntaxKind.BindingElement, | ||
typescript_1.default.SyntaxKind.ClassDeclaration, | ||
typescript_1.default.SyntaxKind.BindingElement, | ||
], | ||
[models_1.ReflectionKind.Interface]: [ts.SyntaxKind.InterfaceDeclaration], | ||
[models_1.ReflectionKind.Constructor]: [ts.SyntaxKind.Constructor], | ||
[models_1.ReflectionKind.Interface]: [typescript_1.default.SyntaxKind.InterfaceDeclaration], | ||
[models_1.ReflectionKind.Constructor]: [typescript_1.default.SyntaxKind.Constructor], | ||
[models_1.ReflectionKind.Property]: [ | ||
ts.SyntaxKind.PropertyDeclaration, | ||
ts.SyntaxKind.PropertySignature, | ||
ts.SyntaxKind.BinaryExpression, | ||
ts.SyntaxKind.PropertyAssignment, | ||
typescript_1.default.SyntaxKind.PropertyDeclaration, | ||
typescript_1.default.SyntaxKind.PropertySignature, | ||
typescript_1.default.SyntaxKind.BinaryExpression, | ||
typescript_1.default.SyntaxKind.PropertyAssignment, | ||
// class X { constructor(/** Comment */ readonly z: string) } | ||
ts.SyntaxKind.Parameter, | ||
typescript_1.default.SyntaxKind.Parameter, | ||
], | ||
[models_1.ReflectionKind.Method]: [ | ||
ts.SyntaxKind.FunctionDeclaration, | ||
ts.SyntaxKind.MethodDeclaration, | ||
typescript_1.default.SyntaxKind.FunctionDeclaration, | ||
typescript_1.default.SyntaxKind.MethodDeclaration, | ||
], | ||
[models_1.ReflectionKind.CallSignature]: [ | ||
ts.SyntaxKind.FunctionDeclaration, | ||
ts.SyntaxKind.VariableDeclaration, | ||
ts.SyntaxKind.MethodDeclaration, | ||
ts.SyntaxKind.MethodDeclaration, | ||
ts.SyntaxKind.PropertyDeclaration, | ||
ts.SyntaxKind.PropertySignature, | ||
ts.SyntaxKind.CallSignature, | ||
typescript_1.default.SyntaxKind.FunctionDeclaration, | ||
typescript_1.default.SyntaxKind.VariableDeclaration, | ||
typescript_1.default.SyntaxKind.MethodDeclaration, | ||
typescript_1.default.SyntaxKind.MethodDeclaration, | ||
typescript_1.default.SyntaxKind.PropertyDeclaration, | ||
typescript_1.default.SyntaxKind.PropertySignature, | ||
typescript_1.default.SyntaxKind.CallSignature, | ||
], | ||
[models_1.ReflectionKind.IndexSignature]: [ts.SyntaxKind.IndexSignature], | ||
[models_1.ReflectionKind.ConstructorSignature]: [ts.SyntaxKind.ConstructSignature], | ||
[models_1.ReflectionKind.Parameter]: [ts.SyntaxKind.Parameter], | ||
[models_1.ReflectionKind.TypeLiteral]: [ts.SyntaxKind.TypeLiteral], | ||
[models_1.ReflectionKind.TypeParameter]: [ts.SyntaxKind.TypeParameter], | ||
[models_1.ReflectionKind.Accessor]: [ts.SyntaxKind.PropertyDeclaration], | ||
[models_1.ReflectionKind.GetSignature]: [ts.SyntaxKind.GetAccessor], | ||
[models_1.ReflectionKind.SetSignature]: [ts.SyntaxKind.SetAccessor], | ||
[models_1.ReflectionKind.ObjectLiteral]: [ts.SyntaxKind.ObjectLiteralExpression], | ||
[models_1.ReflectionKind.TypeAlias]: [ts.SyntaxKind.TypeAliasDeclaration], | ||
[models_1.ReflectionKind.IndexSignature]: [typescript_1.default.SyntaxKind.IndexSignature], | ||
[models_1.ReflectionKind.ConstructorSignature]: [typescript_1.default.SyntaxKind.ConstructSignature], | ||
[models_1.ReflectionKind.Parameter]: [typescript_1.default.SyntaxKind.Parameter], | ||
[models_1.ReflectionKind.TypeLiteral]: [typescript_1.default.SyntaxKind.TypeLiteral], | ||
[models_1.ReflectionKind.TypeParameter]: [typescript_1.default.SyntaxKind.TypeParameter], | ||
[models_1.ReflectionKind.Accessor]: [typescript_1.default.SyntaxKind.PropertyDeclaration], | ||
[models_1.ReflectionKind.GetSignature]: [typescript_1.default.SyntaxKind.GetAccessor], | ||
[models_1.ReflectionKind.SetSignature]: [typescript_1.default.SyntaxKind.SetAccessor], | ||
[models_1.ReflectionKind.ObjectLiteral]: [typescript_1.default.SyntaxKind.ObjectLiteralExpression], | ||
[models_1.ReflectionKind.TypeAlias]: [typescript_1.default.SyntaxKind.TypeAliasDeclaration], | ||
[models_1.ReflectionKind.Reference]: [ | ||
ts.SyntaxKind.NamespaceExport, | ||
ts.SyntaxKind.ExportSpecifier, | ||
typescript_1.default.SyntaxKind.NamespaceExport, | ||
typescript_1.default.SyntaxKind.ExportSpecifier, | ||
], | ||
@@ -115,3 +95,3 @@ }; | ||
// not the last one, since that will apply to the import or declaration. | ||
const reverse = !symbol.declarations?.some(ts.isSourceFile); | ||
const reverse = !symbol.declarations?.some(typescript_1.default.isSourceFile); | ||
const discovered = []; | ||
@@ -132,5 +112,5 @@ for (const decl of symbol.declarations || []) { | ||
[ | ||
ts.SyntaxKind.FunctionDeclaration, | ||
ts.SyntaxKind.MethodDeclaration, | ||
ts.SyntaxKind.Constructor, | ||
typescript_1.default.SyntaxKind.FunctionDeclaration, | ||
typescript_1.default.SyntaxKind.MethodDeclaration, | ||
typescript_1.default.SyntaxKind.Constructor, | ||
].includes(node.kind) && | ||
@@ -140,3 +120,3 @@ !node.body) { | ||
} | ||
const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos)); | ||
const comments = collectCommentRanges(typescript_1.default.getLeadingCommentRanges(text, node.pos)); | ||
if (reverse) { | ||
@@ -160,3 +140,3 @@ comments.reverse(); | ||
const path = (0, paths_1.nicePath)(sf.fileName); | ||
const line = ts.getLineAndCharacterOfPosition(sf, pos).line + 1; | ||
const line = typescript_1.default.getLineAndCharacterOfPosition(sf, pos).line + 1; | ||
return `${path}:${line}`; | ||
@@ -176,3 +156,3 @@ }); | ||
const text = node.getSourceFile().text; | ||
const comments = collectCommentRanges(ts.getLeadingCommentRanges(text, node.pos)); | ||
const comments = collectCommentRanges(typescript_1.default.getLeadingCommentRanges(text, node.pos)); | ||
comments.reverse(); | ||
@@ -199,3 +179,3 @@ const comment = comments.find((ranges) => permittedRange(text, ranges, commentStyle)); | ||
function isTopmostModuleDeclaration(node) { | ||
return node.getChildren().some(ts.isModuleBlock); | ||
return node.getChildren().some(typescript_1.default.isModuleBlock); | ||
} | ||
@@ -214,3 +194,3 @@ /** | ||
while (node.parent && | ||
node.parent.kind === ts.SyntaxKind.ModuleDeclaration) { | ||
node.parent.kind === typescript_1.default.SyntaxKind.ModuleDeclaration) { | ||
const parent = node.parent; | ||
@@ -231,3 +211,3 @@ if (node.name.pos === parent.name.end + 1) { | ||
// ^^^ | ||
if (node.parent.kind === ts.SyntaxKind.VariableDeclarationList) { | ||
if (node.parent.kind === typescript_1.default.SyntaxKind.VariableDeclarationList) { | ||
return node.parent.parent; | ||
@@ -237,3 +217,3 @@ } | ||
// ^^^^^^^^ | ||
if (node.parent.kind === ts.SyntaxKind.VariableDeclaration) { | ||
if (node.parent.kind === typescript_1.default.SyntaxKind.VariableDeclaration) { | ||
return node.parent.parent.parent; | ||
@@ -249,9 +229,9 @@ } | ||
if ([ | ||
ts.SyntaxKind.PropertyDeclaration, | ||
ts.SyntaxKind.BinaryExpression, | ||
ts.SyntaxKind.ExportAssignment, | ||
typescript_1.default.SyntaxKind.PropertyDeclaration, | ||
typescript_1.default.SyntaxKind.BinaryExpression, | ||
typescript_1.default.SyntaxKind.ExportAssignment, | ||
].includes(node.parent.kind)) { | ||
return node.parent; | ||
} | ||
if (ts.isModuleDeclaration(node)) { | ||
if (typescript_1.default.isModuleDeclaration(node)) { | ||
if (!isTopmostModuleDeclaration(node)) { | ||
@@ -264,6 +244,6 @@ return; | ||
} | ||
if (node.kind === ts.SyntaxKind.ExportSpecifier) { | ||
if (node.kind === typescript_1.default.SyntaxKind.ExportSpecifier) { | ||
return node.parent.parent; | ||
} | ||
if ([ts.SyntaxKind.NamespaceExport, ts.SyntaxKind.FunctionType].includes(node.kind)) { | ||
if ([typescript_1.default.SyntaxKind.NamespaceExport, typescript_1.default.SyntaxKind.FunctionType].includes(node.kind)) { | ||
return node.parent; | ||
@@ -283,3 +263,3 @@ } | ||
switch (range.kind) { | ||
case ts.SyntaxKind.MultiLineCommentTrivia: | ||
case typescript_1.default.SyntaxKind.MultiLineCommentTrivia: | ||
if (collect.length) { | ||
@@ -291,3 +271,3 @@ result.push(collect); | ||
break; | ||
case ts.SyntaxKind.SingleLineCommentTrivia: | ||
case typescript_1.default.SyntaxKind.SingleLineCommentTrivia: | ||
collect.push(range); | ||
@@ -310,7 +290,7 @@ break; | ||
case declaration_1.CommentStyle.Block: | ||
return ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia; | ||
return ranges[0].kind === typescript_1.default.SyntaxKind.MultiLineCommentTrivia; | ||
case declaration_1.CommentStyle.Line: | ||
return ranges[0].kind === ts.SyntaxKind.SingleLineCommentTrivia; | ||
return ranges[0].kind === typescript_1.default.SyntaxKind.SingleLineCommentTrivia; | ||
case declaration_1.CommentStyle.JSDoc: | ||
return (ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia && | ||
return (ranges[0].kind === typescript_1.default.SyntaxKind.MultiLineCommentTrivia && | ||
text[ranges[0].pos] === "/" && | ||
@@ -317,0 +297,0 @@ text[ranges[0].pos + 1] === "*" && |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import { Comment, ReflectionKind } from "../../models"; | ||
@@ -3,0 +3,0 @@ import { Logger } from "../../utils"; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getJsDocComment = exports.getSignatureComment = exports.getComment = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const models_1 = require("../../models"); | ||
@@ -35,7 +15,7 @@ const utils_1 = require("../../utils"); | ||
const jsDocCommentKinds = [ | ||
ts.SyntaxKind.JSDocPropertyTag, | ||
ts.SyntaxKind.JSDocCallbackTag, | ||
ts.SyntaxKind.JSDocTypedefTag, | ||
ts.SyntaxKind.JSDocTemplateTag, | ||
ts.SyntaxKind.JSDocEnumTag, | ||
typescript_1.default.SyntaxKind.JSDocPropertyTag, | ||
typescript_1.default.SyntaxKind.JSDocCallbackTag, | ||
typescript_1.default.SyntaxKind.JSDocTypedefTag, | ||
typescript_1.default.SyntaxKind.JSDocTemplateTag, | ||
typescript_1.default.SyntaxKind.JSDocEnumTag, | ||
]; | ||
@@ -53,6 +33,6 @@ const commentCache = new WeakMap(); | ||
switch (ranges[0].kind) { | ||
case ts.SyntaxKind.MultiLineCommentTrivia: | ||
case typescript_1.default.SyntaxKind.MultiLineCommentTrivia: | ||
comment = (0, parser_1.parseComment)((0, blockLexer_1.lexBlockComment)(file.text, ranges[0].pos, ranges[0].end), config, file, logger); | ||
break; | ||
case ts.SyntaxKind.SingleLineCommentTrivia: | ||
case typescript_1.default.SyntaxKind.SingleLineCommentTrivia: | ||
comment = (0, parser_1.parseComment)((0, lineLexer_1.lexLineComments)(file.text, ranges), config, file, logger); | ||
@@ -87,8 +67,8 @@ break; | ||
function getComment(symbol, kind, config, logger, commentStyle) { | ||
if (symbol | ||
.getDeclarations() | ||
?.every((d) => jsDocCommentKinds.includes(d.kind))) { | ||
return getJsDocComment(symbol.declarations[0], config, logger); | ||
const declarations = symbol.declarations || []; | ||
if (declarations.length && | ||
declarations.every((d) => jsDocCommentKinds.includes(d.kind))) { | ||
return getJsDocComment(declarations[0], config, logger); | ||
} | ||
const comment = getCommentImpl((0, discovery_1.discoverComment)(symbol, kind, logger, commentStyle), config, logger, symbol.declarations?.some(ts.isSourceFile) || false); | ||
const comment = getCommentImpl((0, discovery_1.discoverComment)(symbol, kind, logger, commentStyle), config, logger, declarations.some(typescript_1.default.isSourceFile)); | ||
if (!comment && kind === models_1.ReflectionKind.Property) { | ||
@@ -101,3 +81,3 @@ return getConstructorParamPropertyComment(symbol, config, logger, commentStyle); | ||
function getConstructorParamPropertyComment(symbol, config, logger, commentStyle) { | ||
const decl = symbol.declarations?.find(ts.isParameter); | ||
const decl = symbol.declarations?.find(typescript_1.default.isParameter); | ||
if (!decl) | ||
@@ -120,3 +100,3 @@ return; | ||
let parent = declaration.parent; | ||
while (!ts.isJSDoc(parent)) { | ||
while (!typescript_1.default.isJSDoc(parent)) { | ||
parent = parent.parent; | ||
@@ -129,3 +109,3 @@ } | ||
{ | ||
kind: ts.SyntaxKind.MultiLineCommentTrivia, | ||
kind: typescript_1.default.SyntaxKind.MultiLineCommentTrivia, | ||
pos: parent.pos, | ||
@@ -137,6 +117,6 @@ end: parent.end, | ||
// And pull out the tag we actually care about. | ||
if (ts.isJSDocEnumTag(declaration)) { | ||
if (typescript_1.default.isJSDocEnumTag(declaration)) { | ||
return new models_1.Comment(comment.getTag("@enum")?.content); | ||
} | ||
if (ts.isJSDocTemplateTag(declaration) && | ||
if (typescript_1.default.isJSDocTemplateTag(declaration) && | ||
declaration.comment && | ||
@@ -151,3 +131,3 @@ declaration.typeParameters.length > 1) { | ||
let name; | ||
if (ts.isJSDocTemplateTag(declaration)) { | ||
if (typescript_1.default.isJSDocTemplateTag(declaration)) { | ||
// This isn't really ideal. | ||
@@ -154,0 +134,0 @@ name = declaration.typeParameters[0].name.text; |
import { Comment, CommentDisplayPart, Reflection } from "../../models"; | ||
import { DeclarationReference } from "./declarationReference"; | ||
export declare function resolveLinks(comment: Comment, reflection: Reflection, attemptExternalResolve: (ref: DeclarationReference) => string | undefined): void; | ||
export declare function resolvePartLinks(reflection: Reflection, parts: readonly CommentDisplayPart[], attemptExternalResolve: (ref: DeclarationReference) => string | undefined): CommentDisplayPart[]; | ||
export type ExternalResolveResult = { | ||
target: string; | ||
caption?: string; | ||
}; | ||
export type ExternalSymbolResolver = (ref: DeclarationReference, refl: Reflection, part: Readonly<CommentDisplayPart> | undefined) => ExternalResolveResult | string | undefined; | ||
export declare function resolveLinks(comment: Comment, reflection: Reflection, externalResolver: ExternalSymbolResolver): void; | ||
export declare function resolvePartLinks(reflection: Reflection, parts: readonly CommentDisplayPart[], externalResolver: ExternalSymbolResolver): CommentDisplayPart[]; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.resolvePartLinks = exports.resolveLinks = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const models_1 = require("../../models"); | ||
@@ -32,17 +12,17 @@ const declarationReference_1 = require("./declarationReference"); | ||
const urlPrefix = /^(http|ftp)s?:\/\//; | ||
function resolveLinks(comment, reflection, attemptExternalResolve) { | ||
comment.summary = resolvePartLinks(reflection, comment.summary, attemptExternalResolve); | ||
function resolveLinks(comment, reflection, externalResolver) { | ||
comment.summary = resolvePartLinks(reflection, comment.summary, externalResolver); | ||
for (const tag of comment.blockTags) { | ||
tag.content = resolvePartLinks(reflection, tag.content, attemptExternalResolve); | ||
tag.content = resolvePartLinks(reflection, tag.content, externalResolver); | ||
} | ||
if (reflection instanceof models_1.DeclarationReflection && reflection.readme) { | ||
reflection.readme = resolvePartLinks(reflection, reflection.readme, attemptExternalResolve); | ||
reflection.readme = resolvePartLinks(reflection, reflection.readme, externalResolver); | ||
} | ||
} | ||
exports.resolveLinks = resolveLinks; | ||
function resolvePartLinks(reflection, parts, attemptExternalResolve) { | ||
return parts.flatMap((part) => processPart(reflection, part, attemptExternalResolve)); | ||
function resolvePartLinks(reflection, parts, externalResolver) { | ||
return parts.flatMap((part) => processPart(reflection, part, externalResolver)); | ||
} | ||
exports.resolvePartLinks = resolvePartLinks; | ||
function processPart(reflection, part, attemptExternalResolve) { | ||
function processPart(reflection, part, externalResolver) { | ||
if (part.kind === "inline-tag") { | ||
@@ -52,3 +32,3 @@ if (part.tag === "@link" || | ||
part.tag === "@linkplain") { | ||
return resolveLinkTag(reflection, part, attemptExternalResolve); | ||
return resolveLinkTag(reflection, part, externalResolver); | ||
} | ||
@@ -58,6 +38,6 @@ } | ||
} | ||
function resolveLinkTag(reflection, part, attemptExternalResolve) { | ||
function resolveLinkTag(reflection, part, externalResolver) { | ||
let pos = 0; | ||
const end = part.text.length; | ||
while (pos < end && ts.isWhiteSpaceLike(part.text.charCodeAt(pos))) { | ||
while (pos < end && typescript_1.default.isWhiteSpaceLike(part.text.charCodeAt(pos))) { | ||
pos++; | ||
@@ -68,3 +48,3 @@ } | ||
let target; | ||
let defaultDisplayText; | ||
let defaultDisplayText = ""; | ||
if (declRef) { | ||
@@ -79,5 +59,12 @@ // Got one, great! Try to resolve the link | ||
// If we didn't find a link, it might be a @link tag to an external symbol, check that next. | ||
target = attemptExternalResolve(declRef[0]); | ||
if (target) { | ||
defaultDisplayText = part.text.substring(0, pos); | ||
const externalResolveResult = externalResolver(declRef[0], reflection, part); | ||
defaultDisplayText = part.text.substring(0, pos); | ||
switch (typeof externalResolveResult) { | ||
case "string": | ||
target = externalResolveResult; | ||
break; | ||
case "object": | ||
target = externalResolveResult.target; | ||
defaultDisplayText = | ||
externalResolveResult.caption || defaultDisplayText; | ||
} | ||
@@ -97,3 +84,3 @@ } | ||
// until that's consumed. | ||
while (pos < end && ts.isWhiteSpaceLike(part.text.charCodeAt(pos))) { | ||
while (pos < end && typescript_1.default.isWhiteSpaceLike(part.text.charCodeAt(pos))) { | ||
pos++; | ||
@@ -108,4 +95,5 @@ } | ||
part.target = target; | ||
part.text = part.text.substring(pos).trim() || defaultDisplayText; | ||
part.text = | ||
part.text.substring(pos).trim() || defaultDisplayText || part.text; | ||
return part; | ||
} |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import { Reflection, ProjectReflection, DeclarationReflection, ReflectionKind } from "../models/index"; | ||
@@ -3,0 +3,0 @@ import type { Converter } from "./converter"; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
@@ -28,3 +8,3 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||
const assert_1 = require("assert"); | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const index_1 = require("../models/index"); | ||
@@ -124,4 +104,4 @@ const nodes_1 = require("./utils/nodes"); | ||
if (!symbol) { | ||
const { line } = ts.getLineAndCharacterOfPosition(node.getSourceFile(), node.pos); | ||
throw new Error(`Expected a symbol for node with kind ${ts.SyntaxKind[node.kind]} at ${node.getSourceFile().fileName}:${line + 1}`); | ||
const { line } = typescript_1.default.getLineAndCharacterOfPosition(node.getSourceFile(), node.pos); | ||
throw new Error(`Expected a symbol for node with kind ${typescript_1.default.SyntaxKind[node.kind]} at ${node.getSourceFile().fileName}:${line + 1}`); | ||
} | ||
@@ -128,0 +108,0 @@ return symbol; |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
/** | ||
@@ -3,0 +3,0 @@ * Return the default value of the given node. |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.convertExpression = exports.convertDefaultValue = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
/** | ||
@@ -46,16 +26,16 @@ * Return the default value of the given node. | ||
switch (expression.kind) { | ||
case ts.SyntaxKind.StringLiteral: | ||
case ts.SyntaxKind.TrueKeyword: | ||
case ts.SyntaxKind.FalseKeyword: | ||
case ts.SyntaxKind.NullKeyword: | ||
case ts.SyntaxKind.NumericLiteral: | ||
case ts.SyntaxKind.PrefixUnaryExpression: | ||
case ts.SyntaxKind.Identifier: | ||
case typescript_1.default.SyntaxKind.StringLiteral: | ||
case typescript_1.default.SyntaxKind.TrueKeyword: | ||
case typescript_1.default.SyntaxKind.FalseKeyword: | ||
case typescript_1.default.SyntaxKind.NullKeyword: | ||
case typescript_1.default.SyntaxKind.NumericLiteral: | ||
case typescript_1.default.SyntaxKind.PrefixUnaryExpression: | ||
case typescript_1.default.SyntaxKind.Identifier: | ||
return expression.getText(); | ||
} | ||
if (ts.isArrayLiteralExpression(expression) && | ||
if (typescript_1.default.isArrayLiteralExpression(expression) && | ||
expression.elements.length === 0) { | ||
return "[]"; | ||
} | ||
if (ts.isObjectLiteralExpression(expression) && | ||
if (typescript_1.default.isObjectLiteralExpression(expression) && | ||
expression.properties.length === 0) { | ||
@@ -65,10 +45,10 @@ return "{}"; | ||
// a.b.c.d | ||
if (ts.isPropertyAccessExpression(expression)) { | ||
if (typescript_1.default.isPropertyAccessExpression(expression)) { | ||
const parts = [expression.name.getText()]; | ||
let iter = expression.expression; | ||
while (ts.isPropertyAccessExpression(iter)) { | ||
while (typescript_1.default.isPropertyAccessExpression(iter)) { | ||
parts.unshift(iter.name.getText()); | ||
iter = iter.expression; | ||
} | ||
if (ts.isIdentifier(iter)) { | ||
if (typescript_1.default.isIdentifier(iter)) { | ||
parts.unshift(iter.text); | ||
@@ -75,0 +55,0 @@ return parts.join("."); |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import type { Application } from "../application"; | ||
@@ -11,2 +11,3 @@ import { Comment, CommentDisplayPart, ProjectReflection, Reflection, SomeType } from "../models/index"; | ||
import type { CommentStyle, ValidationOptions } from "../utils/options/declaration"; | ||
import { ExternalSymbolResolver, ExternalResolveResult } from "./comments/linkResolver"; | ||
import type { DeclarationReference } from "./comments/declarationReference"; | ||
@@ -132,8 +133,9 @@ /** | ||
* reference passed will have the `moduleSource` set and the `symbolReference` will navigate via `.`) | ||
* and user defined \{\@link\} tags which cannot be resolved. | ||
* and user defined \{\@link\} tags which cannot be resolved. If the link being resolved is inferred | ||
* from a type, then no `part` will be passed to the resolver function. | ||
* @since 0.22.14 | ||
*/ | ||
addUnknownSymbolResolver(resolver: (ref: DeclarationReference) => string | undefined): void; | ||
addUnknownSymbolResolver(resolver: ExternalSymbolResolver): void; | ||
/** @internal */ | ||
resolveExternalLink(ref: DeclarationReference): string | undefined; | ||
resolveExternalLink(ref: DeclarationReference, refl: Reflection, part?: CommentDisplayPart): ExternalResolveResult | string | undefined; | ||
resolveLinks(comment: Comment, owner: Reflection): void; | ||
@@ -140,0 +142,0 @@ resolveLinks(parts: readonly CommentDisplayPart[], owner: Reflection): CommentDisplayPart[]; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
@@ -24,8 +8,4 @@ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; | ||
}; | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
@@ -35,3 +15,3 @@ var Converter_1; | ||
exports.Converter = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const index_1 = require("../models/index"); | ||
@@ -131,3 +111,4 @@ const context_1 = require("./context"); | ||
* reference passed will have the `moduleSource` set and the `symbolReference` will navigate via `.`) | ||
* and user defined \{\@link\} tags which cannot be resolved. | ||
* and user defined \{\@link\} tags which cannot be resolved. If the link being resolved is inferred | ||
* from a type, then no `part` will be passed to the resolver function. | ||
* @since 0.22.14 | ||
@@ -139,5 +120,5 @@ */ | ||
/** @internal */ | ||
resolveExternalLink(ref) { | ||
resolveExternalLink(ref, refl, part) { | ||
for (const resolver of this._externalSymbolResolvers) { | ||
const resolved = resolver(ref); | ||
const resolved = resolver(ref, refl, part); | ||
if (resolved) | ||
@@ -149,6 +130,6 @@ return resolved; | ||
if (comment instanceof index_1.Comment) { | ||
(0, linkResolver_1.resolveLinks)(comment, owner, (ref) => this.resolveExternalLink(ref)); | ||
(0, linkResolver_1.resolveLinks)(comment, owner, (ref, part, refl) => this.resolveExternalLink(ref, part, refl)); | ||
} | ||
else { | ||
return (0, linkResolver_1.resolvePartLinks)(owner, comment, (ref) => this.resolveExternalLink(ref)); | ||
return (0, linkResolver_1.resolvePartLinks)(owner, comment, (ref, part, refl) => this.resolveExternalLink(ref, part, refl)); | ||
} | ||
@@ -379,3 +360,3 @@ } | ||
const globalSymbols = context.checker | ||
.getSymbolsInScope(node, ts.SymbolFlags.ModuleMember) | ||
.getSymbolsInScope(node, typescript_1.default.SymbolFlags.ModuleMember) | ||
.filter((s) => s.getDeclarations()?.some((d) => d.getSourceFile() === sourceFile)); | ||
@@ -387,4 +368,4 @@ // Detect declaration files with declare module "foo" as their only export | ||
.getDeclarations() | ||
?.every((declaration) => ts.isModuleDeclaration(declaration) && | ||
ts.isStringLiteral(declaration.name))) { | ||
?.every((declaration) => typescript_1.default.isModuleDeclaration(declaration) && | ||
typescript_1.default.isStringLiteral(declaration.name))) { | ||
return globalSymbols[0]; | ||
@@ -404,3 +385,3 @@ } | ||
.getExportsOfModule(symbol) | ||
.filter((s) => !(0, enum_1.hasAnyFlag)(s.flags, ts.SymbolFlags.Prototype | ts.SymbolFlags.Value))); | ||
.filter((s) => !(0, enum_1.hasAnyFlag)(s.flags, typescript_1.default.SymbolFlags.Prototype | typescript_1.default.SymbolFlags.Value))); | ||
} | ||
@@ -410,6 +391,6 @@ else if (symbol) { | ||
.getExportsOfModule(symbol) | ||
.filter((s) => !(0, enum_1.hasAllFlags)(s.flags, ts.SymbolFlags.Prototype)); | ||
.filter((s) => !(0, enum_1.hasAllFlags)(s.flags, typescript_1.default.SymbolFlags.Prototype)); | ||
if (result.length === 0) { | ||
const globalDecl = node.statements.find((s) => ts.isModuleDeclaration(s) && | ||
s.flags & ts.NodeFlags.GlobalAugmentation); | ||
const globalDecl = node.statements.find((s) => typescript_1.default.isModuleDeclaration(s) && | ||
s.flags & typescript_1.default.NodeFlags.GlobalAugmentation); | ||
if (globalDecl) { | ||
@@ -429,3 +410,3 @@ const globalSymbol = context.getSymbolAtLocation(globalDecl); | ||
result = context.checker | ||
.getSymbolsInScope(node, ts.SymbolFlags.ModuleMember) | ||
.getSymbolsInScope(node, typescript_1.default.SymbolFlags.ModuleMember) | ||
.filter((s) => s | ||
@@ -432,0 +413,0 @@ .getDeclarations() |
@@ -1,3 +0,3 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import type { Context } from "../context"; | ||
export declare function convertIndexSignature(context: Context, symbol: ts.Symbol): void; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
@@ -31,3 +8,3 @@ return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
const assert_1 = __importDefault(require("assert")); | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const models_1 = require("../../models"); | ||
@@ -43,5 +20,5 @@ const converter_events_1 = require("../converter-events"); | ||
const indexDeclaration = indexSymbol.getDeclarations()?.[0]; | ||
(0, assert_1.default)(indexDeclaration && ts.isIndexSignatureDeclaration(indexDeclaration)); | ||
(0, assert_1.default)(indexDeclaration && typescript_1.default.isIndexSignatureDeclaration(indexDeclaration)); | ||
const param = indexDeclaration.parameters[0]; | ||
(0, assert_1.default)(param && ts.isParameter(param)); | ||
(0, assert_1.default)(param && typescript_1.default.isParameter(param)); | ||
const index = new models_1.SignatureReflection("__index", models_1.ReflectionKind.IndexSignature, context.scope); | ||
@@ -48,0 +25,0 @@ index.parameters = [ |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import { ParameterReflection, ReflectionKind, SignatureReflection, TypeParameterReflection } from "../../models"; | ||
@@ -3,0 +3,0 @@ import type { Context } from "../context"; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
@@ -30,3 +7,3 @@ return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
exports.createTypeParamReflection = exports.convertTypeParameterNodes = exports.convertParameterNodes = exports.createSignature = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const assert_1 = __importDefault(require("assert")); | ||
@@ -50,8 +27,14 @@ const models_1 = require("../../models"); | ||
} | ||
// If we are creating signatures for a variable and the variable has a comment associated with it | ||
// then we should prefer that variable's comment over any comment on the signature. The comment plugin | ||
// If we are creating signatures for a variable or property and it has a comment associated with it | ||
// then we should prefer that comment over any comment on the signature. The comment plugin | ||
// will copy the comment down if this signature doesn't have one, so don't set one. | ||
let parentReflection = context.scope; | ||
if (parentReflection.kindOf(models_1.ReflectionKind.TypeLiteral) && | ||
parentReflection.parent instanceof models_1.DeclarationReflection) { | ||
parentReflection = parentReflection.parent; | ||
} | ||
if (declaration && | ||
(!context.scope.comment || | ||
!(context.scope.conversionFlags & models_1.ConversionFlags.VariableSource))) { | ||
(!parentReflection.comment || | ||
!(parentReflection.conversionFlags & | ||
models_1.ConversionFlags.VariableOrPropertySource))) { | ||
sigRef.comment = (0, comments_1.getSignatureComment)(declaration, context.converter.config, context.logger, context.converter.commentStyle); | ||
@@ -72,3 +55,3 @@ } | ||
else { | ||
sigRef.type = context.converter.convertType(sigRefCtx, (declaration?.kind === ts.SyntaxKind.FunctionDeclaration && | ||
sigRef.type = context.converter.convertType(sigRefCtx, (declaration?.kind === typescript_1.default.SyntaxKind.FunctionDeclaration && | ||
declaration.type) || | ||
@@ -98,6 +81,6 @@ signature.getReturnType()); | ||
(0, assert_1.default)(!declaration || | ||
ts.isParameter(declaration) || | ||
ts.isJSDocParameterTag(declaration)); | ||
typescript_1.default.isParameter(declaration) || | ||
typescript_1.default.isJSDocParameterTag(declaration)); | ||
const paramRefl = new models_1.ParameterReflection(/__\d+/.test(param.name) ? "__namedParameters" : param.name, models_1.ReflectionKind.Parameter, sigRef); | ||
if (declaration && ts.isJSDocParameterTag(declaration)) { | ||
if (declaration && typescript_1.default.isJSDocParameterTag(declaration)) { | ||
paramRefl.comment = (0, comments_1.getJsDocComment)(declaration, context.converter.config, context.logger); | ||
@@ -118,5 +101,5 @@ } | ||
if (declaration) { | ||
isOptional = ts.isParameter(declaration) | ||
isOptional = typescript_1.default.isParameter(declaration) | ||
? !!declaration.questionToken || | ||
ts | ||
typescript_1.default | ||
.getJSDocParameterTags(declaration) | ||
@@ -135,6 +118,6 @@ .some((tag) => tag.isBracketed) | ||
if (declaration) { | ||
isRest = ts.isParameter(declaration) | ||
isRest = typescript_1.default.isParameter(declaration) | ||
? !!declaration.dotDotDotToken | ||
: !!declaration.typeExpression && | ||
ts.isJSDocVariadicType(declaration.typeExpression.type); | ||
typescript_1.default.isJSDocVariadicType(declaration.typeExpression.type); | ||
} | ||
@@ -150,3 +133,3 @@ paramRefl.setFlag(models_1.ReflectionFlag.Rest, isRest); | ||
: param.name.getText(), models_1.ReflectionKind.Parameter, sigRef); | ||
if (ts.isJSDocParameterTag(param)) { | ||
if (typescript_1.default.isJSDocParameterTag(param)) { | ||
paramRefl.comment = (0, comments_1.getJsDocComment)(param, context.converter.config, context.logger); | ||
@@ -156,4 +139,4 @@ } | ||
context.trigger(converter_events_1.ConverterEvents.CREATE_PARAMETER, paramRefl); | ||
paramRefl.type = context.converter.convertType(context.withScope(paramRefl), ts.isParameter(param) ? param.type : param.typeExpression?.type); | ||
const isOptional = ts.isParameter(param) | ||
paramRefl.type = context.converter.convertType(context.withScope(paramRefl), typescript_1.default.isParameter(param) ? param.type : param.typeExpression?.type); | ||
const isOptional = typescript_1.default.isParameter(param) | ||
? !!param.questionToken | ||
@@ -166,6 +149,6 @@ : param.isBracketed; | ||
paramRefl.setFlag(models_1.ReflectionFlag.Optional, isOptional); | ||
paramRefl.setFlag(models_1.ReflectionFlag.Rest, ts.isParameter(param) | ||
paramRefl.setFlag(models_1.ReflectionFlag.Rest, typescript_1.default.isParameter(param) | ||
? !!param.dotDotDotToken | ||
: !!param.typeExpression && | ||
ts.isJSDocVariadicType(param.typeExpression.type)); | ||
typescript_1.default.isJSDocVariadicType(param.typeExpression.type)); | ||
return paramRefl; | ||
@@ -181,3 +164,3 @@ }); | ||
// so unfortunately we have to go back to the node for this... | ||
const variance = getVariance(param.getSymbol()?.declarations?.find(ts.isTypeParameterDeclaration) | ||
const variance = getVariance(param.getSymbol()?.declarations?.find(typescript_1.default.isTypeParameterDeclaration) | ||
?.modifiers); | ||
@@ -211,3 +194,3 @@ const paramRefl = new models_1.TypeParameterReflection(param.symbol.name, parent, variance); | ||
context.registerReflection(paramRefl, param.symbol); | ||
if (ts.isJSDocTemplateTag(param.parent)) { | ||
if (typescript_1.default.isJSDocTemplateTag(param.parent)) { | ||
paramRefl.comment = (0, comments_1.getJsDocComment)(param.parent, context.converter.config, context.logger); | ||
@@ -220,4 +203,4 @@ } | ||
function getVariance(modifiers) { | ||
const hasIn = modifiers?.some((mod) => mod.kind === ts.SyntaxKind.InKeyword); | ||
const hasOut = modifiers?.some((mod) => mod.kind === ts.SyntaxKind.OutKeyword); | ||
const hasIn = modifiers?.some((mod) => mod.kind === typescript_1.default.SyntaxKind.InKeyword); | ||
const hasOut = modifiers?.some((mod) => mod.kind === typescript_1.default.SyntaxKind.OutKeyword); | ||
if (hasIn && hasOut) { | ||
@@ -236,8 +219,8 @@ return models_1.VarianceModifier.inOut; | ||
switch (predicate.kind) { | ||
case ts.TypePredicateKind.This: | ||
case ts.TypePredicateKind.AssertsThis: | ||
case typescript_1.default.TypePredicateKind.This: | ||
case typescript_1.default.TypePredicateKind.AssertsThis: | ||
name = "this"; | ||
break; | ||
case ts.TypePredicateKind.Identifier: | ||
case ts.TypePredicateKind.AssertsIdentifier: | ||
case typescript_1.default.TypePredicateKind.Identifier: | ||
case typescript_1.default.TypePredicateKind.AssertsIdentifier: | ||
name = predicate.parameterName; | ||
@@ -248,8 +231,8 @@ break; | ||
switch (predicate.kind) { | ||
case ts.TypePredicateKind.This: | ||
case ts.TypePredicateKind.Identifier: | ||
case typescript_1.default.TypePredicateKind.This: | ||
case typescript_1.default.TypePredicateKind.Identifier: | ||
asserts = false; | ||
break; | ||
case ts.TypePredicateKind.AssertsThis: | ||
case ts.TypePredicateKind.AssertsIdentifier: | ||
case typescript_1.default.TypePredicateKind.AssertsThis: | ||
case typescript_1.default.TypePredicateKind.AssertsIdentifier: | ||
asserts = true; | ||
@@ -256,0 +239,0 @@ break; |
@@ -6,2 +6,3 @@ export { Context } from "./context"; | ||
export type { DeclarationReference, SymbolReference, ComponentPath, Meaning, MeaningKeyword, } from "./comments/declarationReference"; | ||
export type { ExternalSymbolResolver, ExternalResolveResult, } from "./comments/linkResolver"; | ||
import "./plugins/index"; |
@@ -1,4 +0,4 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import type { Context } from "./context"; | ||
export declare function convertJsDocAlias(context: Context, symbol: ts.Symbol, declaration: ts.JSDocTypedefTag | ts.JSDocEnumTag, exportSymbol?: ts.Symbol): void; | ||
export declare function convertJsDocCallback(context: Context, symbol: ts.Symbol, declaration: ts.JSDocCallbackTag, exportSymbol?: ts.Symbol): void; |
@@ -5,24 +5,4 @@ "use strict"; | ||
// @callback | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
@@ -32,3 +12,3 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||
const assert_1 = require("assert"); | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const models_1 = require("../models"); | ||
@@ -41,3 +21,3 @@ const ReflectionSymbolId_1 = require("../models/reflections/ReflectionSymbolId"); | ||
if (declaration.typeExpression && | ||
ts.isJSDocTypeLiteral(declaration.typeExpression)) { | ||
typescript_1.default.isJSDocTypeLiteral(declaration.typeExpression)) { | ||
convertJsDocInterface(context, declaration, symbol, exportSymbol); | ||
@@ -102,3 +82,3 @@ return; | ||
(0, assert_1.ok)(context.scope instanceof models_1.DeclarationReflection); | ||
context.scope.typeParameters = convertTemplateParameterNodes(context, node.tags?.filter(ts.isJSDocTemplateTag)); | ||
context.scope.typeParameters = convertTemplateParameterNodes(context, node.tags?.filter(typescript_1.default.isJSDocTemplateTag)); | ||
} | ||
@@ -111,8 +91,8 @@ function convertTemplateParameterNodes(context, nodes) { | ||
const typeExpression = declaration.typeExpression; | ||
if (!ts.isJSDocTypedefTag(declaration) || | ||
if (!typescript_1.default.isJSDocTypedefTag(declaration) || | ||
!typeExpression || | ||
ts.isJSDocTypeLiteral(typeExpression) || | ||
!ts.isImportTypeNode(typeExpression.type) || | ||
typescript_1.default.isJSDocTypeLiteral(typeExpression) || | ||
!typescript_1.default.isImportTypeNode(typeExpression.type) || | ||
!typeExpression.type.qualifier || | ||
!ts.isIdentifier(typeExpression.type.qualifier)) { | ||
!typescript_1.default.isIdentifier(typeExpression.type.qualifier)) { | ||
return; | ||
@@ -123,10 +103,10 @@ } | ||
if (!decl || | ||
!(ts.isTypeAliasDeclaration(decl) || | ||
ts.isInterfaceDeclaration(decl) || | ||
ts.isJSDocTypedefTag(decl) || | ||
ts.isJSDocCallbackTag(decl))) { | ||
!(typescript_1.default.isTypeAliasDeclaration(decl) || | ||
typescript_1.default.isInterfaceDeclaration(decl) || | ||
typescript_1.default.isJSDocTypedefTag(decl) || | ||
typescript_1.default.isJSDocCallbackTag(decl))) { | ||
return; | ||
} | ||
const targetParams = ts.getEffectiveTypeParameterDeclarations(decl); | ||
const localParams = ts.getEffectiveTypeParameterDeclarations(declaration); | ||
const targetParams = typescript_1.default.getEffectiveTypeParameterDeclarations(decl); | ||
const localParams = typescript_1.default.getEffectiveTypeParameterDeclarations(declaration); | ||
const localArgs = typeExpression.type.typeArguments || []; | ||
@@ -136,4 +116,4 @@ // If we have type parameters, ensure they are forwarding parameters with no transformations. | ||
if (targetParams.length !== localParams.length || | ||
localArgs.some((arg, i) => !ts.isTypeReferenceNode(arg) || | ||
!ts.isIdentifier(arg.typeName) || | ||
localArgs.some((arg, i) => !typescript_1.default.isTypeReferenceNode(arg) || | ||
!typescript_1.default.isIdentifier(arg.typeName) || | ||
arg.typeArguments || | ||
@@ -140,0 +120,0 @@ localParams[i]?.name.text !== arg.typeName.text)) { |
@@ -64,2 +64,4 @@ import { ConverterComponent } from "../components"; | ||
excludeNotDocumented: boolean; | ||
private _excludeKinds; | ||
private get excludeNotDocumentedKinds(); | ||
/** | ||
@@ -66,0 +68,0 @@ * Create a new CommentPlugin instance. |
@@ -92,2 +92,8 @@ "use strict"; | ||
let CommentPlugin = class CommentPlugin extends components_1.ConverterComponent { | ||
get excludeNotDocumentedKinds() { | ||
this._excludeKinds ?? (this._excludeKinds = this.application.options | ||
.getValue("excludeNotDocumentedKinds") | ||
.reduce((a, b) => a | models_1.ReflectionKind[b], 0)); | ||
return this._excludeKinds; | ||
} | ||
/** | ||
@@ -103,2 +109,5 @@ * Create a new CommentPlugin instance. | ||
[converter_1.Converter.EVENT_RESOLVE]: this.onResolve, | ||
[converter_1.Converter.EVENT_END]: () => { | ||
this._excludeKinds = undefined; | ||
}, | ||
}); | ||
@@ -340,2 +349,9 @@ } | ||
if (!comment) { | ||
// We haven't moved comments from the parent for signatures without a direct | ||
// comment, so don't exclude those due to not being documented. | ||
if (reflection.kindOf(models_1.ReflectionKind.CallSignature | | ||
models_1.ReflectionKind.ConstructorSignature) && | ||
reflection.parent?.comment) { | ||
return false; | ||
} | ||
if (this.excludeNotDocumented) { | ||
@@ -347,2 +363,5 @@ // Don't let excludeNotDocumented remove parameters. | ||
} | ||
if (!reflection.kindOf(this.excludeNotDocumentedKinds)) { | ||
return false; | ||
} | ||
// excludeNotDocumented should hide a module only if it has no visible children | ||
@@ -355,6 +374,2 @@ if (reflection.kindOf(models_1.ReflectionKind.SomeModule)) { | ||
} | ||
// enum members should all be included if the parent enum is documented | ||
if (reflection.kind === models_1.ReflectionKind.EnumMember) { | ||
return false; | ||
} | ||
// signature containers should only be hidden if all their signatures are hidden | ||
@@ -361,0 +376,0 @@ if (reflection.kindOf(models_1.ReflectionKind.SignatureContainer)) { |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
@@ -24,12 +8,8 @@ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; | ||
}; | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ImplementsPlugin = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const application_events_1 = require("../../application-events"); | ||
@@ -178,3 +158,3 @@ const index_1 = require("../../models/reflections/index"); | ||
.getDeclarations() | ||
?.find((n) => ts.isClassDeclaration(n) || ts.isInterfaceDeclaration(n)); | ||
?.find((n) => typescript_1.default.isClassDeclaration(n) || typescript_1.default.isInterfaceDeclaration(n)); | ||
if (!declaration) { | ||
@@ -200,3 +180,3 @@ return; | ||
if (reflection.kind === index_1.ReflectionKind.Constructor) { | ||
const ctor = info.declaration.members.find(ts.isConstructorDeclaration); | ||
const ctor = info.declaration.members.find(typescript_1.default.isConstructorDeclaration); | ||
constructorInheritance(context, reflection, info.declaration, ctor); | ||
@@ -218,3 +198,3 @@ return; | ||
if (reflection.flags.isStatic && | ||
clause.token === ts.SyntaxKind.ImplementsKeyword) { | ||
clause.token === typescript_1.default.SyntaxKind.ImplementsKeyword) { | ||
continue; | ||
@@ -233,3 +213,3 @@ } | ||
// inherit from a base class and also implement an interface. | ||
if (clause.token === ts.SyntaxKind.ImplementsKeyword) { | ||
if (clause.token === typescript_1.default.SyntaxKind.ImplementsKeyword) { | ||
break out; | ||
@@ -247,3 +227,3 @@ } | ||
function constructorInheritance(context, reflection, childDecl, constructorDecl) { | ||
const extendsClause = childDecl.heritageClauses?.find((cl) => cl.token === ts.SyntaxKind.ExtendsKeyword); | ||
const extendsClause = childDecl.heritageClauses?.find((cl) => cl.token === typescript_1.default.SyntaxKind.ExtendsKeyword); | ||
if (!extendsClause) | ||
@@ -280,3 +260,3 @@ return; | ||
return; | ||
if (clause.token === ts.SyntaxKind.ImplementsKeyword) { | ||
if (clause.token === typescript_1.default.SyntaxKind.ImplementsKeyword) { | ||
target.implementationOf ?? (target.implementationOf = types_1.ReferenceType.createBrokenReference(name, project)); | ||
@@ -283,0 +263,0 @@ return; |
@@ -41,5 +41,13 @@ "use strict"; | ||
} | ||
for (const { type } of (0, reflections_1.discoverAllReferenceTypes)(project, false)) { | ||
for (const { type, owner } of (0, reflections_1.discoverAllReferenceTypes)(project, false)) { | ||
if (!type.reflection) { | ||
type.externalUrl = this.owner.resolveExternalLink(type.toDeclarationReference()); | ||
const resolveResult = this.owner.resolveExternalLink(type.toDeclarationReference(), owner); | ||
switch (typeof resolveResult) { | ||
case "string": | ||
type.externalUrl = resolveResult; | ||
break; | ||
case "object": | ||
type.externalUrl = resolveResult.target; | ||
break; | ||
} | ||
} | ||
@@ -46,0 +54,0 @@ } |
@@ -11,2 +11,3 @@ import { ConverterComponent } from "../components"; | ||
entryPoints: string[]; | ||
includeVersion: boolean; | ||
/** | ||
@@ -13,0 +14,0 @@ * The file name of the found readme.md file. |
@@ -129,3 +129,5 @@ "use strict"; | ||
} | ||
project.packageVersion = this.packageJson.version; | ||
if (this.includeVersion) { | ||
project.packageVersion = this.packageJson.version; | ||
} | ||
} | ||
@@ -147,2 +149,5 @@ else if (!project.name) { | ||
], PackagePlugin.prototype, "entryPoints", void 0); | ||
__decorate([ | ||
(0, utils_1.BindOption)("includeVersion") | ||
], PackagePlugin.prototype, "includeVersion", void 0); | ||
PackagePlugin = __decorate([ | ||
@@ -149,0 +154,0 @@ (0, components_1.Component)({ name: "package" }) |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { | ||
@@ -24,12 +8,8 @@ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; | ||
}; | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.SourcePlugin = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const index_1 = require("../../models/reflections/index"); | ||
@@ -97,6 +77,6 @@ const components_1 = require("../components"); | ||
if ((0, nodes_1.isNamedNode)(node)) { | ||
position = ts.getLineAndCharacterOfPosition(sourceFile, node.name.getStart()); | ||
position = typescript_1.default.getLineAndCharacterOfPosition(sourceFile, node.name.getStart()); | ||
} | ||
else { | ||
position = ts.getLineAndCharacterOfPosition(sourceFile, node.getStart()); | ||
position = typescript_1.default.getLineAndCharacterOfPosition(sourceFile, node.getStart()); | ||
} | ||
@@ -113,3 +93,3 @@ reflection.sources || (reflection.sources = []); | ||
this.fileNames.add(fileName); | ||
const position = ts.getLineAndCharacterOfPosition(sourceFile, sig.getStart()); | ||
const position = typescript_1.default.getLineAndCharacterOfPosition(sourceFile, sig.getStart()); | ||
reflection.sources || (reflection.sources = []); | ||
@@ -116,0 +96,0 @@ reflection.sources.push(new models_1.SourceReference(fileName, position.line + 1, position.character)); |
@@ -1,3 +0,3 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import type { Context } from "./context"; | ||
export declare function convertSymbol(context: Context, symbol: ts.Symbol, exportSymbol?: ts.Symbol): void; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
@@ -31,3 +8,3 @@ return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
const assert_1 = __importDefault(require("assert")); | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const models_1 = require("../models"); | ||
@@ -42,20 +19,20 @@ const enum_1 = require("../utils/enum"); | ||
const symbolConverters = { | ||
[ts.SymbolFlags.RegularEnum]: convertEnum, | ||
[ts.SymbolFlags.ConstEnum]: convertEnum, | ||
[ts.SymbolFlags.EnumMember]: convertEnumMember, | ||
[ts.SymbolFlags.ValueModule]: convertNamespace, | ||
[ts.SymbolFlags.NamespaceModule]: convertNamespace, | ||
[ts.SymbolFlags.TypeAlias]: convertTypeAlias, | ||
[ts.SymbolFlags.Function]: convertFunctionOrMethod, | ||
[ts.SymbolFlags.Method]: convertFunctionOrMethod, | ||
[ts.SymbolFlags.Interface]: convertClassOrInterface, | ||
[ts.SymbolFlags.Property]: convertProperty, | ||
[ts.SymbolFlags.Class]: convertClassOrInterface, | ||
[ts.SymbolFlags.Constructor]: convertConstructor, | ||
[ts.SymbolFlags.Alias]: convertAlias, | ||
[ts.SymbolFlags.BlockScopedVariable]: convertVariable, | ||
[ts.SymbolFlags.FunctionScopedVariable]: convertVariable, | ||
[ts.SymbolFlags.ExportValue]: convertVariable, | ||
[ts.SymbolFlags.GetAccessor]: convertAccessor, | ||
[ts.SymbolFlags.SetAccessor]: convertAccessor, | ||
[typescript_1.default.SymbolFlags.RegularEnum]: convertEnum, | ||
[typescript_1.default.SymbolFlags.ConstEnum]: convertEnum, | ||
[typescript_1.default.SymbolFlags.EnumMember]: convertEnumMember, | ||
[typescript_1.default.SymbolFlags.ValueModule]: convertNamespace, | ||
[typescript_1.default.SymbolFlags.NamespaceModule]: convertNamespace, | ||
[typescript_1.default.SymbolFlags.TypeAlias]: convertTypeAlias, | ||
[typescript_1.default.SymbolFlags.Function]: convertFunctionOrMethod, | ||
[typescript_1.default.SymbolFlags.Method]: convertFunctionOrMethod, | ||
[typescript_1.default.SymbolFlags.Interface]: convertClassOrInterface, | ||
[typescript_1.default.SymbolFlags.Property]: convertProperty, | ||
[typescript_1.default.SymbolFlags.Class]: convertClassOrInterface, | ||
[typescript_1.default.SymbolFlags.Constructor]: convertConstructor, | ||
[typescript_1.default.SymbolFlags.Alias]: convertAlias, | ||
[typescript_1.default.SymbolFlags.BlockScopedVariable]: convertVariable, | ||
[typescript_1.default.SymbolFlags.FunctionScopedVariable]: convertVariable, | ||
[typescript_1.default.SymbolFlags.ExportValue]: convertVariable, | ||
[typescript_1.default.SymbolFlags.GetAccessor]: convertAccessor, | ||
[typescript_1.default.SymbolFlags.SetAccessor]: convertAccessor, | ||
}; | ||
@@ -68,21 +45,21 @@ const allConverterFlags = Object.keys(symbolConverters).reduce((v, k) => v | +k, 0); | ||
// merged with an enum works properly. | ||
ts.SymbolFlags.RegularEnum, | ||
ts.SymbolFlags.ConstEnum, | ||
ts.SymbolFlags.EnumMember, | ||
typescript_1.default.SymbolFlags.RegularEnum, | ||
typescript_1.default.SymbolFlags.ConstEnum, | ||
typescript_1.default.SymbolFlags.EnumMember, | ||
// Before type alias | ||
ts.SymbolFlags.BlockScopedVariable, | ||
ts.SymbolFlags.FunctionScopedVariable, | ||
ts.SymbolFlags.ExportValue, | ||
ts.SymbolFlags.TypeAlias, | ||
ts.SymbolFlags.Function, | ||
ts.SymbolFlags.Method, | ||
ts.SymbolFlags.Interface, | ||
ts.SymbolFlags.Property, | ||
ts.SymbolFlags.Class, | ||
ts.SymbolFlags.Constructor, | ||
ts.SymbolFlags.Alias, | ||
ts.SymbolFlags.GetAccessor, | ||
ts.SymbolFlags.SetAccessor, | ||
ts.SymbolFlags.ValueModule, | ||
ts.SymbolFlags.NamespaceModule, | ||
typescript_1.default.SymbolFlags.BlockScopedVariable, | ||
typescript_1.default.SymbolFlags.FunctionScopedVariable, | ||
typescript_1.default.SymbolFlags.ExportValue, | ||
typescript_1.default.SymbolFlags.TypeAlias, | ||
typescript_1.default.SymbolFlags.Function, | ||
typescript_1.default.SymbolFlags.Method, | ||
typescript_1.default.SymbolFlags.Interface, | ||
typescript_1.default.SymbolFlags.Property, | ||
typescript_1.default.SymbolFlags.Class, | ||
typescript_1.default.SymbolFlags.Constructor, | ||
typescript_1.default.SymbolFlags.Alias, | ||
typescript_1.default.SymbolFlags.GetAccessor, | ||
typescript_1.default.SymbolFlags.SetAccessor, | ||
typescript_1.default.SymbolFlags.ValueModule, | ||
typescript_1.default.SymbolFlags.NamespaceModule, | ||
]; | ||
@@ -92,6 +69,6 @@ // Sanity check, if this fails a dev messed up. | ||
if (!Number.isInteger(Math.log2(+key))) { | ||
throw new Error(`Symbol converter for key ${ts.SymbolFlags[+key]} does not specify a valid flag value.`); | ||
throw new Error(`Symbol converter for key ${typescript_1.default.SymbolFlags[+key]} does not specify a valid flag value.`); | ||
} | ||
if (!conversionOrder.includes(+key)) { | ||
throw new Error(`Symbol converter for key ${ts.SymbolFlags[+key]} is not specified in conversionOrder`); | ||
throw new Error(`Symbol converter for key ${typescript_1.default.SymbolFlags[+key]} is not specified in conversionOrder`); | ||
} | ||
@@ -114,27 +91,27 @@ } | ||
} | ||
let flags = (0, enum_1.removeFlag)(symbol.flags, ts.SymbolFlags.Transient | | ||
ts.SymbolFlags.Assignment | | ||
ts.SymbolFlags.Optional | | ||
ts.SymbolFlags.Prototype); | ||
let flags = (0, enum_1.removeFlag)(symbol.flags, typescript_1.default.SymbolFlags.Transient | | ||
typescript_1.default.SymbolFlags.Assignment | | ||
typescript_1.default.SymbolFlags.Optional | | ||
typescript_1.default.SymbolFlags.Prototype); | ||
// Declaration merging - the only type (excluding enum/enum, ns/ns, etc) | ||
// that TD supports is merging a class and interface. All others are | ||
// represented as multiple reflections | ||
if ((0, enum_1.hasAllFlags)(symbol.flags, ts.SymbolFlags.Class)) { | ||
flags = (0, enum_1.removeFlag)(flags, ts.SymbolFlags.Interface | ts.SymbolFlags.Function); | ||
if ((0, enum_1.hasAllFlags)(symbol.flags, typescript_1.default.SymbolFlags.Class)) { | ||
flags = (0, enum_1.removeFlag)(flags, typescript_1.default.SymbolFlags.Interface | typescript_1.default.SymbolFlags.Function); | ||
} | ||
// Kind of declaration merging... we treat this as a property with get/set signatures. | ||
if ((0, enum_1.hasAllFlags)(symbol.flags, ts.SymbolFlags.GetAccessor)) { | ||
flags = (0, enum_1.removeFlag)(flags, ts.SymbolFlags.SetAccessor); | ||
if ((0, enum_1.hasAllFlags)(symbol.flags, typescript_1.default.SymbolFlags.GetAccessor)) { | ||
flags = (0, enum_1.removeFlag)(flags, typescript_1.default.SymbolFlags.SetAccessor); | ||
} | ||
if ((0, enum_1.hasAllFlags)(symbol.flags, ts.SymbolFlags.NamespaceModule)) { | ||
if ((0, enum_1.hasAllFlags)(symbol.flags, typescript_1.default.SymbolFlags.NamespaceModule)) { | ||
// This might be here if a namespace is declared several times. | ||
flags = (0, enum_1.removeFlag)(flags, ts.SymbolFlags.ValueModule); | ||
flags = (0, enum_1.removeFlag)(flags, typescript_1.default.SymbolFlags.ValueModule); | ||
} | ||
if ((0, enum_1.hasAnyFlag)(symbol.flags, ts.SymbolFlags.Method | | ||
ts.SymbolFlags.Interface | | ||
ts.SymbolFlags.Class | | ||
ts.SymbolFlags.Variable)) { | ||
if ((0, enum_1.hasAnyFlag)(symbol.flags, typescript_1.default.SymbolFlags.Method | | ||
typescript_1.default.SymbolFlags.Interface | | ||
typescript_1.default.SymbolFlags.Class | | ||
typescript_1.default.SymbolFlags.Variable)) { | ||
// This happens when someone declares an object with methods: | ||
// { methodProperty() {} } | ||
flags = (0, enum_1.removeFlag)(flags, ts.SymbolFlags.Property); | ||
flags = (0, enum_1.removeFlag)(flags, typescript_1.default.SymbolFlags.Property); | ||
} | ||
@@ -145,10 +122,10 @@ // A default exported function with no associated variable is a property, but | ||
// export default 123 | ||
if (flags === ts.SymbolFlags.Property && | ||
if (flags === typescript_1.default.SymbolFlags.Property && | ||
symbol.name === "default" && | ||
context.scope.kindOf(models_1.ReflectionKind.Module | models_1.ReflectionKind.Project)) { | ||
flags = ts.SymbolFlags.BlockScopedVariable; | ||
flags = typescript_1.default.SymbolFlags.BlockScopedVariable; | ||
} | ||
for (const flag of (0, enum_1.getEnumFlags)(flags ^ allConverterFlags)) { | ||
if (!(flag & allConverterFlags)) { | ||
context.logger.verbose(`Missing converter for symbol: ${symbol.name} with flag ${ts.SymbolFlags[flag]}`); | ||
context.logger.verbose(`Missing converter for symbol: ${symbol.name} with flag ${typescript_1.default.SymbolFlags[flag]}`); | ||
} | ||
@@ -175,3 +152,3 @@ } | ||
const reflection = context.createDeclarationReflection(models_1.ReflectionKind.Enum, symbol, exportSymbol); | ||
if (symbol.flags & ts.SymbolFlags.ConstEnum) { | ||
if (symbol.flags & typescript_1.default.SymbolFlags.ConstEnum) { | ||
reflection.setFlag(models_1.ReflectionFlag.Const); | ||
@@ -182,3 +159,3 @@ } | ||
.getExportsOfModule(symbol) | ||
.filter((s) => s.flags & ts.SymbolFlags.EnumMember)); | ||
.filter((s) => s.flags & typescript_1.default.SymbolFlags.EnumMember)); | ||
} | ||
@@ -199,10 +176,10 @@ function convertEnumMember(context, symbol, exportSymbol) { | ||
function convertNamespace(context, symbol, exportSymbol) { | ||
let exportFlags = ts.SymbolFlags.ModuleMember; | ||
let exportFlags = typescript_1.default.SymbolFlags.ModuleMember; | ||
// This can happen in JS land where "class" functions get tagged as a namespace too | ||
if (symbol | ||
.getDeclarations() | ||
?.some((d) => ts.isModuleDeclaration(d) || ts.isSourceFile(d)) !== | ||
?.some((d) => typescript_1.default.isModuleDeclaration(d) || typescript_1.default.isSourceFile(d)) !== | ||
true) { | ||
exportFlags = ts.SymbolFlags.ClassMember; | ||
if ((0, enum_1.hasAnyFlag)(symbol.flags, ts.SymbolFlags.Class)) { | ||
exportFlags = typescript_1.default.SymbolFlags.ClassMember; | ||
if ((0, enum_1.hasAnyFlag)(symbol.flags, typescript_1.default.SymbolFlags.Class)) { | ||
return; | ||
@@ -220,8 +197,8 @@ } | ||
?.getDeclarations() | ||
?.find((d) => ts.isTypeAliasDeclaration(d) || | ||
ts.isJSDocTypedefTag(d) || | ||
ts.isJSDocCallbackTag(d) || | ||
ts.isJSDocEnumTag(d)); | ||
?.find((d) => typescript_1.default.isTypeAliasDeclaration(d) || | ||
typescript_1.default.isJSDocTypedefTag(d) || | ||
typescript_1.default.isJSDocCallbackTag(d) || | ||
typescript_1.default.isJSDocEnumTag(d)); | ||
(0, assert_1.default)(declaration); | ||
if (ts.isTypeAliasDeclaration(declaration)) { | ||
if (typescript_1.default.isTypeAliasDeclaration(declaration)) { | ||
const reflection = context.createDeclarationReflection(models_1.ReflectionKind.TypeAlias, symbol, exportSymbol); | ||
@@ -234,4 +211,4 @@ reflection.type = context.converter.convertType(context.withScope(reflection), declaration.type); | ||
} | ||
else if (ts.isJSDocTypedefTag(declaration) || | ||
ts.isJSDocEnumTag(declaration)) { | ||
else if (typescript_1.default.isJSDocTypedefTag(declaration) || | ||
typescript_1.default.isJSDocEnumTag(declaration)) { | ||
(0, jsdoc_1.convertJsDocAlias)(context, symbol, declaration, exportSymbol); | ||
@@ -247,4 +224,4 @@ } | ||
const isMethod = !!(symbol.flags & | ||
(ts.SymbolFlags.Property | ts.SymbolFlags.Method)); | ||
const declarations = symbol.getDeclarations()?.filter(ts.isFunctionLike) ?? []; | ||
(typescript_1.default.SymbolFlags.Property | typescript_1.default.SymbolFlags.Method)); | ||
const declarations = symbol.getDeclarations()?.filter(typescript_1.default.isFunctionLike) ?? []; | ||
// Don't do anything if we inherited this method and it is private. | ||
@@ -254,3 +231,3 @@ if (isMethod && | ||
declarations.length > 0 && | ||
(0, enum_1.hasAllFlags)(ts.getCombinedModifierFlags(declarations[0]), ts.ModifierFlags.Private)) { | ||
(0, enum_1.hasAllFlags)(typescript_1.default.getCombinedModifierFlags(declarations[0]), typescript_1.default.ModifierFlags.Private)) { | ||
return; | ||
@@ -260,3 +237,3 @@ } | ||
?.getDeclarations() | ||
?.find((d) => ts.isClassDeclaration(d) || ts.isInterfaceDeclaration(d)) ?? | ||
?.find((d) => typescript_1.default.isClassDeclaration(d) || typescript_1.default.isInterfaceDeclaration(d)) ?? | ||
symbol.parent?.getDeclarations()?.[0]?.getSourceFile() ?? | ||
@@ -289,3 +266,3 @@ symbol.getDeclarations()?.[0]?.getSourceFile(); | ||
function convertClassOrInterface(context, symbol, exportSymbol) { | ||
const reflection = context.createDeclarationReflection(ts.SymbolFlags.Class & symbol.flags | ||
const reflection = context.createDeclarationReflection(typescript_1.default.SymbolFlags.Class & symbol.flags | ||
? models_1.ReflectionKind.Class | ||
@@ -295,3 +272,3 @@ : models_1.ReflectionKind.Interface, symbol, exportSymbol, void 0); | ||
.getDeclarations() | ||
?.find((d) => ts.isClassDeclaration(d) || ts.isFunctionDeclaration(d)); | ||
?.find((d) => typescript_1.default.isClassDeclaration(d) || typescript_1.default.isFunctionDeclaration(d)); | ||
if (classDeclaration) | ||
@@ -305,8 +282,8 @@ setModifiers(symbol, classDeclaration, reflection); | ||
.getDeclarations() | ||
?.filter((d) => ts.isInterfaceDeclaration(d) || ts.isClassDeclaration(d)) ?? []; | ||
const extendedTypes = (0, nodes_1.getHeritageTypes)(declarations, ts.SyntaxKind.ExtendsKeyword).map((t) => context.converter.convertType(reflectionContext, t)); | ||
?.filter((d) => typescript_1.default.isInterfaceDeclaration(d) || typescript_1.default.isClassDeclaration(d)) ?? []; | ||
const extendedTypes = (0, nodes_1.getHeritageTypes)(declarations, typescript_1.default.SyntaxKind.ExtendsKeyword).map((t) => context.converter.convertType(reflectionContext, t)); | ||
if (extendedTypes.length) { | ||
reflection.extendedTypes = extendedTypes; | ||
} | ||
const implementedTypes = (0, nodes_1.getHeritageTypes)(declarations, ts.SyntaxKind.ImplementsKeyword).map((t) => context.converter.convertType(reflectionContext, t)); | ||
const implementedTypes = (0, nodes_1.getHeritageTypes)(declarations, typescript_1.default.SyntaxKind.ImplementsKeyword).map((t) => context.converter.convertType(reflectionContext, t)); | ||
if (implementedTypes.length) { | ||
@@ -323,3 +300,3 @@ reflection.implementedTypes = implementedTypes; | ||
if (prop.flags & | ||
(ts.SymbolFlags.ModuleMember | ts.SymbolFlags.Prototype)) | ||
(typescript_1.default.SymbolFlags.ModuleMember | typescript_1.default.SymbolFlags.Prototype)) | ||
continue; | ||
@@ -347,3 +324,3 @@ convertSymbol(reflectionContext, prop); | ||
const declaration = param.symbol?.declarations?.[0]; | ||
(0, assert_1.default)(declaration && ts.isTypeParameterDeclaration(declaration)); | ||
(0, assert_1.default)(declaration && typescript_1.default.isTypeParameterDeclaration(declaration)); | ||
return (0, signature_1.createTypeParamReflection)(declaration, reflectionContext); | ||
@@ -355,3 +332,3 @@ }); | ||
context.checker | ||
.getSignaturesOfType(instanceType, ts.SignatureKind.Call) | ||
.getSignaturesOfType(instanceType, typescript_1.default.SignatureKind.Call) | ||
.forEach((sig) => (0, signature_1.createSignature)(reflectionContext, models_1.ReflectionKind.CallSignature, sig, symbol)); | ||
@@ -370,3 +347,3 @@ // We also might have constructor signatures | ||
declarations.length > 0 && | ||
(0, enum_1.hasAllFlags)(ts.getCombinedModifierFlags(declarations[0]), ts.ModifierFlags.Private)) { | ||
(0, enum_1.hasAllFlags)(typescript_1.default.getCombinedModifierFlags(declarations[0]), typescript_1.default.ModifierFlags.Private)) { | ||
return; | ||
@@ -377,3 +354,3 @@ } | ||
if (declarations.length && | ||
declarations.every((decl) => ts.isMethodSignature(decl) || ts.isMethodDeclaration(decl))) { | ||
declarations.every((decl) => typescript_1.default.isMethodSignature(decl) || typescript_1.default.isMethodDeclaration(decl))) { | ||
return convertFunctionOrMethod(context, symbol, exportSymbol); | ||
@@ -384,6 +361,6 @@ } | ||
// Special case: "arrow methods" should be treated as methods. | ||
if (ts.isPropertyDeclaration(declaration) && | ||
if (typescript_1.default.isPropertyDeclaration(declaration) && | ||
!declaration.type && | ||
declaration.initializer && | ||
ts.isArrowFunction(declaration.initializer)) { | ||
typescript_1.default.isArrowFunction(declaration.initializer)) { | ||
return convertArrowAsMethod(context, symbol, declaration.initializer, exportSymbol); | ||
@@ -395,10 +372,11 @@ } | ||
: models_1.ReflectionKind.Property, symbol, exportSymbol); | ||
reflection.conversionFlags |= models_1.ConversionFlags.VariableOrPropertySource; | ||
const declaration = symbol.getDeclarations()?.[0]; | ||
let parameterType; | ||
if (declaration && | ||
(ts.isPropertyDeclaration(declaration) || | ||
ts.isPropertySignature(declaration) || | ||
ts.isParameter(declaration) || | ||
ts.isPropertyAccessExpression(declaration))) { | ||
if (!ts.isPropertyAccessExpression(declaration)) { | ||
(typescript_1.default.isPropertyDeclaration(declaration) || | ||
typescript_1.default.isPropertySignature(declaration) || | ||
typescript_1.default.isParameter(declaration) || | ||
typescript_1.default.isPropertyAccessExpression(declaration))) { | ||
if (!typescript_1.default.isPropertyAccessExpression(declaration)) { | ||
parameterType = declaration.type; | ||
@@ -429,3 +407,3 @@ } | ||
const reflectionContext = context.withScope(reflection); | ||
const declarations = symbol.getDeclarations()?.filter(ts.isConstructorDeclaration) ?? []; | ||
const declarations = symbol.getDeclarations()?.filter(typescript_1.default.isConstructorDeclaration) ?? []; | ||
const signatures = declarations.map((decl) => { | ||
@@ -444,3 +422,3 @@ const sig = context.checker.getSignatureFromDeclaration(decl); | ||
// has complained yet. We really ought to have a constructSignatures property on the reflection instead. | ||
const constructSignatures = context.checker.getSignaturesOfType(type, ts.SignatureKind.Construct); | ||
const constructSignatures = context.checker.getSignaturesOfType(type, typescript_1.default.SignatureKind.Construct); | ||
if (constructSignatures.length) { | ||
@@ -483,3 +461,3 @@ const constructMember = new models_1.DeclarationReflection("constructor", models_1.ReflectionKind.Constructor, context.scope); | ||
let typeNode; | ||
if (ts.isVariableDeclaration(declaration)) { | ||
if (typescript_1.default.isVariableDeclaration(declaration)) { | ||
// Otherwise we might have destructuring | ||
@@ -492,6 +470,6 @@ typeNode = declaration.type; | ||
context.finalizeDeclarationReflection(reflection); | ||
return ts.SymbolFlags.Property; | ||
return typescript_1.default.SymbolFlags.Property; | ||
} | ||
function isEnumLike(checker, type, location) { | ||
if (!(0, enum_1.hasAllFlags)(type.flags, ts.TypeFlags.Object)) { | ||
if (!(0, enum_1.hasAllFlags)(type.flags, typescript_1.default.TypeFlags.Object)) { | ||
return false; | ||
@@ -505,3 +483,3 @@ } | ||
function isValidEnumProperty(type) { | ||
return (0, enum_1.hasAnyFlag)(type.flags, ts.TypeFlags.NumberLike | ts.TypeFlags.StringLike); | ||
return (0, enum_1.hasAnyFlag)(type.flags, typescript_1.default.TypeFlags.NumberLike | typescript_1.default.TypeFlags.StringLike); | ||
} | ||
@@ -521,3 +499,3 @@ function convertVariableAsEnum(context, symbol, exportSymbol) { | ||
// Skip converting the type alias, if there is one | ||
return ts.SymbolFlags.TypeAlias; | ||
return typescript_1.default.SymbolFlags.TypeAlias; | ||
} | ||
@@ -527,3 +505,3 @@ function convertVariableAsFunction(context, symbol, exportSymbol) { | ||
.getDeclarations() | ||
?.find(ts.isVariableDeclaration); | ||
?.find(typescript_1.default.isVariableDeclaration); | ||
const accessDeclaration = declaration ?? symbol.valueDeclaration; | ||
@@ -535,3 +513,3 @@ const type = accessDeclaration | ||
setModifiers(symbol, accessDeclaration, reflection); | ||
reflection.conversionFlags |= models_1.ConversionFlags.VariableSource; | ||
reflection.conversionFlags |= models_1.ConversionFlags.VariableOrPropertySource; | ||
context.finalizeDeclarationReflection(reflection); | ||
@@ -543,3 +521,3 @@ const reflectionContext = context.withScope(reflection); | ||
} | ||
return ts.SymbolFlags.Property; | ||
return typescript_1.default.SymbolFlags.Property; | ||
} | ||
@@ -554,3 +532,3 @@ function convertAccessor(context, symbol, exportSymbol) { | ||
context.finalizeDeclarationReflection(reflection); | ||
const getDeclaration = symbol.getDeclarations()?.find(ts.isGetAccessor); | ||
const getDeclaration = symbol.getDeclarations()?.find(typescript_1.default.isGetAccessor); | ||
if (getDeclaration) { | ||
@@ -562,3 +540,3 @@ const signature = context.checker.getSignatureFromDeclaration(getDeclaration); | ||
} | ||
const setDeclaration = symbol.getDeclarations()?.find(ts.isSetAccessor); | ||
const setDeclaration = symbol.getDeclarations()?.find(typescript_1.default.isSetAccessor); | ||
if (setDeclaration) { | ||
@@ -575,4 +553,4 @@ const signature = context.checker.getSignatureFromDeclaration(setDeclaration); | ||
const parents = parentSymbol.declarations?.slice() || []; | ||
const constructorDecls = parents.flatMap((parent) => ts.isClassDeclaration(parent) | ||
? parent.members.filter(ts.isConstructorDeclaration) | ||
const constructorDecls = parents.flatMap((parent) => typescript_1.default.isClassDeclaration(parent) | ||
? parent.members.filter(typescript_1.default.isConstructorDeclaration) | ||
: []); | ||
@@ -586,26 +564,26 @@ parents.push(...constructorDecls); | ||
} | ||
const modifiers = ts.getCombinedModifierFlags(declaration); | ||
if (ts.isMethodDeclaration(declaration) || | ||
ts.isPropertyDeclaration(declaration) || | ||
ts.isAccessor(declaration)) { | ||
if (ts.isPrivateIdentifier(declaration.name)) { | ||
const modifiers = typescript_1.default.getCombinedModifierFlags(declaration); | ||
if (typescript_1.default.isMethodDeclaration(declaration) || | ||
typescript_1.default.isPropertyDeclaration(declaration) || | ||
typescript_1.default.isAccessor(declaration)) { | ||
if (typescript_1.default.isPrivateIdentifier(declaration.name)) { | ||
reflection.setFlag(models_1.ReflectionFlag.Private); | ||
} | ||
} | ||
if ((0, enum_1.hasAllFlags)(modifiers, ts.ModifierFlags.Private)) { | ||
if ((0, enum_1.hasAllFlags)(modifiers, typescript_1.default.ModifierFlags.Private)) { | ||
reflection.setFlag(models_1.ReflectionFlag.Private); | ||
} | ||
if ((0, enum_1.hasAllFlags)(modifiers, ts.ModifierFlags.Protected)) { | ||
if ((0, enum_1.hasAllFlags)(modifiers, typescript_1.default.ModifierFlags.Protected)) { | ||
reflection.setFlag(models_1.ReflectionFlag.Protected); | ||
} | ||
if ((0, enum_1.hasAllFlags)(modifiers, ts.ModifierFlags.Public)) { | ||
if ((0, enum_1.hasAllFlags)(modifiers, typescript_1.default.ModifierFlags.Public)) { | ||
reflection.setFlag(models_1.ReflectionFlag.Public); | ||
} | ||
reflection.setFlag(models_1.ReflectionFlag.Optional, (0, enum_1.hasAllFlags)(symbol.flags, ts.SymbolFlags.Optional)); | ||
reflection.setFlag(models_1.ReflectionFlag.Readonly, (0, enum_1.hasAllFlags)(symbol.checkFlags ?? 0, ts.CheckFlags.Readonly) || | ||
(0, enum_1.hasAllFlags)(modifiers, ts.ModifierFlags.Readonly)); | ||
reflection.setFlag(models_1.ReflectionFlag.Abstract, (0, enum_1.hasAllFlags)(modifiers, ts.ModifierFlags.Abstract)); | ||
reflection.setFlag(models_1.ReflectionFlag.Optional, (0, enum_1.hasAllFlags)(symbol.flags, typescript_1.default.SymbolFlags.Optional)); | ||
reflection.setFlag(models_1.ReflectionFlag.Readonly, (0, enum_1.hasAllFlags)(symbol.checkFlags ?? 0, typescript_1.default.CheckFlags.Readonly) || | ||
(0, enum_1.hasAllFlags)(modifiers, typescript_1.default.ModifierFlags.Readonly)); | ||
reflection.setFlag(models_1.ReflectionFlag.Abstract, (0, enum_1.hasAllFlags)(modifiers, typescript_1.default.ModifierFlags.Abstract)); | ||
if (reflection.kindOf(models_1.ReflectionKind.Variable) && | ||
(0, enum_1.hasAllFlags)(symbol.flags, ts.SymbolFlags.BlockScopedVariable)) { | ||
reflection.setFlag(models_1.ReflectionFlag.Const, (0, enum_1.hasAllFlags)(declaration.parent.flags, ts.NodeFlags.Const)); | ||
(0, enum_1.hasAllFlags)(symbol.flags, typescript_1.default.SymbolFlags.BlockScopedVariable)) { | ||
reflection.setFlag(models_1.ReflectionFlag.Const, (0, enum_1.hasAllFlags)(declaration.parent.flags, typescript_1.default.NodeFlags.Const)); | ||
} | ||
@@ -612,0 +590,0 @@ // ReflectionFlag.Static happens when constructing the reflection. |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import { SomeType } from "../models"; | ||
@@ -3,0 +3,0 @@ import type { Context } from "./context"; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
@@ -31,3 +8,3 @@ return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
const assert_1 = __importDefault(require("assert")); | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const models_1 = require("../models"); | ||
@@ -110,8 +87,8 @@ const ReflectionSymbolId_1 = require("../models/reflections/ReflectionSymbolId"); | ||
// IgnoreErrors is important, without it, we can't assert that we will get a node. | ||
const node = context.checker.typeToTypeNode(typeOrNode, void 0, ts.NodeBuilderFlags.IgnoreErrors); | ||
const node = context.checker.typeToTypeNode(typeOrNode, void 0, typescript_1.default.NodeBuilderFlags.IgnoreErrors); | ||
(0, assert_1.default)(node); // According to the TS source of typeToString, this is a bug if it does not hold. | ||
const symbol = typeOrNode.getSymbol(); | ||
if (symbol) { | ||
if (node.kind !== ts.SyntaxKind.TypeReference && | ||
node.kind !== ts.SyntaxKind.ArrayType && | ||
if (node.kind !== typescript_1.default.SyntaxKind.TypeReference && | ||
node.kind !== typescript_1.default.SyntaxKind.ArrayType && | ||
seenTypeSymbols.has(symbol)) { | ||
@@ -140,3 +117,3 @@ const typeString = context.checker.typeToString(typeOrNode); | ||
const arrayConverter = { | ||
kind: [ts.SyntaxKind.ArrayType], | ||
kind: [typescript_1.default.SyntaxKind.ArrayType], | ||
convert(context, node) { | ||
@@ -154,3 +131,3 @@ return new models_1.ArrayType(convertType(context, node.elementType)); | ||
const conditionalConverter = { | ||
kind: [ts.SyntaxKind.ConditionalType], | ||
kind: [typescript_1.default.SyntaxKind.ConditionalType], | ||
convert(context, node) { | ||
@@ -164,3 +141,3 @@ return new models_1.ConditionalType(convertType(context, node.checkType), convertType(context, node.extendsType), convertType(context, node.trueType), convertType(context, node.falseType)); | ||
const constructorConverter = { | ||
kind: [ts.SyntaxKind.ConstructorType], | ||
kind: [typescript_1.default.SyntaxKind.ConstructorType], | ||
convert(context, node) { | ||
@@ -181,3 +158,3 @@ const symbol = context.getSymbolAtLocation(node) ?? node.symbol; | ||
// needs to wait until TypeDoc 0.22 when making other breaking changes. | ||
if (node.modifiers?.some((m) => m.kind === ts.SyntaxKind.AbstractKeyword)) { | ||
if (node.modifiers?.some((m) => m.kind === typescript_1.default.SyntaxKind.AbstractKeyword)) { | ||
signature.setFlag(models_1.ReflectionFlag.Abstract); | ||
@@ -206,3 +183,3 @@ } | ||
const exprWithTypeArgsConverter = { | ||
kind: [ts.SyntaxKind.ExpressionWithTypeArguments], | ||
kind: [typescript_1.default.SyntaxKind.ExpressionWithTypeArguments], | ||
convert(context, node) { | ||
@@ -222,3 +199,3 @@ const targetSymbol = context.getSymbolAtLocation(node.expression); | ||
const functionTypeConverter = { | ||
kind: [ts.SyntaxKind.FunctionType], | ||
kind: [typescript_1.default.SyntaxKind.FunctionType], | ||
convert(context, node) { | ||
@@ -256,3 +233,3 @@ const symbol = context.getSymbolAtLocation(node) ?? node.symbol; | ||
const importType = { | ||
kind: [ts.SyntaxKind.ImportType], | ||
kind: [typescript_1.default.SyntaxKind.ImportType], | ||
convert(context, node) { | ||
@@ -271,3 +248,3 @@ const name = node.qualifier?.getText() ?? "__module"; | ||
const indexedAccessConverter = { | ||
kind: [ts.SyntaxKind.IndexedAccessType], | ||
kind: [typescript_1.default.SyntaxKind.IndexedAccessType], | ||
convert(context, node) { | ||
@@ -281,3 +258,3 @@ return new models_1.IndexedAccessType(convertType(context, node.objectType), convertType(context, node.indexType)); | ||
const inferredConverter = { | ||
kind: [ts.SyntaxKind.InferType], | ||
kind: [typescript_1.default.SyntaxKind.InferType], | ||
convert(context, node) { | ||
@@ -291,3 +268,3 @@ return new models_1.InferredType(node.typeParameter.name.text, maybeConvertType(context, node.typeParameter.constraint)); | ||
const intersectionConverter = { | ||
kind: [ts.SyntaxKind.IntersectionType], | ||
kind: [typescript_1.default.SyntaxKind.IntersectionType], | ||
convert(context, node) { | ||
@@ -301,3 +278,3 @@ return new models_1.IntersectionType(node.types.map((type) => convertType(context, type))); | ||
const jsDocVariadicTypeConverter = { | ||
kind: [ts.SyntaxKind.JSDocVariadicType], | ||
kind: [typescript_1.default.SyntaxKind.JSDocVariadicType], | ||
convert(context, node) { | ||
@@ -310,28 +287,28 @@ return new models_1.ArrayType(convertType(context, node.type)); | ||
const keywordNames = { | ||
[ts.SyntaxKind.AnyKeyword]: "any", | ||
[ts.SyntaxKind.BigIntKeyword]: "bigint", | ||
[ts.SyntaxKind.BooleanKeyword]: "boolean", | ||
[ts.SyntaxKind.NeverKeyword]: "never", | ||
[ts.SyntaxKind.NumberKeyword]: "number", | ||
[ts.SyntaxKind.ObjectKeyword]: "object", | ||
[ts.SyntaxKind.StringKeyword]: "string", | ||
[ts.SyntaxKind.SymbolKeyword]: "symbol", | ||
[ts.SyntaxKind.UndefinedKeyword]: "undefined", | ||
[ts.SyntaxKind.UnknownKeyword]: "unknown", | ||
[ts.SyntaxKind.VoidKeyword]: "void", | ||
[ts.SyntaxKind.IntrinsicKeyword]: "intrinsic", | ||
[typescript_1.default.SyntaxKind.AnyKeyword]: "any", | ||
[typescript_1.default.SyntaxKind.BigIntKeyword]: "bigint", | ||
[typescript_1.default.SyntaxKind.BooleanKeyword]: "boolean", | ||
[typescript_1.default.SyntaxKind.NeverKeyword]: "never", | ||
[typescript_1.default.SyntaxKind.NumberKeyword]: "number", | ||
[typescript_1.default.SyntaxKind.ObjectKeyword]: "object", | ||
[typescript_1.default.SyntaxKind.StringKeyword]: "string", | ||
[typescript_1.default.SyntaxKind.SymbolKeyword]: "symbol", | ||
[typescript_1.default.SyntaxKind.UndefinedKeyword]: "undefined", | ||
[typescript_1.default.SyntaxKind.UnknownKeyword]: "unknown", | ||
[typescript_1.default.SyntaxKind.VoidKeyword]: "void", | ||
[typescript_1.default.SyntaxKind.IntrinsicKeyword]: "intrinsic", | ||
}; | ||
const keywordConverter = { | ||
kind: [ | ||
ts.SyntaxKind.AnyKeyword, | ||
ts.SyntaxKind.BigIntKeyword, | ||
ts.SyntaxKind.BooleanKeyword, | ||
ts.SyntaxKind.NeverKeyword, | ||
ts.SyntaxKind.NumberKeyword, | ||
ts.SyntaxKind.ObjectKeyword, | ||
ts.SyntaxKind.StringKeyword, | ||
ts.SyntaxKind.SymbolKeyword, | ||
ts.SyntaxKind.UndefinedKeyword, | ||
ts.SyntaxKind.UnknownKeyword, | ||
ts.SyntaxKind.VoidKeyword, | ||
typescript_1.default.SyntaxKind.AnyKeyword, | ||
typescript_1.default.SyntaxKind.BigIntKeyword, | ||
typescript_1.default.SyntaxKind.BooleanKeyword, | ||
typescript_1.default.SyntaxKind.NeverKeyword, | ||
typescript_1.default.SyntaxKind.NumberKeyword, | ||
typescript_1.default.SyntaxKind.ObjectKeyword, | ||
typescript_1.default.SyntaxKind.StringKeyword, | ||
typescript_1.default.SyntaxKind.SymbolKeyword, | ||
typescript_1.default.SyntaxKind.UndefinedKeyword, | ||
typescript_1.default.SyntaxKind.UnknownKeyword, | ||
typescript_1.default.SyntaxKind.VoidKeyword, | ||
], | ||
@@ -346,3 +323,3 @@ convert(_context, node) { | ||
const optionalConverter = { | ||
kind: [ts.SyntaxKind.OptionalType], | ||
kind: [typescript_1.default.SyntaxKind.OptionalType], | ||
convert(context, node) { | ||
@@ -355,3 +332,3 @@ return new models_1.OptionalType((0, reflections_1.removeUndefined)(convertType(context, node.type))); | ||
const parensConverter = { | ||
kind: [ts.SyntaxKind.ParenthesizedType], | ||
kind: [typescript_1.default.SyntaxKind.ParenthesizedType], | ||
convert(context, node) { | ||
@@ -364,5 +341,5 @@ return convertType(context, node.type); | ||
const predicateConverter = { | ||
kind: [ts.SyntaxKind.TypePredicate], | ||
kind: [typescript_1.default.SyntaxKind.TypePredicate], | ||
convert(context, node) { | ||
const name = ts.isThisTypeNode(node.parameterName) | ||
const name = typescript_1.default.isThisTypeNode(node.parameterName) | ||
? "this" | ||
@@ -380,3 +357,3 @@ : node.parameterName.getText(); | ||
const typeLiteralConverter = { | ||
kind: [ts.SyntaxKind.TypeLiteral], | ||
kind: [typescript_1.default.SyntaxKind.TypeLiteral], | ||
convert(context, node) { | ||
@@ -426,3 +403,3 @@ const symbol = context.getSymbolAtLocation(node) ?? node.symbol; | ||
const queryConverter = { | ||
kind: [ts.SyntaxKind.TypeQuery], | ||
kind: [typescript_1.default.SyntaxKind.TypeQuery], | ||
convert(context, node) { | ||
@@ -444,5 +421,5 @@ const querySymbol = context.getSymbolAtLocation(node.exprName); | ||
const referenceConverter = { | ||
kind: [ts.SyntaxKind.TypeReference], | ||
kind: [typescript_1.default.SyntaxKind.TypeReference], | ||
convert(context, node) { | ||
const isArray = context.checker.typeToTypeNode(context.checker.getTypeAtLocation(node.typeName), void 0, ts.NodeBuilderFlags.IgnoreErrors)?.kind === ts.SyntaxKind.ArrayType; | ||
const isArray = context.checker.typeToTypeNode(context.checker.getTypeAtLocation(node.typeName), void 0, typescript_1.default.NodeBuilderFlags.IgnoreErrors)?.kind === typescript_1.default.SyntaxKind.ArrayType; | ||
if (isArray) { | ||
@@ -465,3 +442,3 @@ return new models_1.ArrayType(convertType(context, node.typeArguments?.[0])); | ||
const ref = models_1.ReferenceType.createSymbolReference(context.resolveAliasedSymbol(symbol), context); | ||
if (type.flags & ts.TypeFlags.StringMapping) { | ||
if (type.flags & typescript_1.default.TypeFlags.StringMapping) { | ||
ref.typeArguments = [ | ||
@@ -480,3 +457,3 @@ convertType(context, type.type), | ||
const restConverter = { | ||
kind: [ts.SyntaxKind.RestType], | ||
kind: [typescript_1.default.SyntaxKind.RestType], | ||
convert(context, node) { | ||
@@ -489,3 +466,3 @@ return new models_1.RestType(convertType(context, node.type)); | ||
const namedTupleMemberConverter = { | ||
kind: [ts.SyntaxKind.NamedTupleMember], | ||
kind: [typescript_1.default.SyntaxKind.NamedTupleMember], | ||
convert(context, node) { | ||
@@ -505,3 +482,3 @@ const innerType = convertType(context, node.type); | ||
const mappedConverter = { | ||
kind: [ts.SyntaxKind.MappedType], | ||
kind: [typescript_1.default.SyntaxKind.MappedType], | ||
convert(context, node) { | ||
@@ -524,21 +501,21 @@ const optionalModifier = kindToModifier(node.questionToken?.kind); | ||
const literalTypeConverter = { | ||
kind: [ts.SyntaxKind.LiteralType], | ||
kind: [typescript_1.default.SyntaxKind.LiteralType], | ||
convert(context, node) { | ||
switch (node.literal.kind) { | ||
case ts.SyntaxKind.TrueKeyword: | ||
case ts.SyntaxKind.FalseKeyword: | ||
return new models_1.LiteralType(node.literal.kind === ts.SyntaxKind.TrueKeyword); | ||
case ts.SyntaxKind.StringLiteral: | ||
case typescript_1.default.SyntaxKind.TrueKeyword: | ||
case typescript_1.default.SyntaxKind.FalseKeyword: | ||
return new models_1.LiteralType(node.literal.kind === typescript_1.default.SyntaxKind.TrueKeyword); | ||
case typescript_1.default.SyntaxKind.StringLiteral: | ||
return new models_1.LiteralType(node.literal.text); | ||
case ts.SyntaxKind.NumericLiteral: | ||
case typescript_1.default.SyntaxKind.NumericLiteral: | ||
return new models_1.LiteralType(Number(node.literal.text)); | ||
case ts.SyntaxKind.NullKeyword: | ||
case typescript_1.default.SyntaxKind.NullKeyword: | ||
return new models_1.LiteralType(null); | ||
case ts.SyntaxKind.PrefixUnaryExpression: { | ||
case typescript_1.default.SyntaxKind.PrefixUnaryExpression: { | ||
const operand = node.literal | ||
.operand; | ||
switch (operand.kind) { | ||
case ts.SyntaxKind.NumericLiteral: | ||
case typescript_1.default.SyntaxKind.NumericLiteral: | ||
return new models_1.LiteralType(Number(node.literal.getText())); | ||
case ts.SyntaxKind.BigIntLiteral: | ||
case typescript_1.default.SyntaxKind.BigIntLiteral: | ||
return new models_1.LiteralType(BigInt(node.literal.getText().replace("n", ""))); | ||
@@ -549,5 +526,5 @@ default: | ||
} | ||
case ts.SyntaxKind.BigIntLiteral: | ||
case typescript_1.default.SyntaxKind.BigIntLiteral: | ||
return new models_1.LiteralType(BigInt(node.literal.getText().replace("n", ""))); | ||
case ts.SyntaxKind.NoSubstitutionTemplateLiteral: | ||
case typescript_1.default.SyntaxKind.NoSubstitutionTemplateLiteral: | ||
return new models_1.LiteralType(node.literal.text); | ||
@@ -559,10 +536,10 @@ } | ||
switch (node.literal.kind) { | ||
case ts.SyntaxKind.StringLiteral: | ||
case typescript_1.default.SyntaxKind.StringLiteral: | ||
return new models_1.LiteralType(node.literal.text); | ||
case ts.SyntaxKind.NumericLiteral: | ||
case typescript_1.default.SyntaxKind.NumericLiteral: | ||
return new models_1.LiteralType(+node.literal.text); | ||
case ts.SyntaxKind.TrueKeyword: | ||
case ts.SyntaxKind.FalseKeyword: | ||
return new models_1.LiteralType(node.literal.kind === ts.SyntaxKind.TrueKeyword); | ||
case ts.SyntaxKind.NullKeyword: | ||
case typescript_1.default.SyntaxKind.TrueKeyword: | ||
case typescript_1.default.SyntaxKind.FalseKeyword: | ||
return new models_1.LiteralType(node.literal.kind === typescript_1.default.SyntaxKind.TrueKeyword); | ||
case typescript_1.default.SyntaxKind.NullKeyword: | ||
return new models_1.LiteralType(null); | ||
@@ -577,3 +554,3 @@ } | ||
const templateLiteralConverter = { | ||
kind: [ts.SyntaxKind.TemplateLiteralType], | ||
kind: [typescript_1.default.SyntaxKind.TemplateLiteralType], | ||
convert(context, node) { | ||
@@ -594,3 +571,3 @@ return new models_1.TemplateLiteralType(node.head.text, node.templateSpans.map((span) => { | ||
const thisConverter = { | ||
kind: [ts.SyntaxKind.ThisType], | ||
kind: [typescript_1.default.SyntaxKind.ThisType], | ||
convert() { | ||
@@ -604,3 +581,3 @@ return new models_1.IntrinsicType("this"); | ||
const tupleConverter = { | ||
kind: [ts.SyntaxKind.TupleType], | ||
kind: [typescript_1.default.SyntaxKind.TupleType], | ||
convert(context, node) { | ||
@@ -618,3 +595,3 @@ const elements = node.elements.map((node) => convertType(context, node)); | ||
elements = elements?.map((el, i) => { | ||
if (type.target.elementFlags[i] & ts.ElementFlags.Variable) { | ||
if (type.target.elementFlags[i] & typescript_1.default.ElementFlags.Variable) { | ||
// In the node case, we don't need to add the wrapping Array type... but we do here. | ||
@@ -626,3 +603,3 @@ if (el instanceof models_1.NamedTupleMember) { | ||
} | ||
if (type.target.elementFlags[i] & ts.ElementFlags.Optional && | ||
if (type.target.elementFlags[i] & typescript_1.default.ElementFlags.Optional && | ||
!(el instanceof models_1.NamedTupleMember)) { | ||
@@ -637,8 +614,8 @@ return new models_1.OptionalType((0, reflections_1.removeUndefined)(el)); | ||
const supportedOperatorNames = { | ||
[ts.SyntaxKind.KeyOfKeyword]: "keyof", | ||
[ts.SyntaxKind.UniqueKeyword]: "unique", | ||
[ts.SyntaxKind.ReadonlyKeyword]: "readonly", | ||
[typescript_1.default.SyntaxKind.KeyOfKeyword]: "keyof", | ||
[typescript_1.default.SyntaxKind.UniqueKeyword]: "unique", | ||
[typescript_1.default.SyntaxKind.ReadonlyKeyword]: "readonly", | ||
}; | ||
const typeOperatorConverter = { | ||
kind: [ts.SyntaxKind.TypeOperator], | ||
kind: [typescript_1.default.SyntaxKind.TypeOperator], | ||
convert(context, node) { | ||
@@ -649,3 +626,3 @@ return new models_1.TypeOperatorType(convertType(context, node.type), supportedOperatorNames[node.operator]); | ||
// readonly is only valid on array and tuple literal types. | ||
if (node.operator === ts.SyntaxKind.ReadonlyKeyword) { | ||
if (node.operator === typescript_1.default.SyntaxKind.ReadonlyKeyword) { | ||
const resolved = resolveReference(type); | ||
@@ -656,3 +633,3 @@ (0, assert_1.default)((0, nodes_1.isObjectType)(resolved)); | ||
.map((type) => convertType(context, type)); | ||
const inner = resolved.objectFlags & ts.ObjectFlags.Tuple | ||
const inner = resolved.objectFlags & typescript_1.default.ObjectFlags.Tuple | ||
? new models_1.TupleType(args) | ||
@@ -664,3 +641,3 @@ : new models_1.ArrayType(args[0]); | ||
// resolved to a union of strings. | ||
if (node.operator === ts.SyntaxKind.KeyOfKeyword) { | ||
if (node.operator === typescript_1.default.SyntaxKind.KeyOfKeyword) { | ||
// TS 4.2 added this to enable better tracking of type aliases. | ||
@@ -680,3 +657,3 @@ if (type.isUnion() && type.origin) { | ||
const unionConverter = { | ||
kind: [ts.SyntaxKind.UnionType], | ||
kind: [typescript_1.default.SyntaxKind.UnionType], | ||
convert(context, node) { | ||
@@ -694,3 +671,3 @@ return new models_1.UnionType(node.types.map((type) => convertType(context, type))); | ||
const jsDocNullableTypeConverter = { | ||
kind: [ts.SyntaxKind.JSDocNullableType], | ||
kind: [typescript_1.default.SyntaxKind.JSDocNullableType], | ||
convert(context, node) { | ||
@@ -706,3 +683,3 @@ return new models_1.UnionType([ | ||
const jsDocNonNullableTypeConverter = { | ||
kind: [ts.SyntaxKind.JSDocNonNullableType], | ||
kind: [typescript_1.default.SyntaxKind.JSDocNonNullableType], | ||
convert(context, node) { | ||
@@ -716,3 +693,3 @@ return convertType(context, node.type); | ||
if ("kind" in nodeOrType) { | ||
const kindName = ts.SyntaxKind[nodeOrType.kind]; | ||
const kindName = typescript_1.default.SyntaxKind[nodeOrType.kind]; | ||
context.logger.warn(`Failed to convert type node with kind: ${kindName} and text ${nodeOrType.getText()}. Please report a bug.`, nodeOrType); | ||
@@ -728,3 +705,3 @@ return new models_1.UnknownType(nodeOrType.getText()); | ||
function resolveReference(type) { | ||
if ((0, nodes_1.isObjectType)(type) && type.objectFlags & ts.ObjectFlags.Reference) { | ||
if ((0, nodes_1.isObjectType)(type) && type.objectFlags & typescript_1.default.ObjectFlags.Reference) { | ||
return type.target; | ||
@@ -736,7 +713,7 @@ } | ||
switch (kind) { | ||
case ts.SyntaxKind.ReadonlyKeyword: | ||
case ts.SyntaxKind.QuestionToken: | ||
case ts.SyntaxKind.PlusToken: | ||
case typescript_1.default.SyntaxKind.ReadonlyKeyword: | ||
case typescript_1.default.SyntaxKind.QuestionToken: | ||
case typescript_1.default.SyntaxKind.PlusToken: | ||
return "+"; | ||
case ts.SyntaxKind.MinusToken: | ||
case typescript_1.default.SyntaxKind.MinusToken: | ||
return "-"; | ||
@@ -743,0 +720,0 @@ default: |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
export declare function isNamedNode(node: ts.Node): node is ts.Node & { | ||
@@ -3,0 +3,0 @@ name: ts.Identifier | ts.PrivateIdentifier | ts.ComputedPropertyName; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.isObjectType = exports.getHeritageTypes = exports.isNamedNode = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
function isNamedNode(node) { | ||
const name = node.name; | ||
return !!name && (ts.isMemberName(name) || ts.isComputedPropertyName(name)); | ||
return !!name && (typescript_1.default.isMemberName(name) || typescript_1.default.isComputedPropertyName(name)); | ||
} | ||
@@ -32,0 +12,0 @@ exports.isNamedNode = isNamedNode; |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
export declare function resolveAliasedSymbol(symbol: ts.Symbol, checker: ts.TypeChecker): ts.Symbol; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.resolveAliasedSymbol = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
function resolveAliasedSymbol(symbol, checker) { | ||
while (ts.SymbolFlags.Alias & symbol.flags) { | ||
while (typescript_1.default.SymbolFlags.Alias & symbol.flags) { | ||
symbol = checker.getAliasedSymbol(symbol); | ||
@@ -31,0 +11,0 @@ } |
@@ -60,2 +60,8 @@ import type { Reflection } from "../reflections"; | ||
/** | ||
* Helper function to convert an array of comment display parts into markdown suitable for | ||
* passing into Marked. `urlTo` will be used to resolve urls to any reflections linked to with | ||
* `@link` tags. | ||
*/ | ||
static displayPartsToMarkdown(parts: readonly CommentDisplayPart[], urlTo: (ref: Reflection) => string): string; | ||
/** | ||
* Helper utility to clone {@link Comment.summary} or {@link CommentTag.content} | ||
@@ -62,0 +68,0 @@ */ |
@@ -68,2 +68,52 @@ "use strict"; | ||
/** | ||
* Helper function to convert an array of comment display parts into markdown suitable for | ||
* passing into Marked. `urlTo` will be used to resolve urls to any reflections linked to with | ||
* `@link` tags. | ||
*/ | ||
static displayPartsToMarkdown(parts, urlTo) { | ||
const result = []; | ||
for (const part of parts) { | ||
switch (part.kind) { | ||
case "text": | ||
case "code": | ||
result.push(part.text); | ||
break; | ||
case "inline-tag": | ||
switch (part.tag) { | ||
case "@label": | ||
case "@inheritdoc": // Shouldn't happen | ||
break; // Not rendered. | ||
case "@link": | ||
case "@linkcode": | ||
case "@linkplain": { | ||
if (part.target) { | ||
const url = typeof part.target === "string" | ||
? part.target | ||
: urlTo(part.target); | ||
const text = part.tag === "@linkcode" | ||
? `<code>${part.text}</code>` | ||
: part.text; | ||
result.push(url | ||
? `<a href="${url}">${text}</a>` | ||
: part.text); | ||
} | ||
else { | ||
result.push(part.text); | ||
} | ||
break; | ||
} | ||
default: | ||
// Hmm... probably want to be able to render these somehow, so custom inline tags can be given | ||
// special rendering rules. Future capability. For now, just render their text. | ||
result.push(`{${part.tag} ${part.text}}`); | ||
break; | ||
} | ||
break; | ||
default: | ||
(0, utils_1.assertNever)(part); | ||
} | ||
} | ||
return result.join(""); | ||
} | ||
/** | ||
* Helper utility to clone {@link Comment.summary} or {@link CommentTag.content} | ||
@@ -70,0 +120,0 @@ */ |
@@ -34,3 +34,3 @@ import type * as ts from "typescript"; | ||
None = 0, | ||
VariableSource = 1 | ||
VariableOrPropertySource = 1 | ||
} | ||
@@ -44,3 +44,3 @@ /** | ||
export declare class DeclarationReflection extends ContainerReflection { | ||
readonly variant: "declaration" | "reference"; | ||
readonly variant: "reference" | "declaration"; | ||
/** | ||
@@ -47,0 +47,0 @@ * A list of all source files that contributed to this reflection. |
@@ -17,3 +17,3 @@ "use strict"; | ||
ConversionFlags[ConversionFlags["None"] = 0] = "None"; | ||
ConversionFlags[ConversionFlags["VariableSource"] = 1] = "VariableSource"; | ||
ConversionFlags[ConversionFlags["VariableOrPropertySource"] = 1] = "VariableOrPropertySource"; | ||
})(ConversionFlags = exports.ConversionFlags || (exports.ConversionFlags = {})); | ||
@@ -20,0 +20,0 @@ /** |
@@ -15,3 +15,3 @@ import type { SomeType } from "../types"; | ||
}; | ||
export type VarianceModifier = typeof VarianceModifier[keyof typeof VarianceModifier]; | ||
export type VarianceModifier = (typeof VarianceModifier)[keyof typeof VarianceModifier]; | ||
export declare class TypeParameterReflection extends Reflection { | ||
@@ -18,0 +18,0 @@ readonly variant = "typeParam"; |
@@ -94,3 +94,3 @@ import * as ts from "typescript"; | ||
}; | ||
export type TypeContext = typeof TypeContext[keyof typeof TypeContext]; | ||
export type TypeContext = (typeof TypeContext)[keyof typeof TypeContext]; | ||
/** | ||
@@ -97,0 +97,0 @@ * Represents an array type. |
@@ -13,3 +13,3 @@ import type { RendererHooks } from "../.."; | ||
relativeURL: (url: string | undefined) => string | undefined; | ||
urlTo: (reflection: Reflection) => string | undefined; | ||
urlTo: (reflection: Reflection) => string; | ||
markdown: (md: readonly CommentDisplayPart[] | NeverIfInternal<string | undefined>) => string; | ||
@@ -16,0 +16,0 @@ /** |
@@ -5,3 +5,2 @@ "use strict"; | ||
const models_1 = require("../../../models"); | ||
const lib_1 = require("../lib"); | ||
const default_1 = require("./layouts/default"); | ||
@@ -49,3 +48,3 @@ const partials_1 = require("./partials"); | ||
if (md instanceof Array) { | ||
return this.theme.markedPlugin.parseMarkdown((0, lib_1.displayPartsToMarkdown)(md, this.urlTo)); | ||
return this.theme.markedPlugin.parseMarkdown(models_1.Comment.displayPartsToMarkdown(md, this.urlTo)); | ||
} | ||
@@ -52,0 +51,0 @@ return md ? this.theme.markedPlugin.parseMarkdown(md) : ""; |
@@ -13,3 +13,3 @@ "use strict"; | ||
props.model.kind !== models_1.ReflectionKind.Project && `${models_1.ReflectionKind.singularString(props.model.kind)} `, | ||
(0, lib_1.getDisplayName)(context, props.model), | ||
(0, lib_1.getDisplayName)(props.model), | ||
(0, lib_1.hasTypeParameters)(props.model) && (utils_1.JSX.createElement(utils_1.JSX.Fragment, null, | ||
@@ -16,0 +16,0 @@ "<", |
@@ -94,3 +94,3 @@ "use strict"; | ||
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)(context, mod))), | ||
utils_1.JSX.createElement("a", { href: context.urlTo(mod) }, (0, lib_1.wbr)((0, lib_1.getDisplayName)(mod))), | ||
childNav)); | ||
@@ -97,0 +97,0 @@ } |
@@ -1,6 +0,5 @@ | ||
import { Comment, CommentDisplayPart, Reflection, ReflectionFlags, TypeParameterReflection } from "../../models"; | ||
import { Comment, Reflection, ReflectionFlags, TypeParameterReflection } from "../../models"; | ||
import { JSX } from "../../utils"; | ||
import type { DefaultThemeRenderContext } from "./default/DefaultThemeRenderContext"; | ||
export declare function stringify(data: unknown): string; | ||
export declare function getDisplayName(context: DefaultThemeRenderContext, refl: Reflection): string; | ||
export declare function getDisplayName(refl: Reflection): string; | ||
/** | ||
@@ -23,3 +22,2 @@ * Insert word break tags ``<wbr>`` into the given string. | ||
export declare function camelToTitleCase(text: string): string; | ||
export declare function displayPartsToMarkdown(parts: readonly CommentDisplayPart[], urlTo: DefaultThemeRenderContext["urlTo"]): string; | ||
/** | ||
@@ -26,0 +24,0 @@ * Renders the reflection name with an additional `?` if optional. |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.renderName = exports.displayPartsToMarkdown = exports.camelToTitleCase = exports.renderTypeParametersSignature = exports.hasTypeParameters = exports.classNames = exports.renderFlags = exports.join = exports.wbr = exports.getDisplayName = exports.stringify = void 0; | ||
exports.renderName = exports.camelToTitleCase = exports.renderTypeParametersSignature = exports.hasTypeParameters = exports.classNames = exports.renderFlags = exports.join = exports.wbr = exports.getDisplayName = exports.stringify = void 0; | ||
const models_1 = require("../../models"); | ||
@@ -13,7 +13,5 @@ const utils_1 = require("../../utils"); | ||
exports.stringify = stringify; | ||
function getDisplayName(context, refl) { | ||
function getDisplayName(refl) { | ||
let version = ""; | ||
if ((refl instanceof models_1.DeclarationReflection || refl instanceof models_1.ProjectReflection) && | ||
refl.packageVersion && | ||
context.options.getValue("includeVersion")) { | ||
if ((refl instanceof models_1.DeclarationReflection || refl instanceof models_1.ProjectReflection) && refl.packageVersion) { | ||
version = ` - v${refl.packageVersion}`; | ||
@@ -96,42 +94,2 @@ } | ||
exports.camelToTitleCase = camelToTitleCase; | ||
function displayPartsToMarkdown(parts, urlTo) { | ||
const result = []; | ||
for (const part of parts) { | ||
switch (part.kind) { | ||
case "text": | ||
case "code": | ||
result.push(part.text); | ||
break; | ||
case "inline-tag": | ||
switch (part.tag) { | ||
case "@label": | ||
case "@inheritdoc": // Shouldn't happen | ||
break; // Not rendered. | ||
case "@link": | ||
case "@linkcode": | ||
case "@linkplain": { | ||
if (part.target) { | ||
const url = typeof part.target === "string" ? part.target : urlTo(part.target); | ||
const text = part.tag === "@linkcode" ? `<code>${part.text}</code>` : part.text; | ||
result.push(url ? `<a href="${url}">${text}</a>` : part.text); | ||
} | ||
else { | ||
result.push(part.text); | ||
} | ||
break; | ||
} | ||
default: | ||
// Hmm... probably want to be able to render these somehow, so custom inline tags can be given | ||
// special rendering rules. Future capability. For now, just render their text. | ||
result.push(`{${part.tag} ${part.text}}`); | ||
break; | ||
} | ||
break; | ||
default: | ||
(0, utils_1.assertNever)(part); | ||
} | ||
} | ||
return result.join(""); | ||
} | ||
exports.displayPartsToMarkdown = displayPartsToMarkdown; | ||
/** | ||
@@ -138,0 +96,0 @@ * Renders the reflection name with an additional `?` if optional. |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import type { Logger } from "./loggers"; | ||
@@ -35,3 +35,3 @@ import type { Options } from "./options"; | ||
}; | ||
export type EntryPointStrategy = typeof EntryPointStrategy[keyof typeof EntryPointStrategy]; | ||
export type EntryPointStrategy = (typeof EntryPointStrategy)[keyof typeof EntryPointStrategy]; | ||
export interface DocumentationEntryPoint { | ||
@@ -38,0 +38,0 @@ displayName: string; |
@@ -25,6 +25,9 @@ "use strict"; | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getExpandedEntryPointsForPaths = exports.getPackageDirectories = exports.getWatchEntryPoints = exports.getEntryPoints = exports.EntryPointStrategy = void 0; | ||
const path_1 = require("path"); | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const FS = __importStar(require("fs")); | ||
@@ -165,7 +168,7 @@ const Path = __importStar(require("path")); | ||
const base = (0, fs_1.getCommonDirectory)(inputFiles); | ||
const result = inputFiles.flatMap((entry) => (0, fs_1.glob)(entry, base, { includeDirectories: true })); | ||
const result = inputFiles.flatMap((entry) => (0, fs_1.glob)(entry, base, { includeDirectories: true, followSymlinks: true })); | ||
return result; | ||
} | ||
function getEntryPrograms(logger, options) { | ||
const rootProgram = ts.createProgram({ | ||
const rootProgram = typescript_1.default.createProgram({ | ||
rootNames: options.getFileNames(), | ||
@@ -184,3 +187,3 @@ options: options.getCompilerOptions(), | ||
continue; // This indicates bad configuration... will be reported later. | ||
programs.push(ts.createProgram({ | ||
programs.push(typescript_1.default.createProgram({ | ||
options: options.fixCompilerOptions(ref.commandLine.options), | ||
@@ -283,3 +286,3 @@ rootNames: ref.commandLine.fileNames, | ||
} | ||
const tsconfigFile = ts.findConfigFile(packageEntryPoint, ts.sys.fileExists, typedocPackageConfig?.tsconfig); | ||
const tsconfigFile = typescript_1.default.findConfigFile(packageEntryPoint, typescript_1.default.sys.fileExists, typedocPackageConfig?.tsconfig); | ||
if (tsconfigFile === undefined) { | ||
@@ -291,4 +294,4 @@ logger.error(`Could not determine tsconfig.json for source file ${packageEntryPoint} (it must be on an ancestor path)`); | ||
let fatalError = false; | ||
const parsedCommandLine = ts.getParsedCommandLineOfConfigFile(tsconfigFile, {}, { | ||
...ts.sys, | ||
const parsedCommandLine = typescript_1.default.getParsedCommandLineOfConfigFile(tsconfigFile, {}, { | ||
...typescript_1.default.sys, | ||
onUnRecoverableConfigFileDiagnostic: (error) => { | ||
@@ -306,3 +309,3 @@ logger.diagnostic(error); | ||
} | ||
const program = ts.createProgram({ | ||
const program = typescript_1.default.createProgram({ | ||
rootNames: parsedCommandLine.fileNames, | ||
@@ -309,0 +312,0 @@ options: options.fixCompilerOptions(parsedCommandLine.options), |
@@ -49,3 +49,4 @@ export declare function isFile(file: string): boolean; | ||
includeDirectories?: boolean; | ||
followSymlinks?: boolean; | ||
}): string[]; | ||
export declare function hasTsExtension(path: string): boolean; |
@@ -175,9 +175,68 @@ "use strict"; | ||
*/ | ||
function glob(pattern, root, options) { | ||
function glob(pattern, root, options = {}) { | ||
const result = []; | ||
const mini = new minimatch_1.Minimatch(normalizePath(pattern)); | ||
const dirs = [normalizePath(root).split("/")]; | ||
do { | ||
const dir = dirs.shift(); | ||
if (options?.includeDirectories && mini.match(dir.join("/"))) { | ||
// cache of real paths to avoid infinite recursion | ||
const symlinkTargetsSeen = new Set(); | ||
// cache of fs.realpathSync results to avoid extra I/O | ||
const realpathCache = new Map(); | ||
const { includeDirectories = false, followSymlinks = false } = options; | ||
// if we _specifically asked_ for something in node_modules, fine, otherwise ignore it | ||
// to avoid globs like '**/*.ts' finding all the .d.ts files in node_modules. | ||
// however, if the pattern is something like `!**/node_modules/**`, this will also | ||
// cause node_modules to be considered, though it will be discarded by minimatch. | ||
const shouldIncludeNodeModules = pattern.includes("node_modules"); | ||
let dir = dirs.shift(); | ||
const handleFile = (path) => { | ||
const childPath = [...dir, path].join("/"); | ||
if (mini.match(childPath)) { | ||
result.push(childPath); | ||
} | ||
}; | ||
const handleDirectory = (path) => { | ||
const childPath = [...dir, path]; | ||
if (mini.set.some((row) => mini.matchOne(childPath, row, /* partial */ true))) { | ||
dirs.push(childPath); | ||
} | ||
}; | ||
const handleSymlink = (path) => { | ||
const childPath = [...dir, path].join("/"); | ||
let realpath; | ||
try { | ||
realpath = | ||
realpathCache.get(childPath) ?? fs.realpathSync(childPath); | ||
realpathCache.set(childPath, realpath); | ||
} | ||
catch { | ||
return; | ||
} | ||
if (symlinkTargetsSeen.has(realpath)) { | ||
return; | ||
} | ||
symlinkTargetsSeen.add(realpath); | ||
try { | ||
const stats = fs.statSync(realpath); | ||
if (stats.isDirectory()) { | ||
handleDirectory(path); | ||
} | ||
else if (stats.isFile()) { | ||
handleFile(path); | ||
} | ||
else if (stats.isSymbolicLink()) { | ||
const dirpath = dir.join("/"); | ||
if (dirpath === realpath) { | ||
// special case: real path of symlink is the directory we're currently traversing | ||
return; | ||
} | ||
const targetPath = (0, path_1.relative)(dirpath, realpath); | ||
handleSymlink(targetPath); | ||
} // everything else should be ignored | ||
} | ||
catch (e) { | ||
// invalid symbolic link; ignore | ||
} | ||
}; | ||
while (dir) { | ||
if (includeDirectories && mini.match(dir.join("/"))) { | ||
result.push(dir.join("/")); | ||
@@ -189,15 +248,15 @@ } | ||
if (child.isFile()) { | ||
const childPath = [...dir, child.name].join("/"); | ||
if (mini.match(childPath)) { | ||
result.push(childPath); | ||
} | ||
handleFile(child.name); | ||
} | ||
if (child.isDirectory() && child.name !== "node_modules") { | ||
const childPath = dir.concat(child.name); | ||
if (mini.set.some((row) => mini.matchOne(childPath, row, /* partial */ true))) { | ||
dirs.push(childPath); | ||
else if (child.isDirectory()) { | ||
if (shouldIncludeNodeModules || child.name !== "node_modules") { | ||
handleDirectory(child.name); | ||
} | ||
} | ||
else if (followSymlinks && child.isSymbolicLink()) { | ||
handleSymlink(child.name); | ||
} | ||
} | ||
} while (dirs.length); | ||
dir = dirs.shift(); | ||
} | ||
return result; | ||
@@ -204,0 +263,0 @@ } |
@@ -1,2 +0,2 @@ | ||
import * as ts from "typescript"; | ||
import ts from "typescript"; | ||
import type { MinimalSourceFile } from "./minimalSourceFile"; | ||
@@ -3,0 +3,0 @@ /** |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ConsoleLogger = exports.Logger = exports.LogLevel = void 0; | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const inspector_1 = require("inspector"); | ||
@@ -178,15 +158,15 @@ const path_1 = require("path"); | ||
diagnostic(diagnostic) { | ||
const output = ts.formatDiagnosticsWithColorAndContext([diagnostic], { | ||
const output = typescript_1.default.formatDiagnosticsWithColorAndContext([diagnostic], { | ||
getCanonicalFileName: path_1.resolve, | ||
getCurrentDirectory: () => process.cwd(), | ||
getNewLine: () => ts.sys.newLine, | ||
getNewLine: () => typescript_1.default.sys.newLine, | ||
}); | ||
switch (diagnostic.category) { | ||
case ts.DiagnosticCategory.Error: | ||
case typescript_1.default.DiagnosticCategory.Error: | ||
this.log(output, LogLevel.Error); | ||
break; | ||
case ts.DiagnosticCategory.Warning: | ||
case typescript_1.default.DiagnosticCategory.Warning: | ||
this.log(output, LogLevel.Warn); | ||
break; | ||
case ts.DiagnosticCategory.Message: | ||
case typescript_1.default.DiagnosticCategory.Message: | ||
this.log(output, LogLevel.Info); | ||
@@ -193,0 +173,0 @@ } |
@@ -13,3 +13,3 @@ import type { Theme as ShikiTheme } from "shiki"; | ||
/** @hidden */ | ||
export type EmitStrategy = typeof EmitStrategy[keyof typeof EmitStrategy]; | ||
export type EmitStrategy = (typeof EmitStrategy)[keyof typeof EmitStrategy]; | ||
/** | ||
@@ -25,3 +25,3 @@ * Determines how TypeDoc searches for comments. | ||
}; | ||
export type CommentStyle = typeof CommentStyle[keyof typeof CommentStyle]; | ||
export type CommentStyle = (typeof CommentStyle)[keyof typeof CommentStyle]; | ||
/** | ||
@@ -68,2 +68,3 @@ * An interface describing all TypeDoc specific options. Generated from a | ||
excludeNotDocumented: boolean; | ||
excludeNotDocumentedKinds: Array<keyof typeof ReflectionKind>; | ||
excludeInternal: boolean; | ||
@@ -70,0 +71,0 @@ excludePrivate: boolean; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
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 __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
@@ -28,3 +8,3 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||
const path_1 = require("path"); | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const fs_1 = require("../../fs"); | ||
@@ -166,3 +146,3 @@ const assert_1 = require("assert"); | ||
this.seenTsdocPaths.add(path); | ||
const { config, error } = ts.readConfigFile((0, fs_1.normalizePath)(path), ts.sys.readFile); | ||
const { config, error } = typescript_1.default.readConfigFile((0, fs_1.normalizePath)(path), typescript_1.default.sys.readFile); | ||
if (error) { | ||
@@ -169,0 +149,0 @@ logger.error(`Failed to read tsdoc.json file at ${(0, paths_1.nicePath)(path)}.`); |
@@ -27,3 +27,3 @@ import type { OptionsReader } from ".."; | ||
/** | ||
* Search for the typedoc.js or typedoc.json file from the given path | ||
* Search for the configuration file given path | ||
* | ||
@@ -30,0 +30,0 @@ * @param path Path to the typedoc.(js|json) file. If path is a directory |
@@ -25,2 +25,5 @@ "use strict"; | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -30,3 +33,3 @@ exports.TypeDocReader = void 0; | ||
const FS = __importStar(require("fs")); | ||
const ts = __importStar(require("typescript")); | ||
const typescript_1 = __importDefault(require("typescript")); | ||
const assert_1 = require("assert"); | ||
@@ -78,3 +81,3 @@ const paths_1 = require("../../paths"); | ||
if (file.endsWith(".json")) { | ||
const readResult = ts.readConfigFile((0, fs_1.normalizePath)(file), (path) => FS.readFileSync(path, "utf-8")); | ||
const readResult = typescript_1.default.readConfigFile((0, fs_1.normalizePath)(file), (path) => FS.readFileSync(path, "utf-8")); | ||
if (readResult.error) { | ||
@@ -126,3 +129,3 @@ logger.error(`Failed to parse ${(0, paths_1.nicePath)(file)}, ensure it exists and contains an object.`); | ||
/** | ||
* Search for the typedoc.js or typedoc.json file from the given path | ||
* Search for the configuration file given path | ||
* | ||
@@ -139,5 +142,13 @@ * @param path Path to the typedoc.(js|json) file. If path is a directory | ||
(0, path_1.join)(path, "typedoc.json"), | ||
(0, path_1.join)(path, "typedoc.jsonc"), | ||
(0, path_1.join)(path, "typedoc.config.js"), | ||
(0, path_1.join)(path, "typedoc.config.cjs"), | ||
(0, path_1.join)(path, "typedoc.js"), | ||
(0, path_1.join)(path, "typedoc.cjs"), | ||
(0, path_1.join)(path, ".config/typedoc.json"), | ||
(0, path_1.join)(path, ".config/typedoc.jsonc"), | ||
(0, path_1.join)(path, ".config/typedoc.config.js"), | ||
(0, path_1.join)(path, ".config/typedoc.config.cjs"), | ||
(0, path_1.join)(path, ".config/typedoc.js"), | ||
(0, path_1.join)(path, ".config/typedoc.json"), | ||
(0, path_1.join)(path, ".config/typedoc.cjs"), | ||
].find(fs_1.isFile); | ||
@@ -144,0 +155,0 @@ } |
@@ -103,2 +103,47 @@ "use strict"; | ||
options.addDeclaration({ | ||
name: "excludeNotDocumentedKinds", | ||
help: "Specify the type of reflections that can be removed by excludeNotDocumented.", | ||
type: declaration_1.ParameterType.Array, | ||
validate(value) { | ||
const invalid = new Set(value); | ||
const valid = new Set((0, enum_1.getEnumKeys)(kind_1.ReflectionKind)); | ||
for (const notPermitted of [ | ||
kind_1.ReflectionKind.Project, | ||
kind_1.ReflectionKind.TypeLiteral, | ||
kind_1.ReflectionKind.TypeParameter, | ||
kind_1.ReflectionKind.Parameter, | ||
kind_1.ReflectionKind.ObjectLiteral, | ||
]) { | ||
valid.delete(kind_1.ReflectionKind[notPermitted]); | ||
} | ||
for (const v of valid) { | ||
invalid.delete(v); | ||
} | ||
if (invalid.size !== 0) { | ||
throw new Error(`excludeNotDocumentedKinds may only specify known values, and invalid values were provided (${Array.from(invalid).join(", ")}). The valid kinds are:\n${Array.from(valid).join(", ")}`); | ||
} | ||
}, | ||
defaultValue: [ | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Module], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Namespace], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Enum], | ||
// Not including enum member here by default | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Variable], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Function], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Class], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Interface], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Constructor], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Property], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Method], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.CallSignature], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.IndexSignature], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.ConstructorSignature], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Accessor], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.GetSignature], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.SetSignature], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.TypeAlias], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Reference], | ||
], | ||
}); | ||
options.addDeclaration({ | ||
name: "excludeInternal", | ||
@@ -562,12 +607,12 @@ help: "Prevent symbols that are marked with @internal from being documented.", | ||
defaultValue: [ | ||
"Enum", | ||
"EnumMember", | ||
"Variable", | ||
"Function", | ||
"Class", | ||
"Interface", | ||
"Property", | ||
"Method", | ||
"Accessor", | ||
"TypeAlias", | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Enum], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.EnumMember], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Variable], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Function], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Class], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Interface], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Property], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Method], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.Accessor], | ||
kind_1.ReflectionKind[kind_1.ReflectionKind.TypeAlias], | ||
], | ||
@@ -574,0 +619,0 @@ }); |
@@ -8,3 +8,3 @@ /** | ||
export declare const SORT_STRATEGIES: readonly ["source-order", "alphabetical", "enum-value-ascending", "enum-value-descending", "static-first", "instance-first", "visibility", "required-first", "kind"]; | ||
export type SortStrategy = typeof SORT_STRATEGIES[number]; | ||
export type SortStrategy = (typeof SORT_STRATEGIES)[number]; | ||
export declare function getSortFunction(opts: Options): (reflections: DeclarationReflection[]) => void; |
@@ -26,3 +26,3 @@ "use strict"; | ||
const seen = new Set(); | ||
while (toProcess.length) { | ||
outer: while (toProcess.length) { | ||
const ref = toProcess.shift(); | ||
@@ -32,2 +32,14 @@ if (seen.has(ref)) | ||
seen.add(ref); | ||
// If there is a parameter inside another parameter, this is probably a callback function. | ||
// TypeDoc doesn't support adding comments with @param to nested parameters, so it seems | ||
// silly to warn about these. | ||
if (ref.kindOf(models_1.ReflectionKind.Parameter)) { | ||
let r = ref.parent; | ||
while (r) { | ||
if (r.kindOf(models_1.ReflectionKind.Parameter)) { | ||
continue outer; | ||
} | ||
r = r.parent; | ||
} | ||
} | ||
if (ref instanceof models_1.DeclarationReflection) { | ||
@@ -34,0 +46,0 @@ const signatures = ref.type instanceof models_1.ReflectionType |
{ | ||
"name": "typedoc", | ||
"description": "Create api documentation for TypeScript projects.", | ||
"version": "0.24.0-beta.1", | ||
"version": "0.24.0-beta.2", | ||
"homepage": "https://typedoc.org", | ||
"exports": { | ||
".": "./dist/index.js", | ||
"./tsdoc.json": "./tsdoc.json" | ||
"./tsdoc.json": "./tsdoc.json", | ||
"./package.json": "./package.json" | ||
}, | ||
@@ -27,5 +28,5 @@ "types": "./dist/index.d.ts", | ||
"lunr": "^2.3.9", | ||
"marked": "^4.2.4", | ||
"minimatch": "^5.1.1", | ||
"shiki": "^0.11.1" | ||
"marked": "^4.2.12", | ||
"minimatch": "^7.1.3", | ||
"shiki": "^0.14.1" | ||
}, | ||
@@ -38,16 +39,15 @@ "peerDependencies": { | ||
"@types/marked": "^4.0.8", | ||
"@types/minimatch": "5.1.2", | ||
"@types/mocha": "^9.1.1", | ||
"@types/mocha": "^10.0.1", | ||
"@types/node": "14", | ||
"@typescript-eslint/eslint-plugin": "^5.46.1", | ||
"@typescript-eslint/parser": "^5.46.1", | ||
"@typescript-eslint/eslint-plugin": "^5.51.0", | ||
"@typescript-eslint/parser": "^5.51.0", | ||
"@typestrong/fs-fixture-builder": "github:TypeStrong/fs-fixture-builder#8abd1494280116ff5318dde2c50ad01e1663790c", | ||
"c8": "^7.12.0", | ||
"esbuild": "^0.16.8", | ||
"eslint": "^8.30.0", | ||
"esbuild": "^0.17.7", | ||
"eslint": "^8.34.0", | ||
"mocha": "^10.2.0", | ||
"prettier": "2.8.1", | ||
"prettier": "2.8.4", | ||
"puppeteer": "^13.5.2", | ||
"ts-node": "^10.9.1", | ||
"typescript": "4.9.4" | ||
"typescript": "4.9.5" | ||
}, | ||
@@ -66,7 +66,7 @@ "files": [ | ||
"scripts": { | ||
"test": "mocha -r ts-node/register --config .config/mocha.fast.json", | ||
"test:cov": "c8 mocha -r ts-node/register --config .config/mocha.fast.json", | ||
"test": "mocha --config .config/mocha.fast.json", | ||
"test:cov": "c8 mocha --config .config/mocha.fast.json", | ||
"doc:c": "node bin/typedoc --tsconfig src/test/converter/tsconfig.json", | ||
"doc:c2": "node bin/typedoc --tsconfig src/test/converter2/tsconfig.json", | ||
"test:full": "c8 mocha -r ts-node/register --config .config/mocha.full.json", | ||
"test:full": "c8 mocha --config .config/mocha.full.json", | ||
"test:visual": "ts-node ./src/test/capture-screenshots.ts && ./scripts/compare_screenshots.sh", | ||
@@ -73,0 +73,0 @@ "test:visual:accept": "node scripts/accept_visual_regression.js", |
"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.tagName!=="SECTION";)n=n.parentElement;if(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={"&":"&","<":"<",">":">","'":"'",'"':"""};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; } | ||
`,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={"&":"&","<":"<",">":">","'":"'",'"':"""};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});})(); | ||
/*! Bundled license information: | ||
lunr/lunr.js: | ||
(** | ||
* lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 | ||
* Copyright (C) 2020 Oliver Nightingale | ||
* @license MIT | ||
*) | ||
(*! | ||
* lunr.utils | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
(*! | ||
* lunr.Set | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
(*! | ||
* lunr.tokenizer | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
(*! | ||
* lunr.Pipeline | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
(*! | ||
* lunr.Vector | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
(*! | ||
* lunr.stemmer | ||
* Copyright (C) 2020 Oliver Nightingale | ||
* Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt | ||
*) | ||
(*! | ||
* lunr.stopWordFilter | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
(*! | ||
* lunr.trimmer | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
(*! | ||
* lunr.TokenSet | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
(*! | ||
* lunr.Index | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
(*! | ||
* lunr.Builder | ||
* Copyright (C) 2020 Oliver Nightingale | ||
*) | ||
*/ |
1804413
15
599
26213
20
+ Addedansi-sequence-parser@1.1.1(transitive)
+ Addedminimatch@7.4.6(transitive)
+ Addedshiki@0.14.7(transitive)
+ Addedvscode-textmate@8.0.0(transitive)
- Removedminimatch@5.1.6(transitive)
- Removedshiki@0.11.1(transitive)
- Removedvscode-textmate@6.0.0(transitive)
Updatedmarked@^4.2.12
Updatedminimatch@^7.1.3
Updatedshiki@^0.14.1