Comparing version
@@ -37,3 +37,3 @@ import { Deserializer, Serializer } from "./serialization/index.js"; | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Root level class which contains most useful behavior. | ||
@@ -113,3 +113,3 @@ */ | ||
* ```ts | ||
* const app = Application.bootstrap({ pretty: false }); | ||
* const app = await Application.bootstrap({ pretty: false }); | ||
* ``` | ||
@@ -116,0 +116,0 @@ * |
@@ -98,3 +98,3 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Root level class which contains most useful behavior. | ||
@@ -240,3 +240,3 @@ */ | ||
* ```ts | ||
* const app = Application.bootstrap({ pretty: false }); | ||
* const app = await Application.bootstrap({ pretty: false }); | ||
* ``` | ||
@@ -678,6 +678,8 @@ * | ||
if (result.length === 0) { | ||
this.logger.warn(i18n.entrypoint_did_not_match_files_0(nicePath(entry))); | ||
// #2918 - do not pass entry through nicePath here in case it contains | ||
// windows path separators which should cause additional warnings. | ||
this.logger.warn(i18n.entrypoint_did_not_match_files_0(entry)); | ||
} | ||
else if (result.length !== 1) { | ||
this.logger.verbose(`Expanded ${nicePath(entry)} to:\n\t${result | ||
this.logger.verbose(`Expanded ${entry} to:\n\t${result | ||
.map(nicePath) | ||
@@ -684,0 +686,0 @@ .join("\n\t")}`); |
@@ -175,3 +175,8 @@ import ts from "typescript"; | ||
if (!tag) { | ||
logger.error(i18n.failed_to_find_jsdoc_tag_for_name_0(name), declaration); | ||
// If this is a template tag with multiple declarations, we warned already if there | ||
// was a comment attached. If there wasn't, then don't error about failing to find | ||
// a tag because this is unsupported. | ||
if (!ts.isJSDocTemplateTag(declaration)) { | ||
logger.error(i18n.failed_to_find_jsdoc_tag_for_name_0(name), declaration); | ||
} | ||
} | ||
@@ -178,0 +183,0 @@ else { |
@@ -39,3 +39,3 @@ import ts from "typescript"; | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Responsible for converting TypeScript symbols into {@link Reflection}s and {@link Type}s. | ||
@@ -42,0 +42,0 @@ */ |
@@ -65,3 +65,3 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Responsible for converting TypeScript symbols into {@link Reflection}s and {@link Type}s. | ||
@@ -68,0 +68,0 @@ */ |
@@ -10,4 +10,5 @@ import ts from "typescript"; | ||
export declare function convertParameterNodes(context: Context, sigRef: SignatureReflection, parameters: readonly (ts.JSDocParameterTag | ts.ParameterDeclaration)[]): ParameterReflection[]; | ||
export declare function convertTypeParameters(context: Context, parent: Reflection, parameters: readonly ts.TypeParameter[] | undefined): TypeParameterReflection[] | undefined; | ||
export declare function convertTypeParameterNodes(context: Context, parameters: readonly ts.TypeParameterDeclaration[] | undefined): TypeParameterReflection[] | undefined; | ||
export declare function createTypeParamReflection(param: ts.TypeParameterDeclaration, context: Context): TypeParameterReflection; | ||
export declare function convertTemplateParameterNodes(context: Context, nodes: readonly ts.JSDocTemplateTag[] | undefined): TypeParameterReflection[] | undefined; |
@@ -85,4 +85,18 @@ import ts from "typescript"; | ||
sigRef.comment = context.getSignatureComment(declaration); | ||
if (sigRef.comment?.discoveryId === context.scope.parent?.comment?.discoveryId) { | ||
delete sigRef.comment; | ||
} | ||
} | ||
sigRef.typeParameters = convertTypeParameters(sigRefCtx, sigRef, signature.typeParameters); | ||
const parameterSymbols = signature.thisParameter | ||
? [signature.thisParameter, ...signature.parameters] | ||
: [...signature.parameters]; | ||
// Prevent a `this` parameter from appearing on constructor signature | ||
// as TS disallows them on regular classes. | ||
if (parameterSymbols[0]?.name === "this") { | ||
parameterSymbols.shift(); | ||
} | ||
sigRef.parameters = convertParameters(sigRefCtx, sigRef, parameterSymbols, declaration?.parameters); | ||
sigRef.parameters = convertParameters(sigRefCtx, sigRef, parameterSymbols, undefined); | ||
// Do NOT convert type parameters here, they go on the class itself in the @class case | ||
// See #2914. | ||
sigRef.type = ReferenceType.createResolvedReference(context.scope.parent.name, classType, context.project); | ||
@@ -207,3 +221,3 @@ context.registerReflection(sigRef, undefined); | ||
} | ||
function convertTypeParameters(context, parent, parameters) { | ||
export function convertTypeParameters(context, parent, parameters) { | ||
return parameters?.map((param) => { | ||
@@ -241,5 +255,14 @@ const constraintT = param.getConstraint(); | ||
const paramScope = context.withScope(paramRefl); | ||
paramRefl.type = param.constraint | ||
? context.converter.convertType(paramScope, param.constraint) | ||
: void 0; | ||
if (ts.isJSDocTemplateTag(param.parent)) { | ||
// With a @template tag, the constraint applies only to the | ||
// first type parameter declared. | ||
if (param.parent.typeParameters[0].name.text === param.name.text && param.parent.constraint) { | ||
paramRefl.type = context.converter.convertType(paramScope, param.parent.constraint); | ||
} | ||
} | ||
else { | ||
paramRefl.type = param.constraint | ||
? context.converter.convertType(paramScope, param.constraint) | ||
: void 0; | ||
} | ||
paramRefl.default = param.default | ||
@@ -246,0 +269,0 @@ ? context.converter.convertType(paramScope, param.default) |
@@ -124,3 +124,3 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { | ||
categorize(obj) { | ||
if (this.categorizeByGroup) { | ||
if (this.categorizeByGroup && obj.groups) { | ||
this.groupCategorize(obj); | ||
@@ -127,0 +127,0 @@ } |
@@ -153,2 +153,5 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { | ||
} | ||
if (reflection.comment?.hasModifier("@disableGroups")) { | ||
return; | ||
} | ||
reflection.groups = this.getReflectionGroups(reflection, reflection.childrenIncludingDocuments); | ||
@@ -155,0 +158,0 @@ } |
@@ -7,3 +7,3 @@ import assert from "assert"; | ||
import { convertIndexSignatures } from "./factories/index-signature.js"; | ||
import { createConstructSignatureWithType, createSignature, createTypeParamReflection } from "./factories/signature.js"; | ||
import { convertTypeParameters, createConstructSignatureWithType, createSignature, createTypeParamReflection, } from "./factories/signature.js"; | ||
import { convertJsDocAlias, convertJsDocCallback } from "./jsdoc.js"; | ||
@@ -706,2 +706,5 @@ import { getHeritageTypes } from "./utils/nodes.js"; | ||
} | ||
// Take the type parameters from the first constructor signature and use | ||
// them as the type parameters for the class, #2914 | ||
reflection.typeParameters = convertTypeParameters(rc, reflection, ctors[0].getTypeParameters()); | ||
const instType = ctors[0].getReturnType(); | ||
@@ -708,0 +711,0 @@ convertSymbols(rc, instType.getProperties()); |
@@ -443,7 +443,3 @@ import assert from "assert"; | ||
context.shouldInline(symbol, name)) { | ||
// typeLiteralConverter doesn't use the node, so we can get away with lying here. | ||
// This might not actually be safe, it appears that it is in the relatively small | ||
// amount of testing I've done with it, but I wouldn't be surprised if someone manages | ||
// to find a crash. | ||
return typeLiteralConverter.convertType(context, type, null, undefined); | ||
return convertTypeInlined(context, type); | ||
} | ||
@@ -474,7 +470,3 @@ const ref = context.createSymbolReference(context.resolveAliasedSymbol(symbol), context, name); | ||
if (context.shouldInline(symbol, name)) { | ||
// typeLiteralConverter doesn't use the node, so we can get away with lying here. | ||
// This might not actually be safe, it appears that it is in the relatively small | ||
// amount of testing I've done with it, but I wouldn't be surprised if someone manages | ||
// to find a crash. | ||
return typeLiteralConverter.convertType(context, type, null, undefined); | ||
return convertTypeInlined(context, type); | ||
} | ||
@@ -790,1 +782,21 @@ const ref = context.createSymbolReference(context.resolveAliasedSymbol(symbol), context, name); | ||
} | ||
function convertTypeInlined(context, type) { | ||
if (type.isUnion()) { | ||
const types = type.types.map(type => convertType(context, type)); | ||
return new UnionType(types); | ||
} | ||
if (type.isIntersection()) { | ||
const types = type.types.map(type => convertType(context, type)); | ||
return new IntersectionType(types); | ||
} | ||
if (type.isLiteral()) { | ||
return new LiteralType(typeof type.value === "object" | ||
? BigInt(type.value.base10Value) * (type.value.negative ? -1n : 1n) | ||
: type.value); | ||
} | ||
if (context.checker.isArrayType(type)) { | ||
const elementType = convertType(context, context.checker.getTypeArguments(type)[0]); | ||
return new ArrayType(elementType); | ||
} | ||
return typeLiteralConverter.convertType(context, type); | ||
} |
@@ -902,13 +902,13 @@ import { ReflectionSymbolId } from "./ReflectionSymbolId.js"; | ||
const parts = []; | ||
const sigs = this.declaration.getAllSignatures(); | ||
const sigs = this.declaration.getNonIndexSignatures(); | ||
for (const sig of sigs) { | ||
parts.push(sigStr(sig, ": ")); | ||
} | ||
if (this.declaration.children) { | ||
for (const p of this.declaration.children) { | ||
parts.push(`${p.name}${propertySep(p)} ${typeStr(p.type)}`); | ||
} | ||
return `{ ${parts.join("; ")} }`; | ||
for (const p of this.declaration.children || []) { | ||
parts.push(`${p.name}${propertySep(p)} ${typeStr(p.type)}`); | ||
} | ||
if (sigs.length === 1) { | ||
for (const s of this.declaration.indexSignatures || []) { | ||
parts.push(sigStr(s, ": ", "[]")); | ||
} | ||
if (sigs.length === 1 && parts.length === 1) { | ||
return sigStr(sigs[0], " => "); | ||
@@ -1242,5 +1242,5 @@ } | ||
} | ||
function sigStr(sig, sep) { | ||
function sigStr(sig, sep, brackets = "()") { | ||
const params = joinArray(sig.parameters, ", ", (p) => `${p.name}${propertySep(p)} ${typeStr(p.type)}`); | ||
return `(${params})${sep}${typeStr(sig.type)}`; | ||
return `${brackets[0]}${params}${brackets[1]}${sep}${typeStr(sig.type)}`; | ||
} |
@@ -118,3 +118,3 @@ import type { Application } from "../application.js"; | ||
* @summary Writes HTML output from TypeDoc's models | ||
* @group Common | ||
* @group None | ||
*/ | ||
@@ -193,2 +193,4 @@ export declare class Renderer extends AbstractComponent<Application, RendererEvents> { | ||
defineTheme(name: string, theme: new (renderer: Renderer) => Theme): void; | ||
/** @internal intended for test usage only */ | ||
removeTheme(name: string): void; | ||
/** | ||
@@ -200,2 +202,4 @@ * Define a new router that can be used to determine the output structure. | ||
defineRouter(name: string, router: new (app: Application) => Router): void; | ||
/** @internal intended for test usage only */ | ||
removeRouter(name: string): void; | ||
/** | ||
@@ -202,0 +206,0 @@ * Render the given project reflection to the specified output directory. |
@@ -82,3 +82,3 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { | ||
* @summary Writes HTML output from TypeDoc's models | ||
* @group Common | ||
* @group None | ||
*/ | ||
@@ -235,2 +235,6 @@ let Renderer = (() => { | ||
} | ||
/** @internal intended for test usage only */ | ||
removeTheme(name) { | ||
this.themes.delete(name); | ||
} | ||
/** | ||
@@ -247,2 +251,6 @@ * Define a new router that can be used to determine the output structure. | ||
} | ||
/** @internal intended for test usage only */ | ||
removeRouter(name) { | ||
this.routers.delete(name); | ||
} | ||
/** | ||
@@ -249,0 +257,0 @@ * Render the given project reflection to the specified output directory. |
@@ -169,2 +169,12 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { | ||
} | ||
let toPage = to; | ||
while (!this.hasOwnDocument(toPage)) { | ||
toPage = toPage.parent; | ||
} | ||
// We unfortunately have to special case ProjectReflection as it is | ||
// the model used twice for rendering. This should be changed in a | ||
// future version to remove this hackery. | ||
if (from === toPage && !(to instanceof ProjectReflection)) { | ||
return to === toPage ? "" : `#${this.getAnchor(to)}`; | ||
} | ||
const fromUrl = this.getFullUrl(from); | ||
@@ -185,8 +195,10 @@ const toUrl = this.getFullUrl(to); | ||
} | ||
if (equal && !(to instanceof ProjectReflection)) { | ||
if (fromUrl === toUrl) { | ||
return ""; | ||
} | ||
return `#${this.getAnchor(to)}`; | ||
// If equal is still set, we're going to a page either in | ||
// the same directory as this page, or a lower directory, | ||
// don't bother going up directories just to come back down. | ||
if (equal) { | ||
return toUrl.substring(start); | ||
} | ||
// Otherwise, go up until we get to the common directory | ||
// and then back down to the target path. | ||
return "../".repeat(slashes) + toUrl.substring(start); | ||
@@ -193,0 +205,0 @@ } |
@@ -1,6 +0,6 @@ | ||
import { classNames, renderName } from "../../lib.js"; | ||
import { classNames, getMemberSections, isNoneSection, renderName } from "../../lib.js"; | ||
import { i18n, JSX } from "#utils"; | ||
function renderCategory({ urlTo, reflectionIcon, getReflectionClasses, markdown }, item, prependName = "") { | ||
function renderSection({ urlTo, reflectionIcon, getReflectionClasses, markdown }, item) { | ||
return (JSX.createElement("section", { class: "tsd-index-section" }, | ||
JSX.createElement("h3", { class: "tsd-index-heading" }, prependName ? `${prependName} - ${item.title}` : item.title), | ||
!isNoneSection(item) && JSX.createElement("h3", { class: "tsd-index-heading" }, item.title), | ||
item.description && (JSX.createElement("div", { class: "tsd-comment tsd-typography" }, | ||
@@ -15,11 +15,3 @@ JSX.createElement(JSX.Raw, { html: markdown(item.description) }))), | ||
export function index(context, props) { | ||
let content = []; | ||
if (props.categories?.length) { | ||
content = props.categories.map((item) => renderCategory(context, item)); | ||
} | ||
else if (props.groups?.length) { | ||
content = props.groups.flatMap((item) => item.categories | ||
? item.categories.map((item2) => renderCategory(context, item2, item.title)) | ||
: renderCategory(context, item)); | ||
} | ||
const sections = getMemberSections(props); | ||
return (JSX.createElement(JSX.Fragment, null, | ||
@@ -32,3 +24,3 @@ JSX.createElement("section", { class: "tsd-panel-group tsd-index-group" }, | ||
JSX.createElement("h5", { class: "tsd-index-heading uppercase" }, i18n.theme_index())), | ||
JSX.createElement("div", { class: "tsd-accordion-details" }, content)))))); | ||
JSX.createElement("div", { class: "tsd-accordion-details" }, sections.map(s => renderSection(context, s)))))))); | ||
} |
import { JSX } from "#utils"; | ||
import {} from "../../../../models/index.js"; | ||
import { getMemberSections } from "../../lib.js"; | ||
import { getMemberSections, isNoneSection } from "../../lib.js"; | ||
export function members(context, props) { | ||
const sections = getMemberSections(props, (child) => !context.router.hasOwnDocument(child)); | ||
return (JSX.createElement(JSX.Fragment, null, sections.map(({ title, children }) => { | ||
context.page.startNewSection(title); | ||
return (JSX.createElement(JSX.Fragment, null, sections.map((section) => { | ||
if (isNoneSection(section)) { | ||
return (JSX.createElement("section", { class: "tsd-panel-group tsd-member-group" }, section.children.map((item) => context.member(item)))); | ||
} | ||
context.page.startNewSection(section.title); | ||
return (JSX.createElement("details", { class: "tsd-panel-group tsd-member-group tsd-accordion", open: true }, | ||
JSX.createElement("summary", { class: "tsd-accordion-summary", "data-key": "section-" + title }, | ||
JSX.createElement("summary", { class: "tsd-accordion-summary", "data-key": "section-" + section.title }, | ||
context.icons.chevronDown(), | ||
JSX.createElement("h2", null, title)), | ||
JSX.createElement("section", null, children.map((item) => context.member(item))))); | ||
JSX.createElement("h2", null, section.title)), | ||
JSX.createElement("section", null, section.children.map((item) => context.member(item))))); | ||
}))); | ||
} |
import { ReferenceReflection, ReflectionKind, } from "../../../../models/index.js"; | ||
import { JSX } from "#utils"; | ||
import { classNames, getDisplayName, getMemberSections, getUniquePath, join } from "../../lib.js"; | ||
import { classNames, getDisplayName, getMemberSections, getUniquePath, isNoneSection, join } from "../../lib.js"; | ||
import { anchorIcon } from "./anchor-icon.js"; | ||
@@ -13,11 +13,18 @@ export function moduleReflection(context, mod) { | ||
JSX.createElement(JSX.Raw, { html: context.markdown(mod.readme) }))), | ||
sections.map(({ title, children, description }) => { | ||
context.page.startNewSection(title); | ||
sections.map((section) => { | ||
if (!isNoneSection(section)) { | ||
context.page.startNewSection(section.title); | ||
} | ||
const content = (JSX.createElement(JSX.Fragment, null, | ||
section.description && (JSX.createElement("div", { class: "tsd-comment tsd-typography" }, | ||
JSX.createElement(JSX.Raw, { html: context.markdown(section.description) }))), | ||
JSX.createElement("dl", { class: "tsd-member-summaries" }, section.children.map((item) => context.moduleMemberSummary(item))))); | ||
if (isNoneSection(section)) { | ||
return (JSX.createElement("section", { class: "tsd-panel-group tsd-member-group" }, content)); | ||
} | ||
return (JSX.createElement("details", { class: "tsd-panel-group tsd-member-group tsd-accordion", open: true }, | ||
JSX.createElement("summary", { class: "tsd-accordion-summary", "data-key": "section-" + title }, | ||
JSX.createElement("summary", { class: "tsd-accordion-summary", "data-key": "section-" + section.title }, | ||
context.icons.chevronDown(), | ||
JSX.createElement("h2", null, title)), | ||
description && (JSX.createElement("div", { class: "tsd-comment tsd-typography" }, | ||
JSX.createElement(JSX.Raw, { html: context.markdown(description) }))), | ||
JSX.createElement("dl", { class: "tsd-member-summaries" }, children.map((item) => context.moduleMemberSummary(item))))); | ||
JSX.createElement("h2", null, section.title)), | ||
content)); | ||
}))); | ||
@@ -24,0 +31,0 @@ } |
@@ -90,8 +90,16 @@ import { ReflectionFlag, ReflectionFlags } from "../../../../models/index.js"; | ||
} | ||
function getInferredHeadingLevel(heading) { | ||
if (heading.level) { | ||
// Regular heading | ||
return heading.level + 2; | ||
} | ||
if (heading.kind) { | ||
// Reflection | ||
return 2; | ||
} | ||
// Group/category | ||
return 1; | ||
} | ||
for (const heading of headings) { | ||
const inferredLevel = heading.level | ||
? heading.level + 2 // regular heading | ||
: heading.kind | ||
? 2 // reflection | ||
: 1; // group/category | ||
const inferredLevel = getInferredHeadingLevel(heading); | ||
while (inferredLevel < levels.length) { | ||
@@ -98,0 +106,0 @@ finalizeLevel(false); |
@@ -28,3 +28,4 @@ import type { DefaultThemeRenderContext } from "../index.js"; | ||
export declare function getHierarchyRoots(project: ProjectReflection): DeclarationReflection[]; | ||
export interface MemberSections { | ||
export declare function isNoneSection(section: MemberSection): boolean; | ||
export interface MemberSection { | ||
title: string; | ||
@@ -34,3 +35,3 @@ description?: CommentDisplayPart[]; | ||
} | ||
export declare function getMemberSections(parent: ContainerReflection, childFilter?: (refl: Reflection) => boolean): MemberSections[]; | ||
export declare function getMemberSections(parent: ContainerReflection, childFilter?: (refl: Reflection) => boolean): MemberSection[]; | ||
/** | ||
@@ -37,0 +38,0 @@ * Returns a (hopefully) globally unique path for the given reflection. |
@@ -73,13 +73,2 @@ import { DeclarationReflection, ProjectReflection, ReferenceReflection, ReflectionKind, SignatureReflection, } from "../../models/index.js"; | ||
return JSX.createElement(JSX.Fragment, null); | ||
const hideParamTypes = false; // context.options.getValue("hideTypesInSignatureTitle"); | ||
if (hideParamTypes) { | ||
return (JSX.createElement(JSX.Fragment, null, | ||
JSX.createElement("span", { class: "tsd-signature-symbol" }, "<"), | ||
join(JSX.createElement("span", { class: "tsd-signature-symbol" }, ", "), typeParameters, (item) => (JSX.createElement(JSX.Fragment, null, | ||
(item.flags.isConst || item.varianceModifier) && (JSX.createElement("span", { class: "tsd-signature-keyword" }, | ||
item.flags.isConst && "const ", | ||
item.varianceModifier && `${item.varianceModifier} `)), | ||
JSX.createElement("a", { class: "tsd-signature-type tsd-kind-type-parameter", href: context.urlTo(item) }, item.name)))), | ||
JSX.createElement("span", { class: "tsd-signature-symbol" }, ">"))); | ||
} | ||
return (JSX.createElement(JSX.Fragment, null, | ||
@@ -139,2 +128,14 @@ JSX.createElement("span", { class: "tsd-signature-symbol" }, "<"), | ||
} | ||
export function isNoneSection(section) { | ||
return section.title.toLocaleLowerCase() === "none"; | ||
} | ||
function sortNoneSectionFirst(a, b) { | ||
if (isNoneSection(a)) { | ||
return -1; | ||
} | ||
if (isNoneSection(b)) { | ||
return 1; | ||
} | ||
return 0; | ||
} | ||
export function getMemberSections(parent, childFilter = () => true) { | ||
@@ -151,3 +152,3 @@ if (parent.categories?.length) { | ||
}; | ||
}); | ||
}).sort(sortNoneSectionFirst); | ||
} | ||
@@ -157,3 +158,3 @@ if (parent.groups?.length) { | ||
if (group.categories?.length) { | ||
return filterMap(group.categories, (cat) => { | ||
return filterMap(group.categories.slice().sort(sortNoneSectionFirst), (cat) => { | ||
const children = cat.children.filter(childFilter); | ||
@@ -163,3 +164,3 @@ if (!children.length) | ||
return { | ||
title: `${group.title} - ${cat.title}`, | ||
title: isNoneSection(cat) ? group.title : `${group.title} - ${cat.title}`, | ||
description: cat.description, | ||
@@ -178,4 +179,10 @@ children, | ||
}; | ||
}); | ||
}).sort(sortNoneSectionFirst); | ||
} | ||
if (parent.children?.length) { | ||
return [{ | ||
title: "none", | ||
children: parent.children || [], | ||
}]; | ||
} | ||
return []; | ||
@@ -182,0 +189,0 @@ } |
@@ -180,3 +180,3 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { | ||
if (typeof part.target === "string") { | ||
url = part.target; | ||
url = part.target === "#" ? undefined : part.target; | ||
} | ||
@@ -183,0 +183,0 @@ else if ("id" in part.target) { |
@@ -15,3 +15,3 @@ import { type FileRegistry, ProjectReflection, type ReflectionVariant, type TypeKindMap } from "#models"; | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Deserializes TypeDoc's JSON output | ||
@@ -18,0 +18,0 @@ */ |
@@ -8,3 +8,3 @@ import { ArrayType, ConditionalType, DeclarationReflection, DocumentReflection, IndexedAccessType, InferredType, IntersectionType, IntrinsicType, LiteralType, MappedType, NamedTupleMember, OptionalType, ParameterReflection, PredicateType, ProjectReflection, QueryType, ReferenceReflection, ReferenceType, Reflection, ReflectionKind, ReflectionType, RestType, SignatureReflection, TemplateLiteralType, TupleType, TypeOperatorType, TypeParameterReflection, UnionType, UnknownType, } from "#models"; | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Deserializes TypeDoc's JSON output | ||
@@ -11,0 +11,0 @@ */ |
@@ -13,3 +13,3 @@ import type { ProjectReflection } from "#models"; | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Serializes TypeDoc's models to JSON | ||
@@ -16,0 +16,0 @@ */ |
@@ -6,3 +6,3 @@ import { SerializeEvent } from "./events.js"; | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Serializes TypeDoc's models to JSON | ||
@@ -9,0 +9,0 @@ */ |
@@ -231,3 +231,5 @@ import { join, relative, resolve } from "path"; | ||
if (result.length === 0) { | ||
logger.warn(i18n.glob_0_did_not_match_any_files(nicePath(entry))); | ||
// #2918 - do not pass entry through nicePath here in case it contains | ||
// windows path separators which should cause additional warnings. | ||
logger.warn(i18n.glob_0_did_not_match_any_files(entry)); | ||
if (entry.includes("\\") && !entry.includes("/")) { | ||
@@ -238,6 +240,6 @@ logger.info(i18n.glob_should_use_posix_slash()); | ||
else if (filtered.length === 0) { | ||
logger.warn(i18n.entry_point_0_did_not_match_any_files_after_exclude(nicePath(entry))); | ||
logger.warn(i18n.entry_point_0_did_not_match_any_files_after_exclude(entry)); | ||
} | ||
else if (filtered.length !== 1) { | ||
logger.verbose(`Expanded ${nicePath(entry)} to:\n\t${filtered | ||
logger.verbose(`Expanded ${entry} to:\n\t${filtered | ||
.map(nicePath) | ||
@@ -244,0 +246,0 @@ .join("\n\t")}`); |
@@ -30,2 +30,3 @@ import * as TagDefaults from "./tsdoc-defaults.js"; | ||
"@inline", | ||
"@inlineType", | ||
]; | ||
@@ -45,2 +46,3 @@ export const blockTags = TagDefaults.blockTags; | ||
"@hideGroups", | ||
"@disableGroups", | ||
"@expand", | ||
@@ -47,0 +49,0 @@ "@preventExpand", |
@@ -63,3 +63,3 @@ import type ts from "typescript"; | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Contains all of TypeDoc's option declarations & values | ||
@@ -66,0 +66,0 @@ */ |
@@ -29,3 +29,3 @@ import { resolve } from "path"; | ||
* | ||
* @group Common | ||
* @group None | ||
* @summary Contains all of TypeDoc's option declarations & values | ||
@@ -32,0 +32,0 @@ */ |
@@ -6,2 +6,2 @@ export declare const tsdocBlockTags: readonly ["@defaultValue", "@deprecated", "@example", "@param", "@privateRemarks", "@remarks", "@returns", "@see", "@throws", "@typeParam"]; | ||
export declare const tsdocModifierTags: readonly ["@alpha", "@beta", "@eventProperty", "@experimental", "@internal", "@override", "@packageDocumentation", "@public", "@readonly", "@sealed", "@virtual"]; | ||
export declare const modifierTags: readonly ["@alpha", "@beta", "@eventProperty", "@experimental", "@internal", "@override", "@packageDocumentation", "@public", "@readonly", "@sealed", "@virtual", "@abstract", "@class", "@enum", "@event", "@expand", "@hidden", "@hideCategories", "@hideconstructor", "@hideGroups", "@ignore", "@inline", "@interface", "@namespace", "@function", "@overload", "@private", "@protected", "@showCategories", "@showGroups", "@useDeclaredType", "@primaryExport"]; | ||
export declare const modifierTags: readonly ["@alpha", "@beta", "@eventProperty", "@experimental", "@internal", "@override", "@packageDocumentation", "@public", "@readonly", "@sealed", "@virtual", "@abstract", "@class", "@disableGroups", "@enum", "@event", "@expand", "@hidden", "@hideCategories", "@hideconstructor", "@hideGroups", "@ignore", "@inline", "@interface", "@namespace", "@function", "@overload", "@private", "@protected", "@showCategories", "@showGroups", "@useDeclaredType", "@primaryExport"]; |
@@ -72,2 +72,3 @@ // If updating these lists, also update tsdoc.json | ||
"@class", | ||
"@disableGroups", | ||
"@enum", | ||
@@ -74,0 +75,0 @@ "@event", |
{ | ||
"name": "typedoc", | ||
"description": "Create api documentation for TypeScript projects.", | ||
"version": "0.28.1", | ||
"version": "0.28.2", | ||
"homepage": "https://typedoc.org", | ||
@@ -34,7 +34,7 @@ "type": "module", | ||
"dependencies": { | ||
"@gerrit0/mini-shiki": "^3.2.1", | ||
"@gerrit0/mini-shiki": "^3.2.2", | ||
"lunr": "^2.3.9", | ||
"markdown-it": "^14.1.0", | ||
"minimatch": "^9.0.5", | ||
"yaml": "^2.7.0 " | ||
"yaml": "^2.7.1" | ||
}, | ||
@@ -45,3 +45,3 @@ "peerDependencies": { | ||
"devDependencies": { | ||
"@eslint/js": "^9.22.0", | ||
"@eslint/js": "^9.24.0", | ||
"@types/lunr": "^2.3.7", | ||
@@ -53,11 +53,11 @@ "@types/markdown-it": "^14.1.2", | ||
"c8": "^10.1.3", | ||
"dprint": "^0.49.0", | ||
"esbuild": "^0.25.1", | ||
"eslint": "^9.22.0", | ||
"dprint": "^0.49.1", | ||
"esbuild": "^0.25.2", | ||
"eslint": "^9.24.0", | ||
"mocha": "^11.1.0", | ||
"puppeteer": "^24.4.0", | ||
"puppeteer": "^24.6.0", | ||
"semver": "^7.7.1", | ||
"tsx": "^4.19.3", | ||
"typescript": "5.8.2", | ||
"typescript-eslint": "^8.26.1" | ||
"typescript": "5.8.3", | ||
"typescript-eslint": "^8.29.0" | ||
}, | ||
@@ -64,0 +64,0 @@ "files": [ |
@@ -53,2 +53,7 @@ { | ||
{ | ||
"tagName": "@disableGroups", | ||
"syntaxKind": "modifier", | ||
"allowMultiple": false | ||
}, | ||
{ | ||
"tagName": "@category", | ||
@@ -55,0 +60,0 @@ "syntaxKind": "block", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
2024915
0.23%48633
0.22%Updated
Updated