obsidian-dev-utils 51.0.1 → 51.1.6
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/CHANGELOG.md +30 -0
- package/dist/lib/cjs/async.cjs +2 -2
- package/dist/lib/cjs/blob.cjs +2 -2
- package/dist/lib/cjs/debug.cjs +7 -8
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/object-utils.cjs +23 -23
- package/dist/lib/cjs/obsidian/app.cjs +4 -3
- package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +3 -2
- package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +1 -1
- package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +2 -2
- package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +1 -1
- package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.d.cts +3 -1
- package/dist/lib/cjs/obsidian/dataview-link.cjs +1 -1
- package/dist/lib/cjs/obsidian/dataview-link.d.cts +1 -1
- package/dist/lib/cjs/obsidian/file-change.cjs +1 -1
- package/dist/lib/cjs/obsidian/file-system.cjs +2 -2
- package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.cjs +1 -1
- package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.d.cts +12 -6
- package/dist/lib/cjs/obsidian/index.cjs +4 -1
- package/dist/lib/cjs/obsidian/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +143 -0
- package/dist/lib/cjs/obsidian/is-in-obsidian.d.cts +11 -0
- package/dist/lib/cjs/obsidian/link.cjs +37 -37
- package/dist/lib/cjs/obsidian/markdown.cjs +1 -1
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -2
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +1 -1
- package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +4 -5
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.cjs +2 -2
- package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +2 -2
- package/dist/lib/cjs/obsidian/resource-url.cjs +3 -2
- package/dist/lib/cjs/obsidian/vault.cjs +2 -2
- package/dist/lib/cjs/reg-exp.cjs +5 -6
- package/dist/lib/cjs/script-utils/build.cjs +5 -5
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/changeExtensionPlugin.cjs +3 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.cjs +12 -11
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +4 -4
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fixSourceMapsPlugin.cjs +6 -5
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +15 -12
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocessPlugin.cjs +3 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/renameCssPlugin.cjs +5 -4
- package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +1 -1
- package/dist/lib/cjs/script-utils/cli-utils.cjs +14 -4
- package/dist/lib/cjs/script-utils/code-generator.cjs +3 -3
- package/dist/lib/cjs/script-utils/commitlint-config.cjs +134 -0
- package/dist/lib/cjs/script-utils/commitlint-config.d.cts +10 -0
- package/dist/lib/cjs/script-utils/exec.cjs +99 -10
- package/dist/lib/cjs/script-utils/exec.d.cts +35 -6
- package/dist/lib/cjs/script-utils/formatters/dprint.cjs +8 -6
- package/dist/lib/cjs/script-utils/formatters/dprint.d.cts +15 -2
- package/dist/lib/cjs/script-utils/fs.cjs +8 -11
- package/dist/lib/cjs/script-utils/fs.d.cts +1 -1
- package/dist/lib/cjs/script-utils/index.cjs +7 -4
- package/dist/lib/cjs/script-utils/index.d.cts +2 -1
- package/dist/lib/cjs/script-utils/json.cjs +9 -8
- package/dist/lib/cjs/script-utils/linters/cspell.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/cspell.d.cts +14 -1
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +32 -20
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +142 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +1 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.cjs +174 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.d.cts +12 -0
- package/dist/lib/cjs/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +4 -2
- package/dist/lib/cjs/script-utils/linters/eslint.cjs +9 -6
- package/dist/lib/cjs/script-utils/linters/eslint.d.cts +15 -2
- package/dist/lib/cjs/script-utils/linters/index.cjs +4 -1
- package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
- package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +13 -10
- package/dist/lib/cjs/script-utils/linters/markdownlint.d.cts +15 -2
- package/dist/lib/cjs/script-utils/nano-staged-config.cjs +143 -0
- package/dist/lib/cjs/script-utils/nano-staged-config.d.cts +14 -0
- package/dist/lib/cjs/script-utils/npm-publish.cjs +16 -5
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +2 -1
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +2 -0
- package/dist/lib/cjs/script-utils/root.cjs +3 -3
- package/dist/lib/cjs/script-utils/root.d.cts +3 -7
- package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +6 -3
- package/dist/lib/cjs/script-utils/test-runners/vitest.d.cts +12 -1
- package/dist/lib/cjs/script-utils/version.cjs +22 -31
- package/dist/lib/cjs/string.cjs +4 -13
- package/dist/lib/cjs/string.d.cts +2 -2
- package/dist/lib/cjs/type-guards.cjs +8 -1
- package/dist/lib/cjs/type-guards.d.cts +11 -1
- package/dist/lib/esm/async.mjs +6 -3
- package/dist/lib/esm/blob.mjs +2 -2
- package/dist/lib/esm/debug.mjs +5 -6
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/object-utils.mjs +24 -23
- package/dist/lib/esm/obsidian/app.mjs +4 -3
- package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +3 -2
- package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +1 -1
- package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +2 -2
- package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.d.mts +3 -1
- package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +1 -1
- package/dist/lib/esm/obsidian/dataview-link.d.mts +1 -1
- package/dist/lib/esm/obsidian/dataview-link.mjs +1 -1
- package/dist/lib/esm/obsidian/file-change.mjs +1 -1
- package/dist/lib/esm/obsidian/file-system.mjs +3 -2
- package/dist/lib/esm/obsidian/i18n/custom-type-options-base.d.mts +12 -6
- package/dist/lib/esm/obsidian/i18n/custom-type-options-base.mjs +1 -1
- package/dist/lib/esm/obsidian/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/index.mjs +3 -1
- package/dist/lib/esm/obsidian/is-in-obsidian.d.mts +11 -0
- package/dist/lib/esm/obsidian/is-in-obsidian.mjs +39 -0
- package/dist/lib/esm/obsidian/link.mjs +38 -41
- package/dist/lib/esm/obsidian/markdown.mjs +1 -1
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +1 -1
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -2
- package/dist/lib/esm/obsidian/plugin/path-settings.mjs +4 -5
- package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.mjs +3 -2
- package/dist/lib/esm/obsidian/rename-delete-handler.mjs +6 -3
- package/dist/lib/esm/obsidian/resource-url.mjs +3 -2
- package/dist/lib/esm/obsidian/vault.mjs +3 -2
- package/dist/lib/esm/reg-exp.mjs +5 -6
- package/dist/lib/esm/script-utils/build.mjs +6 -6
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/changeExtensionPlugin.mjs +2 -2
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.mjs +8 -8
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +5 -5
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fixSourceMapsPlugin.mjs +5 -5
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +10 -11
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocessPlugin.mjs +2 -2
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/renameCssPlugin.mjs +3 -5
- package/dist/lib/esm/script-utils/bundlers/esbuild.mjs +1 -1
- package/dist/lib/esm/script-utils/cli-utils.mjs +2 -2
- package/dist/lib/esm/script-utils/code-generator.mjs +2 -2
- package/dist/lib/esm/script-utils/commitlint-config.d.mts +10 -0
- package/dist/lib/esm/script-utils/commitlint-config.mjs +28 -0
- package/dist/lib/esm/script-utils/exec.d.mts +35 -6
- package/dist/lib/esm/script-utils/exec.mjs +84 -8
- package/dist/lib/esm/script-utils/formatters/dprint.d.mts +15 -2
- package/dist/lib/esm/script-utils/formatters/dprint.mjs +6 -4
- package/dist/lib/esm/script-utils/fs.d.mts +1 -1
- package/dist/lib/esm/script-utils/fs.mjs +5 -8
- package/dist/lib/esm/script-utils/index.d.mts +2 -1
- package/dist/lib/esm/script-utils/index.mjs +5 -3
- package/dist/lib/esm/script-utils/json.mjs +7 -5
- package/dist/lib/esm/script-utils/linters/cspell.d.mts +14 -1
- package/dist/lib/esm/script-utils/linters/cspell.mjs +5 -3
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +32 -20
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +1 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +26 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.d.mts +12 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.mjs +68 -0
- package/dist/lib/esm/script-utils/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +4 -2
- package/dist/lib/esm/script-utils/linters/eslint.d.mts +15 -2
- package/dist/lib/esm/script-utils/linters/eslint.mjs +7 -7
- package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
- package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/markdownlint.d.mts +15 -2
- package/dist/lib/esm/script-utils/linters/markdownlint.mjs +13 -11
- package/dist/lib/esm/script-utils/nano-staged-config.d.mts +14 -0
- package/dist/lib/esm/script-utils/nano-staged-config.mjs +37 -0
- package/dist/lib/esm/script-utils/npm-publish.mjs +3 -6
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +2 -0
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +2 -1
- package/dist/lib/esm/script-utils/root.d.mts +3 -7
- package/dist/lib/esm/script-utils/root.mjs +2 -2
- package/dist/lib/esm/script-utils/test-runners/vitest.d.mts +12 -1
- package/dist/lib/esm/script-utils/test-runners/vitest.mjs +6 -3
- package/dist/lib/esm/script-utils/version.mjs +16 -27
- package/dist/lib/esm/string.d.mts +2 -2
- package/dist/lib/esm/string.mjs +7 -13
- package/dist/lib/esm/type-guards.d.mts +11 -1
- package/dist/lib/esm/type-guards.mjs +7 -1
- package/dist/scripts/build/build-clean.ts +4 -0
- package/dist/scripts/build/build-compile-svelte.ts +4 -0
- package/dist/scripts/build/build-compile-typescript.ts +4 -0
- package/dist/scripts/build/build-compile.ts +4 -0
- package/dist/scripts/build/build-static.ts +4 -0
- package/dist/scripts/bundlers/esbuild/build.ts +4 -0
- package/dist/scripts/bundlers/esbuild/dev.ts +4 -0
- package/dist/scripts/formatters/dprint/format-check.ts +8 -0
- package/dist/scripts/formatters/dprint/format.ts +8 -0
- package/dist/scripts/linters/cspell/spellcheck.ts +8 -0
- package/dist/scripts/linters/eslint/lint-fix.ts +8 -0
- package/dist/scripts/linters/eslint/lint.ts +8 -0
- package/dist/scripts/linters/markdownlint/lint-md-fix.ts +8 -0
- package/dist/scripts/linters/markdownlint/lint-md.ts +8 -0
- package/dist/scripts/test-runners/vitest/test-coverage.ts +4 -0
- package/dist/scripts/test-runners/vitest/test-watch.ts +4 -0
- package/dist/scripts/test-runners/vitest/test.ts +4 -0
- package/dist/scripts/version/version.ts +7 -0
- package/obsidian/is-in-obsidian/package.json +6 -0
- package/package.json +30 -4
- package/script-utils/commitlint-config/package.json +6 -0
- package/script-utils/linters/eslint-rules/index/package.json +6 -0
- package/script-utils/linters/eslint-rules/no-used-underscore-params/package.json +6 -0
- package/script-utils/linters/eslint-rules/package.json +6 -0
- package/script-utils/nano-staged-config/package.json +6 -0
- package/dist/lib/cjs/script-utils/linters/eslint-types/@types/@guardian__eslint-plugin-tsdoc-required.d.cts +0 -14
- package/dist/lib/cjs/script-utils/node-modules.cjs +0 -207
- package/dist/lib/cjs/script-utils/node-modules.d.cts +0 -17
- package/dist/lib/esm/script-utils/linters/eslint-types/@types/@guardian__eslint-plugin-tsdoc-required.d.mts +0 -14
- package/dist/lib/esm/script-utils/node-modules.d.mts +0 -17
- package/dist/lib/esm/script-utils/node-modules.mjs +0 -92
- package/dist/scripts/default/build-clean.ts +0 -5
- package/dist/scripts/default/build-compile-svelte.ts +0 -5
- package/dist/scripts/default/build-compile-typescript.ts +0 -5
- package/dist/scripts/default/build-compile.ts +0 -5
- package/dist/scripts/default/build-static.ts +0 -5
- package/dist/scripts/default/build.ts +0 -9
- package/dist/scripts/default/dev.ts +0 -10
- package/dist/scripts/default/format-check.ts +0 -5
- package/dist/scripts/default/format.ts +0 -5
- package/dist/scripts/default/lint-fix.ts +0 -5
- package/dist/scripts/default/lint.ts +0 -5
- package/dist/scripts/default/publish.ts +0 -5
- package/dist/scripts/default/spellcheck.ts +0 -5
- package/dist/scripts/default/version.ts +0 -5
- package/dist/scripts/examples/build.customPlugin.ts +0 -38
- package/dist/scripts/examples/build.svelteConditions.ts +0 -18
- package/dist/scripts/examples/eslint.config.extend.mts +0 -14
- package/dist/scripts/examples/eslint.config.no-dev-utils.mts +0 -15
- package/dist/scripts/examples/format.prettier.ts +0 -25
- package/script-utils/linters/eslint-types/@types/@guardian__eslint-plugin-tsdoc-required/package.json +0 -4
- package/script-utils/node-modules/package.json +0 -6
|
@@ -3,9 +3,22 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Lint markdown documentation using `markdownlint-cli2` and `linkinator`.
|
|
5
5
|
*/
|
|
6
|
+
/**
|
|
7
|
+
* Parameters for the {@link lint} function.
|
|
8
|
+
*/
|
|
9
|
+
export interface LintParams {
|
|
10
|
+
/**
|
|
11
|
+
* Optional file paths to lint. If omitted, lints the entire project.
|
|
12
|
+
*/
|
|
13
|
+
paths?: string[] | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Whether to fix linting issues automatically.
|
|
16
|
+
*/
|
|
17
|
+
shouldFix?: boolean | undefined;
|
|
18
|
+
}
|
|
6
19
|
/**
|
|
7
20
|
* Lint markdown documentation using `markdownlint-cli2` and `linkinator`.
|
|
8
21
|
*
|
|
9
|
-
* @param
|
|
22
|
+
* @param params - The {@link LintParams}.
|
|
10
23
|
*/
|
|
11
|
-
export declare function lint(
|
|
24
|
+
export declare function lint(params?: LintParams): Promise<void>;
|
|
@@ -19,6 +19,11 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
19
19
|
globalThis.process = browserProcess;
|
|
20
20
|
})();
|
|
21
21
|
|
|
22
|
+
import { existsSync } from "node:fs";
|
|
23
|
+
import {
|
|
24
|
+
cp,
|
|
25
|
+
glob
|
|
26
|
+
} from "node:fs/promises";
|
|
22
27
|
import { toArray } from "../../async.mjs";
|
|
23
28
|
import { getLibDebugger } from "../../debug.mjs";
|
|
24
29
|
import { ObsidianPluginRepoPaths } from "../../obsidian/plugin/obsidian-plugin-repo-paths.mjs";
|
|
@@ -27,18 +32,14 @@ import {
|
|
|
27
32
|
join
|
|
28
33
|
} from "../../path.mjs";
|
|
29
34
|
import { assertNonNullable } from "../../type-guards.mjs";
|
|
30
|
-
import {
|
|
31
|
-
cp,
|
|
32
|
-
existsSync,
|
|
33
|
-
glob
|
|
34
|
-
} from "../node-modules.mjs";
|
|
35
35
|
import { ObsidianDevUtilsRepoPaths } from "../obsidian-dev-utils-repo-paths.mjs";
|
|
36
36
|
import {
|
|
37
37
|
execFromRoot,
|
|
38
38
|
getRootFolder,
|
|
39
39
|
resolvePathFromRootSafe
|
|
40
40
|
} from "../root.mjs";
|
|
41
|
-
async function lint(
|
|
41
|
+
async function lint(params) {
|
|
42
|
+
const { paths, shouldFix = false } = params ?? {};
|
|
42
43
|
const configFiles = [
|
|
43
44
|
ObsidianPluginRepoPaths.MarkdownlintCli2ConfigJsonc,
|
|
44
45
|
ObsidianPluginRepoPaths.MarkdownlintCli2ConfigYaml,
|
|
@@ -68,8 +69,9 @@ async function lint(shouldFix = false) {
|
|
|
68
69
|
resolvePathFromRootSafe(ObsidianPluginRepoPaths.MarkdownlintCli2ConfigMts)
|
|
69
70
|
);
|
|
70
71
|
}
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
const targets = paths?.length ? paths : [ObsidianPluginRepoPaths.CurrentFolder];
|
|
73
|
+
await execFromRoot(["npx", "markdownlint-cli2", ...shouldFix ? ["--fix"] : [], { batchedArgs: targets }]);
|
|
74
|
+
const mdFiles = paths?.length ? paths : await toArray(glob(["**/*.md"], {
|
|
73
75
|
exclude: [
|
|
74
76
|
".git/**",
|
|
75
77
|
"dist/**",
|
|
@@ -79,7 +81,6 @@ async function lint(shouldFix = false) {
|
|
|
79
81
|
await execFromRoot([
|
|
80
82
|
"npx",
|
|
81
83
|
"linkinator",
|
|
82
|
-
...mdFiles,
|
|
83
84
|
"--retry",
|
|
84
85
|
"--retry-errors",
|
|
85
86
|
"--retry-errors-count",
|
|
@@ -89,10 +90,11 @@ async function lint(shouldFix = false) {
|
|
|
89
90
|
"--url-rewrite-search",
|
|
90
91
|
"https://www\\.npmjs\\.com/package/",
|
|
91
92
|
"--url-rewrite-replace",
|
|
92
|
-
"https://registry.npmjs.org/"
|
|
93
|
+
"https://registry.npmjs.org/",
|
|
94
|
+
{ batchedArgs: mdFiles }
|
|
93
95
|
]);
|
|
94
96
|
}
|
|
95
97
|
export {
|
|
96
98
|
lint
|
|
97
99
|
};
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBMaW50IG1hcmtkb3duIGRvY3VtZW50YXRpb24gdXNpbmcgYG1hcmtkb3dubGludC1jbGkyYCBhbmQgYGxpbmtpbmF0b3JgLlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIGNwLFxuICBnbG9iXG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBnZXRGb2xkZXJOYW1lLFxuICBqb2luXG59IGZyb20gJy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgYXNzZXJ0Tm9uTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICBnZXRSb290Rm9sZGVyLFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuLi9yb290LnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGxpbnR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRQYXJhbXMge1xuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBsaW50LiBJZiBvbWl0dGVkLCBsaW50cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgc2hvdWxkRml4PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBMaW50IG1hcmtkb3duIGRvY3VtZW50YXRpb24gdXNpbmcgYG1hcmtkb3dubGludC1jbGkyYCBhbmQgYGxpbmtpbmF0b3JgLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIExpbnRQYXJhbXN9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChwYXJhbXM/OiBMaW50UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgcGF0aHMsIHNob3VsZEZpeCA9IGZhbHNlIH0gPSBwYXJhbXMgPz8ge307XG4gIGNvbnN0IGNvbmZpZ0ZpbGVzID0gW1xuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdKc29uYyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnWWFtbCxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnQ2pzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdNanMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnSnNvbmMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnSnNvbixcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdZYW1sLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1ltbCxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdDanMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnTWpzXG4gIF07XG5cbiAgY29uc3QgY29uZmlnRmlsZUV4aXN0ID0gY29uZmlnRmlsZXMuc29tZSgoY29uZmlnRmlsZSkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGVQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoY29uZmlnRmlsZSk7XG4gICAgcmV0dXJuIGV4aXN0c1N5bmMoY29uZmlnRmlsZVBhdGgpO1xuICB9KTtcblxuICBpZiAoIWNvbmZpZ0ZpbGVFeGlzdCkge1xuICAgIGdldExpYkRlYnVnZ2VyKCdtYXJrZG93bmxpbnQ6bGludCcpKCdtYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlIG5vdCBmb3VuZC4gQ3JlYXRpbmcgZGVmYXVsdCBjb25maWcuLi4nKTtcbiAgICBjb25zdCBwYWNrYWdlRm9sZGVyID0gZ2V0Um9vdEZvbGRlcihnZXRGb2xkZXJOYW1lKGltcG9ydC5tZXRhLnVybCkpO1xuICAgIGFzc2VydE5vbk51bGxhYmxlKHBhY2thZ2VGb2xkZXIsICdQYWNrYWdlIGZvbGRlciBub3QgZm91bmQnKTtcbiAgICBhd2FpdCBjcChcbiAgICAgIGpvaW4ocGFja2FnZUZvbGRlciwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdNanMpLFxuICAgICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcylcbiAgICApO1xuXG4gICAgYXdhaXQgY3AoXG4gICAgICBqb2luKHBhY2thZ2VGb2xkZXIsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnTXRzKSxcbiAgICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdNdHMpXG4gICAgKTtcbiAgfVxuXG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBUaGUgcGF0aHMtcHJvdmlkZWQgYnJhbmNoZXMgYXJlIG9ubHkgZXhlcmNpc2VkIGJ5IGNvbnN1bWVyIHByb2plY3RzIHBhc3NpbmcgZmlsZSBsaXN0cy4gKi9cbiAgY29uc3QgdGFyZ2V0cyA9IHBhdGhzPy5sZW5ndGggPyBwYXRocyA6IFtPYnNpZGlhblBsdWdpblJlcG9QYXRocy5DdXJyZW50Rm9sZGVyXTtcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnB4JywgJ21hcmtkb3dubGludC1jbGkyJywgLi4uKHNob3VsZEZpeCA/IFsnLS1maXgnXSA6IFtdKSwgeyBiYXRjaGVkQXJnczogdGFyZ2V0cyB9XSk7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2ggaXMgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCBtZEZpbGVzID0gcGF0aHM/Lmxlbmd0aFxuICAgID8gcGF0aHNcbiAgICA6IGF3YWl0IHRvQXJyYXkoZ2xvYihbJyoqLyoubWQnXSwge1xuICAgICAgZXhjbHVkZTogW1xuICAgICAgICAnLmdpdC8qKicsXG4gICAgICAgICdkaXN0LyoqJyxcbiAgICAgICAgJ25vZGVfbW9kdWxlcy8qKidcbiAgICAgIF1cbiAgICB9KSk7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbXG4gICAgJ25weCcsXG4gICAgJ2xpbmtpbmF0b3InLFxuICAgICctLXJldHJ5JyxcbiAgICAnLS1yZXRyeS1lcnJvcnMnLFxuICAgICctLXJldHJ5LWVycm9ycy1jb3VudCcsXG4gICAgJzMnLFxuICAgICctLXJldHJ5LWVycm9ycy1qaXR0ZXInLFxuICAgICc1JyxcbiAgICAnLS11cmwtcmV3cml0ZS1zZWFyY2gnLFxuICAgICdodHRwczovL3d3d1xcXFwubnBtanNcXFxcLmNvbS9wYWNrYWdlLycsXG4gICAgJy0tdXJsLXJld3JpdGUtcmVwbGFjZScsXG4gICAgJ2h0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLycsXG4gICAgeyBiYXRjaGVkQXJnczogbWRGaWxlcyB9XG4gIF0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxrQkFBa0I7QUFDM0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLGVBQWU7QUFDeEIsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUywrQkFBK0I7QUFDeEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLGlDQUFpQztBQUMxQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFzQlAsZUFBc0IsS0FBSyxRQUFvQztBQUM3RCxRQUFNLEVBQUUsT0FBTyxZQUFZLE1BQU0sSUFBSSxVQUFVLENBQUM7QUFDaEQsUUFBTSxjQUFjO0FBQUEsSUFDbEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsRUFDMUI7QUFFQSxRQUFNLGtCQUFrQixZQUFZLEtBQUssQ0FBQyxlQUFlO0FBQ3ZELFVBQU0saUJBQWlCLHdCQUF3QixVQUFVO0FBQ3pELFdBQU8sV0FBVyxjQUFjO0FBQUEsRUFDbEMsQ0FBQztBQUVELE1BQUksQ0FBQyxpQkFBaUI7QUFDcEIsbUJBQWUsbUJBQW1CLEVBQUUsdUVBQXVFO0FBQzNHLFVBQU0sZ0JBQWdCLGNBQWMsY0FBYyxZQUFZLEdBQUcsQ0FBQztBQUNsRSxzQkFBa0IsZUFBZSwwQkFBMEI7QUFDM0QsVUFBTTtBQUFBLE1BQ0osS0FBSyxlQUFlLDBCQUEwQixNQUFNLDBCQUEwQix5QkFBeUI7QUFBQSxNQUN2Ryx3QkFBd0Isd0JBQXdCLHlCQUF5QjtBQUFBLElBQzNFO0FBRUEsVUFBTTtBQUFBLE1BQ0osS0FBSyxlQUFlLDBCQUEwQixNQUFNLDBCQUEwQix5QkFBeUI7QUFBQSxNQUN2Ryx3QkFBd0Isd0JBQXdCLHlCQUF5QjtBQUFBLElBQzNFO0FBQUEsRUFDRjtBQUdBLFFBQU0sVUFBVSxPQUFPLFNBQVMsUUFBUSxDQUFDLHdCQUF3QixhQUFhO0FBRTlFLFFBQU0sYUFBYSxDQUFDLE9BQU8scUJBQXFCLEdBQUksWUFBWSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUksRUFBRSxhQUFhLFFBQVEsQ0FBQyxDQUFDO0FBRzFHLFFBQU0sVUFBVSxPQUFPLFNBQ25CLFFBQ0EsTUFBTSxRQUFRLEtBQUssQ0FBQyxTQUFTLEdBQUc7QUFBQSxJQUNoQyxTQUFTO0FBQUEsTUFDUDtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQyxDQUFDO0FBRUosUUFBTSxhQUFhO0FBQUEsSUFDakI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsRUFBRSxhQUFhLFFBQVE7QUFBQSxFQUN6QixDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* Shared nano-staged configuration for pre-commit hooks.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Nano-staged configuration that runs file-based lint, format, and spellcheck on staged files.
|
|
8
|
+
*
|
|
9
|
+
* Only includes tools that can operate on individual files. Whole-project checks
|
|
10
|
+
* (TypeScript compilation, unit tests) are left to CI.
|
|
11
|
+
*
|
|
12
|
+
* Commands use `npm run ... --` so nano-staged file paths are forwarded as CLI arguments.
|
|
13
|
+
*/
|
|
14
|
+
export declare const obsidianDevUtilsConfig: Record<string, string[]>;
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
(function initEsm() {
|
|
7
|
+
if (globalThis.process) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const browserProcess = {
|
|
12
|
+
browser: true,
|
|
13
|
+
cwd() {
|
|
14
|
+
return '/';
|
|
15
|
+
},
|
|
16
|
+
env: {},
|
|
17
|
+
platform: 'android'
|
|
18
|
+
};
|
|
19
|
+
globalThis.process = browserProcess;
|
|
20
|
+
})();
|
|
21
|
+
|
|
22
|
+
const obsidianDevUtilsConfig = {
|
|
23
|
+
"*": [
|
|
24
|
+
"npm run spellcheck --"
|
|
25
|
+
],
|
|
26
|
+
"*.{ts,tsx,mts}": [
|
|
27
|
+
"npm run lint:fix --",
|
|
28
|
+
"npm run format --"
|
|
29
|
+
],
|
|
30
|
+
"*.md": [
|
|
31
|
+
"npm run lint:md:fix --"
|
|
32
|
+
]
|
|
33
|
+
};
|
|
34
|
+
export {
|
|
35
|
+
obsidianDevUtilsConfig
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9uYW5vLXN0YWdlZC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogU2hhcmVkIG5hbm8tc3RhZ2VkIGNvbmZpZ3VyYXRpb24gZm9yIHByZS1jb21taXQgaG9va3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIG5hbm8tc3RhZ2VkIGNvbmZpZ3VyYXRpb247IGNvcnJlY3RuZXNzIGlzIHZlcmlmaWVkIGJ5IHJ1bm5pbmcgbmFuby1zdGFnZWQsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG4vKipcbiAqIE5hbm8tc3RhZ2VkIGNvbmZpZ3VyYXRpb24gdGhhdCBydW5zIGZpbGUtYmFzZWQgbGludCwgZm9ybWF0LCBhbmQgc3BlbGxjaGVjayBvbiBzdGFnZWQgZmlsZXMuXG4gKlxuICogT25seSBpbmNsdWRlcyB0b29scyB0aGF0IGNhbiBvcGVyYXRlIG9uIGluZGl2aWR1YWwgZmlsZXMuIFdob2xlLXByb2plY3QgY2hlY2tzXG4gKiAoVHlwZVNjcmlwdCBjb21waWxhdGlvbiwgdW5pdCB0ZXN0cykgYXJlIGxlZnQgdG8gQ0kuXG4gKlxuICogQ29tbWFuZHMgdXNlIGBucG0gcnVuIC4uLiAtLWAgc28gbmFuby1zdGFnZWQgZmlsZSBwYXRocyBhcmUgZm9yd2FyZGVkIGFzIENMSSBhcmd1bWVudHMuXG4gKi9cbmV4cG9ydCBjb25zdCBvYnNpZGlhbkRldlV0aWxzQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7XG4gICcqJzogW1xuICAgICducG0gcnVuIHNwZWxsY2hlY2sgLS0nXG4gIF0sXG4gICcqLnt0cyx0c3gsbXRzfSc6IFtcbiAgICAnbnBtIHJ1biBsaW50OmZpeCAtLScsXG4gICAgJ25wbSBydW4gZm9ybWF0IC0tJ1xuICBdLFxuICAnKi5tZCc6IFtcbiAgICAnbnBtIHJ1biBsaW50Om1kOmZpeCAtLSdcbiAgXVxufTtcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCTyxNQUFNLHlCQUFtRDtBQUFBLEVBQzlELEtBQUs7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUFBLEVBQ0Esa0JBQWtCO0FBQUEsSUFDaEI7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ047QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -19,11 +19,8 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
19
19
|
globalThis.process = browserProcess;
|
|
20
20
|
})();
|
|
21
21
|
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
loadEnvFile,
|
|
25
|
-
process
|
|
26
|
-
} from "./node-modules.mjs";
|
|
22
|
+
import { existsSync } from "node:fs";
|
|
23
|
+
import process, { loadEnvFile } from "node:process";
|
|
27
24
|
import {
|
|
28
25
|
execFromRoot,
|
|
29
26
|
resolvePathFromRoot
|
|
@@ -41,4 +38,4 @@ async function publish(isBeta) {
|
|
|
41
38
|
export {
|
|
42
39
|
publish
|
|
43
40
|
};
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0tcHVibGlzaC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgTlBNIHB1Ymxpc2guXG4gKi9cblxuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHByb2Nlc3MsIHsgbG9hZEVudkZpbGUgfSBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3Rcbn0gZnJvbSAnLi9yb290LnRzJztcblxuaW50ZXJmYWNlIE5wbUVudiB7XG4gIE5QTV9UT0tFTjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFB1Ymxpc2ggdG8gTlBNLlxuICpcbiAqIEBwYXJhbSBpc0JldGEgLSBXaGV0aGVyIHRvIHB1Ymxpc2ggdG8gdGhlIGJldGEgTlBNIHJlZ2lzdHJ5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVibGlzaChpc0JldGE/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGVudlBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290KCcuZW52Jyk7XG4gIGlmIChlbnZQYXRoICYmIGV4aXN0c1N5bmMoZW52UGF0aCkpIHtcbiAgICBsb2FkRW52RmlsZShlbnZQYXRoKTtcbiAgfVxuICBjb25zdCBucG1FbnYgPSBwcm9jZXNzLmVudiBhcyBQYXJ0aWFsPE5wbUVudj47XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdjb25maWcnLCAnc2V0JywgYC8vcmVnaXN0cnkubnBtanMub3JnLzpfYXV0aFRva2VuPSR7bnBtRW52Lk5QTV9UT0tFTiA/PyAnJ31gXSk7XG5cbiAgY29uc3QgdGFnID0gaXNCZXRhID8gJ2JldGEnIDogJ2xhdGVzdCc7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdwdWJsaXNoJywgJy0tdGFnJywgdGFnXSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxTQUFTLGtCQUFrQjtBQUMzQixPQUFPLFdBQVcsbUJBQW1CO0FBRXJDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBV1AsZUFBc0IsUUFBUSxRQUFpQztBQUM3RCxRQUFNLFVBQVUsb0JBQW9CLE1BQU07QUFDMUMsTUFBSSxXQUFXLFdBQVcsT0FBTyxHQUFHO0FBQ2xDLGdCQUFZLE9BQU87QUFBQSxFQUNyQjtBQUNBLFFBQU0sU0FBUyxRQUFRO0FBQ3ZCLFFBQU0sYUFBYSxDQUFDLE9BQU8sVUFBVSxPQUFPLG9DQUFvQyxPQUFPLGFBQWEsRUFBRSxFQUFFLENBQUM7QUFFekcsUUFBTSxNQUFNLFNBQVMsU0FBUztBQUM5QixRQUFNLGFBQWEsQ0FBQyxPQUFPLFdBQVcsU0FBUyxHQUFHLENBQUM7QUFDckQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -91,6 +91,8 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
91
91
|
Styles = "styles",
|
|
92
92
|
/** Styles CSS file. */
|
|
93
93
|
StylesCss = "styles.css",
|
|
94
|
+
/** Test helpers folder. */
|
|
95
|
+
TestHelpers = "test-helpers",
|
|
94
96
|
/** TypeScript configuration file. */
|
|
95
97
|
TsConfigJson = "tsconfig.json",
|
|
96
98
|
/** TypeScript file extension. */
|
|
@@ -61,6 +61,7 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
61
61
|
ObsidianDevUtilsRepoPaths2["Static"] = "static";
|
|
62
62
|
ObsidianDevUtilsRepoPaths2["Styles"] = "styles";
|
|
63
63
|
ObsidianDevUtilsRepoPaths2["StylesCss"] = "styles.css";
|
|
64
|
+
ObsidianDevUtilsRepoPaths2["TestHelpers"] = "test-helpers";
|
|
64
65
|
ObsidianDevUtilsRepoPaths2["TsConfigJson"] = "tsconfig.json";
|
|
65
66
|
ObsidianDevUtilsRepoPaths2["TsExtension"] = ".ts";
|
|
66
67
|
ObsidianDevUtilsRepoPaths2["Types"] = "@types";
|
|
@@ -69,4 +70,4 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
69
70
|
export {
|
|
70
71
|
ObsidianDevUtilsRepoPaths
|
|
71
72
|
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIG9mIGNvbW1vbiBmaWxlIHBhdGhzIGFuZCBwYXR0ZXJucyB1c2VkIGluIHRoZSBPYnNpZGlhbiBkZXZlbG9wbWVudCB1dGlsaXRpZXMgcmVwb3NpdG9yeS5cbiAqIFRoZXNlIHBhdGhzIGFyZSB1c2VkIHRocm91Z2hvdXQgdGhlIGJ1aWxkIHByb2Nlc3MgYW5kIG90aGVyIHV0aWxpdGllcywgZW5zdXJpbmcgY29uc2lzdGVuY3kgYW5kIHJlZHVjaW5nIHRoZSBsaWtlbGlob29kXG4gKiBvZiBlcnJvcnMgZHVlIHRvIGhhcmRjb2RlZCBzdHJpbmdzLlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIHtcbiAgLyoqIEFueSBmaWxlIG9yIGZvbGRlci4gKi9cbiAgQW55ID0gJyonLFxuXG4gIC8qKiBDb21tb25KUyBmaWxlLiAqL1xuICBBbnlDanMgPSAnKi5janMnLFxuXG4gIC8qKiBDb21tb25KUyBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIEFueURjdHMgPSAnKi5kLmN0cycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUuICovXG4gIEFueURtdHMgPSAnKi5kLm10cycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS4gKi9cbiAgQW55RHRzID0gJyouZC50cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGZpbGUuICovXG4gIEFueU1qcyA9ICcqLm1qcycsXG5cbiAgLyoqIEFueSBwYXRoIHJlY3Vyc2l2ZWx5LiAqL1xuICBBbnlQYXRoID0gJyoqJyxcblxuICAvKiogQW55IFR5cGVTY3JpcHQgZmlsZS4gKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqIENvbW1vbkpTIGZvbGRlci4gKi9cbiAgQ2pzID0gJ2NqcycsXG5cbiAgLyoqIENvbW1vbkpTIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBDanNFeHRlbnNpb24gPSAnLmNqcycsXG5cbiAgLyoqIEN1cnJlbnQgZm9sZGVyLiAqL1xuICBDdXJyZW50Rm9sZGVyID0gJy4nLFxuXG4gIC8qKiBEYXRhdmlldyB0eXBlcy4gKi9cbiAgRGF0YXZpZXdUeXBlcyA9ICdzcmMvb2JzaWRpYW4vQHR5cGVzL2RhdGF2aWV3LyoqJyxcblxuICAvKiogQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgRGN0c0V4dGVuc2lvbiA9ICcuZC5jdHMnLFxuXG4gIC8qKiBEaXN0cmlidXRpb24gZm9sZGVyLiAqL1xuICBEaXN0ID0gJ2Rpc3QnLFxuXG4gIC8qKiBBIHBhdGggdG8gdGhlIGBsaWJgIGZvbGRlciB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIuICovXG4gIERpc3RMaWIgPSAnZGlzdC9saWInLFxuXG4gIC8qKiBUcmFuc3BpbGVkIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uICovXG4gIERqc0V4dGVuc2lvbiA9ICcuZC5qcycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEbXRzRXh0ZW5zaW9uID0gJy5kLm10cycsXG5cbiAgLyoqIERwcmludCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIERwcmludEpzb24gPSAnZHByaW50Lmpzb24nLFxuXG4gIC8qKiBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICBEdHNFeHRlbnNpb24gPSAnLmQudHMnLFxuXG4gIC8qKiBFU00gVHlwZVNjcmlwdCBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLiAqL1xuICBFc2xpbnRDb25maWdNdHMgPSAnZXNsaW50LmNvbmZpZy5tdHMnLFxuXG4gIC8qKiBFU00gSmF2YVNjcmlwdCBmb2xkZXIuICovXG4gIEVzbSA9ICdlc20nLFxuXG4gIC8qKiBDb21tb25KUyBKYXZhU2NyaXB0IGluZGV4IGZpbGUuICovXG4gIEluZGV4Q2pzID0gJ2luZGV4LmNqcycsXG5cbiAgLyoqIENvbW1vbkpTIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBpbmRleCBmaWxlLiAqL1xuICBJbmRleERjdHMgPSAnaW5kZXguZC5jdHMnLFxuXG4gIC8qKiBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuICovXG4gIEluZGV4RG10cyA9ICdpbmRleC5kLm10cycsXG5cbiAgLyoqIEVTTSBKYXZhU2NyaXB0IGluZGV4IGZpbGUuICovXG4gIEluZGV4TWpzID0gJ2luZGV4Lm1qcycsXG5cbiAgLyoqIFR5cGVTY3JpcHQgaW5kZXggZmlsZS4gKi9cbiAgSW5kZXhUcyA9ICdpbmRleC50cycsXG5cbiAgLyoqIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIEpzRXh0ZW5zaW9uID0gJy5qcycsXG5cbiAgLyoqIExpYnJhcnkgQ29tbW9uSlMgZmlsZS4gKi9cbiAgTGlicmFyeUNqcyA9ICdsaWJyYXJ5LmNqcycsXG5cbiAgLyoqIExpYnJhcnkgRVNNIEphdmFTY3JpcHQgZmlsZS4gKi9cbiAgTGlicmFyeU1qcyA9ICdsaWJyYXJ5Lm1qcycsXG5cbiAgLyoqIEVTTSBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIE1hcmtkb3dubGludENsaTJDb25maWdNanMgPSAnLm1hcmtkb3dubGludC1jbGkyLm1qcycsXG5cbiAgLyoqIEVTTSBUeXBlU2NyaXB0IE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS4gKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ010cyA9ICcubWFya2Rvd25saW50LWNsaTIubXRzJyxcblxuICAvKiogRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uICovXG4gIE1qc0V4dGVuc2lvbiA9ICcubWpzJyxcblxuICAvKiogTm9kZSBtb2R1bGVzIGZvbGRlci4gKi9cbiAgTm9kZU1vZHVsZXMgPSAnbm9kZV9tb2R1bGVzJyxcblxuICAvKiogUGFja2FnZSBKU09OIGZpbGUuICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqIFJvb3QgZm9sZGVyLiAqL1xuICBSb290Rm9sZGVyID0gJy8nLFxuXG4gIC8qKiBTY3JpcHRzIGZvbGRlci4gKi9cbiAgU2NyaXB0cyA9ICdzY3JpcHRzJyxcblxuICAvKiogU2NyaXB0VXRpbHMgZm9sZGVyLiAqL1xuICBTY3JpcHRVdGlscyA9ICdzY3JpcHQtdXRpbHMnLFxuXG4gIC8qKiBTb3VyY2UgZm9sZGVyLiAqL1xuICBTcmMgPSAnc3JjJyxcblxuICAvKiogU3RhdGljIGZvbGRlci4gKi9cbiAgU3RhdGljID0gJ3N0YXRpYycsXG5cbiAgLyoqIFN0eWxlcyBmb2xkZXIuICovXG4gIFN0eWxlcyA9ICdzdHlsZXMnLFxuXG4gIC8qKiBTdHlsZXMgQ1NTIGZpbGUuICovXG4gIFN0eWxlc0NzcyA9ICdzdHlsZXMuY3NzJyxcblxuICAvKiogVGVzdCBoZWxwZXJzIGZvbGRlci4gKi9cbiAgVGVzdEhlbHBlcnMgPSAndGVzdC1oZWxwZXJzJyxcblxuICAvKiogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKiogVHlwZVNjcmlwdCBmaWxlIGV4dGVuc2lvbi4gKi9cbiAgVHNFeHRlbnNpb24gPSAnLnRzJyxcblxuICAvKiogVHlwZXMgZm9sZGVyLiAqL1xuICBUeXBlcyA9ICdAdHlwZXMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXTyxJQUFLLDRCQUFMLGtCQUFLQSwrQkFBTDtBQUVMLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxZQUFTO0FBR1QsRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxXQUFRO0FBR1IsRUFBQUEsMkJBQUEsU0FBTTtBQUdOLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBR2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFHaEIsRUFBQUEsMkJBQUEsVUFBTztBQUdQLEVBQUFBLDJCQUFBLGFBQVU7QUFHVixFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUdoQixFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLGtCQUFlO0FBR2YsRUFBQUEsMkJBQUEscUJBQWtCO0FBR2xCLEVBQUFBLDJCQUFBLFNBQU07QUFHTixFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsZUFBWTtBQUdaLEVBQUFBLDJCQUFBLGVBQVk7QUFHWixFQUFBQSwyQkFBQSxjQUFXO0FBR1gsRUFBQUEsMkJBQUEsYUFBVTtBQUdWLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxnQkFBYTtBQUdiLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUc1QixFQUFBQSwyQkFBQSwrQkFBNEI7QUFHNUIsRUFBQUEsMkJBQUEsa0JBQWU7QUFHZixFQUFBQSwyQkFBQSxpQkFBYztBQUdkLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsZ0JBQWE7QUFHYixFQUFBQSwyQkFBQSxhQUFVO0FBR1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxTQUFNO0FBR04sRUFBQUEsMkJBQUEsWUFBUztBQUdULEVBQUFBLDJCQUFBLFlBQVM7QUFHVCxFQUFBQSwyQkFBQSxlQUFZO0FBR1osRUFBQUEsMkJBQUEsaUJBQWM7QUFHZCxFQUFBQSwyQkFBQSxrQkFBZTtBQUdmLEVBQUFBLDJCQUFBLGlCQUFjO0FBR2QsRUFBQUEsMkJBQUEsV0FBUTtBQXRJRSxTQUFBQTtBQUFBLEdBQUE7IiwKICAibmFtZXMiOiBbIk9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMiXQp9Cg==
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Contains utility functions for executing commands from the root folder of a project,
|
|
5
5
|
* resolving paths relative to the root.
|
|
6
6
|
*/
|
|
7
|
-
import type {
|
|
7
|
+
import type { CommandPart, ExecDetailedOptions, ExecResult, ExecSimpleOptions } from './exec.mjs';
|
|
8
8
|
/**
|
|
9
9
|
* Executes a command from the root folder of the project.
|
|
10
10
|
*
|
|
@@ -16,9 +16,7 @@ import type { ExecOption, ExecResult } from './exec.mjs';
|
|
|
16
16
|
* If an error occurs during the execution and ignoreExitCode is `true`,
|
|
17
17
|
* the error is resolved with the stdout and stderr.
|
|
18
18
|
*/
|
|
19
|
-
export declare function execFromRoot(command:
|
|
20
|
-
withDetails?: false;
|
|
21
|
-
} & ExecOption): Promise<string>;
|
|
19
|
+
export declare function execFromRoot(command: CommandPart[] | string, options?: ExecSimpleOptions): Promise<string>;
|
|
22
20
|
/**
|
|
23
21
|
* Executes a command from the root folder of the project.
|
|
24
22
|
*
|
|
@@ -31,9 +29,7 @@ export declare function execFromRoot(command: string | string[], options?: {
|
|
|
31
29
|
* If an error occurs during the execution and ignoreExitCode is `true`,
|
|
32
30
|
* the error is resolved with the stdout and stderr.
|
|
33
31
|
*/
|
|
34
|
-
export declare function execFromRoot(command:
|
|
35
|
-
withDetails: true;
|
|
36
|
-
} & ExecOption): Promise<ExecResult>;
|
|
32
|
+
export declare function execFromRoot(command: CommandPart[] | string, options: ExecDetailedOptions): Promise<ExecResult>;
|
|
37
33
|
/**
|
|
38
34
|
* Retrieves the root folder of the project.
|
|
39
35
|
*
|
|
@@ -19,6 +19,7 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
19
19
|
globalThis.process = browserProcess;
|
|
20
20
|
})();
|
|
21
21
|
|
|
22
|
+
import { existsSync } from "node:fs";
|
|
22
23
|
import {
|
|
23
24
|
dirname,
|
|
24
25
|
join,
|
|
@@ -27,7 +28,6 @@ import {
|
|
|
27
28
|
toPosixPath
|
|
28
29
|
} from "../path.mjs";
|
|
29
30
|
import { exec } from "./exec.mjs";
|
|
30
|
-
import { existsSync } from "./node-modules.mjs";
|
|
31
31
|
import { ObsidianDevUtilsRepoPaths } from "./obsidian-dev-utils-repo-paths.mjs";
|
|
32
32
|
function execFromRoot(command, options = {}) {
|
|
33
33
|
let root = getRootFolder(options.cwd);
|
|
@@ -77,4 +77,4 @@ export {
|
|
|
77
77
|
resolvePathFromRootSafe,
|
|
78
78
|
toRelativeFromRoot
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9yb290LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBleGVjdXRpbmcgY29tbWFuZHMgZnJvbSB0aGUgcm9vdCBmb2xkZXIgb2YgYSBwcm9qZWN0LFxuICogcmVzb2x2aW5nIHBhdGhzIHJlbGF0aXZlIHRvIHRoZSByb290LlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcblxuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kUGFydCxcbiAgRXhlY0RldGFpbGVkT3B0aW9ucyxcbiAgRXhlY09wdGlvbixcbiAgRXhlY1Jlc3VsdCxcbiAgRXhlY1NpbXBsZU9wdGlvbnNcbn0gZnJvbSAnLi9leGVjLnRzJztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pbixcbiAgcmVsYXRpdmUsXG4gIHJlc29sdmUsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJy4vZXhlYy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyc7XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBjb21tYW5kIGZyb20gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS4gSXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXhlY3V0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWNGcm9tUm9vdChjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zPzogRXhlY1NpbXBsZU9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz47XG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCBFeGVjUmVzdWx0IG9iamVjdC5cbiAqICAgICAgICAgIFRoZSBFeGVjUmVzdWx0IG9iamVjdCBjb250YWlucyB0aGUgZXhpdCBjb2RlLCBleGl0IHNpZ25hbCwgc3RkZXJyLCBhbmQgc3Rkb3V0LlxuICogQHRocm93cyBJZiB0aGUgY29tbWFuZCBmYWlscyB3aXRoIGEgbm9uLXplcm8gZXhpdCBjb2RlIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgZmFsc2VgLlxuICogICAgICAgICBUaGUgZXJyb3IgbWVzc2FnZSBpbmNsdWRlcyB0aGUgZXhpdCBjb2RlIGFuZCBzdGRlcnIuXG4gKiAgICAgICAgIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgaWdub3JlRXhpdENvZGUgaXMgYHRydWVgLFxuICogICAgICAgICB0aGUgZXJyb3IgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgc3Rkb3V0IGFuZCBzdGRlcnIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjRnJvbVJvb3QoY29tbWFuZDogQ29tbWFuZFBhcnRbXSB8IHN0cmluZywgb3B0aW9uczogRXhlY0RldGFpbGVkT3B0aW9ucyk6IFByb21pc2U8RXhlY1Jlc3VsdD47XG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBmcm9tIHRoZSByb290IGZvbGRlciBvZiB0aGUgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIGV4ZWN1dGUuIEl0IGNhbiBiZSBhIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGV4ZWN1dGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIG9yIGFuIEV4ZWNSZXN1bHQgb2JqZWN0LlxuICogICAgICAgICAgVGhlIEV4ZWNSZXN1bHQgb2JqZWN0IGNvbnRhaW5zIHRoZSBleGl0IGNvZGUsIGV4aXQgc2lnbmFsLCBzdGRlcnIsIGFuZCBzdGRvdXQuXG4gKiBAdGhyb3dzIElmIHRoZSBjb21tYW5kIGZhaWxzIHdpdGggYSBub24temVybyBleGl0IGNvZGUgYW5kIGlnbm9yZUV4aXRDb2RlIGlzIGBmYWxzZWAuXG4gKiAgICAgICAgIFRoZSBlcnJvciBtZXNzYWdlIGluY2x1ZGVzIHRoZSBleGl0IGNvZGUgYW5kIHN0ZGVyci5cbiAqICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIGFuZCBpZ25vcmVFeGl0Q29kZSBpcyBgdHJ1ZWAsXG4gKiAgICAgICAgIHRoZSBlcnJvciBpcyByZXNvbHZlZCB3aXRoIHRoZSBzdGRvdXQgYW5kIHN0ZGVyci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNGcm9tUm9vdChjb21tYW5kOiBDb21tYW5kUGFydFtdIHwgc3RyaW5nLCBvcHRpb25zOiBFeGVjT3B0aW9uID0ge30pOiBQcm9taXNlPEV4ZWNSZXN1bHQgfCBzdHJpbmc+IHtcbiAgbGV0IHJvb3QgPSBnZXRSb290Rm9sZGVyKG9wdGlvbnMuY3dkKTtcblxuICBpZiAoIXJvb3QpIHtcbiAgICBpZiAob3B0aW9ucy5zaG91bGRGYWlsSWZDYWxsZWRGcm9tT3V0c2lkZVJvb3QgPz8gdHJ1ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCByb290IGZvbGRlcicpO1xuICAgIH1cblxuICAgIHJvb3QgPSBvcHRpb25zLmN3ZCA/PyBwcm9jZXNzLmN3ZCgpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc2hvdWxkSW5jbHVkZURldGFpbHMpIHtcbiAgICByZXR1cm4gZXhlYyhjb21tYW5kLCB7IC4uLm9wdGlvbnMsIGN3ZDogcm9vdCwgc2hvdWxkSW5jbHVkZURldGFpbHM6IHRydWUgfSk7XG4gIH1cblxuICByZXR1cm4gZXhlYyhjb21tYW5kLCB7IC4uLm9wdGlvbnMsIGN3ZDogcm9vdCwgc2hvdWxkSW5jbHVkZURldGFpbHM6IGZhbHNlIH0pO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBwYXRoIHRvIHRoZSByb290IGZvbGRlci5cbiAqIEB0aHJvd3MgSWYgdGhlIHJvb3QgZm9sZGVyIGNhbm5vdCBiZSBmb3VuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3RGb2xkZXIoY3dkPzogc3RyaW5nKTogbnVsbCB8IHN0cmluZyB7XG4gIGxldCBjdXJyZW50Rm9sZGVyID0gdG9Qb3NpeFBhdGgoY3dkID8/IHByb2Nlc3MuY3dkKCkpO1xuICB3aGlsZSAoY3VycmVudEZvbGRlciAhPT0gT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5DdXJyZW50Rm9sZGVyIGFzIHN0cmluZyAmJiBjdXJyZW50Rm9sZGVyICE9PSBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlJvb3RGb2xkZXIgYXMgc3RyaW5nKSB7XG4gICAgaWYgKGV4aXN0c1N5bmMoam9pbihjdXJyZW50Rm9sZGVyLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlBhY2thZ2VKc29uKSkpIHtcbiAgICAgIHJldHVybiB0b1Bvc2l4UGF0aChjdXJyZW50Rm9sZGVyKTtcbiAgICB9XG4gICAgY3VycmVudEZvbGRlciA9IGRpcm5hbWUoY3VycmVudEZvbGRlcik7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIHBhdGggcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyIG9mIHRoZSBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gcmVzb2x2ZS5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgYWJzb2x1dGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXRoRnJvbVJvb3QocGF0aDogc3RyaW5nLCBjd2Q/OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3Qgcm9vdEZvbGRlciA9IGdldFJvb3RGb2xkZXIoY3dkKTtcbiAgaWYgKCFyb290Rm9sZGVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gcmVzb2x2ZShyb290Rm9sZGVyLCBwYXRoKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIHBhdGggcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyLCByZXR1cm5pbmcgdGhlIHJlc29sdmVkIHBhdGggb3IgdGhlIG9yaWdpbmFsIHBhdGggaWYgaXQgZG9lcyBub3QgZXhpc3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byByZXNvbHZlLlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBwYXRoIG9yIHRoZSBvcmlnaW5hbCBwYXRoIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUocGF0aDogc3RyaW5nLCBjd2Q/OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVzb2x2ZVBhdGhGcm9tUm9vdChwYXRoLCBjd2QpID8/IHBhdGg7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYWJzb2x1dGUgcGF0aCB0byBhIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIHByb2plY3QuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgYWJzb2x1dGUgcGF0aCB0byBjb252ZXJ0LlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSByZWxhdGl2ZSBwYXRoIGZyb20gdGhlIHJvb3QgZm9sZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9SZWxhdGl2ZUZyb21Sb290KHBhdGg6IHN0cmluZywgY3dkPzogc3RyaW5nKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHJvb3RGb2xkZXIgPSBnZXRSb290Rm9sZGVyKGN3ZCk7XG4gIGlmICghcm9vdEZvbGRlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcGF0aCA9IHRvUG9zaXhQYXRoKHBhdGgpO1xuICByZXR1cm4gcmVsYXRpdmUocm9vdEZvbGRlciwgcGF0aCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxTQUFTLGtCQUFrQjtBQVUzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsWUFBWTtBQUNyQixTQUFTLGlDQUFpQztBQXVDbkMsU0FBUyxhQUFhLFNBQWlDLFVBQXNCLENBQUMsR0FBaUM7QUFDcEgsTUFBSSxPQUFPLGNBQWMsUUFBUSxHQUFHO0FBRXBDLE1BQUksQ0FBQyxNQUFNO0FBQ1QsUUFBSSxRQUFRLHFDQUFxQyxNQUFNO0FBQ3JELFlBQU0sSUFBSSxNQUFNLDRCQUE0QjtBQUFBLElBQzlDO0FBRUEsV0FBTyxRQUFRLE9BQU8sUUFBUSxJQUFJO0FBQUEsRUFDcEM7QUFFQSxNQUFJLFFBQVEsc0JBQXNCO0FBQ2hDLFdBQU8sS0FBSyxTQUFTLEVBQUUsR0FBRyxTQUFTLEtBQUssTUFBTSxzQkFBc0IsS0FBSyxDQUFDO0FBQUEsRUFDNUU7QUFFQSxTQUFPLEtBQUssU0FBUyxFQUFFLEdBQUcsU0FBUyxLQUFLLE1BQU0sc0JBQXNCLE1BQU0sQ0FBQztBQUM3RTtBQVNPLFNBQVMsY0FBYyxLQUE2QjtBQUN6RCxNQUFJLGdCQUFnQixZQUFZLE9BQU8sUUFBUSxJQUFJLENBQUM7QUFDcEQsU0FBTyxrQkFBa0IsMEJBQTBCLGlCQUEyQixrQkFBa0IsMEJBQTBCLFlBQXNCO0FBQzlJLFFBQUksV0FBVyxLQUFLLGVBQWUsMEJBQTBCLFdBQVcsQ0FBQyxHQUFHO0FBQzFFLGFBQU8sWUFBWSxhQUFhO0FBQUEsSUFDbEM7QUFDQSxvQkFBZ0IsUUFBUSxhQUFhO0FBQUEsRUFDdkM7QUFFQSxTQUFPO0FBQ1Q7QUFTTyxTQUFTLG9CQUFvQixNQUFjLEtBQTZCO0FBQzdFLFFBQU0sYUFBYSxjQUFjLEdBQUc7QUFDcEMsTUFBSSxDQUFDLFlBQVk7QUFDZixXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sUUFBUSxZQUFZLElBQUk7QUFDakM7QUFTTyxTQUFTLHdCQUF3QixNQUFjLEtBQXNCO0FBQzFFLFNBQU8sb0JBQW9CLE1BQU0sR0FBRyxLQUFLO0FBQzNDO0FBU08sU0FBUyxtQkFBbUIsTUFBYyxLQUE2QjtBQUM1RSxRQUFNLGFBQWEsY0FBYyxHQUFHO0FBQ3BDLE1BQUksQ0FBQyxZQUFZO0FBQ2YsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLFlBQVksSUFBSTtBQUN2QixTQUFPLFNBQVMsWUFBWSxJQUFJO0FBQ2xDOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This module provides functions for running tests using the Vitest framework.
|
|
5
5
|
*/
|
|
6
|
+
/**
|
|
7
|
+
* Options for running tests with coverage.
|
|
8
|
+
*/
|
|
9
|
+
export interface TestCoverageOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Minimum coverage percentage required. If the actual coverage falls below
|
|
12
|
+
* this threshold, the process exits with a non-zero code.
|
|
13
|
+
*/
|
|
14
|
+
minCoverage?: number;
|
|
15
|
+
}
|
|
6
16
|
/**
|
|
7
17
|
* Runs the test suite.
|
|
8
18
|
*
|
|
@@ -12,9 +22,10 @@ export declare function test(): Promise<void>;
|
|
|
12
22
|
/**
|
|
13
23
|
* Runs the test suite with coverage.
|
|
14
24
|
*
|
|
25
|
+
* @param options - Optional coverage configuration.
|
|
15
26
|
* @returns A {@link Promise} that resolves when the tests have completed.
|
|
16
27
|
*/
|
|
17
|
-
export declare function testCoverage(): Promise<void>;
|
|
28
|
+
export declare function testCoverage(options?: TestCoverageOptions): Promise<void>;
|
|
18
29
|
/**
|
|
19
30
|
* Runs the test suite in watch mode.
|
|
20
31
|
*
|
|
@@ -23,8 +23,11 @@ import { execFromRoot } from "../root.mjs";
|
|
|
23
23
|
async function test() {
|
|
24
24
|
await execFromRoot("vitest run");
|
|
25
25
|
}
|
|
26
|
-
async function testCoverage() {
|
|
27
|
-
|
|
26
|
+
async function testCoverage(options) {
|
|
27
|
+
const threshold = String(options?.minCoverage ?? 0);
|
|
28
|
+
await execFromRoot(
|
|
29
|
+
`vitest run --coverage --coverage.thresholds.lines=${threshold} --coverage.thresholds.functions=${threshold} --coverage.thresholds.branches=${threshold} --coverage.thresholds.statements=${threshold}`
|
|
30
|
+
);
|
|
28
31
|
}
|
|
29
32
|
async function testWatch() {
|
|
30
33
|
await execFromRoot("vitest");
|
|
@@ -34,4 +37,4 @@ export {
|
|
|
34
37
|
testCoverage,
|
|
35
38
|
testWatch
|
|
36
39
|
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy90ZXN0LXJ1bm5lcnMvdml0ZXN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgcnVubmluZyB0ZXN0cyB1c2luZyB0aGUgVml0ZXN0IGZyYW1ld29yay5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRXhlY3V0ZXMgdml0ZXN0IGFzIGEgQ0xJIHN1YnByb2Nlc3M7IGNvcnJlY3RuZXNzIGlzIHZlcmlmaWVkIGJ5IHJ1bm5pbmcgdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgeyBleGVjRnJvbVJvb3QgfSBmcm9tICcuLi9yb290LnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBydW5uaW5nIHRlc3RzIHdpdGggY292ZXJhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdENvdmVyYWdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIGNvdmVyYWdlIHBlcmNlbnRhZ2UgcmVxdWlyZWQuIElmIHRoZSBhY3R1YWwgY292ZXJhZ2UgZmFsbHMgYmVsb3dcbiAgICogdGhpcyB0aHJlc2hvbGQsIHRoZSBwcm9jZXNzIGV4aXRzIHdpdGggYSBub24temVybyBjb2RlLlxuICAgKi9cbiAgbWluQ292ZXJhZ2U/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUnVucyB0aGUgdGVzdCBzdWl0ZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KCd2aXRlc3QgcnVuJyk7XG59XG5cbi8qKlxuICogUnVucyB0aGUgdGVzdCBzdWl0ZSB3aXRoIGNvdmVyYWdlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9uYWwgY292ZXJhZ2UgY29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGVzdHMgaGF2ZSBjb21wbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0Q292ZXJhZ2Uob3B0aW9ucz86IFRlc3RDb3ZlcmFnZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdGhyZXNob2xkID0gU3RyaW5nKG9wdGlvbnM/Lm1pbkNvdmVyYWdlID8/IDApO1xuICBhd2FpdCBleGVjRnJvbVJvb3QoXG4gICAgYHZpdGVzdCBydW4gLS1jb3ZlcmFnZSAtLWNvdmVyYWdlLnRocmVzaG9sZHMubGluZXM9JHt0aHJlc2hvbGR9IC0tY292ZXJhZ2UudGhyZXNob2xkcy5mdW5jdGlvbnM9JHt0aHJlc2hvbGR9IC0tY292ZXJhZ2UudGhyZXNob2xkcy5icmFuY2hlcz0ke3RocmVzaG9sZH0gLS1jb3ZlcmFnZS50aHJlc2hvbGRzLnN0YXRlbWVudHM9JHt0aHJlc2hvbGR9YFxuICApO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHRlc3Qgc3VpdGUgaW4gd2F0Y2ggbW9kZS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRlc3RzIGhhdmUgY29tcGxldGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdFdhdGNoKCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoJ3ZpdGVzdCcpO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEsU0FBUyxvQkFBb0I7QUFrQjdCLGVBQXNCLE9BQXNCO0FBQzFDLFFBQU0sYUFBYSxZQUFZO0FBQ2pDO0FBUUEsZUFBc0IsYUFBYSxTQUE4QztBQUMvRSxRQUFNLFlBQVksT0FBTyxTQUFTLGVBQWUsQ0FBQztBQUNsRCxRQUFNO0FBQUEsSUFDSixxREFBcUQsU0FBUyxvQ0FBb0MsU0FBUyxtQ0FBbUMsU0FBUyxxQ0FBcUMsU0FBUztBQUFBLEVBQ3ZNO0FBQ0Y7QUFPQSxlQUFzQixZQUEyQjtBQUMvQyxRQUFNLGFBQWEsUUFBUTtBQUM3QjsiLAogICJuYW1lcyI6IFtdCn0K
|