obsidian-integration-testing 9.2.1 → 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 +7 -4
- package/dist/lib/cjs/obsidian-instance.d.cts +25 -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 +93 -0
- package/dist/lib/cjs/parent-liveness.d.cts +80 -0
- 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 +77 -56
- package/dist/lib/cjs/transport-desktop-cdp.d.cts +41 -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 +25 -8
- package/dist/lib/esm/obsidian-instance.mjs +7 -4
- 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 +80 -0
- package/dist/lib/esm/parent-liveness.mjs +67 -0
- 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 +41 -17
- package/dist/lib/esm/transport-desktop-cdp.mjs +86 -65
- 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.1.tgz +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file
|
|
3
|
+
*
|
|
4
|
+
* Ties a harness-owned Obsidian instance's lifetime to the harness process that
|
|
5
|
+
* launched it, in the one direction the operating system will not do for us.
|
|
6
|
+
*
|
|
7
|
+
* The owned instance is already a child of the harness process, but that link
|
|
8
|
+
* carries no lifetime guarantee. Windows never propagates a parent's death to
|
|
9
|
+
* its children — an orphan simply keeps running with a stale parent id — and on
|
|
10
|
+
* POSIX a `SIGKILL` aimed at a single pid never cascades either. The instance is
|
|
11
|
+
* additionally spawned `detached`, so it is not even in the harness's process
|
|
12
|
+
* group. Teardown therefore relies entirely on the harness running its own
|
|
13
|
+
* cleanup (`killProcessTree` from an `exit`/signal handler), which is exactly
|
|
14
|
+
* what a `SIGKILL`, a Task Manager kill, or an IDE stop button denies it. Every
|
|
15
|
+
* such kill leaks a hidden Obsidian holding a user-data dir and a CDP port, and
|
|
16
|
+
* they accumulate: the next run picks a fresh temp dir and a free port, so
|
|
17
|
+
* nothing collides and nothing complains.
|
|
18
|
+
*
|
|
19
|
+
* The guaranteed fix is an OS primitive — a Windows Job Object with
|
|
20
|
+
* `JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE`, or `prctl(PR_SET_PDEATHSIG)` on Linux —
|
|
21
|
+
* but neither is reachable from Node without a native addon, which is far too
|
|
22
|
+
* heavy a dependency for this harness.
|
|
23
|
+
*
|
|
24
|
+
* So we use the one cross-platform resource the kernel *does* reclaim
|
|
25
|
+
* deterministically on process death: a socket. The harness listens on a
|
|
26
|
+
* loopback port and the instance's renderer connects to it. However the harness
|
|
27
|
+
* dies — cleanly, `SIGKILL`ed, or crashed — the kernel closes its end, the
|
|
28
|
+
* renderer sees `close`, and the window destroys itself. No polling, no
|
|
29
|
+
* heartbeat interval, no timeout to tune.
|
|
30
|
+
*
|
|
31
|
+
* Deliberately fail-open: the renderer only arms the destroy handler after the
|
|
32
|
+
* connection is actually established. A watchdog that cannot reach the harness
|
|
33
|
+
* leaves the instance running rather than killing a window the developer is
|
|
34
|
+
* working in.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* A listening loopback server whose accepted connections act as liveness tokens
|
|
38
|
+
* for the harness process.
|
|
39
|
+
*/
|
|
40
|
+
export interface ParentLivenessServer {
|
|
41
|
+
/**
|
|
42
|
+
Stops listening and drops every accepted connection.
|
|
43
|
+
*/
|
|
44
|
+
close(): void;
|
|
45
|
+
/**
|
|
46
|
+
The loopback port the renderer watchdog should connect back to.
|
|
47
|
+
*/
|
|
48
|
+
readonly port: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Loopback host the liveness server binds to. Never exposed off-machine.
|
|
52
|
+
*/
|
|
53
|
+
export declare const PARENT_LIVENESS_HOST = "127.0.0.1";
|
|
54
|
+
/**
|
|
55
|
+
* Builds the expression evaluated in the owned instance's renderer to arm the
|
|
56
|
+
* watchdog.
|
|
57
|
+
*
|
|
58
|
+
* Written in ES5 style (`var`, `function`) with no optional chaining, matching
|
|
59
|
+
* {@link DISMISS_TRUST_DIALOG_EXPR}: the same expression has to parse on the
|
|
60
|
+
* Chromium 80-era renderers of the oldest supported Obsidian versions (L26).
|
|
61
|
+
*
|
|
62
|
+
* Arming is idempotent — a second evaluation finds the stored socket and
|
|
63
|
+
* returns without opening another connection, so a retried readiness pass does
|
|
64
|
+
* not pile up sockets.
|
|
65
|
+
*
|
|
66
|
+
* @param port - The loopback port returned by {@link startParentLivenessServer}.
|
|
67
|
+
* @returns The expression to evaluate, yielding `'armed'`, `'already-armed'`, or `'unavailable'`.
|
|
68
|
+
*/
|
|
69
|
+
export declare function buildParentLivenessWatchdogExpression(port: number): string;
|
|
70
|
+
/**
|
|
71
|
+
* Starts the loopback liveness server the owned instance's renderer connects
|
|
72
|
+
* back to.
|
|
73
|
+
*
|
|
74
|
+
* The server and every accepted socket are `unref`ed, so holding a watchdog
|
|
75
|
+
* connection open never keeps the harness process alive on its own — the
|
|
76
|
+
* connection is a token the kernel reclaims, not work to wait on.
|
|
77
|
+
*
|
|
78
|
+
* @returns A {@link Promise} resolving to the listening {@link ParentLivenessServer}.
|
|
79
|
+
*/
|
|
80
|
+
export declare function startParentLivenessServer(): Promise<ParentLivenessServer>;
|
|
@@ -29,8 +29,8 @@ const DEFAULT_POLL_INTERVAL_IN_MILLISECONDS = 500;
|
|
|
29
29
|
const DEFAULT_POLL_TIMEOUT_IN_MILLISECONDS = 12e4;
|
|
30
30
|
async function pollInObsidian(params) {
|
|
31
31
|
const {
|
|
32
|
-
args,
|
|
33
32
|
contextId,
|
|
33
|
+
input,
|
|
34
34
|
intervalInMilliseconds = DEFAULT_POLL_INTERVAL_IN_MILLISECONDS,
|
|
35
35
|
poll,
|
|
36
36
|
start,
|
|
@@ -40,10 +40,10 @@ async function pollInObsidian(params) {
|
|
|
40
40
|
until,
|
|
41
41
|
vaultPath
|
|
42
42
|
} = params;
|
|
43
|
-
async function runEval(
|
|
43
|
+
async function runEval(callback) {
|
|
44
44
|
const evalParams = {
|
|
45
|
-
|
|
46
|
-
...
|
|
45
|
+
callback,
|
|
46
|
+
...input !== void 0 && { input },
|
|
47
47
|
...contextId !== void 0 && { contextId },
|
|
48
48
|
...transport !== void 0 && { transport },
|
|
49
49
|
...vaultPath !== void 0 && { vaultPath }
|
|
@@ -69,4 +69,4 @@ async function pollInObsidian(params) {
|
|
|
69
69
|
0 && (module.exports = {
|
|
70
70
|
pollInObsidian
|
|
71
71
|
});
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtaW4tb2JzaWRpYW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOb2RlLXNpZGUgXCJraWNrIG9mZiwgdGhlbiBwb2xsXCIgaGVscGVyIG92ZXIge0BsaW5rIGV2YWxJbk9ic2lkaWFufS5cbiAqXG4gKiBBIHNpbmdsZSBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmUgY2Fubm90IHJ1biBsb25nZXIgdGhhbiBDRFAncyB+
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtaW4tb2JzaWRpYW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOb2RlLXNpZGUgXCJraWNrIG9mZiwgdGhlbiBwb2xsXCIgaGVscGVyIG92ZXIge0BsaW5rIGV2YWxJbk9ic2lkaWFufS5cbiAqXG4gKiBBIHNpbmdsZSBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmUgY2Fubm90IHJ1biBsb25nZXIgdGhhbiBDRFAncyB+MzBzXG4gKiBgUnVudGltZS5ldmFsdWF0ZWAgY2FwLCBzbyBhIGxvbmctcnVubmluZyBpbi1PYnNpZGlhbiBvcGVyYXRpb24gKGUuZy4gYSB3aG9sZVxuICogcGx1Z2luL3ZhdWx0IGJvb3RzdHJhcCkgY2Fubm90IGJlIGF3YWl0ZWQgaW5zaWRlIG9uZSBjbG9zdXJlLiBUaGlzIGhlbHBlciBkb2VzXG4gKiBpdCBmcm9tIE5vZGUgaW5zdGVhZDogaXQgb3B0aW9uYWxseSBydW5zIGEgc2hvcnQgYHN0YXJ0YCBjbG9zdXJlIG9uY2UgdG8ga2lja1xuICogdGhlIHdvcmsgb2ZmLCB0aGVuIHJlcGVhdGVkbHkgcnVucyBhIHNob3J0IGBwb2xsYCBjbG9zdXJlIFx1MjAxNCBlYWNoIGEgc2VwYXJhdGUsXG4gKiB3ZWxsLXVuZGVyLTMwcyBldmFsIFx1MjAxNCB1bnRpbCB0aGUgTm9kZS1zaWRlIGB1bnRpbGAgcHJlZGljYXRlIGFjY2VwdHMgYSBwb2xsXG4gKiByZXN1bHQsIG9yIGEgTm9kZS1zaWRlIHRpbWVvdXQgZWxhcHNlcy4gSXQgcmVtb3ZlcyB0aGUgcGVyLXRlc3QgaGFuZC1yb2xsZWRcbiAqIGBldmFsSW5PYnNpZGlhbmAgKyBgc2xlZXBgIGxvb3AuXG4gKlxuICogVGhlIHRpbWluZyBsb29wIGxpdmVzIGluIHRoZSBwdXJlLCB1bml0LXRlc3RlZCB7QGxpbmsgcG9sbFVudGlsfTsgdGhpcyBtb2R1bGUgaXNcbiAqIHRoZSBpbnRlZ3JhdGlvbi1vbmx5IHdpcmluZyAoaXQgZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiksIGNvdmVyZWQgYnkgYW5cbiAqIGludGVncmF0aW9uIHRlc3QuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgY29kZSAoZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiB2aWEgZXZhbEluT2JzaWRpYW4pIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBzZXRUaW1lb3V0IGFzIHNsZWVwIH0gZnJvbSAnbm9kZTp0aW1lcnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHRBcmd1bWVudHMgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbW9uQXJndW1lbnRzLFxuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgR2VuZXJpY09iamVjdFxufSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuXG5pbXBvcnQgeyBDb250ZXh0SWQgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB7IGV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnLi9ldmFsLWluLW9ic2lkaWFuLmNqcyc7XG5pbXBvcnQgeyBwb2xsVW50aWwgfSBmcm9tICcuL3BvbGwtdW50aWwuY2pzJztcblxuY29uc3QgREVGQVVMVF9QT0xMX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUyA9IDUwMDtcbmNvbnN0IERFRkFVTFRfUE9MTF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEyMF8wMDA7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBvbGxJbk9ic2lkaWFufS4gTWlycm9ycyB7QGxpbmsgRXZhbEluT2JzaWRpYW5QYXJhbXN9IGZvclxuICogdGhlIHNoYXJlZCBmb3J3YXJkZWQgZmllbGRzIChgaW5wdXRgIC8gYGNvbnRleHRJZGAgLyBgdHJhbnNwb3J0YCAvIGB2YXVsdFBhdGhgKTtcbiAqIGBzdGFydGAgLyBgcG9sbGAgYXJlIHRoZSBpbi1PYnNpZGlhbiBjbG9zdXJlcyBhbmQgYHVudGlsYCBpcyB0aGUgTm9kZS1zaWRlXG4gKiBhY2NlcHRhbmNlIHByZWRpY2F0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xsSW5PYnNpZGlhblBhcmFtczxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgLyoqXG4gICAqIEEge0BsaW5rIENvbnRleHRJZH0gc2hhcmVkIGJ5IGBzdGFydGAgYW5kIGBwb2xsYCwgc28gYHN0YXJ0YCBjYW4gc3Rhc2hcbiAgICogbm9uLXNlcmlhbGl6YWJsZSBzdGF0ZSB0aGF0IGBwb2xsYCBsYXRlciByZWFkcy4gV2hlbiBvbWl0dGVkLCBlYWNoIGNsb3N1cmVcbiAgICogZ2V0cyBhIGZyZXNoIGVtcHR5IGBjb250ZXh0YC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRJZD86IFRDb250ZXh0SWQ7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXJndW1lbnRzIHBhc3NlZCB0byBib3RoIGBzdGFydGAgYW5kIGBwb2xsYCAoc2VyaWFsaXplZCBsaWtlXG4gICAqIHtAbGluayBFdmFsSW5PYnNpZGlhblBhcmFtcy5pbnB1dH0pLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiBJbnB1dDtcblxuICAvKipcbiAgICogRGVsYXkgYmV0d2VlbiBgcG9sbGAgYXR0ZW1wdHMsIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDUwMGBcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsSW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjbG9zdXJlIHBvbGxlZCByZXBlYXRlZGx5IGluc2lkZSBPYnNpZGlhbi4gS2VlcCBpdCBzaG9ydCAod2VsbCB1bmRlciB0aGVcbiAgICogfjMwcyBDRFAgY2FwKTogaXQgc2hvdWxkIHJlYWQgYW5kIHJldHVybiBhIEpTT04tc2VyaWFsaXphYmxlIHN0YXR1cywgbm90XG4gICAqIGF3YWl0IHRoZSBsb25nIG9wZXJhdGlvbiBpdHNlbGYuXG4gICAqL1xuICBwb2xsKHRoaXM6IHZvaWQsIGlucHV0OiBDb21tb25Bcmd1bWVudHMgJiBDb250ZXh0QXJndW1lbnRzPFRDb250ZXh0SWQ+ICYgSW5wdXQpOiBQcm9taXNhYmxlPFBvbGxSZXN1bHQ+O1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBjbG9zdXJlIHJ1biAqKm9uY2UqKiBiZWZvcmUgcG9sbGluZyBiZWdpbnMsIHRvIGtpY2sgb2ZmIHRoZVxuICAgKiBsb25nLXJ1bm5pbmcgd29yayAoZmlyZS1hbmQtZm9yZ2V0IGZyb20gTm9kZSdzIHBlcnNwZWN0aXZlKS4gS2VlcCBpdCBzaG9ydCBcdTIwMTRcbiAgICogc3RhcnQgdGhlIHdvcmsgYW5kIHJldHVybjsgZG8gbm90IGF3YWl0IGl0IHRvIGNvbXBsZXRpb24gaGVyZS5cbiAgICovXG4gIHN0YXJ0Pyh0aGlzOiB2b2lkLCBpbnB1dDogQ29tbW9uQXJndW1lbnRzICYgQ29udGV4dEFyZ3VtZW50czxUQ29udGV4dElkPiAmIElucHV0KTogUHJvbWlzYWJsZTx1bmtub3duPjtcblxuICAvKipcbiAgICogVG90YWwgYnVkZ2V0IGJlZm9yZSB0aGUgcG9sbCByZWplY3RzLCBpbiBtaWxsaXNlY29uZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAxMjAwMDBgXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRldGFpbCBhcHBlbmRlZCB0byB0aGUgdGltZW91dCBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dE1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSB0cmFuc3BvcnQgKGZvcndhcmRlZCB0byBldmVyeSB1bmRlcmx5aW5nIGBldmFsSW5PYnNpZGlhbmApLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNwb3J0PzogT2JzaWRpYW5UcmFuc3BvcnQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBnaXZlbiBgcG9sbGAgcmVzdWx0IGlzIGFjY2VwdGFibGUsIGV2YWx1YXRlZCBpbiAqKk5vZGUqKi4gUmV0dXJuaW5nXG4gICAqIGB0cnVlYCByZXNvbHZlcyB7QGxpbmsgcG9sbEluT2JzaWRpYW59IHdpdGggdGhhdCByZXN1bHQuXG4gICAqL1xuICB1bnRpbCh0aGlzOiB2b2lkLCByZXN1bHQ6IFBvbGxSZXN1bHQpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgcGF0aCB0byBldmFsdWF0ZSBhZ2FpbnN0IChmb3J3YXJkZWQgdG8gZXZlcnkgdW5kZXJseWluZ1xuICAgKiBgZXZhbEluT2JzaWRpYW5gKS5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBLaWNrcyBvZmYgYW4gb3B0aW9uYWwgYHN0YXJ0YCBjbG9zdXJlIG9uY2UsIHRoZW4gcG9sbHMgYHBvbGxgIGZyb20gTm9kZSB1bnRpbFxuICogYHVudGlsYCBhY2NlcHRzIGEgcmVzdWx0IG9yIHRoZSB0aW1lb3V0IGVsYXBzZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwb2xsIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGZpcnN0IGFjY2VwdGVkIGBwb2xsYCByZXN1bHQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwb2xsSW5PYnNpZGlhbjxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuICBwYXJhbXM6IFBvbGxJbk9ic2lkaWFuUGFyYW1zPElucHV0LCBQb2xsUmVzdWx0LCBUQ29udGV4dElkPlxuKTogUHJvbWlzZTxQb2xsUmVzdWx0PiB7XG4gIGNvbnN0IHtcbiAgICBjb250ZXh0SWQsXG4gICAgaW5wdXQsXG4gICAgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcyA9IERFRkFVTFRfUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgcG9sbCxcbiAgICBzdGFydCxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBERUZBVUxUX1BPTExfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgdGltZW91dE1lc3NhZ2UsXG4gICAgdHJhbnNwb3J0LFxuICAgIHVudGlsLFxuICAgIHZhdWx0UGF0aFxuICB9ID0gcGFyYW1zO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHJ1bkV2YWw8UmVzdWx0PihjYWxsYmFjazogKGZ1bmN0aW9uQXJndW1lbnRzOiBDb21tb25Bcmd1bWVudHMgJiBDb250ZXh0QXJndW1lbnRzPFRDb250ZXh0SWQ+ICYgSW5wdXQpID0+IFByb21pc2FibGU8UmVzdWx0Pik6IFByb21pc2U8UmVzdWx0PiB7XG4gICAgY29uc3QgZXZhbFBhcmFtczogRXZhbEluT2JzaWRpYW5QYXJhbXM8SW5wdXQsIFJlc3VsdCwgVENvbnRleHRJZD4gPSB7XG4gICAgICBjYWxsYmFjayxcbiAgICAgIC4uLihpbnB1dCAhPT0gdW5kZWZpbmVkICYmIHsgaW5wdXQgfSksXG4gICAgICAuLi4oY29udGV4dElkICE9PSB1bmRlZmluZWQgJiYgeyBjb250ZXh0SWQgfSksXG4gICAgICAuLi4odHJhbnNwb3J0ICE9PSB1bmRlZmluZWQgJiYgeyB0cmFuc3BvcnQgfSksXG4gICAgICAuLi4odmF1bHRQYXRoICE9PSB1bmRlZmluZWQgJiYgeyB2YXVsdFBhdGggfSlcbiAgICB9O1xuICAgIHJldHVybiBldmFsSW5PYnNpZGlhbjxJbnB1dCwgUmVzdWx0LCBUQ29udGV4dElkPihldmFsUGFyYW1zKTtcbiAgfVxuXG4gIGlmIChzdGFydCkge1xuICAgIGF3YWl0IHJ1bkV2YWwoc3RhcnQpO1xuICB9XG5cbiAgcmV0dXJuIHBvbGxVbnRpbDxQb2xsUmVzdWx0Pih7XG4gICAgYXR0ZW1wdDogYXN5bmMgKCkgPT4gcnVuRXZhbChwb2xsKSxcbiAgICBpbnRlcnZhbEluTWlsbGlzZWNvbmRzLFxuICAgIG5vd0luTWlsbGlzZWNvbmRzOiAoKSA9PiBEYXRlLm5vdygpLFxuICAgIHNsZWVwOiBhc3luYyAobWlsbGlzZWNvbmRzOiBudW1iZXIpID0+IHtcbiAgICAgIGF3YWl0IHNsZWVwKG1pbGxpc2Vjb25kcyk7XG4gICAgfSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMsXG4gICAgdW50aWwsXG4gICAgLi4uKHRpbWVvdXRNZXNzYWdlICE9PSB1bmRlZmluZWQgJiYgeyB0aW1lb3V0TWVzc2FnZSB9KVxuICB9KTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF1QkEsc0JBQW9DO0FBVXBDLHdCQUEwQjtBQUMxQiw4QkFBK0I7QUFDL0Isd0JBQTBCO0FBRTFCLE1BQU0sd0NBQXdDO0FBQzlDLE1BQU0sdUNBQXVDO0FBZ0Y3QyxlQUFzQixlQUNwQixRQUNxQjtBQUNyQixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBLHlCQUF5QjtBQUFBLElBQ3pCO0FBQUEsSUFDQTtBQUFBLElBQ0Esd0JBQXdCO0FBQUEsSUFDeEI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixpQkFBZSxRQUFnQixVQUE4SDtBQUMzSixVQUFNLGFBQThEO0FBQUEsTUFDbEU7QUFBQSxNQUNBLEdBQUksVUFBVSxVQUFhLEVBQUUsTUFBTTtBQUFBLE1BQ25DLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLE1BQzNDLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLE1BQzNDLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLElBQzdDO0FBQ0EsZUFBTyx3Q0FBMEMsVUFBVTtBQUFBLEVBQzdEO0FBRUEsTUFBSSxPQUFPO0FBQ1QsVUFBTSxRQUFRLEtBQUs7QUFBQSxFQUNyQjtBQUVBLGFBQU8sNkJBQXNCO0FBQUEsSUFDM0IsU0FBUyxZQUFZLFFBQVEsSUFBSTtBQUFBLElBQ2pDO0FBQUEsSUFDQSxtQkFBbUIsTUFBTSxLQUFLLElBQUk7QUFBQSxJQUNsQyxPQUFPLE9BQU8saUJBQXlCO0FBQ3JDLGdCQUFNLGdCQUFBQSxZQUFNLFlBQVk7QUFBQSxJQUMxQjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFJLG1CQUFtQixVQUFhLEVBQUUsZUFBZTtBQUFBLEVBQ3ZELENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFsic2xlZXAiXQp9Cg==
|
|
@@ -17,28 +17,28 @@
|
|
|
17
17
|
* integration test.
|
|
18
18
|
*/
|
|
19
19
|
import type { Promisable } from 'type-fest';
|
|
20
|
-
import type {
|
|
21
|
-
import type {
|
|
20
|
+
import type { ContextArguments } from './context-id.cjs';
|
|
21
|
+
import type { CommonArguments, GenericObject } from './eval-in-obsidian.cjs';
|
|
22
22
|
import type { ObsidianTransport } from './transport.cjs';
|
|
23
23
|
import { ContextId } from './context-id.cjs';
|
|
24
24
|
/**
|
|
25
25
|
* Parameters for {@link pollInObsidian}. Mirrors {@link EvalInObsidianParams} for
|
|
26
|
-
* the shared forwarded fields (`
|
|
26
|
+
* the shared forwarded fields (`input` / `contextId` / `transport` / `vaultPath`);
|
|
27
27
|
* `start` / `poll` are the in-Obsidian closures and `until` is the Node-side
|
|
28
28
|
* acceptance predicate.
|
|
29
29
|
*/
|
|
30
|
-
export interface PollInObsidianParams<
|
|
31
|
-
/**
|
|
32
|
-
* Additional arguments passed to both `start` and `poll` (serialized like
|
|
33
|
-
* {@link EvalInObsidianParams.args}).
|
|
34
|
-
*/
|
|
35
|
-
readonly args?: Args;
|
|
30
|
+
export interface PollInObsidianParams<Input extends GenericObject, PollResult, TContextId extends ContextId<unknown> | undefined = undefined> {
|
|
36
31
|
/**
|
|
37
32
|
* A {@link ContextId} shared by `start` and `poll`, so `start` can stash
|
|
38
33
|
* non-serializable state that `poll` later reads. When omitted, each closure
|
|
39
34
|
* gets a fresh empty `context`.
|
|
40
35
|
*/
|
|
41
36
|
readonly contextId?: TContextId;
|
|
37
|
+
/**
|
|
38
|
+
* Additional arguments passed to both `start` and `poll` (serialized like
|
|
39
|
+
* {@link EvalInObsidianParams.input}).
|
|
40
|
+
*/
|
|
41
|
+
readonly input?: Input;
|
|
42
42
|
/**
|
|
43
43
|
* Delay between `poll` attempts, in milliseconds.
|
|
44
44
|
*
|
|
@@ -50,13 +50,13 @@ export interface PollInObsidianParams<Args extends GenericObject, PollResult, TC
|
|
|
50
50
|
* ~30s CDP cap): it should read and return a JSON-serializable status, not
|
|
51
51
|
* await the long operation itself.
|
|
52
52
|
*/
|
|
53
|
-
poll(this: void,
|
|
53
|
+
poll(this: void, input: CommonArguments & ContextArguments<TContextId> & Input): Promisable<PollResult>;
|
|
54
54
|
/**
|
|
55
55
|
* An optional closure run **once** before polling begins, to kick off the
|
|
56
56
|
* long-running work (fire-and-forget from Node's perspective). Keep it short —
|
|
57
57
|
* start the work and return; do not await it to completion here.
|
|
58
58
|
*/
|
|
59
|
-
start?(this: void,
|
|
59
|
+
start?(this: void, input: CommonArguments & ContextArguments<TContextId> & Input): Promisable<unknown>;
|
|
60
60
|
/**
|
|
61
61
|
* Total budget before the poll rejects, in milliseconds.
|
|
62
62
|
*
|
|
@@ -89,4 +89,4 @@ export interface PollInObsidianParams<Args extends GenericObject, PollResult, TC
|
|
|
89
89
|
* @param params - The poll parameters.
|
|
90
90
|
* @returns A {@link Promise} that resolves with the first accepted `poll` result.
|
|
91
91
|
*/
|
|
92
|
-
export declare function pollInObsidian<
|
|
92
|
+
export declare function pollInObsidian<Input extends GenericObject, PollResult, TContextId extends ContextId<unknown> | undefined = undefined>(params: PollInObsidianParams<Input, PollResult, TContextId>): Promise<PollResult>;
|
|
@@ -40,4 +40,4 @@ async function pollUntil(params) {
|
|
|
40
40
|
0 && (module.exports = {
|
|
41
41
|
pollUntil
|
|
42
42
|
});
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtdW50aWwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQdXJlIHBvbGwtdW50aWwtc2F0aXNmaWVkIGxvb3A6IHJlcGVhdGVkbHkgcnVucyBhbiBhc3luYyBgYXR0ZW1wdGAsIHJldHVybmluZ1xuICogaXRzIHJlc3VsdCBvbmNlIGB1bnRpbGAgYWNjZXB0cyBpdCwgb3IgdGhyb3dpbmcgd2hlbiBhIHRpbWVvdXQgZWxhcHNlcy5cbiAqXG4gKiBFeHRyYWN0ZWQgZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSB7QGxpbmsgcG9sbEluT2JzaWRpYW59IHdyYXBwZXIgKHdoaWNoIGJpbmRzXG4gKiBgYXR0ZW1wdGAgdG8gYW4gYGV2YWxJbk9ic2lkaWFuYCBjYWxsIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZVxuICogdGltaW5nL3RpbWVvdXQgbG9naWMgc3RheXMgdW5pdC10ZXN0YWJsZS4gVGhlIGNsb2NrIGFuZCBzbGVlcCBhcmUgaW5qZWN0ZWQgc29cbiAqIHRoZSBsb29wIGlzIGRldGVybWluaXN0aWMgdW5kZXIgdGVzdC5cbiAqL1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBwb2xsVW50aWx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGxVbnRpbFBhcmFtczxSZXN1bHQ+
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtdW50aWwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQdXJlIHBvbGwtdW50aWwtc2F0aXNmaWVkIGxvb3A6IHJlcGVhdGVkbHkgcnVucyBhbiBhc3luYyBgYXR0ZW1wdGAsIHJldHVybmluZ1xuICogaXRzIHJlc3VsdCBvbmNlIGB1bnRpbGAgYWNjZXB0cyBpdCwgb3IgdGhyb3dpbmcgd2hlbiBhIHRpbWVvdXQgZWxhcHNlcy5cbiAqXG4gKiBFeHRyYWN0ZWQgZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSB7QGxpbmsgcG9sbEluT2JzaWRpYW59IHdyYXBwZXIgKHdoaWNoIGJpbmRzXG4gKiBgYXR0ZW1wdGAgdG8gYW4gYGV2YWxJbk9ic2lkaWFuYCBjYWxsIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZVxuICogdGltaW5nL3RpbWVvdXQgbG9naWMgc3RheXMgdW5pdC10ZXN0YWJsZS4gVGhlIGNsb2NrIGFuZCBzbGVlcCBhcmUgaW5qZWN0ZWQgc29cbiAqIHRoZSBsb29wIGlzIGRldGVybWluaXN0aWMgdW5kZXIgdGVzdC5cbiAqL1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBwb2xsVW50aWx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGxVbnRpbFBhcmFtczxSZXN1bHQ+IHtcbiAgLyoqXG4gIFJ1bnMgb25lIGF0dGVtcHQgYW5kIHJlc29sdmVzIHdpdGggaXRzIHJlc3VsdC5cbiAgICovXG4gIGF0dGVtcHQodGhpczogdm9pZCk6IFByb21pc2U8UmVzdWx0PjtcblxuICAvKipcbiAgRGVsYXkgYmV0d2VlbiBhdHRlbXB0cywgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBSZXR1cm5zIHRoZSBjdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzIChpbmplY3RlZCBmb3IgZGV0ZXJtaW5pc3RpYyB0ZXN0cykuXG4gICAqL1xuICBub3dJbk1pbGxpc2Vjb25kcyh0aGlzOiB2b2lkKTogbnVtYmVyO1xuXG4gIC8qKlxuICBTbGVlcHMgZm9yIHRoZSBnaXZlbiBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIChpbmplY3RlZCBmb3IgZGV0ZXJtaW5pc3RpYyB0ZXN0cykuXG4gICAqL1xuICBzbGVlcCh0aGlzOiB2b2lkLCBtaWxsaXNlY29uZHM6IG51bWJlcik6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gIFRvdGFsIGJ1ZGdldCBiZWZvcmUgdGhlIHBvbGwgcmVqZWN0cywgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqXG4gIE9wdGlvbmFsIGRldGFpbCBhcHBlbmRlZCB0byB0aGUgdGltZW91dCBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dE1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gIFdoZXRoZXIgYSBnaXZlbiBhdHRlbXB0IHJlc3VsdCBpcyBhY2NlcHRhYmxlIChzdG9wcyB0aGUgcG9sbCkuXG4gICAqL1xuICB1bnRpbCh0aGlzOiB2b2lkLCByZXN1bHQ6IFJlc3VsdCk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUnVucyBgYXR0ZW1wdGAgaW1tZWRpYXRlbHksIHRoZW4gcmVwZWF0ZWRseSBldmVyeSBgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kc2AsXG4gKiB1bnRpbCBgdW50aWwocmVzdWx0KWAgaXMgdHJ1dGh5IFx1MjAxNCByZXNvbHZpbmcgd2l0aCB0aGF0IHJlc3VsdCBcdTIwMTQgb3IgdGhlXG4gKiBgdGltZW91dEluTWlsbGlzZWNvbmRzYCBidWRnZXQgZWxhcHNlcywgYXQgd2hpY2ggcG9pbnQgaXQgcmVqZWN0cy4gQXQgbGVhc3Qgb25lXG4gKiBhdHRlbXB0IGFsd2F5cyBydW5zOyB0aGUgdGltZW91dCBpcyBjaGVja2VkIGFmdGVyIGVhY2ggdW5zYXRpc2ZpZWQgYXR0ZW1wdCwgc29cbiAqIGEgc2xvdyBzaW5nbGUgYXR0ZW1wdCBjYW5ub3QgYmUgaW50ZXJydXB0ZWQgbWlkLWZsaWdodCBidXQgbm8gZnVydGhlciBhdHRlbXB0XG4gKiBzdGFydHMgcGFzdCB0aGUgZGVhZGxpbmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwb2xsIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGZpcnN0IGFjY2VwdGVkIGF0dGVtcHQgcmVzdWx0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9sbFVudGlsPFJlc3VsdD4ocGFyYW1zOiBQb2xsVW50aWxQYXJhbXM8UmVzdWx0Pik6IFByb21pc2U8UmVzdWx0PiB7XG4gIGNvbnN0IHsgYXR0ZW1wdCwgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcywgbm93SW5NaWxsaXNlY29uZHMsIHNsZWVwLCB0aW1lb3V0SW5NaWxsaXNlY29uZHMsIHRpbWVvdXRNZXNzYWdlLCB1bnRpbCB9ID0gcGFyYW1zO1xuICBjb25zdCBkZWFkbGluZSA9IG5vd0luTWlsbGlzZWNvbmRzKCkgKyB0aW1lb3V0SW5NaWxsaXNlY29uZHM7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb24gLS0gTG9vcCBleGl0cyB2aWEgcmV0dXJuIG9yIHRocm93LlxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGF0dGVtcHQoKTtcbiAgICBpZiAodW50aWwocmVzdWx0KSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKG5vd0luTWlsbGlzZWNvbmRzKCkgPj0gZGVhZGxpbmUpIHtcbiAgICAgIGNvbnN0IHN1ZmZpeCA9IHRpbWVvdXRNZXNzYWdlID09PSB1bmRlZmluZWQgPyAnJyA6IGA6ICR7dGltZW91dE1lc3NhZ2V9YDtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgcG9sbEluT2JzaWRpYW4gdGltZWQgb3V0IGFmdGVyICR7U3RyaW5nKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyl9IG1pbGxpc2Vjb25kcyR7c3VmZml4fWApO1xuICAgIH1cbiAgICBhd2FpdCBzbGVlcChpbnRlcnZhbEluTWlsbGlzZWNvbmRzKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQStEQSxlQUFzQixVQUFrQixRQUFrRDtBQUN4RixRQUFNLEVBQUUsU0FBUyx3QkFBd0IsbUJBQW1CLE9BQU8sdUJBQXVCLGdCQUFnQixNQUFNLElBQUk7QUFDcEgsUUFBTSxXQUFXLGtCQUFrQixJQUFJO0FBR3ZDLFNBQU8sTUFBTTtBQUNYLFVBQU0sU0FBUyxNQUFNLFFBQVE7QUFDN0IsUUFBSSxNQUFNLE1BQU0sR0FBRztBQUNqQixhQUFPO0FBQUEsSUFDVDtBQUNBLFFBQUksa0JBQWtCLEtBQUssVUFBVTtBQUNuQyxZQUFNLFNBQVMsbUJBQW1CLFNBQVksS0FBSyxLQUFLLGNBQWM7QUFDdEUsWUFBTSxJQUFJLE1BQU0sa0NBQWtDLE9BQU8scUJBQXFCLENBQUMsZ0JBQWdCLE1BQU0sRUFBRTtBQUFBLElBQ3pHO0FBQ0EsVUFBTSxNQUFNLHNCQUFzQjtBQUFBLEVBQ3BDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -13,19 +13,33 @@
|
|
|
13
13
|
* Parameters for {@link pollUntil}.
|
|
14
14
|
*/
|
|
15
15
|
export interface PollUntilParams<Result> {
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
Runs one attempt and resolves with its result.
|
|
18
|
+
*/
|
|
17
19
|
attempt(this: void): Promise<Result>;
|
|
18
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
Delay between attempts, in milliseconds.
|
|
22
|
+
*/
|
|
19
23
|
readonly intervalInMilliseconds: number;
|
|
20
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
Returns the current time in milliseconds (injected for deterministic tests).
|
|
26
|
+
*/
|
|
21
27
|
nowInMilliseconds(this: void): number;
|
|
22
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
Sleeps for the given number of milliseconds (injected for deterministic tests).
|
|
30
|
+
*/
|
|
23
31
|
sleep(this: void, milliseconds: number): Promise<void>;
|
|
24
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
Total budget before the poll rejects, in milliseconds.
|
|
34
|
+
*/
|
|
25
35
|
readonly timeoutInMilliseconds: number;
|
|
26
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
Optional detail appended to the timeout error message.
|
|
38
|
+
*/
|
|
27
39
|
readonly timeoutMessage?: string;
|
|
28
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
Whether a given attempt result is acceptable (stops the poll).
|
|
42
|
+
*/
|
|
29
43
|
until(this: void, result: Result): boolean;
|
|
30
44
|
}
|
|
31
45
|
/**
|
|
@@ -44,4 +44,4 @@ function resolveReason(exitInfo) {
|
|
|
44
44
|
0 && (module.exports = {
|
|
45
45
|
buildProcessExitMessage
|
|
46
46
|
});
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3Byb2Nlc3MtZXhpdC1tZXNzYWdlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSBidWlsZGVyIGZvciB0aGUgZGlhZ25vc3RpYyBtZXNzYWdlIGRlc2NyaWJpbmcgYW4gYXV0by1zdGFydGVkIGNoaWxkXG4gKiBwcm9jZXNzICh0aGUgQW5kcm9pZCBlbXVsYXRvciBvciB0aGUgQXBwaXVtIHNlcnZlcikgdGhhdCBkaWVkIGR1cmluZyBzdGFydHVwLFxuICogYXBwZW5kaW5nIHRoZSBjYXB0dXJlZCBvdXRwdXQgdGFpbCB3aGVuIGF2YWlsYWJsZS5cbiAqXG4gKiBLZXB0IHNlcGFyYXRlIGZyb20gdGhlIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1mYWN0b3J5YCAoZXhjbHVkZWQgZnJvbVxuICogdW5pdCB0ZXN0cykgc28gdGhlIG1lc3NhZ2UgZm9ybWF0dGluZyBzdGF5cyB1bml0LXRlc3RhYmxlIFx1MjAxNCB0aGUgbGF1bmNoZXJzXG4gKiB0aGVtc2VsdmVzIHNwYXduIHJlYWwgcHJvY2Vzc2VzLlxuICovXG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGJ1aWxkUHJvY2Vzc0V4aXRNZXNzYWdlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZFByb2Nlc3NFeGl0TWVzc2FnZVBhcmFtcyB7XG4gIC8qKlxuICBUaGUgcHJvY2VzcydzIGV4aXQgLyBzcGF3bi1mYWlsdXJlIGRldGFpbHMuXG4gICAqL1xuICByZWFkb25seSBleGl0SW5mbzogUHJvY2Vzc0V4aXRJbmZvO1xuXG4gIC8qKlxuICBUaGUgY2FwdHVyZWQgc3Rkb3V0K3N0ZGVyciB0YWlsIChlbXB0eSB3aGVuIG5vbmUgd2FzIGNhcHR1cmVkKS5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dDogc3RyaW5nO1xuXG4gIC8qKlxuICBMYWJlbCBmb3IgdGhlIGNhcHR1cmVkIG91dHB1dCBzZWN0aW9uIChlLmcuIGBcIkVtdWxhdG9yIG91dHB1dFwiYCkuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICBIdW1hbi1yZWFkYWJsZSBzdWJqZWN0IG9mIHRoZSBwcm9jZXNzIChlLmcuIGBcIkFuZHJvaWQgZW11bGF0b3JcImApLlxuICAgKi9cbiAgcmVhZG9ubHkgc3ViamVjdDogc3RyaW5nO1xufVxuXG4vKipcbiAqIERldGFpbHMgb2YgYSBzcGF3bmVkIGNoaWxkIHByb2Nlc3MgdGhhdCBoYXMgZXhpdGVkIG9yIGZhaWxlZCB0byBzcGF3bi5cbiAqXG4gKiBBIG5vcm1hbCBleGl0IHNldHMgYGNvZGVgL2BzaWduYWxgIChleGFjdGx5IG9uZSBpcyBub24tYG51bGxgKTsgYSBzcGF3blxuICogZmFpbHVyZSAoZS5nLiBgRU5PRU5UYCBmb3IgYSBtaXNzaW5nIGJpbmFyeSkgbGVhdmVzIGJvdGggYG51bGxgIGFuZCBzZXRzXG4gKiBgc3Bhd25FcnJvcmAgdG8gdGhlIGZhaWx1cmUgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzRXhpdEluZm8ge1xuICAvKipcbiAgRXhpdCBjb2RlLCBvciBgbnVsbGAgd2hlbiB0ZXJtaW5hdGVkIGJ5IGEgc2lnbmFsIG9yIHdoZW4gaXQgZmFpbGVkIHRvIHNwYXduLlxuICAgKi9cbiAgcmVhZG9ubHkgY29kZTogbnVsbCB8IG51bWJlcjtcblxuICAvKipcbiAgVGVybWluYXRpbmcgc2lnbmFsLCBvciBgbnVsbGAgd2hlbiBpdCBleGl0ZWQgbm9ybWFsbHkgb3IgZmFpbGVkIHRvIHNwYXduLlxuICAgKi9cbiAgcmVhZG9ubHkgc2lnbmFsOiBOb2RlSlMuU2lnbmFscyB8IG51bGw7XG5cbiAgLyoqXG4gIFRoZSBzcGF3bi1mYWlsdXJlIG1lc3NhZ2Ugd2hlbiB0aGUgcHJvY2VzcyBuZXZlciBzdGFydGVkIChlLmcuIGBFTk9FTlRgKSwgb3RoZXJ3aXNlIGFic2VudC5cbiAgICovXG4gIHJlYWRvbmx5IHNwYXduRXJyb3I/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgZGVzY3JpcHRpdmUgZXJyb3IgbWVzc2FnZSBmb3IgYW4gYXV0by1zdGFydGVkIGNoaWxkIHByb2Nlc3MgdGhhdFxuICogZXhpdGVkIChvciBmYWlsZWQgdG8gc3Bhd24pIGR1cmluZyBzdGFydHVwLCBhcHBlbmRpbmcgdGhlIGNhcHR1cmVkIG91dHB1dFxuICogdGFpbCB3aGVuIGF2YWlsYWJsZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHN1YmplY3QsIGV4aXQgZGV0YWlscywgYW5kIGNhcHR1cmVkIG91dHB1dC5cbiAqIEByZXR1cm5zIEEgaHVtYW4tcmVhZGFibGUgZXJyb3IgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUHJvY2Vzc0V4aXRNZXNzYWdlKHBhcmFtczogQnVpbGRQcm9jZXNzRXhpdE1lc3NhZ2VQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7IGV4aXRJbmZvLCBvdXRwdXQsIG91dHB1dExhYmVsLCBzdWJqZWN0IH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgcmVhc29uID0gcmVzb2x2ZVJlYXNvbihleGl0SW5mbyk7XG4gIGNvbnN0IHRyaW1tZWRPdXRwdXQgPSBvdXRwdXQudHJpbSgpO1xuICBjb25zdCBkZXRhaWxzID0gdHJpbW1lZE91dHB1dC5sZW5ndGggPiAwXG4gICAgPyBgXFxuXFxuJHtvdXRwdXRMYWJlbH0gKHRhaWwpOlxcbiR7dHJpbW1lZE91dHB1dH1gXG4gICAgOiAnJztcbiAgcmV0dXJuIGAke3N1YmplY3R9ICR7cmVhc29ufSBkdXJpbmcgc3RhcnR1cC4ke2RldGFpbHN9YDtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgd2h5IHRoZSBwcm9jZXNzIGlzIG5vIGxvbmdlciBydW5uaW5nLlxuICpcbiAqIEBwYXJhbSBleGl0SW5mbyAtIFRoZSBleGl0IC8gc3Bhd24tZmFpbHVyZSBkZXRhaWxzLlxuICogQHJldHVybnMgVGhlIHJlYXNvbiBjbGF1c2UuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVSZWFzb24oZXhpdEluZm86IFByb2Nlc3NFeGl0SW5mbyk6IHN0cmluZyB7XG4gIGlmIChleGl0SW5mby5zcGF3bkVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYGZhaWxlZCB0byBzdGFydCAoJHtleGl0SW5mby5zcGF3bkVycm9yfSlgO1xuICB9XG4gIGlmIChleGl0SW5mby5zaWduYWwgIT09IG51bGwpIHtcbiAgICByZXR1cm4gYHdhcyB0ZXJtaW5hdGVkIGJ5IHNpZ25hbCAke2V4aXRJbmZvLnNpZ25hbH1gO1xuICB9XG4gIHJldHVybiBgZXhpdGVkIHByZW1hdHVyZWx5IHdpdGggY29kZSAke2V4aXRJbmZvLmNvZGUgPT09IG51bGwgPyAnKG51bGwpJyA6IFN0cmluZyhleGl0SW5mby5jb2RlKX1gO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXFFTyxTQUFTLHdCQUF3QixRQUErQztBQUNyRixRQUFNLEVBQUUsVUFBVSxRQUFRLGFBQWEsUUFBUSxJQUFJO0FBRW5ELFFBQU0sU0FBUyxjQUFjLFFBQVE7QUFDckMsUUFBTSxnQkFBZ0IsT0FBTyxLQUFLO0FBQ2xDLFFBQU0sVUFBVSxjQUFjLFNBQVMsSUFDbkM7QUFBQTtBQUFBLEVBQU8sV0FBVztBQUFBLEVBQWEsYUFBYSxLQUM1QztBQUNKLFNBQU8sR0FBRyxPQUFPLElBQUksTUFBTSxtQkFBbUIsT0FBTztBQUN2RDtBQVFBLFNBQVMsY0FBYyxVQUFtQztBQUN4RCxNQUFJLFNBQVMsZUFBZSxRQUFXO0FBQ3JDLFdBQU8sb0JBQW9CLFNBQVMsVUFBVTtBQUFBLEVBQ2hEO0FBQ0EsTUFBSSxTQUFTLFdBQVcsTUFBTTtBQUM1QixXQUFPLDRCQUE0QixTQUFTLE1BQU07QUFBQSxFQUNwRDtBQUNBLFNBQU8sZ0NBQWdDLFNBQVMsU0FBUyxPQUFPLFdBQVcsT0FBTyxTQUFTLElBQUksQ0FBQztBQUNsRzsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -13,13 +13,21 @@
|
|
|
13
13
|
* Parameters for {@link buildProcessExitMessage}.
|
|
14
14
|
*/
|
|
15
15
|
export interface BuildProcessExitMessageParams {
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
The process's exit / spawn-failure details.
|
|
18
|
+
*/
|
|
17
19
|
readonly exitInfo: ProcessExitInfo;
|
|
18
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
The captured stdout+stderr tail (empty when none was captured).
|
|
22
|
+
*/
|
|
19
23
|
readonly output: string;
|
|
20
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
Label for the captured output section (e.g. `"Emulator output"`).
|
|
26
|
+
*/
|
|
21
27
|
readonly outputLabel: string;
|
|
22
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
Human-readable subject of the process (e.g. `"Android emulator"`).
|
|
30
|
+
*/
|
|
23
31
|
readonly subject: string;
|
|
24
32
|
}
|
|
25
33
|
/**
|
|
@@ -30,11 +38,17 @@ export interface BuildProcessExitMessageParams {
|
|
|
30
38
|
* `spawnError` to the failure message.
|
|
31
39
|
*/
|
|
32
40
|
export interface ProcessExitInfo {
|
|
33
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
Exit code, or `null` when terminated by a signal or when it failed to spawn.
|
|
43
|
+
*/
|
|
34
44
|
readonly code: null | number;
|
|
35
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
Terminating signal, or `null` when it exited normally or failed to spawn.
|
|
47
|
+
*/
|
|
36
48
|
readonly signal: NodeJS.Signals | null;
|
|
37
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
The spawn-failure message when the process never started (e.g. `ENOENT`), otherwise absent.
|
|
51
|
+
*/
|
|
38
52
|
readonly spawnError?: string;
|
|
39
53
|
}
|
|
40
54
|
/**
|
|
@@ -19,12 +19,15 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var renderer_boot_detection_exports = {};
|
|
20
20
|
__export(renderer_boot_detection_exports, {
|
|
21
21
|
DEFAULT_DEAD_BOOT_GRACE_IN_MILLISECONDS: () => DEFAULT_DEAD_BOOT_GRACE_IN_MILLISECONDS,
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
resolveDeadBootGraceInMilliseconds: () => resolveDeadBootGraceInMilliseconds,
|
|
23
|
+
resolveRendererBootState: () => resolveRendererBootState
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(renderer_boot_detection_exports);
|
|
26
26
|
const DEFAULT_DEAD_BOOT_GRACE_IN_MILLISECONDS = 1e4;
|
|
27
|
-
function
|
|
27
|
+
function resolveDeadBootGraceInMilliseconds(options) {
|
|
28
|
+
return options?.deadBootGraceInMilliseconds ?? DEFAULT_DEAD_BOOT_GRACE_IN_MILLISECONDS;
|
|
29
|
+
}
|
|
30
|
+
function resolveRendererBootState(params) {
|
|
28
31
|
const { bodyChildElementCount, hasGraceElapsed, hasWindowApp, isDocumentComplete } = params;
|
|
29
32
|
if (hasWindowApp) {
|
|
30
33
|
return "pending";
|
|
@@ -37,13 +40,10 @@ function checkRendererBootState(params) {
|
|
|
37
40
|
}
|
|
38
41
|
return "pending";
|
|
39
42
|
}
|
|
40
|
-
function resolveDeadBootGraceInMilliseconds(options) {
|
|
41
|
-
return options?.deadBootGraceInMilliseconds ?? DEFAULT_DEAD_BOOT_GRACE_IN_MILLISECONDS;
|
|
42
|
-
}
|
|
43
43
|
// Annotate the CommonJS export names for ESM import in node:
|
|
44
44
|
0 && (module.exports = {
|
|
45
45
|
DEFAULT_DEAD_BOOT_GRACE_IN_MILLISECONDS,
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
resolveDeadBootGraceInMilliseconds,
|
|
47
|
+
resolveRendererBootState
|
|
48
48
|
});
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3JlbmRlcmVyLWJvb3QtZGV0ZWN0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSBkZXRlY3Rpb24gb2YgYSB0ZXJtaW5hbCBcImRlYWQgYm9vdFwiIG9mIHRoZSBvd25lZCBPYnNpZGlhbiByZW5kZXJlciwgcGx1c1xuICogcmVzb2x2aW5nIHRoZSBmYXN0LWZhaWwgZ3JhY2Ugd2luZG93IGZyb20gdGhlIHRyYW5zcG9ydCBvcHRpb25zLiBLZXB0IHNlcGFyYXRlXG4gKiBmcm9tIHRoZSBpbnRlZ3JhdGlvbi1vbmx5IGB0cmFuc3BvcnQtZGVza3RvcC1jZHBgICh3aGljaCBkcml2ZXMgcmVhbCBDRFAgYW5kIGlzXG4gKiBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZSB2ZXJkaWN0IGxvZ2ljIGFuZCBkZWZhdWx0IHJlc29sdXRpb24gc3RheVxuICogdW5pdC10ZXN0YWJsZS5cbiAqXG4gKiBXaGVuIGFuIE9ic2lkaWFuIGFzYXIgY2Fubm90IHJ1biBvbiB0aGUgbGF1bmNoZWQgRWxlY3Ryb24gc2hlbGwgKHRoZSBpbnN0YWxsZXJcbiAqIHZlcnNpb24gaXMgdG9vIG9sZCBmb3IgdGhhdCBhcHAgdmVyc2lvbiksIHRoZSByZW5kZXJlciBsb2FkcyBgaW5kZXguaHRtbGBcbiAqIChgZG9jdW1lbnQucmVhZHlTdGF0ZWAgcmVhY2hlcyBgJ2NvbXBsZXRlJ2ApIGJ1dCB0aGUgYXBwIG5ldmVyIGJvb3RzdHJhcHM6XG4gKiBgZG9jdW1lbnQuYm9keWAgc3RheXMgZW1wdHkgYW5kIGB3aW5kb3cuYXBwYCByZW1haW5zIGB1bmRlZmluZWRgIFx1MjAxNCB2aXN1YWxseSBhXG4gKiBibGFjayBzY3JlZW4uIFRoZSBvd25lZC12YXVsdCByZWFkaW5lc3MgcG9sbCBjYW5ub3QgdGVsbCB0aGlzIHRlcm1pbmFsIHN0YXRlXG4gKiBhcGFydCBmcm9tIFwic3RpbGwgbG9hZGluZ1wiLCBzbyB3aXRob3V0IGEgZGV0ZWN0b3IgaXQgd2FpdHMgb3V0IHRoZSB3aG9sZVxuICogcmVhZGluZXNzIHRpbWVvdXQgYmVmb3JlIGZhaWxpbmcuIFRoaXMgbW9kdWxlIGVuY29kZXMgdGhlIHNpZ25hbCB0aGF0XG4gKiBkaXN0aW5ndWlzaGVzIHRoZSB0d286IG9uY2UgdGhlIHJlbmRlcmVyIGhhcyBiZWVuIGBjb21wbGV0ZWAgZm9yIGEgc2hvcnQgZ3JhY2VcbiAqIHdpbmRvdyB3aXRoIG5vIGB3aW5kb3cuYXBwYCBhbmQgYW4gZW1wdHkgYDxib2R5PmAsIGl0IGlzIGRlYWQsIG5vdCBzbG93LlxuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5DZHBUcmFuc3BvcnRPcHRpb25zIH0gZnJvbSAnLi90cmFuc3BvcnQtb3B0aW9ucy5janMnO1xuXG4vKipcbiAqIERlZmF1bHQgZm9yIHtAbGluayBPYnNpZGlhbkNkcFRyYW5zcG9ydE9wdGlvbnMuZGVhZEJvb3RHcmFjZUluTWlsbGlzZWNvbmRzfS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfREVBRF9CT09UX0dSQUNFX0lOX01JTExJU0VDT05EUyA9IDEwXzAwMDtcblxuLyoqXG4gKiBBIHNhbXBsZSBvZiB0aGUgb3duZWQgcmVuZGVyZXIncyBib290c3RyYXAgc3RhdGUsIHRha2VuIGZyb20gdGhlIHZhdWx0IHBhZ2VcbiAqIHRhcmdldCB2aWEgYSBzaW5nbGUgQ0RQIGV2YWx1YXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyZXJCb290T2JzZXJ2YXRpb24ge1xuICAvKipcbiAgICogYGRvY3VtZW50LmJvZHkuY2hpbGRFbGVtZW50Q291bnRgIGluIHRoZSB2YXVsdCByZW5kZXJlciAoYDBgIHdoZW4gYGJvZHlgIGlzXG4gICAqIGFic2VudCkuIEEgZGVhZCBib290IGxlYXZlcyB0aGUgYm9keSBlbXB0eTsgYSBzbG93LWJ1dC12YWxpZCBib290IHJlbmRlcnMgYXRcbiAgICogbGVhc3QgYSBsb2FkaW5nIHNoZWxsLlxuICAgKi9cbiAgcmVhZG9ubHkgYm9keUNoaWxkRWxlbWVudENvdW50OiBudW1iZXI7XG5cbiAgLyoqXG4gIFdoZXRoZXIgYHdpbmRvdy5hcHBgIGlzIGRlZmluZWQgaW4gdGhlIHZhdWx0IHJlbmRlcmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFzV2luZG93QXBwOiBib29sZWFuO1xuXG4gIC8qKlxuICBXaGV0aGVyIHRoZSB2YXVsdCByZW5kZXJlcidzIGBkb2N1bWVudC5yZWFkeVN0YXRlYCBpcyBgJ2NvbXBsZXRlJ2AuXG4gICAqL1xuICByZWFkb25seSBpc0RvY3VtZW50Q29tcGxldGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVmVyZGljdCBmcm9tIHtAbGluayByZXNvbHZlUmVuZGVyZXJCb290U3RhdGV9OiBgJ2RlYWQnYCB3aGVuIHRoZSByZW5kZXJlciBoYXNcbiAqIHRlcm1pbmFsbHkgZmFpbGVkIHRvIGluaXRpYWxpemUsIGAncGVuZGluZydgIHdoZW4gaXQgbWF5IHN0aWxsIGJlIGJvb3RpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFJlbmRlcmVyQm9vdFZlcmRpY3QgPSAnZGVhZCcgfCAncGVuZGluZyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVSZW5kZXJlckJvb3RTdGF0ZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZVJlbmRlcmVyQm9vdFN0YXRlUGFyYW1zIGV4dGVuZHMgUmVuZGVyZXJCb290T2JzZXJ2YXRpb24ge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgYm9vdHN0cmFwIGdyYWNlIHdpbmRvdyBoYXMgZWxhcHNlZCBzaW5jZSB0aGUgcmVuZGVyZXIgZmlyc3RcbiAgICogcmVhY2hlZCBgZG9jdW1lbnQucmVhZHlTdGF0ZWAgYCdjb21wbGV0ZSdgLiBUaGUgYCdkZWFkJ2AgdmVyZGljdCBpcyB3aXRoaGVsZFxuICAgKiB1bnRpbCB0aGlzIGlzIGB0cnVlYCBzbyBhIGdlbnVpbmVseSBzbG93IGJvb3QgaXMgbmV2ZXIgbWlzanVkZ2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFzR3JhY2VFbGFwc2VkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBkZWFkLWJvb3QgZmFzdC1mYWlsIGdyYWNlIHdpbmRvdywgYXBwbHlpbmcgdGhlIGRlZmF1bHQgd2hlbiB0aGVcbiAqIG9wdGlvbiBpcyBvbWl0dGVkLlxuICpcbiAqIFRoaXMgYm91bmRzIGhvdyBsb25nIHRoZSBvd25lZC12YXVsdCByZWFkaW5lc3MgcG9sbCB3YWl0cyBcdTIwMTQgYWZ0ZXIgdGhlIHJlbmRlcmVyXG4gKiBmaXJzdCByZWFjaGVzIGBkb2N1bWVudC5yZWFkeVN0YXRlYCBgJ2NvbXBsZXRlJ2AgXHUyMDE0IGJlZm9yZSBjb25jbHVkaW5nIHRoZSBib290XG4gKiBpcyBkZWFkIChzZWUge0BsaW5rIHJlc29sdmVSZW5kZXJlckJvb3RTdGF0ZX0pLiBBIHZhbHVlIG9mIGAwYCBkaXNhYmxlcyBmYXN0LWZhaWxcbiAqIGVudGlyZWx5LCByZXN0b3JpbmcgdGhlIHBsYWluIHdhaXQtb3V0LXRoZS1yZWFkaW5lc3MtdGltZW91dCBiZWhhdmlvci5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBkZXNrdG9wIENEUCB0cmFuc3BvcnQgb3B0aW9ucyAob3IgdGhlIHJlbGV2YW50IHNsaWNlKS5cbiAqIEByZXR1cm5zIFRoZSBncmFjZSB3aW5kb3cgaW4gbWlsbGlzZWNvbmRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZURlYWRCb290R3JhY2VJbk1pbGxpc2Vjb25kcyhcbiAgb3B0aW9ucz86IFBpY2s8T2JzaWRpYW5DZHBUcmFuc3BvcnRPcHRpb25zLCAnZGVhZEJvb3RHcmFjZUluTWlsbGlzZWNvbmRzJz5cbik6IG51bWJlciB7XG4gIHJldHVybiBvcHRpb25zPy5kZWFkQm9vdEdyYWNlSW5NaWxsaXNlY29uZHMgPz8gREVGQVVMVF9ERUFEX0JPT1RfR1JBQ0VfSU5fTUlMTElTRUNPTkRTO1xufVxuXG4vKipcbiAqIERlY2lkZXMgd2hldGhlciB0aGUgb3duZWQgcmVuZGVyZXIgaGFzIHRlcm1pbmFsbHkgZmFpbGVkIHRvIGluaXRpYWxpemUuXG4gKlxuICogVGhlIHZlcmRpY3QgaXMgYCdkZWFkJ2Agb25seSB3aGVuIGFsbCBvZiB0aGUgZm9sbG93aW5nIGhvbGQ6IHRoZSBncmFjZSB3aW5kb3dcbiAqIGhhcyBlbGFwc2VkLCBgd2luZG93LmFwcGAgaXMgc3RpbGwgdW5kZWZpbmVkLCB0aGUgZG9jdW1lbnQgaXMgYCdjb21wbGV0ZSdgLFxuICogYW5kIGA8Ym9keT5gIGlzIGVtcHR5LiBUaGlzIGlzIGV4YWN0bHkgdGhlIG9ic2VydmVkIGluY29tcGF0aWJsZS1zaGVsbCBzdGF0ZVxuICogKGFuIGFzYXIgdGhhdCBjYW5ub3QgcnVuIG9uIHRoZSBsYXVuY2hlZCBFbGVjdHJvbiksIGFuZCBpdCBjYW5ub3QgYmUgcmVhY2hlZFxuICogYnkgYSBoZWFsdGh5IGJvb3QgXHUyMDE0IGB3aW5kb3cuYXBwYCBpcyBkZWZpbmVkIGVhcmx5LCBhbmQgYSBzbG93IGJvb3QgcmVuZGVycyBhXG4gKiBub24tZW1wdHkgbG9hZGluZyBzaGVsbCBcdTIwMTQgc28gdGhlcmUgaXMgbm8gZmFsc2UtcG9zaXRpdmUgcGF0aCBvbiBhIHZhbGlkIGJvb3QuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBzYW1wbGVkIG9ic2VydmF0aW9uIHBsdXMgd2hldGhlciB0aGUgZ3JhY2UgaGFzIGVsYXBzZWQuXG4gKiBAcmV0dXJucyBgJ2RlYWQnYCB3aGVuIHRoZSByZW5kZXJlciBpcyB0ZXJtaW5hbGx5IGRlYWQsIG90aGVyd2lzZSBgJ3BlbmRpbmcnYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVSZW5kZXJlckJvb3RTdGF0ZShwYXJhbXM6IFJlc29sdmVSZW5kZXJlckJvb3RTdGF0ZVBhcmFtcyk6IFJlbmRlcmVyQm9vdFZlcmRpY3Qge1xuICBjb25zdCB7IGJvZHlDaGlsZEVsZW1lbnRDb3VudCwgaGFzR3JhY2VFbGFwc2VkLCBoYXNXaW5kb3dBcHAsIGlzRG9jdW1lbnRDb21wbGV0ZSB9ID0gcGFyYW1zO1xuXG4gIGlmIChoYXNXaW5kb3dBcHApIHtcbiAgICByZXR1cm4gJ3BlbmRpbmcnO1xuICB9XG5cbiAgaWYgKCFoYXNHcmFjZUVsYXBzZWQpIHtcbiAgICByZXR1cm4gJ3BlbmRpbmcnO1xuICB9XG5cbiAgaWYgKGlzRG9jdW1lbnRDb21wbGV0ZSAmJiBib2R5Q2hpbGRFbGVtZW50Q291bnQgPT09IDApIHtcbiAgICByZXR1cm4gJ2RlYWQnO1xuICB9XG5cbiAgcmV0dXJuICdwZW5kaW5nJztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBeUJPLE1BQU0sMENBQTBDO0FBdURoRCxTQUFTLG1DQUNkLFNBQ1E7QUFDUixTQUFPLFNBQVMsK0JBQStCO0FBQ2pEO0FBZU8sU0FBUyx5QkFBeUIsUUFBNkQ7QUFDcEcsUUFBTSxFQUFFLHVCQUF1QixpQkFBaUIsY0FBYyxtQkFBbUIsSUFBSTtBQUVyRixNQUFJLGNBQWM7QUFDaEIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLENBQUMsaUJBQWlCO0FBQ3BCLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxzQkFBc0IsMEJBQTBCLEdBQUc7QUFDckQsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -22,17 +22,6 @@ import type { ObsidianCdpTransportOptions } from './transport-options.cjs';
|
|
|
22
22
|
* Default for {@link ObsidianCdpTransportOptions.deadBootGraceInMilliseconds}.
|
|
23
23
|
*/
|
|
24
24
|
export declare const DEFAULT_DEAD_BOOT_GRACE_IN_MILLISECONDS = 10000;
|
|
25
|
-
/**
|
|
26
|
-
* Parameters for {@link checkRendererBootState}.
|
|
27
|
-
*/
|
|
28
|
-
export interface CheckRendererBootStateParams extends RendererBootObservation {
|
|
29
|
-
/**
|
|
30
|
-
* Whether the bootstrap grace window has elapsed since the renderer first
|
|
31
|
-
* reached `document.readyState` `'complete'`. The `'dead'` verdict is withheld
|
|
32
|
-
* until this is `true` so a genuinely slow boot is never misjudged.
|
|
33
|
-
*/
|
|
34
|
-
readonly hasGraceElapsed: boolean;
|
|
35
|
-
}
|
|
36
25
|
/**
|
|
37
26
|
* A sample of the owned renderer's bootstrap state, taken from the vault page
|
|
38
27
|
* target via a single CDP evaluation.
|
|
@@ -44,40 +33,55 @@ export interface RendererBootObservation {
|
|
|
44
33
|
* least a loading shell.
|
|
45
34
|
*/
|
|
46
35
|
readonly bodyChildElementCount: number;
|
|
47
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
Whether `window.app` is defined in the vault renderer.
|
|
38
|
+
*/
|
|
48
39
|
readonly hasWindowApp: boolean;
|
|
49
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
Whether the vault renderer's `document.readyState` is `'complete'`.
|
|
42
|
+
*/
|
|
50
43
|
readonly isDocumentComplete: boolean;
|
|
51
44
|
}
|
|
52
45
|
/**
|
|
53
|
-
* Verdict from {@link
|
|
46
|
+
* Verdict from {@link resolveRendererBootState}: `'dead'` when the renderer has
|
|
54
47
|
* terminally failed to initialize, `'pending'` when it may still be booting.
|
|
55
48
|
*/
|
|
56
49
|
export type RendererBootVerdict = 'dead' | 'pending';
|
|
57
50
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* The verdict is `'dead'` only when all of the following hold: the grace window
|
|
61
|
-
* has elapsed, `window.app` is still undefined, the document is `'complete'`,
|
|
62
|
-
* and `<body>` is empty. This is exactly the observed incompatible-shell state
|
|
63
|
-
* (an asar that cannot run on the launched Electron), and it cannot be reached
|
|
64
|
-
* by a healthy boot — `window.app` is defined early, and a slow boot renders a
|
|
65
|
-
* non-empty loading shell — so there is no false-positive path on a valid boot.
|
|
66
|
-
*
|
|
67
|
-
* @param params - The sampled observation plus whether the grace has elapsed.
|
|
68
|
-
* @returns `'dead'` when the renderer is terminally dead, otherwise `'pending'`.
|
|
51
|
+
* Parameters for {@link resolveRendererBootState}.
|
|
69
52
|
*/
|
|
70
|
-
export
|
|
53
|
+
export interface ResolveRendererBootStateParams extends RendererBootObservation {
|
|
54
|
+
/**
|
|
55
|
+
* Whether the bootstrap grace window has elapsed since the renderer first
|
|
56
|
+
* reached `document.readyState` `'complete'`. The `'dead'` verdict is withheld
|
|
57
|
+
* until this is `true` so a genuinely slow boot is never misjudged.
|
|
58
|
+
*/
|
|
59
|
+
readonly hasGraceElapsed: boolean;
|
|
60
|
+
}
|
|
71
61
|
/**
|
|
72
62
|
* Resolves the dead-boot fast-fail grace window, applying the default when the
|
|
73
63
|
* option is omitted.
|
|
74
64
|
*
|
|
75
65
|
* This bounds how long the owned-vault readiness poll waits — after the renderer
|
|
76
66
|
* first reaches `document.readyState` `'complete'` — before concluding the boot
|
|
77
|
-
* is dead (see {@link
|
|
67
|
+
* is dead (see {@link resolveRendererBootState}). A value of `0` disables fast-fail
|
|
78
68
|
* entirely, restoring the plain wait-out-the-readiness-timeout behavior.
|
|
79
69
|
*
|
|
80
70
|
* @param options - The desktop CDP transport options (or the relevant slice).
|
|
81
71
|
* @returns The grace window in milliseconds.
|
|
82
72
|
*/
|
|
83
73
|
export declare function resolveDeadBootGraceInMilliseconds(options?: Pick<ObsidianCdpTransportOptions, 'deadBootGraceInMilliseconds'>): number;
|
|
74
|
+
/**
|
|
75
|
+
* Decides whether the owned renderer has terminally failed to initialize.
|
|
76
|
+
*
|
|
77
|
+
* The verdict is `'dead'` only when all of the following hold: the grace window
|
|
78
|
+
* has elapsed, `window.app` is still undefined, the document is `'complete'`,
|
|
79
|
+
* and `<body>` is empty. This is exactly the observed incompatible-shell state
|
|
80
|
+
* (an asar that cannot run on the launched Electron), and it cannot be reached
|
|
81
|
+
* by a healthy boot — `window.app` is defined early, and a slow boot renders a
|
|
82
|
+
* non-empty loading shell — so there is no false-positive path on a valid boot.
|
|
83
|
+
*
|
|
84
|
+
* @param params - The sampled observation plus whether the grace has elapsed.
|
|
85
|
+
* @returns `'dead'` when the renderer is terminally dead, otherwise `'pending'`.
|
|
86
|
+
*/
|
|
87
|
+
export declare function resolveRendererBootState(params: ResolveRendererBootStateParams): RendererBootVerdict;
|
|
@@ -38,4 +38,4 @@ class RendererFailedToInitializeError extends Error {
|
|
|
38
38
|
0 && (module.exports = {
|
|
39
39
|
RendererFailedToInitializeError
|
|
40
40
|
});
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3JlbmRlcmVyLWZhaWxlZC10by1pbml0aWFsaXplLWVycm9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIGRpc3RpbmN0IGVycm9yIHRocm93biB3aGVuIHRoZSBvd25lZCBPYnNpZGlhbiByZW5kZXJlciB0ZXJtaW5hbGx5IGZhaWxzIHRvXG4gKiBpbml0aWFsaXplIFx1MjAxNCB0aGUgYXNhciBjb3VsZCBub3QgcnVuIG9uIHRoZSBsYXVuY2hlZCBFbGVjdHJvbiBzaGVsbCAodGhlXG4gKiBpbnN0YWxsZXIvRWxlY3Ryb24gdmVyc2lvbiBpcyB0b28gb2xkIGZvciB0aGUgT2JzaWRpYW4gYXBwIHZlcnNpb24pLiBJdCBpc1xuICogZXhwb3J0ZWQgc28gY2FsbGVycyBvZiBgY29ubmVjdFRvQ2RwYCAvIHRoZSB0cmFuc3BvcnQgY2FuIGBpbnN0YW5jZW9mYC1tYXRjaFxuICogdGhpcyBzcGVjaWZpYyBmYWlsdXJlIGFuZCBkaXN0aW5ndWlzaCBpdCBmcm9tIGEgZ2VuZXJpYyByZWFkaW5lc3MgdGltZW91dC5cbiAqL1xuXG4vKipcbiAqIFRocm93biB3aGVuIHRoZSBvd25lZCBPYnNpZGlhbiByZW5kZXJlciBsb2FkcyBidXQgbmV2ZXIgYm9vdHN0cmFwcyB0aGUgYXBwIFx1MjAxNFxuICogYW4gZW1wdHkgYDxib2R5PmAgd2l0aCBubyBgd2luZG93LmFwcGAgYWZ0ZXIgdGhlIGJvb3QgZ3JhY2Ugd2luZG93IChzZWVcbiAqIGByZXNvbHZlUmVuZGVyZXJCb290U3RhdGVgKS4gVGhlIHVzdWFsIGNhdXNlIGlzIGFuIGluc3RhbGxlci9FbGVjdHJvbiBzaGVsbCB0b29cbiAqIG9sZCBmb3IgdGhlIHBpbm5lZCBPYnNpZGlhbiBhcHAgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbmRlcmVyRmFpbGVkVG9Jbml0aWFsaXplRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBlcnJvciBmb3IgYSBzcGVjaWZpYyB2YXVsdC5cbiAgICpcbiAgICogQHBhcmFtIHZhdWx0UGF0aCAtIFRoZSB2YXVsdCB3aG9zZSBvd25lZCByZW5kZXJlciBmYWlsZWQgdG8gaW5pdGlhbGl6ZS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih2YXVsdFBhdGg6IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgYFRoZSBPYnNpZGlhbiByZW5kZXJlciBmb3IgdmF1bHQgJHt2YXVsdFBhdGh9IGRpZCBub3QgaW5pdGlhbGl6ZSBvbiB0aGlzIEVsZWN0cm9uIHNoZWxsLiBgXG4gICAgICAgICsgJ1RoZSBpbnN0YWxsZXIvRWxlY3Ryb24gdmVyc2lvbiBpcyBsaWtlbHkgdG9vIG9sZCBmb3IgdGhpcyBPYnNpZGlhbiBhcHAgdmVyc2lvbi4gJ1xuICAgICAgICArICdQaW4gYSBuZXdlciBvYnNpZGlhbkluc3RhbGxlclZlcnNpb24sIG9yIGFsaWduIG9ic2lkaWFuVmVyc2lvbiB3aXRoIHRoZSBpbnN0YWxsZWQgc2hlbGwuJ1xuICAgICk7XG4gICAgdGhpcy5uYW1lID0gJ1JlbmRlcmVyRmFpbGVkVG9Jbml0aWFsaXplRXJyb3InO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JPLE1BQU0sd0NBQXdDLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNbEQsWUFBWSxXQUFtQjtBQUNwQztBQUFBLE1BQ0UsbUNBQW1DLFNBQVM7QUFBQSxJQUc5QztBQUNBLFNBQUssT0FBTztBQUFBLEVBQ2Q7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
/**
|
|
11
11
|
* Thrown when the owned Obsidian renderer loads but never bootstraps the app —
|
|
12
12
|
* an empty `<body>` with no `window.app` after the boot grace window (see
|
|
13
|
-
* `
|
|
13
|
+
* `resolveRendererBootState`). The usual cause is an installer/Electron shell too
|
|
14
14
|
* old for the pinned Obsidian app version.
|
|
15
15
|
*/
|
|
16
16
|
export declare class RendererFailedToInitializeError extends Error {
|