typedoc
Advanced tools
Comparing version 0.26.0-beta.3 to 0.26.0-beta.4
@@ -25,2 +25,7 @@ import { Converter } from "./converter/index"; | ||
* Subscribe to these Events to control the application flow or alter the output. | ||
* | ||
* @remarks | ||
* | ||
* Access to an Application instance can be retrieved with {@link Application.bootstrap} or | ||
* {@link Application.bootstrapWithPlugins}. It can not be constructed manually. | ||
*/ | ||
@@ -70,3 +75,3 @@ export declare class Application extends ChildableComponent<Application, AbstractComponent<Application>> { | ||
*/ | ||
static VERSION: string; | ||
static readonly VERSION: string; | ||
/** | ||
@@ -73,0 +78,0 @@ * Emitted after plugins have been loaded and options have been read, but before they have been frozen. |
@@ -133,2 +133,7 @@ "use strict"; | ||
* Subscribe to these Events to control the application flow or alter the output. | ||
* | ||
* @remarks | ||
* | ||
* Access to an Application instance can be retrieved with {@link Application.bootstrap} or | ||
* {@link Application.bootstrapWithPlugins}. It can not be constructed manually. | ||
*/ | ||
@@ -135,0 +140,0 @@ let Application = (() => { |
@@ -52,2 +52,3 @@ "use strict"; | ||
app.logger.verbose(`Full run took ${Date.now() - start}ms`); | ||
logRunSummary(app.logger); | ||
process.exit(exitCode); | ||
@@ -135,1 +136,13 @@ } | ||
} | ||
/** | ||
* Generate a string with the number of errors and warnings found. | ||
*/ | ||
function logRunSummary(logger) { | ||
const { errorCount, warningCount } = logger; | ||
if (errorCount) { | ||
logger.error(logger.i18n.found_0_errors_and_1_warnings(errorCount.toString(), warningCount.toString())); | ||
} | ||
else if (warningCount) { | ||
logger.warn(logger.i18n.found_0_errors_and_1_warnings(errorCount.toString(), warningCount.toString())); | ||
} | ||
} |
@@ -61,2 +61,5 @@ "use strict"; | ||
const comment = getCommentWithCache(commentSource, config, logger, checker, files); | ||
if (comment?.getTag("@import") || comment?.getTag("@license")) { | ||
return; | ||
} | ||
if (moduleComment && comment) { | ||
@@ -63,0 +66,0 @@ // Module comment, make sure it is tagged with @packageDocumentation or @module. |
@@ -295,3 +295,3 @@ "use strict"; | ||
} | ||
function createLink(context, reflection, clause, expr, symbol, isOverwrite) { | ||
function createLink(context, reflection, clause, expr, symbol, isInherit) { | ||
const project = context.project; | ||
@@ -317,3 +317,4 @@ const name = `${expr.expression.getText()}.${(0, utils_1.getHumanName)(symbol.name)}`; | ||
} | ||
if (isOverwrite) { | ||
if (isInherit) { | ||
target.setFlag(index_1.ReflectionFlag.Inherited); | ||
target.inheritedFrom ??= types_1.ReferenceType.createBrokenReference(name, project); | ||
@@ -320,0 +321,0 @@ } |
@@ -89,2 +89,9 @@ "use strict"; | ||
} | ||
if (reflection.isDeclaration()) { | ||
reflection.type?.visit((0, models_1.makeRecursiveVisitor)({ | ||
union: (type) => { | ||
type.elementSummaries = type.elementSummaries?.map((parts) => this.owner.resolveLinks(parts, reflection)); | ||
}, | ||
})); | ||
} | ||
if (reflection instanceof models_1.DeclarationReflection && | ||
@@ -91,0 +98,0 @@ reflection.readme) { |
@@ -16,11 +16,4 @@ import { ConverterComponent } from "../components"; | ||
private fileNames; | ||
private repositories?; | ||
/** | ||
* List of known repositories. | ||
*/ | ||
private repositories; | ||
/** | ||
* List of paths known to be not under git control. | ||
*/ | ||
private ignoredPaths; | ||
/** | ||
* Create a new SourceHandler instance. | ||
@@ -46,9 +39,2 @@ */ | ||
private onBeginResolve; | ||
/** | ||
* Check whether the given file is placed inside a repository. | ||
* | ||
* @param fileName The name of the file a repository should be looked for. | ||
* @returns The found repository info or undefined. | ||
*/ | ||
private getRepository; | ||
} |
@@ -65,3 +65,2 @@ "use strict"; | ||
const repository_1 = require("../utils/repository"); | ||
const base_path_1 = require("../utils/base-path"); | ||
/** | ||
@@ -108,10 +107,2 @@ * A handler that attaches source file information to reflections. | ||
this.fileNames = (__runInitializers(this, _basePath_extraInitializers), new Set()); | ||
/** | ||
* List of known repositories. | ||
*/ | ||
this.repositories = {}; | ||
/** | ||
* List of paths known to be not under git control. | ||
*/ | ||
this.ignoredPaths = new Set(); | ||
} | ||
@@ -159,3 +150,3 @@ get disableSources() { return __classPrivateFieldGet(this, _SourcePlugin_disableSources_accessor_storage, "f"); } | ||
const sourceFile = node.getSourceFile(); | ||
const fileName = base_path_1.BasePath.normalize(sourceFile.fileName); | ||
const fileName = (0, utils_1.normalizePath)(sourceFile.fileName); | ||
this.fileNames.add(fileName); | ||
@@ -177,3 +168,3 @@ let position; | ||
const sourceFile = sig.getSourceFile(); | ||
const fileName = base_path_1.BasePath.normalize(sourceFile.fileName); | ||
const fileName = (0, utils_1.normalizePath)(sourceFile.fileName); | ||
this.fileNames.add(fileName); | ||
@@ -202,2 +193,3 @@ const position = typescript_1.default.getLineAndCharacterOfPosition(sourceFile, getLocationNode(sig).getStart()); | ||
const basePath = this.basePath || (0, utils_1.getCommonDirectory)([...this.fileNames]); | ||
this.repositories ||= new repository_1.RepositoryManager(basePath, this.gitRevision, this.gitRemote, this.sourceLinkTemplate, this.disableGit, this.application.logger); | ||
for (const id in context.project.reflections) { | ||
@@ -214,3 +206,3 @@ const refl = context.project.reflections[id]; | ||
if (this.disableGit || (0, repository_1.gitIsInstalled)()) { | ||
const repo = this.getRepository(basePath, source.fullFileName); | ||
const repo = this.repositories.getRepository(source.fullFileName); | ||
source.url = repo?.getURL(source.fullFileName, source.line); | ||
@@ -222,35 +214,2 @@ } | ||
} | ||
/** | ||
* Check whether the given file is placed inside a repository. | ||
* | ||
* @param fileName The name of the file a repository should be looked for. | ||
* @returns The found repository info or undefined. | ||
*/ | ||
getRepository(basePath, fileName) { | ||
if (this.disableGit) { | ||
return new repository_1.AssumedRepository(basePath, this.gitRevision, this.sourceLinkTemplate); | ||
} | ||
// Check for known non-repositories | ||
const dirName = (0, path_1.dirname)(fileName); | ||
const segments = dirName.split("/"); | ||
for (let i = segments.length; i > 0; i--) { | ||
if (this.ignoredPaths.has(segments.slice(0, i).join("/"))) { | ||
return; | ||
} | ||
} | ||
// Check for known repositories | ||
for (const path of Object.keys(this.repositories)) { | ||
if (fileName.toLowerCase().startsWith(path)) { | ||
return this.repositories[path]; | ||
} | ||
} | ||
// Try to create a new repository | ||
const repository = repository_1.GitRepository.tryCreateRepository(dirName, this.sourceLinkTemplate, this.gitRevision, this.gitRemote, this.application.logger); | ||
if (repository) { | ||
this.repositories[repository.path.toLowerCase()] = repository; | ||
return repository; | ||
} | ||
// No repository found, add path to ignored paths | ||
this.ignoredPaths.add(dirName); | ||
} | ||
}; | ||
@@ -257,0 +216,0 @@ _SourcePlugin_disableSources_accessor_storage = new WeakMap(); |
@@ -1,4 +0,5 @@ | ||
import type { Logger } from "../../utils"; | ||
import { type Logger } from "../../utils"; | ||
export declare function gitIsInstalled(): boolean; | ||
export interface Repository { | ||
readonly path: string; | ||
getURL(fileName: string, line: number): string | undefined; | ||
@@ -51,2 +52,46 @@ } | ||
} | ||
/** | ||
* Responsible for keeping track of 0-N repositories which exist on a machine. | ||
* This used to be inlined in SourcePlugin, moved out for easy unit testing. | ||
* | ||
* Git repositories can be nested. Files should be resolved to a repo as shown | ||
* below: | ||
* ```text | ||
* /project | ||
* /project/.git (A) | ||
* /project/file.js (A) | ||
* /project/folder/file.js (A) | ||
* /project/sub/.git (B) | ||
* /project/sub/file.js (B) | ||
* ``` | ||
* | ||
* In order words, it is not safe to assume that just because a file is within | ||
* the `/project` directory, that it belongs to repo `A`. As calling git is | ||
* expensive (~20-300ms depending on the machine, antivirus, etc.) we check for | ||
* `.git` folders manually, and only call git if one is found. | ||
* | ||
* Symlinked files have the potential to further complicate this. If TypeScript's | ||
* `preserveSymlinks` option is on, then this may be passed the path to a symlinked | ||
* file. Unlike TypeScript, we will resolve the path, as the repo link should really | ||
* point to the actual file. | ||
*/ | ||
export declare class RepositoryManager { | ||
private basePath; | ||
private gitRevision; | ||
private gitRemote; | ||
private sourceLinkTemplate; | ||
private disableGit; | ||
private logger; | ||
private cache; | ||
private assumedRepo; | ||
constructor(basePath: string, gitRevision: string, gitRemote: string, sourceLinkTemplate: string, disableGit: boolean, logger: Logger); | ||
/** | ||
* Check whether the given file is placed inside a repository. | ||
* | ||
* @param fileName The name of the file a repository should be looked for. | ||
* @returns The found repository info or undefined. | ||
*/ | ||
getRepository(fileName: string): Repository | undefined; | ||
private getRepositoryFolder; | ||
} | ||
export declare function guessSourceUrlTemplate(remotes: string[]): string | undefined; |
"use strict"; | ||
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { | ||
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } | ||
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; | ||
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; | ||
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); | ||
var _, done = false; | ||
for (var i = decorators.length - 1; i >= 0; i--) { | ||
var context = {}; | ||
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; | ||
for (var p in contextIn.access) context.access[p] = contextIn.access[p]; | ||
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; | ||
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); | ||
if (kind === "accessor") { | ||
if (result === void 0) continue; | ||
if (result === null || typeof result !== "object") throw new TypeError("Object expected"); | ||
if (_ = accept(result.get)) descriptor.get = _; | ||
if (_ = accept(result.set)) descriptor.set = _; | ||
if (_ = accept(result.init)) initializers.unshift(_); | ||
} | ||
else if (_ = accept(result)) { | ||
if (kind === "field") initializers.unshift(_); | ||
else descriptor[key] = _; | ||
} | ||
} | ||
if (target) Object.defineProperty(target, contextIn.name, descriptor); | ||
done = true; | ||
}; | ||
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) { | ||
var useValue = arguments.length > 2; | ||
for (var i = 0; i < initializers.length; i++) { | ||
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); | ||
} | ||
return useValue ? value : void 0; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.GitRepository = exports.AssumedRepository = void 0; | ||
exports.RepositoryManager = exports.GitRepository = exports.AssumedRepository = void 0; | ||
exports.gitIsInstalled = gitIsInstalled; | ||
exports.guessSourceUrlTemplate = guessSourceUrlTemplate; | ||
const child_process_1 = require("child_process"); | ||
const base_path_1 = require("../utils/base-path"); | ||
const utils_1 = require("../../utils"); | ||
const general_1 = require("../../utils/general"); | ||
const path_1 = require("path"); | ||
const fs_1 = require("fs"); | ||
const TEN_MEGABYTES = 1024 * 10000; | ||
@@ -41,78 +78,168 @@ function git(...args) { | ||
*/ | ||
class GitRepository { | ||
/** | ||
* Create a new Repository instance. | ||
* | ||
* @param path The root path of the repository. | ||
*/ | ||
constructor(path, gitRevision, urlTemplate) { | ||
/** | ||
* All files tracked by the repository. | ||
*/ | ||
this.files = new Set(); | ||
this.path = path; | ||
let GitRepository = (() => { | ||
var _a; | ||
let _files_decorators; | ||
let _files_initializers = []; | ||
let _files_extraInitializers = []; | ||
return _a = class GitRepository { | ||
/** | ||
* Create a new Repository instance. | ||
* | ||
* @param path The root path of the repository. | ||
*/ | ||
constructor(path, gitRevision, urlTemplate) { | ||
/** | ||
* All files tracked by the repository. | ||
*/ | ||
this.files = __runInitializers(this, _files_initializers, new Set()); | ||
this.urlTemplate = __runInitializers(this, _files_extraInitializers); | ||
this.path = path; | ||
this.gitRevision = gitRevision; | ||
this.urlTemplate = urlTemplate; | ||
const out = git("-C", path, "ls-files", "-z"); | ||
if (out.status === 0) { | ||
out.stdout.split("\0").forEach((file) => { | ||
if (file !== "") { | ||
this.files.add((0, utils_1.normalizePath)(path + "/" + file)); | ||
} | ||
}); | ||
} | ||
} | ||
/** | ||
* Get the URL of the given file on GitHub or Bitbucket. | ||
* | ||
* @param fileName The file whose URL should be determined. | ||
* @returns A URL pointing to the web preview of the given file or undefined. | ||
*/ | ||
getURL(fileName, line) { | ||
if (!this.files.has(fileName)) { | ||
return; | ||
} | ||
const replacements = { | ||
gitRevision: this.gitRevision, | ||
"gitRevision:short": this.gitRevision.substring(0, 8), | ||
path: fileName.substring(this.path.length + 1), | ||
line, | ||
}; | ||
return this.urlTemplate.replace(/\{(gitRevision|gitRevision:short|path|line)\}/g, (_, key) => replacements[key]); | ||
} | ||
/** | ||
* Try to create a new repository instance. | ||
* | ||
* Checks whether the given path is the root of a valid repository and if so | ||
* creates a new instance of {@link GitRepository}. | ||
* | ||
* @param path The potential repository root. | ||
* @returns A new instance of {@link GitRepository} or undefined. | ||
*/ | ||
static tryCreateRepository(path, sourceLinkTemplate, gitRevision, gitRemote, logger) { | ||
gitRevision ||= git("-C", path, "rev-parse", "HEAD").stdout.trim(); | ||
if (!gitRevision) | ||
return; // Will only happen in a repo with no commits. | ||
let urlTemplate; | ||
if (sourceLinkTemplate) { | ||
urlTemplate = sourceLinkTemplate; | ||
} | ||
else { | ||
const remotesOut = git("-C", path, "remote", "get-url", gitRemote); | ||
if (remotesOut.status === 0) { | ||
urlTemplate = guessSourceUrlTemplate(remotesOut.stdout.split("\n")); | ||
} | ||
else { | ||
logger.warn(logger.i18n.git_remote_0_not_valid(gitRemote)); | ||
} | ||
} | ||
if (!urlTemplate) | ||
return; | ||
return new _a((0, utils_1.normalizePath)(path), gitRevision, urlTemplate); | ||
} | ||
}, | ||
(() => { | ||
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0; | ||
_files_decorators = [general_1.NonEnumerable]; | ||
__esDecorate(null, null, _files_decorators, { kind: "field", name: "files", static: false, private: false, access: { has: obj => "files" in obj, get: obj => obj.files, set: (obj, value) => { obj.files = value; } }, metadata: _metadata }, _files_initializers, _files_extraInitializers); | ||
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); | ||
})(), | ||
_a; | ||
})(); | ||
exports.GitRepository = GitRepository; | ||
/** | ||
* Responsible for keeping track of 0-N repositories which exist on a machine. | ||
* This used to be inlined in SourcePlugin, moved out for easy unit testing. | ||
* | ||
* Git repositories can be nested. Files should be resolved to a repo as shown | ||
* below: | ||
* ```text | ||
* /project | ||
* /project/.git (A) | ||
* /project/file.js (A) | ||
* /project/folder/file.js (A) | ||
* /project/sub/.git (B) | ||
* /project/sub/file.js (B) | ||
* ``` | ||
* | ||
* In order words, it is not safe to assume that just because a file is within | ||
* the `/project` directory, that it belongs to repo `A`. As calling git is | ||
* expensive (~20-300ms depending on the machine, antivirus, etc.) we check for | ||
* `.git` folders manually, and only call git if one is found. | ||
* | ||
* Symlinked files have the potential to further complicate this. If TypeScript's | ||
* `preserveSymlinks` option is on, then this may be passed the path to a symlinked | ||
* file. Unlike TypeScript, we will resolve the path, as the repo link should really | ||
* point to the actual file. | ||
*/ | ||
class RepositoryManager { | ||
constructor(basePath, gitRevision, gitRemote, sourceLinkTemplate, disableGit, logger) { | ||
this.basePath = basePath; | ||
this.gitRevision = gitRevision; | ||
this.urlTemplate = urlTemplate; | ||
const out = git("-C", path, "ls-files", "-z"); | ||
if (out.status === 0) { | ||
out.stdout.split("\0").forEach((file) => { | ||
if (file !== "") { | ||
this.files.add(base_path_1.BasePath.normalize(path + "/" + file)); | ||
} | ||
}); | ||
} | ||
this.gitRemote = gitRemote; | ||
this.sourceLinkTemplate = sourceLinkTemplate; | ||
this.disableGit = disableGit; | ||
this.logger = logger; | ||
this.cache = new Map(); | ||
this.assumedRepo = new AssumedRepository(this.basePath, this.gitRevision, this.sourceLinkTemplate); | ||
} | ||
/** | ||
* Get the URL of the given file on GitHub or Bitbucket. | ||
* Check whether the given file is placed inside a repository. | ||
* | ||
* @param fileName The file whose URL should be determined. | ||
* @returns A URL pointing to the web preview of the given file or undefined. | ||
* @param fileName The name of the file a repository should be looked for. | ||
* @returns The found repository info or undefined. | ||
*/ | ||
getURL(fileName, line) { | ||
if (!this.files.has(fileName)) { | ||
return; | ||
getRepository(fileName) { | ||
if (this.disableGit) { | ||
return this.assumedRepo; | ||
} | ||
const replacements = { | ||
gitRevision: this.gitRevision, | ||
"gitRevision:short": this.gitRevision.substring(0, 8), | ||
path: fileName.substring(this.path.length + 1), | ||
line, | ||
}; | ||
return this.urlTemplate.replace(/\{(gitRevision|gitRevision:short|path|line)\}/g, (_, key) => replacements[key]); | ||
return this.getRepositoryFolder((0, utils_1.normalizePath)((0, path_1.dirname)(fileName))); | ||
} | ||
/** | ||
* Try to create a new repository instance. | ||
* | ||
* Checks whether the given path is the root of a valid repository and if so | ||
* creates a new instance of {@link GitRepository}. | ||
* | ||
* @param path The potential repository root. | ||
* @returns A new instance of {@link GitRepository} or undefined. | ||
*/ | ||
static tryCreateRepository(path, sourceLinkTemplate, gitRevision, gitRemote, logger) { | ||
const topLevel = git("-C", path, "rev-parse", "--show-toplevel"); | ||
if (topLevel.status !== 0) | ||
return; | ||
gitRevision ||= git("-C", path, "rev-parse", "HEAD").stdout.trim(); | ||
if (!gitRevision) | ||
return; // Will only happen in a repo with no commits. | ||
let urlTemplate; | ||
if (sourceLinkTemplate) { | ||
urlTemplate = sourceLinkTemplate; | ||
getRepositoryFolder(dir) { | ||
if (this.cache.has(dir)) { | ||
return this.cache.get(dir); | ||
} | ||
else { | ||
const remotesOut = git("-C", path, "remote", "get-url", gitRemote); | ||
if (remotesOut.status === 0) { | ||
urlTemplate = guessSourceUrlTemplate(remotesOut.stdout.split("\n")); | ||
if ((0, fs_1.existsSync)((0, path_1.join)(dir, ".git"))) { | ||
// This might just be a git repo, or we might be in some self-recursive symlink | ||
// loop, and the repo is actually somewhere else. Ask Git where the repo actually is. | ||
const repo = git("-C", dir, "rev-parse", "--show-toplevel"); | ||
if (repo.status === 0) { | ||
const repoDir = repo.stdout.replace("\n", ""); | ||
// This check is only necessary if we're in a symlink loop, otherwise | ||
// it will always be true. | ||
if (!this.cache.has(repoDir)) { | ||
this.cache.set(repoDir, GitRepository.tryCreateRepository(repoDir, this.sourceLinkTemplate, this.gitRevision, this.gitRemote, this.logger)); | ||
} | ||
this.cache.set(dir, this.cache.get(repoDir)); | ||
} | ||
else { | ||
logger.warn(logger.i18n.git_remote_0_not_valid(gitRemote)); | ||
// Not a git repo, probably corrupt. | ||
this.cache.set(dir, undefined); | ||
} | ||
} | ||
if (!urlTemplate) | ||
return; | ||
return new GitRepository(base_path_1.BasePath.normalize(topLevel.stdout.replace("\n", "")), gitRevision, urlTemplate); | ||
else { | ||
// We may be at the root of the file system, in which case there is no repo. | ||
this.cache.set(dir, undefined); | ||
this.cache.set(dir, this.getRepositoryFolder((0, path_1.dirname)(dir))); | ||
} | ||
return this.cache.get(dir); | ||
} | ||
} | ||
exports.GitRepository = GitRepository; | ||
exports.RepositoryManager = RepositoryManager; | ||
// Should have three capturing groups: | ||
@@ -119,0 +246,0 @@ // 1. hostname |
import type { Application } from "../application"; | ||
import { type BuiltinTranslatableStringArgs } from "./translatable"; | ||
import { translatable, type BuiltinTranslatableStringArgs } from "./translatable"; | ||
import { ReflectionKind } from "../models/reflections/kind"; | ||
import { ReflectionFlag } from "../models"; | ||
/** | ||
@@ -76,5 +77,7 @@ * ### What is translatable? | ||
*/ | ||
translate<T extends keyof TranslatableStrings>(key: T, ...args: TranslatableStrings[T]): TranslatedString; | ||
translate<T extends keyof typeof translatable>(key: T, ...args: TranslatableStrings[T]): TranslatedString; | ||
kindSingularString(kind: ReflectionKind): TranslatedString; | ||
kindPluralString(kind: ReflectionKind): TranslatedString; | ||
flagString(flag: ReflectionFlag): TranslatedString; | ||
translateTagName(tag: `@${string}`): TranslatedString; | ||
/** | ||
@@ -81,0 +84,0 @@ * Add translations for a string which will be displayed to the user. |
@@ -10,2 +10,3 @@ "use strict"; | ||
const kind_1 = require("../models/reflections/kind"); | ||
const models_1 = require("../models"); | ||
// If we're running in ts-node, then we need the TS source rather than | ||
@@ -167,2 +168,43 @@ // the compiled file. | ||
} | ||
flagString(flag) { | ||
switch (flag) { | ||
case models_1.ReflectionFlag.None: | ||
throw new Error("Should be unreachable"); | ||
case models_1.ReflectionFlag.Private: | ||
return this.proxy.flag_private(); | ||
case models_1.ReflectionFlag.Protected: | ||
return this.proxy.flag_protected(); | ||
case models_1.ReflectionFlag.Public: | ||
return this.proxy.flag_public(); | ||
case models_1.ReflectionFlag.Static: | ||
return this.proxy.flag_static(); | ||
case models_1.ReflectionFlag.External: | ||
return this.proxy.flag_external(); | ||
case models_1.ReflectionFlag.Optional: | ||
return this.proxy.flag_optional(); | ||
case models_1.ReflectionFlag.Rest: | ||
return this.proxy.flag_rest(); | ||
case models_1.ReflectionFlag.Abstract: | ||
return this.proxy.flag_abstract(); | ||
case models_1.ReflectionFlag.Const: | ||
return this.proxy.flag_const(); | ||
case models_1.ReflectionFlag.Readonly: | ||
return this.proxy.flag_readonly(); | ||
case models_1.ReflectionFlag.Inherited: | ||
return this.proxy.flag_inherited(); | ||
} | ||
} | ||
translateTagName(tag) { | ||
const tagName = tag.substring(1); | ||
const translations = this.allTranslations.get(this.application?.lang ?? "en"); | ||
if (translations.has(`tag_${tagName}`)) { | ||
return translations.get(`tag_${tagName}`); | ||
} | ||
// In English, the tag names are the translated names, once turned | ||
// into title case. | ||
return (tagName.substring(0, 1).toUpperCase() + | ||
tagName | ||
.substring(1) | ||
.replace(/[a-z][A-Z]/g, (x) => `${x[0]} ${x[1]}`)); | ||
} | ||
/** | ||
@@ -169,0 +211,0 @@ * Add translations for a string which will be displayed to the user. |
@@ -0,1 +1,2 @@ | ||
import type { blockTags, inlineTags, modifierTags } from "../utils/options/tsdoc-defaults"; | ||
export declare function buildTranslation<T extends BuiltinTranslatableStringConstraints>(translations: T): T; | ||
@@ -6,32 +7,33 @@ export declare function buildIncompleteTranslation<T extends Partial<BuiltinTranslatableStringConstraints>>(translations: T): T; | ||
readonly unsupported_ts_version_0: "You are running with an unsupported TypeScript version! If TypeDoc crashes, this is why. TypeDoc supports {0}"; | ||
readonly no_compiler_options_set: "No compiler options set. This likely means that TypeDoc did not find your tsconfig.json. Generated documentation will probably be empty."; | ||
readonly no_compiler_options_set: "No compiler options set. This likely means that TypeDoc did not find your tsconfig.json. Generated documentation will probably be empty"; | ||
readonly loaded_plugin_0: "Loaded plugin {0}"; | ||
readonly solution_not_supported_in_watch_mode: "The provided tsconfig file looks like a solution style tsconfig, which is not supported in watch mode."; | ||
readonly strategy_not_supported_in_watch_mode: "entryPointStrategy must be set to either resolve or expand for watch mode."; | ||
readonly docs_could_not_be_generated: "Documentation could not be generated due to the errors above."; | ||
readonly solution_not_supported_in_watch_mode: "The provided tsconfig file looks like a solution style tsconfig, which is not supported in watch mode"; | ||
readonly strategy_not_supported_in_watch_mode: "entryPointStrategy must be set to either resolve or expand for watch mode"; | ||
readonly found_0_errors_and_1_warnings: "Found {0} errors and {1} warnings"; | ||
readonly docs_could_not_be_generated: "Documentation could not be generated due to the errors above"; | ||
readonly docs_generated_at_0: "Documentation generated at {0}"; | ||
readonly json_written_to_0: "JSON written to {0}"; | ||
readonly no_entry_points_for_packages: "No entry points provided to packages mode, documentation cannot be generated."; | ||
readonly no_entry_points_for_packages: "No entry points provided to packages mode, documentation cannot be generated"; | ||
readonly failed_to_find_packages: "Failed to find any packages, ensure you have provided at least one directory as an entry point containing package.json"; | ||
readonly nested_packages_unsupported_0: "Project at {0} has entryPointStrategy set to packages, but nested packages are not supported."; | ||
readonly nested_packages_unsupported_0: "Project at {0} has entryPointStrategy set to packages, but nested packages are not supported"; | ||
readonly previous_error_occurred_when_reading_options_for_0: "The previous error occurred when reading options for the package at {0}"; | ||
readonly converting_project_at_0: "Converting project at {0}"; | ||
readonly failed_to_convert_packages: "Failed to convert one or more packages, result will not be merged together."; | ||
readonly failed_to_convert_packages: "Failed to convert one or more packages, result will not be merged together"; | ||
readonly merging_converted_projects: "Merging converted projects"; | ||
readonly no_entry_points_to_merge: "No entry points provided to merge."; | ||
readonly entrypoint_did_not_match_files_0: "The entrypoint glob {0} did not match any files."; | ||
readonly failed_to_parse_json_0: "Failed to parse file at {0} as json."; | ||
readonly no_entry_points_to_merge: "No entry points provided to merge"; | ||
readonly entrypoint_did_not_match_files_0: "The entrypoint glob {0} did not match any files"; | ||
readonly failed_to_parse_json_0: "Failed to parse file at {0} as json"; | ||
readonly failed_to_read_0_when_processing_document_tag_in_1: "Failed to read file {0} when processing @document tag for comment in {1}"; | ||
readonly failed_to_read_0_when_processing_project_document: "Failed to read file {0} when adding project document"; | ||
readonly failed_to_read_0_when_processing_document_child_in_1: "Failed to read file {0} when processing document children in {1}"; | ||
readonly frontmatter_children_0_should_be_an_array_of_strings_or_object_with_string_values: "Frontmatter children in {0} should be an array of strings or an object with string values."; | ||
readonly converting_union_as_interface: "Using @interface on a union type will discard properties not present on all branches of the union. TypeDoc's output may not accurately describe your source code."; | ||
readonly converting_0_as_class_requires_value_declaration: "Converting {0} as a class requires a declaration which represents a non-type value."; | ||
readonly frontmatter_children_0_should_be_an_array_of_strings_or_object_with_string_values: "Frontmatter children in {0} should be an array of strings or an object with string values"; | ||
readonly converting_union_as_interface: "Using @interface on a union type will discard properties not present on all branches of the union. TypeDoc's output may not accurately describe your source code"; | ||
readonly converting_0_as_class_requires_value_declaration: "Converting {0} as a class requires a declaration which represents a non-type value"; | ||
readonly converting_0_as_class_without_construct_signatures: "{0} is being converted as a class, but does not have any construct signatures"; | ||
readonly comment_for_0_should_not_contain_block_or_modifier_tags: "The comment for {0} should not contain any block or modifier tags."; | ||
readonly symbol_0_has_multiple_declarations_with_comment: "{0} has multiple declarations with a comment. An arbitrary comment will be used."; | ||
readonly comment_for_0_should_not_contain_block_or_modifier_tags: "The comment for {0} should not contain any block or modifier tags"; | ||
readonly symbol_0_has_multiple_declarations_with_comment: "{0} has multiple declarations with a comment. An arbitrary comment will be used"; | ||
readonly comments_for_0_are_declared_at_1: "The comments for {0} are declared at:\n\t{1}"; | ||
readonly multiple_type_parameters_on_template_tag_unsupported: "TypeDoc does not support multiple type parameters defined in a single @template tag with a comment."; | ||
readonly failed_to_find_jsdoc_tag_for_name_0: "Failed to find JSDoc tag for {0} after parsing comment, please file a bug report."; | ||
readonly relative_path_0_does_not_exist: "The relative path {0} does not exist."; | ||
readonly multiple_type_parameters_on_template_tag_unsupported: "TypeDoc does not support multiple type parameters defined in a single @template tag with a comment"; | ||
readonly failed_to_find_jsdoc_tag_for_name_0: "Failed to find JSDoc tag for {0} after parsing comment, please file a bug report"; | ||
readonly relative_path_0_does_not_exist: "The relative path {0} does not exist"; | ||
readonly inline_inheritdoc_should_not_appear_in_block_tag_in_comment_at_0: "An inline @inheritDoc tag should not appear within a block tag as it will not be processed in comment at {0}"; | ||
@@ -43,35 +45,38 @@ readonly at_most_one_remarks_tag_expected_in_comment_at_0: "At most one @remarks tag is expected in a comment, ignoring all but the first in comment at {0}"; | ||
readonly content_in_remarks_block_overwritten_by_inheritdoc_in_comment_at_0: "Content in the @remarks block will be overwritten by the @inheritDoc tag in comment at {0}"; | ||
readonly example_tag_literal_name: "The first line of an example tag will be taken literally as the example name, and should only contain text."; | ||
readonly inheritdoc_tag_properly_capitalized: "The @inheritDoc tag should be properly capitalized."; | ||
readonly treating_unrecognized_tag_0_as_modifier: "Treating unrecognized tag {0} as a modifier tag."; | ||
readonly unmatched_closing_brace: "Unmatched closing brace."; | ||
readonly unescaped_open_brace_without_inline_tag: "Encountered an unescaped open brace without an inline tag."; | ||
readonly unknown_block_tag_0: "Encountered an unknown block tag {0}."; | ||
readonly unknown_inline_tag_0: "Encountered an unknown inline tag {0}."; | ||
readonly open_brace_within_inline_tag: "Encountered an open brace within an inline tag, this is likely a mistake."; | ||
readonly inline_tag_not_closed: "Inline tag is not closed."; | ||
readonly example_tag_literal_name: "The first line of an example tag will be taken literally as the example name, and should only contain text"; | ||
readonly inheritdoc_tag_properly_capitalized: "The @inheritDoc tag should be properly capitalized"; | ||
readonly treating_unrecognized_tag_0_as_modifier: "Treating unrecognized tag {0} as a modifier tag"; | ||
readonly unmatched_closing_brace: "Unmatched closing brace"; | ||
readonly unescaped_open_brace_without_inline_tag: "Encountered an unescaped open brace without an inline tag"; | ||
readonly unknown_block_tag_0: "Encountered an unknown block tag {0}"; | ||
readonly unknown_inline_tag_0: "Encountered an unknown inline tag {0}"; | ||
readonly open_brace_within_inline_tag: "Encountered an open brace within an inline tag, this is likely a mistake"; | ||
readonly inline_tag_not_closed: "Inline tag is not closed"; | ||
readonly failed_to_resolve_link_to_0_in_comment_for_1: "Failed to resolve link to \"{0}\" in comment for {1}"; | ||
readonly type_0_defined_in_1_is_referenced_by_2_but_not_included_in_docs: "{0}, defined in {1}, is referenced by {2} but not included in the documentation."; | ||
readonly reflection_0_kind_1_defined_in_2_does_not_have_any_documentation: "{0} ({1}), defined in {2}, does not have any documentation."; | ||
readonly failed_to_resolve_link_to_0_in_comment_for_1_may_have_meant_2: "Failed to resolve link to \"{0}\" in comment for {1}. You may have wanted \"{2}\""; | ||
readonly failed_to_resolve_link_to_0_in_readme_for_1: "Failed to resolve link to \"{0}\" in readme for {1}"; | ||
readonly failed_to_resolve_link_to_0_in_readme_for_1_may_have_meant_2: "Failed to resolve link to \"{0}\" in readme for {1}. You may have wanted \"{2}\""; | ||
readonly type_0_defined_in_1_is_referenced_by_2_but_not_included_in_docs: "{0}, defined in {1}, is referenced by {2} but not included in the documentation"; | ||
readonly reflection_0_kind_1_defined_in_2_does_not_have_any_documentation: "{0} ({1}), defined in {2}, does not have any documentation"; | ||
readonly invalid_intentionally_not_exported_symbols_0: "The following symbols were marked as intentionally not exported, but were either not referenced in the documentation, or were exported:\n\t{0}"; | ||
readonly not_all_search_category_boosts_used_0: "Not all categories specified in searchCategoryBoosts were used in the documentation. The unused categories were:\n\t{0}"; | ||
readonly not_all_search_group_boosts_used_0: "Not all groups specified in searchGroupBoosts were used in the documentation. The unused groups were:\n\t{0}"; | ||
readonly comment_for_0_includes_categoryDescription_for_1_but_no_child_in_group: "Comment for {0} includes @categoryDescription for \"{1}\", but no child is placed in that category."; | ||
readonly comment_for_0_includes_groupDescription_for_1_but_no_child_in_group: "Comment for {0} includes @groupDescription for \"{1}\", but no child is placed in that group."; | ||
readonly label_0_for_1_cannot_be_referenced: "The label \"{0}\" for {1} cannot be referenced with a declaration reference. Labels may only contain A-Z, 0-9, and _, and may not start with a number."; | ||
readonly modifier_tag_0_is_mutually_exclusive_with_1_in_comment_for_2: "The modifier tag {0} is mutually exclusive with {1} in the comment for {2}."; | ||
readonly signature_0_has_unused_param_with_name_1: "The signature {0} has an @param with name \"{1}\", which was not used."; | ||
readonly declaration_reference_in_inheritdoc_for_0_not_fully_parsed: "Declaration reference in @inheritDoc for {0} was not fully parsed and may resolve incorrectly."; | ||
readonly comment_for_0_includes_categoryDescription_for_1_but_no_child_in_group: "Comment for {0} includes @categoryDescription for \"{1}\", but no child is placed in that category"; | ||
readonly comment_for_0_includes_groupDescription_for_1_but_no_child_in_group: "Comment for {0} includes @groupDescription for \"{1}\", but no child is placed in that group"; | ||
readonly label_0_for_1_cannot_be_referenced: "The label \"{0}\" for {1} cannot be referenced with a declaration reference. Labels may only contain A-Z, 0-9, and _, and may not start with a number"; | ||
readonly modifier_tag_0_is_mutually_exclusive_with_1_in_comment_for_2: "The modifier tag {0} is mutually exclusive with {1} in the comment for {2}"; | ||
readonly signature_0_has_unused_param_with_name_1: "The signature {0} has an @param with name \"{1}\", which was not used"; | ||
readonly declaration_reference_in_inheritdoc_for_0_not_fully_parsed: "Declaration reference in @inheritDoc for {0} was not fully parsed and may resolve incorrectly"; | ||
readonly failed_to_find_0_to_inherit_comment_from_in_1: "Failed to find \"{0}\" to inherit the comment from in the comment for {1}"; | ||
readonly reflection_0_tried_to_copy_comment_from_1_but_source_had_no_comment: "{0} tried to copy a comment from {1} with @inheritDoc, but the source has no associated comment."; | ||
readonly reflection_0_tried_to_copy_comment_from_1_but_source_had_no_comment: "{0} tried to copy a comment from {1} with @inheritDoc, but the source has no associated comment"; | ||
readonly inheritdoc_circular_inheritance_chain_0: "@inheritDoc specifies a circular inheritance chain: {0}"; | ||
readonly provided_readme_at_0_could_not_be_read: "Provided README path, {0} could not be read."; | ||
readonly defaulting_project_name: "The --name option was not specified, and no package.json was found. Defaulting project name to \"Documentation\"."; | ||
readonly disable_git_set_but_not_source_link_template: "disableGit is set, but sourceLinkTemplate is not, so source links cannot be produced. Set a sourceLinkTemplate or disableSources to prevent source tracking."; | ||
readonly disable_git_set_and_git_revision_used: "disableGit is set and sourceLinkTemplate contains {gitRevision}, which will be replaced with an empty string as no revision was provided."; | ||
readonly git_remote_0_not_valid: "The provided git remote \"{0}\" was not valid. Source links will be broken."; | ||
readonly custom_css_file_0_does_not_exist: "Custom CSS file at {0} does not exist."; | ||
readonly unsupported_highlight_language_0_not_highlighted_in_comment_for_1: "Unsupported highlight language {0} will not be highlighted in comment for {1}."; | ||
readonly unloaded_language_0_not_highlighted_in_comment_for_1: "Code block with language {0} will not be highlighted in comment for {1} as it was not included in the highlightLanguages option."; | ||
readonly yaml_frontmatter_not_an_object: "Expected YAML frontmatter to be an object."; | ||
readonly provided_readme_at_0_could_not_be_read: "Provided README path, {0} could not be read"; | ||
readonly defaulting_project_name: "The --name option was not specified, and no package.json was found. Defaulting project name to \"Documentation\""; | ||
readonly disable_git_set_but_not_source_link_template: "disableGit is set, but sourceLinkTemplate is not, so source links cannot be produced. Set a sourceLinkTemplate or disableSources to prevent source tracking"; | ||
readonly disable_git_set_and_git_revision_used: "disableGit is set and sourceLinkTemplate contains {gitRevision}, which will be replaced with an empty string as no revision was provided"; | ||
readonly git_remote_0_not_valid: "The provided git remote \"{0}\" was not valid. Source links will be broken"; | ||
readonly custom_css_file_0_does_not_exist: "Custom CSS file at {0} does not exist"; | ||
readonly unsupported_highlight_language_0_not_highlighted_in_comment_for_1: "Unsupported highlight language {0} will not be highlighted in comment for {1}"; | ||
readonly unloaded_language_0_not_highlighted_in_comment_for_1: "Code block with language {0} will not be highlighted in comment for {1} as it was not included in the highlightLanguages option"; | ||
readonly yaml_frontmatter_not_an_object: "Expected YAML frontmatter to be an object"; | ||
readonly could_not_write_0: "Could not write {0}"; | ||
@@ -82,124 +87,124 @@ readonly could_not_empty_output_directory_0: "Could not empty the output directory {0}"; | ||
readonly custom_theme_does_not_define_getSlugger: "Custom theme does not define a getSlugger(reflection) method, but tries to render markdown"; | ||
readonly no_entry_points_provided: "No entry points were provided, this is likely a misconfiguration."; | ||
readonly unable_to_find_any_entry_points: "Unable to find any entry points. See previous warnings."; | ||
readonly watch_does_not_support_packages_mode: "Watch mode does not support 'packages' style entry points."; | ||
readonly watch_does_not_support_merge_mode: "Watch mode does not support 'merge' style entry points."; | ||
readonly entry_point_0_not_in_program: "The entry point {0} is not referenced by the 'files' or 'include' option in your tsconfig."; | ||
readonly use_expand_or_glob_for_files_in_dir: "If you wanted to include files inside this directory, set --entryPointStrategy to expand or specify a glob."; | ||
readonly glob_0_did_not_match_any_files: "The glob {0} did not match any files."; | ||
readonly entry_point_0_did_not_match_any_files_after_exclude: "The glob {0} did not match any files after applying exclude patterns."; | ||
readonly entry_point_0_did_not_exist: "Provided entry point {0} does not exist."; | ||
readonly entry_point_0_did_not_match_any_packages: "The entry point glob {0} did not match any directories containing package.json."; | ||
readonly file_0_not_an_object: "The file {0} is not an object."; | ||
readonly serialized_project_referenced_0_not_part_of_project: "Serialized project referenced reflection {0}, which was not a part of the project."; | ||
readonly saved_relative_path_0_resolved_from_1_does_not_exist: "Serialized project referenced {0}, which does not exist relative to {1}."; | ||
readonly no_entry_points_provided: "No entry points were provided, this is likely a misconfiguration"; | ||
readonly unable_to_find_any_entry_points: "Unable to find any entry points. See previous warnings"; | ||
readonly watch_does_not_support_packages_mode: "Watch mode does not support 'packages' style entry points"; | ||
readonly watch_does_not_support_merge_mode: "Watch mode does not support 'merge' style entry points"; | ||
readonly entry_point_0_not_in_program: "The entry point {0} is not referenced by the 'files' or 'include' option in your tsconfig"; | ||
readonly use_expand_or_glob_for_files_in_dir: "If you wanted to include files inside this directory, set --entryPointStrategy to expand or specify a glob"; | ||
readonly glob_0_did_not_match_any_files: "The glob {0} did not match any files"; | ||
readonly entry_point_0_did_not_match_any_files_after_exclude: "The glob {0} did not match any files after applying exclude patterns"; | ||
readonly entry_point_0_did_not_exist: "Provided entry point {0} does not exist"; | ||
readonly entry_point_0_did_not_match_any_packages: "The entry point glob {0} did not match any directories containing package.json"; | ||
readonly file_0_not_an_object: "The file {0} is not an object"; | ||
readonly serialized_project_referenced_0_not_part_of_project: "Serialized project referenced reflection {0}, which was not a part of the project"; | ||
readonly saved_relative_path_0_resolved_from_1_does_not_exist: "Serialized project referenced {0}, which does not exist relative to {1}"; | ||
readonly circular_reference_extends_0: "Circular reference encountered for \"extends\" field of {0}"; | ||
readonly failed_resolve_0_to_file_in_1: "Failed to resolve {0} to a file in {1}"; | ||
readonly option_0_can_only_be_specified_by_config_file: "The '{0}' option can only be specified via a config file."; | ||
readonly option_0_expected_a_value_but_none_provided: "--{0} expected a value, but none was given as an argument."; | ||
readonly option_0_can_only_be_specified_by_config_file: "The '{0}' option can only be specified via a config file"; | ||
readonly option_0_expected_a_value_but_none_provided: "--{0} expected a value, but none was given as an argument"; | ||
readonly unknown_option_0_may_have_meant_1: "Unknown option: {0}, you may have meant:\n\t{1}"; | ||
readonly typedoc_key_in_0_ignored: "The 'typedoc' key in {0} was used by the legacy-packages entryPointStrategy and will be ignored."; | ||
readonly typedoc_options_must_be_object_in_0: "Failed to parse the \"typedocOptions\" field in {0}, ensure it exists and contains an object."; | ||
readonly typedoc_key_in_0_ignored: "The 'typedoc' key in {0} was used by the legacy-packages entryPointStrategy and will be ignored"; | ||
readonly typedoc_options_must_be_object_in_0: "Failed to parse the \"typedocOptions\" field in {0}, ensure it exists and contains an object"; | ||
readonly tsconfig_file_0_does_not_exist: "The tsconfig file {0} does not exist"; | ||
readonly tsconfig_file_specifies_options_file: "\"typedocOptions\" in tsconfig file specifies an option file to read but the option file has already been read. This is likely a misconfiguration."; | ||
readonly tsconfig_file_specifies_tsconfig_file: "\"typedocOptions\" in tsconfig file may not specify a tsconfig file to read."; | ||
readonly tags_0_defined_in_typedoc_json_overwritten_by_tsdoc_json: "The {0} defined in typedoc.json will be overwritten by configuration in tsdoc.json."; | ||
readonly failed_read_tsdoc_json_0: "Failed to read tsdoc.json file at {0}."; | ||
readonly invalid_tsdoc_json_0: "The file {0} is not a valid tsdoc.json file."; | ||
readonly options_file_0_does_not_exist: "The options file {0} does not exist."; | ||
readonly failed_read_options_file_0: "Failed to parse {0}, ensure it exists and exports an object."; | ||
readonly invalid_plugin_0_missing_load_function: "Invalid structure in plugin {0}, no load function found."; | ||
readonly plugin_0_could_not_be_loaded: "The plugin {0} could not be loaded."; | ||
readonly help_options: "Specify a json option file that should be loaded. If not specified TypeDoc will look for 'typedoc.json' in the current directory."; | ||
readonly help_tsconfig: "Specify a TypeScript config file that should be loaded. If not specified TypeDoc will look for 'tsconfig.json' in the current directory."; | ||
readonly help_compilerOptions: "Selectively override the TypeScript compiler options used by TypeDoc."; | ||
readonly help_lang: "Sets the language to be used in generation and in TypeDoc's messages."; | ||
readonly help_locales: "Add translations for a specified locale. This option is primarily intended to be used as a stopgap while waiting for official locale support to be added to TypeDoc."; | ||
readonly help_packageOptions: "Set options which will be set within each package when entryPointStrategy is set to packages."; | ||
readonly help_entryPoints: "The entry points of your documentation."; | ||
readonly help_entryPointStrategy: "The strategy to be used to convert entry points into documentation modules."; | ||
readonly help_alwaysCreateEntryPointModule: "When set, TypeDoc will always create a `Module` for entry points, even if only one is provided."; | ||
readonly help_projectDocuments: "Documents which should be added as children to the root of the generated documentation. Supports globs to match multiple files."; | ||
readonly help_exclude: "Define patterns to be excluded when expanding a directory that was specified as an entry point."; | ||
readonly help_externalPattern: "Define patterns for files that should be considered being external."; | ||
readonly help_excludeExternals: "Prevent externally resolved symbols from being documented."; | ||
readonly help_excludeNotDocumented: "Prevent symbols that are not explicitly documented from appearing in the results."; | ||
readonly help_excludeNotDocumentedKinds: "Specify the type of reflections that can be removed by excludeNotDocumented."; | ||
readonly help_excludeInternal: "Prevent symbols that are marked with @internal from being documented."; | ||
readonly help_excludeCategories: "Exclude symbols within this category from the documentation."; | ||
readonly help_excludePrivate: "Ignore private variables and methods, defaults to true.."; | ||
readonly help_excludeProtected: "Ignore protected variables and methods."; | ||
readonly help_excludeReferences: "If a symbol is exported multiple times, ignore all but the first export."; | ||
readonly help_externalSymbolLinkMappings: "Define custom links for symbols not included in the documentation."; | ||
readonly help_out: "Specify the location the documentation should be written to."; | ||
readonly help_json: "Specify the location and filename a JSON file describing the project is written to."; | ||
readonly help_pretty: "Specify whether the output JSON should be formatted with tabs."; | ||
readonly help_emit: "Specify what TypeDoc should emit, 'docs', 'both', or 'none'."; | ||
readonly tsconfig_file_specifies_options_file: "\"typedocOptions\" in tsconfig file specifies an option file to read but the option file has already been read. This is likely a misconfiguration"; | ||
readonly tsconfig_file_specifies_tsconfig_file: "\"typedocOptions\" in tsconfig file may not specify a tsconfig file to read"; | ||
readonly tags_0_defined_in_typedoc_json_overwritten_by_tsdoc_json: "The {0} defined in typedoc.json will be overwritten by configuration in tsdoc.json"; | ||
readonly failed_read_tsdoc_json_0: "Failed to read tsdoc.json file at {0}"; | ||
readonly invalid_tsdoc_json_0: "The file {0} is not a valid tsdoc.json file"; | ||
readonly options_file_0_does_not_exist: "The options file {0} does not exist"; | ||
readonly failed_read_options_file_0: "Failed to parse {0}, ensure it exists and exports an object"; | ||
readonly invalid_plugin_0_missing_load_function: "Invalid structure in plugin {0}, no load function found"; | ||
readonly plugin_0_could_not_be_loaded: "The plugin {0} could not be loaded"; | ||
readonly help_options: "Specify a json option file that should be loaded. If not specified TypeDoc will look for 'typedoc.json' in the current directory"; | ||
readonly help_tsconfig: "Specify a TypeScript config file that should be loaded. If not specified TypeDoc will look for 'tsconfig.json' in the current directory"; | ||
readonly help_compilerOptions: "Selectively override the TypeScript compiler options used by TypeDoc"; | ||
readonly help_lang: "Sets the language to be used in generation and in TypeDoc's messages"; | ||
readonly help_locales: "Add translations for a specified locale. This option is primarily intended to be used as a stopgap while waiting for official locale support to be added to TypeDoc"; | ||
readonly help_packageOptions: "Set options which will be set within each package when entryPointStrategy is set to packages"; | ||
readonly help_entryPoints: "The entry points of your documentation"; | ||
readonly help_entryPointStrategy: "The strategy to be used to convert entry points into documentation modules"; | ||
readonly help_alwaysCreateEntryPointModule: "When set, TypeDoc will always create a `Module` for entry points, even if only one is provided"; | ||
readonly help_projectDocuments: "Documents which should be added as children to the root of the generated documentation. Supports globs to match multiple files"; | ||
readonly help_exclude: "Define patterns to be excluded when expanding a directory that was specified as an entry point"; | ||
readonly help_externalPattern: "Define patterns for files that should be considered being external"; | ||
readonly help_excludeExternals: "Prevent externally resolved symbols from being documented"; | ||
readonly help_excludeNotDocumented: "Prevent symbols that are not explicitly documented from appearing in the results"; | ||
readonly help_excludeNotDocumentedKinds: "Specify the type of reflections that can be removed by excludeNotDocumented"; | ||
readonly help_excludeInternal: "Prevent symbols that are marked with @internal from being documented"; | ||
readonly help_excludeCategories: "Exclude symbols within this category from the documentation"; | ||
readonly help_excludePrivate: "Ignore private variables and methods, defaults to true."; | ||
readonly help_excludeProtected: "Ignore protected variables and methods"; | ||
readonly help_excludeReferences: "If a symbol is exported multiple times, ignore all but the first export"; | ||
readonly help_externalSymbolLinkMappings: "Define custom links for symbols not included in the documentation"; | ||
readonly help_out: "Specify the location the documentation should be written to"; | ||
readonly help_json: "Specify the location and filename a JSON file describing the project is written to"; | ||
readonly help_pretty: "Specify whether the output JSON should be formatted with tabs"; | ||
readonly help_emit: "Specify what TypeDoc should emit, 'docs', 'both', or 'none'"; | ||
readonly help_theme: "Specify the theme name to render the documentation with"; | ||
readonly help_lightHighlightTheme: "Specify the code highlighting theme in light mode."; | ||
readonly help_darkHighlightTheme: "Specify the code highlighting theme in dark mode."; | ||
readonly help_highlightLanguages: "Specify the languages which will be loaded to highlight code when rendering."; | ||
readonly help_customCss: "Path to a custom CSS file to for the theme to import."; | ||
readonly help_markdownItOptions: "Specify the options passed to markdown-it, the Markdown parser used by TypeDoc."; | ||
readonly help_markdownItLoader: "Specify a callback to be called when loading the markdown-it instance. Will be passed the instance of the parser which TypeDoc will use."; | ||
readonly help_maxTypeConversionDepth: "Set the maximum depth of types to be converted."; | ||
readonly help_name: "Set the name of the project that will be used in the header of the template."; | ||
readonly help_includeVersion: "Add the package version to the project name."; | ||
readonly help_disableSources: "Disable setting the source of a reflection when documenting it."; | ||
readonly help_sourceLinkTemplate: "Specify a link template to be used when generating source urls. If not set, will be automatically created using the git remote. Supports {path}, {line}, {gitRevision} placeholders."; | ||
readonly help_gitRevision: "Use specified revision instead of the last revision for linking to GitHub/Bitbucket source files. Has no effect if disableSources is set."; | ||
readonly help_gitRemote: "Use the specified remote for linking to GitHub/Bitbucket source files. Has no effect if disableGit or disableSources is set."; | ||
readonly help_lightHighlightTheme: "Specify the code highlighting theme in light mode"; | ||
readonly help_darkHighlightTheme: "Specify the code highlighting theme in dark mode"; | ||
readonly help_highlightLanguages: "Specify the languages which will be loaded to highlight code when rendering"; | ||
readonly help_customCss: "Path to a custom CSS file to for the theme to import"; | ||
readonly help_markdownItOptions: "Specify the options passed to markdown-it, the Markdown parser used by TypeDoc"; | ||
readonly help_markdownItLoader: "Specify a callback to be called when loading the markdown-it instance. Will be passed the instance of the parser which TypeDoc will use"; | ||
readonly help_maxTypeConversionDepth: "Set the maximum depth of types to be converted"; | ||
readonly help_name: "Set the name of the project that will be used in the header of the template"; | ||
readonly help_includeVersion: "Add the package version to the project name"; | ||
readonly help_disableSources: "Disable setting the source of a reflection when documenting it"; | ||
readonly help_sourceLinkTemplate: "Specify a link template to be used when generating source urls. If not set, will be automatically created using the git remote. Supports {path}, {line}, {gitRevision} placeholders"; | ||
readonly help_gitRevision: "Use specified revision instead of the last revision for linking to GitHub/Bitbucket source files. Has no effect if disableSources is set"; | ||
readonly help_gitRemote: "Use the specified remote for linking to GitHub/Bitbucket source files. Has no effect if disableGit or disableSources is set"; | ||
readonly help_disableGit: "Assume that all can be linked to with the sourceLinkTemplate, sourceLinkTemplate must be set if this is enabled. {path} will be rooted at basePath"; | ||
readonly help_basePath: "Specifies the base path to be used when displaying file paths."; | ||
readonly help_excludeTags: "Remove the listed block/modifier tags from doc comments."; | ||
readonly help_readme: "Path to the readme file that should be displayed on the index page. Pass `none` to disable the index page and start the documentation on the globals page."; | ||
readonly help_cname: "Set the CNAME file text, it's useful for custom domains on GitHub Pages."; | ||
readonly help_sourceLinkExternal: "Specifies that source links should be treated as external links to be opened in a new tab."; | ||
readonly help_githubPages: "Generate a .nojekyll file to prevent 404 errors in GitHub Pages. Defaults to `true`."; | ||
readonly help_hostedBaseUrl: "Specify a base URL to be used in generating a sitemap.xml in our output folder and canonical links. If not specified, no sitemap will be generated."; | ||
readonly help_useHostedBaseUrlForAbsoluteLinks: "If set, TypeDoc will produce absolute links to pages on your site using the hostedBaseUrl option."; | ||
readonly help_gaID: "Set the Google Analytics tracking ID and activate tracking code."; | ||
readonly help_hideGenerator: "Do not print the TypeDoc link at the end of the page."; | ||
readonly help_customFooterHtml: "Custom footer after the TypeDoc link."; | ||
readonly help_customFooterHtmlDisableWrapper: "If set, disables the wrapper element for customFooterHtml."; | ||
readonly help_hideParameterTypesInTitle: "Hides parameter types in signature titles for easier scanning."; | ||
readonly help_cacheBust: "Include the generation time in links to static assets."; | ||
readonly help_searchInComments: "If set, the search index will also include comments. This will greatly increase the size of the search index."; | ||
readonly help_searchInDocuments: "If set, the search index will also include documents. This will greatly increase the size of the search index."; | ||
readonly help_cleanOutputDir: "If set, TypeDoc will remove the output directory before writing output."; | ||
readonly help_titleLink: "Set the link the title in the header points to. Defaults to the documentation homepage."; | ||
readonly help_navigationLinks: "Defines links to be included in the header."; | ||
readonly help_sidebarLinks: "Defines links to be included in the sidebar."; | ||
readonly help_navigationLeaves: "Branches of the navigation tree which should not be expanded."; | ||
readonly help_navigation: "Determines how the navigation sidebar is organized."; | ||
readonly help_visibilityFilters: "Specify the default visibility for builtin filters and additional filters according to modifier tags."; | ||
readonly help_basePath: "Specifies the base path to be used when displaying file paths"; | ||
readonly help_excludeTags: "Remove the listed block/modifier tags from doc comments"; | ||
readonly help_readme: "Path to the readme file that should be displayed on the index page. Pass `none` to disable the index page and start the documentation on the globals page"; | ||
readonly help_cname: "Set the CNAME file text, it's useful for custom domains on GitHub Pages"; | ||
readonly help_sourceLinkExternal: "Specifies that source links should be treated as external links to be opened in a new tab"; | ||
readonly help_githubPages: "Generate a .nojekyll file to prevent 404 errors in GitHub Pages. Defaults to `true`"; | ||
readonly help_hostedBaseUrl: "Specify a base URL to be used in generating a sitemap.xml in our output folder and canonical links. If not specified, no sitemap will be generated"; | ||
readonly help_useHostedBaseUrlForAbsoluteLinks: "If set, TypeDoc will produce absolute links to pages on your site using the hostedBaseUrl option"; | ||
readonly help_gaID: "Set the Google Analytics tracking ID and activate tracking code"; | ||
readonly help_hideGenerator: "Do not print the TypeDoc link at the end of the page"; | ||
readonly help_customFooterHtml: "Custom footer after the TypeDoc link"; | ||
readonly help_customFooterHtmlDisableWrapper: "If set, disables the wrapper element for customFooterHtml"; | ||
readonly help_hideParameterTypesInTitle: "Hides parameter types in signature titles for easier scanning"; | ||
readonly help_cacheBust: "Include the generation time in links to static assets"; | ||
readonly help_searchInComments: "If set, the search index will also include comments. This will greatly increase the size of the search index"; | ||
readonly help_searchInDocuments: "If set, the search index will also include documents. This will greatly increase the size of the search index"; | ||
readonly help_cleanOutputDir: "If set, TypeDoc will remove the output directory before writing output"; | ||
readonly help_titleLink: "Set the link the title in the header points to. Defaults to the documentation homepage"; | ||
readonly help_navigationLinks: "Defines links to be included in the header"; | ||
readonly help_sidebarLinks: "Defines links to be included in the sidebar"; | ||
readonly help_navigationLeaves: "Branches of the navigation tree which should not be expanded"; | ||
readonly help_navigation: "Determines how the navigation sidebar is organized"; | ||
readonly help_visibilityFilters: "Specify the default visibility for builtin filters and additional filters according to modifier tags"; | ||
readonly help_searchCategoryBoosts: "Configure search to give a relevance boost to selected categories"; | ||
readonly help_searchGroupBoosts: "Configure search to give a relevance boost to selected kinds (eg \"class\")"; | ||
readonly help_jsDocCompatibility: "Sets compatibility options for comment parsing that increase similarity with JSDoc comments."; | ||
readonly help_commentStyle: "Determines how TypeDoc searches for comments."; | ||
readonly help_useTsLinkResolution: "Use TypeScript's link resolution when determining where @link tags point. This only applies to JSDoc style comments."; | ||
readonly help_preserveLinkText: "If set, @link tags without link text will use the text content as the link. If not set, will use the target reflection name."; | ||
readonly help_blockTags: "Block tags which TypeDoc should recognize when parsing comments."; | ||
readonly help_inlineTags: "Inline tags which TypeDoc should recognize when parsing comments."; | ||
readonly help_modifierTags: "Modifier tags which TypeDoc should recognize when parsing comments."; | ||
readonly help_categorizeByGroup: "Specify whether categorization will be done at the group level."; | ||
readonly help_defaultCategory: "Specify the default category for reflections without a category."; | ||
readonly help_categoryOrder: "Specify the order in which categories appear. * indicates the relative order for categories not in the list."; | ||
readonly help_groupOrder: "Specify the order in which groups appear. * indicates the relative order for groups not in the list."; | ||
readonly help_sort: "Specify the sort strategy for documented values."; | ||
readonly help_sortEntryPoints: "If set, entry points will be subject to the same sorting rules as other reflections."; | ||
readonly help_kindSortOrder: "Specify the sort order for reflections when 'kind' is specified."; | ||
readonly help_watch: "Watch files for changes and rebuild docs on change."; | ||
readonly help_preserveWatchOutput: "If set, TypeDoc will not clear the screen between compilation runs."; | ||
readonly help_skipErrorChecking: "Do not run TypeScript's type checking before generating docs."; | ||
readonly help_help: "Print this message."; | ||
readonly help_version: "Print TypeDoc's version."; | ||
readonly help_showConfig: "Print the resolved configuration and exit."; | ||
readonly help_plugin: "Specify the npm plugins that should be loaded. Omit to load all installed plugins."; | ||
readonly help_logLevel: "Specify what level of logging should be used."; | ||
readonly help_treatWarningsAsErrors: "If set, all warnings will be treated as errors."; | ||
readonly help_treatValidationWarningsAsErrors: "If set, warnings emitted during validation will be treated as errors. This option cannot be used to disable treatWarningsAsErrors for validation warnings."; | ||
readonly help_intentionallyNotExported: "A list of types which should not produce 'referenced but not documented' warnings."; | ||
readonly help_jsDocCompatibility: "Sets compatibility options for comment parsing that increase similarity with JSDoc comments"; | ||
readonly help_commentStyle: "Determines how TypeDoc searches for comments"; | ||
readonly help_useTsLinkResolution: "Use TypeScript's link resolution when determining where @link tags point. This only applies to JSDoc style comments"; | ||
readonly help_preserveLinkText: "If set, @link tags without link text will use the text content as the link. If not set, will use the target reflection name"; | ||
readonly help_blockTags: "Block tags which TypeDoc should recognize when parsing comments"; | ||
readonly help_inlineTags: "Inline tags which TypeDoc should recognize when parsing comments"; | ||
readonly help_modifierTags: "Modifier tags which TypeDoc should recognize when parsing comments"; | ||
readonly help_categorizeByGroup: "Specify whether categorization will be done at the group level"; | ||
readonly help_defaultCategory: "Specify the default category for reflections without a category"; | ||
readonly help_categoryOrder: "Specify the order in which categories appear. * indicates the relative order for categories not in the list"; | ||
readonly help_groupOrder: "Specify the order in which groups appear. * indicates the relative order for groups not in the list"; | ||
readonly help_sort: "Specify the sort strategy for documented values"; | ||
readonly help_sortEntryPoints: "If set, entry points will be subject to the same sorting rules as other reflections"; | ||
readonly help_kindSortOrder: "Specify the sort order for reflections when 'kind' is specified"; | ||
readonly help_watch: "Watch files for changes and rebuild docs on change"; | ||
readonly help_preserveWatchOutput: "If set, TypeDoc will not clear the screen between compilation runs"; | ||
readonly help_skipErrorChecking: "Do not run TypeScript's type checking before generating docs"; | ||
readonly help_help: "Print this message"; | ||
readonly help_version: "Print TypeDoc's version"; | ||
readonly help_showConfig: "Print the resolved configuration and exit"; | ||
readonly help_plugin: "Specify the npm plugins that should be loaded. Omit to load all installed plugins"; | ||
readonly help_logLevel: "Specify what level of logging should be used"; | ||
readonly help_treatWarningsAsErrors: "If set, all warnings will be treated as errors"; | ||
readonly help_treatValidationWarningsAsErrors: "If set, warnings emitted during validation will be treated as errors. This option cannot be used to disable treatWarningsAsErrors for validation warnings"; | ||
readonly help_intentionallyNotExported: "A list of types which should not produce 'referenced but not documented' warnings"; | ||
readonly help_requiredToBeDocumented: "A list of reflection kinds that must be documented"; | ||
readonly help_validation: "Specify which validation steps TypeDoc should perform on your generated documentation."; | ||
readonly help_validation: "Specify which validation steps TypeDoc should perform on your generated documentation"; | ||
readonly unknown_option_0_you_may_have_meant_1: "Unknown option '{0}' You may have meant:\n\t{1}"; | ||
@@ -212,3 +217,3 @@ readonly option_0_must_be_between_1_and_2: "{0} must be between {1} and {2}"; | ||
readonly expected_object_with_flag_values_for_0: "Expected an object with flag values for {0} or true/false"; | ||
readonly flag_values_for_0_must_be_booleans: "Flag values for {0} must be a boolean."; | ||
readonly flag_values_for_0_must_be_booleans: "Flag values for {0} must be a boolean"; | ||
readonly locales_must_be_an_object: "The 'locales' option must be set to an object which resembles: { en: { theme_implements: \"Implements\" }}"; | ||
@@ -218,13 +223,13 @@ readonly exclude_not_documented_specified_0_valid_values_are_1: "excludeNotDocumentedKinds may only specify known values, and invalid values were provided ({0}). The valid kinds are:\n{1}"; | ||
readonly highlight_theme_0_must_be_one_of_1: "{0} must be one of the following: {1}"; | ||
readonly highlightLanguages_contains_invalid_languages_0: "highlightLanguages contains invalid languages: {0}, run typedoc --help for a list of supported languages."; | ||
readonly highlightLanguages_contains_invalid_languages_0: "highlightLanguages contains invalid languages: {0}, run typedoc --help for a list of supported languages"; | ||
readonly hostedBaseUrl_must_start_with_http: "hostedBaseUrl must start with http:// or https://"; | ||
readonly useHostedBaseUrlForAbsoluteLinks_requires_hostedBaseUrl: "The useHostedBaseUrlForAbsoluteLinks option requires that hostedBaseUrl be set"; | ||
readonly option_0_must_be_an_object: "The '{0}' option must be a non-array object."; | ||
readonly option_0_must_be_a_function: "The '{0}' option must be a function."; | ||
readonly option_0_must_be_object_with_urls: "{0} must be an object with string labels as keys and URL values."; | ||
readonly option_0_must_be_an_object: "The '{0}' option must be a non-array object"; | ||
readonly option_0_must_be_a_function: "The '{0}' option must be a function"; | ||
readonly option_0_must_be_object_with_urls: "{0} must be an object with string labels as keys and URL values"; | ||
readonly visibility_filters_only_include_0: "visibilityFilters can only include the following non-@ keys: {0}"; | ||
readonly visibility_filters_must_be_booleans: "All values of visibilityFilters must be booleans."; | ||
readonly visibility_filters_must_be_booleans: "All values of visibilityFilters must be booleans"; | ||
readonly option_0_values_must_be_numbers: "All values of {0} must be numbers"; | ||
readonly option_0_values_must_be_array_of_tags: "{0} must be an array of valid tag names."; | ||
readonly option_0_specified_1_but_only_2_is_valid: "{0} may only specify known values, and invalid values were provided ({0}). The valid sort strategies are:\n{1}"; | ||
readonly option_0_values_must_be_array_of_tags: "{0} must be an array of valid tag names"; | ||
readonly option_0_specified_1_but_only_2_is_valid: "{0} may only specify known values, and invalid values were provided ({1}). The valid sort strategies are:\n{2}"; | ||
readonly kind_project: "Project"; | ||
@@ -278,2 +283,13 @@ readonly kind_module: "Module"; | ||
readonly kind_plural_document: "Documents"; | ||
readonly flag_private: "Private"; | ||
readonly flag_protected: "Protected"; | ||
readonly flag_public: "Public"; | ||
readonly flag_static: "Static"; | ||
readonly flag_external: "External"; | ||
readonly flag_optional: "Optional"; | ||
readonly flag_rest: "Rest"; | ||
readonly flag_abstract: "Abstract"; | ||
readonly flag_const: "Const"; | ||
readonly flag_readonly: "Readonly"; | ||
readonly flag_inherited: "Inherited"; | ||
readonly theme_implements: "Implements"; | ||
@@ -309,3 +325,4 @@ readonly theme_indexable: "Indexable"; | ||
[K in keyof typeof translatable]: BuildTranslationArguments<(typeof translatable)[K]>; | ||
}; | ||
} & Record<(typeof blockTags)[number] | (typeof inlineTags)[number] | (typeof modifierTags)[number] extends `@${infer T}` ? `tag_${T}` : never, [ | ||
]>; | ||
type BuildTranslationArguments<T extends string, Acc extends any[] = []> = T extends `${string}{${bigint}}${infer R}` ? BuildTranslationArguments<R, [...Acc, string]> : Acc; | ||
@@ -312,0 +329,0 @@ export type BuiltinTranslatableStringConstraints = { |
@@ -15,33 +15,34 @@ "use strict"; | ||
unsupported_ts_version_0: "You are running with an unsupported TypeScript version! If TypeDoc crashes, this is why. TypeDoc supports {0}", | ||
no_compiler_options_set: "No compiler options set. This likely means that TypeDoc did not find your tsconfig.json. Generated documentation will probably be empty.", | ||
no_compiler_options_set: "No compiler options set. This likely means that TypeDoc did not find your tsconfig.json. Generated documentation will probably be empty", | ||
loaded_plugin_0: `Loaded plugin {0}`, | ||
solution_not_supported_in_watch_mode: "The provided tsconfig file looks like a solution style tsconfig, which is not supported in watch mode.", | ||
strategy_not_supported_in_watch_mode: "entryPointStrategy must be set to either resolve or expand for watch mode.", | ||
docs_could_not_be_generated: "Documentation could not be generated due to the errors above.", | ||
solution_not_supported_in_watch_mode: "The provided tsconfig file looks like a solution style tsconfig, which is not supported in watch mode", | ||
strategy_not_supported_in_watch_mode: "entryPointStrategy must be set to either resolve or expand for watch mode", | ||
found_0_errors_and_1_warnings: "Found {0} errors and {1} warnings", | ||
docs_could_not_be_generated: "Documentation could not be generated due to the errors above", | ||
docs_generated_at_0: "Documentation generated at {0}", | ||
json_written_to_0: "JSON written to {0}", | ||
no_entry_points_for_packages: "No entry points provided to packages mode, documentation cannot be generated.", | ||
no_entry_points_for_packages: "No entry points provided to packages mode, documentation cannot be generated", | ||
failed_to_find_packages: "Failed to find any packages, ensure you have provided at least one directory as an entry point containing package.json", | ||
nested_packages_unsupported_0: "Project at {0} has entryPointStrategy set to packages, but nested packages are not supported.", | ||
nested_packages_unsupported_0: "Project at {0} has entryPointStrategy set to packages, but nested packages are not supported", | ||
previous_error_occurred_when_reading_options_for_0: "The previous error occurred when reading options for the package at {0}", | ||
converting_project_at_0: "Converting project at {0}", | ||
failed_to_convert_packages: "Failed to convert one or more packages, result will not be merged together.", | ||
failed_to_convert_packages: "Failed to convert one or more packages, result will not be merged together", | ||
merging_converted_projects: "Merging converted projects", | ||
no_entry_points_to_merge: "No entry points provided to merge.", | ||
entrypoint_did_not_match_files_0: "The entrypoint glob {0} did not match any files.", | ||
failed_to_parse_json_0: `Failed to parse file at {0} as json.`, | ||
no_entry_points_to_merge: "No entry points provided to merge", | ||
entrypoint_did_not_match_files_0: "The entrypoint glob {0} did not match any files", | ||
failed_to_parse_json_0: `Failed to parse file at {0} as json`, | ||
failed_to_read_0_when_processing_document_tag_in_1: `Failed to read file {0} when processing @document tag for comment in {1}`, | ||
failed_to_read_0_when_processing_project_document: `Failed to read file {0} when adding project document`, | ||
failed_to_read_0_when_processing_document_child_in_1: `Failed to read file {0} when processing document children in {1}`, | ||
frontmatter_children_0_should_be_an_array_of_strings_or_object_with_string_values: "Frontmatter children in {0} should be an array of strings or an object with string values.", | ||
converting_union_as_interface: `Using @interface on a union type will discard properties not present on all branches of the union. TypeDoc's output may not accurately describe your source code.`, | ||
converting_0_as_class_requires_value_declaration: `Converting {0} as a class requires a declaration which represents a non-type value.`, | ||
frontmatter_children_0_should_be_an_array_of_strings_or_object_with_string_values: "Frontmatter children in {0} should be an array of strings or an object with string values", | ||
converting_union_as_interface: `Using @interface on a union type will discard properties not present on all branches of the union. TypeDoc's output may not accurately describe your source code`, | ||
converting_0_as_class_requires_value_declaration: `Converting {0} as a class requires a declaration which represents a non-type value`, | ||
converting_0_as_class_without_construct_signatures: `{0} is being converted as a class, but does not have any construct signatures`, | ||
comment_for_0_should_not_contain_block_or_modifier_tags: `The comment for {0} should not contain any block or modifier tags.`, | ||
symbol_0_has_multiple_declarations_with_comment: `{0} has multiple declarations with a comment. An arbitrary comment will be used.`, | ||
comment_for_0_should_not_contain_block_or_modifier_tags: `The comment for {0} should not contain any block or modifier tags`, | ||
symbol_0_has_multiple_declarations_with_comment: `{0} has multiple declarations with a comment. An arbitrary comment will be used`, | ||
comments_for_0_are_declared_at_1: `The comments for {0} are declared at:\n\t{1}`, | ||
// comments/parser.ts | ||
multiple_type_parameters_on_template_tag_unsupported: `TypeDoc does not support multiple type parameters defined in a single @template tag with a comment.`, | ||
failed_to_find_jsdoc_tag_for_name_0: `Failed to find JSDoc tag for {0} after parsing comment, please file a bug report.`, | ||
relative_path_0_does_not_exist: `The relative path {0} does not exist.`, | ||
multiple_type_parameters_on_template_tag_unsupported: `TypeDoc does not support multiple type parameters defined in a single @template tag with a comment`, | ||
failed_to_find_jsdoc_tag_for_name_0: `Failed to find JSDoc tag for {0} after parsing comment, please file a bug report`, | ||
relative_path_0_does_not_exist: `The relative path {0} does not exist`, | ||
inline_inheritdoc_should_not_appear_in_block_tag_in_comment_at_0: "An inline @inheritDoc tag should not appear within a block tag as it will not be processed in comment at {0}", | ||
@@ -53,15 +54,18 @@ at_most_one_remarks_tag_expected_in_comment_at_0: "At most one @remarks tag is expected in a comment, ignoring all but the first in comment at {0}", | ||
content_in_remarks_block_overwritten_by_inheritdoc_in_comment_at_0: "Content in the @remarks block will be overwritten by the @inheritDoc tag in comment at {0}", | ||
example_tag_literal_name: "The first line of an example tag will be taken literally as the example name, and should only contain text.", | ||
inheritdoc_tag_properly_capitalized: "The @inheritDoc tag should be properly capitalized.", | ||
treating_unrecognized_tag_0_as_modifier: `Treating unrecognized tag {0} as a modifier tag.`, | ||
unmatched_closing_brace: `Unmatched closing brace.`, | ||
unescaped_open_brace_without_inline_tag: `Encountered an unescaped open brace without an inline tag.`, | ||
unknown_block_tag_0: `Encountered an unknown block tag {0}.`, | ||
unknown_inline_tag_0: `Encountered an unknown inline tag {0}.`, | ||
open_brace_within_inline_tag: `Encountered an open brace within an inline tag, this is likely a mistake.`, | ||
inline_tag_not_closed: `Inline tag is not closed.`, | ||
example_tag_literal_name: "The first line of an example tag will be taken literally as the example name, and should only contain text", | ||
inheritdoc_tag_properly_capitalized: "The @inheritDoc tag should be properly capitalized", | ||
treating_unrecognized_tag_0_as_modifier: `Treating unrecognized tag {0} as a modifier tag`, | ||
unmatched_closing_brace: `Unmatched closing brace`, | ||
unescaped_open_brace_without_inline_tag: `Encountered an unescaped open brace without an inline tag`, | ||
unknown_block_tag_0: `Encountered an unknown block tag {0}`, | ||
unknown_inline_tag_0: `Encountered an unknown inline tag {0}`, | ||
open_brace_within_inline_tag: `Encountered an open brace within an inline tag, this is likely a mistake`, | ||
inline_tag_not_closed: `Inline tag is not closed`, | ||
// validation | ||
failed_to_resolve_link_to_0_in_comment_for_1: `Failed to resolve link to "{0}" in comment for {1}`, | ||
type_0_defined_in_1_is_referenced_by_2_but_not_included_in_docs: `{0}, defined in {1}, is referenced by {2} but not included in the documentation.`, | ||
reflection_0_kind_1_defined_in_2_does_not_have_any_documentation: `{0} ({1}), defined in {2}, does not have any documentation.`, | ||
failed_to_resolve_link_to_0_in_comment_for_1_may_have_meant_2: `Failed to resolve link to "{0}" in comment for {1}. You may have wanted "{2}"`, | ||
failed_to_resolve_link_to_0_in_readme_for_1: `Failed to resolve link to "{0}" in readme for {1}`, | ||
failed_to_resolve_link_to_0_in_readme_for_1_may_have_meant_2: `Failed to resolve link to "{0}" in readme for {1}. You may have wanted "{2}"`, | ||
type_0_defined_in_1_is_referenced_by_2_but_not_included_in_docs: `{0}, defined in {1}, is referenced by {2} but not included in the documentation`, | ||
reflection_0_kind_1_defined_in_2_does_not_have_any_documentation: `{0} ({1}), defined in {2}, does not have any documentation`, | ||
invalid_intentionally_not_exported_symbols_0: "The following symbols were marked as intentionally not exported, but were either not referenced in the documentation, or were exported:\n\t{0}", | ||
@@ -71,21 +75,21 @@ // conversion plugins | ||
not_all_search_group_boosts_used_0: `Not all groups specified in searchGroupBoosts were used in the documentation. The unused groups were:\n\t{0}`, | ||
comment_for_0_includes_categoryDescription_for_1_but_no_child_in_group: `Comment for {0} includes @categoryDescription for "{1}", but no child is placed in that category.`, | ||
comment_for_0_includes_groupDescription_for_1_but_no_child_in_group: `Comment for {0} includes @groupDescription for "{1}", but no child is placed in that group.`, | ||
label_0_for_1_cannot_be_referenced: `The label "{0}" for {1} cannot be referenced with a declaration reference. Labels may only contain A-Z, 0-9, and _, and may not start with a number.`, | ||
modifier_tag_0_is_mutually_exclusive_with_1_in_comment_for_2: `The modifier tag {0} is mutually exclusive with {1} in the comment for {2}.`, | ||
signature_0_has_unused_param_with_name_1: `The signature {0} has an @param with name "{1}", which was not used.`, | ||
declaration_reference_in_inheritdoc_for_0_not_fully_parsed: `Declaration reference in @inheritDoc for {0} was not fully parsed and may resolve incorrectly.`, | ||
comment_for_0_includes_categoryDescription_for_1_but_no_child_in_group: `Comment for {0} includes @categoryDescription for "{1}", but no child is placed in that category`, | ||
comment_for_0_includes_groupDescription_for_1_but_no_child_in_group: `Comment for {0} includes @groupDescription for "{1}", but no child is placed in that group`, | ||
label_0_for_1_cannot_be_referenced: `The label "{0}" for {1} cannot be referenced with a declaration reference. Labels may only contain A-Z, 0-9, and _, and may not start with a number`, | ||
modifier_tag_0_is_mutually_exclusive_with_1_in_comment_for_2: `The modifier tag {0} is mutually exclusive with {1} in the comment for {2}`, | ||
signature_0_has_unused_param_with_name_1: `The signature {0} has an @param with name "{1}", which was not used`, | ||
declaration_reference_in_inheritdoc_for_0_not_fully_parsed: `Declaration reference in @inheritDoc for {0} was not fully parsed and may resolve incorrectly`, | ||
failed_to_find_0_to_inherit_comment_from_in_1: `Failed to find "{0}" to inherit the comment from in the comment for {1}`, | ||
reflection_0_tried_to_copy_comment_from_1_but_source_had_no_comment: `{0} tried to copy a comment from {1} with @inheritDoc, but the source has no associated comment.`, | ||
reflection_0_tried_to_copy_comment_from_1_but_source_had_no_comment: `{0} tried to copy a comment from {1} with @inheritDoc, but the source has no associated comment`, | ||
inheritdoc_circular_inheritance_chain_0: `@inheritDoc specifies a circular inheritance chain: {0}`, | ||
provided_readme_at_0_could_not_be_read: `Provided README path, {0} could not be read.`, | ||
defaulting_project_name: 'The --name option was not specified, and no package.json was found. Defaulting project name to "Documentation".', | ||
disable_git_set_but_not_source_link_template: `disableGit is set, but sourceLinkTemplate is not, so source links cannot be produced. Set a sourceLinkTemplate or disableSources to prevent source tracking.`, | ||
disable_git_set_and_git_revision_used: `disableGit is set and sourceLinkTemplate contains {gitRevision}, which will be replaced with an empty string as no revision was provided.`, | ||
git_remote_0_not_valid: `The provided git remote "{0}" was not valid. Source links will be broken.`, | ||
provided_readme_at_0_could_not_be_read: `Provided README path, {0} could not be read`, | ||
defaulting_project_name: 'The --name option was not specified, and no package.json was found. Defaulting project name to "Documentation"', | ||
disable_git_set_but_not_source_link_template: `disableGit is set, but sourceLinkTemplate is not, so source links cannot be produced. Set a sourceLinkTemplate or disableSources to prevent source tracking`, | ||
disable_git_set_and_git_revision_used: `disableGit is set and sourceLinkTemplate contains {gitRevision}, which will be replaced with an empty string as no revision was provided`, | ||
git_remote_0_not_valid: `The provided git remote "{0}" was not valid. Source links will be broken`, | ||
// output plugins | ||
custom_css_file_0_does_not_exist: `Custom CSS file at {0} does not exist.`, | ||
unsupported_highlight_language_0_not_highlighted_in_comment_for_1: `Unsupported highlight language {0} will not be highlighted in comment for {1}.`, | ||
unloaded_language_0_not_highlighted_in_comment_for_1: `Code block with language {0} will not be highlighted in comment for {1} as it was not included in the highlightLanguages option.`, | ||
yaml_frontmatter_not_an_object: `Expected YAML frontmatter to be an object.`, | ||
custom_css_file_0_does_not_exist: `Custom CSS file at {0} does not exist`, | ||
unsupported_highlight_language_0_not_highlighted_in_comment_for_1: `Unsupported highlight language {0} will not be highlighted in comment for {1}`, | ||
unloaded_language_0_not_highlighted_in_comment_for_1: `Code block with language {0} will not be highlighted in comment for {1} as it was not included in the highlightLanguages option`, | ||
yaml_frontmatter_not_an_object: `Expected YAML frontmatter to be an object`, | ||
// renderer | ||
@@ -98,128 +102,128 @@ could_not_write_0: `Could not write {0}`, | ||
// entry points | ||
no_entry_points_provided: "No entry points were provided, this is likely a misconfiguration.", | ||
unable_to_find_any_entry_points: "Unable to find any entry points. See previous warnings.", | ||
watch_does_not_support_packages_mode: "Watch mode does not support 'packages' style entry points.", | ||
watch_does_not_support_merge_mode: "Watch mode does not support 'merge' style entry points.", | ||
entry_point_0_not_in_program: `The entry point {0} is not referenced by the 'files' or 'include' option in your tsconfig.`, | ||
use_expand_or_glob_for_files_in_dir: `If you wanted to include files inside this directory, set --entryPointStrategy to expand or specify a glob.`, | ||
glob_0_did_not_match_any_files: `The glob {0} did not match any files.`, | ||
entry_point_0_did_not_match_any_files_after_exclude: `The glob {0} did not match any files after applying exclude patterns.`, | ||
entry_point_0_did_not_exist: `Provided entry point {0} does not exist.`, | ||
entry_point_0_did_not_match_any_packages: `The entry point glob {0} did not match any directories containing package.json.`, | ||
file_0_not_an_object: `The file {0} is not an object.`, | ||
no_entry_points_provided: "No entry points were provided, this is likely a misconfiguration", | ||
unable_to_find_any_entry_points: "Unable to find any entry points. See previous warnings", | ||
watch_does_not_support_packages_mode: "Watch mode does not support 'packages' style entry points", | ||
watch_does_not_support_merge_mode: "Watch mode does not support 'merge' style entry points", | ||
entry_point_0_not_in_program: `The entry point {0} is not referenced by the 'files' or 'include' option in your tsconfig`, | ||
use_expand_or_glob_for_files_in_dir: `If you wanted to include files inside this directory, set --entryPointStrategy to expand or specify a glob`, | ||
glob_0_did_not_match_any_files: `The glob {0} did not match any files`, | ||
entry_point_0_did_not_match_any_files_after_exclude: `The glob {0} did not match any files after applying exclude patterns`, | ||
entry_point_0_did_not_exist: `Provided entry point {0} does not exist`, | ||
entry_point_0_did_not_match_any_packages: `The entry point glob {0} did not match any directories containing package.json`, | ||
file_0_not_an_object: `The file {0} is not an object`, | ||
// deserialization | ||
serialized_project_referenced_0_not_part_of_project: `Serialized project referenced reflection {0}, which was not a part of the project.`, | ||
saved_relative_path_0_resolved_from_1_does_not_exist: `Serialized project referenced {0}, which does not exist relative to {1}.`, | ||
serialized_project_referenced_0_not_part_of_project: `Serialized project referenced reflection {0}, which was not a part of the project`, | ||
saved_relative_path_0_resolved_from_1_does_not_exist: `Serialized project referenced {0}, which does not exist relative to {1}`, | ||
// options | ||
circular_reference_extends_0: `Circular reference encountered for "extends" field of {0}`, | ||
failed_resolve_0_to_file_in_1: `Failed to resolve {0} to a file in {1}`, | ||
option_0_can_only_be_specified_by_config_file: `The '{0}' option can only be specified via a config file.`, | ||
option_0_expected_a_value_but_none_provided: `--{0} expected a value, but none was given as an argument.`, | ||
option_0_can_only_be_specified_by_config_file: `The '{0}' option can only be specified via a config file`, | ||
option_0_expected_a_value_but_none_provided: `--{0} expected a value, but none was given as an argument`, | ||
unknown_option_0_may_have_meant_1: `Unknown option: {0}, you may have meant:\n\t{1}`, | ||
typedoc_key_in_0_ignored: `The 'typedoc' key in {0} was used by the legacy-packages entryPointStrategy and will be ignored.`, | ||
typedoc_options_must_be_object_in_0: `Failed to parse the "typedocOptions" field in {0}, ensure it exists and contains an object.`, | ||
typedoc_key_in_0_ignored: `The 'typedoc' key in {0} was used by the legacy-packages entryPointStrategy and will be ignored`, | ||
typedoc_options_must_be_object_in_0: `Failed to parse the "typedocOptions" field in {0}, ensure it exists and contains an object`, | ||
tsconfig_file_0_does_not_exist: `The tsconfig file {0} does not exist`, | ||
tsconfig_file_specifies_options_file: `"typedocOptions" in tsconfig file specifies an option file to read but the option file has already been read. This is likely a misconfiguration.`, | ||
tsconfig_file_specifies_tsconfig_file: `"typedocOptions" in tsconfig file may not specify a tsconfig file to read.`, | ||
tags_0_defined_in_typedoc_json_overwritten_by_tsdoc_json: `The {0} defined in typedoc.json will be overwritten by configuration in tsdoc.json.`, | ||
failed_read_tsdoc_json_0: `Failed to read tsdoc.json file at {0}.`, | ||
invalid_tsdoc_json_0: `The file {0} is not a valid tsdoc.json file.`, | ||
options_file_0_does_not_exist: `The options file {0} does not exist.`, | ||
failed_read_options_file_0: `Failed to parse {0}, ensure it exists and exports an object.`, | ||
tsconfig_file_specifies_options_file: `"typedocOptions" in tsconfig file specifies an option file to read but the option file has already been read. This is likely a misconfiguration`, | ||
tsconfig_file_specifies_tsconfig_file: `"typedocOptions" in tsconfig file may not specify a tsconfig file to read`, | ||
tags_0_defined_in_typedoc_json_overwritten_by_tsdoc_json: `The {0} defined in typedoc.json will be overwritten by configuration in tsdoc.json`, | ||
failed_read_tsdoc_json_0: `Failed to read tsdoc.json file at {0}`, | ||
invalid_tsdoc_json_0: `The file {0} is not a valid tsdoc.json file`, | ||
options_file_0_does_not_exist: `The options file {0} does not exist`, | ||
failed_read_options_file_0: `Failed to parse {0}, ensure it exists and exports an object`, | ||
// plugins | ||
invalid_plugin_0_missing_load_function: `Invalid structure in plugin {0}, no load function found.`, | ||
plugin_0_could_not_be_loaded: `The plugin {0} could not be loaded.`, | ||
invalid_plugin_0_missing_load_function: `Invalid structure in plugin {0}, no load function found`, | ||
plugin_0_could_not_be_loaded: `The plugin {0} could not be loaded`, | ||
// option declarations help | ||
help_options: "Specify a json option file that should be loaded. If not specified TypeDoc will look for 'typedoc.json' in the current directory.", | ||
help_tsconfig: "Specify a TypeScript config file that should be loaded. If not specified TypeDoc will look for 'tsconfig.json' in the current directory.", | ||
help_compilerOptions: "Selectively override the TypeScript compiler options used by TypeDoc.", | ||
help_lang: "Sets the language to be used in generation and in TypeDoc's messages.", | ||
help_locales: "Add translations for a specified locale. This option is primarily intended to be used as a stopgap while waiting for official locale support to be added to TypeDoc.", | ||
help_packageOptions: "Set options which will be set within each package when entryPointStrategy is set to packages.", | ||
help_entryPoints: "The entry points of your documentation.", | ||
help_entryPointStrategy: "The strategy to be used to convert entry points into documentation modules.", | ||
help_alwaysCreateEntryPointModule: "When set, TypeDoc will always create a `Module` for entry points, even if only one is provided.", | ||
help_projectDocuments: "Documents which should be added as children to the root of the generated documentation. Supports globs to match multiple files.", | ||
help_exclude: "Define patterns to be excluded when expanding a directory that was specified as an entry point.", | ||
help_externalPattern: "Define patterns for files that should be considered being external.", | ||
help_excludeExternals: "Prevent externally resolved symbols from being documented.", | ||
help_excludeNotDocumented: "Prevent symbols that are not explicitly documented from appearing in the results.", | ||
help_excludeNotDocumentedKinds: "Specify the type of reflections that can be removed by excludeNotDocumented.", | ||
help_excludeInternal: "Prevent symbols that are marked with @internal from being documented.", | ||
help_excludeCategories: "Exclude symbols within this category from the documentation.", | ||
help_excludePrivate: "Ignore private variables and methods, defaults to true..", | ||
help_excludeProtected: "Ignore protected variables and methods.", | ||
help_excludeReferences: "If a symbol is exported multiple times, ignore all but the first export.", | ||
help_externalSymbolLinkMappings: "Define custom links for symbols not included in the documentation.", | ||
help_out: "Specify the location the documentation should be written to.", | ||
help_json: "Specify the location and filename a JSON file describing the project is written to.", | ||
help_pretty: "Specify whether the output JSON should be formatted with tabs.", | ||
help_emit: "Specify what TypeDoc should emit, 'docs', 'both', or 'none'.", | ||
help_options: "Specify a json option file that should be loaded. If not specified TypeDoc will look for 'typedoc.json' in the current directory", | ||
help_tsconfig: "Specify a TypeScript config file that should be loaded. If not specified TypeDoc will look for 'tsconfig.json' in the current directory", | ||
help_compilerOptions: "Selectively override the TypeScript compiler options used by TypeDoc", | ||
help_lang: "Sets the language to be used in generation and in TypeDoc's messages", | ||
help_locales: "Add translations for a specified locale. This option is primarily intended to be used as a stopgap while waiting for official locale support to be added to TypeDoc", | ||
help_packageOptions: "Set options which will be set within each package when entryPointStrategy is set to packages", | ||
help_entryPoints: "The entry points of your documentation", | ||
help_entryPointStrategy: "The strategy to be used to convert entry points into documentation modules", | ||
help_alwaysCreateEntryPointModule: "When set, TypeDoc will always create a `Module` for entry points, even if only one is provided", | ||
help_projectDocuments: "Documents which should be added as children to the root of the generated documentation. Supports globs to match multiple files", | ||
help_exclude: "Define patterns to be excluded when expanding a directory that was specified as an entry point", | ||
help_externalPattern: "Define patterns for files that should be considered being external", | ||
help_excludeExternals: "Prevent externally resolved symbols from being documented", | ||
help_excludeNotDocumented: "Prevent symbols that are not explicitly documented from appearing in the results", | ||
help_excludeNotDocumentedKinds: "Specify the type of reflections that can be removed by excludeNotDocumented", | ||
help_excludeInternal: "Prevent symbols that are marked with @internal from being documented", | ||
help_excludeCategories: "Exclude symbols within this category from the documentation", | ||
help_excludePrivate: "Ignore private variables and methods, defaults to true.", | ||
help_excludeProtected: "Ignore protected variables and methods", | ||
help_excludeReferences: "If a symbol is exported multiple times, ignore all but the first export", | ||
help_externalSymbolLinkMappings: "Define custom links for symbols not included in the documentation", | ||
help_out: "Specify the location the documentation should be written to", | ||
help_json: "Specify the location and filename a JSON file describing the project is written to", | ||
help_pretty: "Specify whether the output JSON should be formatted with tabs", | ||
help_emit: "Specify what TypeDoc should emit, 'docs', 'both', or 'none'", | ||
help_theme: "Specify the theme name to render the documentation with", | ||
help_lightHighlightTheme: "Specify the code highlighting theme in light mode.", | ||
help_darkHighlightTheme: "Specify the code highlighting theme in dark mode.", | ||
help_highlightLanguages: "Specify the languages which will be loaded to highlight code when rendering.", | ||
help_customCss: "Path to a custom CSS file to for the theme to import.", | ||
help_markdownItOptions: "Specify the options passed to markdown-it, the Markdown parser used by TypeDoc.", | ||
help_markdownItLoader: "Specify a callback to be called when loading the markdown-it instance. Will be passed the instance of the parser which TypeDoc will use.", | ||
help_maxTypeConversionDepth: "Set the maximum depth of types to be converted.", | ||
help_name: "Set the name of the project that will be used in the header of the template.", | ||
help_includeVersion: "Add the package version to the project name.", | ||
help_disableSources: "Disable setting the source of a reflection when documenting it.", | ||
help_sourceLinkTemplate: "Specify a link template to be used when generating source urls. If not set, will be automatically created using the git remote. Supports {path}, {line}, {gitRevision} placeholders.", | ||
help_gitRevision: "Use specified revision instead of the last revision for linking to GitHub/Bitbucket source files. Has no effect if disableSources is set.", | ||
help_gitRemote: "Use the specified remote for linking to GitHub/Bitbucket source files. Has no effect if disableGit or disableSources is set.", | ||
help_lightHighlightTheme: "Specify the code highlighting theme in light mode", | ||
help_darkHighlightTheme: "Specify the code highlighting theme in dark mode", | ||
help_highlightLanguages: "Specify the languages which will be loaded to highlight code when rendering", | ||
help_customCss: "Path to a custom CSS file to for the theme to import", | ||
help_markdownItOptions: "Specify the options passed to markdown-it, the Markdown parser used by TypeDoc", | ||
help_markdownItLoader: "Specify a callback to be called when loading the markdown-it instance. Will be passed the instance of the parser which TypeDoc will use", | ||
help_maxTypeConversionDepth: "Set the maximum depth of types to be converted", | ||
help_name: "Set the name of the project that will be used in the header of the template", | ||
help_includeVersion: "Add the package version to the project name", | ||
help_disableSources: "Disable setting the source of a reflection when documenting it", | ||
help_sourceLinkTemplate: "Specify a link template to be used when generating source urls. If not set, will be automatically created using the git remote. Supports {path}, {line}, {gitRevision} placeholders", | ||
help_gitRevision: "Use specified revision instead of the last revision for linking to GitHub/Bitbucket source files. Has no effect if disableSources is set", | ||
help_gitRemote: "Use the specified remote for linking to GitHub/Bitbucket source files. Has no effect if disableGit or disableSources is set", | ||
help_disableGit: "Assume that all can be linked to with the sourceLinkTemplate, sourceLinkTemplate must be set if this is enabled. {path} will be rooted at basePath", | ||
help_basePath: "Specifies the base path to be used when displaying file paths.", | ||
help_excludeTags: "Remove the listed block/modifier tags from doc comments.", | ||
help_readme: "Path to the readme file that should be displayed on the index page. Pass `none` to disable the index page and start the documentation on the globals page.", | ||
help_cname: "Set the CNAME file text, it's useful for custom domains on GitHub Pages.", | ||
help_sourceLinkExternal: "Specifies that source links should be treated as external links to be opened in a new tab.", | ||
help_githubPages: "Generate a .nojekyll file to prevent 404 errors in GitHub Pages. Defaults to `true`.", | ||
help_hostedBaseUrl: "Specify a base URL to be used in generating a sitemap.xml in our output folder and canonical links. If not specified, no sitemap will be generated.", | ||
help_useHostedBaseUrlForAbsoluteLinks: "If set, TypeDoc will produce absolute links to pages on your site using the hostedBaseUrl option.", | ||
help_gaID: "Set the Google Analytics tracking ID and activate tracking code.", | ||
help_hideGenerator: "Do not print the TypeDoc link at the end of the page.", | ||
help_customFooterHtml: "Custom footer after the TypeDoc link.", | ||
help_customFooterHtmlDisableWrapper: "If set, disables the wrapper element for customFooterHtml.", | ||
help_hideParameterTypesInTitle: "Hides parameter types in signature titles for easier scanning.", | ||
help_cacheBust: "Include the generation time in links to static assets.", | ||
help_searchInComments: "If set, the search index will also include comments. This will greatly increase the size of the search index.", | ||
help_searchInDocuments: "If set, the search index will also include documents. This will greatly increase the size of the search index.", | ||
help_cleanOutputDir: "If set, TypeDoc will remove the output directory before writing output.", | ||
help_titleLink: "Set the link the title in the header points to. Defaults to the documentation homepage.", | ||
help_navigationLinks: "Defines links to be included in the header.", | ||
help_sidebarLinks: "Defines links to be included in the sidebar.", | ||
help_navigationLeaves: "Branches of the navigation tree which should not be expanded.", | ||
help_navigation: "Determines how the navigation sidebar is organized.", | ||
help_visibilityFilters: "Specify the default visibility for builtin filters and additional filters according to modifier tags.", | ||
help_basePath: "Specifies the base path to be used when displaying file paths", | ||
help_excludeTags: "Remove the listed block/modifier tags from doc comments", | ||
help_readme: "Path to the readme file that should be displayed on the index page. Pass `none` to disable the index page and start the documentation on the globals page", | ||
help_cname: "Set the CNAME file text, it's useful for custom domains on GitHub Pages", | ||
help_sourceLinkExternal: "Specifies that source links should be treated as external links to be opened in a new tab", | ||
help_githubPages: "Generate a .nojekyll file to prevent 404 errors in GitHub Pages. Defaults to `true`", | ||
help_hostedBaseUrl: "Specify a base URL to be used in generating a sitemap.xml in our output folder and canonical links. If not specified, no sitemap will be generated", | ||
help_useHostedBaseUrlForAbsoluteLinks: "If set, TypeDoc will produce absolute links to pages on your site using the hostedBaseUrl option", | ||
help_gaID: "Set the Google Analytics tracking ID and activate tracking code", | ||
help_hideGenerator: "Do not print the TypeDoc link at the end of the page", | ||
help_customFooterHtml: "Custom footer after the TypeDoc link", | ||
help_customFooterHtmlDisableWrapper: "If set, disables the wrapper element for customFooterHtml", | ||
help_hideParameterTypesInTitle: "Hides parameter types in signature titles for easier scanning", | ||
help_cacheBust: "Include the generation time in links to static assets", | ||
help_searchInComments: "If set, the search index will also include comments. This will greatly increase the size of the search index", | ||
help_searchInDocuments: "If set, the search index will also include documents. This will greatly increase the size of the search index", | ||
help_cleanOutputDir: "If set, TypeDoc will remove the output directory before writing output", | ||
help_titleLink: "Set the link the title in the header points to. Defaults to the documentation homepage", | ||
help_navigationLinks: "Defines links to be included in the header", | ||
help_sidebarLinks: "Defines links to be included in the sidebar", | ||
help_navigationLeaves: "Branches of the navigation tree which should not be expanded", | ||
help_navigation: "Determines how the navigation sidebar is organized", | ||
help_visibilityFilters: "Specify the default visibility for builtin filters and additional filters according to modifier tags", | ||
help_searchCategoryBoosts: "Configure search to give a relevance boost to selected categories", | ||
help_searchGroupBoosts: 'Configure search to give a relevance boost to selected kinds (eg "class")', | ||
help_jsDocCompatibility: "Sets compatibility options for comment parsing that increase similarity with JSDoc comments.", | ||
help_commentStyle: "Determines how TypeDoc searches for comments.", | ||
help_useTsLinkResolution: "Use TypeScript's link resolution when determining where @link tags point. This only applies to JSDoc style comments.", | ||
help_preserveLinkText: "If set, @link tags without link text will use the text content as the link. If not set, will use the target reflection name.", | ||
help_blockTags: "Block tags which TypeDoc should recognize when parsing comments.", | ||
help_inlineTags: "Inline tags which TypeDoc should recognize when parsing comments.", | ||
help_modifierTags: "Modifier tags which TypeDoc should recognize when parsing comments.", | ||
help_categorizeByGroup: "Specify whether categorization will be done at the group level.", | ||
help_defaultCategory: "Specify the default category for reflections without a category.", | ||
help_categoryOrder: "Specify the order in which categories appear. * indicates the relative order for categories not in the list.", | ||
help_groupOrder: "Specify the order in which groups appear. * indicates the relative order for groups not in the list.", | ||
help_sort: "Specify the sort strategy for documented values.", | ||
help_sortEntryPoints: "If set, entry points will be subject to the same sorting rules as other reflections.", | ||
help_kindSortOrder: "Specify the sort order for reflections when 'kind' is specified.", | ||
help_watch: "Watch files for changes and rebuild docs on change.", | ||
help_preserveWatchOutput: "If set, TypeDoc will not clear the screen between compilation runs.", | ||
help_skipErrorChecking: "Do not run TypeScript's type checking before generating docs.", | ||
help_help: "Print this message.", | ||
help_version: "Print TypeDoc's version.", | ||
help_showConfig: "Print the resolved configuration and exit.", | ||
help_plugin: "Specify the npm plugins that should be loaded. Omit to load all installed plugins.", | ||
help_logLevel: "Specify what level of logging should be used.", | ||
help_treatWarningsAsErrors: "If set, all warnings will be treated as errors.", | ||
help_treatValidationWarningsAsErrors: "If set, warnings emitted during validation will be treated as errors. This option cannot be used to disable treatWarningsAsErrors for validation warnings.", | ||
help_intentionallyNotExported: "A list of types which should not produce 'referenced but not documented' warnings.", | ||
help_jsDocCompatibility: "Sets compatibility options for comment parsing that increase similarity with JSDoc comments", | ||
help_commentStyle: "Determines how TypeDoc searches for comments", | ||
help_useTsLinkResolution: "Use TypeScript's link resolution when determining where @link tags point. This only applies to JSDoc style comments", | ||
help_preserveLinkText: "If set, @link tags without link text will use the text content as the link. If not set, will use the target reflection name", | ||
help_blockTags: "Block tags which TypeDoc should recognize when parsing comments", | ||
help_inlineTags: "Inline tags which TypeDoc should recognize when parsing comments", | ||
help_modifierTags: "Modifier tags which TypeDoc should recognize when parsing comments", | ||
help_categorizeByGroup: "Specify whether categorization will be done at the group level", | ||
help_defaultCategory: "Specify the default category for reflections without a category", | ||
help_categoryOrder: "Specify the order in which categories appear. * indicates the relative order for categories not in the list", | ||
help_groupOrder: "Specify the order in which groups appear. * indicates the relative order for groups not in the list", | ||
help_sort: "Specify the sort strategy for documented values", | ||
help_sortEntryPoints: "If set, entry points will be subject to the same sorting rules as other reflections", | ||
help_kindSortOrder: "Specify the sort order for reflections when 'kind' is specified", | ||
help_watch: "Watch files for changes and rebuild docs on change", | ||
help_preserveWatchOutput: "If set, TypeDoc will not clear the screen between compilation runs", | ||
help_skipErrorChecking: "Do not run TypeScript's type checking before generating docs", | ||
help_help: "Print this message", | ||
help_version: "Print TypeDoc's version", | ||
help_showConfig: "Print the resolved configuration and exit", | ||
help_plugin: "Specify the npm plugins that should be loaded. Omit to load all installed plugins", | ||
help_logLevel: "Specify what level of logging should be used", | ||
help_treatWarningsAsErrors: "If set, all warnings will be treated as errors", | ||
help_treatValidationWarningsAsErrors: "If set, warnings emitted during validation will be treated as errors. This option cannot be used to disable treatWarningsAsErrors for validation warnings", | ||
help_intentionallyNotExported: "A list of types which should not produce 'referenced but not documented' warnings", | ||
help_requiredToBeDocumented: "A list of reflection kinds that must be documented", | ||
help_validation: "Specify which validation steps TypeDoc should perform on your generated documentation.", | ||
help_validation: "Specify which validation steps TypeDoc should perform on your generated documentation", | ||
// ================================================================== | ||
@@ -235,3 +239,3 @@ // Option validation | ||
expected_object_with_flag_values_for_0: "Expected an object with flag values for {0} or true/false", | ||
flag_values_for_0_must_be_booleans: "Flag values for {0} must be a boolean.", | ||
flag_values_for_0_must_be_booleans: "Flag values for {0} must be a boolean", | ||
locales_must_be_an_object: "The 'locales' option must be set to an object which resembles: { en: { theme_implements: \"Implements\" }}", | ||
@@ -241,13 +245,13 @@ exclude_not_documented_specified_0_valid_values_are_1: `excludeNotDocumentedKinds may only specify known values, and invalid values were provided ({0}). The valid kinds are:\n{1}`, | ||
highlight_theme_0_must_be_one_of_1: "{0} must be one of the following: {1}", | ||
highlightLanguages_contains_invalid_languages_0: "highlightLanguages contains invalid languages: {0}, run typedoc --help for a list of supported languages.", | ||
highlightLanguages_contains_invalid_languages_0: "highlightLanguages contains invalid languages: {0}, run typedoc --help for a list of supported languages", | ||
hostedBaseUrl_must_start_with_http: "hostedBaseUrl must start with http:// or https://", | ||
useHostedBaseUrlForAbsoluteLinks_requires_hostedBaseUrl: "The useHostedBaseUrlForAbsoluteLinks option requires that hostedBaseUrl be set", | ||
option_0_must_be_an_object: "The '{0}' option must be a non-array object.", | ||
option_0_must_be_a_function: "The '{0}' option must be a function.", | ||
option_0_must_be_object_with_urls: `{0} must be an object with string labels as keys and URL values.`, | ||
option_0_must_be_an_object: "The '{0}' option must be a non-array object", | ||
option_0_must_be_a_function: "The '{0}' option must be a function", | ||
option_0_must_be_object_with_urls: `{0} must be an object with string labels as keys and URL values`, | ||
visibility_filters_only_include_0: `visibilityFilters can only include the following non-@ keys: {0}`, | ||
visibility_filters_must_be_booleans: `All values of visibilityFilters must be booleans.`, | ||
visibility_filters_must_be_booleans: `All values of visibilityFilters must be booleans`, | ||
option_0_values_must_be_numbers: "All values of {0} must be numbers", | ||
option_0_values_must_be_array_of_tags: "{0} must be an array of valid tag names.", | ||
option_0_specified_1_but_only_2_is_valid: `{0} may only specify known values, and invalid values were provided ({0}). The valid sort strategies are:\n{1}`, | ||
option_0_values_must_be_array_of_tags: "{0} must be an array of valid tag names", | ||
option_0_specified_1_but_only_2_is_valid: `{0} may only specify known values, and invalid values were provided ({1}). The valid sort strategies are:\n{2}`, | ||
// ReflectionKind singular translations | ||
@@ -303,2 +307,14 @@ kind_project: "Project", | ||
kind_plural_document: "Documents", | ||
// ReflectionFlag translations | ||
flag_private: "Private", | ||
flag_protected: "Protected", | ||
flag_public: "Public", | ||
flag_static: "Static", | ||
flag_external: "External", | ||
flag_optional: "Optional", | ||
flag_rest: "Rest", | ||
flag_abstract: "Abstract", | ||
flag_const: "Const", | ||
flag_readonly: "Readonly", | ||
flag_inherited: "Inherited", | ||
// ================================================================== | ||
@@ -305,0 +321,0 @@ // Strings that show up in the default theme |
@@ -32,2 +32,3 @@ import type { Reflection } from "../reflections"; | ||
* This is used to detect and copy relative image links. | ||
* Use {@link FileRegistry} to determine what path on disc this refers to. | ||
*/ | ||
@@ -34,0 +35,0 @@ | RelativeLinkDisplayPart; |
@@ -9,2 +9,3 @@ import { Comment } from "../comments/comment"; | ||
import type { DocumentReflection } from "./document"; | ||
import type { Internationalization, TranslatedString } from "../../internationalization"; | ||
/** | ||
@@ -22,11 +23,9 @@ * Reset the reflection id. | ||
Static = 8, | ||
ExportAssignment = 16, | ||
External = 32, | ||
Optional = 64, | ||
DefaultValue = 128, | ||
Rest = 256, | ||
Abstract = 512, | ||
Const = 1024, | ||
Let = 2048, | ||
Readonly = 4096 | ||
External = 16, | ||
Optional = 32, | ||
Rest = 64, | ||
Abstract = 128, | ||
Const = 256, | ||
Readonly = 512, | ||
Inherited = 1024 | ||
} | ||
@@ -36,3 +35,3 @@ /** | ||
*/ | ||
export declare class ReflectionFlags extends Array<string> { | ||
export declare class ReflectionFlags { | ||
private flags; | ||
@@ -70,7 +69,8 @@ hasFlag(flag: ReflectionFlag): boolean; | ||
get isRest(): boolean; | ||
get hasExportAssignment(): boolean; | ||
get isAbstract(): boolean; | ||
get isConst(): boolean; | ||
get isReadonly(): boolean; | ||
get isInherited(): boolean; | ||
setFlag(flag: ReflectionFlag, set: boolean): void; | ||
getFlagStrings(i18n: Internationalization): TranslatedString[]; | ||
private setSingleFlag; | ||
@@ -191,2 +191,3 @@ private static serializedFlags; | ||
getAlias(): string; | ||
getUniqueAliasInPage(heading: string): string; | ||
/** | ||
@@ -193,0 +194,0 @@ * Has this reflection a visible comment? |
@@ -62,11 +62,9 @@ "use strict"; | ||
ReflectionFlag[ReflectionFlag["Static"] = 8] = "Static"; | ||
ReflectionFlag[ReflectionFlag["ExportAssignment"] = 16] = "ExportAssignment"; | ||
ReflectionFlag[ReflectionFlag["External"] = 32] = "External"; | ||
ReflectionFlag[ReflectionFlag["Optional"] = 64] = "Optional"; | ||
ReflectionFlag[ReflectionFlag["DefaultValue"] = 128] = "DefaultValue"; | ||
ReflectionFlag[ReflectionFlag["Rest"] = 256] = "Rest"; | ||
ReflectionFlag[ReflectionFlag["Abstract"] = 512] = "Abstract"; | ||
ReflectionFlag[ReflectionFlag["Const"] = 1024] = "Const"; | ||
ReflectionFlag[ReflectionFlag["Let"] = 2048] = "Let"; | ||
ReflectionFlag[ReflectionFlag["Readonly"] = 4096] = "Readonly"; | ||
ReflectionFlag[ReflectionFlag["External"] = 16] = "External"; | ||
ReflectionFlag[ReflectionFlag["Optional"] = 32] = "Optional"; | ||
ReflectionFlag[ReflectionFlag["Rest"] = 64] = "Rest"; | ||
ReflectionFlag[ReflectionFlag["Abstract"] = 128] = "Abstract"; | ||
ReflectionFlag[ReflectionFlag["Const"] = 256] = "Const"; | ||
ReflectionFlag[ReflectionFlag["Readonly"] = 512] = "Readonly"; | ||
ReflectionFlag[ReflectionFlag["Inherited"] = 1024] = "Inherited"; | ||
})(ReflectionFlag || (exports.ReflectionFlag = ReflectionFlag = {})); | ||
@@ -77,5 +75,3 @@ const relevantFlags = [ | ||
ReflectionFlag.Static, | ||
ReflectionFlag.ExportAssignment, | ||
ReflectionFlag.Optional, | ||
ReflectionFlag.DefaultValue, | ||
ReflectionFlag.Rest, | ||
@@ -89,5 +85,4 @@ ReflectionFlag.Abstract, | ||
*/ | ||
class ReflectionFlags extends Array { | ||
class ReflectionFlags { | ||
constructor() { | ||
super(...arguments); | ||
this.flags = ReflectionFlag.None; | ||
@@ -142,5 +137,2 @@ } | ||
} | ||
get hasExportAssignment() { | ||
return this.hasFlag(ReflectionFlag.ExportAssignment); | ||
} | ||
get isAbstract() { | ||
@@ -155,2 +147,5 @@ return this.hasFlag(ReflectionFlag.Abstract); | ||
} | ||
get isInherited() { | ||
return this.hasFlag(ReflectionFlag.Inherited); | ||
} | ||
setFlag(flag, set) { | ||
@@ -183,14 +178,16 @@ switch (flag) { | ||
} | ||
getFlagStrings(i18n) { | ||
const strings = []; | ||
for (const flag of relevantFlags) { | ||
if (this.hasFlag(flag)) { | ||
strings.push(i18n.flagString(flag)); | ||
} | ||
} | ||
return strings; | ||
} | ||
setSingleFlag(flag, set) { | ||
const name = ReflectionFlag[flag].replace(/(.)([A-Z])/g, (_m, a, b) => a + " " + b.toLowerCase()); | ||
if (!set && this.hasFlag(flag)) { | ||
if (relevantFlags.includes(flag)) { | ||
this.splice(this.indexOf(name), 1); | ||
} | ||
this.flags ^= flag; | ||
} | ||
else if (set && !this.hasFlag(flag)) { | ||
if (relevantFlags.includes(flag)) { | ||
this.push(name); | ||
} | ||
this.flags |= flag; | ||
@@ -222,6 +219,6 @@ } | ||
"isRest", | ||
"hasExportAssignment", | ||
"isAbstract", | ||
"isConst", | ||
"isReadonly", | ||
"isInherited", | ||
]; | ||
@@ -336,29 +333,29 @@ var TraverseProperty; | ||
getAlias() { | ||
if (!this._alias) { | ||
let alias = this.name.replace(/\W/g, "_"); | ||
if (alias === "") { | ||
alias = `reflection-${this.id}`; | ||
} | ||
// NTFS/ExFAT use uppercase, so we will too. It probably won't matter | ||
// in this case since names will generally be valid identifiers, but to be safe... | ||
const upperAlias = alias.toUpperCase(); | ||
let target = this; | ||
while (target.parent && !target.hasOwnDocument) { | ||
target = target.parent; | ||
} | ||
target._aliases ||= new Map(); | ||
let suffix = ""; | ||
if (!target._aliases.has(upperAlias)) { | ||
target._aliases.set(upperAlias, 1); | ||
} | ||
else { | ||
const count = target._aliases.get(upperAlias); | ||
suffix = "-" + count.toString(); | ||
target._aliases.set(upperAlias, count + 1); | ||
} | ||
alias += suffix; | ||
this._alias = alias; | ||
} | ||
this._alias ||= this.getUniqueAliasInPage(this.name.replace(/\W/g, "_") || `reflection-${this.id}`); | ||
return this._alias; | ||
} | ||
// This really ought not live here, it ought to live in the html renderer, but moving that | ||
// is more work than I want right now, it can wait for 0.27 when trying to split models into | ||
// a bundleable structure. | ||
getUniqueAliasInPage(heading) { | ||
// NTFS/ExFAT use uppercase, so we will too. It probably won't matter | ||
// in this case since names will generally be valid identifiers, but to be safe... | ||
const upperAlias = heading.toUpperCase(); | ||
let target = this; | ||
while (target.parent && !target.hasOwnDocument) { | ||
target = target.parent; | ||
} | ||
target._aliases ||= new Map(); | ||
let suffix = ""; | ||
if (!target._aliases.has(upperAlias)) { | ||
target._aliases.set(upperAlias, 1); | ||
} | ||
else { | ||
const count = target._aliases.get(upperAlias); | ||
suffix = "-" + count.toString(); | ||
target._aliases.set(upperAlias, count + 1); | ||
} | ||
heading += suffix; | ||
return heading; | ||
} | ||
/** | ||
@@ -365,0 +362,0 @@ * Has this reflection a visible comment? |
@@ -48,2 +48,22 @@ "use strict"; | ||
const utils_1 = require("../../utils"); | ||
const ICONS_JS = ` | ||
(function() { | ||
addIcons(); | ||
function addIcons() { | ||
if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); | ||
const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); | ||
svg.innerHTML = \`"SVG_HTML"\`; | ||
svg.style.display = "none"; | ||
if (location.protocol === "file:") updateUseElements(); | ||
} | ||
function updateUseElements() { | ||
document.querySelectorAll("use").forEach(el => { | ||
if (el.getAttribute("href").includes("#icon-")) { | ||
el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); | ||
} | ||
}); | ||
} | ||
})() | ||
`.trim(); | ||
/** | ||
@@ -77,19 +97,3 @@ * Plugin which is responsible for creating an icons.js file that embeds the icon SVGs | ||
const svg = (0, utils_1.renderElement)(utils_1.JSX.createElement("svg", { xmlns: "http://www.w3.org/2000/svg" }, children)); | ||
const js = [ | ||
"(function(svg) {", | ||
" svg.innerHTML = `" + (0, utils_1.renderElement)(utils_1.JSX.createElement(utils_1.JSX.Fragment, null, children)).replaceAll("`", "\\`") + "`;", | ||
" svg.style.display = 'none';", | ||
" if (location.protocol === 'file:') {", | ||
" if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements);", | ||
" else updateUseElements()", | ||
" function updateUseElements() {", | ||
" document.querySelectorAll('use').forEach(el => {", | ||
" if (el.getAttribute('href').includes('#icon-')) {", | ||
" el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#'));", | ||
" }", | ||
" });", | ||
" }", | ||
" }", | ||
"})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg')))", | ||
].join("\n"); | ||
const js = ICONS_JS.replace("SVG_HTML", (0, utils_1.renderElement)(utils_1.JSX.createElement(utils_1.JSX.Fragment, null, children)).replaceAll("`", "\\`")); | ||
const svgPath = (0, path_1.join)(event.outputDirectory, "assets/icons.svg"); | ||
@@ -96,0 +100,0 @@ const jsPath = (0, path_1.join)(event.outputDirectory, "assets/icons.js"); |
@@ -67,3 +67,3 @@ import type { Application } from "../application"; | ||
* | ||
* This may be used to set {@link CommentTag.skipRendering} on any tags which | ||
* This may be used to set {@link Models.CommentTag.skipRendering} on any tags which | ||
* should not be rendered. | ||
@@ -75,3 +75,3 @@ */ | ||
* | ||
* This may be used to set {@link CommentTag.skipRendering} on any tags which | ||
* This may be used to set {@link Models.CommentTag.skipRendering} on any tags which | ||
* should not be rendered as this hook is called before the tags are actually | ||
@@ -78,0 +78,0 @@ * rendered. |
@@ -390,3 +390,3 @@ "use strict"; | ||
if (key === "inherited") { | ||
if (reflection.isDeclaration() && reflection.inheritedFrom) { | ||
if (reflection.flags.isInherited) { | ||
classes.push("tsd-is-inherited"); | ||
@@ -393,0 +393,0 @@ } |
@@ -6,2 +6,2 @@ import type { DefaultThemeRenderContext } from "../DefaultThemeRenderContext"; | ||
export declare function commentTags(context: DefaultThemeRenderContext, props: Reflection): JSX.Element | undefined; | ||
export declare function reflectionFlags(_context: DefaultThemeRenderContext, props: Reflection): JSX.Element; | ||
export declare function reflectionFlags(context: DefaultThemeRenderContext, props: Reflection): JSX.Element; |
@@ -8,3 +8,3 @@ "use strict"; | ||
const models_1 = require("../../../../models"); | ||
const lib_1 = require("../../lib"); | ||
const anchor_icon_1 = require("./anchor-icon"); | ||
// Note: Comment modifiers are handled in `renderFlags` | ||
@@ -29,6 +29,10 @@ function commentSummary({ markdown }, props) { | ||
const name = item.name | ||
? `${(0, lib_1.camelToTitleCase)(item.tag.substring(1))}: ${item.name}` | ||
: (0, lib_1.camelToTitleCase)(item.tag.substring(1)); | ||
? `${context.internationalization.translateTagName(item.tag)}: ${item.name}` | ||
: context.internationalization.translateTagName(item.tag); | ||
const anchor = props.getUniqueAliasInPage(name); | ||
return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null, | ||
utils_1.JSX.createElement("h4", null, name), | ||
utils_1.JSX.createElement("h4", { class: "tsd-anchor-link" }, | ||
utils_1.JSX.createElement("a", { id: anchor, class: "tsd-anchor" }), | ||
name, | ||
(0, anchor_icon_1.anchorIcon)(context, anchor)), | ||
utils_1.JSX.createElement(utils_1.Raw, { html: context.markdown(item.content) }))); | ||
@@ -39,8 +43,8 @@ })), | ||
const flagsNotRendered = ["@showCategories", "@showGroups", "@hideCategories", "@hideGroups"]; | ||
function reflectionFlags(_context, props) { | ||
const allFlags = [...props.flags]; | ||
function reflectionFlags(context, props) { | ||
const allFlags = props.flags.getFlagStrings(context.internationalization); | ||
if (props.comment) { | ||
for (const tag of props.comment.modifierTags) { | ||
if (!flagsNotRendered.includes(tag)) { | ||
allFlags.push((0, lib_1.camelToTitleCase)(tag.substring(1))); | ||
allFlags.push(context.internationalization.translateTagName(tag)); | ||
} | ||
@@ -47,0 +51,0 @@ } |
@@ -33,2 +33,8 @@ "use strict"; | ||
} | ||
const flagOptionNameToReflectionFlag = { | ||
protected: models_1.ReflectionFlag.Protected, | ||
private: models_1.ReflectionFlag.Private, | ||
external: models_1.ReflectionFlag.External, | ||
inherited: models_1.ReflectionFlag.Inherited, | ||
}; | ||
function settings(context) { | ||
@@ -43,3 +49,3 @@ const defaultFilters = context.options.getValue("visibilityFilters"); | ||
.toLowerCase(); | ||
visibilityOptions.push(buildFilterItem(context, filterName, (0, lib_1.camelToTitleCase)(key.substring(1)), defaultFilters[key])); | ||
visibilityOptions.push(buildFilterItem(context, filterName, context.internationalization.translateTagName(key), defaultFilters[key])); | ||
} | ||
@@ -50,3 +56,3 @@ else if ((key === "protected" && !context.options.getValue("excludeProtected")) || | ||
key === "inherited") { | ||
visibilityOptions.push(buildFilterItem(context, key, (0, lib_1.camelToTitleCase)(key), defaultFilters[key])); | ||
visibilityOptions.push(buildFilterItem(context, key, context.internationalization.flagString(flagOptionNameToReflectionFlag[key]), defaultFilters[key])); | ||
} | ||
@@ -53,0 +59,0 @@ } |
@@ -36,3 +36,3 @@ "use strict"; | ||
utils_1.JSX.createElement("h4", { class: "tsd-before-signature" }, context.i18n.theme_indexable()), | ||
props.model.indexSignatures.map((index) => renderIndexSignature(context, index)))), | ||
utils_1.JSX.createElement("ul", { class: "tsd-signatures" }, props.model.indexSignatures.map((index) => renderIndexSignature(context, index))))), | ||
!props.model.signatures && context.memberSources(props.model))), | ||
@@ -43,3 +43,3 @@ !!props.model.children?.length && context.index(props.model), | ||
function renderIndexSignature(context, index) { | ||
return (utils_1.JSX.createElement(utils_1.JSX.Fragment, null, | ||
return (utils_1.JSX.createElement("li", { class: "tsd-index-signature" }, | ||
utils_1.JSX.createElement("div", { class: "tsd-signature" }, | ||
@@ -46,0 +46,0 @@ utils_1.JSX.createElement("span", { class: "tsd-signature-symbol" }, "["), |
@@ -23,3 +23,2 @@ import type { DefaultThemeRenderContext } from ".."; | ||
export declare function renderTypeParametersSignature(context: DefaultThemeRenderContext, typeParameters: readonly TypeParameterReflection[] | undefined): JSX.Element; | ||
export declare function camelToTitleCase(text: string): string; | ||
/** | ||
@@ -26,0 +25,0 @@ * Renders the reflection name with an additional `?` if optional. |
@@ -12,3 +12,2 @@ "use strict"; | ||
exports.renderTypeParametersSignature = renderTypeParametersSignature; | ||
exports.camelToTitleCase = camelToTitleCase; | ||
exports.renderName = renderName; | ||
@@ -109,5 +108,2 @@ exports.getHierarchyRoots = getHierarchyRoots; | ||
} | ||
function camelToTitleCase(text) { | ||
return text.substring(0, 1).toUpperCase() + text.substring(1).replace(/[a-z][A-Z]/g, (x) => `${x[0]} ${x[1]}`); | ||
} | ||
/** | ||
@@ -114,0 +110,0 @@ * Renders the reflection name with an additional `?` if optional. |
@@ -42,2 +42,3 @@ /** | ||
export declare function assertNever(x: never): never; | ||
export declare function camelToTitleCase(text: string): string; | ||
export declare function NonEnumerable(_cls: unknown, context: ClassFieldDecoratorContext): void; | ||
@@ -44,0 +45,0 @@ export declare function hasBeenLoadedMultipleTimes(): boolean; |
@@ -27,2 +27,3 @@ "use strict"; | ||
exports.assertNever = assertNever; | ||
exports.camelToTitleCase = camelToTitleCase; | ||
exports.NonEnumerable = NonEnumerable; | ||
@@ -39,2 +40,6 @@ exports.hasBeenLoadedMultipleTimes = hasBeenLoadedMultipleTimes; | ||
} | ||
function camelToTitleCase(text) { | ||
return (text.substring(0, 1).toUpperCase() + | ||
text.substring(1).replace(/[a-z][A-Z]/g, (x) => `${x[0]} ${x[1]}`)); | ||
} | ||
function NonEnumerable(_cls, context) { | ||
@@ -41,0 +46,0 @@ context.addInitializer(function () { |
@@ -316,2 +316,3 @@ "use strict"; | ||
"jsonc", | ||
"json5", | ||
"tsx", | ||
@@ -318,0 +319,0 @@ "typescript", |
export declare const tsdocBlockTags: readonly ["@defaultValue", "@deprecated", "@example", "@param", "@privateRemarks", "@remarks", "@returns", "@see", "@throws", "@typeParam"]; | ||
export declare const blockTags: readonly ["@defaultValue", "@deprecated", "@example", "@param", "@privateRemarks", "@remarks", "@returns", "@see", "@throws", "@typeParam", "@category", "@categoryDescription", "@default", "@document", "@group", "@groupDescription", "@inheritDoc", "@license", "@module", "@return", "@template", "@type", "@typedef", "@callback", "@prop", "@property", "@satisfies", "@import", "@jsx"]; | ||
export declare const tsdocInlineTags: readonly ["@link", "@inheritDoc", "@label"]; | ||
export declare const inlineTags: string[]; | ||
export declare const inlineTags: readonly ["@link", "@inheritDoc", "@label", "@linkcode", "@linkplain"]; | ||
export declare const tsdocModifierTags: readonly ["@alpha", "@beta", "@eventProperty", "@experimental", "@internal", "@override", "@packageDocumentation", "@private", "@protected", "@public", "@readonly", "@sealed", "@virtual"]; | ||
export declare const modifierTags: readonly ["@alpha", "@beta", "@eventProperty", "@experimental", "@internal", "@override", "@packageDocumentation", "@private", "@protected", "@public", "@readonly", "@sealed", "@virtual", "@class", "@enum", "@event", "@hidden", "@hideCategories", "@hideGroups", "@ignore", "@interface", "@namespace", "@overload", "@showCategories", "@showGroups", "@hideconstructor"]; |
@@ -42,3 +42,7 @@ "use strict"; | ||
exports.tsdocInlineTags = ["@link", "@inheritDoc", "@label"]; | ||
exports.inlineTags = [...exports.tsdocInlineTags, "@linkcode", "@linkplain"]; | ||
exports.inlineTags = [ | ||
...exports.tsdocInlineTags, | ||
"@linkcode", | ||
"@linkplain", | ||
]; | ||
exports.tsdocModifierTags = [ | ||
@@ -45,0 +49,0 @@ "@alpha", |
@@ -39,3 +39,13 @@ "use strict"; | ||
function normalizePath(path) { | ||
return path.replace(/\\/g, "/"); | ||
if (process.platform === "win32") { | ||
// Ensure forward slashes | ||
path = path.replace(/\\/g, "/"); | ||
// Msys2 git on windows will give paths which use unix-style | ||
// absolute paths, like /c/users/you. Since the rest of TypeDoc | ||
// expects drive letters, convert it to that here. | ||
path = path.replace(/^\/([a-zA-Z])\//, (_m, m1) => `${m1}:/`); | ||
// Make Windows drive letters upper case | ||
path = path.replace(/^([^:]+):\//, (_m, m1) => m1.toUpperCase() + ":/"); | ||
} | ||
return path; | ||
} |
@@ -48,3 +48,5 @@ "use strict"; | ||
if (!runner) { | ||
const className = Object.getPrototypeOf(this).constructor.name; | ||
const className = context.static | ||
? this.name | ||
: Object.getPrototypeOf(this).constructor.name; | ||
runner = bench(value, `${className}.${String(context.name)}`); | ||
@@ -51,0 +53,0 @@ } |
@@ -1,3 +0,3 @@ | ||
import type { ProjectReflection } from "../models"; | ||
import { type ProjectReflection } from "../models"; | ||
import type { Logger } from "../utils"; | ||
export declare function validateLinks(project: ProjectReflection, logger: Logger): void; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.validateLinks = validateLinks; | ||
const models_1 = require("../models"); | ||
const linkTags = ["@link", "@linkcode", "@linkplain"]; | ||
function getBrokenLinks(comment) { | ||
function getBrokenPartLinks(parts) { | ||
const links = []; | ||
function processPart(part) { | ||
for (const part of parts) { | ||
if (part.kind === "inline-tag" && | ||
@@ -14,9 +15,29 @@ linkTags.includes(part.tag) && | ||
} | ||
comment?.summary.forEach(processPart); | ||
comment?.blockTags.forEach((tag) => tag.content.forEach(processPart)); | ||
return links; | ||
} | ||
function getBrokenLinks(comment) { | ||
if (!comment) | ||
return []; | ||
const links = [...getBrokenPartLinks(comment.summary)]; | ||
for (const tag of comment.blockTags) { | ||
links.push(...getBrokenPartLinks(tag.content)); | ||
} | ||
return links; | ||
} | ||
function validateLinks(project, logger) { | ||
for (const id in project.reflections) { | ||
const reflection = project.reflections[id]; | ||
if (reflection.isProject() || reflection.isDeclaration()) { | ||
for (const broken of getBrokenPartLinks(reflection.readme || [])) { | ||
// #2360, "@" is a future reserved character in TSDoc component paths | ||
// If a link starts with it, and doesn't include a module source indicator "!" | ||
// then the user probably is trying to link to a package containing "@" with an absolute link. | ||
if (broken.startsWith("@") && !broken.includes("!")) { | ||
logger.warn(logger.i18n.failed_to_resolve_link_to_0_in_readme_for_1_may_have_meant_2(broken, reflection.getFriendlyFullName(), broken.replace(/[.#~]/, "!"))); | ||
} | ||
else { | ||
logger.warn(logger.i18n.failed_to_resolve_link_to_0_in_readme_for_1(broken, reflection.getFriendlyFullName())); | ||
} | ||
} | ||
} | ||
for (const broken of getBrokenLinks(reflection.comment)) { | ||
@@ -26,9 +47,23 @@ // #2360, "@" is a future reserved character in TSDoc component paths | ||
// then the user probably is trying to link to a package containing "@" with an absolute link. | ||
let extra = ""; | ||
if (broken.startsWith("@") && !broken.includes("!")) { | ||
extra = `\n\tYou may have wanted "${broken.replace(/[.#~]/, "!")}"`; | ||
logger.warn(logger.i18n.failed_to_resolve_link_to_0_in_comment_for_1_may_have_meant_2(broken, reflection.getFriendlyFullName(), broken.replace(/[.#~]/, "!"))); | ||
} | ||
logger.warn(logger.i18n.failed_to_resolve_link_to_0_in_comment_for_1(broken, `${reflection.getFriendlyFullName()}.${extra}`)); | ||
else { | ||
logger.warn(logger.i18n.failed_to_resolve_link_to_0_in_comment_for_1(broken, reflection.getFriendlyFullName())); | ||
} | ||
} | ||
if (reflection.isDeclaration() && | ||
reflection.kindOf(models_1.ReflectionKind.TypeAlias) && | ||
reflection.type?.type === "union" && | ||
reflection.type.elementSummaries) { | ||
for (const broken of reflection.type.elementSummaries.flatMap(getBrokenPartLinks)) { | ||
if (broken.startsWith("@") && !broken.includes("!")) { | ||
logger.warn(logger.i18n.failed_to_resolve_link_to_0_in_comment_for_1_may_have_meant_2(broken, reflection.getFriendlyFullName(), broken.replace(/[.#~]/, "!"))); | ||
} | ||
else { | ||
logger.warn(logger.i18n.failed_to_resolve_link_to_0_in_comment_for_1(broken, reflection.getFriendlyFullName())); | ||
} | ||
} | ||
} | ||
} | ||
} |
{ | ||
"name": "typedoc", | ||
"description": "Create api documentation for TypeScript projects.", | ||
"version": "0.26.0-beta.3", | ||
"version": "0.26.0-beta.4", | ||
"homepage": "https://typedoc.org", | ||
@@ -41,3 +41,3 @@ "exports": { | ||
"@types/node": "18", | ||
"@typestrong/fs-fixture-builder": "github:TypeStrong/fs-fixture-builder#8abd1494280116ff5318dde2c50ad01e1663790c", | ||
"@typestrong/fs-fixture-builder": "github:TypeStrong/fs-fixture-builder#34113409e3a171e68ce5e2b55461ef5c35591cfe", | ||
"c8": "^9.1.0", | ||
@@ -44,0 +44,0 @@ "esbuild": "^0.21.3", |
@@ -5,3 +5,3 @@ "use strict"; | ||
${he(l.parent,i)}.</span>${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function He(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),te(e)}}function he(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(ee(t.substring(s,o)),`<b>${ee(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var Be={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>Be[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",H="mouseup",J={x:0,y:0},me=!1,ne=!1,je=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(je=!0,F="touchstart",ye="touchmove",H="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } | ||
`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${t.kind}"></use></svg>`),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var qe=new U;Object.defineProperty(window,"app",{value:qe});fe();we();})(); | ||
`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${t.kind}"></use></svg>`),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var qe=new U;Object.defineProperty(window,"app",{value:qe});fe();we();})(); | ||
/*! Bundled license information: | ||
@@ -8,0 +8,0 @@ |
Sorry, the diff of this file is not supported yet
1779032
36802
19