@mnaoumov/typescript-dev-toolkit 1.3.1 → 2.1.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/README.md +4 -0
- 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-config.cjs +18 -3
- package/dist/lib/cjs/commitlint-config.d.cts +6 -0
- 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/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-config.d.mts +6 -0
- package/dist/lib/esm/commitlint-config.mjs +7 -3
- 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/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 +75 -5
package/README.md
CHANGED
|
@@ -8,6 +8,10 @@ Generic tooling for TypeScript projects: the build, lint, format, spellcheck, te
|
|
|
8
8
|
npm install --save-dev @mnaoumov/typescript-dev-toolkit
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## Documentation
|
|
12
|
+
|
|
13
|
+
The guides and the API reference are at <https://mnaoumov.dev/typescript-dev-toolkit/>.
|
|
14
|
+
|
|
11
15
|
## Where it fits
|
|
12
16
|
|
|
13
17
|
It is one of five packages that replace [`obsidian-dev-utils`](https://github.com/mnaoumov/obsidian-dev-utils): [`@mnaoumov/typescript-lib`](https://github.com/mnaoumov/typescript-lib), [`@mnaoumov/typescript-test-toolkit`](https://github.com/mnaoumov/typescript-test-toolkit), [`@mnaoumov/typescript-dev-toolkit`](https://github.com/mnaoumov/typescript-dev-toolkit), [`@mnaoumov/obsidian-lib`](https://github.com/mnaoumov/obsidian-lib) and [`@mnaoumov/obsidian-dev-toolkit`](https://github.com/mnaoumov/obsidian-dev-toolkit). It depends on [`@mnaoumov/typescript-lib`](https://github.com/mnaoumov/typescript-lib). It moved here from that repository with its history.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Code } from '@astrojs/starlight/components';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
description?: string;
|
|
6
|
+
signature: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const { signature, description } = Astro.props;
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<div class="filterable-block" data-inherited="false">
|
|
13
|
+
<h2><span class="icon-own" title="Defined on this type"></span> Constructor</h2>
|
|
14
|
+
<Code code={signature} lang="ts" />
|
|
15
|
+
{description && <p set:html={description} />}
|
|
16
|
+
</div>
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Code } from '@astrojs/starlight/components';
|
|
3
|
+
|
|
4
|
+
/** A rendered API parameter. */
|
|
5
|
+
interface ParameterInfo {
|
|
6
|
+
description: string;
|
|
7
|
+
name: string;
|
|
8
|
+
type: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
interface Props {
|
|
12
|
+
description?: string;
|
|
13
|
+
examples?: string[];
|
|
14
|
+
parameters?: ParameterInfo[];
|
|
15
|
+
remarks?: string;
|
|
16
|
+
returnDescription?: string;
|
|
17
|
+
returnType?: string;
|
|
18
|
+
signature?: string;
|
|
19
|
+
since?: string;
|
|
20
|
+
type?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const {
|
|
24
|
+
type,
|
|
25
|
+
description,
|
|
26
|
+
signature,
|
|
27
|
+
parameters = [],
|
|
28
|
+
returnType,
|
|
29
|
+
returnDescription,
|
|
30
|
+
remarks,
|
|
31
|
+
examples = [],
|
|
32
|
+
since
|
|
33
|
+
} = Astro.props;
|
|
34
|
+
|
|
35
|
+
/** Strip markdown code fence markers and extract language + code */
|
|
36
|
+
function parseCodeFence(raw: string): { code: string; lang: string } {
|
|
37
|
+
const match = /^```(\w*)\n([\s\S]*?)(?:\n```)?$/.exec(raw.trim());
|
|
38
|
+
if (match) {
|
|
39
|
+
return { code: match[2]?.trimEnd() ?? '', lang: match[1] || 'ts' };
|
|
40
|
+
}
|
|
41
|
+
return { code: raw.trim(), lang: 'ts' };
|
|
42
|
+
}
|
|
43
|
+
const parsedExamples = examples.map(parseCodeFence);
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
{type && <p><strong>Type:</strong> <span set:html={type} /></p>}
|
|
47
|
+
|
|
48
|
+
{description && <Fragment set:html={description} />}
|
|
49
|
+
|
|
50
|
+
{signature && (
|
|
51
|
+
<>
|
|
52
|
+
<p><strong>Signature:</strong></p>
|
|
53
|
+
<Code code={signature} lang="ts" />
|
|
54
|
+
</>
|
|
55
|
+
)}
|
|
56
|
+
|
|
57
|
+
{parameters.length > 0 && (
|
|
58
|
+
<>
|
|
59
|
+
<p><strong>Parameters:</strong></p>
|
|
60
|
+
<table>
|
|
61
|
+
<thead>
|
|
62
|
+
<tr>
|
|
63
|
+
<th style="text-align: left">Parameter</th>
|
|
64
|
+
<th style="text-align: left">Type</th>
|
|
65
|
+
<th style="text-align: left">Description</th>
|
|
66
|
+
</tr>
|
|
67
|
+
</thead>
|
|
68
|
+
<tbody>
|
|
69
|
+
{parameters.map((param) => (
|
|
70
|
+
<tr>
|
|
71
|
+
<td style="text-align: left">{param.name}</td>
|
|
72
|
+
<td style="text-align: left" set:html={param.type} />
|
|
73
|
+
<td style="text-align: left" set:html={param.description} />
|
|
74
|
+
</tr>
|
|
75
|
+
))}
|
|
76
|
+
</tbody>
|
|
77
|
+
</table>
|
|
78
|
+
</>
|
|
79
|
+
)}
|
|
80
|
+
|
|
81
|
+
{returnType && (
|
|
82
|
+
<p><strong>Returns:</strong> <span set:html={returnType} />
|
|
83
|
+
{returnDescription && <> — <span set:html={returnDescription} /></>}
|
|
84
|
+
</p>
|
|
85
|
+
)}
|
|
86
|
+
|
|
87
|
+
{since && <p><strong>Since:</strong> {since}</p>}
|
|
88
|
+
|
|
89
|
+
{remarks && (
|
|
90
|
+
<>
|
|
91
|
+
<p><strong>Remarks:</strong></p>
|
|
92
|
+
<Fragment set:html={remarks} />
|
|
93
|
+
</>
|
|
94
|
+
)}
|
|
95
|
+
|
|
96
|
+
{parsedExamples.map(({ code, lang }) => (
|
|
97
|
+
<>
|
|
98
|
+
<p><strong>Example:</strong></p>
|
|
99
|
+
<Code code={code} lang={lang} />
|
|
100
|
+
</>
|
|
101
|
+
))}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
interface MethodRow {
|
|
3
|
+
description: string;
|
|
4
|
+
href: string;
|
|
5
|
+
inheritedFrom?: string;
|
|
6
|
+
returns: string;
|
|
7
|
+
signature: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface Props {
|
|
11
|
+
rows: MethodRow[];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const { rows } = Astro.props;
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<h2>Methods</h2>
|
|
18
|
+
<table>
|
|
19
|
+
<colgroup>
|
|
20
|
+
<col style="width: 20%" />
|
|
21
|
+
<col style="width: 30%" />
|
|
22
|
+
<col style="width: 50%" />
|
|
23
|
+
</colgroup>
|
|
24
|
+
<thead>
|
|
25
|
+
<tr>
|
|
26
|
+
<th style="text-align: left">Method</th>
|
|
27
|
+
<th style="text-align: left">Returns</th>
|
|
28
|
+
<th style="text-align: left">Description</th>
|
|
29
|
+
</tr>
|
|
30
|
+
</thead>
|
|
31
|
+
<tbody>
|
|
32
|
+
{rows.map((row) => {
|
|
33
|
+
const inherited = row.inheritedFrom
|
|
34
|
+
? `<br/><em>(Inherited from ${row.inheritedFrom})</em>`
|
|
35
|
+
: '';
|
|
36
|
+
return (
|
|
37
|
+
<tr>
|
|
38
|
+
<td style="text-align: left">{row.href ? <a href={row.href} set:html={row.signature} /> : <span set:html={row.signature} />}</td>
|
|
39
|
+
<td style="text-align: left" set:html={row.returns} />
|
|
40
|
+
<td style="text-align: left" set:html={row.description + inherited} />
|
|
41
|
+
</tr>
|
|
42
|
+
);
|
|
43
|
+
})}
|
|
44
|
+
</tbody>
|
|
45
|
+
</table>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
interface PropertyRow {
|
|
3
|
+
description: string;
|
|
4
|
+
href: string;
|
|
5
|
+
inheritedFrom?: string;
|
|
6
|
+
name: string;
|
|
7
|
+
type: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface Props {
|
|
11
|
+
rows: PropertyRow[];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const { rows } = Astro.props;
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<h2>Properties</h2>
|
|
18
|
+
<table>
|
|
19
|
+
<colgroup>
|
|
20
|
+
<col style="width: 20%" />
|
|
21
|
+
<col style="width: 30%" />
|
|
22
|
+
<col style="width: 50%" />
|
|
23
|
+
</colgroup>
|
|
24
|
+
<thead>
|
|
25
|
+
<tr>
|
|
26
|
+
<th style="text-align: left">Property</th>
|
|
27
|
+
<th style="text-align: left">Type</th>
|
|
28
|
+
<th style="text-align: left">Description</th>
|
|
29
|
+
</tr>
|
|
30
|
+
</thead>
|
|
31
|
+
<tbody>
|
|
32
|
+
{rows.map((row) => {
|
|
33
|
+
const inherited = row.inheritedFrom
|
|
34
|
+
? `<br/><em>(Inherited from ${row.inheritedFrom})</em>`
|
|
35
|
+
: '';
|
|
36
|
+
return (
|
|
37
|
+
<tr>
|
|
38
|
+
<td style="text-align: left">{row.href ? <a href={row.href}>{row.name}</a> : row.name}</td>
|
|
39
|
+
<td style="text-align: left" set:html={row.type} />
|
|
40
|
+
<td style="text-align: left" set:html={row.description + inherited} />
|
|
41
|
+
</tr>
|
|
42
|
+
);
|
|
43
|
+
})}
|
|
44
|
+
</tbody>
|
|
45
|
+
</table>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
/**
|
|
3
|
+
* Site-title override: renders the title Starlight passes in, plus the documented package's version as an
|
|
4
|
+
* always-visible badge. `defineDocsSiteConfig` reads the version from the site's root package.json and defines it
|
|
5
|
+
* as `import.meta.env.DOCS_SITE_PACKAGE_VERSION`.
|
|
6
|
+
*/
|
|
7
|
+
const { siteTitle, siteTitleHref } = Astro.locals.starlightRoute;
|
|
8
|
+
const version = `v${import.meta.env.DOCS_SITE_PACKAGE_VERSION}`;
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<a href={siteTitleHref} class="site-title sl-flex">
|
|
12
|
+
<span translate="no">{siteTitle}</span>
|
|
13
|
+
<span class="site-version" translate="no">{version}</span>
|
|
14
|
+
</a>
|
|
15
|
+
|
|
16
|
+
<style>
|
|
17
|
+
@layer starlight.core {
|
|
18
|
+
.site-title {
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: 0.5rem;
|
|
21
|
+
font-size: var(--sl-text-h4);
|
|
22
|
+
font-weight: 600;
|
|
23
|
+
color: var(--sl-color-text-accent);
|
|
24
|
+
text-decoration: none;
|
|
25
|
+
white-space: nowrap;
|
|
26
|
+
min-width: 0;
|
|
27
|
+
}
|
|
28
|
+
span:first-child {
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
text-overflow: ellipsis;
|
|
31
|
+
}
|
|
32
|
+
.site-version {
|
|
33
|
+
flex: none;
|
|
34
|
+
font-size: var(--sl-text-xs);
|
|
35
|
+
font-weight: 500;
|
|
36
|
+
line-height: 1.5;
|
|
37
|
+
color: var(--sl-color-gray-1);
|
|
38
|
+
background: var(--sl-color-gray-6);
|
|
39
|
+
padding: 0.05rem 0.45rem;
|
|
40
|
+
border-radius: 999px;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
</style>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Code } from '@astrojs/starlight/components';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
extends?: string[];
|
|
6
|
+
implements?: string[];
|
|
7
|
+
kind: 'class' | 'interface';
|
|
8
|
+
name: string;
|
|
9
|
+
typeParams?: string[];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const { kind, name, typeParams = [], extends: baseTypes = [], implements: implTypes = [] } = Astro.props;
|
|
13
|
+
const typeParamsStr = typeParams.length > 0 ? `<${typeParams.join(', ')}>` : '';
|
|
14
|
+
const extendsClause = baseTypes.length > 0 ? ` extends ${baseTypes.join(', ')}` : '';
|
|
15
|
+
const implementsClause = implTypes.length > 0 ? ` implements ${implTypes.join(', ')}` : '';
|
|
16
|
+
const signature = `export ${kind} ${name}${typeParamsStr}${extendsClause}${implementsClause}`;
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<p><strong>Signature:</strong></p>
|
|
20
|
+
<Code code={signature} lang="ts" />
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--icon-size-med: 20px;
|
|
3
|
+
|
|
4
|
+
.starlight-aside--todo {
|
|
5
|
+
--sl-color-asides-text-accent: var(--sl-color-red-high);
|
|
6
|
+
--sl-color-asides-border: var(--sl-color-red);
|
|
7
|
+
background-color: var(--sl-color-red-low);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
:root[data-theme='dark'] {
|
|
12
|
+
--sl-color-accent-high: hsl(255, 92%, 82%);
|
|
13
|
+
--sl-color-accent: hsl(258, 85%, 68%);
|
|
14
|
+
--sl-color-accent-low: hsl(260, 42%, 38%);
|
|
15
|
+
--sl-hero-color: hsla(258, 85%, 68%, 30%);
|
|
16
|
+
|
|
17
|
+
.starlight-aside--tutorial {
|
|
18
|
+
--sl-color-asides-text-accent: #157AFF;
|
|
19
|
+
--sl-color-asides-border: #21385a;
|
|
20
|
+
background-color: #1e314c;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.starlight-aside--remark {
|
|
24
|
+
--sl-color-asides-text-accent: #ea9f52;
|
|
25
|
+
--sl-color-asides-border: #af6b32;
|
|
26
|
+
background-color: #302418;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.starlight-aside--todo {
|
|
30
|
+
--sl-color-asides-text-accent: #d2c7ff;
|
|
31
|
+
--sl-color-asides-border: #291761;
|
|
32
|
+
background-color: #321c81;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.starlight-aside--note {
|
|
36
|
+
--sl-color-asides-text-accent: #85d4da;
|
|
37
|
+
--sl-color-asides-border: #5eb5bd;
|
|
38
|
+
background-color: #416263;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
:root[data-theme='light'] {
|
|
43
|
+
--sl-color-accent-high: hsl(260, 55%, 32%);
|
|
44
|
+
--sl-color-accent: hsl(258, 66%, 55%);
|
|
45
|
+
--sl-color-accent-low: hsl(256, 82%, 84%);
|
|
46
|
+
--sl-hero-color: hsla(258, 66%, 55%, 25%);
|
|
47
|
+
|
|
48
|
+
.starlight-aside--tutorial {
|
|
49
|
+
--sl-color-asides-text-accent: #086DDD;
|
|
50
|
+
--sl-color-asides-border: #1e5a97;
|
|
51
|
+
background-color: #E6F0FB;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.starlight-aside--remark {
|
|
55
|
+
--sl-color-asides-text-accent: #EC7500;
|
|
56
|
+
--sl-color-asides-border: #7a390c;
|
|
57
|
+
background-color: #ffead5;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.starlight-aside--todo {
|
|
61
|
+
--sl-color-asides-text-accent: #6844dc;
|
|
62
|
+
--sl-color-asides-border: #5f3ad6;
|
|
63
|
+
background-color: #ddd5f8;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.starlight-aside--note {
|
|
67
|
+
--sl-color-asides-text-accent: #0d9a99;
|
|
68
|
+
--sl-color-asides-border: #21a6a5;
|
|
69
|
+
background-color: #cdeded;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Prevent horizontal scroll on mobile — any overflowing element (tables, code blocks,
|
|
74
|
+
long type names) is clipped at the page level. Individual containers like tables still
|
|
75
|
+
scroll horizontally via their own overflow:auto. Using `clip` instead of `hidden` avoids
|
|
76
|
+
creating a new scroll container. */
|
|
77
|
+
html,
|
|
78
|
+
body {
|
|
79
|
+
overflow-x: clip;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* Widen content area for API reference tables */
|
|
83
|
+
:root {
|
|
84
|
+
--sl-content-width: 65rem;
|
|
85
|
+
--sl-content-pad-x: 1rem;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Ensure long content scrolls horizontally within its container on mobile */
|
|
89
|
+
.sl-markdown-content pre {
|
|
90
|
+
overflow-x: auto;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* API reference tables */
|
|
94
|
+
.sl-markdown-content table {
|
|
95
|
+
width: 100%;
|
|
96
|
+
display: block;
|
|
97
|
+
overflow-x: auto;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.sl-markdown-content table th,
|
|
101
|
+
.sl-markdown-content table td {
|
|
102
|
+
text-align: left;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Hide graph view on API pages — not useful for reference docs */
|
|
106
|
+
.slsg-graph-panel { /* cspell:disable-line */
|
|
107
|
+
display: none;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.group-label {
|
|
111
|
+
text-transform: none;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
/* Hero style */
|
|
116
|
+
[data-has-hero] .page {
|
|
117
|
+
height: 100%;
|
|
118
|
+
background:
|
|
119
|
+
linear-gradient(215deg, var(--sl-hero-color), transparent 40%),
|
|
120
|
+
radial-gradient(var(--sl-hero-color), transparent 40%) no-repeat -80vw -70vh / 150vw 200vh,
|
|
121
|
+
radial-gradient(var(--sl-hero-color), transparent 65%) no-repeat 50% calc(100% + 20rem) /
|
|
122
|
+
150rem 30rem;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
[data-has-hero] header {
|
|
126
|
+
border-bottom: 1px solid transparent;
|
|
127
|
+
background-color: transparent;
|
|
128
|
+
-webkit-backdrop-filter: blur(16px);
|
|
129
|
+
backdrop-filter: blur(16px);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
[data-has-hero] .hero > img {
|
|
134
|
+
filter: drop-shadow(0 0 3rem var(--sl-hero-color));
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
.svg-embed {
|
|
139
|
+
display: flex;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.starlight-aside {
|
|
143
|
+
--sl-color-asides-text-accent: var(--sl-color-red-high);
|
|
144
|
+
--sl-color-asides-border: var(--sl-color-red);
|
|
145
|
+
background-color: var(--sl-color-red-low);
|
|
146
|
+
border-radius: 8px;
|
|
147
|
+
border: unset;
|
|
148
|
+
|
|
149
|
+
.starlight-aside__content:has(hr) {
|
|
150
|
+
display: none;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
svg {
|
|
154
|
+
width: var(--icon-size-med);
|
|
155
|
+
height: var(--icon-size-med);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.sl-separator {
|
|
160
|
+
display: flex;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.sl-separator:after {
|
|
164
|
+
content: "";
|
|
165
|
+
height: 2rem;
|
|
166
|
+
border-inline-end: 1px solid var(--sl-color-gray-5);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.obsidian-docs-link {
|
|
170
|
+
text-decoration: none;
|
|
171
|
+
color: var(--sl-color-accent);
|
|
172
|
+
font-weight: 600;
|
|
173
|
+
padding: 0 8px;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.code-location-icon {
|
|
177
|
+
display: flex;
|
|
178
|
+
margin-left: auto;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.code-location-text {
|
|
182
|
+
display: flex;
|
|
183
|
+
flex-direction: row;
|
|
184
|
+
align-items: center;
|
|
185
|
+
gap: 0.5rem;
|
|
186
|
+
justify-content: flex-end;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
h3, h4, h5 {
|
|
190
|
+
display: flex;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
.content-badge {
|
|
195
|
+
color: white;
|
|
196
|
+
background-color: var(--badge-color, var(--sl-color-accent));
|
|
197
|
+
border-radius: 4px;
|
|
198
|
+
padding: 0.1rem 0.25rem;
|
|
199
|
+
font-weight: 800;
|
|
200
|
+
font-size: 0.75rem;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.content-badge--devtools {
|
|
204
|
+
--badge-color: var(--sl-color-accent);
|
|
205
|
+
}
|
|
206
|
+
.content-badge--css {
|
|
207
|
+
--badge-color: var(--sl-color-red);
|
|
208
|
+
}
|
|
209
|
+
.content-badge--js {
|
|
210
|
+
--badge-color: var(--sl-color-purple);
|
|
211
|
+
}
|
|
212
|
+
.content-badge--electron {
|
|
213
|
+
--badge-color: var(--sl-color-orange);
|
|
214
|
+
}
|
|
215
|
+
.content-badge--html {
|
|
216
|
+
--badge-color: var(--sl-color-blue);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.content-badge--warning {
|
|
220
|
+
--badge-color: var(--sl-color-red);
|
|
221
|
+
}
|
package/dist/lib/cjs/build.cjs
CHANGED
|
@@ -166,4 +166,4 @@ function shouldKeepProjectFile(params) {
|
|
|
166
166
|
buildCompileTypeScript,
|
|
167
167
|
buildTemplates
|
|
168
168
|
});
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGZvciBzdGF0aWMgYXNzZXRzIGFuZCBjbGVhbmluZ1xuICogdGhlIGJ1aWxkIG91dHB1dCBmb2xkZXIuIEl0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBjb3B5IHN0YXRpYyBmaWxlcyB0byB0aGUgZGlzdHJpYnV0aW9uIGZvbGRlclxuICogYW5kIHRvIHJlbW92ZSB0aGUgZXhpc3RpbmcgYnVpbGQgb3V0cHV0LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgUGFja2FnZUpzb24sXG4gIFRzQ29uZmlnSnNvblxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyB0cmltU3RhcnQgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvc3RyaW5nJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHtcbiAgY2hlY2tQcm9qZWN0VHlwZXMsXG4gIHBhcnNlVHNDb25maWcsXG4gIHRvQ2Fub25pY2FsXG59IGZyb20gJy4vY2hlY2stcHJvamVjdC10eXBlcy50cyc7XG5pbXBvcnQgeyByZWFkZGlyUG9zaXggfSBmcm9tICcuL2ZzLnRzJztcbmltcG9ydCB7IHJlYWRKc29uIH0gZnJvbSAnLi9qc29uLnRzJztcbmltcG9ydCB7XG4gIG5wbVJ1bk9wdGlvbmFsLFxuICBOcG1SdW5PcHRpb25hbFJlc3VsdFxufSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyIGFuZCBpdHMgY29udGVudHMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBlbnRpcmUgZGlzdHJpYnV0aW9uIGZvbGRlciB0byBlbnN1cmUgYSBjbGVhbiBidWlsZCBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZvbGRlciBoYXMgYmVlbiByZW1vdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcm0oUmVwb1BhdGhzLkRpc3QsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6c3ZlbHRlJykgPT09IE5wbVJ1bk9wdGlvbmFsUmVzdWx0LlNraXBwZWQpIHtcbiAgICBhd2FpdCBidWlsZENvbXBpbGVTdmVsdGUoKTtcbiAgfVxuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6dHlwZXNjcmlwdCcpID09PSBOcG1SdW5PcHRpb25hbFJlc3VsdC5Ta2lwcGVkKSB7XG4gICAgYXdhaXQgYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpO1xuICB9XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFN2ZWx0ZSBjb2RlLlxuICpcbiAqIFRoZSBwcm9qZWN0J3MgU3ZlbHRlIGZpbGVzIGFyZSBmb3VuZCBieSBnbG9iYmluZyB0aGUgU3ZlbHRlIGV4dGVuc2lvbnMgZGlyZWN0bHkuIEdsb2JiaW5nIHRoZSB0c2NvbmZpZ1xuICogYGluY2x1ZGVgIHBhdHRlcm5zIGFuZCBmaWx0ZXJpbmcgdGhhdCBsaXN0IHdvdWxkIG5ldmVyIG1hdGNoOiBgaW5jbHVkZWAgbGlzdHMgVHlwZVNjcmlwdCBnbG9ic1xuICogKGAuL3NyYy8qKlxcLyoudHNgLCDigKYpLCBzbyBubyBgLnN2ZWx0ZWAgcGF0aCBjYW4gZXZlciBhcHBlYXIgaW4gaXQgYW5kIHRoZSBjaGVjayB3b3VsZCBhbHdheXMgYmUgc2tpcHBlZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBJZiB0aGUgcHJvamVjdCBoYXMgU3ZlbHRlIGZpbGVzIGJ1dCBkb2VzIG5vdCBkZWNsYXJlIGBzdmVsdGUtY2hlY2tgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlU3ZlbHRlKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0c0NvbmZpZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5Uc0NvbmZpZ0pzb24gfSk7XG4gIGNvbnN0IHRzQ29uZmlnID0gYXdhaXQgcmVhZEpzb248VHNDb25maWdKc29uPih0c0NvbmZpZ1BhdGgpO1xuICBjb25zdCBzdmVsdGVGaWxlcyA9IGF3YWl0IHRvQXJyYXkoZ2xvYihTVkVMVEVfRklMRV9QQVRURVJOUywge1xuICAgIGN3ZDogcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBSZXBvUGF0aHMuQ3VycmVudEZvbGRlciB9KSxcbiAgICBleGNsdWRlOiBbLi4uU1ZFTFRFX0ZJTEVfRVhDTFVERV9QQVRURVJOUywgLi4udHNDb25maWcuZXhjbHVkZSA/PyBbXV1cbiAgfSkpO1xuXG4gIGNvbnN0IFtmaXJzdFN2ZWx0ZUZpbGVdID0gc3ZlbHRlRmlsZXM7XG5cbiAgaWYgKGZpcnN0U3ZlbHRlRmlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG5cbiAgaWYgKCFjaGVja1N2ZWx0ZUNoZWNrRGVjbGFyZWQocGFja2FnZUpzb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEZvdW5kIFN2ZWx0ZSBmaWxlKHMpIGluIHRoZSBwcm9qZWN0IChlLmcuICR7Zmlyc3RTdmVsdGVGaWxlfSksIGJ1dCBcXGAke1NWRUxURV9DSEVDS19QQUNLQUdFX05BTUV9XFxgIGlzIG5vdCBkZWNsYXJlZCBpbiBwYWNrYWdlLmpzb24uYFxuICAgICAgICArIGAgQWRkIFxcYCR7U1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRX1cXGAgYXMgYSBkZXZEZXBlbmRlbmN5IHRvIHR5cGUtY2hlY2sgdGhlIFN2ZWx0ZSBjb2RlLmBcbiAgICApO1xuICB9XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiBTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FIH0pLCAnLS10c2NvbmZpZycsIFJlcG9QYXRocy5Uc0NvbmZpZ0pzb25dKTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgVHlwZVNjcmlwdCBjb2RlLlxuICpcbiAqIFRoZSBnZW5lcmFsIGB0c2NgIHBhc3MgcnVucyB3aXRoIGBza2lwTGliQ2hlY2s6IHRydWVgIChjb25maWd1cmVkIGluIGB0c2NvbmZpZy5qc29uYCkgc28gaXQgZG9lc1xuICogbm90IGZhaWwgb24gYnJva2VuIHVwc3RyZWFtIGAuZC50c2AgZmlsZXMgd2UgZG8gbm90IGNvbnRyb2wuIEFmdGVyd2FyZHMsIHtAbGluayBhcmVQcm9qZWN0VHlwZXNWYWxpZH1cbiAqIHJlLXJ1bnMgdGhlIHR5cGUtY2hlY2sgaW4tbWVtb3J5IHdpdGggYHNraXBMaWJDaGVjazogZmFsc2VgLCByZXBvcnRpbmcgb25seSBkaWFnbm9zdGljcyBmcm9tIHRoZVxuICogZmlsZXMgd2Ugb3duLCBzbyB0aGUgZGVjbGFyYXRpb25zIHdlIGF1dGhvciBhcmUgc3RpbGwgZnVsbHkgdmFsaWRhdGVkLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29kZSBjb21waWxlcyBzdWNjZXNzZnVsbHkuXG4gKiBAdGhyb3dzIElmIHRoZSBwcm9qZWN0J3Mgb3duIGRlY2xhcmF0aW9ucyBmYWlsIHZhbGlkYXRpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENvbXBpbGVUeXBlU2NyaXB0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICd0c2MnIH0pLCAnLS1idWlsZCcsICctLWZvcmNlJ10pO1xuXG4gIGlmICghYXJlUHJvamVjdFR5cGVzVmFsaWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB2YWxpZGF0aW9uIGZhaWxlZC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIENvcGllcyBhbGwgdGVtcGxhdGUgZmlsZXMgZnJvbSB0aGUgdGVtcGxhdGVzIGZvbGRlciB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGVcbiAqIGRpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSByZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIHRlbXBsYXRlcyBmb2xkZXIgYW5kIGNvcGllcyBlYWNoIGZpbGUgdG8gdGhlXG4gKiBjb3JyZXNwb25kaW5nIHBhdGggdW5kZXIge0BsaW5rIFJlcG9QYXRocy5EaXN0VGVtcGxhdGVzfSwgc28gY29uc3VtZXJzIGNhbiBjb3B5IHRoZVxuICogdGVtcGxhdGVzIGZyb20gYG5vZGVfbW9kdWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMvZGlzdC90ZW1wbGF0ZXNgLiBBIHRyYWlsaW5nIGAudGVtcGxhdGVgIG9uIGEgc291cmNlXG4gKiBmaWxlIG5hbWUgaXMgc3RyaXBwZWQgaW4gdGhlIGRlc3RpbmF0aW9uIChlLmcuIGBlc2xpbnQuY29uZmlnLm10cy50ZW1wbGF0ZWAgaXMgY29waWVkIGFzXG4gKiBgZXNsaW50LmNvbmZpZy5tdHNgKSwgc28gYW4gYWN0aXZlIGNvbmZpZyB0ZW1wbGF0ZSBjYW4gbGl2ZSBpbiB0aGUgcmVwbyB1bmRlciBhIG5hbWUgdGhhdCB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgdG9vbCBkb2VzIG5vdCBhdXRvLWRpc2NvdmVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiBhbGwgZmlsZXMgaGF2ZSBiZWVuIGNvcGllZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkVGVtcGxhdGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IGRpcmVudCBvZiBhd2FpdCByZWFkZGlyUG9zaXgoUmVwb1BhdGhzLlRlbXBsYXRlcywgeyByZWN1cnNpdmU6IHRydWUsIHdpdGhGaWxlVHlwZXM6IHRydWUgfSkpIHtcbiAgICBpZiAoIWRpcmVudC5pc0ZpbGUoKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aCA9IHRyaW1TdGFydCh7XG4gICAgICAkc3RyaW5nOiBqb2luKGRpcmVudC5wYXJlbnRQYXRoLCBkaXJlbnQubmFtZSksXG4gICAgICBwcmVmaXg6IGAke1JlcG9QYXRocy5UZW1wbGF0ZXN9L2BcbiAgICB9KTtcbiAgICBjb25zdCBkZXN0aW5hdGlvblBhdGggPSBwYXRoLmVuZHNXaXRoKFRFTVBMQVRFX0ZJTEVfU1VGRklYKSA/IHBhdGguc2xpY2UoMCwgLVRFTVBMQVRFX0ZJTEVfU1VGRklYLmxlbmd0aCkgOiBwYXRoO1xuICAgIGF3YWl0IGNwKGpvaW4oUmVwb1BhdGhzLlRlbXBsYXRlcywgcGF0aCksIGpvaW4oUmVwb1BhdGhzLkRpc3RUZW1wbGF0ZXMsIGRlc3RpbmF0aW9uUGF0aCkpO1xuICB9XG59XG5cbmNvbnN0IFRFTVBMQVRFX0ZJTEVfU1VGRklYID0gJy50ZW1wbGF0ZSc7XG5cbmNvbnN0IE5PREVfTU9EVUxFU19TRUdNRU5UID0gJy9ub2RlX21vZHVsZXMvJztcblxuY29uc3QgU1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRSA9ICdzdmVsdGUtY2hlY2snO1xuXG5jb25zdCBTVkVMVEVfRklMRV9QQVRURVJOUyA9IFtcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9Lyouc3ZlbHRlYCxcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9Lyouc3ZlbHRlLmpzYCxcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9Lyouc3ZlbHRlLnRzYFxuXTtcblxuLyoqXG4gKiBgbm9kZV9tb2R1bGVzYCBtdXN0IGJlIGxpc3RlZCBleHBsaWNpdGx5OiBhIHRzY29uZmlnIHRoYXQgc2V0cyBgZXhjbHVkZWAgYXQgYWxsICoqcmVwbGFjZXMqKiBUeXBlU2NyaXB0J3NcbiAqIGRlZmF1bHQgYG5vZGVfbW9kdWxlc2AgZXhjbHVzaW9uLCBzbyBpdCBjYW5ub3QgYmUgcmVsaWVkIG9uIHRvIGtlZXAgZGVwZW5kZW5jaWVzIG91dCBvZiB0aGUgZ2xvYi5cbiAqL1xuY29uc3QgU1ZFTFRFX0ZJTEVfRVhDTFVERV9QQVRURVJOUyA9IFtcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9LyR7UmVwb1BhdGhzLk5vZGVNb2R1bGVzfS8ke1JlcG9QYXRocy5BbnlQYXRofWAsXG4gIGAke1JlcG9QYXRocy5BbnlQYXRofS8ke1JlcG9QYXRocy5EaXN0fS8ke1JlcG9QYXRocy5BbnlQYXRofWBcbl07XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHNob3VsZEtlZXBQcm9qZWN0RmlsZX0uXG4gKi9cbmludGVyZmFjZSBTaG91bGRLZWVwUHJvamVjdEZpbGVQYXJhbXMge1xuICAvKipcbiAgICogQWJzb2x1dGUgcGF0aCBvZiB0aGUgZmlsZSB1bmRlciBjb25zaWRlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQWJzb2x1dGUgKGNhbm9uaWNhbCkgcGF0aCBvZiB0aGUgcHJvamVjdCByb290LlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdENhbm9uaWNhbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlLXJ1bnMgdGhlIHByb2plY3QgdHlwZS1jaGVjayBpbi1tZW1vcnkgd2l0aCBgc2tpcExpYkNoZWNrOiBmYWxzZWAsIHJlcG9ydGluZyBvbmx5IGRpYWdub3N0aWNzXG4gKiB3aG9zZSBzb3VyY2UgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0ICh1bmRlciB0aGUgcm9vdCBmb2xkZXIsIG91dHNpZGUgYG5vZGVfbW9kdWxlc2ApLlxuICpcbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBwcm9qZWN0J3Mgb3duIGZpbGVzIGhhdmUgbm8gdHlwZSBlcnJvcnMsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICogQHRocm93cyBJZiB0aGUgcm9vdCBmb2xkZXIgY2Fubm90IGJlIGZvdW5kLlxuICovXG5mdW5jdGlvbiBhcmVQcm9qZWN0VHlwZXNWYWxpZCgpOiBib29sZWFuIHtcbiAgY29uc3Qgcm9vdCA9IGdldFJvb3RGb2xkZXIoKTtcblxuICBpZiAoIXJvb3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJvb3QgZm9sZGVyJyk7XG4gIH1cblxuICBjb25zdCByb290Q2Fub25pY2FsID0gdG9DYW5vbmljYWwocm9vdCk7XG4gIGNvbnN0IHsgZmlsZU5hbWVzLCBvcHRpb25zIH0gPSBwYXJzZVRzQ29uZmlnKGpvaW4ocm9vdCwgUmVwb1BhdGhzLlRzQ29uZmlnSnNvbikpO1xuXG4gIHJldHVybiBjaGVja1Byb2plY3RUeXBlcyh7XG4gICAgb3B0aW9ucyxcbiAgICByb290TmFtZXM6IGZpbGVOYW1lcyxcbiAgICBzaG91bGRLZWVwRmlsZTogKGZpbGVOYW1lKSA9PiBzaG91bGRLZWVwUHJvamVjdEZpbGUoeyBmaWxlTmFtZSwgcm9vdENhbm9uaWNhbCB9KVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHByb2plY3QgZGVjbGFyZXMgYHN2ZWx0ZS1jaGVja2AuXG4gKlxuICogVGhlIGRlY2xhcmF0aW9uIGlzIHJlYWQgZnJvbSBgcGFja2FnZS5qc29uYCByYXRoZXIgdGhhbiBwcm9iZWQgaW4gYG5vZGVfbW9kdWxlcy8uYmluYCwgYmVjYXVzZVxuICoge0BsaW5rIHJlc29sdmVUb29sQ29tbWFuZH0gZGVsaWJlcmF0ZWx5IGZhbGxzIGJhY2sgdG8gdGhlIHBhY2thZ2UgbWFuYWdlcidzIGV4ZWMgZm9ybSBmb3IgdG9vbHMgdGhhdCBoYXZlXG4gKiBubyBiaW4gc2hpbSDigJQgdGhlIG9ubHkgd2F5IGEgbG9jYWxseSBpbnN0YWxsZWQgdG9vbCByZXNvbHZlcyB1bmRlciB5YXJuIFBuUC4gVHJlYXRpbmcgYSBtaXNzaW5nIHNoaW0gYXMgYVxuICogbWlzc2luZyB0b29sIHdvdWxkIHRoZXJlZm9yZSBicmVhayBQblAgcHJvamVjdHMuXG4gKlxuICogQHBhcmFtIHBhY2thZ2VKc29uIC0gVGhlIHByb2plY3QncyBwYXJzZWQgYHBhY2thZ2UuanNvbmAuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiBgc3ZlbHRlLWNoZWNrYCBpcyBkZWNsYXJlZCBhcyBhIHJlZ3VsYXIsIGRldiwgb3IgcGVlciBkZXBlbmRlbmN5LlxuICovXG5mdW5jdGlvbiBjaGVja1N2ZWx0ZUNoZWNrRGVjbGFyZWQocGFja2FnZUpzb246IFBhY2thZ2VKc29uKTogYm9vbGVhbiB7XG4gIHJldHVybiBbcGFja2FnZUpzb24uZGVwZW5kZW5jaWVzLCBwYWNrYWdlSnNvbi5kZXZEZXBlbmRlbmNpZXMsIHBhY2thZ2VKc29uLnBlZXJEZXBlbmRlbmNpZXNdXG4gICAgLnNvbWUoKGRlcGVuZGVuY2llcykgPT4gZGVwZW5kZW5jaWVzPy5bU1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRV0gIT09IHVuZGVmaW5lZCk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0ICh1bmRlciB0aGUgcm9vdCBmb2xkZXIsIG91dHNpZGUgYG5vZGVfbW9kdWxlc2ApLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGZpbGUgYmVsb25ncyB0byB0aGUgcHJvamVjdC5cbiAqL1xuZnVuY3Rpb24gc2hvdWxkS2VlcFByb2plY3RGaWxlKHBhcmFtczogU2hvdWxkS2VlcFByb2plY3RGaWxlUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgZmlsZU5hbWUsIHJvb3RDYW5vbmljYWwgfSA9IHBhcmFtcztcbiAgcmV0dXJuIGZpbGVOYW1lLnN0YXJ0c1dpdGgoYCR7cm9vdENhbm9uaWNhbH0vYCkgJiYgIWZpbGVOYW1lLmluY2x1ZGVzKE5PREVfTU9EVUxFU19TRUdN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
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgdG8gaGFuZGxlIHRoZSBidWlsZCBwcm9jZXNzIGZvciBzdGF0aWMgYXNzZXRzIGFuZCBjbGVhbmluZ1xuICogdGhlIGJ1aWxkIG91dHB1dCBmb2xkZXIuIEl0IGluY2x1ZGVzIGZ1bmN0aW9ucyB0byBjb3B5IHN0YXRpYyBmaWxlcyB0byB0aGUgZGlzdHJpYnV0aW9uIGZvbGRlclxuICogYW5kIHRvIHJlbW92ZSB0aGUgZXhpc3RpbmcgYnVpbGQgb3V0cHV0LlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgUGFja2FnZUpzb24sXG4gIFRzQ29uZmlnSnNvblxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyB0cmltU3RhcnQgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvc3RyaW5nJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iLFxuICBybVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHtcbiAgY2hlY2tQcm9qZWN0VHlwZXMsXG4gIHBhcnNlVHNDb25maWcsXG4gIHRvQ2Fub25pY2FsXG59IGZyb20gJy4vY2hlY2stcHJvamVjdC10eXBlcy50cyc7XG5pbXBvcnQgeyByZWFkZGlyUG9zaXggfSBmcm9tICcuL2ZzLnRzJztcbmltcG9ydCB7IHJlYWRKc29uIH0gZnJvbSAnLi9qc29uLnRzJztcbmltcG9ydCB7XG4gIG5wbVJ1bk9wdGlvbmFsLFxuICBOcG1SdW5PcHRpb25hbFJlc3VsdFxufSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKc29uIH0gZnJvbSAnLi9ucG0udHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRvb2xDb21tYW5kIH0gZnJvbSAnLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBkaXN0cmlidXRpb24gZm9sZGVyIGFuZCBpdHMgY29udGVudHMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBlbnRpcmUgZGlzdHJpYnV0aW9uIGZvbGRlciB0byBlbnN1cmUgYSBjbGVhbiBidWlsZCBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZvbGRlciBoYXMgYmVlbiByZW1vdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDbGVhbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcm0oUmVwb1BhdGhzLkRpc3QsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgY29kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6c3ZlbHRlJykgPT09IE5wbVJ1bk9wdGlvbmFsUmVzdWx0LlNraXBwZWQpIHtcbiAgICBhd2FpdCBidWlsZENvbXBpbGVTdmVsdGUoKTtcbiAgfVxuICBpZiAoYXdhaXQgbnBtUnVuT3B0aW9uYWwoJ2J1aWxkOmNvbXBpbGU6dHlwZXNjcmlwdCcpID09PSBOcG1SdW5PcHRpb25hbFJlc3VsdC5Ta2lwcGVkKSB7XG4gICAgYXdhaXQgYnVpbGRDb21waWxlVHlwZVNjcmlwdCgpO1xuICB9XG59XG5cbi8qKlxuICogQ29tcGlsZXMgdGhlIFN2ZWx0ZSBjb2RlLlxuICpcbiAqIFRoZSBwcm9qZWN0J3MgU3ZlbHRlIGZpbGVzIGFyZSBmb3VuZCBieSBnbG9iYmluZyB0aGUgU3ZlbHRlIGV4dGVuc2lvbnMgZGlyZWN0bHkuIEdsb2JiaW5nIHRoZSB0c2NvbmZpZ1xuICogYGluY2x1ZGVgIHBhdHRlcm5zIGFuZCBmaWx0ZXJpbmcgdGhhdCBsaXN0IHdvdWxkIG5ldmVyIG1hdGNoOiBgaW5jbHVkZWAgbGlzdHMgVHlwZVNjcmlwdCBnbG9ic1xuICogKGAuL3NyYy8qKlxcLyoudHNgLCDigKYpLCBzbyBubyBgLnN2ZWx0ZWAgcGF0aCBjYW4gZXZlciBhcHBlYXIgaW4gaXQgYW5kIHRoZSBjaGVjayB3b3VsZCBhbHdheXMgYmUgc2tpcHBlZC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvZGUgY29tcGlsZXMgc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBJZiB0aGUgcHJvamVjdCBoYXMgU3ZlbHRlIGZpbGVzIGJ1dCBkb2VzIG5vdCBkZWNsYXJlIGBzdmVsdGUtY2hlY2tgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRDb21waWxlU3ZlbHRlKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0c0NvbmZpZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5Uc0NvbmZpZ0pzb24gfSk7XG4gIGNvbnN0IHRzQ29uZmlnID0gYXdhaXQgcmVhZEpzb248VHNDb25maWdKc29uPih0c0NvbmZpZ1BhdGgpO1xuICBjb25zdCBzdmVsdGVGaWxlcyA9IGF3YWl0IHRvQXJyYXkoZ2xvYihTVkVMVEVfRklMRV9QQVRURVJOUywge1xuICAgIGN3ZDogcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBSZXBvUGF0aHMuQ3VycmVudEZvbGRlciB9KSxcbiAgICBleGNsdWRlOiBbLi4uU1ZFTFRFX0ZJTEVfRVhDTFVERV9QQVRURVJOUywgLi4udHNDb25maWcuZXhjbHVkZSA/PyBbXV1cbiAgfSkpO1xuXG4gIGNvbnN0IFtmaXJzdFN2ZWx0ZUZpbGVdID0gc3ZlbHRlRmlsZXM7XG5cbiAgaWYgKGZpcnN0U3ZlbHRlRmlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ2J1aWxkOmJ1aWxkQ29tcGlsZVN2ZWx0ZScpKCdObyBTdmVsdGUgZmlsZXMgZm91bmQgaW4gdGhlIHByb2plY3QsIHNraXBwaW5nIFN2ZWx0ZSBjb21waWxhdGlvbicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG5cbiAgaWYgKCFjaGVja1N2ZWx0ZUNoZWNrRGVjbGFyZWQocGFja2FnZUpzb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEZvdW5kIFN2ZWx0ZSBmaWxlKHMpIGluIHRoZSBwcm9qZWN0IChlLmcuICR7Zmlyc3RTdmVsdGVGaWxlfSksIGJ1dCBcXGAke1NWRUxURV9DSEVDS19QQUNLQUdFX05BTUV9XFxgIGlzIG5vdCBkZWNsYXJlZCBpbiBwYWNrYWdlLmpzb24uYFxuICAgICAgICArIGAgQWRkIFxcYCR7U1ZFTFRFX0NIRUNLX1BBQ0tBR0VfTkFNRX1cXGAgYXMgYSBkZXZEZXBlbmRlbmN5IHRvIHR5cGUtY2hlY2sgdGhlIFN2ZWx0ZSBjb2RlLmBcbiAgICApO1xuICB9XG5cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiBTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FIH0pLCAnLS10c2NvbmZpZycsIFJlcG9QYXRocy5Uc0NvbmZpZ0pzb25dKTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyB0aGUgVHlwZVNjcmlwdCBjb2RlLlxuICpcbiAqIFRoZSBnZW5lcmFsIGB0c2NgIHBhc3MgcnVucyB3aXRoIGBza2lwTGliQ2hlY2s6IHRydWVgIChjb25maWd1cmVkIGluIGB0c2NvbmZpZy5qc29uYCkgc28gaXQgZG9lc1xuICogbm90IGZhaWwgb24gYnJva2VuIHVwc3RyZWFtIGAuZC50c2AgZmlsZXMgd2UgZG8gbm90IGNvbnRyb2wuIEFmdGVyd2FyZHMsIHtAbGluayBhcmVQcm9qZWN0VHlwZXNWYWxpZH1cbiAqIHJlLXJ1bnMgdGhlIHR5cGUtY2hlY2sgaW4tbWVtb3J5IHdpdGggYHNraXBMaWJDaGVjazogZmFsc2VgLCByZXBvcnRpbmcgb25seSBkaWFnbm9zdGljcyBmcm9tIHRoZVxuICogZmlsZXMgd2Ugb3duLCBzbyB0aGUgZGVjbGFyYXRpb25zIHdlIGF1dGhvciBhcmUgc3RpbGwgZnVsbHkgdmFsaWRhdGVkLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29kZSBjb21waWxlcyBzdWNjZXNzZnVsbHkuXG4gKiBAdGhyb3dzIElmIHRoZSBwcm9qZWN0J3Mgb3duIGRlY2xhcmF0aW9ucyBmYWlsIHZhbGlkYXRpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZENvbXBpbGVUeXBlU2NyaXB0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICd0c2MnIH0pLCAnLS1idWlsZCcsICctLWZvcmNlJ10pO1xuXG4gIGlmICghYXJlUHJvamVjdFR5cGVzVmFsaWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB2YWxpZGF0aW9uIGZhaWxlZC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIENvcGllcyBhbGwgdGVtcGxhdGUgZmlsZXMgZnJvbSB0aGUgdGVtcGxhdGVzIGZvbGRlciB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGVcbiAqIGRpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSByZWFkcyB0aGUgY29udGVudHMgb2YgdGhlIHRlbXBsYXRlcyBmb2xkZXIgYW5kIGNvcGllcyBlYWNoIGZpbGUgdG8gdGhlXG4gKiBjb3JyZXNwb25kaW5nIHBhdGggdW5kZXIge0BsaW5rIFJlcG9QYXRocy5EaXN0VGVtcGxhdGVzfSwgc28gY29uc3VtZXJzIGNhbiBjb3B5IHRoZVxuICogdGVtcGxhdGVzIGZyb20gYG5vZGVfbW9kdWxlcy9AbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9kaXN0L3RlbXBsYXRlc2AuIEEgdHJhaWxpbmcgYC50ZW1wbGF0ZWAgb24gYSBzb3VyY2VcbiAqIGZpbGUgbmFtZSBpcyBzdHJpcHBlZCBpbiB0aGUgZGVzdGluYXRpb24gKGUuZy4gYGVzbGludC5jb25maWcubXRzLnRlbXBsYXRlYCBpcyBjb3BpZWQgYXNcbiAqIGBlc2xpbnQuY29uZmlnLm10c2ApLCBzbyBhbiBhY3RpdmUgY29uZmlnIHRlbXBsYXRlIGNhbiBsaXZlIGluIHRoZSByZXBvIHVuZGVyIGEgbmFtZSB0aGF0IHRoZVxuICogY29ycmVzcG9uZGluZyB0b29sIGRvZXMgbm90IGF1dG8tZGlzY292ZXIuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBmaWxlcyBoYXZlIGJlZW4gY29waWVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRUZW1wbGF0ZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGZvciAoY29uc3QgZGlyZW50IG9mIGF3YWl0IHJlYWRkaXJQb3NpeChSZXBvUGF0aHMuVGVtcGxhdGVzLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KSkge1xuICAgIGlmICghZGlyZW50LmlzRmlsZSgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRoID0gdHJpbVN0YXJ0KHtcbiAgICAgICRzdHJpbmc6IGpvaW4oZGlyZW50LnBhcmVudFBhdGgsIGRpcmVudC5uYW1lKSxcbiAgICAgIHByZWZpeDogYCR7UmVwb1BhdGhzLlRlbXBsYXRlc30vYFxuICAgIH0pO1xuICAgIGNvbnN0IGRlc3RpbmF0aW9uUGF0aCA9IHBhdGguZW5kc1dpdGgoVEVNUExBVEVfRklMRV9TVUZGSVgpID8gcGF0aC5zbGljZSgwLCAtVEVNUExBVEVfRklMRV9TVUZGSVgubGVuZ3RoKSA6IHBhdGg7XG4gICAgYXdhaXQgY3Aoam9pbihSZXBvUGF0aHMuVGVtcGxhdGVzLCBwYXRoKSwgam9pbihSZXBvUGF0aHMuRGlzdFRlbXBsYXRlcywgZGVzdGluYXRpb25QYXRoKSk7XG4gIH1cbn1cblxuY29uc3QgVEVNUExBVEVfRklMRV9TVUZGSVggPSAnLnRlbXBsYXRlJztcblxuY29uc3QgTk9ERV9NT0RVTEVTX1NFR01FTlQgPSAnL25vZGVfbW9kdWxlcy8nO1xuXG5jb25zdCBTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FID0gJ3N2ZWx0ZS1jaGVjayc7XG5cbmNvbnN0IFNWRUxURV9GSUxFX1BBVFRFUk5TID0gW1xuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vKi5zdmVsdGVgLFxuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vKi5zdmVsdGUuanNgLFxuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vKi5zdmVsdGUudHNgXG5dO1xuXG4vKipcbiAqIGBub2RlX21vZHVsZXNgIG11c3QgYmUgbGlzdGVkIGV4cGxpY2l0bHk6IGEgdHNjb25maWcgdGhhdCBzZXRzIGBleGNsdWRlYCBhdCBhbGwgKipyZXBsYWNlcyoqIFR5cGVTY3JpcHQnc1xuICogZGVmYXVsdCBgbm9kZV9tb2R1bGVzYCBleGNsdXNpb24sIHNvIGl0IGNhbm5vdCBiZSByZWxpZWQgb24gdG8ga2VlcCBkZXBlbmRlbmNpZXMgb3V0IG9mIHRoZSBnbG9iLlxuICovXG5jb25zdCBTVkVMVEVfRklMRV9FWENMVURFX1BBVFRFUk5TID0gW1xuICBgJHtSZXBvUGF0aHMuQW55UGF0aH0vJHtSZXBvUGF0aHMuTm9kZU1vZHVsZXN9LyR7UmVwb1BhdGhzLkFueVBhdGh9YCxcbiAgYCR7UmVwb1BhdGhzLkFueVBhdGh9LyR7UmVwb1BhdGhzLkRpc3R9LyR7UmVwb1BhdGhzLkFueVBhdGh9YFxuXTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2hvdWxkS2VlcFByb2plY3RGaWxlfS5cbiAqL1xuaW50ZXJmYWNlIFNob3VsZEtlZXBQcm9qZWN0RmlsZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBwYXRoIG9mIHRoZSBmaWxlIHVuZGVyIGNvbnNpZGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBYnNvbHV0ZSAoY2Fub25pY2FsKSBwYXRoIG9mIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSByb290Q2Fub25pY2FsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmUtcnVucyB0aGUgcHJvamVjdCB0eXBlLWNoZWNrIGluLW1lbW9yeSB3aXRoIGBza2lwTGliQ2hlY2s6IGZhbHNlYCwgcmVwb3J0aW5nIG9ubHkgZGlhZ25vc3RpY3NcbiAqIHdob3NlIHNvdXJjZSBmaWxlIGJlbG9uZ3MgdG8gdGhlIHByb2plY3QgKHVuZGVyIHRoZSByb290IGZvbGRlciwgb3V0c2lkZSBgbm9kZV9tb2R1bGVzYCkuXG4gKlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIHByb2plY3QncyBvd24gZmlsZXMgaGF2ZSBubyB0eXBlIGVycm9ycywgYGZhbHNlYCBvdGhlcndpc2UuXG4gKiBAdGhyb3dzIElmIHRoZSByb290IGZvbGRlciBjYW5ub3QgYmUgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIGFyZVByb2plY3RUeXBlc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICBjb25zdCByb290ID0gZ2V0Um9vdEZvbGRlcigpO1xuXG4gIGlmICghcm9vdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgcm9vdCBmb2xkZXInKTtcbiAgfVxuXG4gIGNvbnN0IHJvb3RDYW5vbmljYWwgPSB0b0Nhbm9uaWNhbChyb290KTtcbiAgY29uc3QgeyBmaWxlTmFtZXMsIG9wdGlvbnMgfSA9IHBhcnNlVHNDb25maWcoam9pbihyb290LCBSZXBvUGF0aHMuVHNDb25maWdKc29uKSk7XG5cbiAgcmV0dXJuIGNoZWNrUHJvamVjdFR5cGVzKHtcbiAgICBvcHRpb25zLFxuICAgIHJvb3ROYW1lczogZmlsZU5hbWVzLFxuICAgIHNob3VsZEtlZXBGaWxlOiAoZmlsZU5hbWUpID0+IHNob3VsZEtlZXBQcm9qZWN0RmlsZSh7IGZpbGVOYW1lLCByb290Q2Fub25pY2FsIH0pXG4gIH0pO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgcHJvamVjdCBkZWNsYXJlcyBgc3ZlbHRlLWNoZWNrYC5cbiAqXG4gKiBUaGUgZGVjbGFyYXRpb24gaXMgcmVhZCBmcm9tIGBwYWNrYWdlLmpzb25gIHJhdGhlciB0aGFuIHByb2JlZCBpbiBgbm9kZV9tb2R1bGVzLy5iaW5gLCBiZWNhdXNlXG4gKiB7QGxpbmsgcmVzb2x2ZVRvb2xDb21tYW5kfSBkZWxpYmVyYXRlbHkgZmFsbHMgYmFjayB0byB0aGUgcGFja2FnZSBtYW5hZ2VyJ3MgZXhlYyBmb3JtIGZvciB0b29scyB0aGF0IGhhdmVcbiAqIG5vIGJpbiBzaGltIOKAlCB0aGUgb25seSB3YXkgYSBsb2NhbGx5IGluc3RhbGxlZCB0b29sIHJlc29sdmVzIHVuZGVyIHlhcm4gUG5QLiBUcmVhdGluZyBhIG1pc3Npbmcgc2hpbSBhcyBhXG4gKiBtaXNzaW5nIHRvb2wgd291bGQgdGhlcmVmb3JlIGJyZWFrIFBuUCBwcm9qZWN0cy5cbiAqXG4gKiBAcGFyYW0gcGFja2FnZUpzb24gLSBUaGUgcHJvamVjdCdzIHBhcnNlZCBgcGFja2FnZS5qc29uYC5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGBzdmVsdGUtY2hlY2tgIGlzIGRlY2xhcmVkIGFzIGEgcmVndWxhciwgZGV2LCBvciBwZWVyIGRlcGVuZGVuY3kuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrU3ZlbHRlQ2hlY2tEZWNsYXJlZChwYWNrYWdlSnNvbjogUGFja2FnZUpzb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIFtwYWNrYWdlSnNvbi5kZXBlbmRlbmNpZXMsIHBhY2thZ2VKc29uLmRldkRlcGVuZGVuY2llcywgcGFja2FnZUpzb24ucGVlckRlcGVuZGVuY2llc11cbiAgICAuc29tZSgoZGVwZW5kZW5jaWVzKSA9PiBkZXBlbmRlbmNpZXM/LltTVkVMVEVfQ0hFQ0tfUEFDS0FHRV9OQU1FXSAhPT0gdW5kZWZpbmVkKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBmaWxlIGJlbG9uZ3MgdG8gdGhlIHByb2plY3QgKHVuZGVyIHRoZSByb290IGZvbGRlciwgb3V0c2lkZSBgbm9kZV9tb2R1bGVzYCkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgZmlsZSBiZWxvbmdzIHRvIHRoZSBwcm9qZWN0LlxuICovXG5mdW5jdGlvbiBzaG91bGRLZWVwUHJvamVjdEZpbGUocGFyYW1zOiBTaG91bGRLZWVwUHJvamVjdEZpbGVQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyBmaWxlTmFtZSwgcm9vdENhbm9uaWNhbCB9ID0gcGFyYW1zO1xuICByZXR1cm4gZmlsZU5hbWUuc3RhcnRzV2l0aChgJHtyb290Q2Fub25pY2FsfS9gKSAmJiAhZmlsZU5hbWUuaW5jbHVkZXMoTk9E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
|
package/dist/lib/cjs/build.d.cts
CHANGED
|
@@ -49,7 +49,7 @@ export declare function buildCompileTypeScript(): Promise<void>;
|
|
|
49
49
|
*
|
|
50
50
|
* This function recursively reads the contents of the templates folder and copies each file to the
|
|
51
51
|
* corresponding path under {@link RepoPaths.DistTemplates}, so consumers can copy the
|
|
52
|
-
* templates from `node_modules/
|
|
52
|
+
* templates from `node_modules/@mnaoumov/typescript-dev-toolkit/dist/templates`. A trailing `.template` on a source
|
|
53
53
|
* file name is stripped in the destination (e.g. `eslint.config.mts.template` is copied as
|
|
54
54
|
* `eslint.config.mts`), so an active config template can live in the repo under a name that the
|
|
55
55
|
* corresponding tool does not auto-discover.
|
|
@@ -56,16 +56,29 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
56
56
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
57
57
|
var commitlint_config_exports = {};
|
|
58
58
|
__export(commitlint_config_exports, {
|
|
59
|
+
commitlintConfig: () => commitlintConfig,
|
|
59
60
|
obsidianDevUtilsConfig: () => obsidianDevUtilsConfig
|
|
60
61
|
});
|
|
61
62
|
module.exports = __toCommonJS(commitlint_config_exports);
|
|
62
63
|
var import_object_utils = require('@mnaoumov/typescript-lib/object-utils');
|
|
64
|
+
var import_node_module = require('node:module');
|
|
63
65
|
var import_commitlint_forbidden_patterns = require('./commitlint-forbidden-patterns.cjs');
|
|
64
66
|
var import_commitlint_spellcheck_header = require('./commitlint-spellcheck-header.cjs');
|
|
67
|
+
var __import_meta_url = globalThis["import.meta.url"] ?? (function getCjsImportMetaUrl() {
|
|
68
|
+
if (typeof __filename === "string") {
|
|
69
|
+
const localRequire = require;
|
|
70
|
+
const url = localRequire("node:url");
|
|
71
|
+
if (typeof url.pathToFileURL === "function") {
|
|
72
|
+
return url.pathToFileURL(__filename).href;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return globalThis.location?.href ?? "";
|
|
76
|
+
})();
|
|
65
77
|
const ERROR_SEVERITY_LEVEL = 2;
|
|
66
78
|
const ERROR_SEVERITY = (0, import_object_utils.castTo)(ERROR_SEVERITY_LEVEL);
|
|
67
|
-
const
|
|
68
|
-
|
|
79
|
+
const CONFIG_CONVENTIONAL_PATH = (0, import_node_module.createRequire)(__import_meta_url).resolve("@commitlint/config-conventional");
|
|
80
|
+
const commitlintConfig = {
|
|
81
|
+
extends: [CONFIG_CONVENTIONAL_PATH],
|
|
69
82
|
// ONE plugin object, never two: `@commitlint/load` stores every inline plugin under the same `local` key, so a
|
|
70
83
|
// second object silently replaces the first and its rule then fails as "Found rules without implementation".
|
|
71
84
|
plugins: [
|
|
@@ -81,8 +94,10 @@ const obsidianDevUtilsConfig = {
|
|
|
81
94
|
[import_commitlint_spellcheck_header.SPELLCHECK_HEADER_RULE_NAME]: [ERROR_SEVERITY, "always"]
|
|
82
95
|
}
|
|
83
96
|
};
|
|
97
|
+
const obsidianDevUtilsConfig = commitlintConfig;
|
|
84
98
|
// Annotate the CommonJS export names for ESM import in node:
|
|
85
99
|
0 && (module.exports = {
|
|
100
|
+
commitlintConfig,
|
|
86
101
|
obsidianDevUtilsConfig
|
|
87
102
|
});
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21taXRsaW50LWNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19pbXBvcnRfbWV0YV91cmwgPSBnbG9iYWxUaGlzWydpbXBvcnQubWV0YS51cmwnXSA/PyAoZnVuY3Rpb24gZ2V0Q2pzSW1wb3J0TWV0YVVybCgpIHtcbiAgaWYgKHR5cGVvZiBfX2ZpbGVuYW1lID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGxvY2FsUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpO1xuICAgIGlmICh0eXBlb2YgdXJsLnBhdGhUb0ZpbGVVUkwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB1cmwucGF0aFRvRmlsZVVSTChfX2ZpbGVuYW1lKS5ocmVmO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGxiYWNrIHRvIHRoZSBwYWdlIFVSTCwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBlbnZpcm9ubWVudCBpcyB1bmtub3duLlxuICByZXR1cm4gZ2xvYmFsVGhpcy5sb2NhdGlvbj8uaHJlZiA/PyAnJztcbn0pKCk7XG4vKipcbiAqIEBmaWxlXG4gKlxuICogU2hhcmVkIGNvbW1pdGxpbnQgY29uZmlndXJhdGlvbiBmb3IgQ29udmVudGlvbmFsIENvbW1pdHMuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIGNvbW1pdGxpbnQgY29uZmlndXJhdGlvbjsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyBjb21taXRsaW50LCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBSdWxlQ29uZmlnU2V2ZXJpdHksXG4gIFVzZXJDb25maWdcbn0gZnJvbSAnQGNvbW1pdGxpbnQvdHlwZXMnO1xuXG5pbXBvcnQgeyBjYXN0VG8gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5cbmltcG9ydCB7XG4gIGZvcmJpZGRlblBhdHRlcm5zUGx1Z2luLFxuICBOT19GT1JCSURERU5fUEFUVEVSTlNfUlVMRV9OQU1FXG59IGZyb20gJy4vY29tbWl0bGludC1mb3JiaWRkZW4tcGF0dGVybnMudHMnO1xuaW1wb3J0IHtcbiAgU1BFTExDSEVDS19IRUFERVJfUlVMRV9OQU1FLFxuICBzcGVsbGNoZWNrSGVhZGVyUGx1Z2luXG59IGZyb20gJy4vY29tbWl0bGludC1zcGVsbGNoZWNrLWhlYWRlci50cyc7XG5cbi8qXG4gKiBgUnVsZUNvbmZpZ1NldmVyaXR5LkVycm9yYC4gVGhlIGVudW0gbGl2ZXMgaW4gYSBwYWNrYWdlIHRoaXMgbGlicmFyeSBvbmx5IGhhcyBhcyBhIGRldkRlcGVuZGVuY3ksIHNvIGl0cyB2YWx1ZSBjYW5ub3QgYmUgaW1wb3J0ZWQgYXQgcnVudGltZS5cbiAqL1xuY29uc3QgRVJST1JfU0VWRVJJVFlfTEVWRUwgPSAyO1xuY29uc3QgRVJST1JfU0VWRVJJVFkgPSBjYXN0VG88UnVsZUNvbmZpZ1NldmVyaXR5PihFUlJPUl9TRVZFUklUWV9MRVZFTCk7XG5cbi8qKlxuICogVGhlIGFic29sdXRlIHBhdGggb2YgYEBjb21taXRsaW50L2NvbmZpZy1jb252ZW50aW9uYWxgJ3MgZW50cnksIHJlc29sdmVkIGZyb20gdGhpcyBtb2R1bGUuIENvbW1pdGxpbnQgcmVzb2x2ZXMgYVxuICogYmFyZSBgZXh0ZW5kc2AgbmFtZSBmcm9tIHRoZSBjb25zdW1lcidzIHdvcmtpbmcgZGlyZWN0b3J5LCB3aGljaCBmaW5kcyB0aGlzIHBhY2thZ2UncyBvd24gZGVwZW5kZW5jeSBvbmx5IHdoZW4gdGhlXG4gKiBwYWNrYWdlIG1hbmFnZXIgaGFwcGVuZWQgdG8gaG9pc3QgaXQ7IGFuIGFic29sdXRlIHBhdGggZmluZHMgaXQgd2hlcmV2ZXIgaXQgd2FzIGluc3RhbGxlZC5cbiAqL1xuY29uc3QgQ09ORklHX0NPTlZFTlRJT05BTF9QQVRIID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpLnJlc29sdmUoJ0Bjb21taXRsaW50L2NvbmZpZy1jb252ZW50aW9uYWwnKTtcblxuLyoqXG4gKiBDb21taXRsaW50IGNvbmZpZ3VyYXRpb24gZXh0ZW5kaW5nIGBAY29tbWl0bGludC9jb25maWctY29udmVudGlvbmFsYCwgcGx1cyBhIHJ1bGUgcmVmdXNpbmcgYSBtZXNzYWdlIHdob3NlXG4gKiBoZWFkZXIsIGJvZHkgb3IgZm9vdGVyIG1hdGNoZXMgdGhlIHVucHVibGlzaGVkIGZvcmJpZGRlbi1wYXR0ZXJucyBsaXN0IChhIG5vLW9wIHdoZW4gbm9uZSBpcyBjb25maWd1cmVkKSwgYW5kXG4gKiBhIHJ1bGUgc3BlbGxjaGVja2luZyB0aGUgaGVhZGVyIHRoZSB3YXkgdGhlIHJlbGVhc2Ugc3BlbGxjaGVja3MgdGhlIGNoYW5nZWxvZyBidWxsZXQgaXQgYmVjb21lcyAoYSBuby1vcCBpbiBhXG4gKiBwcm9qZWN0IHdpdGggbm8gYHNwZWxsY2hlY2tgIHNjcmlwdCkuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21taXRsaW50Q29uZmlnOiBVc2VyQ29uZmlnID0ge1xuICBleHRlbmRzOiBbQ09ORklHX0NPTlZFTlRJT05BTF9QQVRIXSxcbiAgLy8gT05FIHBsdWdpbiBvYmplY3QsIG5ldmVyIHR3bzogYEBjb21taXRsaW50L2xvYWRgIHN0b3JlcyBldmVyeSBpbmxpbmUgcGx1Z2luIHVuZGVyIHRoZSBzYW1lIGBsb2NhbGAga2V5LCBzbyBhXG4gIC8vIHNlY29uZCBvYmplY3Qgc2lsZW50bHkgcmVwbGFjZXMgdGhlIGZpcnN0IGFuZCBpdHMgcnVsZSB0aGVuIGZhaWxzIGFzIFwiRm91bmQgcnVsZXMgd2l0aG91dCBpbXBsZW1lbnRhdGlvblwiLlxuICBwbHVnaW5zOiBbXG4gICAge1xuICAgICAgcnVsZXM6IHtcbiAgICAgICAgLi4uZm9yYmlkZGVuUGF0dGVybnNQbHVnaW4ucnVsZXMsXG4gICAgICAgIC4uLnNwZWxsY2hlY2tIZWFkZXJQbHVnaW4ucnVsZXNcbiAgICAgIH1cbiAgICB9XG4gIF0sXG4gIHJ1bGVzOiB7XG4gICAgW05PX0ZPUkJJRERFTl9QQVRURVJOU19SVUxFX05BTUVdOiBbRVJST1JfU0VWRVJJVFksICdhbHdheXMnXSxcbiAgICBbU1BFTExDSEVDS19IRUFERVJfUlVMRV9OQU1FXTogW0VSUk9SX1NFVkVSSVRZLCAnYWx3YXlzJ11cbiAgfVxufTtcblxuLyoqXG4gKiBUaGUgcHJldmlvdXMgbmFtZSBvZiB7QGxpbmsgY29tbWl0bGludENvbmZpZ30uXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBjb21taXRsaW50Q29uZmlnfS4gVGhpcyBhbGlhcyBpcyByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yLlxuICovXG5leHBvcnQgY29uc3Qgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZzogVXNlckNvbmZpZyA9IGNvbW1pdGxpbnRDb25maWc7XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBeUJBLDBCQUF1QjtBQUN2Qix5QkFBOEI7QUFFOUIsMkNBR087QUFDUCwwQ0FHTztBQW5DUCxJQUFJLG9CQUFvQixXQUFXLGlCQUFpQixNQUFNLFNBQVMsc0JBQXNCO0FBQ3ZGLE1BQUksT0FBTyxlQUFlLFVBQVU7QUFDbEMsVUFBTSxlQUFlO0FBQ3JCLFVBQU0sTUFBTSxhQUFhLFVBQVU7QUFDbkMsUUFBSSxPQUFPLElBQUksa0JBQWtCLFlBQVk7QUFDM0MsYUFBTyxJQUFJLGNBQWMsVUFBVSxFQUFFO0FBQUEsSUFDdkM7QUFBQSxFQUNGO0FBR0EsU0FBTyxXQUFXLFVBQVUsUUFBUTtBQUN0QyxHQUFHO0FBNkJILE1BQU0sdUJBQXVCO0FBQzdCLE1BQU0scUJBQWlCLDRCQUEyQixvQkFBb0I7QUFPdEUsTUFBTSwrQkFBMkIsa0NBQWMsaUJBQWUsRUFBRSxRQUFRLGlDQUFpQztBQVFsRyxNQUFNLG1CQUErQjtBQUFBLEVBQzFDLFNBQVMsQ0FBQyx3QkFBd0I7QUFBQTtBQUFBO0FBQUEsRUFHbEMsU0FBUztBQUFBLElBQ1A7QUFBQSxNQUNFLE9BQU87QUFBQSxRQUNMLEdBQUcsNkRBQXdCO0FBQUEsUUFDM0IsR0FBRywyREFBdUI7QUFBQSxNQUM1QjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDTCxDQUFDLG9FQUErQixHQUFHLENBQUMsZ0JBQWdCLFFBQVE7QUFBQSxJQUM1RCxDQUFDLCtEQUEyQixHQUFHLENBQUMsZ0JBQWdCLFFBQVE7QUFBQSxFQUMxRDtBQUNGO0FBT08sTUFBTSx5QkFBcUM7IiwibmFtZXMiOltdfQ==
|