obsidian-dev-utils 97.0.0 → 99.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/LICENSE +1 -1
- package/dist/integration-test-plugin/main.js +686 -439
- package/dist/lib/cjs/__merged.cjs +22 -9
- package/dist/lib/cjs/__merged.d.cts +4 -3
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +36 -1
- package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +21 -0
- package/dist/lib/cjs/obsidian/components/plugin-suggestion-component.cjs +20 -6
- package/dist/lib/cjs/obsidian/components/plugin-suggestion-component.d.cts +26 -4
- package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +38 -38
- package/dist/lib/cjs/obsidian/demo-vault-naming.cjs +167 -0
- package/dist/lib/cjs/obsidian/demo-vault-naming.d.cts +54 -0
- package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +11 -5
- package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.d.cts +10 -8
- package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +9 -9
- package/dist/lib/cjs/obsidian/desktop-trusted-input.d.cts +23 -4
- package/dist/lib/cjs/obsidian/file-change.cjs +6 -6
- package/dist/lib/cjs/obsidian/index.cjs +10 -1
- package/dist/lib/cjs/obsidian/index.d.cts +3 -0
- package/dist/lib/cjs/obsidian/link.cjs +33 -6
- package/dist/lib/cjs/obsidian/link.d.cts +35 -0
- package/dist/lib/cjs/obsidian/mobile-trusted-input.cjs +195 -0
- package/dist/lib/cjs/obsidian/mobile-trusted-input.d.cts +93 -0
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -1
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +4 -0
- package/dist/lib/cjs/obsidian/reference.cjs +9 -1
- package/dist/lib/cjs/obsidian/reference.d.cts +33 -0
- package/dist/lib/cjs/obsidian/resource-lock.cjs +122 -122
- package/dist/lib/cjs/obsidian/trusted-input.cjs +206 -0
- package/dist/lib/cjs/obsidian/trusted-input.d.cts +126 -0
- package/dist/lib/cjs/obsidian/validation.cjs +22 -3
- package/dist/lib/cjs/obsidian/validation.d.cts +37 -0
- package/dist/lib/cjs/obsidian/vault.cjs +4 -1
- package/dist/lib/cjs/obsidian/vault.d.cts +8 -1
- package/dist/lib/cjs/script-utils/build.cjs +30 -6
- package/dist/lib/cjs/script-utils/build.d.cts +5 -0
- package/dist/lib/cjs/script-utils/demo-vault.cjs +26 -6
- package/dist/lib/cjs/script-utils/demo-vault.d.cts +12 -8
- package/dist/lib/cjs/script-utils/exec.cjs +1 -1
- package/dist/lib/cjs/script-utils/formatters/dprint.cjs +3 -2
- package/dist/lib/cjs/script-utils/index.cjs +4 -1
- package/dist/lib/cjs/script-utils/index.d.cts +1 -0
- package/dist/lib/cjs/script-utils/linters/cspell.cjs +3 -3
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +39 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +16 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +5 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-description.cjs +254 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-description.d.cts +54 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-helpers.cjs +217 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-helpers.d.cts +141 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-id.cjs +214 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-id.d.cts +32 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-name.cjs +215 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-name.d.cts +30 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-schema.cjs +318 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/manifest-schema.d.cts +45 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +9 -1
- package/dist/lib/cjs/script-utils/linters/eslint.cjs +3 -2
- package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +4 -4
- package/dist/lib/cjs/script-utils/nano-staged-config.cjs +7 -5
- package/dist/lib/cjs/script-utils/nano-staged-config.d.cts +5 -2
- package/dist/lib/cjs/script-utils/npm-run.cjs +4 -3
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +10 -1
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +37 -1
- package/dist/lib/cjs/script-utils/package-manager.cjs +370 -0
- package/dist/lib/cjs/script-utils/package-manager.d.cts +93 -0
- package/dist/lib/cjs/script-utils/version.cjs +21 -9
- package/dist/lib/esm/__merged.d.mts +4 -3
- package/dist/lib/esm/__merged.mjs +24 -10
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +21 -0
- package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +36 -1
- package/dist/lib/esm/obsidian/components/plugin-suggestion-component.d.mts +26 -4
- package/dist/lib/esm/obsidian/components/plugin-suggestion-component.mjs +20 -6
- package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +38 -38
- package/dist/lib/esm/obsidian/demo-vault-naming.d.mts +54 -0
- package/dist/lib/esm/obsidian/demo-vault-naming.mjs +61 -0
- package/dist/lib/esm/obsidian/desktop-demo-vault-opener.d.mts +10 -8
- package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +14 -5
- package/dist/lib/esm/obsidian/desktop-trusted-input.d.mts +23 -4
- package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +9 -9
- package/dist/lib/esm/obsidian/file-change.mjs +6 -6
- package/dist/lib/esm/obsidian/index.d.mts +3 -0
- package/dist/lib/esm/obsidian/index.mjs +7 -1
- package/dist/lib/esm/obsidian/link.d.mts +35 -0
- package/dist/lib/esm/obsidian/link.mjs +38 -7
- package/dist/lib/esm/obsidian/mobile-trusted-input.d.mts +93 -0
- package/dist/lib/esm/obsidian/mobile-trusted-input.mjs +84 -0
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +4 -0
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -1
- package/dist/lib/esm/obsidian/reference.d.mts +33 -0
- package/dist/lib/esm/obsidian/reference.mjs +8 -1
- package/dist/lib/esm/obsidian/resource-lock.mjs +122 -122
- package/dist/lib/esm/obsidian/trusted-input.d.mts +126 -0
- package/dist/lib/esm/obsidian/trusted-input.mjs +85 -0
- package/dist/lib/esm/obsidian/validation.d.mts +37 -0
- package/dist/lib/esm/obsidian/validation.mjs +21 -2
- package/dist/lib/esm/obsidian/vault.d.mts +8 -1
- package/dist/lib/esm/obsidian/vault.mjs +4 -1
- package/dist/lib/esm/script-utils/build.d.mts +5 -0
- package/dist/lib/esm/script-utils/build.mjs +30 -6
- package/dist/lib/esm/script-utils/demo-vault.d.mts +12 -8
- package/dist/lib/esm/script-utils/demo-vault.mjs +29 -6
- package/dist/lib/esm/script-utils/exec.mjs +1 -1
- package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -2
- package/dist/lib/esm/script-utils/index.d.mts +1 -0
- package/dist/lib/esm/script-utils/index.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/cspell.mjs +3 -3
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +39 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +5 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +11 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-description.d.mts +54 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-description.mjs +148 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-helpers.d.mts +141 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-helpers.mjs +92 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-id.d.mts +32 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-id.mjs +111 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-name.d.mts +30 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-name.mjs +112 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-schema.d.mts +45 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/manifest-schema.mjs +217 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +9 -1
- package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -2
- package/dist/lib/esm/script-utils/linters/markdownlint.mjs +4 -4
- package/dist/lib/esm/script-utils/nano-staged-config.d.mts +5 -2
- package/dist/lib/esm/script-utils/nano-staged-config.mjs +7 -5
- package/dist/lib/esm/script-utils/npm-run.mjs +4 -3
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +37 -1
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +10 -1
- package/dist/lib/esm/script-utils/package-manager.d.mts +93 -0
- package/dist/lib/esm/script-utils/package-manager.mjs +256 -0
- package/dist/lib/esm/script-utils/version.mjs +21 -9
- package/obsidian/demo-vault-naming/package.json +6 -0
- package/obsidian/mobile-trusted-input/package.json +6 -0
- package/obsidian/trusted-input/package.json +6 -0
- package/package.json +19 -17
- package/script-utils/linters/eslint-rules/manifest-description/package.json +6 -0
- package/script-utils/linters/eslint-rules/manifest-helpers/package.json +6 -0
- package/script-utils/linters/eslint-rules/manifest-id/package.json +6 -0
- package/script-utils/linters/eslint-rules/manifest-name/package.json +6 -0
- package/script-utils/linters/eslint-rules/manifest-schema/package.json +6 -0
- package/script-utils/package-manager/package.json +6 -0
|
@@ -149,6 +149,7 @@ __export(npm_run_exports, {
|
|
|
149
149
|
module.exports = __toCommonJS(npm_run_exports);
|
|
150
150
|
var import_debug = require('../debug.cjs');
|
|
151
151
|
var import_npm = require('./npm.cjs');
|
|
152
|
+
var import_package_manager = require('./package-manager.cjs');
|
|
152
153
|
var import_root = require('./root.cjs');
|
|
153
154
|
var NpmRunOptionalResult = /* @__PURE__ */ ((NpmRunOptionalResult2) => {
|
|
154
155
|
NpmRunOptionalResult2["Skipped"] = "skipped";
|
|
@@ -159,7 +160,7 @@ async function npmRun(command) {
|
|
|
159
160
|
const packageJson = await (0, import_npm.readPackageJson)();
|
|
160
161
|
const isKnownCommand = Object.keys(packageJson.scripts ?? {}).includes(command);
|
|
161
162
|
if (isKnownCommand) {
|
|
162
|
-
await (0, import_root.execFromRoot)([
|
|
163
|
+
await (0, import_root.execFromRoot)([...(0, import_package_manager.getPackageManagerRunCommand)(), command]);
|
|
163
164
|
} else {
|
|
164
165
|
throw new Error(`Command ${command} is not defined in the package.json`);
|
|
165
166
|
}
|
|
@@ -168,7 +169,7 @@ async function npmRunOptional(command) {
|
|
|
168
169
|
const packageJson = await (0, import_npm.readPackageJson)();
|
|
169
170
|
const isKnownCommand = Object.keys(packageJson.scripts ?? {}).includes(command);
|
|
170
171
|
if (isKnownCommand) {
|
|
171
|
-
await (0, import_root.execFromRoot)([
|
|
172
|
+
await (0, import_root.execFromRoot)([...(0, import_package_manager.getPackageManagerRunCommand)(), command]);
|
|
172
173
|
return "success" /* Success */;
|
|
173
174
|
}
|
|
174
175
|
(0, import_debug.getLibDebugger)("npmRunOptional")(`Command ${command} is not defined in the package.json, skipping`);
|
|
@@ -180,4 +181,4 @@ async function npmRunOptional(command) {
|
|
|
180
181
|
npmRun,
|
|
181
182
|
npmRunOptional
|
|
182
183
|
});
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9ucG0tcnVuLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogTlBNIHJ1biB1dGlsaXRpZXMuXG4gKi9cblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi9kZWJ1Zy50cyc7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpzb24gfSBmcm9tICcuL25wbS50cyc7XG5pbXBvcnQgeyBnZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQgfSBmcm9tICcuL3BhY2thZ2UtbWFuYWdlci50cyc7XG5pbXBvcnQgeyBleGVjRnJvbVJvb3QgfSBmcm9tICcuL3Jvb3QudHMnO1xuXG4vKipcbiAqIFRoZSByZXN1bHQgb2YgcnVubmluZyBhbiBvcHRpb25hbCBucG0gY29tbWFuZC5cbiAqL1xuZXhwb3J0IGVudW0gTnBtUnVuT3B0aW9uYWxSZXN1bHQge1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQgd2FzIHNraXBwZWQgYmVjYXVzZSBpdCB3YXMgbm90IGRlZmluZWQgaW4gdGhlIHBhY2thZ2UuanNvbiBzY3JpcHRzLlxuICAgKi9cbiAgU2tpcHBlZCA9ICdza2lwcGVkJyxcblxuICAvKipcbiAgICogVGhlIGNvbW1hbmQgd2FzIGZvdW5kIGFuZCBydW4gc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgU3VjY2VzcyA9ICdzdWNjZXNzJ1xufVxuXG4vKipcbiAqIFJ1bnMgYSBjb21tYW5kIHVzaW5nIG5wbSBjaGVja2luZyBpZiB0aGUgY29tbWFuZCBpcyBvdmVycmlkZGVuIGluIHRoZSBwYWNrYWdlLmpzb24uXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBydW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBucG1SdW4oY29tbWFuZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gIGNvbnN0IGlzS25vd25Db21tYW5kID0gT2JqZWN0LmtleXMocGFja2FnZUpzb24uc2NyaXB0cyA/PyB7fSkuaW5jbHVkZXMoY29tbWFuZCk7XG4gIGlmIChpc0tub3duQ29tbWFuZCkge1xuICAgIGF3YWl0IGV4ZWNGcm9tUm9vdChbLi4uZ2V0UGFja2FnZU1hbmFnZXJSdW5Db21tYW5kKCksIGNvbW1hbmRdKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvbW1hbmQgJHtjb21tYW5kfSBpcyBub3QgZGVmaW5lZCBpbiB0aGUgcGFja2FnZS5qc29uYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSdW5zIGEgY29tbWFuZCB1c2luZyBucG0gb25seSBpZiB0aGUgY29tbWFuZCBpcyBkZWZpbmVkIGluIHRoZSBwYWNrYWdlLmpzb24gc2NyaXB0cy5cbiAqIElmIHRoZSBjb21tYW5kIGlzIG5vdCBkZWZpbmVkLCBpdCBpcyBzaWxlbnRseSBza2lwcGVkLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gcnVuLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB7QGxpbmsgTnBtUnVuT3B0aW9uYWxSZXN1bHQuU3VjY2Vzc30gaWYgdGhlIGNvbW1hbmQgd2FzXG4gKiBmb3VuZCBhbmQgcnVuLCBvciB7QGxpbmsgTnBtUnVuT3B0aW9uYWxSZXN1bHQuU2tpcHBlZH0gb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbnBtUnVuT3B0aW9uYWwoY29tbWFuZDogc3RyaW5nKTogUHJvbWlzZTxOcG1SdW5PcHRpb25hbFJlc3VsdD4ge1xuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICBjb25zdCBpc0tub3duQ29tbWFuZCA9IE9iamVjdC5rZXlzKHBhY2thZ2VKc29uLnNjcmlwdHMgPz8ge30pLmluY2x1ZGVzKGNvbW1hbmQpO1xuICBpZiAoaXNLbm93bkNvbW1hbmQpIHtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLmdldFBhY2thZ2VNYW5hZ2VyUnVuQ29tbWFuZCgpLCBjb21tYW5kXSk7XG4gICAgcmV0dXJuIE5wbVJ1bk9wdGlvbmFsUmVzdWx0LlN1Y2Nlc3M7XG4gIH1cbiAgZ2V0TGliRGVidWdnZXIoJ25wbVJ1bk9wdGlvbmFsJykoYENvbW1hbmQgJHtjb21tYW5kfSBpcyBub3QgZGVmaW5lZCBpbiB0aGUgcGFja2FnZS5qc29uLCBza2lwcGluZ2ApO1xuICByZXR1cm4gTnBtUnVuT3B0aW9uYWxSZXN1bHQuU2tpcHBlZDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLG1CQUErQjtBQUMvQixpQkFBZ0M7QUFDaEMsNkJBQTRDO0FBQzVDLGtCQUE2QjtBQUt0QixJQUFLLHVCQUFMLGtCQUFLQSwwQkFBTDtBQUlMLEVBQUFBLHNCQUFBLGFBQVU7QUFLVixFQUFBQSxzQkFBQSxhQUFVO0FBVEEsU0FBQUE7QUFBQSxHQUFBO0FBaUJaLGVBQXNCLE9BQU8sU0FBZ0M7QUFDM0QsUUFBTSxjQUFjLFVBQU0sNEJBQWdCO0FBQzFDLFFBQU0saUJBQWlCLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxPQUFPO0FBQzlFLE1BQUksZ0JBQWdCO0FBQ2xCLGNBQU0sMEJBQWEsQ0FBQyxPQUFHLG9EQUE0QixHQUFHLE9BQU8sQ0FBQztBQUFBLEVBQ2hFLE9BQU87QUFDTCxVQUFNLElBQUksTUFBTSxXQUFXLE9BQU8scUNBQXFDO0FBQUEsRUFDekU7QUFDRjtBQVVBLGVBQXNCLGVBQWUsU0FBZ0Q7QUFDbkYsUUFBTSxjQUFjLFVBQU0sNEJBQWdCO0FBQzFDLFFBQU0saUJBQWlCLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxPQUFPO0FBQzlFLE1BQUksZ0JBQWdCO0FBQ2xCLGNBQU0sMEJBQWEsQ0FBQyxPQUFHLG9EQUE0QixHQUFHLE9BQU8sQ0FBQztBQUM5RCxXQUFPO0FBQUEsRUFDVDtBQUNBLG1DQUFlLGdCQUFnQixFQUFFLFdBQVcsT0FBTywrQ0FBK0M7QUFDbEcsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJOcG1SdW5PcHRpb25hbFJlc3VsdCJdCn0K
|
|
@@ -155,8 +155,13 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
155
155
|
ObsidianDevUtilsRepoPaths2["AnyPath"] = "**";
|
|
156
156
|
ObsidianDevUtilsRepoPaths2["AnyTs"] = "*.ts";
|
|
157
157
|
ObsidianDevUtilsRepoPaths2["AstroConfigTs"] = "astro.config.ts";
|
|
158
|
+
ObsidianDevUtilsRepoPaths2["BatExtension"] = ".bat";
|
|
159
|
+
ObsidianDevUtilsRepoPaths2["Bin"] = ".bin";
|
|
160
|
+
ObsidianDevUtilsRepoPaths2["BunLock"] = "bun.lock";
|
|
161
|
+
ObsidianDevUtilsRepoPaths2["BunLockb"] = "bun.lockb";
|
|
158
162
|
ObsidianDevUtilsRepoPaths2["Cjs"] = "cjs";
|
|
159
163
|
ObsidianDevUtilsRepoPaths2["CjsExtension"] = ".cjs";
|
|
164
|
+
ObsidianDevUtilsRepoPaths2["CommandExtension"] = ".cmd";
|
|
160
165
|
ObsidianDevUtilsRepoPaths2["CurrentFolder"] = ".";
|
|
161
166
|
ObsidianDevUtilsRepoPaths2["DataviewTypes"] = "src/obsidian/@types/dataview/**";
|
|
162
167
|
ObsidianDevUtilsRepoPaths2["DctsExtension"] = ".d.cts";
|
|
@@ -175,6 +180,7 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
175
180
|
ObsidianDevUtilsRepoPaths2["DtsExtension"] = ".d.ts";
|
|
176
181
|
ObsidianDevUtilsRepoPaths2["EslintConfigMts"] = "eslint.config.mts";
|
|
177
182
|
ObsidianDevUtilsRepoPaths2["Esm"] = "esm";
|
|
183
|
+
ObsidianDevUtilsRepoPaths2["ExeExtension"] = ".exe";
|
|
178
184
|
ObsidianDevUtilsRepoPaths2["GeneratedDuringBuildCjs"] = "generated-during-build.cjs";
|
|
179
185
|
ObsidianDevUtilsRepoPaths2["GeneratedDuringBuildMjs"] = "generated-during-build.mjs";
|
|
180
186
|
ObsidianDevUtilsRepoPaths2["IndexCjs"] = "index.cjs";
|
|
@@ -191,7 +197,9 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
191
197
|
ObsidianDevUtilsRepoPaths2["MjsExtension"] = ".mjs";
|
|
192
198
|
ObsidianDevUtilsRepoPaths2["NodeModules"] = "node_modules";
|
|
193
199
|
ObsidianDevUtilsRepoPaths2["PackageJson"] = "package.json";
|
|
200
|
+
ObsidianDevUtilsRepoPaths2["PackageLockJson"] = "package-lock.json";
|
|
194
201
|
ObsidianDevUtilsRepoPaths2["Patches"] = "patches";
|
|
202
|
+
ObsidianDevUtilsRepoPaths2["PnpmLockYaml"] = "pnpm-lock.yaml";
|
|
195
203
|
ObsidianDevUtilsRepoPaths2["RootFolder"] = "/";
|
|
196
204
|
ObsidianDevUtilsRepoPaths2["Scripts"] = "scripts";
|
|
197
205
|
ObsidianDevUtilsRepoPaths2["ScriptUtils"] = "script-utils";
|
|
@@ -205,10 +213,11 @@ var ObsidianDevUtilsRepoPaths = /* @__PURE__ */ ((ObsidianDevUtilsRepoPaths2) =>
|
|
|
205
213
|
ObsidianDevUtilsRepoPaths2["TsConfigValidateDeclarationsJson"] = "tsconfig.validate-declarations.json";
|
|
206
214
|
ObsidianDevUtilsRepoPaths2["TsExtension"] = ".ts";
|
|
207
215
|
ObsidianDevUtilsRepoPaths2["Types"] = "@types";
|
|
216
|
+
ObsidianDevUtilsRepoPaths2["YarnLock"] = "yarn.lock";
|
|
208
217
|
return ObsidianDevUtilsRepoPaths2;
|
|
209
218
|
})(ObsidianDevUtilsRepoPaths || {});
|
|
210
219
|
// Annotate the CommonJS export names for ESM import in node:
|
|
211
220
|
0 && (module.exports = {
|
|
212
221
|
ObsidianDevUtilsRepoPaths
|
|
213
222
|
});
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKipcbiAgQW55IGZpbGUgb3IgZm9sZGVyLlxuICAgKi9cbiAgQW55ID0gJyonLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlLlxuICAgKi9cbiAgQW55Q2pzID0gJyouY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueURtdHMgPSAnKi5kLm10cycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueUR0cyA9ICcqLmQudHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKipcbiAgQW55IHBhdGggcmVjdXJzaXZlbHkuXG4gICAqL1xuICBBbnlQYXRoID0gJyoqJyxcblxuICAvKipcbiAgQW55IFR5cGVTY3JpcHQgZmlsZS5cbiAgICovXG4gIEFueVRzID0gJyoudHMnLFxuXG4gIC8qKlxuICBBc3RybyBjb25maWd1cmF0aW9uIGZpbGUgKGRvY3VtZW50YXRpb24gc2l0ZSkgYXQgdGhlIHJlcG8gcm9vdC5cbiAgICovXG4gIEFzdHJvQ29uZmlnVHMgPSAnYXN0cm8uY29uZmlnLnRzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgZm9sZGVyLlxuICAgKi9cbiAgQ2pzID0gJ2NqcycsXG5cbiAgLyoqXG4gIENvbW1vbkpTIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgQ2pzRXh0ZW5zaW9uID0gJy5janMnLFxuXG4gIC8qKlxuICBDdXJyZW50IGZvbGRlci5cbiAgICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqXG4gIERhdGF2aWV3IHR5cGVzLlxuICAgKi9cbiAgRGF0YXZpZXdUeXBlcyA9ICdzcmMvb2JzaWRpYW4vQHR5cGVzL2RhdGF2aWV3LyoqJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERjdHNFeHRlbnNpb24gPSAnLmQuY3RzJyxcblxuICAvKipcbiAgRGlzdHJpYnV0aW9uIGZvbGRlci5cbiAgICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYnVpbHQgYGRlbW8tdmF1bHQtaGVscGVyYCBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLCBpbmplY3RlZCBpbnRvIGRlbW8gdmF1bHRzIGF0IHJlbGVhc2UgdGltZS5cbiAgICovXG4gIERpc3REZW1vVmF1bHRIZWxwZXIgPSAnZGlzdC9kZW1vLXZhdWx0LWhlbHBlcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYnVpbHQgaW50ZWdyYXRpb24tdGVzdCBoYXJuZXNzIHBsdWdpbiB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIsIHNlZWRlZCBpbnRvIGEgY29uc3VtZXIncyBpbnRlZ3JhdGlvbi10ZXN0IHZhdWx0IHNvIGl0cyBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmVzIHJlYWNoIHRoZSBsaWJyYXJ5IHZpYSBgbGliYC5cbiAgICovXG4gIERpc3RJbnRlZ3JhdGlvblRlc3RQbHVnaW4gPSAnZGlzdC9pbnRlZ3JhdGlvbi10ZXN0LXBsdWdpbicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci5cbiAgICovXG4gIERpc3RMaWIgPSAnZGlzdC9saWInLFxuXG4gIC8qKlxuICBBIHBhdGggdG8gdGhlIGJ1aWx0IHBsdWdpbi1BUEkgaW50ZWdyYXRpb24tdGVzdCBDT05TVU1FUiBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiBUZXN0LW9ubHkgYW5kIG5ldmVyIHNoaXBwZWQ7IGJ1aWx0IHNlcGFyYXRlbHkgZnJvbSBpdHMgcHJvdmlkZXIgc28gdGhlIHR3byBjYXJyeSBkaXN0aW5jdCBgb2JzaWRpYW4tZGV2LXV0aWxzYCBjb3BpZXMuXG4gICAqL1xuICBEaXN0UGx1Z2luQXBpVGVzdENvbnN1bWVyID0gJ2Rpc3QvcGx1Z2luLWFwaS10ZXN0LWNvbnN1bWVyJyxcblxuICAvKipcbiAgQSBwYXRoIHRvIHRoZSBidWlsdCBwbHVnaW4tQVBJIGludGVncmF0aW9uLXRlc3QgUFJPVklERVIgcGx1Z2luIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gVGVzdC1vbmx5IGFuZCBuZXZlciBzaGlwcGVkOyBidWlsdCBzZXBhcmF0ZWx5IGZyb20gaXRzIGNvbnN1bWVyIHNvIHRoZSB0d28gY2FycnkgZGlzdGluY3QgYG9ic2lkaWFuLWRldi11dGlsc2AgY29waWVzLlxuICAgKi9cbiAgRGlzdFBsdWdpbkFwaVRlc3RQcm92aWRlciA9ICdkaXN0L3BsdWdpbi1hcGktdGVzdC1wcm92aWRlcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlciwgaG9sZGluZyB0aGUgY29uc3VtZXItZmFjaW5nIHRlbXBsYXRlcy5cbiAgICovXG4gIERpc3RUZW1wbGF0ZXMgPSAnZGlzdC90ZW1wbGF0ZXMnLFxuXG4gIC8qKlxuICBUcmFuc3BpbGVkIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBEanNFeHRlbnNpb24gPSAnLmQuanMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKipcbiAgRG9jdW1lbnRhdGlvbiBzaXRlIGZvbGRlciAoQXN0cm8gKyBTdGFybGlnaHQgQVBJLWRvY3Mgc3ViLXByb2plY3QpLlxuICAgKi9cbiAgRG9jcyA9ICdkb2NzJyxcblxuICAvKipcbiAgQnVpbGQgb3V0cHV0IGZvbGRlciBvZiB0aGUgZG9jdW1lbnRhdGlvbiBzaXRlLlxuICAgKi9cbiAgRG9jc0Rpc3QgPSAnZG9jcy9kaXN0JyxcblxuICAvKipcbiAgRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIERwcmludEpzb24gPSAnZHByaW50Lmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRHRzRXh0ZW5zaW9uID0gJy5kLnRzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqXG4gIEVTTSBKYXZhU2NyaXB0IGZvbGRlci5cbiAgICovXG4gIEVzbSA9ICdlc20nLFxuXG4gIC8qKlxuICBHZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIENvbW1vbkpTIGZpbGUuXG4gICAqL1xuICBHZW5lcmF0ZWREdXJpbmdCdWlsZENqcyA9ICdnZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLmNqcycsXG5cbiAgLyoqXG4gIEdlbmVyYXRlZC1kdXJpbmctYnVpbGQgRVNNIEphdmFTY3JpcHQgZmlsZS5cbiAgICovXG4gIEdlbmVyYXRlZER1cmluZ0J1aWxkTWpzID0gJ2dlbmVyYXRlZC1kdXJpbmctYnVpbGQubWpzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhDanMgPSAnaW5kZXguY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERjdHMgPSAnaW5kZXguZC5jdHMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhNanMgPSAnaW5kZXgubWpzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhUcyA9ICdpbmRleC50cycsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgc291cmNlcyBvZiB0aGUgcGx1Z2luLUFQSSBpbnRlZ3JhdGlvbi10ZXN0IENPTlNVTUVSIHBsdWdpbi5cbiAgICovXG4gIEludGVncmF0aW9uVGVzdFBsdWdpbkFwaUNvbnN1bWVyID0gJ2ludGVncmF0aW9uLXRlc3QtcGx1Z2luLWFwaS9jb25zdW1lcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgc291cmNlcyBvZiB0aGUgcGx1Z2luLUFQSSBpbnRlZ3JhdGlvbi10ZXN0IFBST1ZJREVSIHBsdWdpbi5cbiAgICovXG4gIEludGVncmF0aW9uVGVzdFBsdWdpbkFwaVByb3ZpZGVyID0gJ2ludGVncmF0aW9uLXRlc3QtcGx1Z2luLWFwaS9wcm92aWRlcicsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKlxuICBFU00gTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKipcbiAgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBzY2hlbWEgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50VHlwZXNNYXJrZG93bmxpbnRDbGkyQ29uZmlnU2NoZW1hRHRzID0gJ3NyYy9zY3JpcHQtdXRpbHMvbGludGVycy9tYXJrZG93bmxpbnQtdHlwZXMvQHR5cGVzL21hcmtkb3dubGludC1jbGkyLWNvbmZpZy1zY2hlbWEuZC50cycsXG5cbiAgLyoqXG4gIEdlbmVyYXRlZCBmbGF0IHJlLWV4cG9ydCBiYXJyZWwgZmlsZS5cbiAgICovXG4gIE1lcmdlZFRzID0gJ19fbWVyZ2VkLnRzJyxcblxuICAvKipcbiAgRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBNanNFeHRlbnNpb24gPSAnLm1qcycsXG5cbiAgLyoqXG4gIE5vZGUgbW9kdWxlcyBmb2xkZXIuXG4gICAqL1xuICBOb2RlTW9kdWxlcyA9ICdub2RlX21vZHVsZXMnLFxuXG4gIC8qKlxuICBQYWNrYWdlIEpTT04gZmlsZS5cbiAgICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqXG4gIEZvbGRlciBob2xkaW5nIGhhbmQtd3JpdHRlbiBwYXRjaGVkIGNvcGllcyBvZiB0aGlyZC1wYXJ0eSBwYWNrYWdlcy5cbiAgICovXG4gIFBhdGNoZXMgPSAncGF0Y2hlcycsXG5cbiAgLyoqXG4gIFJvb3QgZm9sZGVyLlxuICAgKi9cbiAgUm9vdEZvbGRlciA9ICcvJyxcblxuICAvKipcbiAgU2NyaXB0cyBmb2xkZXIuXG4gICAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKlxuICBTY3JpcHRVdGlscyBmb2xkZXIuXG4gICAqL1xuICBTY3JpcHRVdGlscyA9ICdzY3JpcHQtdXRpbHMnLFxuXG4gIC8qKlxuICBTb3VyY2UgZm9sZGVyLlxuICAgKi9cbiAgU3JjID0gJ3NyYycsXG5cbiAgLyoqXG4gIFN0eWxlcyBmb2xkZXIuXG4gICAqL1xuICBTdHlsZXMgPSAnc3R5bGVzJyxcblxuICAvKipcbiAgU3R5bGVzIENTUyBmaWxlLlxuICAgKi9cbiAgU3R5bGVzQ3NzID0gJ3N0eWxlcy5jc3MnLFxuXG4gIC8qKlxuICBUZW1wbGF0ZXMgZm9sZGVyLlxuICAgKi9cbiAgVGVtcGxhdGVzID0gJ3RlbXBsYXRlcycsXG5cbiAgLyoqXG4gIFRlc3QgaGVscGVycyBmb2xkZXIuXG4gICAqL1xuICBUZXN0SGVscGVycyA9ICd0ZXN0LWhlbHBlcnMnLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIFRzQ29uZmlnSnNvbiA9ICd0c2NvbmZpZy5qc29uJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBDb21tb25KUyBkZWNsYXJhdGlvbnMuXG4gICAqL1xuICBUc0NvbmZpZ1ZhbGlkYXRlRGVjbGFyYXRpb25zQ2pzSnNvbiA9ICd0c2NvbmZpZy52YWxpZGF0ZS1kZWNsYXJhdGlvbnMtY2pzLmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IHZhbGlkYXRlcyB0aGUgZ2VuZXJhdGVkIEVTTSBkZWNsYXJhdGlvbnMuXG4gICAqL1xuICBUc0NvbmZpZ1ZhbGlkYXRlRGVjbGFyYXRpb25zSnNvbiA9ICd0c2NvbmZpZy52YWxpZGF0ZS1kZWNsYXJhdGlvbnMuanNvbicsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBUc0V4dGVuc2lvbiA9ICcudHMnLFxuXG4gIC8qKlxuICBUeXBlcyBmb2xkZXIuXG4gICAqL1xuICBUeXBlcyA9ICdAdHlwZXMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdPLElBQUssNEJBQUwsa0JBQUtBLCtCQUFMO0FBSUwsRUFBQUEsMkJBQUEsU0FBTTtBQUtOLEVBQUFBLDJCQUFBLFlBQVM7QUFLVCxFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLFlBQVM7QUFLVCxFQUFBQSwyQkFBQSxZQUFTO0FBS1QsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLFdBQVE7QUFLUixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsU0FBTTtBQUtOLEVBQUFBLDJCQUFBLGtCQUFlO0FBS2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUtoQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsVUFBTztBQUtQLEVBQUFBLDJCQUFBLHlCQUFzQjtBQUt0QixFQUFBQSwyQkFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUs1QixFQUFBQSwyQkFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLDJCQUFBLGtCQUFlO0FBS2YsRUFBQUEsMkJBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLDJCQUFBLFVBQU87QUFLUCxFQUFBQSwyQkFBQSxjQUFXO0FBS1gsRUFBQUEsMkJBQUEsZ0JBQWE7QUFLYixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLHFCQUFrQjtBQUtsQixFQUFBQSwyQkFBQSxTQUFNO0FBS04sRUFBQUEsMkJBQUEsNkJBQTBCO0FBSzFCLEVBQUFBLDJCQUFBLDZCQUEwQjtBQUsxQixFQUFBQSwyQkFBQSxjQUFXO0FBS1gsRUFBQUEsMkJBQUEsZUFBWTtBQUtaLEVBQUFBLDJCQUFBLGVBQVk7QUFLWixFQUFBQSwyQkFBQSxjQUFXO0FBS1gsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLHNDQUFtQztBQUtuQyxFQUFBQSwyQkFBQSxzQ0FBbUM7QUFLbkMsRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSwrQkFBNEI7QUFLNUIsRUFBQUEsMkJBQUEsc0RBQW1EO0FBS25ELEVBQUFBLDJCQUFBLGNBQVc7QUFLWCxFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsZ0JBQWE7QUFLYixFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSxTQUFNO0FBS04sRUFBQUEsMkJBQUEsWUFBUztBQUtULEVBQUFBLDJCQUFBLGVBQVk7QUFLWixFQUFBQSwyQkFBQSxlQUFZO0FBS1osRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLHlDQUFzQztBQUt0QyxFQUFBQSwyQkFBQSxzQ0FBbUM7QUFLbkMsRUFBQUEsMkJBQUEsaUJBQWM7QUFLZCxFQUFBQSwyQkFBQSxXQUFRO0FBdFNFLFNBQUFBO0FBQUEsR0FBQTsiLAogICJuYW1lcyI6IFsiT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyJdCn0K
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9vYnNpZGlhbi1kZXYtdXRpbHMtcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZW51bWVyYXRpb24gb2YgY29tbW9uIGZpbGUgcGF0aHMgYW5kIHBhdHRlcm5zIHVzZWQgaW4gdGhlIE9ic2lkaWFuIGRldmVsb3BtZW50IHV0aWxpdGllcyByZXBvc2l0b3J5LlxuICogVGhlc2UgcGF0aHMgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgb3RoZXIgdXRpbGl0aWVzLCBlbnN1cmluZyBjb25zaXN0ZW5jeSBhbmQgcmVkdWNpbmcgdGhlIGxpa2VsaWhvb2RcbiAqIG9mIGVycm9ycyBkdWUgdG8gaGFyZGNvZGVkIHN0cmluZ3MuXG4gKi9cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiBjb21tb24gZmlsZSBwYXRocyBhbmQgcGF0dGVybnMgdXNlZCBpbiB0aGUgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBlbnVtIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMge1xuICAvKipcbiAgQW55IGZpbGUgb3IgZm9sZGVyLlxuICAgKi9cbiAgQW55ID0gJyonLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlLlxuICAgKi9cbiAgQW55Q2pzID0gJyouY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgQW55RGN0cyA9ICcqLmQuY3RzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueURtdHMgPSAnKi5kLm10cycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZS5cbiAgICovXG4gIEFueUR0cyA9ICcqLmQudHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55TWpzID0gJyoubWpzJyxcblxuICAvKipcbiAgQW55IHBhdGggcmVjdXJzaXZlbHkuXG4gICAqL1xuICBBbnlQYXRoID0gJyoqJyxcblxuICAvKipcbiAgQW55IFR5cGVTY3JpcHQgZmlsZS5cbiAgICovXG4gIEFueVRzID0gJyoudHMnLFxuXG4gIC8qKlxuICBBc3RybyBjb25maWd1cmF0aW9uIGZpbGUgKGRvY3VtZW50YXRpb24gc2l0ZSkgYXQgdGhlIHJlcG8gcm9vdC5cbiAgICovXG4gIEFzdHJvQ29uZmlnVHMgPSAnYXN0cm8uY29uZmlnLnRzJyxcblxuICAvKipcbiAgV2luZG93cyBiYXRjaCBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIEJhdEV4dGVuc2lvbiA9ICcuYmF0JyxcblxuICAvKipcbiAgRm9sZGVyIGhvbGRpbmcgdGhlIGV4ZWN1dGFibGUgc2hpbXMgb2YgbG9jYWxseS1pbnN0YWxsZWQgcGFja2FnZXMuXG4gICAqL1xuICBCaW4gPSAnLmJpbicsXG5cbiAgLyoqXG4gIEJ1biBsb2NrZmlsZS5cbiAgICovXG4gIEJ1bkxvY2sgPSAnYnVuLmxvY2snLFxuXG4gIC8qKlxuICBCaW5hcnkgYnVuIGxvY2tmaWxlLCB3cml0dGVuIGJ5IGJ1biBiZWZvcmUgdjEuMi5cbiAgICovXG4gIEJ1bkxvY2tiID0gJ2J1bi5sb2NrYicsXG5cbiAgLyoqXG4gIENvbW1vbkpTIGZvbGRlci5cbiAgICovXG4gIENqcyA9ICdjanMnLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIENqc0V4dGVuc2lvbiA9ICcuY2pzJyxcblxuICAvKipcbiAgV2luZG93cyBjb21tYW5kIHNjcmlwdCBleHRlbnNpb24uXG4gICAqL1xuICBDb21tYW5kRXh0ZW5zaW9uID0gJy5jbWQnLFxuXG4gIC8qKlxuICBDdXJyZW50IGZvbGRlci5cbiAgICovXG4gIEN1cnJlbnRGb2xkZXIgPSAnLicsXG5cbiAgLyoqXG4gIERhdGF2aWV3IHR5cGVzLlxuICAgKi9cbiAgRGF0YXZpZXdUeXBlcyA9ICdzcmMvb2JzaWRpYW4vQHR5cGVzL2RhdGF2aWV3LyoqJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERjdHNFeHRlbnNpb24gPSAnLmQuY3RzJyxcblxuICAvKipcbiAgRGlzdHJpYnV0aW9uIGZvbGRlci5cbiAgICovXG4gIERpc3QgPSAnZGlzdCcsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYnVpbHQgYGRlbW8tdmF1bHQtaGVscGVyYCBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLCBpbmplY3RlZCBpbnRvIGRlbW8gdmF1bHRzIGF0IHJlbGVhc2UgdGltZS5cbiAgICovXG4gIERpc3REZW1vVmF1bHRIZWxwZXIgPSAnZGlzdC9kZW1vLXZhdWx0LWhlbHBlcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYnVpbHQgaW50ZWdyYXRpb24tdGVzdCBoYXJuZXNzIHBsdWdpbiB3aXRoaW4gdGhlIHtAbGluayBEaXN0fSBmb2xkZXIsIHNlZWRlZCBpbnRvIGEgY29uc3VtZXIncyBpbnRlZ3JhdGlvbi10ZXN0IHZhdWx0IHNvIGl0cyBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmVzIHJlYWNoIHRoZSBsaWJyYXJ5IHZpYSBgbGliYC5cbiAgICovXG4gIERpc3RJbnRlZ3JhdGlvblRlc3RQbHVnaW4gPSAnZGlzdC9pbnRlZ3JhdGlvbi10ZXN0LXBsdWdpbicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYGxpYmAgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci5cbiAgICovXG4gIERpc3RMaWIgPSAnZGlzdC9saWInLFxuXG4gIC8qKlxuICBBIHBhdGggdG8gdGhlIGJ1aWx0IHBsdWdpbi1BUEkgaW50ZWdyYXRpb24tdGVzdCBDT05TVU1FUiBwbHVnaW4gd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLiBUZXN0LW9ubHkgYW5kIG5ldmVyIHNoaXBwZWQ7IGJ1aWx0IHNlcGFyYXRlbHkgZnJvbSBpdHMgcHJvdmlkZXIgc28gdGhlIHR3byBjYXJyeSBkaXN0aW5jdCBgb2JzaWRpYW4tZGV2LXV0aWxzYCBjb3BpZXMuXG4gICAqL1xuICBEaXN0UGx1Z2luQXBpVGVzdENvbnN1bWVyID0gJ2Rpc3QvcGx1Z2luLWFwaS10ZXN0LWNvbnN1bWVyJyxcblxuICAvKipcbiAgQSBwYXRoIHRvIHRoZSBidWlsdCBwbHVnaW4tQVBJIGludGVncmF0aW9uLXRlc3QgUFJPVklERVIgcGx1Z2luIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlci4gVGVzdC1vbmx5IGFuZCBuZXZlciBzaGlwcGVkOyBidWlsdCBzZXBhcmF0ZWx5IGZyb20gaXRzIGNvbnN1bWVyIHNvIHRoZSB0d28gY2FycnkgZGlzdGluY3QgYG9ic2lkaWFuLWRldi11dGlsc2AgY29waWVzLlxuICAgKi9cbiAgRGlzdFBsdWdpbkFwaVRlc3RQcm92aWRlciA9ICdkaXN0L3BsdWdpbi1hcGktdGVzdC1wcm92aWRlcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgYHRlbXBsYXRlc2AgZm9sZGVyIHdpdGhpbiB0aGUge0BsaW5rIERpc3R9IGZvbGRlciwgaG9sZGluZyB0aGUgY29uc3VtZXItZmFjaW5nIHRlbXBsYXRlcy5cbiAgICovXG4gIERpc3RUZW1wbGF0ZXMgPSAnZGlzdC90ZW1wbGF0ZXMnLFxuXG4gIC8qKlxuICBUcmFuc3BpbGVkIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBEanNFeHRlbnNpb24gPSAnLmQuanMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGV4dGVuc2lvbi5cbiAgICovXG4gIERtdHNFeHRlbnNpb24gPSAnLmQubXRzJyxcblxuICAvKipcbiAgRG9jdW1lbnRhdGlvbiBzaXRlIGZvbGRlciAoQXN0cm8gKyBTdGFybGlnaHQgQVBJLWRvY3Mgc3ViLXByb2plY3QpLlxuICAgKi9cbiAgRG9jcyA9ICdkb2NzJyxcblxuICAvKipcbiAgQnVpbGQgb3V0cHV0IGZvbGRlciBvZiB0aGUgZG9jdW1lbnRhdGlvbiBzaXRlLlxuICAgKi9cbiAgRG9jc0Rpc3QgPSAnZG9jcy9kaXN0JyxcblxuICAvKipcbiAgRHByaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIERwcmludEpzb24gPSAnZHByaW50Lmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRHRzRXh0ZW5zaW9uID0gJy5kLnRzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqXG4gIEVTTSBKYXZhU2NyaXB0IGZvbGRlci5cbiAgICovXG4gIEVzbSA9ICdlc20nLFxuXG4gIC8qKlxuICBXaW5kb3dzIGV4ZWN1dGFibGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgRXhlRXh0ZW5zaW9uID0gJy5leGUnLFxuXG4gIC8qKlxuICBHZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkIENvbW1vbkpTIGZpbGUuXG4gICAqL1xuICBHZW5lcmF0ZWREdXJpbmdCdWlsZENqcyA9ICdnZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLmNqcycsXG5cbiAgLyoqXG4gIEdlbmVyYXRlZC1kdXJpbmctYnVpbGQgRVNNIEphdmFTY3JpcHQgZmlsZS5cbiAgICovXG4gIEdlbmVyYXRlZER1cmluZ0J1aWxkTWpzID0gJ2dlbmVyYXRlZC1kdXJpbmctYnVpbGQubWpzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhDanMgPSAnaW5kZXguY2pzJyxcblxuICAvKipcbiAgQ29tbW9uSlMgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERjdHMgPSAnaW5kZXguZC5jdHMnLFxuXG4gIC8qKlxuICBFU00gVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGluZGV4IGZpbGUuXG4gICAqL1xuICBJbmRleERtdHMgPSAnaW5kZXguZC5tdHMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhNanMgPSAnaW5kZXgubWpzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBpbmRleCBmaWxlLlxuICAgKi9cbiAgSW5kZXhUcyA9ICdpbmRleC50cycsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgc291cmNlcyBvZiB0aGUgcGx1Z2luLUFQSSBpbnRlZ3JhdGlvbi10ZXN0IENPTlNVTUVSIHBsdWdpbi5cbiAgICovXG4gIEludGVncmF0aW9uVGVzdFBsdWdpbkFwaUNvbnN1bWVyID0gJ2ludGVncmF0aW9uLXRlc3QtcGx1Z2luLWFwaS9jb25zdW1lcicsXG5cbiAgLyoqXG4gIEEgcGF0aCB0byB0aGUgc291cmNlcyBvZiB0aGUgcGx1Z2luLUFQSSBpbnRlZ3JhdGlvbi10ZXN0IFBST1ZJREVSIHBsdWdpbi5cbiAgICovXG4gIEludGVncmF0aW9uVGVzdFBsdWdpbkFwaVByb3ZpZGVyID0gJ2ludGVncmF0aW9uLXRlc3QtcGx1Z2luLWFwaS9wcm92aWRlcicsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBKc0V4dGVuc2lvbiA9ICcuanMnLFxuXG4gIC8qKlxuICBFU00gTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyA9ICcubWFya2Rvd25saW50LWNsaTIubWpzJyxcblxuICAvKipcbiAgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBzY2hlbWEgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50VHlwZXNNYXJrZG93bmxpbnRDbGkyQ29uZmlnU2NoZW1hRHRzID0gJ3NyYy9zY3JpcHQtdXRpbHMvbGludGVycy9tYXJrZG93bmxpbnQtdHlwZXMvQHR5cGVzL21hcmtkb3dubGludC1jbGkyLWNvbmZpZy1zY2hlbWEuZC50cycsXG5cbiAgLyoqXG4gIEdlbmVyYXRlZCBmbGF0IHJlLWV4cG9ydCBiYXJyZWwgZmlsZS5cbiAgICovXG4gIE1lcmdlZFRzID0gJ19fbWVyZ2VkLnRzJyxcblxuICAvKipcbiAgRVNNIEphdmFTY3JpcHQgZmlsZSBleHRlbnNpb24uXG4gICAqL1xuICBNanNFeHRlbnNpb24gPSAnLm1qcycsXG5cbiAgLyoqXG4gIE5vZGUgbW9kdWxlcyBmb2xkZXIuXG4gICAqL1xuICBOb2RlTW9kdWxlcyA9ICdub2RlX21vZHVsZXMnLFxuXG4gIC8qKlxuICBQYWNrYWdlIEpTT04gZmlsZS5cbiAgICovXG4gIFBhY2thZ2VKc29uID0gJ3BhY2thZ2UuanNvbicsXG5cbiAgLyoqXG4gIE5QTSBsb2NrZmlsZS5cbiAgICovXG4gIFBhY2thZ2VMb2NrSnNvbiA9ICdwYWNrYWdlLWxvY2suanNvbicsXG5cbiAgLyoqXG4gIEZvbGRlciBob2xkaW5nIGhhbmQtd3JpdHRlbiBwYXRjaGVkIGNvcGllcyBvZiB0aGlyZC1wYXJ0eSBwYWNrYWdlcy5cbiAgICovXG4gIFBhdGNoZXMgPSAncGF0Y2hlcycsXG5cbiAgLyoqXG4gIFBucG0gbG9ja2ZpbGUuXG4gICAqL1xuICBQbnBtTG9ja1lhbWwgPSAncG5wbS1sb2NrLnlhbWwnLFxuXG4gIC8qKlxuICBSb290IGZvbGRlci5cbiAgICovXG4gIFJvb3RGb2xkZXIgPSAnLycsXG5cbiAgLyoqXG4gIFNjcmlwdHMgZm9sZGVyLlxuICAgKi9cbiAgU2NyaXB0cyA9ICdzY3JpcHRzJyxcblxuICAvKipcbiAgU2NyaXB0VXRpbHMgZm9sZGVyLlxuICAgKi9cbiAgU2NyaXB0VXRpbHMgPSAnc2NyaXB0LXV0aWxzJyxcblxuICAvKipcbiAgU291cmNlIGZvbGRlci5cbiAgICovXG4gIFNyYyA9ICdzcmMnLFxuXG4gIC8qKlxuICBTdHlsZXMgZm9sZGVyLlxuICAgKi9cbiAgU3R5bGVzID0gJ3N0eWxlcycsXG5cbiAgLyoqXG4gIFN0eWxlcyBDU1MgZmlsZS5cbiAgICovXG4gIFN0eWxlc0NzcyA9ICdzdHlsZXMuY3NzJyxcblxuICAvKipcbiAgVGVtcGxhdGVzIGZvbGRlci5cbiAgICovXG4gIFRlbXBsYXRlcyA9ICd0ZW1wbGF0ZXMnLFxuXG4gIC8qKlxuICBUZXN0IGhlbHBlcnMgZm9sZGVyLlxuICAgKi9cbiAgVGVzdEhlbHBlcnMgPSAndGVzdC1oZWxwZXJzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBUc0NvbmZpZ0pzb24gPSAndHNjb25maWcuanNvbicsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgdmFsaWRhdGVzIHRoZSBnZW5lcmF0ZWQgQ29tbW9uSlMgZGVjbGFyYXRpb25zLlxuICAgKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0Nqc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLWNqcy5qc29uJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCB2YWxpZGF0ZXMgdGhlIGdlbmVyYXRlZCBFU00gZGVjbGFyYXRpb25zLlxuICAgKi9cbiAgVHNDb25maWdWYWxpZGF0ZURlY2xhcmF0aW9uc0pzb24gPSAndHNjb25maWcudmFsaWRhdGUtZGVjbGFyYXRpb25zLmpzb24nLFxuXG4gIC8qKlxuICBUeXBlU2NyaXB0IGZpbGUgZXh0ZW5zaW9uLlxuICAgKi9cbiAgVHNFeHRlbnNpb24gPSAnLnRzJyxcblxuICAvKipcbiAgVHlwZXMgZm9sZGVyLlxuICAgKi9cbiAgVHlwZXMgPSAnQHR5cGVzJyxcblxuICAvKipcbiAgWWFybiBsb2NrZmlsZS5cbiAgICovXG4gIFlhcm5Mb2NrID0gJ3lhcm4ubG9jaydcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBV08sSUFBSyw0QkFBTCxrQkFBS0EsK0JBQUw7QUFJTCxFQUFBQSwyQkFBQSxTQUFNO0FBS04sRUFBQUEsMkJBQUEsWUFBUztBQUtULEVBQUFBLDJCQUFBLGFBQVU7QUFLVixFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsWUFBUztBQUtULEVBQUFBLDJCQUFBLFlBQVM7QUFLVCxFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsV0FBUTtBQUtSLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUtoQixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLFNBQU07QUFLTixFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsY0FBVztBQUtYLEVBQUFBLDJCQUFBLFNBQU07QUFLTixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLHNCQUFtQjtBQUtuQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBS2hCLEVBQUFBLDJCQUFBLG1CQUFnQjtBQUtoQixFQUFBQSwyQkFBQSxVQUFPO0FBS1AsRUFBQUEsMkJBQUEseUJBQXNCO0FBS3RCLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUs1QixFQUFBQSwyQkFBQSxhQUFVO0FBS1YsRUFBQUEsMkJBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLDJCQUFBLCtCQUE0QjtBQUs1QixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsa0JBQWU7QUFLZixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFLaEIsRUFBQUEsMkJBQUEsVUFBTztBQUtQLEVBQUFBLDJCQUFBLGNBQVc7QUFLWCxFQUFBQSwyQkFBQSxnQkFBYTtBQUtiLEVBQUFBLDJCQUFBLGtCQUFlO0FBS2YsRUFBQUEsMkJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLDJCQUFBLFNBQU07QUFLTixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLDZCQUEwQjtBQUsxQixFQUFBQSwyQkFBQSw2QkFBMEI7QUFLMUIsRUFBQUEsMkJBQUEsY0FBVztBQUtYLEVBQUFBLDJCQUFBLGVBQVk7QUFLWixFQUFBQSwyQkFBQSxlQUFZO0FBS1osRUFBQUEsMkJBQUEsY0FBVztBQUtYLEVBQUFBLDJCQUFBLGFBQVU7QUFLVixFQUFBQSwyQkFBQSxzQ0FBbUM7QUFLbkMsRUFBQUEsMkJBQUEsc0NBQW1DO0FBS25DLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLDJCQUFBLHNEQUFtRDtBQUtuRCxFQUFBQSwyQkFBQSxjQUFXO0FBS1gsRUFBQUEsMkJBQUEsa0JBQWU7QUFLZixFQUFBQSwyQkFBQSxpQkFBYztBQUtkLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLDJCQUFBLGFBQVU7QUFLVixFQUFBQSwyQkFBQSxrQkFBZTtBQUtmLEVBQUFBLDJCQUFBLGdCQUFhO0FBS2IsRUFBQUEsMkJBQUEsYUFBVTtBQUtWLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsU0FBTTtBQUtOLEVBQUFBLDJCQUFBLFlBQVM7QUFLVCxFQUFBQSwyQkFBQSxlQUFZO0FBS1osRUFBQUEsMkJBQUEsZUFBWTtBQUtaLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsa0JBQWU7QUFLZixFQUFBQSwyQkFBQSx5Q0FBc0M7QUFLdEMsRUFBQUEsMkJBQUEsc0NBQW1DO0FBS25DLEVBQUFBLDJCQUFBLGlCQUFjO0FBS2QsRUFBQUEsMkJBQUEsV0FBUTtBQUtSLEVBQUFBLDJCQUFBLGNBQVc7QUFuVkQsU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIl0KfQo=
|
|
@@ -47,6 +47,22 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
47
47
|
*/
|
|
48
48
|
AstroConfigTs = "astro.config.ts",
|
|
49
49
|
/**
|
|
50
|
+
Windows batch file extension.
|
|
51
|
+
*/
|
|
52
|
+
BatExtension = ".bat",
|
|
53
|
+
/**
|
|
54
|
+
Folder holding the executable shims of locally-installed packages.
|
|
55
|
+
*/
|
|
56
|
+
Bin = ".bin",
|
|
57
|
+
/**
|
|
58
|
+
Bun lockfile.
|
|
59
|
+
*/
|
|
60
|
+
BunLock = "bun.lock",
|
|
61
|
+
/**
|
|
62
|
+
Binary bun lockfile, written by bun before v1.2.
|
|
63
|
+
*/
|
|
64
|
+
BunLockb = "bun.lockb",
|
|
65
|
+
/**
|
|
50
66
|
CommonJS folder.
|
|
51
67
|
*/
|
|
52
68
|
Cjs = "cjs",
|
|
@@ -55,6 +71,10 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
55
71
|
*/
|
|
56
72
|
CjsExtension = ".cjs",
|
|
57
73
|
/**
|
|
74
|
+
Windows command script extension.
|
|
75
|
+
*/
|
|
76
|
+
CommandExtension = ".cmd",
|
|
77
|
+
/**
|
|
58
78
|
Current folder.
|
|
59
79
|
*/
|
|
60
80
|
CurrentFolder = ".",
|
|
@@ -127,6 +147,10 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
127
147
|
*/
|
|
128
148
|
Esm = "esm",
|
|
129
149
|
/**
|
|
150
|
+
Windows executable extension.
|
|
151
|
+
*/
|
|
152
|
+
ExeExtension = ".exe",
|
|
153
|
+
/**
|
|
130
154
|
Generated-during-build CommonJS file.
|
|
131
155
|
*/
|
|
132
156
|
GeneratedDuringBuildCjs = "generated-during-build.cjs",
|
|
@@ -191,10 +215,18 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
191
215
|
*/
|
|
192
216
|
PackageJson = "package.json",
|
|
193
217
|
/**
|
|
218
|
+
NPM lockfile.
|
|
219
|
+
*/
|
|
220
|
+
PackageLockJson = "package-lock.json",
|
|
221
|
+
/**
|
|
194
222
|
Folder holding hand-written patched copies of third-party packages.
|
|
195
223
|
*/
|
|
196
224
|
Patches = "patches",
|
|
197
225
|
/**
|
|
226
|
+
Pnpm lockfile.
|
|
227
|
+
*/
|
|
228
|
+
PnpmLockYaml = "pnpm-lock.yaml",
|
|
229
|
+
/**
|
|
198
230
|
Root folder.
|
|
199
231
|
*/
|
|
200
232
|
RootFolder = "/",
|
|
@@ -245,5 +277,9 @@ export declare enum ObsidianDevUtilsRepoPaths {
|
|
|
245
277
|
/**
|
|
246
278
|
Types folder.
|
|
247
279
|
*/
|
|
248
|
-
Types = "@types"
|
|
280
|
+
Types = "@types",
|
|
281
|
+
/**
|
|
282
|
+
Yarn lockfile.
|
|
283
|
+
*/
|
|
284
|
+
YarnLock = "yarn.lock"
|
|
249
285
|
}
|
|
@@ -0,0 +1,370 @@
|
|
|
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 () {
|
|
7
|
+
function ensureBrowserProcess() {
|
|
8
|
+
const browserProcess = {
|
|
9
|
+
browser: true,
|
|
10
|
+
cwd() {
|
|
11
|
+
return '/';
|
|
12
|
+
},
|
|
13
|
+
env: {},
|
|
14
|
+
platform: 'android'
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
18
|
+
const existingProcess = globalThis.process;
|
|
19
|
+
|
|
20
|
+
if (!existingProcess) {
|
|
21
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
22
|
+
globalThis.process = browserProcess;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (existingProcess.versions?.node) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const existingProcessRecord = existingProcess;
|
|
31
|
+
|
|
32
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
33
|
+
existingProcessRecord[key] ??= value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
existingProcessRecord['browser'] = true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function keepName($unknown) {
|
|
40
|
+
return $unknown;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
(function initCjs() {
|
|
44
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
45
|
+
const globalThisRecord = globalThis;
|
|
46
|
+
globalThisRecord['__name'] ??= keepName;
|
|
47
|
+
const originalRequire = require;
|
|
48
|
+
if (originalRequire && !originalRequire.__isPatched) {
|
|
49
|
+
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
50
|
+
require = Object.assign(
|
|
51
|
+
(id) => requirePatched(id),
|
|
52
|
+
originalRequire,
|
|
53
|
+
{
|
|
54
|
+
__isPatched: true
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
60
|
+
|
|
61
|
+
ensureBrowserProcess();
|
|
62
|
+
|
|
63
|
+
function extractDefault(module) {
|
|
64
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
68
|
+
'@codemirror/autocomplete',
|
|
69
|
+
'@codemirror/collab',
|
|
70
|
+
'@codemirror/commands',
|
|
71
|
+
'@codemirror/language',
|
|
72
|
+
'@codemirror/lint',
|
|
73
|
+
'@codemirror/search',
|
|
74
|
+
'@codemirror/state',
|
|
75
|
+
'@codemirror/text',
|
|
76
|
+
'@codemirror/view',
|
|
77
|
+
'@lezer/common',
|
|
78
|
+
'@lezer/highlight',
|
|
79
|
+
'@lezer/lr',
|
|
80
|
+
'obsidian']
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
84
|
+
'@codemirror/closebrackets',
|
|
85
|
+
'@codemirror/comment',
|
|
86
|
+
'@codemirror/fold',
|
|
87
|
+
'@codemirror/gutter',
|
|
88
|
+
'@codemirror/highlight',
|
|
89
|
+
'@codemirror/history',
|
|
90
|
+
'@codemirror/matchbrackets',
|
|
91
|
+
'@codemirror/panel',
|
|
92
|
+
'@codemirror/rangeset',
|
|
93
|
+
'@codemirror/rectangular-selection',
|
|
94
|
+
'@codemirror/stream-parser',
|
|
95
|
+
'@codemirror/tooltip']
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
function requirePatched(id) {
|
|
99
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
100
|
+
return originalRequire?.(id);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
104
|
+
if (globalThis.app.isMobile) {
|
|
105
|
+
if (id === 'process' || id === 'node:process') {
|
|
106
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
107
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
108
|
+
|
|
109
|
+
return process;
|
|
110
|
+
}
|
|
111
|
+
} else {
|
|
112
|
+
const module = originalRequire?.(id);
|
|
113
|
+
if (module) {
|
|
114
|
+
return extractDefault(module);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
119
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
120
|
+
return {};
|
|
121
|
+
}
|
|
122
|
+
})();
|
|
123
|
+
})();
|
|
124
|
+
|
|
125
|
+
"use strict";
|
|
126
|
+
var __create = Object.create;
|
|
127
|
+
var __defProp = Object.defineProperty;
|
|
128
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
129
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
130
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
131
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
132
|
+
var __export = (target, all) => {
|
|
133
|
+
for (var name in all)
|
|
134
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
135
|
+
};
|
|
136
|
+
var __copyProps = (to, from, except, desc) => {
|
|
137
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
138
|
+
for (let key of __getOwnPropNames(from))
|
|
139
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
140
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
141
|
+
}
|
|
142
|
+
return to;
|
|
143
|
+
};
|
|
144
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
145
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
146
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
147
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
148
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
149
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
150
|
+
mod
|
|
151
|
+
));
|
|
152
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
153
|
+
var package_manager_exports = {};
|
|
154
|
+
__export(package_manager_exports, {
|
|
155
|
+
PackageManager: () => PackageManager,
|
|
156
|
+
getPackageManager: () => getPackageManager,
|
|
157
|
+
getPackageManagerRunCommand: () => getPackageManagerRunCommand,
|
|
158
|
+
resolveToolCommand: () => resolveToolCommand
|
|
159
|
+
});
|
|
160
|
+
module.exports = __toCommonJS(package_manager_exports);
|
|
161
|
+
var import_node_fs = require('node:fs');
|
|
162
|
+
var import_node_process = __toESM(__extractDefault(require('node:process')), 1);
|
|
163
|
+
var import_path = require('../path.cjs');
|
|
164
|
+
var import_reg_exp = require('../reg-exp.cjs');
|
|
165
|
+
var import_type_guards = require('../type-guards.cjs');
|
|
166
|
+
var import_json = require('./json.cjs');
|
|
167
|
+
var import_obsidian_dev_utils_repo_paths = require('./obsidian-dev-utils-repo-paths.cjs');
|
|
168
|
+
var import_root = require('./root.cjs');
|
|
169
|
+
var PackageManager = /* @__PURE__ */ ((PackageManager2) => {
|
|
170
|
+
PackageManager2["Bun"] = "bun";
|
|
171
|
+
PackageManager2["Npm"] = "npm";
|
|
172
|
+
PackageManager2["Pnpm"] = "pnpm";
|
|
173
|
+
PackageManager2["Yarn"] = "yarn";
|
|
174
|
+
return PackageManager2;
|
|
175
|
+
})(PackageManager || {});
|
|
176
|
+
function getPackageManager(cwd) {
|
|
177
|
+
const root = getStartFolder(cwd);
|
|
178
|
+
const declaredPackageManager = detectPackageManagerFromPackageJson(root);
|
|
179
|
+
const lockfiles = LOCKFILES.filter((lockfile) => (0, import_node_fs.existsSync)((0, import_path.join)(root, lockfile.fileName)));
|
|
180
|
+
const claimants = new Set(lockfiles.map((lockfile) => lockfile.packageManager));
|
|
181
|
+
if (declaredPackageManager !== null) {
|
|
182
|
+
claimants.add(declaredPackageManager);
|
|
183
|
+
}
|
|
184
|
+
const packageManager = resolvePackageManager({
|
|
185
|
+
claimants,
|
|
186
|
+
declaredPackageManager
|
|
187
|
+
});
|
|
188
|
+
if (claimants.size > 1) {
|
|
189
|
+
warnAboutSeveralClaimants({
|
|
190
|
+
declaredPackageManager,
|
|
191
|
+
lockfiles,
|
|
192
|
+
packageManager,
|
|
193
|
+
root
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return packageManager;
|
|
197
|
+
}
|
|
198
|
+
function getPackageManagerRunCommand(cwd) {
|
|
199
|
+
return [getPackageManager(cwd), "run"];
|
|
200
|
+
}
|
|
201
|
+
function resolveToolCommand(params) {
|
|
202
|
+
const { cwd, tool } = params;
|
|
203
|
+
const shimPath = findBinShim({ cwd, tool });
|
|
204
|
+
if (shimPath !== null) {
|
|
205
|
+
return [shimPath];
|
|
206
|
+
}
|
|
207
|
+
return [...getPackageManagerExecCommand(cwd), tool];
|
|
208
|
+
}
|
|
209
|
+
const DECLARATION_NAME_REG_EXP = /^(?<name>[^@\s]+)@/;
|
|
210
|
+
const LOCKFILES = [
|
|
211
|
+
{ fileName: import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.BunLock, packageManager: "bun" /* Bun */ },
|
|
212
|
+
{ fileName: import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.BunLockb, packageManager: "bun" /* Bun */ },
|
|
213
|
+
{ fileName: import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.PnpmLockYaml, packageManager: "pnpm" /* Pnpm */ },
|
|
214
|
+
{ fileName: import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.YarnLock, packageManager: "yarn" /* Yarn */ },
|
|
215
|
+
{ fileName: import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.PackageLockJson, packageManager: "npm" /* Npm */ }
|
|
216
|
+
];
|
|
217
|
+
const USER_AGENT_NAME_REG_EXP = /^(?<name>[^/\s]+)\//;
|
|
218
|
+
const reportedDisagreements = /* @__PURE__ */ new Set();
|
|
219
|
+
function detectPackageManagerFromPackageJson(root) {
|
|
220
|
+
const packageJsonPath = (0, import_path.join)(root, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.PackageJson);
|
|
221
|
+
if (!(0, import_node_fs.existsSync)(packageJsonPath)) {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
let packageJson;
|
|
225
|
+
try {
|
|
226
|
+
packageJson = (0, import_json.readJsonSync)(packageJsonPath);
|
|
227
|
+
} catch {
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
230
|
+
const declaration = packageJson.packageManager;
|
|
231
|
+
if (!declaration) {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
const match = DECLARATION_NAME_REG_EXP.exec(declaration);
|
|
235
|
+
if (!match) {
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
return parsePackageManagerName((0, import_reg_exp.getMandatoryNamedGroup)(match, "name"));
|
|
239
|
+
}
|
|
240
|
+
function detectPackageManagerFromUserAgent() {
|
|
241
|
+
const userAgent = import_node_process.default.env["npm_config_user_agent"];
|
|
242
|
+
if (!userAgent) {
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
const match = USER_AGENT_NAME_REG_EXP.exec(userAgent);
|
|
246
|
+
if (!match) {
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
return parsePackageManagerName((0, import_reg_exp.getMandatoryNamedGroup)(match, "name"));
|
|
250
|
+
}
|
|
251
|
+
function findBinShim(params) {
|
|
252
|
+
const { cwd, tool } = params;
|
|
253
|
+
const candidates = getShimCandidates(tool);
|
|
254
|
+
let currentFolder = getStartFolder(cwd);
|
|
255
|
+
while (currentFolder !== import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.CurrentFolder && currentFolder !== import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.RootFolder) {
|
|
256
|
+
for (const candidate of candidates) {
|
|
257
|
+
const shimPath = (0, import_path.join)(currentFolder, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.NodeModules, import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.Bin, candidate);
|
|
258
|
+
if ((0, import_node_fs.existsSync)(shimPath)) {
|
|
259
|
+
return shimPath;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
currentFolder = (0, import_path.dirname)(currentFolder);
|
|
263
|
+
}
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
266
|
+
function getPackageManagerExecCommand(cwd) {
|
|
267
|
+
const packageManager = getPackageManager(cwd);
|
|
268
|
+
switch (packageManager) {
|
|
269
|
+
case "bun" /* Bun */: {
|
|
270
|
+
return ["bun", "x"];
|
|
271
|
+
}
|
|
272
|
+
case "npm" /* Npm */: {
|
|
273
|
+
return ["npx"];
|
|
274
|
+
}
|
|
275
|
+
case "pnpm" /* Pnpm */: {
|
|
276
|
+
return ["pnpm", "exec"];
|
|
277
|
+
}
|
|
278
|
+
case "yarn" /* Yarn */: {
|
|
279
|
+
return ["yarn", "exec"];
|
|
280
|
+
}
|
|
281
|
+
/* v8 ignore start -- Exhaustive switch guard; default branch is unreachable. */
|
|
282
|
+
default: {
|
|
283
|
+
return (0, import_type_guards.assertNever)(packageManager);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
function getShimCandidates(tool) {
|
|
288
|
+
if (import_node_process.default.platform !== "win32") {
|
|
289
|
+
return [tool];
|
|
290
|
+
}
|
|
291
|
+
return [
|
|
292
|
+
`${tool}${import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.CommandExtension}`,
|
|
293
|
+
`${tool}${import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.ExeExtension}`,
|
|
294
|
+
`${tool}${import_obsidian_dev_utils_repo_paths.ObsidianDevUtilsRepoPaths.BatExtension}`
|
|
295
|
+
];
|
|
296
|
+
}
|
|
297
|
+
function getStartFolder(cwd) {
|
|
298
|
+
return (0, import_root.getRootFolder)(cwd) ?? (0, import_path.toPosixPath)(cwd ?? import_node_process.default.cwd());
|
|
299
|
+
}
|
|
300
|
+
function parsePackageManagerName(name) {
|
|
301
|
+
switch (name) {
|
|
302
|
+
case "bun" /* Bun */: {
|
|
303
|
+
return "bun" /* Bun */;
|
|
304
|
+
}
|
|
305
|
+
case "npm" /* Npm */: {
|
|
306
|
+
return "npm" /* Npm */;
|
|
307
|
+
}
|
|
308
|
+
case "pnpm" /* Pnpm */: {
|
|
309
|
+
return "pnpm" /* Pnpm */;
|
|
310
|
+
}
|
|
311
|
+
case "yarn" /* Yarn */: {
|
|
312
|
+
return "yarn" /* Yarn */;
|
|
313
|
+
}
|
|
314
|
+
default: {
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
function resolvePackageManager(params) {
|
|
320
|
+
const {
|
|
321
|
+
claimants,
|
|
322
|
+
declaredPackageManager
|
|
323
|
+
} = params;
|
|
324
|
+
if (declaredPackageManager !== null) {
|
|
325
|
+
return declaredPackageManager;
|
|
326
|
+
}
|
|
327
|
+
const lockfileOwners = [...claimants];
|
|
328
|
+
const [firstLockfileOwner] = lockfileOwners;
|
|
329
|
+
if (firstLockfileOwner === void 0) {
|
|
330
|
+
return detectPackageManagerFromUserAgent() ?? "npm" /* Npm */;
|
|
331
|
+
}
|
|
332
|
+
if (lockfileOwners.length === 1) {
|
|
333
|
+
return firstLockfileOwner;
|
|
334
|
+
}
|
|
335
|
+
const launchedBy = detectPackageManagerFromUserAgent();
|
|
336
|
+
if (launchedBy !== null && claimants.has(launchedBy)) {
|
|
337
|
+
return launchedBy;
|
|
338
|
+
}
|
|
339
|
+
return firstLockfileOwner;
|
|
340
|
+
}
|
|
341
|
+
function warnAboutSeveralClaimants(params) {
|
|
342
|
+
const {
|
|
343
|
+
declaredPackageManager,
|
|
344
|
+
lockfiles,
|
|
345
|
+
packageManager,
|
|
346
|
+
root
|
|
347
|
+
} = params;
|
|
348
|
+
const lockfileNames = lockfiles.map((lockfile) => lockfile.fileName).join(", ");
|
|
349
|
+
const advice = declaredPackageManager === null ? 'Delete the stale lockfile, or declare "packageManager" in package.json, to settle it.' : "Delete the stale lockfile to settle it.";
|
|
350
|
+
const message = [
|
|
351
|
+
`obsidian-dev-utils: more than one package manager claims ${root}.`,
|
|
352
|
+
`Lockfiles: ${lockfileNames}.`,
|
|
353
|
+
`package.json "packageManager": ${declaredPackageManager ?? "not set"}.`,
|
|
354
|
+
`Using ${packageManager}.`,
|
|
355
|
+
advice
|
|
356
|
+
].join(" ");
|
|
357
|
+
if (reportedDisagreements.has(message)) {
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
reportedDisagreements.add(message);
|
|
361
|
+
console.warn(message);
|
|
362
|
+
}
|
|
363
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
364
|
+
0 && (module.exports = {
|
|
365
|
+
PackageManager,
|
|
366
|
+
getPackageManager,
|
|
367
|
+
getPackageManagerRunCommand,
|
|
368
|
+
resolveToolCommand
|
|
369
|
+
});
|
|
370
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9wYWNrYWdlLW1hbmFnZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZXNvbHZlcyBsb2NhbGx5LWluc3RhbGxlZCB0b29sIGJpbmFyaWVzIGFuZCBwYWNrYWdlLXNjcmlwdCBydW5uZXJzIHdpdGhvdXQgYXNzdW1pbmcgYG5wbWAuXG4gKlxuICogRGVsZWdhdGluZyB0byBgbnB4YCBzaWxlbnRseSBhc3N1bWVzIGFuIG5wbS1pbnN0YWxsZWQgdHJlZS4gT24gV2luZG93cyB0aGF0IGFzc3VtcHRpb24gaXMgZmF0YWwgdW5kZXJcbiAqIGBidW5gOiBgYnVuIGluc3RhbGxgIHdyaXRlcyBgbm9kZV9tb2R1bGVzLy5iaW4vPHRvb2w+LmV4ZWAsIG5vdCB0aGUgYDx0b29sPi5jbWRgIHRoYXQgbnBtJ3MgYG5weGAgbG9va3NcbiAqIGZvciwgc28gYG5weGAgbWlzc2VzIHRoZSBsb2NhbCBpbnN0YWxsIGVudGlyZWx5IGFuZCBkb3dubG9hZHMgdGhlIHRvb2wgZnJvbSB0aGUgcmVnaXN0cnkgaW5zdGVhZCBcdTIwMTQgd2hpY2hcbiAqIGZvciBgdHNjYCBpcyB0aGUgd2VsbC1rbm93biBkZWNveSBwYWNrYWdlLCBub3QgVHlwZVNjcmlwdC4gUmVzb2x2aW5nIHRoZSBzaGltIGZyb20gYG5vZGVfbW9kdWxlcy8uYmluYFxuICogb3Vyc2VsdmVzIHNpZGVzdGVwcyB0aGUgd2hvbGUgc2hpbS1mb3JtYXQgcXVlc3Rpb24sIGJlY2F1c2UgZXZlcnkgcGFja2FnZSBtYW5hZ2VyIHdyaXRlcyBvbmUgdGhlcmUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQYWNrYWdlSnNvbiB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7XG4gIGRpcm5hbWUsXG4gIGpvaW4sXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZ2V0TWFuZGF0b3J5TmFtZWRHcm91cCB9IGZyb20gJy4uL3JlZy1leHAudHMnO1xuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICcuLi90eXBlLWd1YXJkcy50cyc7XG5pbXBvcnQgeyByZWFkSnNvblN5bmMgfSBmcm9tICcuL2pzb24udHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4vb2JzaWRpYW4tZGV2LXV0aWxzLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogQSBwYWNrYWdlIG1hbmFnZXIgdGhhdCBjYW4gb3duIGEgcHJvamVjdCdzIGRlcGVuZGVuY3kgdHJlZS5cbiAqL1xuZXhwb3J0IGVudW0gUGFja2FnZU1hbmFnZXIge1xuICAvKipcbiAgICogVGhlIGBidW5gIHBhY2thZ2UgbWFuYWdlci5cbiAgICovXG4gIEJ1biA9ICdidW4nLFxuXG4gIC8qKlxuICAgKiBUaGUgYG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgTnBtID0gJ25wbScsXG5cbiAgLyoqXG4gICAqIFRoZSBgcG5wbWAgcGFja2FnZSBtYW5hZ2VyLlxuICAgKi9cbiAgUG5wbSA9ICdwbnBtJyxcblxuICAvKipcbiAgICogVGhlIGB5YXJuYCBwYWNrYWdlIG1hbmFnZXIuXG4gICAqL1xuICBZYXJuID0gJ3lhcm4nXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVUb29sQ29tbWFuZH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZVRvb2xDb21tYW5kUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wsIGFzIGl0IGFwcGVhcnMgaW4gYG5vZGVfbW9kdWxlcy8uYmluYC5cbiAgICovXG4gIHJlYWRvbmx5IHRvb2w6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoaWNoIHBhY2thZ2UgbWFuYWdlciBvd25zIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jeSB0cmVlLlxuICpcbiAqIEV2ZXJ5IHNpZ25hbCBpcyBjb2xsZWN0ZWQgYmVmb3JlIGFueSBvZiB0aGVtIGlzIGJlbGlldmVkLCBiZWNhdXNlIGEgcmVwbyBjYXJyeWluZyB0d28gbG9ja2ZpbGVzIHVzZWQgdG9cbiAqIHJlc29sdmUgdG8gd2hpY2hldmVyIHNhdCBlYXJsaWVyIGluIGEgZml4ZWQgbGlzdCBcdTIwMTQgc2lsZW50bHkgcmVhc3NpZ25pbmcgZXZlcnkgcGFja2FnZSBzY3JpcHQgYW5kIGV2ZXJ5XG4gKiB0b29sIGludm9jYXRpb24gdG8gYSBtYW5hZ2VyIHRoYXQgbmV2ZXIgaW5zdGFsbGVkIHRoZSB0cmVlLlxuICpcbiAqIFRoZSBvcmRlciBpczpcbiAqXG4gKiAxLiBUaGUgYHBhY2thZ2VNYW5hZ2VyYCBmaWVsZCBvZiBgcGFja2FnZS5qc29uYC4gSXQgaXMgYSBkZWxpYmVyYXRlIGRlY2xhcmF0aW9uIGJ5IHRoZSByZXBvJ3MgYXV0aG9yXG4gKiAgICByYXRoZXIgdGhhbiBhbiBhcnRpZmFjdCBsZWZ0IGJlaGluZCBieSB3aGF0ZXZlciByYW4gbGFzdCwgc28gaXQgb3V0cmFua3MgZXZlcnkgbG9ja2ZpbGUgXHUyMDE0IGFuZCBpdCBpc1xuICogICAgdGhlIG9ubHkgc2lnbmFsIHRoYXQgaGVscHMgYXQgYWxsIGJlZm9yZSB0aGUgZmlyc3QgaW5zdGFsbCwgd2hlbiBubyBsb2NrZmlsZSBleGlzdHMgeWV0LlxuICogMi4gVGhlIHNvbGUgbG9ja2ZpbGUsIHdoZW4gZXhhY3RseSBvbmUgbWFuYWdlciBjbGFpbXMgdGhlIHRyZWUuXG4gKiAzLiBBbW9uZyBzZXZlcmFsIGxvY2tmaWxlcywgdGhlIG1hbmFnZXIgdGhhdCBsYXVuY2hlZCB1cyAoYG5wbV9jb25maWdfdXNlcl9hZ2VudGApLCB3aGVuIGl0IG93bnMgb25lIG9mXG4gKiAgICB0aGVtIFx1MjAxNCBhIGxpdmUgc2lnbmFsIGJlYXRzIGEgZmlsZSB0aGF0IG1heSBoYXZlIGJlZW4gYWJhbmRvbmVkIG1pZC1taWdyYXRpb24uIE90aGVyd2lzZSB0aGVcbiAqICAgIGRvY3VtZW50ZWQgZmFsbGJhY2sgb3JkZXIgaW4ge0BsaW5rIExPQ0tGSUxFU30gZGVjaWRlcy4gTm90ZSB0aGlzIGlzIGRlbGliZXJhdGVseSBOT1QgXCJ0aGUgbW9zdFxuICogICAgcmVjZW50bHkgbW9kaWZpZWQgbG9ja2ZpbGVcIjogYSBzdHJheSBsb2NrZmlsZSBpcyB0eXBpY2FsbHkgdGhlIG5ld2VzdCBmaWxlLCBzbyBtdGltZSBwaWNrcyBwcmVjaXNlbHlcbiAqICAgIHRoZSB3cm9uZyBvbmUuXG4gKiA0LiBgbnBtX2NvbmZpZ191c2VyX2FnZW50YCBvbiBpdHMgb3duLCB3aGVuIHRoZXJlIGlzIG5vIGxvY2tmaWxlLlxuICogNS4ge0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0uXG4gKlxuICogV2hlbmV2ZXIgbW9yZSB0aGFuIG9uZSBtYW5hZ2VyIGNsYWltcyB0aGUgdHJlZSwgdGhlIGRpc2FncmVlbWVudCBpcyByZXBvcnRlZCBvbmNlIHBlciBwcm9qZWN0IHRocm91Z2hcbiAqIHtAbGluayB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzfSBcdTIwMTQgdGhlIHJlc29sdXRpb24gc3RheXMgZGV0ZXJtaW5pc3RpYywgYnV0IGl0IHN0b3BzIGJlaW5nIHNpbGVudC5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIHBhY2thZ2UgbWFuYWdlciwgb3Ige0BsaW5rIFBhY2thZ2VNYW5hZ2VyLk5wbX0gd2hlbiBub3RoaW5nIGluZGljYXRlcyBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlcihjd2Q/OiBzdHJpbmcpOiBQYWNrYWdlTWFuYWdlciB7XG4gIGNvbnN0IHJvb3QgPSBnZXRTdGFydEZvbGRlcihjd2QpO1xuICBjb25zdCBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyID0gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tUGFja2FnZUpzb24ocm9vdCk7XG4gIGNvbnN0IGxvY2tmaWxlcyA9IExPQ0tGSUxFUy5maWx0ZXIoKGxvY2tmaWxlKSA9PiBleGlzdHNTeW5jKGpvaW4ocm9vdCwgbG9ja2ZpbGUuZmlsZU5hbWUpKSk7XG4gIGNvbnN0IGNsYWltYW50cyA9IG5ldyBTZXQobG9ja2ZpbGVzLm1hcCgobG9ja2ZpbGUpID0+IGxvY2tmaWxlLnBhY2thZ2VNYW5hZ2VyKSk7XG5cbiAgaWYgKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIgIT09IG51bGwpIHtcbiAgICBjbGFpbWFudHMuYWRkKGRlY2xhcmVkUGFja2FnZU1hbmFnZXIpO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSByZXNvbHZlUGFja2FnZU1hbmFnZXIoe1xuICAgIGNsYWltYW50cyxcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyXG4gIH0pO1xuXG4gIGlmIChjbGFpbWFudHMuc2l6ZSA+IDEpIHtcbiAgICB3YXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzKHtcbiAgICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXIsXG4gICAgICBsb2NrZmlsZXMsXG4gICAgICBwYWNrYWdlTWFuYWdlcixcbiAgICAgIHJvb3RcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBwYWNrYWdlTWFuYWdlcjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBwYWNrYWdlIHNjcmlwdCB0aHJvdWdoIHRoZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBmb2xkZXIgdG8gcmVzb2x2ZSBmcm9tLlxuICogQHJldHVybnMgVGhlIGNvbW1hbmQgcGFydHMsIGUuZy4gYFsnYnVuJywgJ3J1biddYC4gVGhlIHNjcmlwdCBuYW1lIGlzIGFwcGVuZGVkIGJ5IHRoZSBjYWxsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQoY3dkPzogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gW2dldFBhY2thZ2VNYW5hZ2VyKGN3ZCksICdydW4nXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNvbW1hbmQgcGFydHMgdGhhdCBydW4gYSBsb2NhbGx5LWluc3RhbGxlZCB0b29sLCB3aXRoIHRoZSB0b29sIGl0c2VsZiBhbHJlYWR5IGluY2x1ZGVkLlxuICpcbiAqIFByZWZlcnMgdGhlIHNoaW0gaW4gdGhlIG5lYXJlc3QgYG5vZGVfbW9kdWxlcy8uYmluYCwgd2Fsa2luZyB1cCB0aHJvdWdoIGFuY2VzdG9yIGZvbGRlcnMgc28gYSBob2lzdGVkXG4gKiB3b3Jrc3BhY2UgaW5zdGFsbCBpcyBzdGlsbCBmb3VuZC4gRmFsbHMgYmFjayB0byB0aGUgb3duaW5nIG1hbmFnZXIncyBleGVjIGZvcm0gd2hlbiBubyBzaGltIHJlc29sdmVzIFx1MjAxNFxuICogd2hpY2ggaXMgYm90aCB0aGUgcHJldmlvdXMgYmVoYXZpb3IgYW5kIHRoZSBvbmx5IHRoaW5nIHRoYXQgd29ya3MgdW5kZXIgeWFybidzIFBsdWcnbidQbGF5LCB3aGVyZVxuICogYG5vZGVfbW9kdWxlcy8uYmluYCBkb2VzIG5vdCBleGlzdCBhdCBhbGwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVzb2x1dGlvbi5cbiAqIEByZXR1cm5zIFRoZSBjb21tYW5kIHBhcnRzLCBlLmcuIGBbJy9wcm9qZWN0L25vZGVfbW9kdWxlcy8uYmluL3RzYyddYCBvciBgWydidW4nLCAneCcsICd0c2MnXWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVG9vbENvbW1hbmQocGFyYW1zOiBSZXNvbHZlVG9vbENvbW1hbmRQYXJhbXMpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHsgY3dkLCB0b29sIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHNoaW1QYXRoID0gZmluZEJpblNoaW0oeyBjd2QsIHRvb2wgfSk7XG5cbiAgaWYgKHNoaW1QYXRoICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIFtzaGltUGF0aF07XG4gIH1cblxuICByZXR1cm4gWy4uLmdldFBhY2thZ2VNYW5hZ2VyRXhlY0NvbW1hbmQoY3dkKSwgdG9vbF07XG59XG5cbi8qKlxuICogTWF0Y2hlcyB0aGUgbGVhZGluZyBgPG5hbWU+QGAgdG9rZW4gb2YgYSBgcGFja2FnZS5qc29uYCBgcGFja2FnZU1hbmFnZXJgIHZhbHVlLlxuICpcbiAqIFRoZSBgQGAgaXMgcmVxdWlyZWQsIGJlY2F1c2UgY29yZXBhY2sncyBmb3JtYXQgaXMgYDxuYW1lPkA8dmVyc2lvbj5gIFx1MjAxNCBhIGJhcmUgbmFtZSBpcyBhIG1hbGZvcm1lZFxuICogZGVjbGFyYXRpb24gcmF0aGVyIHRoYW4gYSBzaG9ydGhhbmQsIGFuZCBpcyBpZ25vcmVkIGluc3RlYWQgb2YgZ3Vlc3NlZCBhdC5cbiAqL1xuY29uc3QgREVDTEFSQVRJT05fTkFNRV9SRUdfRVhQID0gL14oPzxuYW1lPlteQFxcc10rKUAvO1xuXG4vKipcbiAqIFRoZSBsb2NrZmlsZXMgdGhhdCBpZGVudGlmeSBhIHBhY2thZ2UgbWFuYWdlciwgaW4gdGhlIG9yZGVyIHRoZXkgZGVjaWRlIGEgdGllIG5vIG90aGVyIHNpZ25hbCBzZXR0bGVzLlxuICpcbiAqIEJvdGggYnVuIGxvY2tmaWxlIGZvcm1hdHMgbWFwIHRvIHRoZSBzYW1lIG1hbmFnZXIsIHNvIGEgcmVwbyBob2xkaW5nIGJvdGggaXMgb25lIGNsYWltYW50LCBub3QgdHdvLlxuICovXG5jb25zdCBMT0NLRklMRVM6IExvY2tmaWxlQ2xhaW1bXSA9IFtcbiAgeyBmaWxlTmFtZTogT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5CdW5Mb2NrLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuQnVuIH0sXG4gIHsgZmlsZU5hbWU6IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuQnVuTG9ja2IsIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5CdW4gfSxcbiAgeyBmaWxlTmFtZTogT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5QbnBtTG9ja1lhbWwsIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5QbnBtIH0sXG4gIHsgZmlsZU5hbWU6IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuWWFybkxvY2ssIHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlci5ZYXJuIH0sXG4gIHsgZmlsZU5hbWU6IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuUGFja2FnZUxvY2tKc29uLCBwYWNrYWdlTWFuYWdlcjogUGFja2FnZU1hbmFnZXIuTnBtIH1cbl07XG5cbi8qKlxuICogTWF0Y2hlcyB0aGUgbGVhZGluZyBgPG5hbWU+L2AgdG9rZW4gb2YgYW4gYG5wbV9jb25maWdfdXNlcl9hZ2VudGAgdmFsdWUuXG4gKi9cbmNvbnN0IFVTRVJfQUdFTlRfTkFNRV9SRUdfRVhQID0gL14oPzxuYW1lPlteL1xcc10rKVxcLy87XG5cbi8qKlxuICogVGhlIGRpc2FncmVlbWVudHMgYWxyZWFkeSByZXBvcnRlZCwgc28gYSBidWlsZCB0aGF0IHJlc29sdmVzIHRoZSBtYW5hZ2VyIG9uY2UgcGVyIHNjcmlwdCBob3AgYW5kIG9uY2VcbiAqIHBlciB0b29sIGludm9jYXRpb24gc3RpbGwgc2F5cyBpdCBvbmx5IG9uY2UuXG4gKi9cbmNvbnN0IHJlcG9ydGVkRGlzYWdyZWVtZW50cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBmaW5kQmluU2hpbX0uXG4gKi9cbmludGVyZmFjZSBGaW5kQmluU2hpbVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gICAqL1xuICByZWFkb25seSBjd2Q/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBsb2NhbGx5LWluc3RhbGxlZCB0b29sLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9vbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbG9ja2ZpbGUgYW5kIHRoZSBwYWNrYWdlIG1hbmFnZXIgd2hvc2UgcHJlc2VuY2UgaXQgcHJvdmVzLlxuICovXG5pbnRlcmZhY2UgTG9ja2ZpbGVDbGFpbSB7XG4gIC8qKlxuICAgKiBUaGUgbG9ja2ZpbGUgbmFtZSwgYXMgaXQgYXBwZWFycyBhdCB0aGUgcHJvamVjdCByb290LlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhY2thZ2UgbWFuYWdlciB0aGF0IHdyaXRlcyB0aGlzIGxvY2tmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU1hbmFnZXI6IFBhY2thZ2VNYW5hZ2VyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZXNvbHZlUGFja2FnZU1hbmFnZXJ9LlxuICovXG5pbnRlcmZhY2UgUmVzb2x2ZVBhY2thZ2VNYW5hZ2VyUGFyYW1zIHtcbiAgLyoqXG4gICAqIEV2ZXJ5IHBhY2thZ2UgbWFuYWdlciBjbGFpbWluZyB0aGUgdHJlZSBcdTIwMTQgdGhlIGxvY2tmaWxlIG93bmVycyBpbiB7QGxpbmsgTE9DS0ZJTEVTfSBvcmRlciwgcGx1cyB0aGVcbiAgICogZGVjbGFyZWQgb25lLiBPbmx5IGNvbnN1bHRlZCB3aGVuIG5vdGhpbmcgaXMgZGVjbGFyZWQsIGluIHdoaWNoIGNhc2UgaXQgaG9sZHMgZXhhY3RseSB0aGUgbG9ja2ZpbGVcbiAgICogb3duZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xhaW1hbnRzOiBSZWFkb25seVNldDxQYWNrYWdlTWFuYWdlcj47XG5cbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIG1hbmFnZXIgZGVjbGFyZWQgaW4gYHBhY2thZ2UuanNvbmAsIG9yIGBudWxsYCB3aGVuIG5vbmUgaXMuXG4gICAqL1xuICByZWFkb25seSBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyOiBudWxsIHwgUGFja2FnZU1hbmFnZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHdhcm5BYm91dFNldmVyYWxDbGFpbWFudHN9LlxuICovXG5pbnRlcmZhY2UgV2FybkFib3V0U2V2ZXJhbENsYWltYW50c1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBtYW5hZ2VyIGRlY2xhcmVkIGluIGBwYWNrYWdlLmpzb25gLCBvciBgbnVsbGAgd2hlbiBub25lIGlzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVjbGFyZWRQYWNrYWdlTWFuYWdlcjogbnVsbCB8IFBhY2thZ2VNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9ja2ZpbGVzIGFjdHVhbGx5IGZvdW5kIGF0IHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqL1xuICByZWFkb25seSBsb2NrZmlsZXM6IHJlYWRvbmx5IExvY2tmaWxlQ2xhaW1bXTtcblxuICAvKipcbiAgICogVGhlIHBhY2thZ2UgbWFuYWdlciB0aGF0IHdvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VNYW5hZ2VyOiBQYWNrYWdlTWFuYWdlcjtcblxuICAvKipcbiAgICogVGhlIHByb2plY3Qgcm9vdCB0aGUgbG9ja2ZpbGVzIHdlcmUgZm91bmQgaW4uXG4gICAqL1xuICByZWFkb25seSByb290OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIHBhY2thZ2UgbWFuYWdlciBvdXQgb2YgdGhlIGBwYWNrYWdlTWFuYWdlcmAgZmllbGQgb2YgdGhlIHByb2plY3QncyBgcGFja2FnZS5qc29uYCwgd2hpY2ggaXNcbiAqIGNvcmVwYWNrJ3MgYDxuYW1lPkA8dmVyc2lvbj5gIGRlY2xhcmF0aW9uLlxuICpcbiAqIEBwYXJhbSByb290IC0gVGhlIHByb2plY3Qgcm9vdCB0byByZWFkIGBwYWNrYWdlLmpzb25gIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgZGVjbGFyZWQgcGFja2FnZSBtYW5hZ2VyLCBvciBgbnVsbGAgd2hlbiB0aGVyZSBpcyBubyBgcGFja2FnZS5qc29uYCwgaXQgY2Fubm90IGJlIHBhcnNlZCxcbiAqIHRoZSBmaWVsZCBpcyBhYnNlbnQgb3IgbWFsZm9ybWVkLCBvciBpdCBuYW1lcyBhIG1hbmFnZXIgd2UgZG8gbm90IGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tUGFja2FnZUpzb24ocm9vdDogc3RyaW5nKTogbnVsbCB8IFBhY2thZ2VNYW5hZ2VyIHtcbiAgY29uc3QgcGFja2FnZUpzb25QYXRoID0gam9pbihyb290LCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLlBhY2thZ2VKc29uKTtcblxuICBpZiAoIWV4aXN0c1N5bmMocGFja2FnZUpzb25QYXRoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGV0IHBhY2thZ2VKc29uOiBQYWNrYWdlSnNvbjtcblxuICB0cnkge1xuICAgIHBhY2thZ2VKc29uID0gcmVhZEpzb25TeW5jPFBhY2thZ2VKc29uPihwYWNrYWdlSnNvblBhdGgpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGRlY2xhcmF0aW9uID0gcGFja2FnZUpzb24ucGFja2FnZU1hbmFnZXI7XG5cbiAgaWYgKCFkZWNsYXJhdGlvbikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbWF0Y2ggPSBERUNMQVJBVElPTl9OQU1FX1JFR19FWFAuZXhlYyhkZWNsYXJhdGlvbik7XG5cbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlUGFja2FnZU1hbmFnZXJOYW1lKGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICduYW1lJykpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBwYWNrYWdlIG1hbmFnZXIgb3V0IG9mIGBucG1fY29uZmlnX3VzZXJfYWdlbnRgLCB3aGljaCBldmVyeSBtYW5hZ2VyIHNldHMgZm9yIHRoZSBwcm9jZXNzZXMgaXRcbiAqIGxhdW5jaGVzLlxuICpcbiAqIEByZXR1cm5zIFRoZSBkZXRlY3RlZCBwYWNrYWdlIG1hbmFnZXIsIG9yIGBudWxsYCB3aGVuIHRoZSB2YXJpYWJsZSBpcyBhYnNlbnQsIG1hbGZvcm1lZCwgb3IgbmFtZXMgYVxuICogcnVudGltZSB3ZSBkbyBub3QgaGFuZGxlLlxuICovXG5mdW5jdGlvbiBkZXRlY3RQYWNrYWdlTWFuYWdlckZyb21Vc2VyQWdlbnQoKTogbnVsbCB8IFBhY2thZ2VNYW5hZ2VyIHtcbiAgY29uc3QgdXNlckFnZW50ID0gcHJvY2Vzcy5lbnZbJ25wbV9jb25maWdfdXNlcl9hZ2VudCddO1xuXG4gIGlmICghdXNlckFnZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBtYXRjaCA9IFVTRVJfQUdFTlRfTkFNRV9SRUdfRVhQLmV4ZWModXNlckFnZW50KTtcblxuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gcGFyc2VQYWNrYWdlTWFuYWdlck5hbWUoZ2V0TWFuZGF0b3J5TmFtZWRHcm91cChtYXRjaCwgJ25hbWUnKSk7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIGBub2RlX21vZHVsZXMvLmJpbmAgc2hpbSBmb3IgYSB0b29sLCB3YWxraW5nIHVwIGZyb20gdGhlIHByb2plY3Qgcm9vdCB0aHJvdWdoIGFuY2VzdG9yIGZvbGRlcnMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgbG9va3VwLlxuICogQHJldHVybnMgVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIHNoaW0sIG9yIGBudWxsYCB3aGVuIG5vbmUgZXhpc3RzLlxuICovXG5mdW5jdGlvbiBmaW5kQmluU2hpbShwYXJhbXM6IEZpbmRCaW5TaGltUGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHsgY3dkLCB0b29sIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBnZXRTaGltQ2FuZGlkYXRlcyh0b29sKTtcbiAgbGV0IGN1cnJlbnRGb2xkZXIgPSBnZXRTdGFydEZvbGRlcihjd2QpO1xuXG4gIHdoaWxlIChcbiAgICBjdXJyZW50Rm9sZGVyICE9PSBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXIgYXMgc3RyaW5nXG4gICAgJiYgY3VycmVudEZvbGRlciAhPT0gT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Sb290Rm9sZGVyIGFzIHN0cmluZ1xuICApIHtcbiAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7XG4gICAgICBjb25zdCBzaGltUGF0aCA9IGpvaW4oY3VycmVudEZvbGRlciwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5Ob2RlTW9kdWxlcywgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5CaW4sIGNhbmRpZGF0ZSk7XG4gICAgICBpZiAoZXhpc3RzU3luYyhzaGltUGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIHNoaW1QYXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGN1cnJlbnRGb2xkZXIgPSBkaXJuYW1lKGN1cnJlbnRGb2xkZXIpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBjb21tYW5kIHBhcnRzIHRoYXQgcnVuIGEgb25lLW9mZiB0b29sIHRocm91Z2ggdGhlIG1hbmFnZXIgdGhhdCBvd25zIHRoZSB0cmVlLlxuICpcbiAqIEBwYXJhbSBjd2QgLSBUaGUgY3VycmVudCB3b3JraW5nIGZvbGRlciB0byByZXNvbHZlIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgY29tbWFuZCBwYXJ0cywgZS5nLiBgWydidW4nLCAneCddYC4gVGhlIHRvb2wgbmFtZSBpcyBhcHBlbmRlZCBieSB0aGUgY2FsbGVyLlxuICovXG5mdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlckV4ZWNDb21tYW5kKGN3ZD86IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBnZXRQYWNrYWdlTWFuYWdlcihjd2QpO1xuXG4gIHN3aXRjaCAocGFja2FnZU1hbmFnZXIpIHtcbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLkJ1bjoge1xuICAgICAgcmV0dXJuIFsnYnVuJywgJ3gnXTtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5OcG06IHtcbiAgICAgIHJldHVybiBbJ25weCddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLlBucG06IHtcbiAgICAgIHJldHVybiBbJ3BucG0nLCAnZXhlYyddO1xuICAgIH1cbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLllhcm46IHtcbiAgICAgIHJldHVybiBbJ3lhcm4nLCAnZXhlYyddO1xuICAgIH1cbiAgICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gRXhoYXVzdGl2ZSBzd2l0Y2ggZ3VhcmQ7IGRlZmF1bHQgYnJhbmNoIGlzIHVucmVhY2hhYmxlLiAqL1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBhc3NlcnROZXZlcihwYWNrYWdlTWFuYWdlcik7XG4gICAgfVxuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxufVxuXG4vKipcbiAqIExpc3RzIHRoZSBzaGltIGZpbGUgbmFtZXMgdG8gdHJ5IGZvciBhIHRvb2wsIG1vc3Qgc3BlY2lmaWMgZmlyc3QuXG4gKlxuICogT24gV2luZG93cyBvbmx5IHRoZSBleGVjdXRhYmxlIGZvcm1zIGFyZSB2aWFibGU6IG5wbSBhbmQgcG5wbSBhbHNvIHdyaXRlIGEgc2hpbSB3aXRoIG5vIGV4dGVuc2lvbiwgYnV0XG4gKiB0aGF0IG9uZSBpcyBhIGBzaGAgc2NyaXB0IHRoYXQgYGNtZC5leGVgIGNhbm5vdCBydW4sIHNvIGl0IG11c3QgbmV2ZXIgYmUgY2hvc2VuIHRoZXJlLlxuICpcbiAqIEBwYXJhbSB0b29sIC0gVGhlIG5hbWUgb2YgdGhlIGxvY2FsbHktaW5zdGFsbGVkIHRvb2wuXG4gKiBAcmV0dXJucyBUaGUgY2FuZGlkYXRlIGZpbGUgbmFtZXMsIGluIHRoZSBvcmRlciB0aGV5IHNob3VsZCBiZSB0cmllZC5cbiAqL1xuZnVuY3Rpb24gZ2V0U2hpbUNhbmRpZGF0ZXModG9vbDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSAhPT0gJ3dpbjMyJykge1xuICAgIHJldHVybiBbdG9vbF07XG4gIH1cblxuICByZXR1cm4gW1xuICAgIGAke3Rvb2x9JHtPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkNvbW1hbmRFeHRlbnNpb259YCxcbiAgICBgJHt0b29sfSR7T2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5FeGVFeHRlbnNpb259YCxcbiAgICBgJHt0b29sfSR7T2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5CYXRFeHRlbnNpb259YFxuICBdO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBmb2xkZXIgdG8gc3RhcnQgYSBsb29rdXAgZnJvbSBcdTIwMTQgdGhlIHByb2plY3Qgcm9vdCB3aGVuIHRoZXJlIGlzIG9uZSwgdGhlIHdvcmtpbmcgZm9sZGVyXG4gKiBvdGhlcndpc2UuXG4gKlxuICogQHBhcmFtIGN3ZCAtIFRoZSBjdXJyZW50IHdvcmtpbmcgZm9sZGVyIHRvIHJlc29sdmUgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBmb2xkZXIgdG8gc3RhcnQgZnJvbS5cbiAqL1xuZnVuY3Rpb24gZ2V0U3RhcnRGb2xkZXIoY3dkPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldFJvb3RGb2xkZXIoY3dkKSA/PyB0b1Bvc2l4UGF0aChjd2QgPz8gcHJvY2Vzcy5jd2QoKSk7XG59XG5cbi8qKlxuICogTWFwcyB0aGUgYmFyZSBuYW1lIGEgbG9ja2ZpbGUgZGVjbGFyYXRpb24gb3IgYSB1c2VyIGFnZW50IHJlcG9ydHMgb250byB0aGUgcGFja2FnZSBtYW5hZ2VyIGl0IG5hbWVzLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIHJlcG9ydGVkIG5hbWUuXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgcGFja2FnZSBtYW5hZ2VyLCBvciBgbnVsbGAgZm9yIGEgcnVudGltZSB3ZSBkbyBub3QgaGFuZGxlLlxuICovXG5mdW5jdGlvbiBwYXJzZVBhY2thZ2VNYW5hZ2VyTmFtZShuYW1lOiBzdHJpbmcpOiBudWxsIHwgUGFja2FnZU1hbmFnZXIge1xuICBzd2l0Y2ggKG5hbWUpIHtcbiAgICBjYXNlIFBhY2thZ2VNYW5hZ2VyLkJ1biBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5CdW47XG4gICAgfVxuICAgIGNhc2UgUGFja2FnZU1hbmFnZXIuTnBtIGFzIHN0cmluZzoge1xuICAgICAgcmV0dXJuIFBhY2thZ2VNYW5hZ2VyLk5wbTtcbiAgICB9XG4gICAgY2FzZSBQYWNrYWdlTWFuYWdlci5QbnBtIGFzIHN0cmluZzoge1xuICAgICAgcmV0dXJuIFBhY2thZ2VNYW5hZ2VyLlBucG07XG4gICAgfVxuICAgIGNhc2UgUGFja2FnZU1hbmFnZXIuWWFybiBhcyBzdHJpbmc6IHtcbiAgICAgIHJldHVybiBQYWNrYWdlTWFuYWdlci5ZYXJuO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBQaWNrcyB0aGUgd2lubmVyIG91dCBvZiB0aGUgY29sbGVjdGVkIHNpZ25hbHMsIHBlciB0aGUgb3JkZXIgZG9jdW1lbnRlZCBvbiB7QGxpbmsgZ2V0UGFja2FnZU1hbmFnZXJ9LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHJlc29sdXRpb24uXG4gKiBAcmV0dXJucyBUaGUgcGFja2FnZSBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdHJlZS5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZVBhY2thZ2VNYW5hZ2VyKHBhcmFtczogUmVzb2x2ZVBhY2thZ2VNYW5hZ2VyUGFyYW1zKTogUGFja2FnZU1hbmFnZXIge1xuICBjb25zdCB7XG4gICAgY2xhaW1hbnRzLFxuICAgIGRlY2xhcmVkUGFja2FnZU1hbmFnZXJcbiAgfSA9IHBhcmFtcztcblxuICBpZiAoZGVjbGFyZWRQYWNrYWdlTWFuYWdlciAhPT0gbnVsbCkge1xuICAgIHJldHVybiBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyO1xuICB9XG5cbiAgY29uc3QgbG9ja2ZpbGVPd25lcnMgPSBbLi4uY2xhaW1hbnRzXTtcbiAgY29uc3QgW2ZpcnN0TG9ja2ZpbGVPd25lcl0gPSBsb2NrZmlsZU93bmVycztcblxuICBpZiAoZmlyc3RMb2NrZmlsZU93bmVyID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tVXNlckFnZW50KCkgPz8gUGFja2FnZU1hbmFnZXIuTnBtO1xuICB9XG5cbiAgaWYgKGxvY2tmaWxlT3duZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBmaXJzdExvY2tmaWxlT3duZXI7XG4gIH1cblxuICBjb25zdCBsYXVuY2hlZEJ5ID0gZGV0ZWN0UGFja2FnZU1hbmFnZXJGcm9tVXNlckFnZW50KCk7XG5cbiAgaWYgKGxhdW5jaGVkQnkgIT09IG51bGwgJiYgY2xhaW1hbnRzLmhhcyhsYXVuY2hlZEJ5KSkge1xuICAgIHJldHVybiBsYXVuY2hlZEJ5O1xuICB9XG5cbiAgcmV0dXJuIGZpcnN0TG9ja2ZpbGVPd25lcjtcbn1cblxuLyoqXG4gKiBSZXBvcnRzIHRoYXQgc2V2ZXJhbCBwYWNrYWdlIG1hbmFnZXJzIGNsYWltIHRoZSBzYW1lIHRyZWUsIG5hbWluZyBlYWNoIGxvY2tmaWxlIGZvdW5kLCB3aGF0XG4gKiBgcGFja2FnZS5qc29uYCBkZWNsYXJlcywgYW5kIHdoaWNoIG1hbmFnZXIgd29uLlxuICpcbiAqIGBjb25zb2xlLndhcm5gIHJhdGhlciB0aGFuIGEgZGVidWcgY2hhbm5lbDogdGhpcyBydW5zIGluIHRoZSBidWlsZCdzIG93biB0ZXJtaW5hbCwgYW5kIGEgbWVzc2FnZSBub2JvZHlcbiAqIHNlZXMgdW5sZXNzIHRoZXkgYWxyZWFkeSBzdXNwZWN0IHRoZSBwcm9ibGVtIGxlYXZlcyB0aGUgZmFpbHVyZSBleGFjdGx5IGFzIHNpbGVudCBhcyBpdCB3YXMuIEVhY2hcbiAqIGRpc3RpbmN0IG1lc3NhZ2UgaXMgcHJpbnRlZCBvbmNlLCBiZWNhdXNlIHRoZSBtYW5hZ2VyIGlzIHJlc29sdmVkIG9uY2UgcGVyIHBhY2thZ2Utc2NyaXB0IGhvcCBhbmQgb25jZVxuICogcGVyIHRvb2wgaW52b2NhdGlvbi5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSByZXBvcnQuXG4gKi9cbmZ1bmN0aW9uIHdhcm5BYm91dFNldmVyYWxDbGFpbWFudHMocGFyYW1zOiBXYXJuQWJvdXRTZXZlcmFsQ2xhaW1hbnRzUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBkZWNsYXJlZFBhY2thZ2VNYW5hZ2VyLFxuICAgIGxvY2tmaWxlcyxcbiAgICBwYWNrYWdlTWFuYWdlcixcbiAgICByb290XG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgbG9ja2ZpbGVOYW1lcyA9IGxvY2tmaWxlcy5tYXAoKGxvY2tmaWxlKSA9PiBsb2NrZmlsZS5maWxlTmFtZSkuam9pbignLCAnKTtcbiAgY29uc3QgYWR2aWNlID0gZGVjbGFyZWRQYWNrYWdlTWFuYWdlciA9PT0gbnVsbFxuICAgID8gJ0RlbGV0ZSB0aGUgc3RhbGUgbG9ja2ZpbGUsIG9yIGRlY2xhcmUgXCJwYWNrYWdlTWFuYWdlclwiIGluIHBhY2thZ2UuanNvbiwgdG8gc2V0dGxlIGl0LidcbiAgICA6ICdEZWxldGUgdGhlIHN0YWxlIGxvY2tmaWxlIHRvIHNldHRsZSBpdC4nO1xuICBjb25zdCBtZXNzYWdlID0gW1xuICAgIGBvYnNpZGlhbi1kZXYtdXRpbHM6IG1vcmUgdGhhbiBvbmUgcGFja2FnZSBtYW5hZ2VyIGNsYWltcyAke3Jvb3R9LmAsXG4gICAgYExvY2tmaWxlczogJHtsb2NrZmlsZU5hbWVzfS5gLFxuICAgIGBwYWNrYWdlLmpzb24gXCJwYWNrYWdlTWFuYWdlclwiOiAke2RlY2xhcmVkUGFja2FnZU1hbmFnZXIgPz8gJ25vdCBzZXQnfS5gLFxuICAgIGBVc2luZyAke3BhY2thZ2VNYW5hZ2VyfS5gLFxuICAgIGFkdmljZVxuICBdLmpvaW4oJyAnKTtcblxuICBpZiAocmVwb3J0ZWREaXNhZ3JlZW1lbnRzLmhhcyhtZXNzYWdlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlcG9ydGVkRGlzYWdyZWVtZW50cy5hZGQobWVzc2FnZSk7XG4gIGNvbnNvbGUud2FybihtZXNzYWdlKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBLHFCQUEyQjtBQUMzQiwwQkFBb0I7QUFFcEIsa0JBSU87QUFDUCxxQkFBdUM7QUFDdkMseUJBQTRCO0FBQzVCLGtCQUE2QjtBQUM3QiwyQ0FBMEM7QUFDMUMsa0JBQThCO0FBS3ZCLElBQUssaUJBQUwsa0JBQUtBLG9CQUFMO0FBSUwsRUFBQUEsZ0JBQUEsU0FBTTtBQUtOLEVBQUFBLGdCQUFBLFNBQU07QUFLTixFQUFBQSxnQkFBQSxVQUFPO0FBS1AsRUFBQUEsZ0JBQUEsVUFBTztBQW5CRyxTQUFBQTtBQUFBLEdBQUE7QUFnRUwsU0FBUyxrQkFBa0IsS0FBOEI7QUFDOUQsUUFBTSxPQUFPLGVBQWUsR0FBRztB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
|