obsidian-integration-testing 9.2.2 → 10.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/README.md +45 -45
- package/dist/lib/cjs/appium-dependencies.cjs +5 -5
- package/dist/lib/cjs/appium-dependencies.d.cts +4 -2
- package/dist/lib/cjs/appium-session-config.cjs +1 -1
- package/dist/lib/cjs/asar-fallback-detection.cjs +4 -4
- package/dist/lib/cjs/asar-fallback-detection.d.cts +15 -7
- package/dist/lib/cjs/avd-list.cjs +1 -1
- package/dist/lib/cjs/avd-list.d.cts +6 -2
- package/dist/lib/cjs/cli.cjs +4 -4
- package/dist/lib/cjs/compatibility-options.cjs +13 -13
- package/dist/lib/cjs/compatibility-options.d.cts +24 -12
- package/dist/lib/cjs/connect-to-cdp.cjs +4 -4
- package/dist/lib/cjs/connect-to-cdp.d.cts +6 -6
- package/dist/lib/cjs/context-id.cjs +5 -5
- package/dist/lib/cjs/context-id.d.cts +1 -1
- package/dist/lib/cjs/context-provider.cjs +5 -5
- package/dist/lib/cjs/context-provider.d.cts +4 -4
- package/dist/lib/cjs/demo-vault-populate.cjs +5 -5
- package/dist/lib/cjs/demo-vault-populate.d.cts +4 -4
- package/dist/lib/cjs/demo-vault-tree.cjs +4 -4
- package/dist/lib/cjs/demo-vault-tree.d.cts +3 -3
- package/dist/lib/cjs/device-readiness.cjs +3 -3
- package/dist/lib/cjs/device-readiness.d.cts +7 -3
- package/dist/lib/cjs/ecmascript-version.cjs +1 -1
- package/dist/lib/cjs/electron-compatibility.cjs +4 -4
- package/dist/lib/cjs/electron-compatibility.d.cts +33 -17
- package/dist/lib/cjs/emulator-arguments.cjs +36 -0
- package/dist/lib/{esm/emulator-args.d.mts → cjs/emulator-arguments.d.cts} +6 -4
- package/dist/lib/cjs/enable-plugin.cjs +29 -29
- package/dist/lib/cjs/enable-plugin.d.cts +6 -6
- package/dist/lib/cjs/eval-in-obsidian.cjs +9 -9
- package/dist/lib/cjs/eval-in-obsidian.d.cts +23 -23
- package/dist/lib/cjs/exec.cjs +49 -53
- package/dist/lib/cjs/exec.d.cts +9 -9
- package/dist/lib/cjs/function-expression.cjs +8 -8
- package/dist/lib/cjs/function-expression.d.cts +4 -4
- package/dist/lib/cjs/generate-function-call.cjs +6 -6
- package/dist/lib/cjs/generate-function-call.d.cts +15 -9
- package/dist/lib/cjs/global-setup-core.cjs +43 -43
- package/dist/lib/cjs/global-setup-core.d.cts +19 -9
- package/dist/lib/cjs/incompatible-installer-version-error.cjs +10 -4
- package/dist/lib/cjs/incompatible-installer-version-error.d.cts +18 -6
- package/dist/lib/cjs/index.cjs +10 -10
- package/dist/lib/cjs/index.d.cts +8 -8
- package/dist/lib/cjs/installer-asset.cjs +4 -4
- package/dist/lib/cjs/installer-asset.d.cts +21 -7
- package/dist/lib/cjs/installer-compatibility.cjs +4 -4
- package/dist/lib/cjs/installer-compatibility.d.cts +36 -18
- package/dist/lib/cjs/jest/global-setup-no-plugin.cjs +3 -3
- package/dist/lib/cjs/jest/global-setup-no-plugin.d.cts +1 -1
- package/dist/lib/cjs/jest/global-setup.cjs +11 -11
- package/dist/lib/cjs/jest/global-setup.d.cts +12 -8
- package/dist/lib/cjs/jest/global-teardown-no-plugin.cjs +2 -3
- package/dist/lib/cjs/jest/global-teardown-no-plugin.d.cts +1 -2
- package/dist/lib/cjs/jest/global-teardown.cjs +2 -3
- package/dist/lib/cjs/jest/global-teardown.d.cts +1 -2
- package/dist/lib/cjs/jest/setup.cjs +2 -2
- package/dist/lib/cjs/jest/setup.d.cts +1 -1
- package/dist/lib/cjs/json-with-functions.cjs +7 -7
- package/dist/lib/cjs/leftover-cleanup.cjs +14 -14
- package/dist/lib/cjs/leftover-cleanup.d.cts +42 -20
- package/dist/lib/cjs/library.cjs +2 -2
- package/dist/lib/cjs/namespace-bootstrap.cjs +46 -40
- package/dist/lib/cjs/native-dialog-monitor.cjs +15 -13
- package/dist/lib/cjs/normalize-optional-properties.cjs +3 -3
- package/dist/lib/cjs/normalize-optional-properties.d.cts +2 -2
- package/dist/lib/cjs/obsidian-config.cjs +30 -31
- package/dist/lib/cjs/obsidian-config.d.cts +8 -8
- package/dist/lib/cjs/obsidian-executable.cjs +2 -2
- package/dist/lib/cjs/obsidian-installer.cjs +37 -37
- package/dist/lib/cjs/obsidian-installer.d.cts +7 -3
- package/dist/lib/cjs/obsidian-instance.cjs +3 -3
- package/dist/lib/cjs/obsidian-instance.d.cts +18 -8
- package/dist/lib/cjs/obsidian-metadata.cjs +1 -1
- package/dist/lib/cjs/obsidian-metadata.d.cts +36 -12
- package/dist/lib/cjs/obsidian-namespace.cjs +1 -1
- package/dist/lib/cjs/obsidian-namespace.d.cts +25 -11
- package/dist/lib/cjs/obsidian-version-switch.cjs +9 -9
- package/dist/lib/cjs/obsidian-version-switch.d.cts +14 -10
- package/dist/lib/cjs/obsidian-version.cjs +3 -3
- package/dist/lib/cjs/obsidian-version.d.cts +15 -5
- package/dist/lib/cjs/owned-vault-seed.cjs +1 -1
- package/dist/lib/cjs/owned-vault-seed.d.cts +24 -8
- package/dist/lib/cjs/parent-liveness.cjs +4 -4
- package/dist/lib/cjs/parent-liveness.d.cts +7 -3
- package/dist/lib/cjs/poll-in-obsidian.cjs +5 -5
- package/dist/lib/cjs/poll-in-obsidian.d.cts +12 -12
- package/dist/lib/cjs/poll-until.cjs +1 -1
- package/dist/lib/cjs/poll-until.d.cts +21 -7
- package/dist/lib/cjs/process-exit-message.cjs +1 -1
- package/dist/lib/cjs/process-exit-message.d.cts +21 -7
- package/dist/lib/cjs/renderer-boot-detection.cjs +9 -9
- package/dist/lib/cjs/renderer-boot-detection.d.cts +31 -27
- package/dist/lib/cjs/renderer-failed-to-initialize-error.cjs +1 -1
- package/dist/lib/cjs/renderer-failed-to-initialize-error.d.cts +1 -1
- package/dist/lib/cjs/setup-lock.cjs +26 -26
- package/dist/lib/cjs/setup-lock.d.cts +6 -2
- package/dist/lib/cjs/silent-asar-fallback-error.cjs +7 -3
- package/dist/lib/cjs/silent-asar-fallback-error.d.cts +12 -4
- package/dist/lib/cjs/spawn-options.cjs +1 -1
- package/dist/lib/cjs/spawn-options.d.cts +3 -1
- package/dist/lib/cjs/strict-proxy.cjs +25 -25
- package/dist/lib/cjs/strict-proxy.d.cts +3 -3
- package/dist/lib/cjs/temporary-vault.cjs +166 -0
- package/dist/lib/cjs/{temp-vault.d.cts → temporary-vault.d.cts} +3 -3
- package/dist/lib/cjs/transport-appium.cjs +7 -7
- package/dist/lib/cjs/transport-appium.d.cts +7 -3
- package/dist/lib/cjs/transport-desktop-cdp.cjs +57 -57
- package/dist/lib/cjs/transport-desktop-cdp.d.cts +29 -17
- package/dist/lib/cjs/transport-factory.cjs +62 -63
- package/dist/lib/cjs/type-guards.cjs +3 -3
- package/dist/lib/cjs/type-guards.d.cts +2 -2
- package/dist/lib/cjs/vault-path-match.cjs +9 -9
- package/dist/lib/cjs/vault-path-match.d.cts +11 -11
- package/dist/lib/cjs/version-matrix.cjs +1 -1
- package/dist/lib/cjs/version-matrix.d.cts +51 -17
- package/dist/lib/cjs/visibility.cjs +7 -7
- package/dist/lib/cjs/visibility.d.cts +5 -5
- package/dist/lib/cjs/vitest/global-setup-no-plugin.cjs +3 -3
- package/dist/lib/cjs/vitest/global-setup-no-plugin.d.cts +2 -2
- package/dist/lib/cjs/vitest/global-setup.cjs +9 -9
- package/dist/lib/cjs/vitest/global-setup.d.cts +4 -4
- package/dist/lib/cjs/vitest/setup.cjs +2 -2
- package/dist/lib/cjs/vitest/typings.d.cts +2 -2
- package/dist/lib/esm/appium-dependencies.d.mts +4 -2
- package/dist/lib/esm/appium-dependencies.mjs +4 -4
- package/dist/lib/esm/appium-session-config.mjs +1 -1
- package/dist/lib/esm/asar-fallback-detection.d.mts +15 -7
- package/dist/lib/esm/asar-fallback-detection.mjs +3 -3
- package/dist/lib/esm/avd-list.d.mts +6 -2
- package/dist/lib/esm/avd-list.mjs +1 -1
- package/dist/lib/esm/cli.mjs +4 -4
- package/dist/lib/esm/compatibility-options.d.mts +24 -12
- package/dist/lib/esm/compatibility-options.mjs +10 -10
- package/dist/lib/esm/connect-to-cdp.d.mts +6 -6
- package/dist/lib/esm/connect-to-cdp.mjs +6 -6
- package/dist/lib/esm/context-id.d.mts +1 -1
- package/dist/lib/esm/context-id.mjs +5 -5
- package/dist/lib/esm/context-provider.d.mts +4 -4
- package/dist/lib/esm/context-provider.mjs +5 -5
- package/dist/lib/esm/demo-vault-populate.d.mts +4 -4
- package/dist/lib/esm/demo-vault-populate.mjs +5 -5
- package/dist/lib/esm/demo-vault-tree.d.mts +3 -3
- package/dist/lib/esm/demo-vault-tree.mjs +4 -4
- package/dist/lib/esm/device-readiness.d.mts +7 -3
- package/dist/lib/esm/device-readiness.mjs +3 -3
- package/dist/lib/esm/ecmascript-version.mjs +1 -1
- package/dist/lib/esm/electron-compatibility.d.mts +33 -17
- package/dist/lib/esm/electron-compatibility.mjs +3 -3
- package/dist/lib/{cjs/emulator-args.d.cts → esm/emulator-arguments.d.mts} +6 -4
- package/dist/lib/esm/emulator-arguments.mjs +12 -0
- package/dist/lib/esm/enable-plugin.d.mts +6 -6
- package/dist/lib/esm/enable-plugin.mjs +29 -29
- package/dist/lib/esm/eval-in-obsidian.d.mts +23 -23
- package/dist/lib/esm/eval-in-obsidian.mjs +9 -9
- package/dist/lib/esm/exec.d.mts +9 -9
- package/dist/lib/esm/exec.mjs +49 -53
- package/dist/lib/esm/function-expression.d.mts +4 -4
- package/dist/lib/esm/function-expression.mjs +8 -8
- package/dist/lib/esm/generate-function-call.d.mts +15 -9
- package/dist/lib/esm/generate-function-call.mjs +6 -6
- package/dist/lib/esm/global-setup-core.d.mts +19 -9
- package/dist/lib/esm/global-setup-core.mjs +45 -45
- package/dist/lib/esm/incompatible-installer-version-error.d.mts +18 -6
- package/dist/lib/esm/incompatible-installer-version-error.mjs +10 -4
- package/dist/lib/esm/index.d.mts +8 -8
- package/dist/lib/esm/index.mjs +9 -9
- package/dist/lib/esm/installer-asset.d.mts +21 -7
- package/dist/lib/esm/installer-asset.mjs +4 -4
- package/dist/lib/esm/installer-compatibility.d.mts +36 -18
- package/dist/lib/esm/installer-compatibility.mjs +3 -3
- package/dist/lib/esm/jest/global-setup-no-plugin.d.mts +1 -1
- package/dist/lib/esm/jest/global-setup-no-plugin.mjs +3 -3
- package/dist/lib/esm/jest/global-setup.d.mts +12 -8
- package/dist/lib/esm/jest/global-setup.mjs +10 -10
- package/dist/lib/esm/jest/global-teardown-no-plugin.d.mts +1 -2
- package/dist/lib/esm/jest/global-teardown-no-plugin.mjs +2 -3
- package/dist/lib/esm/jest/global-teardown.d.mts +1 -2
- package/dist/lib/esm/jest/global-teardown.mjs +2 -3
- package/dist/lib/esm/jest/setup.d.mts +1 -1
- package/dist/lib/esm/jest/setup.mjs +2 -2
- package/dist/lib/esm/json-with-functions.mjs +7 -7
- package/dist/lib/esm/leftover-cleanup.d.mts +42 -20
- package/dist/lib/esm/leftover-cleanup.mjs +12 -12
- package/dist/lib/esm/library.mjs +2 -2
- package/dist/lib/esm/namespace-bootstrap.mjs +46 -40
- package/dist/lib/esm/native-dialog-monitor.mjs +15 -13
- package/dist/lib/esm/normalize-optional-properties.d.mts +2 -2
- package/dist/lib/esm/normalize-optional-properties.mjs +3 -3
- package/dist/lib/esm/obsidian-config.d.mts +8 -8
- package/dist/lib/esm/obsidian-config.mjs +27 -28
- package/dist/lib/esm/obsidian-executable.mjs +2 -2
- package/dist/lib/esm/obsidian-installer.d.mts +7 -3
- package/dist/lib/esm/obsidian-installer.mjs +36 -36
- package/dist/lib/esm/obsidian-instance.d.mts +18 -8
- package/dist/lib/esm/obsidian-instance.mjs +3 -3
- package/dist/lib/esm/obsidian-metadata.d.mts +36 -12
- package/dist/lib/esm/obsidian-metadata.mjs +1 -1
- package/dist/lib/esm/obsidian-namespace.d.mts +25 -11
- package/dist/lib/esm/obsidian-version-switch.d.mts +14 -10
- package/dist/lib/esm/obsidian-version-switch.mjs +9 -9
- package/dist/lib/esm/obsidian-version.d.mts +15 -5
- package/dist/lib/esm/obsidian-version.mjs +3 -3
- package/dist/lib/esm/owned-vault-seed.d.mts +24 -8
- package/dist/lib/esm/owned-vault-seed.mjs +1 -1
- package/dist/lib/esm/parent-liveness.d.mts +7 -3
- package/dist/lib/esm/parent-liveness.mjs +3 -3
- package/dist/lib/esm/poll-in-obsidian.d.mts +12 -12
- package/dist/lib/esm/poll-in-obsidian.mjs +5 -5
- package/dist/lib/esm/poll-until.d.mts +21 -7
- package/dist/lib/esm/poll-until.mjs +1 -1
- package/dist/lib/esm/process-exit-message.d.mts +21 -7
- package/dist/lib/esm/process-exit-message.mjs +1 -1
- package/dist/lib/esm/renderer-boot-detection.d.mts +31 -27
- package/dist/lib/esm/renderer-boot-detection.mjs +7 -7
- package/dist/lib/esm/renderer-failed-to-initialize-error.d.mts +1 -1
- package/dist/lib/esm/renderer-failed-to-initialize-error.mjs +1 -1
- package/dist/lib/esm/setup-lock.d.mts +6 -2
- package/dist/lib/esm/setup-lock.mjs +26 -26
- package/dist/lib/esm/silent-asar-fallback-error.d.mts +12 -4
- package/dist/lib/esm/silent-asar-fallback-error.mjs +7 -3
- package/dist/lib/esm/spawn-options.d.mts +3 -1
- package/dist/lib/esm/spawn-options.mjs +1 -1
- package/dist/lib/esm/strict-proxy.d.mts +3 -3
- package/dist/lib/esm/strict-proxy.mjs +25 -25
- package/dist/lib/esm/{temp-vault.d.mts → temporary-vault.d.mts} +3 -3
- package/dist/lib/esm/temporary-vault.mjs +157 -0
- package/dist/lib/esm/transport-appium.d.mts +7 -3
- package/dist/lib/esm/transport-appium.mjs +7 -7
- package/dist/lib/esm/transport-desktop-cdp.d.mts +29 -17
- package/dist/lib/esm/transport-desktop-cdp.mjs +67 -67
- package/dist/lib/esm/transport-factory.mjs +71 -72
- package/dist/lib/esm/type-guards.d.mts +2 -2
- package/dist/lib/esm/type-guards.mjs +3 -3
- package/dist/lib/esm/vault-path-match.d.mts +11 -11
- package/dist/lib/esm/vault-path-match.mjs +7 -7
- package/dist/lib/esm/version-matrix.d.mts +51 -17
- package/dist/lib/esm/version-matrix.mjs +1 -1
- package/dist/lib/esm/visibility.d.mts +5 -5
- package/dist/lib/esm/visibility.mjs +5 -5
- package/dist/lib/esm/vitest/global-setup-no-plugin.d.mts +2 -2
- package/dist/lib/esm/vitest/global-setup-no-plugin.mjs +3 -3
- package/dist/lib/esm/vitest/global-setup.d.mts +4 -4
- package/dist/lib/esm/vitest/global-setup.mjs +8 -8
- package/dist/lib/esm/vitest/setup.mjs +2 -2
- package/dist/lib/esm/vitest/typings.d.mts +2 -2
- package/dist/obsidian-integration-testing-10.0.0.tgz +0 -0
- package/package.json +15 -13
- package/dist/lib/cjs/emulator-args.cjs +0 -36
- package/dist/lib/cjs/temp-vault.cjs +0 -166
- package/dist/lib/esm/emulator-args.mjs +0 -12
- package/dist/lib/esm/temp-vault.mjs +0 -157
- package/dist/obsidian-integration-testing-9.2.2.tgz +0 -0
|
@@ -6,19 +6,23 @@
|
|
|
6
6
|
* Delegates to the framework-agnostic core and bridges context
|
|
7
7
|
* to test workers via `globalThis.__obsidianIntegrationTesting`.
|
|
8
8
|
*/
|
|
9
|
-
import type { PopulateFilesParams } from '../
|
|
9
|
+
import type { PopulateFilesParams } from '../temporary-vault.cjs';
|
|
10
10
|
import type { ObsidianTransportOptions } from '../transport-options.cjs';
|
|
11
|
-
import {
|
|
11
|
+
import { TemporaryVault } from '../temporary-vault.cjs';
|
|
12
12
|
/**
|
|
13
13
|
* Shape of `globalThis.__obsidianIntegrationTesting`.
|
|
14
14
|
*
|
|
15
15
|
* Consumers may pre-populate `transportOptions` before the global setup runs
|
|
16
|
-
* (e.g., via Jest config `globals`). The setup then adds `
|
|
16
|
+
* (e.g., via Jest config `globals`). The setup then adds `temporaryVaultPath`.
|
|
17
17
|
*/
|
|
18
18
|
interface ObsidianIntegrationTestingGlobal {
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
/**
|
|
20
|
+
Temp vault path, set by the global setup for test workers.
|
|
21
|
+
*/
|
|
22
|
+
temporaryVaultPath?: string | undefined;
|
|
23
|
+
/**
|
|
24
|
+
Transport options. Set by the consumer before setup, or by the setup itself.
|
|
25
|
+
*/
|
|
22
26
|
transportOptions?: ObsidianTransportOptions | undefined;
|
|
23
27
|
}
|
|
24
28
|
declare global {
|
|
@@ -76,12 +80,12 @@ export declare function createSetup(options?: CreateSetupOptions): JestGlobalSet
|
|
|
76
80
|
/**
|
|
77
81
|
* Returns the temporary vault provided by the global setup.
|
|
78
82
|
*
|
|
79
|
-
* Reads the vault path from `globalThis.__obsidianIntegrationTesting.
|
|
83
|
+
* Reads the vault path from `globalThis.__obsidianIntegrationTesting.temporaryVaultPath`,
|
|
80
84
|
* which is set by the Jest global setup.
|
|
81
85
|
*
|
|
82
86
|
* @returns The temporary vault.
|
|
83
87
|
*/
|
|
84
|
-
export declare function
|
|
88
|
+
export declare function getTemporaryVault(): TemporaryVault;
|
|
85
89
|
/**
|
|
86
90
|
* Returns the transport options provided by the global setup.
|
|
87
91
|
*
|
|
@@ -18,9 +18,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var global_teardown_no_plugin_exports = {};
|
|
20
20
|
__export(global_teardown_no_plugin_exports, {
|
|
21
|
-
default: () =>
|
|
21
|
+
default: () => import_global_setup_no_plugin.teardown
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(global_teardown_no_plugin_exports);
|
|
24
24
|
var import_global_setup_no_plugin = require("./global-setup-no-plugin.cjs");
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXRlYXJkb3duLW5vLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEplc3QgKipwbHVnaW4tbGVzcyoqIGdsb2JhbCB0ZWFyZG93biBlbnRyeSBwb2ludC5cbiAqXG4gKiBKZXN0IHJlcXVpcmVzIGBnbG9iYWxUZWFyZG93bmAgdG8gYmUgYSBzZXBhcmF0ZSBtb2R1bGUgd2hvc2UgZGVmYXVsdCBleHBvcnQgaXNcbiAqIHRoZSB0ZWFyZG93biBmdW5jdGlvbi4gSXQgcmUtZXhwb3J0cyB0aGUgdGVhcmRvd24gZnJvbSB0aGUgcGx1Z2luLWxlc3Mgc2V0dXBcbiAqIG1vZHVsZSBzbyBib3RoIHNoYXJlIHRoZSBzYW1lIHNldHVwIHN0YXRlIHdpdGhpbiB0aGUgSmVzdCBwYXJlbnQgcHJvY2Vzcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gSW50ZWdyYXRpb24tdGltZSB0ZWFyZG93biBjb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RzLCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuaW1wb3J0IHsgdGVhcmRvd24gfSBmcm9tICcuL2dsb2JhbC1zZXR1cC1uby1wbHVnaW4uY2pzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0IC0tIEplc3QncyBnbG9iYWxUZWFyZG93biBsb2FkZXIgcmVxdWlyZXMgYSBkZWZhdWx0LWV4cG9ydCBmdW5jdGlvbi5cbmV4cG9ydCBkZWZhdWx0IHRlYXJkb3duO1xuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLG9DQUF5QjtBQUd6QixJQUFPLG9DQUFROyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXRlYXJkb3duLW5vLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEplc3QgKipwbHVnaW4tbGVzcyoqIGdsb2JhbCB0ZWFyZG93biBlbnRyeSBwb2ludC5cbiAqXG4gKiBKZXN0IHJlcXVpcmVzIGBnbG9iYWxUZWFyZG93bmAgdG8gYmUgYSBzZXBhcmF0ZSBtb2R1bGUgd2hvc2UgZGVmYXVsdCBleHBvcnQgaXNcbiAqIHRoZSB0ZWFyZG93biBmdW5jdGlvbi4gSXQgcmUtZXhwb3J0cyB0aGUgdGVhcmRvd24gZnJvbSB0aGUgcGx1Z2luLWxlc3Mgc2V0dXBcbiAqIG1vZHVsZSBzbyBib3RoIHNoYXJlIHRoZSBzYW1lIHNldHVwIHN0YXRlIHdpdGhpbiB0aGUgSmVzdCBwYXJlbnQgcHJvY2Vzcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gSW50ZWdyYXRpb24tdGltZSB0ZWFyZG93biBjb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RzLCBub3QgdW5pdCB0ZXN0cy4gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0IC0tIEplc3QncyBnbG9iYWxUZWFyZG93biBsb2FkZXIgcmVxdWlyZXMgYSBkZWZhdWx0LWV4cG9ydCBmdW5jdGlvbi5cbmV4cG9ydCB7IHRlYXJkb3duIGFzIGRlZmF1bHQgfSBmcm9tICcuL2dsb2JhbC1zZXR1cC1uby1wbHVnaW4uY2pzJztcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQSxvQ0FBb0M7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -7,5 +7,4 @@
|
|
|
7
7
|
* the teardown function. It re-exports the teardown from the plugin-less setup
|
|
8
8
|
* module so both share the same setup state within the Jest parent process.
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
export default teardown;
|
|
10
|
+
export { teardown as default } from './global-setup-no-plugin.cjs';
|
|
@@ -18,9 +18,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var global_teardown_exports = {};
|
|
20
20
|
__export(global_teardown_exports, {
|
|
21
|
-
default: () =>
|
|
21
|
+
default: () => import_global_setup.teardown
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(global_teardown_exports);
|
|
24
24
|
var import_global_setup = require("./global-setup.cjs");
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXRlYXJkb3duLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogSmVzdCBnbG9iYWwgdGVhcmRvd24gZW50cnkgcG9pbnQuXG4gKlxuICogSmVzdCByZXF1aXJlcyBgZ2xvYmFsVGVhcmRvd25gIHRvIGJlIGEgc2VwYXJhdGUgbW9kdWxlIHdob3NlIGRlZmF1bHQgZXhwb3J0IGlzXG4gKiB0aGUgdGVhcmRvd24gZnVuY3Rpb24uIEl0IHJlLWV4cG9ydHMgdGhlIHRlYXJkb3duIGZyb20gdGhlIHNldHVwIG1vZHVsZSBzbyBib3RoXG4gKiBzaGFyZSB0aGUgc2FtZSBzZXR1cCBzdGF0ZSB3aXRoaW4gdGhlIEplc3QgcGFyZW50IHByb2Nlc3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgdGVhcmRvd24gY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB7IHRlYXJkb3duIH0gZnJvbSAnLi9nbG9iYWwtc2V0dXAuY2pzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0IC0tIEplc3QncyBnbG9iYWxUZWFyZG93biBsb2FkZXIgcmVxdWlyZXMgYSBkZWZhdWx0LWV4cG9ydCBmdW5jdGlvbi5cbmV4cG9ydCBkZWZhdWx0IHRlYXJkb3duO1xuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLDBCQUF5QjtBQUd6QixJQUFPLDBCQUFROyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3QvZ2xvYmFsLXRlYXJkb3duLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogSmVzdCBnbG9iYWwgdGVhcmRvd24gZW50cnkgcG9pbnQuXG4gKlxuICogSmVzdCByZXF1aXJlcyBgZ2xvYmFsVGVhcmRvd25gIHRvIGJlIGEgc2VwYXJhdGUgbW9kdWxlIHdob3NlIGRlZmF1bHQgZXhwb3J0IGlzXG4gKiB0aGUgdGVhcmRvd24gZnVuY3Rpb24uIEl0IHJlLWV4cG9ydHMgdGhlIHRlYXJkb3duIGZyb20gdGhlIHNldHVwIG1vZHVsZSBzbyBib3RoXG4gKiBzaGFyZSB0aGUgc2FtZSBzZXR1cCBzdGF0ZSB3aXRoaW4gdGhlIEplc3QgcGFyZW50IHByb2Nlc3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgdGVhcmRvd24gY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCAtLSBKZXN0J3MgZ2xvYmFsVGVhcmRvd24gbG9hZGVyIHJlcXVpcmVzIGEgZGVmYXVsdC1leHBvcnQgZnVuY3Rpb24uXG5leHBvcnQgeyB0ZWFyZG93biBhcyBkZWZhdWx0IH0gZnJvbSAnLi9nbG9iYWwtc2V0dXAuY2pzJztcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQSwwQkFBb0M7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -7,5 +7,4 @@
|
|
|
7
7
|
* the teardown function. It re-exports the teardown from the setup module so both
|
|
8
8
|
* share the same setup state within the Jest parent process.
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
export default teardown;
|
|
10
|
+
export { teardown as default } from './global-setup.cjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var import_context_provider = require("../context-provider.cjs");
|
|
3
3
|
(0, import_context_provider.setTransportOptionsResolver)(() => globalThis.__obsidianIntegrationTesting?.transportOptions);
|
|
4
|
-
(0, import_context_provider.setVaultPathResolver)(() => globalThis.__obsidianIntegrationTesting?.
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
(0, import_context_provider.setVaultPathResolver)(() => globalThis.__obsidianIntegrationTesting?.temporaryVaultPath);
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2plc3Qvc2V0dXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBKZXN0ICoqcGVyLXdvcmtlcioqIHNldHVwIGZpbGUuXG4gKlxuICogSmVzdCBydW5zIGBnbG9iYWxTZXR1cGAgb25seSBpbiB0aGUgbWFpbiBwcm9jZXNzLCBzbyB0aGUgdHJhbnNwb3J0LW9wdGlvbnMgYW5kXG4gKiB2YXVsdC1wYXRoIHJlc29sdmVycyByZWdpc3RlcmVkIHRoZXJlIG5ldmVyIGV4aXN0IGluIHRoZSB0ZXN0IHdvcmtlcnMgdGhhdFxuICogYWN0dWFsbHkgY2FsbCB7QGxpbmsgZXZhbEluT2JzaWRpYW59LiBBZGQgdGhpcyBtb2R1bGUgdG8gdGhlIGludGVncmF0aW9uXG4gKiBjb25maWcncyBgc2V0dXBGaWxlc2Agc28gZWFjaCB3b3JrZXIgcmVnaXN0ZXJzIHRoZSByZXNvbHZlcnMgYW5kIHJlYWRzIHRoZVxuICogY29udGV4dCBmcm9tIGBnbG9iYWxUaGlzLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgICh0aGUgdHJhbnNwb3J0IG9wdGlvbnNcbiAqIGEgY29uc3VtZXIgc2V0cyB2aWEgSmVzdCBgZ2xvYmFsc2AsIHBsdXMgdGhlIHZhdWx0IHBhdGgpLlxuICpcbiAqIE5vdGU6IHVubGlrZSBWaXRlc3QncyBgcHJvdmlkZWAvYGluamVjdGAsIEplc3QgaGFzIG5vIGNoYW5uZWwgZnJvbVxuICogYGdsb2JhbFNldHVwYCB0byB3b3JrZXIgc2FuZGJveGVzIGZvciAqZHluYW1pY2FsbHkqIGNvbXB1dGVkIHZhbHVlcywgc28gdGhlXG4gKiBvd25lZC1DRFAgZGVmYXVsdCdzIGF1dG8tY2hvc2VuIHBvcnQgY2Fubm90IHJlYWNoIEplc3Qgd29ya2VycyBcdTIwMTQgdW5kZXIgSmVzdCxcbiAqIGF0dGFjaCB0byBhIGZpeGVkIGBwb3J0YCB2aWEgdGhlIHRyYW5zcG9ydCBvcHRpb25zIGluIGBnbG9iYWxzYC5cbiAqL1xuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgc2V0dXAgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIH0gZnJvbSAnLi4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcblxuaW1wb3J0IHtcbiAgc2V0VHJhbnNwb3J0T3B0aW9uc1Jlc29sdmVyLFxuICBzZXRWYXVsdFBhdGhSZXNvbHZlclxufSBmcm9tICcuLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5cbmludGVyZmFjZSBPYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ0dsb2JhbCB7XG4gIHRlbXBvcmFyeVZhdWx0UGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdHJhbnNwb3J0T3B0aW9ucz86IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB8IHVuZGVmaW5lZDtcbn1cblxuLyogZXNsaW50LWRpc2FibGUgdmFycy1vbi10b3AgLS0gUmVxdWlyZWQgZm9yIGBkZWNsYXJlIGdsb2JhbGAgYXVnbWVudGF0aW9uLiAqL1xuZGVjbGFyZSBnbG9iYWwge1xuICB2YXIgX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZzogT2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdHbG9iYWwgfCB1bmRlZmluZWQ7XG59XG4vKiBlc2xpbnQtZW5hYmxlIHZhcnMtb24tdG9wIC0tIEVuZCBvZiBgZGVjbGFyZSBnbG9iYWxgIGJsb2NrLiAqL1xuXG5zZXRUcmFuc3BvcnRPcHRpb25zUmVzb2x2ZXIoKCkgPT4gZ2xvYmFsVGhpcy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy50cmFuc3BvcnRPcHRpb25zKTtcbnNldFZhdWx0UGF0aFJlc29sdmVyKCgpID0+IGdsb2JhbFRoaXMuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8udGVtcG9yYXJ5VmF1bHRQYXRoKTtcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFxQkEsOEJBR087QUFBQSxJQWFQLHFEQUE0QixNQUFNLFdBQVcsOEJBQThCLGdCQUFnQjtBQUFBLElBQzNGLDhDQUFxQixNQUFNLFdBQVcsOEJBQThCLGtCQUFrQjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import type { ObsidianTransportOptions } from '../transport-options.cjs';
|
|
19
19
|
interface ObsidianIntegrationTestingGlobal {
|
|
20
|
-
|
|
20
|
+
temporaryVaultPath?: string | undefined;
|
|
21
21
|
transportOptions?: ObsidianTransportOptions | undefined;
|
|
22
22
|
}
|
|
23
23
|
declare global {
|
|
@@ -25,17 +25,17 @@ var import_function_expression = require("./function-expression.cjs");
|
|
|
25
25
|
function jsonWithFunctions(value) {
|
|
26
26
|
const functionMap = /* @__PURE__ */ new Map();
|
|
27
27
|
const JSON_INDENT = 2;
|
|
28
|
-
const json = JSON.stringify(value, (_key,
|
|
29
|
-
if (typeof
|
|
28
|
+
const json = JSON.stringify(value, (_key, value_) => {
|
|
29
|
+
if (typeof value_ === "function") {
|
|
30
30
|
const placeholder = `__fn_${String(functionMap.size)}__`;
|
|
31
|
-
functionMap.set(placeholder, (0, import_function_expression.getFunctionExpressionString)(
|
|
31
|
+
functionMap.set(placeholder, (0, import_function_expression.getFunctionExpressionString)(value_));
|
|
32
32
|
return placeholder;
|
|
33
33
|
}
|
|
34
|
-
return
|
|
34
|
+
return value_;
|
|
35
35
|
}, JSON_INDENT);
|
|
36
36
|
let result = json;
|
|
37
|
-
for (const [placeholder,
|
|
38
|
-
result = result.replace(`"${placeholder}"`,
|
|
37
|
+
for (const [placeholder, functionSource] of functionMap) {
|
|
38
|
+
result = result.replace(`"${placeholder}"`, () => functionSource);
|
|
39
39
|
}
|
|
40
40
|
return result;
|
|
41
41
|
}
|
|
@@ -43,4 +43,4 @@ function jsonWithFunctions(value) {
|
|
|
43
43
|
0 && (module.exports = {
|
|
44
44
|
jsonWithFunctions
|
|
45
45
|
});
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2pzb24td2l0aC1mdW5jdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTZXJpYWxpemVzIGEgdmFsdWUgdG8gSlNPTiwgcHJlc2VydmluZyBmdW5jdGlvbiBib2RpZXMgYXMgcmF3IHNvdXJjZSB0ZXh0LlxuICovXG5cbmltcG9ydCB7IGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyB9IGZyb20gJy4vZnVuY3Rpb24tZXhwcmVzc2lvbi5janMnO1xuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSB2YWx1ZSB0byBKU09OIHdpdGggZnVuY3Rpb24gYm9kaWVzIGluY2x1ZGVkIGFzIHJhdyBzb3VyY2UgdGV4dC5cbiAqXG4gKiBTdGFuZGFyZCBgSlNPTi5zdHJpbmdpZnlgIG9taXRzIGZ1bmN0aW9ucyBlbnRpcmVseS4gVGhpcyBoZWxwZXIgcmVwbGFjZXNcbiAqIGVhY2ggZnVuY3Rpb24gdmFsdWUgd2l0aCBhIHVuaXF1ZSBwbGFjZWhvbGRlciBkdXJpbmcgc3RyaW5naWZpY2F0aW9uLFxuICogdGhlbiBzdWJzdGl0dXRlcyB0aGUgcGxhY2Vob2xkZXJzIHdpdGggdGhlIHJlYWwgYHRvU3RyaW5nKClgIG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2VyaWFsaXplLlxuICogQHJldHVybnMgQSBKU09OLWxpa2Ugc3RyaW5nIHdoZXJlIGZ1bmN0aW9ucyBhcHBlYXIgYXMgdGhlaXIgc291cmNlIHRleHQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBqc29uV2l0aEZ1bmN0aW9ucyh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIGNvbnN0IGZ1bmN0aW9uTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICBjb25zdCBKU09OX0lOREVOVCA9IDI7XG4gIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgKF9rZXk6IHN0cmluZywgdmFsdWVfOiB1bmtub3duKTogSlNPTlZhbHVlRjx1bmtub3duPiA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZV8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gYF9fZm5fJHtTdHJpbmcoZnVuY3Rpb25NYXAuc2l6ZSl9X19gO1xuICAgICAgZnVuY3Rpb25NYXAuc2V0KHBsYWNlaG9sZGVyLCBnZXRGdW5jdGlvbkV4cHJlc3Npb25TdHJpbmcodmFsdWVfKSk7XG4gICAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZV8gYXMgSlNPTlZhbHVlRjx1bmtub3duPjtcbiAgfSwgSlNPTl9JTkRFTlQpO1xuXG4gIGxldCByZXN1bHQgPSBqc29uO1xuICBmb3IgKGNvbnN0IFtwbGFjZWhvbGRlciwgZnVuY3Rpb25Tb3VyY2VdIG9mIGZ1bmN0aW9uTWFwKSB7XG4gICAgLypcbiAgICAgKiBUaGUgcmVwbGFjZXIgRlVOQ1RJT04gaXMgcmVxdWlyZWQsIG5vdCBjb3NtZXRpYzogYGZuU291cmNlYCBpcyBhcmJpdHJhcnkgdXNlciBmdW5jdGlvbiBzb3VyY2UsIGFuZCBhXG4gICAgICogc3RyaW5nIHJlcGxhY2VtZW50IHdvdWxkIHJlYWQgYW55IGAkJmAgLyBgJCdgIC8gYGAgJGAgYGAgaW5zaWRlIGl0IGFzIGEgc3Vic3RpdHV0aW9uIHBhdHRlcm4gYW5kIHNpbGVudGx5XG4gICAgICogY29ycnVwdCB0aGUgc2VyaWFsaXplZCBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShgXCIke3BsYWNlaG9sZGVyfVwiYCwgKCkgPT4gZnVuY3Rpb25Tb3VyY2UpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxpQ0FBNEM7QUFZckMsU0FBUyxrQkFBa0IsT0FBd0I7QUFDeEQsUUFBTSxjQUFjLG9CQUFJLElBQW9CO0FBRTVDLFFBQU0sY0FBYztBQUNwQixRQUFNLE9BQU8sS0FBSyxVQUFVLE9BQU8sQ0FBQyxNQUFjLFdBQXlDO0FBQ3pGLFFBQUksT0FBTyxXQUFXLFlBQVk7QUFDaEMsWUFBTSxjQUFjLFFBQVEsT0FBTyxZQUFZLElBQUksQ0FBQztBQUNwRCxrQkFBWSxJQUFJLGlCQUFhLHdEQUE0QixNQUFNLENBQUM7QUFDaEUsYUFBTztBQUFBLElBQ1Q7QUFDQSxXQUFPO0FBQUEsRUFDVCxHQUFHLFdBQVc7QUFFZCxNQUFJLFNBQVM7QUFDYixhQUFXLENBQUMsYUFBYSxjQUFjLEtBQUssYUFBYTtBQU12RCxhQUFTLE9BQU8sUUFBUSxJQUFJLFdBQVcsS0FBSyxNQUFNLGNBQWM7QUFBQSxFQUNsRTtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -25,9 +25,9 @@ __export(leftover_cleanup_exports, {
|
|
|
25
25
|
checkIsLeftoverStale: () => checkIsLeftoverStale,
|
|
26
26
|
filterLeftoverNames: () => filterLeftoverNames,
|
|
27
27
|
resolveLeftoverMaxAgeInMilliseconds: () => resolveLeftoverMaxAgeInMilliseconds,
|
|
28
|
-
resolveShouldSweepLeftovers: () => resolveShouldSweepLeftovers,
|
|
29
28
|
sweepDeviceLeftovers: () => sweepDeviceLeftovers,
|
|
30
|
-
sweepHostLeftovers: () => sweepHostLeftovers
|
|
29
|
+
sweepHostLeftovers: () => sweepHostLeftovers,
|
|
30
|
+
willSweepLeftovers: () => willSweepLeftovers
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(leftover_cleanup_exports);
|
|
33
33
|
var import_promises = require("node:fs/promises");
|
|
@@ -50,18 +50,15 @@ function filterLeftoverNames(params) {
|
|
|
50
50
|
function resolveLeftoverMaxAgeInMilliseconds(options) {
|
|
51
51
|
return options?.leftoverMaxAgeInMilliseconds ?? DEFAULT_LEFTOVER_MAX_AGE_IN_MILLISECONDS;
|
|
52
52
|
}
|
|
53
|
-
function resolveShouldSweepLeftovers(options) {
|
|
54
|
-
return options?.shouldSweepLeftovers ?? true;
|
|
55
|
-
}
|
|
56
53
|
async function sweepDeviceLeftovers(params) {
|
|
57
|
-
const { listNames,
|
|
54
|
+
const { listNames, removeDirectory, vaultBasePath } = params;
|
|
58
55
|
const names = filterLeftoverNames({ names: await listNames(), prefixes: [TEMP_VAULT_DIR_PREFIX] });
|
|
59
56
|
if (names.length === 0) {
|
|
60
57
|
return { failedNames: [], removedCount: 0 };
|
|
61
58
|
}
|
|
62
59
|
for (const name of names) {
|
|
63
60
|
try {
|
|
64
|
-
await
|
|
61
|
+
await removeDirectory(`${vaultBasePath}${name}`);
|
|
65
62
|
} catch {
|
|
66
63
|
}
|
|
67
64
|
}
|
|
@@ -78,12 +75,12 @@ async function sweepHostLeftovers(options) {
|
|
|
78
75
|
for (const root of roots) {
|
|
79
76
|
const names = filterLeftoverNames({
|
|
80
77
|
excludedNames: options?.excludedNames,
|
|
81
|
-
names: await
|
|
78
|
+
names: await readDirectoryNames(root.path),
|
|
82
79
|
prefixes: root.prefixes
|
|
83
80
|
});
|
|
84
81
|
for (const name of names) {
|
|
85
82
|
const path = (0, import_node_path.join)(root.path, name);
|
|
86
|
-
if (!await
|
|
83
|
+
if (!await checkIsRemovableDirectory({ maxAgeInMilliseconds, nowInMilliseconds, path })) {
|
|
87
84
|
continue;
|
|
88
85
|
}
|
|
89
86
|
try {
|
|
@@ -96,7 +93,10 @@ async function sweepHostLeftovers(options) {
|
|
|
96
93
|
}
|
|
97
94
|
return { failedCount, removedCount };
|
|
98
95
|
}
|
|
99
|
-
|
|
96
|
+
function willSweepLeftovers(options) {
|
|
97
|
+
return options?.shouldSweepLeftovers ?? true;
|
|
98
|
+
}
|
|
99
|
+
async function checkIsRemovableDirectory(params) {
|
|
100
100
|
const { maxAgeInMilliseconds, nowInMilliseconds } = params;
|
|
101
101
|
try {
|
|
102
102
|
const stats = await (0, import_promises.stat)(params.path);
|
|
@@ -111,7 +111,7 @@ function getDefaultLeftoverRoots() {
|
|
|
111
111
|
{ path: (0, import_node_path.join)((0, import_node_os.tmpdir)(), HARNESS_TEMP_DIR_NAME), prefixes: [OWNED_USER_DATA_DIR_PREFIX] }
|
|
112
112
|
];
|
|
113
113
|
}
|
|
114
|
-
async function
|
|
114
|
+
async function readDirectoryNames(path) {
|
|
115
115
|
try {
|
|
116
116
|
return await (0, import_promises.readdir)(path);
|
|
117
117
|
} catch {
|
|
@@ -127,8 +127,8 @@ async function readDirNames(path) {
|
|
|
127
127
|
checkIsLeftoverStale,
|
|
128
128
|
filterLeftoverNames,
|
|
129
129
|
resolveLeftoverMaxAgeInMilliseconds,
|
|
130
|
-
resolveShouldSweepLeftovers,
|
|
131
130
|
sweepDeviceLeftovers,
|
|
132
|
-
sweepHostLeftovers
|
|
131
|
+
sweepHostLeftovers,
|
|
132
|
+
willSweepLeftovers
|
|
133
133
|
});
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xlZnRvdmVyLWNsZWFudXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTd2VlcHMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcmllcyBhIHByZXZpb3VzIGludGVncmF0aW9uIHJ1biBsZWFrZWQgXHUyMDE0IHRoZVxuICogYHRlbXAtdmF1bHQtKmAgc3RhZ2luZy92YXVsdCBkaXJlY3RvcmllcyBhbmQgdGhlIG93bmVkIGluc3RhbmNlJ3NcbiAqIGB1c2VyZGF0YS0qYCBDaHJvbWl1bSBwcm9maWxlcy5cbiAqXG4gKiBBIHJ1biB0aGF0IGRpZXMgbWlkLWZsaWdodCBjYW5ub3QgY2xlYW4gdXAgYWZ0ZXIgaXRzZWxmOiBvbiBBbmRyb2lkIHRoZVxuICogdGVhcmRvd24gdGFsa3MgdG8gdGhlIFdlYlZpZXcsIGFuZCBhIGRlYWQgV2ViVmlldyBpcyBleGFjdGx5IHdoYXQgbW9zdFxuICogZmFpbHVyZXMgYXJlIChgVmF1bHQgY2xlYW51cCBlcnJvciAobm9uLWZhdGFsKTogbm8gc3VjaCB3aW5kb3dgKS4gRXZlcnlcbiAqIGZhaWx1cmUgdGhlcmVmb3JlIGxlYWtzIGEgdmF1bHQsIGV2ZXJ5IGxlYWtlZCB2YXVsdCBzdGF5cyByZWdpc3RlcmVkIGZvclxuICogT2JzaWRpYW4gdG8gZW51bWVyYXRlIGF0IHN0YXJ0dXAsIGFuZCB0aGF0IGVudW1lcmF0aW9uIGhhcyB0byBmaW5pc2ggaW5zaWRlXG4gKiB0aGUgV2ViVmlldy1yZWFkaW5lc3MgYnVkZ2V0IFx1MjAxNCBzbyBlYWNoIGZhaWx1cmUgbWFrZXMgdGhlIG5leHQgb25lIGxpa2VsaWVyLlxuICogU3dlZXBpbmcgZm9yZWlnbiByZXNpZHVlIGF0IHRoZSBTVEFSVCBvZiBhIHJ1biBicmVha3MgdGhhdCBsb29wLCBiZWNhdXNlIGl0XG4gKiBydW5zIGJlZm9yZSBhbnl0aGluZyB0aGF0IGNhbiBkaWUuXG4gKlxuICogVGhlIHR3byBzaWRlcyB1c2UgZGVsaWJlcmF0ZWx5IGRpZmZlcmVudCBzYWZldHkgZ2F0ZXMgKHNlZSB0aGUgcmVwbydzIEwzMSk6XG4gKlxuICogLSAqKkRldmljZSAoQW5kcm9pZCkqKiBcdTIwMTQgdW5jb25kaXRpb25hbC4gQW5kcm9pZCBydW5zIGhvbGQgdGhlIGV4Y2x1c2l2ZVxuICogICBgYW5kcm9pZGAgc2V0dXAgbG9jaywgc28gbm8gY29uY3VycmVudCBydW4gY2FuIG93biBhIGRldmljZSB2YXVsdCwgYW5kIGFuXG4gKiAgIGFnZSBnYXRlIHdvdWxkIGxldCBhIHZhdWx0IGxlYWtlZCB0ZW4gbWludXRlcyBhZ28gc3Vydml2ZSBpbnRvIHRoZSBuZXh0IHJ1bi5cbiAqIC0gKipIb3N0KiogXHUyMDE0IGFnZS1nYXRlZC4gRGVza3RvcCBydW5zIGFyZSBkZWxpYmVyYXRlbHkgKm5vdCogc2VyaWFsaXplZCAoZWFjaFxuICogICBvd25zIGFuIGlzb2xhdGVkIGluc3RhbmNlKSBhbmQgZXZlcnkgcHJvamVjdCBvbiB0aGUgbWFjaGluZSBzaGFyZXMgb25lXG4gKiAgIGB0bXBkaXIoKWAsIHNvIGEgZGlyZWN0b3J5IHlvdW5nIGVub3VnaCB0byBiZWxvbmcgdG8gYSBsaXZlIHJ1biBpcyBsZWZ0XG4gKiAgIGFsb25lLlxuICovXG5cbmltcG9ydCB7XG4gIHJlYWRkaXIsXG4gIHJtLFxuICBzdGF0XG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1vcHRpb25zLmNqcyc7XG5cbi8qKlxuICogRGVmYXVsdCBmb3IgdGhlIGBsZWZ0b3Zlck1heEFnZUluTWlsbGlzZWNvbmRzYCB0cmFuc3BvcnQgb3B0aW9uIFx1MjAxNCB0d28gaG91cnMuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xFRlRPVkVSX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTID0gNzIwMDAwMDtcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBoYXJuZXNzJ3Mgb3duIGRpcmVjdG9yeSBpbnNpZGUge0BsaW5rIHRtcGRpcn0sIHdoaWNoIGhvbGRzIHRoZVxuICogb3duZWQgaW5zdGFuY2VzJyB1c2VyLWRhdGEgZGlyZWN0b3JpZXMgYWxvbmdzaWRlIHRoZSB2ZXJzaW9uL2luc3RhbGxlciBjYWNoZXNcbiAqIGFuZCB0aGUgc2V0dXAgbG9ja3MuXG4gKi9cbmV4cG9ydCBjb25zdCBIQVJORVNTX1RFTVBfRElSX05BTUUgPSAnb2JzaWRpYW4taW50ZWdyYXRpb24tdGVzdGluZyc7XG5cbi8qKlxuICogUHJlZml4IG9mIGFuIG93bmVkIGRlc2t0b3AgaW5zdGFuY2UncyBpc29sYXRlZCB1c2VyLWRhdGEgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgY29uc3QgT1dORURfVVNFUl9EQVRBX0RJUl9QUkVGSVggPSAndXNlcmRhdGEtJztcblxuLyoqXG4gKiBQcmVmaXggb2YgYSB0ZW1wb3JhcnkgdmF1bHQgZGlyZWN0b3J5LCBib3RoIG9uIHRoZSBob3N0ICh3aGVyZSBpdCBpcyBjcmVhdGVkKVxuICogYW5kIG9uIGFuIEFuZHJvaWQgZGV2aWNlICh3aGVyZSBpdCBrZWVwcyBpdHMgaG9zdCBiYXNlbmFtZSkuXG4gKi9cbmV4cG9ydCBjb25zdCBURU1QX1ZBVUxUX0RJUl9QUkVGSVggPSAndGVtcC12YXVsdC0nO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjaGVja0lzTGVmdG92ZXJTdGFsZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tJc0xlZnRvdmVyU3RhbGVQYXJhbXMge1xuICAvKipcbiAgICogSG93IG9sZCBhbiBlbnRyeSBtdXN0IGJlIHRvIGNvdW50IGFzIHN0YWxlLiBgMGAgZGlzYWJsZXMgdGhlIGdhdGUsIG1ha2luZ1xuICAgKiBldmVyeSBlbnRyeSBzdGFsZS5cbiAgICovXG4gIHJlYWRvbmx5IG1heEFnZUluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqIFRoZSBlbnRyeSdzIG1vZGlmaWNhdGlvbiB0aW1lLCBpbiBlcG9jaCBtaWxsaXNlY29uZHMuICovXG4gIHJlYWRvbmx5IG1vZGlmaWVkQXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKiBUaGUgY3VycmVudCB0aW1lLCBpbiBlcG9jaCBtaWxsaXNlY29uZHMuICovXG4gIHJlYWRvbmx5IG5vd0luTWlsbGlzZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbHRlckxlZnRvdmVyTmFtZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckxlZnRvdmVyTmFtZXNQYXJhbXMge1xuICAvKiogTmFtZXMgdG8ga2VlcCBldmVuIHdoZW4gdGhleSBtYXRjaCBhIHByZWZpeCAoZS5nLiB0aGUgY3VycmVudCBydW4ncyBvd24gdmF1bHQpLiAqL1xuICByZWFkb25seSBleGNsdWRlZE5hbWVzPzogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFJhdyBlbnRyeSBuYW1lcy4gQWNjZXB0cyBgYWRiIHNoZWxsIGxzYCBvdXRwdXQgc3BsaXQgaW50byBsaW5lcywgc28gZWFjaFxuICAgKiBuYW1lIGlzIHRyaW1tZWQgKGRyb3BwaW5nIHRoZSB0cmFpbGluZyBgXFxyYCBhbiBgYWRiYCBzaGVsbCBhZGRzIG9uIFdpbmRvd3MpXG4gICAqIGFuZCBibGFuayBsaW5lcyBhcmUgZHJvcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKiogRGlyZWN0b3J5LW5hbWUgcHJlZml4ZXMgdGhhdCBtYXJrIGFuIGVudHJ5IGFzIHRoZSBoYXJuZXNzJ3Mgb3duIHJlc2lkdWUuICovXG4gIHJlYWRvbmx5IHByZWZpeGVzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIGRpcmVjdG9yeSB0aGUgaG9zdCBzd2VlcCBzY2FucywgdG9nZXRoZXIgd2l0aCB0aGUgcHJlZml4ZXMgdGhhdCBtYXJrXG4gKiByZXNpZHVlIGluc2lkZSBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMZWZ0b3ZlclJvb3Qge1xuICAvKiogVGhlIGFic29sdXRlIHBhdGggdG8gc2Nhbi4gKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuXG4gIC8qKiBEaXJlY3RvcnktbmFtZSBwcmVmaXhlcyB0aGF0IG1hcmsgYW4gZW50cnkgYXMgcmVtb3ZhYmxlIHJlc2lkdWUuICovXG4gIHJlYWRvbmx5IHByZWZpeGVzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc3dlZXBEZXZpY2VMZWZ0b3ZlcnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN3ZWVwRGV2aWNlTGVmdG92ZXJzUGFyYW1zIHtcbiAgLyoqXG4gICAqIExpc3RzIHRoZSBlbnRyeSBuYW1lcyBkaXJlY3RseSB1bmRlciB0aGUgdmF1bHQgYmFzZSBwYXRoLiBBIGxpc3RpbmcgZmFpbHVyZVxuICAgKiBtdXN0IHJlc29sdmUgdG8gYW4gZW1wdHkgbGlzdCByYXRoZXIgdGhhbiByZWplY3QgXHUyMDE0IGEgZGV2aWNlIHdpdGggbm8gdmF1bHRcbiAgICogZGlyZWN0b3J5IHlldCBpcyB0aGUgbm9ybWFsIGZpcnN0LXJ1biBzdGF0ZSwgbm90IGFuIGVycm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdE5hbWVzOiAoKSA9PiBQcm9taXNlPHJlYWRvbmx5IHN0cmluZ1tdPjtcblxuICAvKipcbiAgICogUmVtb3ZlcyBPTkUgZGlyZWN0b3J5LCBieSBhYnNvbHV0ZSBkZXZpY2UgcGF0aC4gTWF5IHJlamVjdDsgdGhlIGNhbGxlclxuICAgKiB0cmVhdHMgYSByZWplY3Rpb24gYXMgdGhpcyBkaXJlY3RvcnkgZmFpbGluZyBhbmQgbW92ZXMgb24gdG8gdGhlIG5leHQuXG4gICAqL1xuICByZWFkb25seSByZW1vdmVEaXI6IChwYXRoOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqIFRoZSBhYnNvbHV0ZSBkZXZpY2UgcGF0aCB0aGUgdmF1bHRzIHNpdCB1bmRlciwgaW5jbHVkaW5nIGl0cyB0cmFpbGluZyBzZXBhcmF0b3IuICovXG4gIHJlYWRvbmx5IHZhdWx0QmFzZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2Yge0BsaW5rIHN3ZWVwRGV2aWNlTGVmdG92ZXJzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2VlcERldmljZUxlZnRvdmVyc1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgdGhhdCB3ZXJlIHN0aWxsIHByZXNlbnQgYWZ0ZXIgdGhlIHN3ZWVwLiBOYW1lZCByYXRoZXIgdGhhblxuICAgKiBjb3VudGVkLCBiZWNhdXNlIHRoZSBpbnRlcmVzdGluZyBjYXNlIGlzIGEgZGlyZWN0b3J5IHRoYXQgZmFpbHMgRVZFUlkgcnVuXG4gICAqIGFuZCBhIGNhbGxlciBjYW4gb25seSBzYXkgc28gaWYgaXQga25vd3Mgd2hpY2ggb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbGVkTmFtZXM6IHN0cmluZ1tdO1xuXG4gIC8qKiBIb3cgbWFueSBkaXJlY3RvcmllcyBhcmUgdmVyaWZpYWJseSBnb25lLiAqL1xuICByZWFkb25seSByZW1vdmVkQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgc3dlZXBIb3N0TGVmdG92ZXJzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2VlcEhvc3RMZWZ0b3ZlcnNPcHRpb25zIHtcbiAgLyoqIE5hbWVzIHRvIGtlZXAgcmVnYXJkbGVzcyBvZiBhZ2UgKGUuZy4gdGhlIGN1cnJlbnQgcnVuJ3Mgb3duIGRpcmVjdG9yaWVzKS4gKi9cbiAgcmVhZG9ubHkgZXhjbHVkZWROYW1lcz86IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBIb3cgb2xkIGEgZGlyZWN0b3J5IG11c3QgYmUgYmVmb3JlIGl0IGlzIHJlbW92ZWQuIGAwYCByZW1vdmVzIGV2ZXJ5IG1hdGNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCB7QGxpbmsgREVGQVVMVF9MRUZUT1ZFUl9NQVhfQUdFX0lOX01JTExJU0VDT05EU31cbiAgICovXG4gIHJlYWRvbmx5IG1heEFnZUluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdHMgdG8gc3dlZXAuIERlZmF1bHRzIHRvIHRoZSB0ZW1wLXZhdWx0IHJvb3QgKHtAbGluayB0bXBkaXJ9KSBhbmQgdGhlXG4gICAqIG93bmVkIHVzZXItZGF0YSByb290IChgPHRtcGRpcj4ve0BsaW5rIEhBUk5FU1NfVEVNUF9ESVJfTkFNRX1gKS5cbiAgICovXG4gIHJlYWRvbmx5IHJvb3RzPzogcmVhZG9ubHkgTGVmdG92ZXJSb290W10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHtAbGluayBzd2VlcEhvc3RMZWZ0b3ZlcnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN3ZWVwSG9zdExlZnRvdmVyc1Jlc3VsdCB7XG4gIC8qKiBIb3cgbWFueSBkaXJlY3RvcmllcyB3ZXJlIHNlbGVjdGVkIGZvciByZW1vdmFsIGJ1dCBjb3VsZCBub3QgYmUgcmVtb3ZlZC4gKi9cbiAgcmVhZG9ubHkgZmFpbGVkQ291bnQ6IG51bWJlcjtcblxuICAvKiogSG93IG1hbnkgZGlyZWN0b3JpZXMgd2VyZSByZW1vdmVkLiAqL1xuICByZWFkb25seSByZW1vdmVkQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY2hlY2tJc1JlbW92YWJsZURpcn0uXG4gKi9cbmludGVyZmFjZSBDaGVja0lzUmVtb3ZhYmxlRGlyUGFyYW1zIHtcbiAgLyoqIEhvdyBvbGQgdGhlIGVudHJ5IG11c3QgYmUgdG8gYmUgcmVtb3ZlZCAoYDBgIGRpc2FibGVzIHRoZSBnYXRlKS4gKi9cbiAgcmVhZG9ubHkgbWF4QWdlSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKiogVGhlIHN3ZWVwJ3MgcmVmZXJlbmNlIHRpbWUsIGluIGVwb2NoIG1pbGxpc2Vjb25kcy4gKi9cbiAgcmVhZG9ubHkgbm93SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKiogVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGVudHJ5LiAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVjaWRlcyB3aGV0aGVyIGEgbGVmdG92ZXIgZW50cnkgaXMgb2xkIGVub3VnaCB0byBiZSByZW1vdmVkLlxuICpcbiAqIFRoZSBnYXRlIGV4aXN0cyBiZWNhdXNlIGV2ZXJ5IHByb2plY3Qgb24gdGhlIG1hY2hpbmUgc2hhcmVzIG9uZSBgdG1wZGlyKClgXG4gKiBhbmQgZGVza3RvcCBydW5zIGFyZSBub3Qgc2VyaWFsaXplZCwgc28gYSB5b3VuZyBkaXJlY3RvcnkgbWF5IHdlbGwgYmVsb25nIHRvXG4gKiBhIHJ1biB0aGF0IGlzIHN0aWxsIGluIGZsaWdodC4gQW4gZW50cnkgd2hvc2UgbW9kaWZpY2F0aW9uIHRpbWUgaXMgaW4gdGhlXG4gKiBmdXR1cmUgKGEgY2xvY2sgc2tldykgaXMgdHJlYXRlZCBhcyBsaXZlIGZvciB0aGUgc2FtZSByZWFzb24uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBhZ2UgY29tcGFyaXNvbiBpbnB1dHMuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgZW50cnkgbWF5IGJlIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lzTGVmdG92ZXJTdGFsZShwYXJhbXM6IENoZWNrSXNMZWZ0b3ZlclN0YWxlUGFyYW1zKTogYm9vbGVhbiB7XG4gIGlmIChwYXJhbXMubWF4QWdlSW5NaWxsaXNlY29uZHMgPT09IDApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBwYXJhbXMubm93SW5NaWxsaXNlY29uZHMgLSBwYXJhbXMubW9kaWZpZWRBdEluTWlsbGlzZWNvbmRzID49IHBhcmFtcy5tYXhBZ2VJbk1pbGxpc2Vjb25kcztcbn1cblxuLyoqXG4gKiBTZWxlY3RzIHRoZSBlbnRyeSBuYW1lcyB0aGF0IGFyZSB0aGUgaGFybmVzcydzIG93biByZXNpZHVlLlxuICpcbiAqIE5hbWUtb25seSwgc28gdGhlIGNhbGxlciBjYW4gZmlsdGVyIGEgbGFyZ2UgZGlyZWN0b3J5IGxpc3RpbmcgYmVmb3JlIHBheWluZ1xuICogZm9yIGEgYHN0YXRgIHBlciBlbnRyeSwgYW5kIHNvIHRoZSBBbmRyb2lkIHN3ZWVwIGNhbiBmZWVkIGl0IHJhd1xuICogYGFkYiBzaGVsbCBsc2Agb3V0cHV0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbmFtZXMsIHByZWZpeGVzLCBhbmQgZXhjbHVzaW9ucy5cbiAqIEByZXR1cm5zIFRoZSBtYXRjaGluZyBuYW1lcywgdHJpbW1lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckxlZnRvdmVyTmFtZXMocGFyYW1zOiBGaWx0ZXJMZWZ0b3Zlck5hbWVzUGFyYW1zKTogc3RyaW5nW10ge1xuICBjb25zdCBleGNsdWRlZE5hbWVzID0gcGFyYW1zLmV4Y2x1ZGVkTmFtZXMgPz8gW107XG4gIHJldHVybiBwYXJhbXMubmFtZXNcbiAgICAubWFwKChuYW1lKSA9PiBuYW1lLnRyaW0oKSlcbiAgICAuZmlsdGVyKChuYW1lKSA9PiBwYXJhbXMucHJlZml4ZXMuc29tZSgocHJlZml4KSA9PiBuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkpXG4gICAgLmZpbHRlcigobmFtZSkgPT4gIWV4Y2x1ZGVkTmFtZXMuaW5jbHVkZXMobmFtZSkpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBsZWZ0b3ZlciBhZ2UgZ2F0ZSwgYXBwbHlpbmcgdGhlIGRlZmF1bHQgd2hlbiB0aGUgb3B0aW9uIGlzXG4gKiBvbWl0dGVkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHRyYW5zcG9ydCBvcHRpb25zLlxuICogQHJldHVybnMgVGhlIG1heCBhZ2UgaW4gbWlsbGlzZWNvbmRzIChgMGAgZGlzYWJsZXMgdGhlIGdhdGUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUxlZnRvdmVyTWF4QWdlSW5NaWxsaXNlY29uZHMob3B0aW9uczogT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgcmV0dXJuIG9wdGlvbnM/LmxlZnRvdmVyTWF4QWdlSW5NaWxsaXNlY29uZHMgPz8gREVGQVVMVF9MRUZUT1ZFUl9NQVhfQUdFX0lOX01JTExJU0VDT05EUztcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aGV0aGVyIGxlZnRvdmVyIGRpcmVjdG9yaWVzIGFyZSBzd2VwdCwgYXBwbHlpbmcgdGhlIGRlZmF1bHQgd2hlblxuICogdGhlIG9wdGlvbiBpcyBvbWl0dGVkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHRyYW5zcG9ydCBvcHRpb25zLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIHN3ZWVwcyBzaG91bGQgcnVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVNob3VsZFN3ZWVwTGVmdG92ZXJzKG9wdGlvbnM6IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICByZXR1cm4gb3B0aW9ucz8uc2hvdWxkU3dlZXBMZWZ0b3ZlcnMgPz8gdHJ1ZTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBsZWZ0b3ZlciB2YXVsdCBkaXJlY3RvcmllcyBhIGRldmljZSBpcyBjYXJyeWluZywgb25lIGRpcmVjdG9yeSBhdFxuICogYSB0aW1lLCBhbmQgcmVwb3J0cyB3aGF0IGlzIHZlcmlmaWFibHkgZ29uZS5cbiAqXG4gKiAqKk9uZSBkaXJlY3RvcnkgcGVyIHJlbW92YWwsIGFuZCBhIGZhaWx1cmUgaXMgbm9uLWZhdGFsLioqIFJlbW92aW5nIHRoZSB3aG9sZVxuICogc2V0IGluIGEgc2luZ2xlIGBybSAtcmZgIGxldHMgb25lIHVuLXJlbW92YWJsZSBlbnRyeSBkZWNpZGUgdGhlIGZhdGUgb2YgZXZlcnlcbiAqIG90aGVyOiBhIG5hbWUgdGhhdCB0aGUgRlVTRSBsYXllciBjYW5ub3QgZXhwcmVzcyAoYW4gQW5kcm9pZCBlbXVsYXRvciBjYW5cbiAqIHByb2R1Y2Ugb25lIFx1MjAxNCBgcm0gLXJmYCwgYGZpbmQgLWRlbGV0ZWAgYW5kIGZvcmNlLXN0b3BwaW5nIE9ic2lkaWFuIGZpcnN0IGFsbFxuICogYW5zd2VyIGBPcGVyYXRpb24gbm90IHBlcm1pdHRlZGApIGlzIHBlcm1hbmVudCwgc28gYSBzd2VlcCB0aGF0IGdpdmVzIHVwIG9uIGl0XG4gKiBnaXZlcyB1cCBmb3JldmVyLCBhbmQgdGhlIHJlc2lkdWUgb25seSBncm93cy4gUGVyLWRpcmVjdG9yeSwgdGhhdCBlbnRyeSBjb3N0c1xuICogb25lIHdhcm5pbmcgcGVyIHJ1biBpbnN0ZWFkIG9mIHRoZSB3aG9sZSBzd2VlcC5cbiAqXG4gKiAqKlRoZSByZXN1bHQgaXMgbWVhc3VyZWQsIG5vdCBhc3N1bWVkLioqIFRoZSBkaXJlY3RvcmllcyBhcmUgcmUtbGlzdGVkXG4gKiBhZnRlcndhcmRzIGFuZCBvbmx5IHRoZSBvbmVzIHRoYXQgYWN0dWFsbHkgZGlzYXBwZWFyZWQgYXJlIGNvdW50ZWQsIGJlY2F1c2VcbiAqIHRoZSBmYWlsdXJlIHRoaXMgd2FzIHdyaXR0ZW4gZm9yIHdhcyBhIHN3ZWVwIHRoYXQgcmVwb3J0ZWQgc3VjY2VzcyB3aGlsZVxuICogY2xlYXJpbmcgbm90aGluZyBcdTIwMTQgYSByZW1vdmFsIGNvbW1hbmQgY2FuIGV4aXQgbm9uLXplcm8sIG9yIHBhcnRpYWxseSBzdWNjZWVkLFxuICogYW5kIG5laXRoZXIgaXMgdmlzaWJsZSBmcm9tIGl0cyBleGl0IGNvZGUgYWxvbmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIEhvdyB0byBsaXN0IGFuZCByZW1vdmUsIGFuZCB0aGUgYmFzZSBwYXRoIHRvIHN3ZWVwLlxuICogQHJldHVybnMgVGhlIHZlcmlmaWVkIHJlbW92YWwgY291bnQgYW5kIHRoZSBuYW1lcyB0aGF0IHN1cnZpdmVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3dlZXBEZXZpY2VMZWZ0b3ZlcnMoXG4gIHBhcmFtczogU3dlZXBEZXZpY2VMZWZ0b3ZlcnNQYXJhbXNcbik6IFByb21pc2U8U3dlZXBEZXZpY2VMZWZ0b3ZlcnNSZXN1bHQ+IHtcbiAgY29uc3QgeyBsaXN0TmFtZXMsIHJlbW92ZURpciwgdmF1bHRCYXNlUGF0aCB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IG5hbWVzID0gZmlsdGVyTGVmdG92ZXJOYW1lcyh7IG5hbWVzOiBhd2FpdCBsaXN0TmFtZXMoKSwgcHJlZml4ZXM6IFtURU1QX1ZBVUxUX0RJUl9QUkVGSVhdIH0pO1xuICBpZiAobmFtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHsgZmFpbGVkTmFtZXM6IFtdLCByZW1vdmVkQ291bnQ6IDAgfTtcbiAgfVxuXG4gIGZvciAoY29uc3QgbmFtZSBvZiBuYW1lcykge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZW1vdmVEaXIoYCR7dmF1bHRCYXNlUGF0aH0ke25hbWV9YCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBOb24tZmF0YWwgYnkgZGVzaWduOiB0aGUgbmV4dCBkaXJlY3Rvcnkgc3RpbGwgZ2V0cyBpdHMgY2hhbmNlLlxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN1cnZpdmluZ05hbWVzID0gZmlsdGVyTGVmdG92ZXJOYW1lcyh7IG5hbWVzOiBhd2FpdCBsaXN0TmFtZXMoKSwgcHJlZml4ZXM6IFtURU1QX1ZBVUxUX0RJUl9QUkVGSVhdIH0pO1xuICBjb25zdCBmYWlsZWROYW1lcyA9IG5hbWVzLmZpbHRlcigobmFtZSkgPT4gc3Vydml2aW5nTmFtZXMuaW5jbHVkZXMobmFtZSkpO1xuXG4gIHJldHVybiB7IGZhaWxlZE5hbWVzLCByZW1vdmVkQ291bnQ6IG5hbWVzLmxlbmd0aCAtIGZhaWxlZE5hbWVzLmxlbmd0aCB9O1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGhvc3Qtc2lkZSBkaXJlY3RvcmllcyBsZWZ0IGJlaGluZCBieSBlYXJsaWVyIHJ1bnMuXG4gKlxuICogQmVzdC1lZmZvcnQgdGhyb3VnaG91dDogYW4gdW5yZWFkYWJsZSByb290LCBhbiBlbnRyeSB0aGF0IGNhbm5vdCBiZSBgc3RhdGBlZCxcbiAqIGFuZCBhIGRpcmVjdG9yeSB0aGF0IHJlZnVzZXMgdG8gYmUgcmVtb3ZlZCAoYSBsaXZlIHByb2Nlc3Mgc3RpbGwgaG9sZGluZyBhXG4gKiBoYW5kbGUgYW5zd2VycyBgRVBFUk1gIG9uIFdpbmRvd3MpIGFyZSBhbGwgc2tpcHBlZCByYXRoZXIgdGhhbiB0aHJvd24sIHNvIGFcbiAqIHN3ZWVwIGNhbiBuZXZlciBmYWlsIHRoZSBydW4gaXQgaXMgY2xlYW5pbmcgdXAgZm9yLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHN3ZWVwIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBIb3cgbWFueSBkaXJlY3RvcmllcyB3ZXJlIHJlbW92ZWQsIGFuZCBob3cgbWFueSByZXNpc3RlZCByZW1vdmFsLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3dlZXBIb3N0TGVmdG92ZXJzKG9wdGlvbnM/OiBTd2VlcEhvc3RMZWZ0b3ZlcnNPcHRpb25zKTogUHJvbWlzZTxTd2VlcEhvc3RMZWZ0b3ZlcnNSZXN1bHQ+IHtcbiAgY29uc3QgbWF4QWdlSW5NaWxsaXNlY29uZHMgPSBvcHRpb25zPy5tYXhBZ2VJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX0xFRlRPVkVSX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTO1xuICBjb25zdCBub3dJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gIGNvbnN0IHJvb3RzID0gb3B0aW9ucz8ucm9vdHMgPz8gZ2V0RGVmYXVsdExlZnRvdmVyUm9vdHMoKTtcblxuICBsZXQgZmFpbGVkQ291bnQgPSAwO1xuICBsZXQgcmVtb3ZlZENvdW50ID0gMDtcblxuICBmb3IgKGNvbnN0IHJvb3Qgb2Ygcm9vdHMpIHtcbiAgICBjb25zdCBuYW1lcyA9IGZpbHRlckxlZnRvdmVyTmFtZXMoe1xuICAgICAgZXhjbHVkZWROYW1lczogb3B0aW9ucz8uZXhjbHVkZWROYW1lcyxcbiAgICAgIG5hbWVzOiBhd2FpdCByZWFkRGlyTmFtZXMocm9vdC5wYXRoKSxcbiAgICAgIHByZWZpeGVzOiByb290LnByZWZpeGVzXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICAgIGNvbnN0IHBhdGggPSBqb2luKHJvb3QucGF0aCwgbmFtZSk7XG4gICAgICBpZiAoIWF3YWl0IGNoZWNrSXNSZW1vdmFibGVEaXIoeyBtYXhBZ2VJbk1pbGxpc2Vjb25kcywgbm93SW5NaWxsaXNlY29uZHMsIHBhdGggfSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHJtKHBhdGgsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgcmVtb3ZlZENvdW50Kys7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgZmFpbGVkQ291bnQrKztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBmYWlsZWRDb3VudCwgcmVtb3ZlZENvdW50IH07XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBtYXRjaGVkIGVudHJ5IGlzIGEgZGlyZWN0b3J5IG9sZCBlbm91Z2ggdG8gcmVtb3ZlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZW50cnkgcGF0aCBhbmQgYWdlLWdhdGUgaW5wdXRzLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGVudHJ5IG1heSBiZSByZW1vdmVkLlxuICovXG5hc3luYyBmdW5jdGlvbiBjaGVja0lzUmVtb3ZhYmxlRGlyKHBhcmFtczogQ2hlY2tJc1JlbW92YWJsZURpclBhcmFtcyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB7IG1heEFnZUluTWlsbGlzZWNvbmRzLCBub3dJbk1pbGxpc2Vjb25kcyB9ID0gcGFyYW1zO1xuICB0cnkge1xuICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgc3RhdChwYXJhbXMucGF0aCk7XG4gICAgcmV0dXJuIHN0YXRzLmlzRGlyZWN0b3J5KClcbiAgICAgICYmIGNoZWNrSXNMZWZ0b3ZlclN0YWxlKHsgbWF4QWdlSW5NaWxsaXNlY29uZHMsIG1vZGlmaWVkQXRJbk1pbGxpc2Vjb25kczogc3RhdHMubXRpbWVNcywgbm93SW5NaWxsaXNlY29uZHMgfSk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIFZhbmlzaGVkLCBvciB1bnJlYWRhYmxlIFx1MjAxNCBlaXRoZXIgd2F5IGl0IGlzIG5vdCBvdXJzIHRvIHJlbW92ZS5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSByb290cyBzd2VwdCB3aGVuIHRoZSBjYWxsZXIgZG9lcyBub3QgbmFtZSBpdHMgb3duLlxuICpcbiAqIEByZXR1cm5zIFRoZSB0ZW1wLXZhdWx0IHJvb3QgYW5kIHRoZSBvd25lZCB1c2VyLWRhdGEgcm9vdC5cbiAqL1xuZnVuY3Rpb24gZ2V0RGVmYXVsdExlZnRvdmVyUm9vdHMoKTogTGVmdG92ZXJSb290W10ge1xuICByZXR1cm4gW1xuICAgIHsgcGF0aDogdG1wZGlyKCksIHByZWZpeGVzOiBbVEVNUF9WQVVMVF9ESVJfUFJFRklYXSB9LFxuICAgIHsgcGF0aDogam9pbih0bXBkaXIoKSwgSEFSTkVTU19URU1QX0RJUl9OQU1FKSwgcHJlZml4ZXM6IFtPV05FRF9VU0VSX0RBVEFfRElSX1BSRUZJWF0gfVxuICBdO1xufVxuXG4vKipcbiAqIExpc3RzIGEgZGlyZWN0b3J5J3MgZW50cnkgbmFtZXMsIHRyZWF0aW5nIGFuIHVucmVhZGFibGUgZGlyZWN0b3J5IGFzIGVtcHR5LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gbGlzdC5cbiAqIEByZXR1cm5zIFRoZSBlbnRyeSBuYW1lcywgb3IgYW4gZW1wdHkgbGlzdC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVhZERpck5hbWVzKHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgcmVhZGRpcihwYXRoKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMkJBLHNCQUlPO0FBQ1AscUJBQXVCO0FBQ3ZCLHVCQUFxQjtBQU9kLE1BQU0sMkNBQTJDO0FBT2pELE1BQU0sd0JBQXdCO0FBSzlCLE1BQU0sNkJBQTZCO0FBTW5DLE1BQU0sd0JBQXdCO0FBOEk5QixTQUFTLHFCQUFxQixRQUE2QztBQUNoRixNQUFJLE9BQU8seUJBQXlCLEdBQUc7QUFDckMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLE9BQU8sb0JBQW9CLE9BQU8sNEJBQTRCLE9BQU87QUFDOUU7QUFZTyxTQUFTLG9CQUFvQixRQUE2QztBQUMvRSxRQUFNLGdCQUFnQixPQUFPLGlCQUFpQixDQUFDO0FBQy9DLFNBQU8sT0FBTyxNQUNYLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLEVBQ3pCLE9BQU8sQ0FBQyxTQUFTLE9BQU8sU0FBUyxLQUFLLENBQUMsV0FBVyxLQUFLLFdBQVcsTUFBTSxDQUFDLENBQUMsRUFDMUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLFNBQVMsSUFBSSxDQUFDO0FBQ25EO0FBU08sU0FBUyxvQ0FBb0MsU0FBdUQ7QUFDekcsU0FBTyxTQUFTLGdDQUFnQztBQUNsRDtBQVNPLFNBQVMsNEJBQTRCLFNBQXdEO0FBQ2xHLFNBQU8sU0FBUyx3QkFBd0I7QUFDMUM7QUF1QkEsZUFBc0IscUJBQ3BCLFFBQ3FDO0FBQ3JDLFFBQU0sRUFBRSxXQUFXLFdBQVcsY0FBYyxJ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
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xlZnRvdmVyLWNsZWFudXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTd2VlcHMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcmllcyBhIHByZXZpb3VzIGludGVncmF0aW9uIHJ1biBsZWFrZWQgXHUyMDE0IHRoZVxuICogYHRlbXAtdmF1bHQtKmAgc3RhZ2luZy92YXVsdCBkaXJlY3RvcmllcyBhbmQgdGhlIG93bmVkIGluc3RhbmNlJ3NcbiAqIGB1c2VyZGF0YS0qYCBDaHJvbWl1bSBwcm9maWxlcy5cbiAqXG4gKiBBIHJ1biB0aGF0IGRpZXMgbWlkLWZsaWdodCBjYW5ub3QgY2xlYW4gdXAgYWZ0ZXIgaXRzZWxmOiBvbiBBbmRyb2lkIHRoZVxuICogdGVhcmRvd24gdGFsa3MgdG8gdGhlIFdlYlZpZXcsIGFuZCBhIGRlYWQgV2ViVmlldyBpcyBleGFjdGx5IHdoYXQgbW9zdFxuICogZmFpbHVyZXMgYXJlIChgVmF1bHQgY2xlYW51cCBlcnJvciAobm9uLWZhdGFsKTogbm8gc3VjaCB3aW5kb3dgKS4gRXZlcnlcbiAqIGZhaWx1cmUgdGhlcmVmb3JlIGxlYWtzIGEgdmF1bHQsIGV2ZXJ5IGxlYWtlZCB2YXVsdCBzdGF5cyByZWdpc3RlcmVkIGZvclxuICogT2JzaWRpYW4gdG8gZW51bWVyYXRlIGF0IHN0YXJ0dXAsIGFuZCB0aGF0IGVudW1lcmF0aW9uIGhhcyB0byBmaW5pc2ggaW5zaWRlXG4gKiB0aGUgV2ViVmlldy1yZWFkaW5lc3MgYnVkZ2V0IFx1MjAxNCBzbyBlYWNoIGZhaWx1cmUgbWFrZXMgdGhlIG5leHQgb25lIGxpa2VsaWVyLlxuICogU3dlZXBpbmcgZm9yZWlnbiByZXNpZHVlIGF0IHRoZSBTVEFSVCBvZiBhIHJ1biBicmVha3MgdGhhdCBsb29wLCBiZWNhdXNlIGl0XG4gKiBydW5zIGJlZm9yZSBhbnl0aGluZyB0aGF0IGNhbiBkaWUuXG4gKlxuICogVGhlIHR3byBzaWRlcyB1c2UgZGVsaWJlcmF0ZWx5IGRpZmZlcmVudCBzYWZldHkgZ2F0ZXMgKHNlZSB0aGUgcmVwbydzIEwzMSk6XG4gKlxuICogLSAqKkRldmljZSAoQW5kcm9pZCkqKiBcdTIwMTQgdW5jb25kaXRpb25hbC4gQW5kcm9pZCBydW5zIGhvbGQgdGhlIGV4Y2x1c2l2ZVxuICogICBgYW5kcm9pZGAgc2V0dXAgbG9jaywgc28gbm8gY29uY3VycmVudCBydW4gY2FuIG93biBhIGRldmljZSB2YXVsdCwgYW5kIGFuXG4gKiAgIGFnZSBnYXRlIHdvdWxkIGxldCBhIHZhdWx0IGxlYWtlZCB0ZW4gbWludXRlcyBhZ28gc3Vydml2ZSBpbnRvIHRoZSBuZXh0IHJ1bi5cbiAqIC0gKipIb3N0KiogXHUyMDE0IGFnZS1nYXRlZC4gRGVza3RvcCBydW5zIGFyZSBkZWxpYmVyYXRlbHkgKm5vdCogc2VyaWFsaXplZCAoZWFjaFxuICogICBvd25zIGFuIGlzb2xhdGVkIGluc3RhbmNlKSBhbmQgZXZlcnkgcHJvamVjdCBvbiB0aGUgbWFjaGluZSBzaGFyZXMgb25lXG4gKiAgIGB0bXBkaXIoKWAsIHNvIGEgZGlyZWN0b3J5IHlvdW5nIGVub3VnaCB0byBiZWxvbmcgdG8gYSBsaXZlIHJ1biBpcyBsZWZ0XG4gKiAgIGFsb25lLlxuICovXG5cbmltcG9ydCB7XG4gIHJlYWRkaXIsXG4gIHJtLFxuICBzdGF0XG59IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1vcHRpb25zLmNqcyc7XG5cbi8qKlxuICogRGVmYXVsdCBmb3IgdGhlIGBsZWZ0b3Zlck1heEFnZUluTWlsbGlzZWNvbmRzYCB0cmFuc3BvcnQgb3B0aW9uIFx1MjAxNCB0d28gaG91cnMuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xFRlRPVkVSX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTID0gN18yMDBfMDAwO1xuXG4vKipcbiAqIE5hbWUgb2YgdGhlIGhhcm5lc3MncyBvd24gZGlyZWN0b3J5IGluc2lkZSB7QGxpbmsgdG1wZGlyfSwgd2hpY2ggaG9sZHMgdGhlXG4gKiBvd25lZCBpbnN0YW5jZXMnIHVzZXItZGF0YSBkaXJlY3RvcmllcyBhbG9uZ3NpZGUgdGhlIHZlcnNpb24vaW5zdGFsbGVyIGNhY2hlc1xuICogYW5kIHRoZSBzZXR1cCBsb2Nrcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEhBUk5FU1NfVEVNUF9ESVJfTkFNRSA9ICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcblxuLyoqXG4gKiBQcmVmaXggb2YgYW4gb3duZWQgZGVza3RvcCBpbnN0YW5jZSdzIGlzb2xhdGVkIHVzZXItZGF0YSBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBPV05FRF9VU0VSX0RBVEFfRElSX1BSRUZJWCA9ICd1c2VyZGF0YS0nO1xuXG4vKipcbiAqIFByZWZpeCBvZiBhIHRlbXBvcmFyeSB2YXVsdCBkaXJlY3RvcnksIGJvdGggb24gdGhlIGhvc3QgKHdoZXJlIGl0IGlzIGNyZWF0ZWQpXG4gKiBhbmQgb24gYW4gQW5kcm9pZCBkZXZpY2UgKHdoZXJlIGl0IGtlZXBzIGl0cyBob3N0IGJhc2VuYW1lKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRFTVBfVkFVTFRfRElSX1BSRUZJWCA9ICd0ZW1wLXZhdWx0LSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrSXNMZWZ0b3ZlclN0YWxlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0lzTGVmdG92ZXJTdGFsZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBIb3cgb2xkIGFuIGVudHJ5IG11c3QgYmUgdG8gY291bnQgYXMgc3RhbGUuIGAwYCBkaXNhYmxlcyB0aGUgZ2F0ZSwgbWFraW5nXG4gICAqIGV2ZXJ5IGVudHJ5IHN0YWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdlSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKipcbiAgVGhlIGVudHJ5J3MgbW9kaWZpY2F0aW9uIHRpbWUsIGluIGVwb2NoIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmaWVkQXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgY3VycmVudCB0aW1lLCBpbiBlcG9jaCBtaWxsaXNlY29uZHMuXG4gICAqL1xuICByZWFkb25seSBub3dJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBmaWx0ZXJMZWZ0b3Zlck5hbWVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJMZWZ0b3Zlck5hbWVzUGFyYW1zIHtcbiAgLyoqXG4gIE5hbWVzIHRvIGtlZXAgZXZlbiB3aGVuIHRoZXkgbWF0Y2ggYSBwcmVmaXggKGUuZy4gdGhlIGN1cnJlbnQgcnVuJ3Mgb3duIHZhdWx0KS5cbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGVkTmFtZXM/OiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmF3IGVudHJ5IG5hbWVzLiBBY2NlcHRzIGBhZGIgc2hlbGwgbHNgIG91dHB1dCBzcGxpdCBpbnRvIGxpbmVzLCBzbyBlYWNoXG4gICAqIG5hbWUgaXMgdHJpbW1lZCAoZHJvcHBpbmcgdGhlIHRyYWlsaW5nIGBcXHJgIGFuIGBhZGJgIHNoZWxsIGFkZHMgb24gV2luZG93cylcbiAgICogYW5kIGJsYW5rIGxpbmVzIGFyZSBkcm9wcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICBEaXJlY3RvcnktbmFtZSBwcmVmaXhlcyB0aGF0IG1hcmsgYW4gZW50cnkgYXMgdGhlIGhhcm5lc3MncyBvd24gcmVzaWR1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeGVzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIGRpcmVjdG9yeSB0aGUgaG9zdCBzd2VlcCBzY2FucywgdG9nZXRoZXIgd2l0aCB0aGUgcHJlZml4ZXMgdGhhdCBtYXJrXG4gKiByZXNpZHVlIGluc2lkZSBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMZWZ0b3ZlclJvb3Qge1xuICAvKipcbiAgVGhlIGFic29sdXRlIHBhdGggdG8gc2Nhbi5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgRGlyZWN0b3J5LW5hbWUgcHJlZml4ZXMgdGhhdCBtYXJrIGFuIGVudHJ5IGFzIHJlbW92YWJsZSByZXNpZHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4ZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzd2VlcERldmljZUxlZnRvdmVyc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dlZXBEZXZpY2VMZWZ0b3ZlcnNQYXJhbXMge1xuICAvKipcbiAgICogTGlzdHMgdGhlIGVudHJ5IG5hbWVzIGRpcmVjdGx5IHVuZGVyIHRoZSB2YXVsdCBiYXNlIHBhdGguIEEgbGlzdGluZyBmYWlsdXJlXG4gICAqIG11c3QgcmVzb2x2ZSB0byBhbiBlbXB0eSBsaXN0IHJhdGhlciB0aGFuIHJlamVjdCBcdTIwMTQgYSBkZXZpY2Ugd2l0aCBubyB2YXVsdFxuICAgKiBkaXJlY3RvcnkgeWV0IGlzIHRoZSBub3JtYWwgZmlyc3QtcnVuIHN0YXRlLCBub3QgYW4gZXJyb3IuXG4gICAqL1xuICByZWFkb25seSBsaXN0TmFtZXM6ICgpID0+IFByb21pc2U8cmVhZG9ubHkgc3RyaW5nW10+O1xuXG4gIC8qKlxuICAgKiBSZW1vdmVzIE9ORSBkaXJlY3RvcnksIGJ5IGFic29sdXRlIGRldmljZSBwYXRoLiBNYXkgcmVqZWN0OyB0aGUgY2FsbGVyXG4gICAqIHRyZWF0cyBhIHJlamVjdGlvbiBhcyB0aGlzIGRpcmVjdG9yeSBmYWlsaW5nIGFuZCBtb3ZlcyBvbiB0byB0aGUgbmV4dC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92ZURpcmVjdG9yeTogKHBhdGg6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgVGhlIGFic29sdXRlIGRldmljZSBwYXRoIHRoZSB2YXVsdHMgc2l0IHVuZGVyLCBpbmNsdWRpbmcgaXRzIHRyYWlsaW5nIHNlcGFyYXRvci5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0QmFzZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2Yge0BsaW5rIHN3ZWVwRGV2aWNlTGVmdG92ZXJzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTd2VlcERldmljZUxlZnRvdmVyc1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXMgdGhhdCB3ZXJlIHN0aWxsIHByZXNlbnQgYWZ0ZXIgdGhlIHN3ZWVwLiBOYW1lZCByYXRoZXIgdGhhblxuICAgKiBjb3VudGVkLCBiZWNhdXNlIHRoZSBpbnRlcmVzdGluZyBjYXNlIGlzIGEgZGlyZWN0b3J5IHRoYXQgZmFpbHMgRVZFUlkgcnVuXG4gICAqIGFuZCBhIGNhbGxlciBjYW4gb25seSBzYXkgc28gaWYgaXQga25vd3Mgd2hpY2ggb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbGVkTmFtZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICBIb3cgbWFueSBkaXJlY3RvcmllcyBhcmUgdmVyaWZpYWJseSBnb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlZENvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHN3ZWVwSG9zdExlZnRvdmVyc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dlZXBIb3N0TGVmdG92ZXJzT3B0aW9ucyB7XG4gIC8qKlxuICBOYW1lcyB0byBrZWVwIHJlZ2FyZGxlc3Mgb2YgYWdlIChlLmcuIHRoZSBjdXJyZW50IHJ1bidzIG93biBkaXJlY3RvcmllcykuXG4gICAqL1xuICByZWFkb25seSBleGNsdWRlZE5hbWVzPzogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEhvdyBvbGQgYSBkaXJlY3RvcnkgbXVzdCBiZSBiZWZvcmUgaXQgaXMgcmVtb3ZlZC4gYDBgIHJlbW92ZXMgZXZlcnkgbWF0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IHtAbGluayBERUZBVUxUX0xFRlRPVkVSX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTfVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdlSW5NaWxsaXNlY29uZHM/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSByb290cyB0byBzd2VlcC4gRGVmYXVsdHMgdG8gdGhlIHRlbXAtdmF1bHQgcm9vdCAoe0BsaW5rIHRtcGRpcn0pIGFuZCB0aGVcbiAgICogb3duZWQgdXNlci1kYXRhIHJvb3QgKGA8dG1wZGlyPi97QGxpbmsgSEFSTkVTU19URU1QX0RJUl9OQU1FfWApLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9vdHM/OiByZWFkb25seSBMZWZ0b3ZlclJvb3RbXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2Yge0BsaW5rIHN3ZWVwSG9zdExlZnRvdmVyc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dlZXBIb3N0TGVmdG92ZXJzUmVzdWx0IHtcbiAgLyoqXG4gIEhvdyBtYW55IGRpcmVjdG9yaWVzIHdlcmUgc2VsZWN0ZWQgZm9yIHJlbW92YWwgYnV0IGNvdWxkIG5vdCBiZSByZW1vdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbGVkQ291bnQ6IG51bWJlcjtcblxuICAvKipcbiAgSG93IG1hbnkgZGlyZWN0b3JpZXMgd2VyZSByZW1vdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlZENvdW50OiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrSXNSZW1vdmFibGVEaXJ9LlxuICovXG5pbnRlcmZhY2UgQ2hlY2tJc1JlbW92YWJsZURpcmVjdG9yeVBhcmFtcyB7XG4gIC8qKlxuICBIb3cgb2xkIHRoZSBlbnRyeSBtdXN0IGJlIHRvIGJlIHJlbW92ZWQgKGAwYCBkaXNhYmxlcyB0aGUgZ2F0ZSkuXG4gICAqL1xuICByZWFkb25seSBtYXhBZ2VJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgc3dlZXAncyByZWZlcmVuY2UgdGltZSwgaW4gZXBvY2ggbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgbm93SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKipcbiAgVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGVudHJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlY2lkZXMgd2hldGhlciBhIGxlZnRvdmVyIGVudHJ5IGlzIG9sZCBlbm91Z2ggdG8gYmUgcmVtb3ZlZC5cbiAqXG4gKiBUaGUgZ2F0ZSBleGlzdHMgYmVjYXVzZSBldmVyeSBwcm9qZWN0IG9uIHRoZSBtYWNoaW5lIHNoYXJlcyBvbmUgYHRtcGRpcigpYFxuICogYW5kIGRlc2t0b3AgcnVucyBhcmUgbm90IHNlcmlhbGl6ZWQsIHNvIGEgeW91bmcgZGlyZWN0b3J5IG1heSB3ZWxsIGJlbG9uZyB0b1xuICogYSBydW4gdGhhdCBpcyBzdGlsbCBpbiBmbGlnaHQuIEFuIGVudHJ5IHdob3NlIG1vZGlmaWNhdGlvbiB0aW1lIGlzIGluIHRoZVxuICogZnV0dXJlIChhIGNsb2NrIHNrZXcpIGlzIHRyZWF0ZWQgYXMgbGl2ZSBmb3IgdGhlIHNhbWUgcmVhc29uLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgYWdlIGNvbXBhcmlzb24gaW5wdXRzLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGVudHJ5IG1heSBiZSByZW1vdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJc0xlZnRvdmVyU3RhbGUocGFyYW1zOiBDaGVja0lzTGVmdG92ZXJTdGFsZVBhcmFtcyk6IGJvb2xlYW4ge1xuICBpZiAocGFyYW1zLm1heEFnZUluTWlsbGlzZWNvbmRzID09PSAwKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zLm5vd0luTWlsbGlzZWNvbmRzIC0gcGFyYW1zLm1vZGlmaWVkQXRJbk1pbGxpc2Vjb25kcyA+PSBwYXJhbXMubWF4QWdlSW5NaWxsaXNlY29uZHM7XG59XG5cbi8qKlxuICogU2VsZWN0cyB0aGUgZW50cnkgbmFtZXMgdGhhdCBhcmUgdGhlIGhhcm5lc3MncyBvd24gcmVzaWR1ZS5cbiAqXG4gKiBOYW1lLW9ubHksIHNvIHRoZSBjYWxsZXIgY2FuIGZpbHRlciBhIGxhcmdlIGRpcmVjdG9yeSBsaXN0aW5nIGJlZm9yZSBwYXlpbmdcbiAqIGZvciBhIGBzdGF0YCBwZXIgZW50cnksIGFuZCBzbyB0aGUgQW5kcm9pZCBzd2VlcCBjYW4gZmVlZCBpdCByYXdcbiAqIGBhZGIgc2hlbGwgbHNgIG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIG5hbWVzLCBwcmVmaXhlcywgYW5kIGV4Y2x1c2lvbnMuXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgbmFtZXMsIHRyaW1tZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJMZWZ0b3Zlck5hbWVzKHBhcmFtczogRmlsdGVyTGVmdG92ZXJOYW1lc1BhcmFtcyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgZXhjbHVkZWROYW1lcyA9IHBhcmFtcy5leGNsdWRlZE5hbWVzID8/IFtdO1xuICByZXR1cm4gcGFyYW1zLm5hbWVzXG4gICAgLm1hcCgobmFtZSkgPT4gbmFtZS50cmltKCkpXG4gICAgLmZpbHRlcigobmFtZSkgPT4gcGFyYW1zLnByZWZpeGVzLnNvbWUoKHByZWZpeCkgPT4gbmFtZS5zdGFydHNXaXRoKHByZWZpeCkpKVxuICAgIC5maWx0ZXIoKG5hbWUpID0+ICFleGNsdWRlZE5hbWVzLmluY2x1ZGVzKG5hbWUpKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgbGVmdG92ZXIgYWdlIGdhdGUsIGFwcGx5aW5nIHRoZSBkZWZhdWx0IHdoZW4gdGhlIG9wdGlvbiBpc1xuICogb21pdHRlZC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB0cmFuc3BvcnQgb3B0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBtYXggYWdlIGluIG1pbGxpc2Vjb25kcyAoYDBgIGRpc2FibGVzIHRoZSBnYXRlKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVMZWZ0b3Zlck1heEFnZUluTWlsbGlzZWNvbmRzKG9wdGlvbnM6IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB8IHVuZGVmaW5lZCk6IG51bWJlciB7XG4gIHJldHVybiBvcHRpb25zPy5sZWZ0b3Zlck1heEFnZUluTWlsbGlzZWNvbmRzID8/IERFRkFVTFRfTEVGVE9WRVJfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFM7XG59XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgbGVmdG92ZXIgdmF1bHQgZGlyZWN0b3JpZXMgYSBkZXZpY2UgaXMgY2FycnlpbmcsIG9uZSBkaXJlY3RvcnkgYXRcbiAqIGEgdGltZSwgYW5kIHJlcG9ydHMgd2hhdCBpcyB2ZXJpZmlhYmx5IGdvbmUuXG4gKlxuICogKipPbmUgZGlyZWN0b3J5IHBlciByZW1vdmFsLCBhbmQgYSBmYWlsdXJlIGlzIG5vbi1mYXRhbC4qKiBSZW1vdmluZyB0aGUgd2hvbGVcbiAqIHNldCBpbiBhIHNpbmdsZSBgcm0gLXJmYCBsZXRzIG9uZSB1bi1yZW1vdmFibGUgZW50cnkgZGVjaWRlIHRoZSBmYXRlIG9mIGV2ZXJ5XG4gKiBvdGhlcjogYSBuYW1lIHRoYXQgdGhlIEZVU0UgbGF5ZXIgY2Fubm90IGV4cHJlc3MgKGFuIEFuZHJvaWQgZW11bGF0b3IgY2FuXG4gKiBwcm9kdWNlIG9uZSBcdTIwMTQgYHJtIC1yZmAsIGBmaW5kIC1kZWxldGVgIGFuZCBmb3JjZS1zdG9wcGluZyBPYnNpZGlhbiBmaXJzdCBhbGxcbiAqIGFuc3dlciBgT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWRgKSBpcyBwZXJtYW5lbnQsIHNvIGEgc3dlZXAgdGhhdCBnaXZlcyB1cCBvbiBpdFxuICogZ2l2ZXMgdXAgZm9yZXZlciwgYW5kIHRoZSByZXNpZHVlIG9ubHkgZ3Jvd3MuIFBlci1kaXJlY3RvcnksIHRoYXQgZW50cnkgY29zdHNcbiAqIG9uZSB3YXJuaW5nIHBlciBydW4gaW5zdGVhZCBvZiB0aGUgd2hvbGUgc3dlZXAuXG4gKlxuICogKipUaGUgcmVzdWx0IGlzIG1lYXN1cmVkLCBub3QgYXNzdW1lZC4qKiBUaGUgZGlyZWN0b3JpZXMgYXJlIHJlLWxpc3RlZFxuICogYWZ0ZXJ3YXJkcyBhbmQgb25seSB0aGUgb25lcyB0aGF0IGFjdHVhbGx5IGRpc2FwcGVhcmVkIGFyZSBjb3VudGVkLCBiZWNhdXNlXG4gKiB0aGUgZmFpbHVyZSB0aGlzIHdhcyB3cml0dGVuIGZvciB3YXMgYSBzd2VlcCB0aGF0IHJlcG9ydGVkIHN1Y2Nlc3Mgd2hpbGVcbiAqIGNsZWFyaW5nIG5vdGhpbmcgXHUyMDE0IGEgcmVtb3ZhbCBjb21tYW5kIGNhbiBleGl0IG5vbi16ZXJvLCBvciBwYXJ0aWFsbHkgc3VjY2VlZCxcbiAqIGFuZCBuZWl0aGVyIGlzIHZpc2libGUgZnJvbSBpdHMgZXhpdCBjb2RlIGFsb25lLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBIb3cgdG8gbGlzdCBhbmQgcmVtb3ZlLCBhbmQgdGhlIGJhc2UgcGF0aCB0byBzd2VlcC5cbiAqIEByZXR1cm5zIFRoZSB2ZXJpZmllZCByZW1vdmFsIGNvdW50IGFuZCB0aGUgbmFtZXMgdGhhdCBzdXJ2aXZlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN3ZWVwRGV2aWNlTGVmdG92ZXJzKFxuICBwYXJhbXM6IFN3ZWVwRGV2aWNlTGVmdG92ZXJzUGFyYW1zXG4pOiBQcm9taXNlPFN3ZWVwRGV2aWNlTGVmdG92ZXJzUmVzdWx0PiB7XG4gIGNvbnN0IHsgbGlzdE5hbWVzLCByZW1vdmVEaXJlY3RvcnksIHZhdWx0QmFzZVBhdGggfSA9IHBhcmFtcztcblxuICBjb25zdCBuYW1lcyA9IGZpbHRlckxlZnRvdmVyTmFtZXMoeyBuYW1lczogYXdhaXQgbGlzdE5hbWVzKCksIHByZWZpeGVzOiBbVEVNUF9WQVVMVF9ESVJfUFJFRklYXSB9KTtcbiAgaWYgKG5hbWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7IGZhaWxlZE5hbWVzOiBbXSwgcmVtb3ZlZENvdW50OiAwIH07XG4gIH1cblxuICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcmVtb3ZlRGlyZWN0b3J5KGAke3ZhdWx0QmFzZVBhdGh9JHtuYW1lfWApO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gTm9uLWZhdGFsIGJ5IGRlc2lnbjogdGhlIG5leHQgZGlyZWN0b3J5IHN0aWxsIGdldHMgaXRzIGNoYW5jZS5cbiAgICB9XG4gIH1cblxuICBjb25zdCBzdXJ2aXZpbmdOYW1lcyA9IGZpbHRlckxlZnRvdmVyTmFtZXMoeyBuYW1lczogYXdhaXQgbGlzdE5hbWVzKCksIHByZWZpeGVzOiBbVEVNUF9WQVVMVF9ESVJfUFJFRklYXSB9KTtcbiAgY29uc3QgZmFpbGVkTmFtZXMgPSBuYW1lcy5maWx0ZXIoKG5hbWUpID0+IHN1cnZpdmluZ05hbWVzLmluY2x1ZGVzKG5hbWUpKTtcblxuICByZXR1cm4geyBmYWlsZWROYW1lcywgcmVtb3ZlZENvdW50OiBuYW1lcy5sZW5ndGggLSBmYWlsZWROYW1lcy5sZW5ndGggfTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBob3N0LXNpZGUgZGlyZWN0b3JpZXMgbGVmdCBiZWhpbmQgYnkgZWFybGllciBydW5zLlxuICpcbiAqIEJlc3QtZWZmb3J0IHRocm91Z2hvdXQ6IGFuIHVucmVhZGFibGUgcm9vdCwgYW4gZW50cnkgdGhhdCBjYW5ub3QgYmUgYHN0YXRgZWQsXG4gKiBhbmQgYSBkaXJlY3RvcnkgdGhhdCByZWZ1c2VzIHRvIGJlIHJlbW92ZWQgKGEgbGl2ZSBwcm9jZXNzIHN0aWxsIGhvbGRpbmcgYVxuICogaGFuZGxlIGFuc3dlcnMgYEVQRVJNYCBvbiBXaW5kb3dzKSBhcmUgYWxsIHNraXBwZWQgcmF0aGVyIHRoYW4gdGhyb3duLCBzbyBhXG4gKiBzd2VlcCBjYW4gbmV2ZXIgZmFpbCB0aGUgcnVuIGl0IGlzIGNsZWFuaW5nIHVwIGZvci5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBzd2VlcCBvcHRpb25zLlxuICogQHJldHVybnMgSG93IG1hbnkgZGlyZWN0b3JpZXMgd2VyZSByZW1vdmVkLCBhbmQgaG93IG1hbnkgcmVzaXN0ZWQgcmVtb3ZhbC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN3ZWVwSG9zdExlZnRvdmVycyhvcHRpb25zPzogU3dlZXBIb3N0TGVmdG92ZXJzT3B0aW9ucyk6IFByb21pc2U8U3dlZXBIb3N0TGVmdG92ZXJzUmVzdWx0PiB7XG4gIGNvbnN0IG1heEFnZUluTWlsbGlzZWNvbmRzID0gb3B0aW9ucz8ubWF4QWdlSW5NaWxsaXNlY29uZHMgPz8gREVGQVVMVF9MRUZUT1ZFUl9NQVhfQUdFX0lOX01JTExJU0VDT05EUztcbiAgY29uc3Qgbm93SW5NaWxsaXNlY29uZHMgPSBEYXRlLm5vdygpO1xuICBjb25zdCByb290cyA9IG9wdGlvbnM/LnJvb3RzID8/IGdldERlZmF1bHRMZWZ0b3ZlclJvb3RzKCk7XG5cbiAgbGV0IGZhaWxlZENvdW50ID0gMDtcbiAgbGV0IHJlbW92ZWRDb3VudCA9IDA7XG5cbiAgZm9yIChjb25zdCByb290IG9mIHJvb3RzKSB7XG4gICAgY29uc3QgbmFtZXMgPSBmaWx0ZXJMZWZ0b3Zlck5hbWVzKHtcbiAgICAgIGV4Y2x1ZGVkTmFtZXM6IG9wdGlvbnM/LmV4Y2x1ZGVkTmFtZXMsXG4gICAgICBuYW1lczogYXdhaXQgcmVhZERpcmVjdG9yeU5hbWVzKHJvb3QucGF0aCksXG4gICAgICBwcmVmaXhlczogcm9vdC5wcmVmaXhlc1xuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG4gICAgICBjb25zdCBwYXRoID0gam9pbihyb290LnBhdGgsIG5hbWUpO1xuICAgICAgaWYgKCFhd2FpdCBjaGVja0lzUmVtb3ZhYmxlRGlyZWN0b3J5KHsgbWF4QWdlSW5NaWxsaXNlY29uZHMsIG5vd0luTWlsbGlzZWNvbmRzLCBwYXRoIH0pKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBybShwYXRoLCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIHJlbW92ZWRDb3VudCsrO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGZhaWxlZENvdW50Kys7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZmFpbGVkQ291bnQsIHJlbW92ZWRDb3VudCB9O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHdoZXRoZXIgbGVmdG92ZXIgZGlyZWN0b3JpZXMgYXJlIHN3ZXB0LCBhcHBseWluZyB0aGUgZGVmYXVsdCB3aGVuXG4gKiB0aGUgb3B0aW9uIGlzIG9taXR0ZWQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgdHJhbnNwb3J0IG9wdGlvbnMuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgc3dlZXBzIHNob3VsZCBydW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aWxsU3dlZXBMZWZ0b3ZlcnMob3B0aW9uczogT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBvcHRpb25zPy5zaG91bGRTd2VlcExlZnRvdmVycyA/PyB0cnVlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbWF0Y2hlZCBlbnRyeSBpcyBhIGRpcmVjdG9yeSBvbGQgZW5vdWdoIHRvIHJlbW92ZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGVudHJ5IHBhdGggYW5kIGFnZS1nYXRlIGlucHV0cy5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBlbnRyeSBtYXkgYmUgcmVtb3ZlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY2hlY2tJc1JlbW92YWJsZURpcmVjdG9yeShwYXJhbXM6IENoZWNrSXNSZW1vdmFibGVEaXJlY3RvcnlQYXJhbXMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgeyBtYXhBZ2VJbk1pbGxpc2Vjb25kcywgbm93SW5NaWxsaXNlY29uZHMgfSA9IHBhcmFtcztcbiAgdHJ5IHtcbiAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHN0YXQocGFyYW1zLnBhdGgpO1xuICAgIHJldHVybiBzdGF0cy5pc0RpcmVjdG9yeSgpXG4gICAgICAmJiBjaGVja0lzTGVmdG92ZXJTdGFsZSh7IG1heEFnZUluTWlsbGlzZWNvbmRzLCBtb2RpZmllZEF0SW5NaWxsaXNlY29uZHM6IHN0YXRzLm10aW1lTXMsIG5vd0luTWlsbGlzZWNvbmRzIH0pO1xuICB9IGNhdGNoIHtcbiAgICAvLyBWYW5pc2hlZCwgb3IgdW5yZWFkYWJsZSBcdTIwMTQgZWl0aGVyIHdheSBpdCBpcyBub3Qgb3VycyB0byByZW1vdmUuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcm9vdHMgc3dlcHQgd2hlbiB0aGUgY2FsbGVyIGRvZXMgbm90IG5hbWUgaXRzIG93bi5cbiAqXG4gKiBAcmV0dXJucyBUaGUgdGVtcC12YXVsdCByb290IGFuZCB0aGUgb3duZWQgdXNlci1kYXRhIHJvb3QuXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRMZWZ0b3ZlclJvb3RzKCk6IExlZnRvdmVyUm9vdFtdIHtcbiAgcmV0dXJuIFtcbiAgICB7IHBhdGg6IHRtcGRpcigpLCBwcmVmaXhlczogW1RFTVBfVkFVTFRfRElSX1BSRUZJWF0gfSxcbiAgICB7IHBhdGg6IGpvaW4odG1wZGlyKCksIEhBUk5FU1NfVEVNUF9ESVJfTkFNRSksIHByZWZpeGVzOiBbT1dORURfVVNFUl9EQVRBX0RJUl9QUkVGSVhdIH1cbiAgXTtcbn1cblxuLyoqXG4gKiBMaXN0cyBhIGRpcmVjdG9yeSdzIGVudHJ5IG5hbWVzLCB0cmVhdGluZyBhbiB1bnJlYWRhYmxlIGRpcmVjdG9yeSBhcyBlbXB0eS5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIGxpc3QuXG4gKiBAcmV0dXJucyBUaGUgZW50cnkgbmFtZXMsIG9yIGFuIGVtcHR5IGxpc3QuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlYWREaXJlY3RvcnlOYW1lcyhwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHJlYWRkaXIocGF0aCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTJCQSxzQkFJTztBQUNQLHFCQUF1QjtBQUN2Qix1QkFBcUI7QUFPZCxNQUFNLDJDQUEyQztBQU9qRCxNQUFNLHdCQUF3QjtBQUs5QixNQUFNLDZCQUE2QjtBQU1uQyxNQUFNLHdCQUF3QjtBQTBLOUIsU0FBUyxxQkFBcUIsUUFBNkM7QUFDaEYsTUFBSSxPQUFPLHlCQUF5QixHQUFHO0FBQ3JDLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxPQUFPLG9CQUFvQixPQUFPLDRCQUE0QixPQUFPO0FBQzlFO0FBWU8sU0FBUyxvQkFBb0IsUUFBNkM7QUFDL0UsUUFBTSxnQkFBZ0IsT0FBTyxpQkFBaUIsQ0FBQztBQUMvQyxTQUFPLE9BQU8sTUFDWCxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUN6QixPQUFPLENBQUMsU0FBUyxPQUFPLFNBQVMsS0FBSyxDQUFDLFdBQVcsS0FBSyxXQUFXLE1BQU0sQ0FBQyxDQUFDLEVBQzFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxTQUFTLElBQUksQ0FBQztBQUNuRDtBQVNPLFNBQVMsb0NBQW9D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
|
|
@@ -53,16 +53,22 @@ export interface CheckIsLeftoverStaleParams {
|
|
|
53
53
|
* every entry stale.
|
|
54
54
|
*/
|
|
55
55
|
readonly maxAgeInMilliseconds: number;
|
|
56
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
The entry's modification time, in epoch milliseconds.
|
|
58
|
+
*/
|
|
57
59
|
readonly modifiedAtInMilliseconds: number;
|
|
58
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
The current time, in epoch milliseconds.
|
|
62
|
+
*/
|
|
59
63
|
readonly nowInMilliseconds: number;
|
|
60
64
|
}
|
|
61
65
|
/**
|
|
62
66
|
* Parameters for {@link filterLeftoverNames}.
|
|
63
67
|
*/
|
|
64
68
|
export interface FilterLeftoverNamesParams {
|
|
65
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
Names to keep even when they match a prefix (e.g. the current run's own vault).
|
|
71
|
+
*/
|
|
66
72
|
readonly excludedNames?: readonly string[] | undefined;
|
|
67
73
|
/**
|
|
68
74
|
* Raw entry names. Accepts `adb shell ls` output split into lines, so each
|
|
@@ -70,7 +76,9 @@ export interface FilterLeftoverNamesParams {
|
|
|
70
76
|
* and blank lines are dropped.
|
|
71
77
|
*/
|
|
72
78
|
readonly names: readonly string[];
|
|
73
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
Directory-name prefixes that mark an entry as the harness's own residue.
|
|
81
|
+
*/
|
|
74
82
|
readonly prefixes: readonly string[];
|
|
75
83
|
}
|
|
76
84
|
/**
|
|
@@ -78,9 +86,13 @@ export interface FilterLeftoverNamesParams {
|
|
|
78
86
|
* residue inside it.
|
|
79
87
|
*/
|
|
80
88
|
export interface LeftoverRoot {
|
|
81
|
-
/**
|
|
89
|
+
/**
|
|
90
|
+
The absolute path to scan.
|
|
91
|
+
*/
|
|
82
92
|
readonly path: string;
|
|
83
|
-
/**
|
|
93
|
+
/**
|
|
94
|
+
Directory-name prefixes that mark an entry as removable residue.
|
|
95
|
+
*/
|
|
84
96
|
readonly prefixes: readonly string[];
|
|
85
97
|
}
|
|
86
98
|
/**
|
|
@@ -97,8 +109,10 @@ export interface SweepDeviceLeftoversParams {
|
|
|
97
109
|
* Removes ONE directory, by absolute device path. May reject; the caller
|
|
98
110
|
* treats a rejection as this directory failing and moves on to the next.
|
|
99
111
|
*/
|
|
100
|
-
readonly
|
|
101
|
-
/**
|
|
112
|
+
readonly removeDirectory: (path: string) => Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
The absolute device path the vaults sit under, including its trailing separator.
|
|
115
|
+
*/
|
|
102
116
|
readonly vaultBasePath: string;
|
|
103
117
|
}
|
|
104
118
|
/**
|
|
@@ -111,14 +125,18 @@ export interface SweepDeviceLeftoversResult {
|
|
|
111
125
|
* and a caller can only say so if it knows which one.
|
|
112
126
|
*/
|
|
113
127
|
readonly failedNames: string[];
|
|
114
|
-
/**
|
|
128
|
+
/**
|
|
129
|
+
How many directories are verifiably gone.
|
|
130
|
+
*/
|
|
115
131
|
readonly removedCount: number;
|
|
116
132
|
}
|
|
117
133
|
/**
|
|
118
134
|
* Options for {@link sweepHostLeftovers}.
|
|
119
135
|
*/
|
|
120
136
|
export interface SweepHostLeftoversOptions {
|
|
121
|
-
/**
|
|
137
|
+
/**
|
|
138
|
+
Names to keep regardless of age (e.g. the current run's own directories).
|
|
139
|
+
*/
|
|
122
140
|
readonly excludedNames?: readonly string[] | undefined;
|
|
123
141
|
/**
|
|
124
142
|
* How old a directory must be before it is removed. `0` removes every match.
|
|
@@ -136,9 +154,13 @@ export interface SweepHostLeftoversOptions {
|
|
|
136
154
|
* Result of {@link sweepHostLeftovers}.
|
|
137
155
|
*/
|
|
138
156
|
export interface SweepHostLeftoversResult {
|
|
139
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
How many directories were selected for removal but could not be removed.
|
|
159
|
+
*/
|
|
140
160
|
readonly failedCount: number;
|
|
141
|
-
/**
|
|
161
|
+
/**
|
|
162
|
+
How many directories were removed.
|
|
163
|
+
*/
|
|
142
164
|
readonly removedCount: number;
|
|
143
165
|
}
|
|
144
166
|
/**
|
|
@@ -172,14 +194,6 @@ export declare function filterLeftoverNames(params: FilterLeftoverNamesParams):
|
|
|
172
194
|
* @returns The max age in milliseconds (`0` disables the gate).
|
|
173
195
|
*/
|
|
174
196
|
export declare function resolveLeftoverMaxAgeInMilliseconds(options: ObsidianTransportOptions | undefined): number;
|
|
175
|
-
/**
|
|
176
|
-
* Resolves whether leftover directories are swept, applying the default when
|
|
177
|
-
* the option is omitted.
|
|
178
|
-
*
|
|
179
|
-
* @param options - The transport options.
|
|
180
|
-
* @returns `true` when the sweeps should run.
|
|
181
|
-
*/
|
|
182
|
-
export declare function resolveShouldSweepLeftovers(options: ObsidianTransportOptions | undefined): boolean;
|
|
183
197
|
/**
|
|
184
198
|
* Removes the leftover vault directories a device is carrying, one directory at
|
|
185
199
|
* a time, and reports what is verifiably gone.
|
|
@@ -214,3 +228,11 @@ export declare function sweepDeviceLeftovers(params: SweepDeviceLeftoversParams)
|
|
|
214
228
|
* @returns How many directories were removed, and how many resisted removal.
|
|
215
229
|
*/
|
|
216
230
|
export declare function sweepHostLeftovers(options?: SweepHostLeftoversOptions): Promise<SweepHostLeftoversResult>;
|
|
231
|
+
/**
|
|
232
|
+
* Resolves whether leftover directories are swept, applying the default when
|
|
233
|
+
* the option is omitted.
|
|
234
|
+
*
|
|
235
|
+
* @param options - The transport options.
|
|
236
|
+
* @returns `true` when the sweeps should run.
|
|
237
|
+
*/
|
|
238
|
+
export declare function willSweepLeftovers(options: ObsidianTransportOptions | undefined): boolean;
|
package/dist/lib/cjs/library.cjs
CHANGED
|
@@ -21,9 +21,9 @@ __export(library_exports, {
|
|
|
21
21
|
LIBRARY_VERSION: () => LIBRARY_VERSION
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(library_exports);
|
|
24
|
-
const LIBRARY_VERSION = false ? "dev" : "9.2.
|
|
24
|
+
const LIBRARY_VERSION = false ? "dev" : "9.2.2";
|
|
25
25
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
26
|
0 && (module.exports = {
|
|
27
27
|
LIBRARY_VERSION
|
|
28
28
|
});
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xpYnJhcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBMaWJyYXJ5IG1ldGFkYXRhIGNvbnN0YW50cy4gVGhlIGBPQlNJRElBTl9JTlRFR1JBVElPTl9URVNUSU5HX1ZFUlNJT05gIGdsb2JhbFxuICogaXMgcmVwbGFjZWQgYXQgYnVpbGQgdGltZSBieSBlc2J1aWxkJ3MgYGRlZmluZWAgb3B0aW9uIHdpdGggdGhlIHZlcnNpb25cbiAqIGZyb20gYHBhY2thZ2UuanNvbmAuXG4gKi9cblxuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmdgIGxpYnJhcnkuXG4gKiBBdCBidWlsZCB0aW1lLCBgT0JTSURJQU5fSU5URUdSQVRJT05fVEVTVElOR19WRVJTSU9OYCBpcyByZXBsYWNlZCBieSBlc2J1aWxkJ3NcbiAqIGBkZWZpbmVgIG9wdGlvbi4gQXQgdGVzdCB0aW1lIChWaXRlc3QpLCBpdCBmYWxscyBiYWNrIHRvIGAnZGV2J2AuXG4gKi9cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBCdWlsZC10aW1lIGNvbnN0YW50OyB0aGUgZWxzZSBicmFuY2ggaXMgb25seSByZWFjaGFibGUgd2hlbiBlc2J1aWxkJ3MgZGVmaW5lIHJlcGxhY2VzIHRoZSBnbG9iYWwuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby10eXBlb2YtdW5kZWZpbmVkIC0tIFRoZSBgdHlwZW9mYCBndWFyZCBpcyByZXF1aXJlZDogb3V0c2lkZSBhIGJ1aWx0IGJ1bmRsZSB0aGUgZ2xvYmFsIGlzIG5ldmVyIERFQ0xBUkVELCBzbyByZWFkaW5nIGl0IGRpcmVjdGx5IHRocm93cyBhIGBSZWZlcmVuY2VFcnJvcmAgcmF0aGVyIHRoYW4geWllbGRpbmcgYHVuZGVmaW5lZGAuXG5leHBvcnQgY29uc3QgTElCUkFSWV9WRVJTSU9OOiBzdHJpbmcgPSB0eXBlb2YgT0JTSURJQU5fSU5URUdSQVRJT05fVEVTVElOR19WRVJTSU9OID09PSAndW5kZWZpbmVkJ1xuICA/ICdkZXYnXG4gIDogT0JTSURJQU5fSU5URUdSQVRJT05fVEVTVElOR19WRVJTSU9OO1xuLyogdjggaWdub3JlIHN0b3AgKi9cblxuZGVjbGFyZSBjb25zdCBPQlNJRElBTl9JTlRFR1JBVElPTl9URVNUSU5HX1ZFUlNJT046IHN0cmluZyB8IHVuZGVmaW5lZDtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFlTyxNQUFNLGtCQUEwQixRQUNuQyxRQUNBOyIsCiAgIm5hbWVzIjogW10KfQo=
|