@mnaoumov/typescript-dev-toolkit 1.3.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/docs-site/components/ConstructorBlock.astro +16 -0
- package/assets/docs-site/components/ImportStatement.astro +12 -0
- package/assets/docs-site/components/MemberDetail.astro +101 -0
- package/assets/docs-site/components/MethodTable.astro +45 -0
- package/assets/docs-site/components/PropertyTable.astro +45 -0
- package/assets/docs-site/components/SiteTitle.astro +43 -0
- package/assets/docs-site/components/TypeSignature.astro +20 -0
- package/assets/docs-site/fonts/inter-latin-400-normal.ttf +0 -0
- package/assets/docs-site/fonts/inter-latin-700-normal.ttf +0 -0
- package/assets/docs-site/styles/global.css +221 -0
- package/dist/lib/cjs/build.cjs +1 -1
- package/dist/lib/cjs/build.d.cts +1 -1
- package/dist/lib/cjs/commitlint-forbidden-patterns.cjs +2 -2
- package/dist/lib/cjs/commitlint-forbidden-patterns.d.cts +1 -1
- package/dist/lib/cjs/commitlint-spellcheck-header.cjs +2 -2
- package/dist/lib/cjs/commitlint-spellcheck-header.d.cts +1 -1
- package/dist/lib/cjs/docs-site/api-doc-constants.cjs +171 -0
- package/dist/lib/cjs/docs-site/api-doc-constants.d.cts +18 -0
- package/dist/lib/cjs/docs-site/api-doc-jsdoc.cjs +414 -0
- package/dist/lib/cjs/docs-site/api-doc-jsdoc.d.cts +149 -0
- package/dist/lib/cjs/docs-site/api-doc-link-rendering.cjs +377 -0
- package/dist/lib/cjs/docs-site/api-doc-link-rendering.d.cts +185 -0
- package/dist/lib/cjs/docs-site/api-doc-package-sites.cjs +118 -0
- package/dist/lib/cjs/docs-site/api-doc-package-sites.d.cts +36 -0
- package/dist/lib/cjs/docs-site/api-doc-page-generation.cjs +561 -0
- package/dist/lib/cjs/docs-site/api-doc-page-generation.d.cts +159 -0
- package/dist/lib/cjs/docs-site/api-doc-route-segments.cjs +42 -0
- package/dist/lib/cjs/docs-site/api-doc-route-segments.d.cts +25 -0
- package/dist/lib/cjs/docs-site/api-doc-settings.cjs +47 -0
- package/dist/lib/cjs/docs-site/api-doc-settings.d.cts +53 -0
- package/dist/lib/cjs/docs-site/api-doc-source-processing.cjs +288 -0
- package/dist/lib/cjs/docs-site/api-doc-source-processing.d.cts +75 -0
- package/dist/lib/cjs/docs-site/api-doc-text-utils.cjs +281 -0
- package/dist/lib/cjs/docs-site/api-doc-text-utils.d.cts +178 -0
- package/dist/lib/cjs/docs-site/api-doc-type-merging.cjs +157 -0
- package/dist/lib/cjs/docs-site/api-doc-type-merging.d.cts +51 -0
- package/dist/lib/cjs/docs-site/api-doc-types.cjs +22 -0
- package/dist/lib/cjs/docs-site/api-doc-types.d.cts +157 -0
- package/dist/lib/cjs/docs-site/api-docs.cjs +143 -0
- package/dist/lib/cjs/docs-site/api-docs.d.cts +34 -0
- package/dist/lib/cjs/docs-site/astro-config.cjs +169 -0
- package/dist/lib/cjs/docs-site/astro-config.d.cts +23 -0
- package/dist/lib/cjs/docs-site/docs-links.cjs +123 -0
- package/dist/lib/cjs/docs-site/docs-links.d.cts +32 -0
- package/dist/lib/cjs/docs-site/docs-site-assets.cjs +64 -0
- package/dist/lib/cjs/docs-site/docs-site-assets.d.cts +23 -0
- package/dist/lib/cjs/docs-site/docs-site-commands.cjs +72 -0
- package/dist/lib/cjs/docs-site/docs-site-commands.d.cts +29 -0
- package/dist/lib/cjs/docs-site/docs-site-config.cjs +122 -0
- package/dist/lib/cjs/docs-site/docs-site-config.d.cts +162 -0
- package/dist/lib/cjs/docs-site/index.cjs +116 -0
- package/dist/lib/cjs/docs-site/index.d.cts +26 -0
- package/dist/lib/cjs/docs-site/link-check.cjs +197 -0
- package/dist/lib/cjs/docs-site/link-check.d.cts +163 -0
- package/dist/lib/cjs/docs-site/og-image-page.cjs +45 -0
- package/dist/lib/cjs/docs-site/og-image-page.d.cts +15 -0
- package/dist/lib/cjs/docs-site/og-image.cjs +326 -0
- package/dist/lib/cjs/docs-site/og-image.d.cts +70 -0
- package/dist/lib/cjs/docs-site/og-images.cjs +170 -0
- package/dist/lib/cjs/docs-site/og-images.d.cts +41 -0
- package/dist/lib/cjs/docs-site/route-data.cjs +47 -0
- package/dist/lib/cjs/docs-site/route-data.d.cts +14 -0
- package/dist/lib/cjs/docs-site/satteri-github-alerts.cjs +97 -0
- package/dist/lib/cjs/docs-site/satteri-github-alerts.d.cts +31 -0
- package/dist/lib/cjs/docs-site/satteri-relative-links.cjs +87 -0
- package/dist/lib/cjs/docs-site/satteri-relative-links.d.cts +29 -0
- package/dist/lib/cjs/docs-site/unrendered-alerts.cjs +51 -0
- package/dist/lib/cjs/docs-site/unrendered-alerts.d.cts +38 -0
- package/dist/lib/cjs/index.cjs +4 -1
- package/dist/lib/cjs/index.d.cts +1 -0
- package/dist/lib/cjs/library-build.cjs +1 -1
- package/dist/lib/cjs/library-build.d.cts +2 -2
- package/dist/lib/cjs/linters/eslint-config.cjs +17 -17
- package/dist/lib/cjs/linters/eslint-config.d.cts +1 -7
- package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +2 -2
- package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.d.cts +5 -8
- package/dist/lib/cjs/linters/markdownlint.cjs +4 -1
- package/dist/lib/cjs/package-manager.cjs +2 -2
- package/dist/lib/esm/build.d.mts +1 -1
- package/dist/lib/esm/build.mjs +1 -1
- package/dist/lib/esm/commitlint-forbidden-patterns.d.mts +1 -1
- package/dist/lib/esm/commitlint-forbidden-patterns.mjs +2 -2
- package/dist/lib/esm/commitlint-spellcheck-header.d.mts +1 -1
- package/dist/lib/esm/commitlint-spellcheck-header.mjs +2 -2
- package/dist/lib/esm/docs-site/api-doc-constants.d.mts +18 -0
- package/dist/lib/esm/docs-site/api-doc-constants.mjs +143 -0
- package/dist/lib/esm/docs-site/api-doc-jsdoc.d.mts +149 -0
- package/dist/lib/esm/docs-site/api-doc-jsdoc.mjs +377 -0
- package/dist/lib/esm/docs-site/api-doc-link-rendering.d.mts +185 -0
- package/dist/lib/esm/docs-site/api-doc-link-rendering.mjs +356 -0
- package/dist/lib/esm/docs-site/api-doc-package-sites.d.mts +36 -0
- package/dist/lib/esm/docs-site/api-doc-package-sites.mjs +91 -0
- package/dist/lib/esm/docs-site/api-doc-page-generation.d.mts +159 -0
- package/dist/lib/esm/docs-site/api-doc-page-generation.mjs +548 -0
- package/dist/lib/esm/docs-site/api-doc-route-segments.d.mts +25 -0
- package/dist/lib/esm/docs-site/api-doc-route-segments.mjs +17 -0
- package/dist/lib/esm/docs-site/api-doc-settings.d.mts +53 -0
- package/dist/lib/esm/docs-site/api-doc-settings.mjs +22 -0
- package/dist/lib/esm/docs-site/api-doc-source-processing.d.mts +75 -0
- package/dist/lib/esm/docs-site/api-doc-source-processing.mjs +274 -0
- package/dist/lib/esm/docs-site/api-doc-text-utils.d.mts +178 -0
- package/dist/lib/esm/docs-site/api-doc-text-utils.mjs +239 -0
- package/dist/lib/esm/docs-site/api-doc-type-merging.d.mts +51 -0
- package/dist/lib/esm/docs-site/api-doc-type-merging.mjs +129 -0
- package/dist/lib/esm/docs-site/api-doc-types.d.mts +157 -0
- package/dist/lib/esm/docs-site/api-doc-types.mjs +6 -0
- package/dist/lib/esm/docs-site/api-docs.d.mts +34 -0
- package/dist/lib/esm/docs-site/api-docs.mjs +139 -0
- package/dist/lib/esm/docs-site/astro-config.d.mts +23 -0
- package/dist/lib/esm/docs-site/astro-config.mjs +135 -0
- package/dist/lib/esm/docs-site/docs-links.d.mts +32 -0
- package/dist/lib/esm/docs-site/docs-links.mjs +113 -0
- package/dist/lib/esm/docs-site/docs-site-assets.d.mts +23 -0
- package/dist/lib/esm/docs-site/docs-site-assets.mjs +32 -0
- package/dist/lib/esm/docs-site/docs-site-commands.d.mts +29 -0
- package/dist/lib/esm/docs-site/docs-site-commands.mjs +46 -0
- package/dist/lib/esm/docs-site/docs-site-config.d.mts +162 -0
- package/dist/lib/esm/docs-site/docs-site-config.mjs +98 -0
- package/dist/lib/esm/docs-site/index.d.mts +26 -0
- package/dist/lib/esm/docs-site/index.mjs +58 -0
- package/dist/lib/esm/docs-site/link-check.d.mts +163 -0
- package/dist/lib/esm/docs-site/link-check.mjs +166 -0
- package/dist/lib/esm/docs-site/og-image-page.d.mts +15 -0
- package/dist/lib/esm/docs-site/og-image-page.mjs +21 -0
- package/dist/lib/esm/docs-site/og-image.d.mts +70 -0
- package/dist/lib/esm/docs-site/og-image.mjs +292 -0
- package/dist/lib/esm/docs-site/og-images.d.mts +41 -0
- package/dist/lib/esm/docs-site/og-images.mjs +156 -0
- package/dist/lib/esm/docs-site/route-data.d.mts +14 -0
- package/dist/lib/esm/docs-site/route-data.mjs +23 -0
- package/dist/lib/esm/docs-site/satteri-github-alerts.d.mts +31 -0
- package/dist/lib/esm/docs-site/satteri-github-alerts.mjs +72 -0
- package/dist/lib/esm/docs-site/satteri-relative-links.d.mts +29 -0
- package/dist/lib/esm/docs-site/satteri-relative-links.mjs +63 -0
- package/dist/lib/esm/docs-site/unrendered-alerts.d.mts +38 -0
- package/dist/lib/esm/docs-site/unrendered-alerts.mjs +26 -0
- package/dist/lib/esm/index.d.mts +1 -0
- package/dist/lib/esm/index.mjs +3 -1
- package/dist/lib/esm/library-build.d.mts +2 -2
- package/dist/lib/esm/library-build.mjs +1 -1
- package/dist/lib/esm/linters/eslint-config.d.mts +1 -7
- package/dist/lib/esm/linters/eslint-config.mjs +17 -17
- package/dist/lib/esm/linters/eslint-rules/in-house-plugin.d.mts +5 -8
- package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +2 -2
- package/dist/lib/esm/linters/markdownlint.mjs +4 -1
- package/dist/lib/esm/package-manager.mjs +2 -2
- package/docs-site/api-doc-constants/package.json +6 -0
- package/docs-site/api-doc-jsdoc/package.json +6 -0
- package/docs-site/api-doc-link-rendering/package.json +6 -0
- package/docs-site/api-doc-package-sites/package.json +6 -0
- package/docs-site/api-doc-page-generation/package.json +6 -0
- package/docs-site/api-doc-route-segments/package.json +6 -0
- package/docs-site/api-doc-settings/package.json +6 -0
- package/docs-site/api-doc-source-processing/package.json +6 -0
- package/docs-site/api-doc-text-utils/package.json +6 -0
- package/docs-site/api-doc-type-merging/package.json +6 -0
- package/docs-site/api-doc-types/package.json +6 -0
- package/docs-site/api-docs/package.json +6 -0
- package/docs-site/astro-config/package.json +6 -0
- package/docs-site/docs-links/package.json +6 -0
- package/docs-site/docs-site-assets/package.json +6 -0
- package/docs-site/docs-site-commands/package.json +6 -0
- package/docs-site/docs-site-config/package.json +6 -0
- package/docs-site/index/package.json +6 -0
- package/docs-site/link-check/package.json +6 -0
- package/docs-site/og-image/package.json +6 -0
- package/docs-site/og-image-page/package.json +6 -0
- package/docs-site/og-images/package.json +6 -0
- package/docs-site/package.json +6 -0
- package/docs-site/route-data/package.json +6 -0
- package/docs-site/satteri-github-alerts/package.json +6 -0
- package/docs-site/satteri-relative-links/package.json +6 -0
- package/docs-site/unrendered-alerts/package.json +6 -0
- package/package.json +74 -4
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
(function () {
|
|
6
|
+
function ensureBrowserProcess() {
|
|
7
|
+
const browserProcess = {
|
|
8
|
+
browser: true,
|
|
9
|
+
cwd() {
|
|
10
|
+
return '/';
|
|
11
|
+
},
|
|
12
|
+
env: {},
|
|
13
|
+
platform: 'android'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const existingProcess = globalThis.process;
|
|
17
|
+
|
|
18
|
+
if (!existingProcess) {
|
|
19
|
+
globalThis.process = browserProcess;
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (existingProcess.versions?.node) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const existingProcessRecord = existingProcess;
|
|
28
|
+
|
|
29
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
30
|
+
existingProcessRecord[key] ??= value;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
existingProcessRecord['browser'] = true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
ensureBrowserProcess();
|
|
37
|
+
})();
|
|
38
|
+
|
|
39
|
+
"use strict";
|
|
40
|
+
var __defProp = Object.defineProperty;
|
|
41
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
42
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
43
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
44
|
+
var __export = (target, all) => {
|
|
45
|
+
for (var name in all)
|
|
46
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
47
|
+
};
|
|
48
|
+
var __copyProps = (to, from, except, desc) => {
|
|
49
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
50
|
+
for (let key of __getOwnPropNames(from))
|
|
51
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
52
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
53
|
+
}
|
|
54
|
+
return to;
|
|
55
|
+
};
|
|
56
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
57
|
+
var api_doc_type_merging_exports = {};
|
|
58
|
+
__export(api_doc_type_merging_exports, {
|
|
59
|
+
buildTypeParameterMap: () => buildTypeParameterMap,
|
|
60
|
+
parseTypeArguments: () => parseTypeArguments,
|
|
61
|
+
resolveInheritedMembers: () => resolveInheritedMembers,
|
|
62
|
+
substituteMemberTypes: () => substituteMemberTypes,
|
|
63
|
+
substituteTypeParams: () => substituteTypeParams
|
|
64
|
+
});
|
|
65
|
+
module.exports = __toCommonJS(api_doc_type_merging_exports);
|
|
66
|
+
var import_type_guards = require('@mnaoumov/typescript-lib/type-guards');
|
|
67
|
+
var import_api_doc_link_rendering = require('./api-doc-link-rendering.cjs');
|
|
68
|
+
function buildTypeParameterMap(baseInfo, typeArguments) {
|
|
69
|
+
const mapping = /* @__PURE__ */ new Map();
|
|
70
|
+
const count = Math.min(baseInfo.typeParameters.length, typeArguments.length);
|
|
71
|
+
for (let index = 0; index < count; index++) {
|
|
72
|
+
const parameter = (0, import_type_guards.ensureNonNullable)(baseInfo.typeParameters[index]);
|
|
73
|
+
const argument = (0, import_type_guards.ensureNonNullable)(typeArguments[index]);
|
|
74
|
+
const bareParameter = parameter.replace(/\s+extends\s+.*$/, "");
|
|
75
|
+
mapping.set(bareParameter, argument);
|
|
76
|
+
}
|
|
77
|
+
return mapping;
|
|
78
|
+
}
|
|
79
|
+
function parseTypeArguments(baseTypeName) {
|
|
80
|
+
const openIndex = baseTypeName.indexOf("<");
|
|
81
|
+
if (openIndex === -1) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
const inner = baseTypeName.slice(openIndex + 1, -1);
|
|
85
|
+
const $arguments = [];
|
|
86
|
+
let depth = 0;
|
|
87
|
+
let current = "";
|
|
88
|
+
for (const ch of inner) {
|
|
89
|
+
if (ch === "<") {
|
|
90
|
+
depth++;
|
|
91
|
+
current += ch;
|
|
92
|
+
} else if (ch === ">") {
|
|
93
|
+
depth--;
|
|
94
|
+
current += ch;
|
|
95
|
+
} else if (ch === "," && depth === 0) {
|
|
96
|
+
$arguments.push(current.trim());
|
|
97
|
+
current = "";
|
|
98
|
+
} else {
|
|
99
|
+
current += ch;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (current.trim()) {
|
|
103
|
+
$arguments.push(current.trim());
|
|
104
|
+
}
|
|
105
|
+
return $arguments;
|
|
106
|
+
}
|
|
107
|
+
function resolveInheritedMembers(types) {
|
|
108
|
+
for (const [, info] of types) {
|
|
109
|
+
for (const baseTypeName of [...info.baseTypes, ...info.implementsTypes]) {
|
|
110
|
+
const cleanBase = baseTypeName.replace(/<.*>$/, "").trim();
|
|
111
|
+
const baseInfo = (0, import_api_doc_link_rendering.findType)(types, cleanBase, info.namespace);
|
|
112
|
+
if (!baseInfo) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
const typeArguments = parseTypeArguments(baseTypeName);
|
|
116
|
+
const typeParameterMap = buildTypeParameterMap(baseInfo, typeArguments);
|
|
117
|
+
for (const property of baseInfo.properties) {
|
|
118
|
+
if (info.properties.every((p) => p.name !== property.name)) {
|
|
119
|
+
info.properties.push(substituteMemberTypes({ ...property, inheritedFrom: baseInfo.name }, typeParameterMap));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
for (const method of baseInfo.methods) {
|
|
123
|
+
const hasOwnMethod = info.methods.some((m) => m.name === method.name && m.signature === method.signature);
|
|
124
|
+
const hasInheritedMethod = info.methods.some((m) => m.inheritedFrom === baseInfo.name && m.overloadKey === method.overloadKey);
|
|
125
|
+
if (!hasOwnMethod && !hasInheritedMethod) {
|
|
126
|
+
info.methods.push(substituteMemberTypes({ ...method, inheritedFrom: baseInfo.name }, typeParameterMap));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function substituteMemberTypes(member, mapping) {
|
|
133
|
+
return mapping.size === 0 ? member : {
|
|
134
|
+
...member,
|
|
135
|
+
parameters: member.parameters.map((p) => ({
|
|
136
|
+
...p,
|
|
137
|
+
type: substituteTypeParams(p.type, mapping)
|
|
138
|
+
})),
|
|
139
|
+
returnType: substituteTypeParams(member.returnType, mapping),
|
|
140
|
+
signature: substituteTypeParams(member.signature, mapping),
|
|
141
|
+
type: substituteTypeParams(member.type, mapping)
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function substituteTypeParams(typeText, mapping) {
|
|
145
|
+
return mapping.size === 0 ? typeText : typeText.replaceAll(/\b(?<typeName>[a-zA-Z][a-zA-Z0-9]*)\b/g, (match) => {
|
|
146
|
+
return mapping.get(match) ?? match;
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
150
|
+
0 && (module.exports = {
|
|
151
|
+
buildTypeParameterMap,
|
|
152
|
+
parseTypeArguments,
|
|
153
|
+
resolveInheritedMembers,
|
|
154
|
+
substituteMemberTypes,
|
|
155
|
+
substituteTypeParams
|
|
156
|
+
});
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvYXBpLWRvYy10eXBlLW1lcmdpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEluaGVyaXRhbmNlIHJlc29sdXRpb246IGNvcGllcyBpbmhlcml0ZWQgbWVtYmVycyBvbnRvIHN1YnR5cGVzLCBzdWJzdGl0dXRpbmcgZ2VuZXJpYyB0eXBlIGFyZ3MuXG4gKlxuICogKEEgZG9jdW1lbnRlZCBwYWNrYWdlIGlzIGEgbm9ybWFsIGxpYnJhcnksIG5vdCBhbiBhdWdtZW50YXRpb24gb2YgYW5vdGhlciBwYWNrYWdlJ3MgZGVjbGFyYXRpb25zLCBzbyB0aGVyZSBpcyBub1xuICogb2ZmaWNpYWwtdnMtdW5vZmZpY2lhbCBtZXJnZSBtYWNoaW5lcnkgaGVyZSDigJQgb25seSB0aGUgZ2VuZXJpYyBpbmhlcml0YW5jZSBoZWxwZXJzLilcbiAqL1xuXG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgTWVtYmVySW5mbyxcbiAgVHlwZUluZm9cbn0gZnJvbSAnLi9hcGktZG9jLXR5cGVzLnRzJztcblxuaW1wb3J0IHsgZmluZFR5cGUgfSBmcm9tICcuL2FwaS1kb2MtbGluay1yZW5kZXJpbmcudHMnO1xuXG4vKipcbiAqIEJ1aWxkIGEgbWFwcGluZyBmcm9tIHBhcmVudCB0eXBlIHBhcmFtZXRlciBuYW1lcyB0byBjb25jcmV0ZSB0eXBlIGFyZ3VtZW50cy5cbiAqIEUuZy4sIHBhcmVudCBoYXMgYHR5cGVQYXJhbWV0ZXJzOiBbJ0luc3RhbmNlIGV4dGVuZHMgQmFzZUluc3RhbmNlJ11gIGFuZFxuICogY2hpbGQgZXh0ZW5kcyBgUGFyZW50PENhbnZhc1BsdWdpbkluc3RhbmNlPmAg4oaSIGB7SW5zdGFuY2U6ICdDYW52YXNQbHVnaW5JbnN0YW5jZSd9YFxuICpcbiAqIEBwYXJhbSBiYXNlSW5mbyAtIFRoZSBiYXNlIHR5cGUuXG4gKiBAcGFyYW0gdHlwZUFyZ3VtZW50cyAtIFRoZSB0eXBlIGFyZ3VtZW50cyB0aGUgYmFzZSB0eXBlIGlzIGdpdmVuLlxuICogQHJldHVybnMgVGhlIHBhcmFtZXRlciBuYW1lcyBtYXBwZWQgdG8gdGhlaXIgYXJndW1lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUeXBlUGFyYW1ldGVyTWFwKGJhc2VJbmZvOiBUeXBlSW5mbywgdHlwZUFyZ3VtZW50czogc3RyaW5nW10pOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgbWFwcGluZyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIGNvbnN0IGNvdW50ID0gTWF0aC5taW4oYmFzZUluZm8udHlwZVBhcmFtZXRlcnMubGVuZ3RoLCB0eXBlQXJndW1lbnRzLmxlbmd0aCk7XG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgaW5kZXgrKykge1xuICAgIC8vIEJvdGggbGlzdHMgYXJlIGxvbmdlciB0aGFuIGBpbmRleGAuXG4gICAgY29uc3QgcGFyYW1ldGVyID0gZW5zdXJlTm9uTnVsbGFibGUoYmFzZUluZm8udHlwZVBhcmFtZXRlcnNbaW5kZXhdKTtcbiAgICBjb25zdCBhcmd1bWVudCA9IGVuc3VyZU5vbk51bGxhYmxlKHR5cGVBcmd1bWVudHNbaW5kZXhdKTtcbiAgICBjb25zdCBiYXJlUGFyYW1ldGVyID0gcGFyYW1ldGVyLnJlcGxhY2UoL1xccytleHRlbmRzXFxzKy4qJC8sICcnKTtcbiAgICBtYXBwaW5nLnNldChiYXJlUGFyYW1ldGVyLCBhcmd1bWVudCk7XG4gIH1cbiAgcmV0dXJuIG1hcHBpbmc7XG59XG5cbi8qKlxuICogUGFyc2UgZ2VuZXJpYyB0eXBlIGFyZ3VtZW50cyBmcm9tIGEgYmFzZSB0eXBlIGV4cHJlc3Npb24uXG4gKiBFLmcuLCBgSW50ZXJuYWxQbHVnaW48Q2FudmFzUGx1Z2luSW5zdGFuY2U+YCDihpIgYFsnQ2FudmFzUGx1Z2luSW5zdGFuY2UnXWBcbiAqIEhhbmRsZXMgbmVzdGVkIGFuZ2xlIGJyYWNrZXRzOiBgRm9vPEJhcjxCYXo+LCBRdXg+YCDihpIgYFsnQmFyPEJhej4nLCAnUXV4J11gXG4gKlxuICogQHBhcmFtIGJhc2VUeXBlTmFtZSAtIFRoZSBiYXNlIHR5cGUgZXhwcmVzc2lvbiwgZS5nLiBgRm9vPEJhciwgQmF6PmAuXG4gKiBAcmV0dXJucyBUaGUgdHlwZSBhcmd1bWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVR5cGVBcmd1bWVudHMoYmFzZVR5cGVOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG9wZW5JbmRleCA9IGJhc2VUeXBlTmFtZS5pbmRleE9mKCc8Jyk7XG4gIGlmIChvcGVuSW5kZXggPT09IC0xKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IGlubmVyID0gYmFzZVR5cGVOYW1lLnNsaWNlKG9wZW5JbmRleCArIDEsIC0xKTtcbiAgY29uc3QgJGFyZ3VtZW50czogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGRlcHRoID0gMDtcbiAgbGV0IGN1cnJlbnQgPSAnJztcbiAgZm9yIChjb25zdCBjaCBvZiBpbm5lcikge1xuICAgIGlmIChjaCA9PT0gJzwnKSB7XG4gICAgICBkZXB0aCsrO1xuICAgICAgY3VycmVudCArPSBjaDtcbiAgICB9IGVsc2UgaWYgKGNoID09PSAnPicpIHtcbiAgICAgIGRlcHRoLS07XG4gICAgICBjdXJyZW50ICs9IGNoO1xuICAgIH0gZWxzZSBpZiAoY2ggPT09ICcsJyAmJiBkZXB0aCA9PT0gMCkge1xuICAgICAgJGFyZ3VtZW50cy5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgICAgIGN1cnJlbnQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudCArPSBjaDtcbiAgICB9XG4gIH1cbiAgaWYgKGN1cnJlbnQudHJpbSgpKSB7XG4gICAgJGFyZ3VtZW50cy5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgfVxuICByZXR1cm4gJGFyZ3VtZW50cztcbn1cblxuLyoqXG4gKiBDb3BpZXMgZXZlcnkgaW5oZXJpdGVkIG1lbWJlciBvbnRvIGl0cyBzdWJ0eXBlcywgc3Vic3RpdHV0aW5nIHRoZSB0eXBlIGFyZ3VtZW50cyB0aGUgc3VidHlwZSBwYXNzZXMuXG4gKlxuICogQHBhcmFtIHR5cGVzIC0gVGhlIGRvY3VtZW50ZWQgdHlwZXMsIGtleWVkIGJ5IHF1YWxpZmllZCBpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVJbmhlcml0ZWRNZW1iZXJzKHR5cGVzOiBNYXA8c3RyaW5nLCBUeXBlSW5mbz4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBbLCBpbmZvXSBvZiB0eXBlcykge1xuICAgIGZvciAoY29uc3QgYmFzZVR5cGVOYW1lIG9mIFsuLi5pbmZvLmJhc2VUeXBlcywgLi4uaW5mby5pbXBsZW1lbnRzVHlwZXNdKSB7XG4gICAgICBjb25zdCBjbGVhbkJhc2UgPSBiYXNlVHlwZU5hbWUucmVwbGFjZSgvPC4qPiQvLCAnJykudHJpbSgpO1xuICAgICAgY29uc3QgYmFzZUluZm8gPSBmaW5kVHlwZSh0eXBlcywgY2xlYW5CYXNlLCBpbmZvLm5hbWVzcGFjZSk7XG4gICAgICBpZiAoIWJhc2VJbmZvKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBlQXJndW1lbnRzKGJhc2VUeXBlTmFtZSk7XG4gICAgICBjb25zdCB0eXBlUGFyYW1ldGVyTWFwID0gYnVpbGRUeXBlUGFyYW1ldGVyTWFwKGJhc2VJbmZvLCB0eXBlQXJndW1lbnRzKTtcblxuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBiYXNlSW5mby5wcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmIChpbmZvLnByb3BlcnRpZXMuZXZlcnkoKHApID0+IHAubmFtZSAhPT0gcHJvcGVydHkubmFtZSkpIHtcbiAgICAgICAgICBpbmZvLnByb3BlcnRpZXMucHVzaChzdWJzdGl0dXRlTWVtYmVyVHlwZXMoeyAuLi5wcm9wZXJ0eSwgaW5oZXJpdGVkRnJvbTogYmFzZUluZm8ubmFtZSB9LCB0eXBlUGFyYW1ldGVyTWFwKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBtZXRob2Qgb2YgYmFzZUluZm8ubWV0aG9kcykge1xuICAgICAgICBjb25zdCBoYXNPd25NZXRob2QgPSBpbmZvLm1ldGhvZHMuc29tZSgobSkgPT4gbS5uYW1lID09PSBtZXRob2QubmFtZSAmJiBtLnNpZ25hdHVyZSA9PT0gbWV0aG9kLnNpZ25hdHVyZSk7XG4gICAgICAgIGNvbnN0IGhhc0luaGVyaXRlZE1ldGhvZCA9IGluZm8ubWV0aG9kcy5zb21lKChtKSA9PiBtLmluaGVyaXRlZEZyb20gPT09IGJhc2VJbmZvLm5hbWUgJiYgbS5vdmVybG9hZEtleSA9PT0gbWV0aG9kLm92ZXJsb2FkS2V5KTtcbiAgICAgICAgaWYgKCFoYXNPd25NZXRob2QgJiYgIWhhc0luaGVyaXRlZE1ldGhvZCkge1xuICAgICAgICAgIGluZm8ubWV0aG9kcy5wdXNoKHN1YnN0aXR1dGVNZW1iZXJUeXBlcyh7IC4uLm1ldGhvZCwgaW5oZXJpdGVkRnJvbTogYmFzZUluZm8ubmFtZSB9LCB0eXBlUGFyYW1ldGVyTWFwKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBseSB0eXBlIHBhcmFtZXRlciBzdWJzdGl0dXRpb24gdG8gYWxsIHR5cGUtYmVhcmluZyBmaWVsZHMgb2YgYSBtZW1iZXJcbiAqXG4gKiBAcGFyYW0gbWVtYmVyIC0gVGhlIG1lbWJlci5cbiAqIEBwYXJhbSBtYXBwaW5nIC0gVHlwZSBwYXJhbWV0ZXIgbmFtZXMgbWFwcGVkIHRvIHRoZWlyIGFyZ3VtZW50cy5cbiAqIEByZXR1cm5zIFRoZSBtZW1iZXIgd2l0aCBpdHMgdHlwZXMgc3Vic3RpdHV0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJzdGl0dXRlTWVtYmVyVHlwZXMobWVtYmVyOiBNZW1iZXJJbmZvLCBtYXBwaW5nOiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogTWVtYmVySW5mbyB7XG4gIHJldHVybiBtYXBwaW5nLnNpemUgPT09IDBcbiAgICA/IG1lbWJlclxuICAgIDoge1xuICAgICAgLi4ubWVtYmVyLFxuICAgICAgcGFyYW1ldGVyczogbWVtYmVyLnBhcmFtZXRlcnMubWFwKChwKSA9PiAoe1xuICAgICAgICAuLi5wLFxuICAgICAgICB0eXBlOiBzdWJzdGl0dXRlVHlwZVBhcmFtcyhwLnR5cGUsIG1hcHBpbmcpXG4gICAgICB9KSksXG4gICAgICByZXR1cm5UeXBlOiBzdWJzdGl0dXRlVHlwZVBhcmFtcyhtZW1iZXIucmV0dXJuVHlwZSwgbWFwcGluZyksXG4gICAgICBzaWduYXR1cmU6IHN1YnN0aXR1dGVUeXBlUGFyYW1zKG1lbWJlci5zaWduYXR1cmUsIG1hcHBpbmcpLFxuICAgICAgdHlwZTogc3Vic3RpdHV0ZVR5cGVQYXJhbXMobWVtYmVyLnR5cGUsIG1hcHBpbmcpXG4gICAgfTtcbn1cblxuLyoqXG4gKiBTdWJzdGl0dXRlIGdlbmVyaWMgdHlwZSBwYXJhbWV0ZXJzIGluIGEgdHlwZSBzdHJpbmcgdXNpbmcgYSBtYXBwaW5nXG4gKlxuICogQHBhcmFtIHR5cGVUZXh0IC0gVGhlIHR5cGUgdGV4dC5cbiAqIEBwYXJhbSBtYXBwaW5nIC0gVHlwZSBwYXJhbWV0ZXIgbmFtZXMgbWFwcGVkIHRvIHRoZWlyIGFyZ3VtZW50cy5cbiAqIEByZXR1cm5zIFRoZSBzdWJzdGl0dXRlZCB0eXBlIHRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJzdGl0dXRlVHlwZVBhcmFtcyh0eXBlVGV4dDogc3RyaW5nLCBtYXBwaW5nOiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgcmV0dXJuIG1hcHBpbmcuc2l6ZSA9PT0gMFxuICAgID8gdHlwZVRleHRcbiAgICA6IHR5cGVUZXh0LnJlcGxhY2VBbGwoL1xcYig/PHR5cGVOYW1lPlthLXpBLVpdW2EtekEtWjAtOV0qKVxcYi9nLCAobWF0Y2gpID0+IHtcbiAgICAgIHJldHVybiBtYXBwaW5nLmdldChtYXRjaCkgPz8gbWF0Y2g7XG4gICAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBU0EseUJBQWtDO0FBT2xDLG9DQUF5QjtBQVdsQixTQUFTLHNCQUFzQixVQUFvQixlQUE4QztBQUN0RyxRQUFNLFVBQVUsb0JBQUksSUFBb0I7QUFDeEMsUUFBTSxRQUFRLEtBQUssSUFBSSxTQUFTLGVBQWUsUUFBUSxjQUFjLE1BQU07QUFDM0UsV0FBUyxRQUFRLEdBQUcsUUFBUSxPQUFPLFNBQVM7QUFFMUMsVUFBTSxnQkFBWSxzQ0FBa0IsU0FBUyxlQUFlLEtBQUssQ0FBQztBQUNsRSxVQUFNLGVBQVcsc0NBQWtCLGNBQWMsS0FBSyxDQUFDO0FBQ3ZELFVBQU0sZ0JBQWdCLFVBQVUsUUFBUSxvQkFBb0IsRUFBRTtBQUM5RCxZQUFRLElBQUksZUFBZSxRQUFRO0FBQUEsRUFDckM7QUFDQSxTQUFPO0FBQ1Q7QUFVTyxTQUFTLG1CQUFtQixjQUFnQztBQUNqRSxRQUFNLFlBQVksYUFBYSxRQUFRLEdBQUc7QUFDMUMsTUFBSSxjQUFjLElBQUk7QUFDcEIsV0FBTyxDQUFDO0FBQUEsRUFDVjtBQUNBLFFBQU0sUUFBUSxhQUFhLE1BQU0sWUFBWSxHQUFHLEVBQUU7QUFDbEQsUUFBTSxhQUF1QixDQUFDO0FBQzlCLE1BQUksUUFBUTtBQUNaLE1BQUksVUFBVTtBQUNkLGFBQVcsTUFBTSxPQUFPO0FBQ3RCLFFBQUksT0FBTyxLQUFLO0FBQ2Q7QUFDQSxpQkFBVztBQUFBLElBQ2IsV0FBVyxPQUFPLEtBQUs7QUFDckI7QUFDQSxpQkFBVztBQUFBLElBQ2IsV0FBVyxPQUFPLE9BQU8sVUFBVSxHQUFHO0FBQ3BDLGlCQUFXLEtBQUssUUFBUSxLQUFLLENBQUM7QUFDOUIsZ0JBQVU7QUFBQSxJQUNaLE9BQU87QUFDTCxpQkFBVztBQUFBLElBQ2I7QUFBQSxFQUNGO0FBQ0EsTUFBSSxRQUFRLEtBQUssR0FBRztBQUNsQixlQUFXLEtBQUssUUFBUSxLQUFLLENBQUM7QUFBQSxFQUNoQztBQUNBLFNBQU87QUFDVDtBQU9PLFNBQVMsd0JBQXdCLE9BQW9DO0FBQzFFLGFBQVcsQ0FBQyxFQUFFLElBQUksS0FBSyxPQUFPO0FBQzVCLGVBQVcsZ0JBQWdCLENBQUMsR0FBRyxLQUFLLFdBQVcsR0FBRyxLQUFLLGVBQWUsR0FBRztBQUN2RSxZQUFNLFlBQVksYUFBYSxRQUFRLFNBQVMsRUFBRSxFQUFFLEtBQUs7QUFDekQsWUFBTSxlQUFXLHdDQUFTLE9BQU8sV0FBVyxLQUFLLFNBQVM7QUFDMUQsVUFBSSxDQUFDLFVBQVU7QUFDYjtBQUFBLE1BQ0Y7QUFFQSxZQUFNLGdCQUFnQixtQkFBbUIsWUFBWTtBQUNyRCxZQUFNLG1CQUFtQixzQkFBc0IsVUFBVSxhQUFhO0FBRXRFLGlCQUFXLFlBQVksU0FBUyxZQUFZO0FBQzFDLFlBQUksS0FBSyxXQUFXLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxTQUFTLElBQUksR0FBRztBQUMxRCxlQUFLLFdBQVcsS0FBSyxzQkFBc0IsRUFBRSxHQUFHLFVBQVUsZUFBZSxTQUFTLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQztBQUFBLFFBQzdHO0FBQUEsTUFDRjtBQUVBLGlCQUFXLFVBQVUsU0FBUyxTQUFTO0FBQ3JDLGNBQU0sZUFBZSxLQUFLLFFBQVEsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLE9BQU8sUUFBUSxFQUFFLGNBQWMsT0FBTyxTQUFTO0FBQ3hHLGNBQU0scUJBQXFCLEtBQUssUUFBUSxLQUFLLENBQUMsTUFBTSxFQUFFLGtCQUFrQixTQUFTLFFBQVEsRUFBRSxnQkFBZ0IsT0FBTyxXQUFXO0FBQzdILFlBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0I7QUFDeEMsZUFBSyxRQUFRLEtBQUssc0JBQXNCLEVBQUUsR0FBRyxRQUFRLGVBQWUsU0FBUyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7QUFBQSxRQUN4RztBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGO0FBU08sU0FBUyxzQkFBc0IsUUFBb0IsU0FBMEM7QUFDbEcsU0FBTyxRQUFRLFNBQVMsSUFDcEIsU0FDQTtBQUFBLElBQ0EsR0FBRztBQUFBLElBQ0gsWUFBWSxPQUFPLFdBQVcsSUFBSSxDQUFDLE9BQU87QUFBQSxNQUN4QyxHQUFHO0FBQUEsTUFDSCxNQUFNLHFCQUFxQixFQUFFLE1BQU0sT0FBTztBQUFBLElBQzVDLEVBQUU7QUFBQSxJQUNGLFlBQVkscUJBQXFCLE9BQU8sWUFBWSxPQUFPO0FBQUEsSUFDM0QsV0FBVyxxQkFBcUIsT0FBTyxXQUFXLE9BQU87QUFBQSxJQUN6RCxNQUFNLHFCQUFxQixPQUFPLE1BQU0sT0FBTztBQUFBLEVBQ2pEO0FBQ0o7QUFTTyxTQUFTLHFCQUFxQixVQUFrQixTQUFzQztBQUMzRixTQUFPLFFBQVEsU0FBUyxJQUNwQixXQUNBLFNBQVMsV0FBVywwQ0FBMEMsQ0FBQyxVQUFVO0FBQ3pFLFdBQU8sUUFBUSxJQUFJLEtBQUssS0FBSztBQUFBLEVBQy9CLENBQUM7QUFDTDsiLCJuYW1lcyI6W119
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/// <reference path="../library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Inheritance resolution: copies inherited members onto subtypes, substituting generic type args.
|
|
6
|
+
*
|
|
7
|
+
* (A documented package is a normal library, not an augmentation of another package's declarations, so there is no
|
|
8
|
+
* official-vs-unofficial merge machinery here — only the generic inheritance helpers.)
|
|
9
|
+
*/
|
|
10
|
+
import type { MemberInfo, TypeInfo } from './api-doc-types.cjs';
|
|
11
|
+
/**
|
|
12
|
+
* Build a mapping from parent type parameter names to concrete type arguments.
|
|
13
|
+
* E.g., parent has `typeParameters: ['Instance extends BaseInstance']` and
|
|
14
|
+
* child extends `Parent<CanvasPluginInstance>` → `{Instance: 'CanvasPluginInstance'}`
|
|
15
|
+
*
|
|
16
|
+
* @param baseInfo - The base type.
|
|
17
|
+
* @param typeArguments - The type arguments the base type is given.
|
|
18
|
+
* @returns The parameter names mapped to their arguments.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildTypeParameterMap(baseInfo: TypeInfo, typeArguments: string[]): Map<string, string>;
|
|
21
|
+
/**
|
|
22
|
+
* Parse generic type arguments from a base type expression.
|
|
23
|
+
* E.g., `InternalPlugin<CanvasPluginInstance>` → `['CanvasPluginInstance']`
|
|
24
|
+
* Handles nested angle brackets: `Foo<Bar<Baz>, Qux>` → `['Bar<Baz>', 'Qux']`
|
|
25
|
+
*
|
|
26
|
+
* @param baseTypeName - The base type expression, e.g. `Foo<Bar, Baz>`.
|
|
27
|
+
* @returns The type arguments.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseTypeArguments(baseTypeName: string): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Copies every inherited member onto its subtypes, substituting the type arguments the subtype passes.
|
|
32
|
+
*
|
|
33
|
+
* @param types - The documented types, keyed by qualified id.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveInheritedMembers(types: Map<string, TypeInfo>): void;
|
|
36
|
+
/**
|
|
37
|
+
* Apply type parameter substitution to all type-bearing fields of a member
|
|
38
|
+
*
|
|
39
|
+
* @param member - The member.
|
|
40
|
+
* @param mapping - Type parameter names mapped to their arguments.
|
|
41
|
+
* @returns The member with its types substituted.
|
|
42
|
+
*/
|
|
43
|
+
export declare function substituteMemberTypes(member: MemberInfo, mapping: Map<string, string>): MemberInfo;
|
|
44
|
+
/**
|
|
45
|
+
* Substitute generic type parameters in a type string using a mapping
|
|
46
|
+
*
|
|
47
|
+
* @param typeText - The type text.
|
|
48
|
+
* @param mapping - Type parameter names mapped to their arguments.
|
|
49
|
+
* @returns The substituted type text.
|
|
50
|
+
*/
|
|
51
|
+
export declare function substituteTypeParams(typeText: string, mapping: Map<string, string>): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var api_doc_types_exports = {};
|
|
21
|
+
module.exports = __toCommonJS(api_doc_types_exports);
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RvY3Mtc2l0ZS9hcGktZG9jLXR5cGVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogU2hhcmVkIGRhdGEtbW9kZWwgdHlwZXMgZm9yIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IuXG4gKi9cblxuLyoqXG4gKiBBIGZlbmNlZCBjb2RlIGJsb2NrIG9mIGEgbWFya2Rvd24gdGV4dCwgd2l0aCB0aGUgbGFuZ3VhZ2UgaXRzIGZlbmNlIG5hbWVzIChlbXB0eSB3aGVuIG5vbmUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVTZWdtZW50IHtcbiAgbGFuZzogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIHR5cGU6ICdjb2RlJztcbn1cblxuLyoqXG4gKiBBIGRvY3VtZW50ZWQgZW51bSBtZW1iZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW51bU1lbWJlckluZm8ge1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBydW4gb2YgYSBtYXJrZG93biB0ZXh0OiBwcm9zZSwgb3IgYSBmZW5jZWQgY29kZSBibG9jay5cbiAqL1xuZXhwb3J0IHR5cGUgTWFya2Rvd25TZWdtZW50ID0gQ29kZVNlZ21lbnQgfCBQcm9zZVNlZ21lbnQ7XG5cbi8qKlxuICogQSBkb2N1bWVudGVkIHByb3BlcnR5LCBtZXRob2QsIGNvbnN0cnVjdG9yIG9yIGZ1bmN0aW9uIHNpZ25hdHVyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZW1iZXJJbmZvIHtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgZXhhbXBsZXM6IHN0cmluZ1tdO1xuICBpbmhlcml0ZWRGcm9tOiBzdHJpbmc7XG4gIGlzU3RhdGljOiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIG92ZXJsb2FkS2V5OiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IFBhcmFtZXRlckluZm9bXTtcbiAgcmVtYXJrczogc3RyaW5nO1xuICByZXR1cm5EZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZXR1cm5UeXBlOiBzdHJpbmc7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICBzaW5jZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBnZW5lcmF0ZWQgcGFnZSdzIGNvbnRlbnQgYW5kIHRoZSBwYXRoIGl0IGlzIHdyaXR0ZW4gdG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZUNvbnRlbnQge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIGZpbGVQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuRnJvbnRtYXR0ZXIgc2hhcmVkIGJ5IGV2ZXJ5IGdlbmVyYXRlZCBwYWdlLiBgZGVzY3JpcHRpb25gIGFuZCBgc2lnbmF0dXJlYCBhcmUgb3B0aW9uYWwgYmVjYXVzZSBub3RcbmV2ZXJ5IHBhZ2UgaGFzIHRoZW0sIGJ1dCBhIHBhZ2UgdGhhdCBIQVMgb25lIG11c3QgZW1pdCBpdDogYm90aCBmZWVkIHRoZSBwYWdlJ3MgT0cgY2FyZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWdlRnJvbnRNYXR0ZXIge1xuICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgc2lkZWJhckxhYmVsOiBzdHJpbmc7XG4gIHNpZ25hdHVyZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgc2x1Zzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgZG9jdW1lbnRlZCBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVySW5mbyB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcnVuIG9mIG1hcmtkb3duIHByb3NlIGJldHdlZW4gY29kZSBibG9ja3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvc2VTZWdtZW50IHtcbiAgdGV4dDogc3RyaW5nO1xuICB0eXBlOiAncHJvc2UnO1xufVxuXG4vKipcbiAqIFRoZSBwYXJ0IG9mIGEgdHMtbW9ycGggbWV0aG9kIG9yIGZ1bmN0aW9uIHRoZSBkZWNsYXJlZCByZXR1cm4gdHlwZSBpcyByZWFkIGZyb20uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0dXJuVHlwZVByb3ZpZGVyIHtcbiAgZ2V0UmV0dXJuVHlwZTogKCkgPT4gVGV4dFByb3ZpZGVyO1xuICBnZXRSZXR1cm5UeXBlTm9kZT86ICgpID0+IFRleHRQcm92aWRlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBIGNvbGxhcHNpYmxlIFN0YXJsaWdodCBzaWRlYmFyIGdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZGViYXJFbnRyeSB7XG4gIGNvbGxhcHNlZDogYm9vbGVhbjtcbiAgaXRlbXM6IChTaWRlYmFyRW50cnkgfCBTaWRlYmFyTGluaylbXTtcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIFN0YXJsaWdodCBzaWRlYmFyIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZWJhckxpbmsge1xuICBsYWJlbDogc3RyaW5nO1xuICBsaW5rOiBzdHJpbmc7XG59XG5cbi8qKlxuUmVjdXJzaXZlIHRyZWUgbm9kZSBmb3IgYnVpbGRpbmcgdGhlIHNpZGViYXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWRlYmFyVHJlZU5vZGUge1xuICBjaGlsZHJlbjogTWFwPHN0cmluZywgU2lkZWJhclRyZWVOb2RlPjtcbiAgdHlwZXM6IFR5cGVJbmZvW107XG59XG5cbi8qKlxuICogQSB0cy1tb3JwaCBub2RlIG9yIHR5cGUgd2hvc2UgdGV4dCBjYW4gYmUgcHJpbnRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXh0UHJvdmlkZXIge1xuICBnZXRUZXh0OiAoKSA9PiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBkb2N1bWVudGVkIGV4cG9ydDogYSBjbGFzcywgaW50ZXJmYWNlLCBlbnVtLCB0eXBlIGFsaWFzLCBmdW5jdGlvbiBvciB2YXJpYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlSW5mbyB7XG4gIGJhc2VUeXBlczogc3RyaW5nW107XG4gIC8qKlxuICBGb3IgY2xhc3NlczogdGhlIGNvbnN0cnVjdG9yIChwdWJsaWMvcHJvdGVjdGVkKSwgaWYgYW55XG4gICAqL1xuICBjb25zdHJ1Y3RvckluZm8/OiBNZW1iZXJJbmZvIHwgdW5kZWZpbmVkO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKipcbiAgRm9yIGVudW1zOiB0aGUgZW51bSBtZW1iZXJzXG4gICAqL1xuICBlbnVtTWVtYmVyczogRW51bU1lbWJlckluZm9bXTtcbiAgZXhhbXBsZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgRm9yIGNsYXNzZXM6IHR5cGVzIGluIHRoZSBgaW1wbGVtZW50c2AgY2xhdXNlXG4gICAqL1xuICBpbXBsZW1lbnRzVHlwZXM6IHN0cmluZ1tdO1xuICBraW5kOiAnY2xhc3MnIHwgJ2VudW0nIHwgJ2Z1bmN0aW9uJyB8ICdpbnRlcmZhY2UnIHwgJ3R5cGUnIHwgJ3ZhcmlhYmxlJztcbiAgbWV0aG9kczogTWVtYmVySW5mb1tdO1xuICBuYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBwcm9wZXJ0aWVzOiBNZW1iZXJJbmZvW107XG4gIHJlbWFya3M6IHN0cmluZztcbiAgLyoqXG4gIEZvciB0eXBlIGFsaWFzZXM6IHRoZSByaWdodC1oYW5kLXNpZGUgdHlwZSB0ZXh0XG4gICAqL1xuICB0eXBlQWxpYXNUZXh0Pzogc3RyaW5nO1xuICB0eXBlUGFyYW1ldGVyczogc3RyaW5nW107XG4gIC8qKlxuICBGb3IgdmFyaWFibGVzOiB0aGUgZGVjbGFyYXRpb24ga2V5d29yZCAobGV0L2NvbnN0L3ZhcilcbiAgICovXG4gIHZhcmlhYmxlS2V5d29yZD86IHN0cmluZztcbiAgLyoqXG4gIEZvciB2YXJpYWJsZXM6IHRoZSB0eXBlIGFubm90YXRpb25cbiAgICovXG4gIHZhcmlhYmxlVHlwZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBvYmplY3QgZW50cnkgb2YgdGhlIGB0eXBlZG9jLXBsdWdpbi1tZG4tbGlua3NgIFdlYiBBUEkgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJBcGlFbnRyeSB7XG4gIHVybDogc3RyaW5nO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/// <reference path="../library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Shared data-model types for the API documentation generator.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* A fenced code block of a markdown text, with the language its fence names (empty when none).
|
|
9
|
+
*/
|
|
10
|
+
export interface CodeSegment {
|
|
11
|
+
lang: string;
|
|
12
|
+
text: string;
|
|
13
|
+
type: 'code';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A documented enum member.
|
|
17
|
+
*/
|
|
18
|
+
export interface EnumMemberInfo {
|
|
19
|
+
description: string;
|
|
20
|
+
name: string;
|
|
21
|
+
value: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A run of a markdown text: prose, or a fenced code block.
|
|
25
|
+
*/
|
|
26
|
+
export type MarkdownSegment = CodeSegment | ProseSegment;
|
|
27
|
+
/**
|
|
28
|
+
* A documented property, method, constructor or function signature.
|
|
29
|
+
*/
|
|
30
|
+
export interface MemberInfo {
|
|
31
|
+
description: string;
|
|
32
|
+
examples: string[];
|
|
33
|
+
inheritedFrom: string;
|
|
34
|
+
isStatic: boolean;
|
|
35
|
+
name: string;
|
|
36
|
+
overloadKey: string;
|
|
37
|
+
parameters: ParameterInfo[];
|
|
38
|
+
remarks: string;
|
|
39
|
+
returnDescription: string;
|
|
40
|
+
returnType: string;
|
|
41
|
+
signature: string;
|
|
42
|
+
since: string;
|
|
43
|
+
type: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A generated page's content and the path it is written to.
|
|
47
|
+
*/
|
|
48
|
+
export interface PageContent {
|
|
49
|
+
content: string;
|
|
50
|
+
filePath: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
Frontmatter shared by every generated page. `description` and `signature` are optional because not
|
|
54
|
+
every page has them, but a page that HAS one must emit it: both feed the page's OG card.
|
|
55
|
+
*/
|
|
56
|
+
export interface PageFrontMatter {
|
|
57
|
+
description?: string | undefined;
|
|
58
|
+
sidebarLabel: string;
|
|
59
|
+
signature?: string | undefined;
|
|
60
|
+
slug: string;
|
|
61
|
+
title: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* A documented parameter.
|
|
65
|
+
*/
|
|
66
|
+
export interface ParameterInfo {
|
|
67
|
+
description: string;
|
|
68
|
+
name: string;
|
|
69
|
+
type: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A run of markdown prose between code blocks.
|
|
73
|
+
*/
|
|
74
|
+
export interface ProseSegment {
|
|
75
|
+
text: string;
|
|
76
|
+
type: 'prose';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The part of a ts-morph method or function the declared return type is read from.
|
|
80
|
+
*/
|
|
81
|
+
export interface ReturnTypeProvider {
|
|
82
|
+
getReturnType: () => TextProvider;
|
|
83
|
+
getReturnTypeNode?: () => TextProvider | undefined;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* A collapsible Starlight sidebar group.
|
|
87
|
+
*/
|
|
88
|
+
export interface SidebarEntry {
|
|
89
|
+
collapsed: boolean;
|
|
90
|
+
items: (SidebarEntry | SidebarLink)[];
|
|
91
|
+
label: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* A Starlight sidebar link.
|
|
95
|
+
*/
|
|
96
|
+
export interface SidebarLink {
|
|
97
|
+
label: string;
|
|
98
|
+
link: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
Recursive tree node for building the sidebar
|
|
102
|
+
*/
|
|
103
|
+
export interface SidebarTreeNode {
|
|
104
|
+
children: Map<string, SidebarTreeNode>;
|
|
105
|
+
types: TypeInfo[];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* A ts-morph node or type whose text can be printed.
|
|
109
|
+
*/
|
|
110
|
+
export interface TextProvider {
|
|
111
|
+
getText: () => string;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* A documented export: a class, interface, enum, type alias, function or variable.
|
|
115
|
+
*/
|
|
116
|
+
export interface TypeInfo {
|
|
117
|
+
baseTypes: string[];
|
|
118
|
+
/**
|
|
119
|
+
For classes: the constructor (public/protected), if any
|
|
120
|
+
*/
|
|
121
|
+
constructorInfo?: MemberInfo | undefined;
|
|
122
|
+
description: string;
|
|
123
|
+
/**
|
|
124
|
+
For enums: the enum members
|
|
125
|
+
*/
|
|
126
|
+
enumMembers: EnumMemberInfo[];
|
|
127
|
+
examples: string[];
|
|
128
|
+
/**
|
|
129
|
+
For classes: types in the `implements` clause
|
|
130
|
+
*/
|
|
131
|
+
implementsTypes: string[];
|
|
132
|
+
kind: 'class' | 'enum' | 'function' | 'interface' | 'type' | 'variable';
|
|
133
|
+
methods: MemberInfo[];
|
|
134
|
+
name: string;
|
|
135
|
+
namespace: string;
|
|
136
|
+
properties: MemberInfo[];
|
|
137
|
+
remarks: string;
|
|
138
|
+
/**
|
|
139
|
+
For type aliases: the right-hand-side type text
|
|
140
|
+
*/
|
|
141
|
+
typeAliasText?: string;
|
|
142
|
+
typeParameters: string[];
|
|
143
|
+
/**
|
|
144
|
+
For variables: the declaration keyword (let/const/var)
|
|
145
|
+
*/
|
|
146
|
+
variableKeyword?: string;
|
|
147
|
+
/**
|
|
148
|
+
For variables: the type annotation
|
|
149
|
+
*/
|
|
150
|
+
variableType?: string;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* An object entry of the `typedoc-plugin-mdn-links` Web API data.
|
|
154
|
+
*/
|
|
155
|
+
export interface WebApiEntry {
|
|
156
|
+
url: string;
|
|
157
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
(function () {
|
|
6
|
+
function ensureBrowserProcess() {
|
|
7
|
+
const browserProcess = {
|
|
8
|
+
browser: true,
|
|
9
|
+
cwd() {
|
|
10
|
+
return '/';
|
|
11
|
+
},
|
|
12
|
+
env: {},
|
|
13
|
+
platform: 'android'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const existingProcess = globalThis.process;
|
|
17
|
+
|
|
18
|
+
if (!existingProcess) {
|
|
19
|
+
globalThis.process = browserProcess;
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (existingProcess.versions?.node) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const existingProcessRecord = existingProcess;
|
|
28
|
+
|
|
29
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
30
|
+
existingProcessRecord[key] ??= value;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
existingProcessRecord['browser'] = true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
ensureBrowserProcess();
|
|
37
|
+
})();
|
|
38
|
+
|
|
39
|
+
"use strict";
|
|
40
|
+
var __defProp = Object.defineProperty;
|
|
41
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
42
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
43
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
44
|
+
var __export = (target, all) => {
|
|
45
|
+
for (var name in all)
|
|
46
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
47
|
+
};
|
|
48
|
+
var __copyProps = (to, from, except, desc) => {
|
|
49
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
50
|
+
for (let key of __getOwnPropNames(from))
|
|
51
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
52
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
53
|
+
}
|
|
54
|
+
return to;
|
|
55
|
+
};
|
|
56
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
57
|
+
var api_docs_exports = {};
|
|
58
|
+
__export(api_docs_exports, {
|
|
59
|
+
generateApiDocs: () => generateApiDocs
|
|
60
|
+
});
|
|
61
|
+
module.exports = __toCommonJS(api_docs_exports);
|
|
62
|
+
var import_node_fs = require('node:fs');
|
|
63
|
+
var import_promises = require('node:fs/promises');
|
|
64
|
+
var import_node_path = require('node:path');
|
|
65
|
+
var import_node_url = require('node:url');
|
|
66
|
+
var import_ts_morph = require('ts-morph');
|
|
67
|
+
var import_api_doc_jsdoc = require('./api-doc-jsdoc.cjs');
|
|
68
|
+
var import_api_doc_link_rendering = require('./api-doc-link-rendering.cjs');
|
|
69
|
+
var import_api_doc_package_sites = require('./api-doc-package-sites.cjs');
|
|
70
|
+
var import_api_doc_page_generation = require('./api-doc-page-generation.cjs');
|
|
71
|
+
var import_api_doc_settings = require('./api-doc-settings.cjs');
|
|
72
|
+
var import_api_doc_source_processing = require('./api-doc-source-processing.cjs');
|
|
73
|
+
var import_api_doc_type_merging = require('./api-doc-type-merging.cjs');
|
|
74
|
+
var __import_meta_url = globalThis["import.meta.url"] ?? (function getCjsImportMetaUrl() {
|
|
75
|
+
if (typeof __filename === "string") {
|
|
76
|
+
const localRequire = require;
|
|
77
|
+
const url = localRequire("node:url");
|
|
78
|
+
if (typeof url.pathToFileURL === "function") {
|
|
79
|
+
return url.pathToFileURL(__filename).href;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return globalThis.location?.href ?? "";
|
|
83
|
+
})();
|
|
84
|
+
const CACHE_FILE_NAME = ".cache-hash";
|
|
85
|
+
async function generateApiDocs(options) {
|
|
86
|
+
const { rootDirectory, settings, sourceDirectory } = options;
|
|
87
|
+
(0, import_api_doc_settings.configureApiDocs)(settings);
|
|
88
|
+
(0, import_api_doc_link_rendering.loadExternalTypeMaps)(rootDirectory);
|
|
89
|
+
const entryFiles = (0, import_api_doc_source_processing.findEntryFiles)(sourceDirectory);
|
|
90
|
+
console.warn(`Found ${String(entryFiles.length)} entry source files`);
|
|
91
|
+
const cacheFile = (0, import_node_path.join)(settings.outputDirectory, CACHE_FILE_NAME);
|
|
92
|
+
const currentHash = (0, import_api_doc_source_processing.computeCacheHash)(entryFiles, (0, import_node_path.dirname)((0, import_node_url.fileURLToPath)(__import_meta_url)));
|
|
93
|
+
if ((0, import_node_fs.existsSync)(cacheFile) && (0, import_node_fs.existsSync)(settings.sidebarFile) && (0, import_node_fs.readFileSync)(cacheFile, "utf-8").trim() === currentHash) {
|
|
94
|
+
console.warn("Source files and generator unchanged \u2014 skipping generation.");
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const project = new import_ts_morph.Project({
|
|
98
|
+
skipAddingFilesFromTsConfig: true,
|
|
99
|
+
tsConfigFilePath: (0, import_node_path.join)(rootDirectory, "tsconfig.json")
|
|
100
|
+
});
|
|
101
|
+
const sourceFiles = project.addSourceFilesAtPaths(entryFiles);
|
|
102
|
+
const types = /* @__PURE__ */ new Map();
|
|
103
|
+
const moduleOverviews = /* @__PURE__ */ new Map();
|
|
104
|
+
(0, import_api_doc_package_sites.clearPackageDeclarations)();
|
|
105
|
+
for (const src of sourceFiles) {
|
|
106
|
+
const namespace = (0, import_api_doc_source_processing.computeNamespace)(sourceDirectory, (0, import_node_path.normalize)(src.getFilePath()));
|
|
107
|
+
const overview = (0, import_api_doc_jsdoc.extractFileOverview)(src);
|
|
108
|
+
if (overview) {
|
|
109
|
+
moduleOverviews.set(namespace, overview);
|
|
110
|
+
}
|
|
111
|
+
(0, import_api_doc_source_processing.collectPackageDeclarations)(src);
|
|
112
|
+
(0, import_api_doc_source_processing.processSourceFile)(src, types, namespace);
|
|
113
|
+
(0, import_api_doc_source_processing.collectFunctions)(src, types, namespace);
|
|
114
|
+
(0, import_api_doc_source_processing.collectVariables)(src, types, namespace);
|
|
115
|
+
}
|
|
116
|
+
(0, import_api_doc_type_merging.resolveInheritedMembers)(types);
|
|
117
|
+
for (const info of types.values()) {
|
|
118
|
+
info.properties.sort((a, b) => a.name.localeCompare(b.name));
|
|
119
|
+
info.methods.sort((a, b) => a.name.localeCompare(b.name));
|
|
120
|
+
}
|
|
121
|
+
(0, import_api_doc_source_processing.registerGenericTypeParams)(types);
|
|
122
|
+
(0, import_api_doc_link_rendering.registerRouteSegments)(types);
|
|
123
|
+
(0, import_api_doc_link_rendering.registerMemberPages)(types);
|
|
124
|
+
await (0, import_promises.rm)(settings.outputDirectory, { force: true, recursive: true });
|
|
125
|
+
await (0, import_promises.mkdir)(settings.outputDirectory, { recursive: true });
|
|
126
|
+
await (0, import_api_doc_page_generation.generateNamespaceIndexPages)(types, types, moduleOverviews);
|
|
127
|
+
const pageContents = /* @__PURE__ */ new Map();
|
|
128
|
+
for (const [key, info] of types) {
|
|
129
|
+
pageContents.set(key, await (0, import_api_doc_page_generation.generateOverviewPage)(info.name, info, types));
|
|
130
|
+
if (info.kind === "class" || info.kind === "interface") {
|
|
131
|
+
await (0, import_api_doc_page_generation.generateMemberPages)(info.name, info, types);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
await (0, import_api_doc_page_generation.appendBacklinksAndWrite)(pageContents, types);
|
|
135
|
+
await (0, import_api_doc_page_generation.generateSidebarJson)(types);
|
|
136
|
+
await (0, import_promises.writeFile)(cacheFile, currentHash, "utf-8");
|
|
137
|
+
console.warn(`Generated docs for ${String(types.size)} types across ${String(moduleOverviews.size)} documented modules`);
|
|
138
|
+
}
|
|
139
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
140
|
+
0 && (module.exports = {
|
|
141
|
+
generateApiDocs
|
|
142
|
+
});
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kb2NzLXNpdGUvYXBpLWRvY3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKGZ1bmN0aW9uIGdldENqc0ltcG9ydE1ldGFVcmwoKSB7XG4gIGlmICh0eXBlb2YgX19maWxlbmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBsb2NhbFJlcXVpcmUgPSByZXF1aXJlO1xuICAgIGNvbnN0IHVybCA9IGxvY2FsUmVxdWlyZSgnbm9kZTp1cmwnKTtcbiAgICBpZiAodHlwZW9mIHVybC5wYXRoVG9GaWxlVVJMID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdXJsLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkuaHJlZjtcbiAgICB9XG4gIH1cblxuICAvLyBGYWxsYmFjayB0byB0aGUgcGFnZSBVUkwsIG9yIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgZW52aXJvbm1lbnQgaXMgdW5rbm93bi5cbiAgcmV0dXJuIGdsb2JhbFRoaXMubG9jYXRpb24/LmhyZWYgPz8gJyc7XG59KSgpO1xuLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3I6IHdhbGtzIGEgcGFja2FnZSdzIGBzcmNgLCBleHRyYWN0cyBldmVyeSBkb2N1bWVudGFibGUgZXhwb3J0ZWQgZGVjbGFyYXRpb24gdmlhXG4gKiB0cy1tb3JwaCwgYW5kIHdyaXRlcyBTdGFybGlnaHQtY29tcGF0aWJsZSBNRFggcGFnZXMgcGx1cyBhIHNpZGViYXIgSlNPTi4gVGhlIG91dHB1dCB0cmVlIG1pcnJvcnMgdGhlIHBhY2thZ2Unc1xuICogbW9kdWxlIHN0cnVjdHVyZTogYSB0eXBlJ3MgbmFtZXNwYWNlIGlzIGl0cyBzb3VyY2UgcGF0aCByZWxhdGl2ZSB0byBgc3JjYCwgd2hpY2ggaXMgYWxzbyBpdHMgaW1wb3J0IHN1YnBhdGguXG4gKi9cblxuaW1wb3J0IHtcbiAgZXhpc3RzU3luYyxcbiAgcmVhZEZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgbWtkaXIsXG4gIHJtLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQge1xuICBkaXJuYW1lLFxuICBqb2luLFxuICBub3JtYWxpemVcbn0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICdub2RlOnVybCc7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAndHMtbW9ycGgnO1xuXG5pbXBvcnQgdHlwZSB7IEFwaURvY1NldHRpbmdzIH0gZnJvbSAnLi9hcGktZG9jLXNldHRpbmdzLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgUGFnZUNvbnRlbnQsXG4gIFR5cGVJbmZvXG59IGZyb20gJy4vYXBpLWRvYy10eXBlcy50cyc7XG5cbmltcG9ydCB7IGV4dHJhY3RGaWxlT3ZlcnZpZXcgfSBmcm9tICcuL2FwaS1kb2MtanNkb2MudHMnO1xuaW1wb3J0IHtcbiAgbG9hZEV4dGVybmFsVHlwZU1hcHMsXG4gIHJlZ2lzdGVyTWVtYmVyUGFnZXMsXG4gIHJlZ2lzdGVyUm91dGVTZWdtZW50c1xufSBmcm9tICcuL2FwaS1kb2MtbGluay1yZW5kZXJpbmcudHMnO1xuaW1wb3J0IHsgY2xlYXJQYWNrYWdlRGVjbGFyYXRpb25zIH0gZnJvbSAnLi9hcGktZG9jLXBhY2thZ2Utc2l0ZXMudHMnO1xuaW1wb3J0IHtcbiAgYXBwZW5kQmFja2xpbmtzQW5kV3JpdGUsXG4gIGdlbmVyYXRlTWVtYmVyUGFnZXMsXG4gIGdlbmVyYXRlTmFtZXNwYWNlSW5kZXhQYWdlcyxcbiAgZ2VuZXJhdGVPdmVydmlld1BhZ2UsXG4gIGdlbmVyYXRlU2lkZWJhckpzb25cbn0gZnJvbSAnLi9hcGktZG9jLXBhZ2UtZ2VuZXJhdGlvbi50cyc7XG5pbXBvcnQgeyBjb25maWd1cmVBcGlEb2NzIH0gZnJvbSAnLi9hcGktZG9jLXNldHRpbmdzLnRzJztcbmltcG9ydCB7XG4gIGNvbGxlY3RGdW5jdGlvbnMsXG4gIGNvbGxlY3RQYWNrYWdlRGVjbGFyYXRpb25zLFxuICBjb2xsZWN0VmFyaWFibGVzLFxuICBjb21wdXRlQ2FjaGVIYXNoLFxuICBjb21wdXRlTmFtZXNwYWNlLFxuICBmaW5kRW50cnlGaWxlcyxcbiAgcHJvY2Vzc1NvdXJjZUZpbGUsXG4gIHJlZ2lzdGVyR2VuZXJpY1R5cGVQYXJhbXNcbn0gZnJvbSAnLi9hcGktZG9jLXNvdXJjZS1wcm9jZXNzaW5nLnRzJztcbmltcG9ydCB7IHJlc29sdmVJbmhlcml0ZWRNZW1iZXJzIH0gZnJvbSAnLi9hcGktZG9jLXR5cGUtbWVyZ2luZy50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdlbmVyYXRlQXBpRG9jc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVBcGlEb2NzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IHJvb3Q6IHRoZSBmb2xkZXIgaG9sZGluZyBgdHNjb25maWcuanNvbmAgYW5kIGBub2RlX21vZHVsZXNgLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdERpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0dGluZ3MgZXZlcnkgcGFnZSBhbmQgbGluayBpcyByZW5kZXJlZCB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0dGluZ3M6IEFwaURvY1NldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHdob3NlIG1vZHVsZXMgYXJlIGRvY3VtZW50ZWQsIG5vcm1hbGx5IGA8cm9vdD4vc3JjYC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZURpcmVjdG9yeTogc3RyaW5nO1xufVxuXG5jb25zdCBDQUNIRV9GSUxFX05BTUUgPSAnLmNhY2hlLWhhc2gnO1xuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgQVBJIHJlZmVyZW5jZSBwYWdlcyBhbmQgdGhlIHNpZGViYXIuXG4gKlxuICogU2tpcHMgdGhlIHdvcmsgd2hlbiBuZWl0aGVyIHRoZSBzb3VyY2VzLCB0aGUgc2V0dGluZ3Mgbm9yIHRoZSBnZW5lcmF0b3IgY2hhbmdlZCBzaW5jZSB0aGUgbGFzdCBydW4uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlQXBpRG9jcyhvcHRpb25zOiBHZW5lcmF0ZUFwaURvY3NQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyByb290RGlyZWN0b3J5LCBzZXR0aW5ncywgc291cmNlRGlyZWN0b3J5IH0gPSBvcHRpb25zO1xuICBjb25maWd1cmVBcGlEb2NzKHNldHRpbmdzKTtcbiAgbG9hZEV4dGVybmFsVHlwZU1hcHMocm9vdERpcmVjdG9yeSk7XG5cbiAgY29uc3QgZW50cnlGaWxlcyA9IGZpbmRFbnRyeUZpbGVzKHNvdXJjZURpcmVjdG9yeSk7XG4gIGNvbnNvbGUud2FybihgRm91bmQgJHtTdHJpbmcoZW50cnlGaWxlcy5sZW5ndGgpfSBlbnRyeSBzb3VyY2UgZmlsZXNgKTtcblxuICBjb25zdCBjYWNoZUZpbGUgPSBqb2luKHNldHRpbmdzLm91dHB1dERpcmVjdG9yeSwgQ0FDSEVfRklMRV9OQU1FKTtcbiAgY29uc3QgY3VycmVudEhhc2ggPSBjb21wdXRlQ2FjaGVIYXNoKGVudHJ5RmlsZXMsIGRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKSk7XG4gIGlmIChleGlzdHNTeW5jKGNhY2hlRmlsZSkgJiYgZXhpc3RzU3luYyhzZXR0aW5ncy5zaWRlYmFyRmlsZSkgJiYgcmVhZEZpbGVTeW5jKGNhY2hlRmlsZSwgJ3V0Zi04JykudHJpbSgpID09PSBjdXJyZW50SGFzaCkge1xuICAgIGNvbnNvbGUud2FybignU291cmNlIGZpbGVzIGFuZCBnZW5lcmF0b3IgdW5jaGFuZ2VkIOKAlCBza2lwcGluZyBnZW5lcmF0aW9uLicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIExvYWQgdmlhIHRoZSByZXBvJ3MgdHNjb25maWcgc28gaW5mZXJyZWQgdHlwZXMgcmVzb2x2ZS5cbiAgY29uc3QgcHJvamVjdCA9IG5ldyBQcm9qZWN0KHtcbiAgICBza2lwQWRkaW5nRmlsZXNGcm9tVHNDb25maWc6IHRydWUsXG4gICAgdHNDb25maWdGaWxlUGF0aDogam9pbihyb290RGlyZWN0b3J5LCAndHNjb25maWcuanNvbicpXG4gIH0pO1xuICBjb25zdCBzb3VyY2VGaWxlcyA9IHByb2plY3QuYWRkU291cmNlRmlsZXNBdFBhdGhzKGVudHJ5RmlsZXMpO1xuXG4gIGNvbnN0IHR5cGVzID0gbmV3IE1hcDxzdHJpbmcsIFR5cGVJbmZvPigpO1xuICBjb25zdCBtb2R1bGVPdmVydmlld3MgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBjbGVhclBhY2thZ2VEZWNsYXJhdGlvbnMoKTtcblxuICBmb3IgKGNvbnN0IHNyYyBvZiBzb3VyY2VGaWxlcykge1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IGNvbXB1dGVOYW1lc3BhY2Uoc291cmNlRGlyZWN0b3J5LCBub3JtYWxpemUoc3JjLmdldEZpbGVQYXRoKCkpKTtcbiAgICBjb25zdCBvdmVydmlldyA9IGV4dHJhY3RGaWxlT3ZlcnZpZXcoc3JjKTtcbiAgICBpZiAob3ZlcnZpZXcpIHtcbiAgICAgIG1vZHVsZU92ZXJ2aWV3cy5zZXQobmFtZXNwYWNlLCBvdmVydmlldyk7XG4gICAgfVxuICAgIGNvbGxlY3RQYWNrYWdlRGVjbGFyYXRpb25zKHNyYyk7XG4gICAgcHJvY2Vzc1NvdXJjZUZpbGUoc3JjLCB0eXBlcywgbmFtZXNwYWNlKTtcbiAgICBjb2xsZWN0RnVuY3Rpb25zKHNyYywgdHlwZXMsIG5hbWVzcGFjZSk7XG4gICAgY29sbGVjdFZhcmlhYmxlcyhzcmMsIHR5cGVzLCBuYW1lc3BhY2UpO1xuICB9XG5cbiAgcmVzb2x2ZUluaGVyaXRlZE1lbWJlcnModHlwZXMpO1xuXG4gIGZvciAoY29uc3QgaW5mbyBvZiB0eXBlcy52YWx1ZXMoKSkge1xuICAgIGluZm8ucHJvcGVydGllcy5zb3J0KChhLCBiKSA9PiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpKTtcbiAgICBpbmZvLm1ldGhvZHMuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XG4gIH1cblxuICByZWdpc3RlckdlbmVyaWNUeXBlUGFyYW1zKHR5cGVzKTtcbiAgcmVnaXN0ZXJSb3V0ZVNlZ21lbnRzKHR5cGVzKTtcbiAgcmVnaXN0ZXJNZW1iZXJQYWdlcyh0eXBlcyk7XG5cbiAgYXdhaXQgcm0oc2V0dGluZ3Mub3V0cHV0RGlyZWN0b3J5LCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGF3YWl0IG1rZGlyKHNldHRpbmdzLm91dHB1dERpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgYXdhaXQgZ2VuZXJhdGVOYW1lc3BhY2VJbmRleFBhZ2VzKHR5cGVzLCB0eXBlcywgbW9kdWxlT3ZlcnZpZXdzKTtcblxuICAvLyBQYXNzIDE6IGdlbmVyYXRlIGFsbCBwYWdlcyB3aXRob3V0IGJhY2tsaW5rcywgY29sbGVjdCBjb250ZW50IChrZXllZCBieSBxdWFsaWZpZWQgaWQpXG4gIGNvbnN0IHBhZ2VDb250ZW50cyA9IG5ldyBNYXA8c3RyaW5nLCBQYWdlQ29udGVudD4oKTtcbiAgZm9yIChjb25zdCBba2V5LCBpbmZvXSBvZiB0eXBlcykge1xuICAgIHBhZ2VDb250ZW50cy5zZXQoa2V5LCBhd2FpdCBnZW5lcmF0ZU92ZXJ2aWV3UGFnZShpbmZvLm5hbWUsIGluZm8sIHR5cGVzKSk7XG4gICAgaWYgKGluZm8ua2luZCA9PT0gJ2NsYXNzJyB8fCBpbmZvLmtpbmQgPT09ICdpbnRlcmZhY2UnKSB7XG4gICAgICBhd2FpdCBnZW5lcmF0ZU1lbWJlclBhZ2VzKGluZm8ubmFtZSwgaW5mbywgdHlwZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhc3MgMjogc2NhbiBjb250ZW50IGZvciBsaW5rcywgYXBwZW5kIGJhY2tsaW5rcywgd3JpdGUgZmlsZXNcbiAgYXdhaXQgYXBwZW5kQmFja2xpbmtzQW5kV3JpdGUocGFnZUNvbnRlbnRzLCB0eXBlcyk7XG5cbiAgYXdhaXQgZ2VuZXJhdGVTaWRlYmFySnNvbih0eXBlcyk7XG4gIGF3YWl0IHdyaXRlRmlsZShjYWNoZUZpbGUsIGN1cnJlbnRIYXNoLCAndXRmLTgnKTtcblxuICBjb25zb2xlLndhcm4oYEdlbmVyYXRlZCBkb2NzIGZvciAke1N0cmluZyh0eXBlcy5zaXplKX0gdHlwZXMgYWNyb3NzICR7U3RyaW5nKG1vZHVsZU92ZXJ2aWV3cy5zaXplKX0gZG9jdW1lbnRlZCBtb2R1bGVzYCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9CQSxxQkFHTztBQUNQLHNCQUlPO0FBQ1AsdUJBSU87QUFDUCxzQkFBOEI7QUFDOUIsc0JBQXdCO0FBUXhCLDJCQUFvQztBQUNwQyxvQ0FJTztBQUNQLG1DQUF5QztBQUN6QyxxQ0FNTztBQUNQLDhCQUFpQztBQUNqQyx1Q0FTTztBQUNQLGtDQUF3QztBQXBFeEMsSUFBSSxvQkFBb0IsV0FBVyxpQkFBaUIsTUFBTSxTQUFTLHNCQUFzQjtBQUN2RixNQUFJLE9BQU8sZUFBZSxVQUFVO0FBQ2xDLFVBQU0sZUFBZTtBQUNyQixVQUFNLE1BQU0sYUFBYSxVQUFVO0FBQ25DLFFBQUksT0FBTyxJQUFJLGtCQUFrQixZQUFZO0FBQzNDLGFBQU8sSUFBSSxjQUFjLFVBQVUsRUFBRTtBQUFBLElBQ3ZDO0FBQUEsRUFDRjtBQUdBLFNBQU8sV0FBVyxVQUFVLFFBQVE7QUFDdEMsR0FBRztBQStFSCxNQUFNLGtCQUFrQjtBQVN4QixlQUFzQixnQkFBZ0IsU0FBK0M7QUFDbkYsUUFBTSxFQUFFLGVBQWUsVUFBVSxnQkFBZ0IsSUFBSTtBQUNyRCxnREFBaUIsUUFBUTtBQUN6QiwwREFBcUIsYUFBYTtBQUVsQyxRQUFNLGlCQUFhLGlEQUFlLGVBQWU7QUFDakQsVUFBUSxLQUFLLFNBQVMsT0FBTyxXQUFXLE1BQU0sQ0FBQyxxQkFBcUI7QUFFcEUsUUFBTSxnQkFBWSx1QkFBSyxTQUFTLGlCQUFpQixlQUFlO0FBQ2hFLFFBQU0sa0JBQWMsbURBQWlCLGdCQUFZLDhCQUFRLCtCQUFjLGlCQUFlLENBQUMsQ0FBQztBQUN4RixVQUFJLDJCQUFXLFNBQVMsU0FBSywyQkFBVyxTQUFTLFdBQVcsU0FBSyw2QkFBYSxXQUFXLE9BQU8sRUFBRSxLQUFLLE1BQU0sYUFBYTtBQUN4SCxZQUFRLEtBQUssa0VBQTZEO0FBQzFFO0FBQUEsRUFDRjtBQUdBLFFBQU0sVUFBVSxJQUFJLHdCQUFRO0FBQUEsSUFDMUIsNkJBQTZCO0FBQUEsSUFDN0Isc0JBQWtCLHVCQUFLLGVBQWUsZUFBZTtBQUFBLEVBQ3ZELENBQUM7QUFDRCxRQUFNLGNBQWMsUUFBUSxzQkFBc0IsVUFBVTtBQUU1RCxRQUFNLFFBQVEsb0JBQUksSUFBc0I7QUFDeEMsUUFBTSxrQkFBa0Isb0JBQUksSUFBb0I7QUFDaEQsNkRBQXlCO0FBRXpCLGFBQVcsT0FBTyxhQUFhO0FBQzdCLFVBQU0sZ0JBQVksbURBQWlCLHFCQUFpQiw0QkFBVSxJQUFJLFlBQVksQ0FBQyxDQUFDO0FBQ2hGLFVBQU0sZUFBVywwQ0FBb0IsR0FBRztBQUN4QyxRQUFJLFVBQVU7QUFDWixzQkFBZ0IsSUFBSSxXQUFXLFFBQVE7QUFBQSxJQUN6QztBQUNBLHFFQUEyQixHQUFHO0FBQzlCLDREQUFrQixLQUFLLE9BQU8sU0FBUztBQUN2QywyREFBaUIsS0FBSyxPQUFPLFNBQVM7QUFDdEMsMkRBQWlCLEtBQUssT0FBTyxTQUFTO0FBQUEsRUFDeEM7QUFFQSwyREFBd0IsS0FBSztBQUU3QixhQUFXLFFBQVEsTUFBTSxPQUFPLEdBQUc7QUFDakMsU0FBSyxXQUFXLEtBQUssQ0FBQyxHQUFHLE1BQU0sRUFBRSxLQUFLLGNBQWMsRUFBRSxJQUFJLENBQUM7QUFDM0QsU0FBSyxRQUFRLEtBQUssQ0FBQyxHQUFHLE1BQU0sRUFBRSxLQUFLLGNBQWMsRUFBRSxJQUFJLENBQUM7QUFBQSxFQUMxRDtBQUVBLGtFQUEwQixLQUFLO0FBQy9CLDJEQUFzQixLQUFLO0FBQzNCLHlEQUFvQixLQUFLO0FBRXpCLFlBQU0sb0JBQUcsU0FBUyxpQkFBaUIsRUFBRSxPQUFPLE1BQU0sV0FBVyxLQUFLLENBQUM7QUFDbkUsWUFBTSx1QkFBTSxTQUFTLGlCQUFpQixFQUFFLFdBQVcsS0FBSyxDQUFDO0FBRXpELFlBQU0sNERBQTRCLE9BQU8sT0FBTyxlQUFlO0FBRy9ELFFBQU0sZUFBZSxvQkFBSSxJQUF5QjtBQUNsRCxhQUFXLENBQUMsS0FBSyxJQUFJLEtBQUssT0FBTztBQUMvQixpQkFBYSxJQUFJLEtBQUssVUFBTSxxREFBcUIsS0FBSyxNQUFNLE1BQU0sS0FBSyxDQUFDO0FBQ3hFLFFBQUksS0FBSyxTQUFTLFdBQVcsS0FBSyxTQUFTLGFBQWE7QUFDdEQsZ0JBQU0sb0RBQW9CLEtBQUssTUFBTSxNQUFNLEtBQUs7QUFBQSxJQUNsRDtBQUFBLEVBQ0Y7QUFHQSxZQUFNLHdEQUF3QixjQUFjLEtBQUs7QUFFakQsWUFBTSxvREFBb0IsS0FBSztBQUMvQixZQUFNLDJCQUFVLFdBQVcsYUFBYSxPQUFPO0FBRS9DLFVBQVEsS0FBSyxzQkFBc0IsT0FBTyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsT0FBTyxnQkFBZ0IsSUFBSSxDQUFDLHFCQUFxQjtBQUN6SDsiLCJuYW1lcyI6W119
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/// <reference path="../library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* The API documentation generator: walks a package's `src`, extracts every documentable exported declaration via
|
|
6
|
+
* ts-morph, and writes Starlight-compatible MDX pages plus a sidebar JSON. The output tree mirrors the package's
|
|
7
|
+
* module structure: a type's namespace is its source path relative to `src`, which is also its import subpath.
|
|
8
|
+
*/
|
|
9
|
+
import type { ApiDocSettings } from './api-doc-settings.cjs';
|
|
10
|
+
/**
|
|
11
|
+
* Options for {@link generateApiDocs}.
|
|
12
|
+
*/
|
|
13
|
+
export interface GenerateApiDocsParams {
|
|
14
|
+
/**
|
|
15
|
+
* The repository root: the folder holding `tsconfig.json` and `node_modules`.
|
|
16
|
+
*/
|
|
17
|
+
readonly rootDirectory: string;
|
|
18
|
+
/**
|
|
19
|
+
* The settings every page and link is rendered with.
|
|
20
|
+
*/
|
|
21
|
+
readonly settings: ApiDocSettings;
|
|
22
|
+
/**
|
|
23
|
+
* The folder whose modules are documented, normally `<root>/src`.
|
|
24
|
+
*/
|
|
25
|
+
readonly sourceDirectory: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generates the API reference pages and the sidebar.
|
|
29
|
+
*
|
|
30
|
+
* Skips the work when neither the sources, the settings nor the generator changed since the last run.
|
|
31
|
+
*
|
|
32
|
+
* @param options - The options.
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateApiDocs(options: GenerateApiDocsParams): Promise<void>;
|