signalk-container-helper 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/README.md +52 -8
- package/dist/http.d.ts +9 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +10 -1
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/managed-container.d.ts +35 -2
- package/dist/managed-container.d.ts.map +1 -1
- package/dist/managed-container.js +48 -5
- package/dist/managed-container.js.map +1 -1
- package/dist/manager.d.ts +7 -0
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +5 -3
- package/dist/manager.js.map +1 -1
- package/dist/ui/hooks.d.ts.map +1 -1
- package/dist/ui/hooks.js +1 -1
- package/dist/ui/hooks.js.map +1 -1
- package/dist/util.d.ts +17 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +20 -0
- package/dist/util.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,56 @@
|
|
|
1
|
+
# v0.4.0
|
|
2
|
+
|
|
3
|
+
- **`start()` and `applyUpdate()` accept an `AbortSignal`** via a new optional
|
|
4
|
+
`OperationOptions` argument. (`stop()` does not: it has nothing cancellable,
|
|
5
|
+
so accepting one would promise what it cannot deliver.) An aborted operation rejects with
|
|
6
|
+
`ContainerHelperError` code `cancelled`, flagged `reported` so `startSafely`
|
|
7
|
+
logs it rather than surfacing a plugin error for a stop the caller asked for.
|
|
8
|
+
|
|
9
|
+
Cancellation is **cooperative**: signalk-container's `ensureRunning`,
|
|
10
|
+
`recreate` and `stop` take no signal (only its one-off job API does), so a
|
|
11
|
+
call already in flight runs to completion. The signal cancels everything
|
|
12
|
+
around it — the manager-global wait, the drift probe, readiness polling, and
|
|
13
|
+
each step boundary. Those are the waits with minute-scale deadlines, and
|
|
14
|
+
cancelling them is what stops an abandoned start from continuing to work
|
|
15
|
+
against a container the caller has already torn down.
|
|
16
|
+
|
|
17
|
+
`waitForContainerManager` and `waitForHttpReady` take a `signal` too, so
|
|
18
|
+
their poll loops exit promptly instead of running out their full budget.
|
|
19
|
+
An aborted `waitForHttpReady` throws an `AbortError` (a `DOMException`,
|
|
20
|
+
matching what `fetch` itself throws) rather than its deadline error — a
|
|
21
|
+
caller that cancelled must be able to tell "I stopped this" from "the app
|
|
22
|
+
never came up", or a container it deliberately tore down surfaces a
|
|
23
|
+
readiness failure.
|
|
24
|
+
|
|
25
|
+
- **Lifecycle operations are serialized per `ManagedContainer`.** An
|
|
26
|
+
overlapping `start` and `stop` — a plugin restarted while its first start is
|
|
27
|
+
still waiting on readiness — now queue instead of interleaving, so `stop`
|
|
28
|
+
cannot land between `ensureRunning` and the readiness poll and leave the
|
|
29
|
+
plugin believing it started something it just removed. Callers that already
|
|
30
|
+
hold their own lifecycle lock see no behaviour change.
|
|
31
|
+
|
|
32
|
+
Every consumer plugin had built this itself; it belongs in the library.
|
|
33
|
+
|
|
34
|
+
# v0.3.1
|
|
35
|
+
|
|
36
|
+
Maintenance release. One small change reaches the published package; the rest of
|
|
37
|
+
the work since 0.3.0 was tooling and documentation that does not ship.
|
|
38
|
+
|
|
39
|
+
- **`useStatusPoll` schedules its repeat poll through an explicit void wrapper** —
|
|
40
|
+
`setTimeout(poll, intervalMs)` became `setTimeout(() => void poll(), intervalMs)`.
|
|
41
|
+
Behaviour is unchanged: the surrounding effect already handled the async
|
|
42
|
+
correctly, with `void` on the initial call, a `cancelled` guard before
|
|
43
|
+
rescheduling, and `AbortController.abort()` on cleanup. This makes the
|
|
44
|
+
intent explicit rather than fixing a live defect, and satisfies
|
|
45
|
+
`@typescript-eslint/no-misused-promises`
|
|
46
|
+
- **`fetchWithTimeout` drops an unnecessary `fetch as unknown as FetchLike`
|
|
47
|
+
double assertion** — `fetch` already satisfies `FetchLike`. Type-only change;
|
|
48
|
+
the emitted JavaScript is byte-identical
|
|
49
|
+
- Internal, not shipped: eslint moved to the type-checked tier, which is what
|
|
50
|
+
surfaced both items above; `package-lock.json` is no longer committed (CI
|
|
51
|
+
generates one per run, matching the signalk-server pattern); `AGENTS.md` and
|
|
52
|
+
`CLAUDE.md` document the repo's conventions and release process
|
|
53
|
+
|
|
1
54
|
# v0.3.0
|
|
2
55
|
|
|
3
56
|
- **Node floor lowered to `>=22`** (was `>=24`) — nothing in the library ever required Node 24: the main entry imports no Node builtins at all, and the only runtime globals it touches (`fetch`, `AbortController`, a plain `setTimeout`-based timeout in `fetchWithTimeout`, `URL`, `globalThis`) predate Node 22 comfortably. There is no `AbortSignal.any()` / `AbortSignal.timeout()`, no `node:sqlite`, and the compiler targets ES2023. The old floor was a policy value that consumers — Signal K plugins, which inherit their host server's Node — had to satisfy for no technical reason. This is a **minor**, not a patch: it widens the supported range and takes nothing away, so Node 24 consumers are unaffected
|
package/README.md
CHANGED
|
@@ -440,6 +440,7 @@ Adopt these even where you don't use the components:
|
|
|
440
440
|
| `waitForHttpReady(url, opts)` | Poll until 2xx or deadline (throws) |
|
|
441
441
|
| `probeHttpHealth(url, opts)` | Retrying liveness probe with slow-response detection (never throws) |
|
|
442
442
|
| `fetchWithTimeout(url, opts)` | `fetch` with an `AbortController` timeout |
|
|
443
|
+
| `throwIfAborted(signal)` | Throw `ContainerHelperError` `cancelled` if the signal has fired — the check the lifecycle methods run between steps |
|
|
443
444
|
| `startSafely(app, fn)` | Sync wrapper for async plugin startup — Signal K does not await `start()` |
|
|
444
445
|
| `isValidImageTag(tag)` | Tag guard (`IMAGE_TAG_PATTERN`) |
|
|
445
446
|
| `errMsg(err)` | Normalize unknown errors to strings |
|
|
@@ -450,18 +451,61 @@ Adopt these even where you don't use the components:
|
|
|
450
451
|
|
|
451
452
|
`ContainerHelperError.code` values thrown by `start()` / `applyUpdate()`:
|
|
452
453
|
|
|
453
|
-
| Code | Meaning
|
|
454
|
-
| --------------------- |
|
|
455
|
-
| `manager-unavailable` | signalk-container never published its API within the budget
|
|
456
|
-
| `no-runtime` | Manager present, but no podman/docker was detected
|
|
457
|
-
| `invalid-tag` | Tag failed the `IMAGE_TAG_PATTERN` guard
|
|
458
|
-
| `address-unresolved` | No host:port could be found for the readiness port
|
|
459
|
-
| `not-ready` | The app never answered its health URL before the deadline
|
|
460
|
-
| `recreate-limbo` | Legacy update path removed the container but recreation failed — retry applies
|
|
454
|
+
| Code | Meaning |
|
|
455
|
+
| --------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
456
|
+
| `manager-unavailable` | signalk-container never published its API within the budget |
|
|
457
|
+
| `no-runtime` | Manager present, but no podman/docker was detected |
|
|
458
|
+
| `invalid-tag` | Tag failed the `IMAGE_TAG_PATTERN` guard |
|
|
459
|
+
| `address-unresolved` | No host:port could be found for the readiness port |
|
|
460
|
+
| `not-ready` | The app never answered its health URL before the deadline |
|
|
461
|
+
| `recreate-limbo` | Legacy update path removed the container but recreation failed — retry applies |
|
|
462
|
+
| `cancelled` | The `AbortSignal` passed to the operation fired (see [Cancelling an operation](#cancelling-an-operation)) |
|
|
461
463
|
|
|
462
464
|
All errors thrown by the helpers have already been surfaced through
|
|
463
465
|
`app.setPluginError` (`reported: true`), so `startSafely` won't report them twice.
|
|
464
466
|
|
|
467
|
+
### Cancelling an operation
|
|
468
|
+
|
|
469
|
+
`start()` and `applyUpdate()` take an optional second argument carrying an
|
|
470
|
+
`AbortSignal`:
|
|
471
|
+
|
|
472
|
+
```ts
|
|
473
|
+
const abort = new AbortController();
|
|
474
|
+
|
|
475
|
+
// in start():
|
|
476
|
+
startSafely(app, () =>
|
|
477
|
+
container.start(settings.imageTag, { signal: abort.signal }),
|
|
478
|
+
);
|
|
479
|
+
|
|
480
|
+
// in stop():
|
|
481
|
+
abort.abort(); // unblocks an in-flight start
|
|
482
|
+
await container.stop();
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
`stop()` takes no signal: it has nothing cancellable — an unregister call and
|
|
486
|
+
one uninterruptible `manager.stop` — so accepting one would promise what it
|
|
487
|
+
cannot deliver. It is still serialized against the other operations.
|
|
488
|
+
|
|
489
|
+
An aborted operation rejects with `ContainerHelperError` code `cancelled`,
|
|
490
|
+
already flagged `reported`, so `startSafely` logs it at debug rather than
|
|
491
|
+
putting a plugin error on screen for something you asked for.
|
|
492
|
+
|
|
493
|
+
**Cancellation is cooperative, not pre-emptive.** signalk-container's
|
|
494
|
+
`ensureRunning`, `recreate` and `stop` take no signal — only its one-off job
|
|
495
|
+
API does — so a call already in flight runs to completion. What the signal
|
|
496
|
+
cancels is everything around it: waiting for the manager global, the drift
|
|
497
|
+
probe, readiness polling, and each step boundary. That is where the time
|
|
498
|
+
actually goes, since those are the polls with deadlines measured in minutes,
|
|
499
|
+
and it is what stops an abandoned start from continuing to work against a
|
|
500
|
+
container you have already torn down.
|
|
501
|
+
|
|
502
|
+
Operations are also **serialized per instance**. An overlapping `start` and
|
|
503
|
+
`stop` — a plugin restarted while its first start is still waiting on
|
|
504
|
+
readiness — queue rather than interleave, so `stop` can no longer land between
|
|
505
|
+
`ensureRunning` and the readiness poll and leave the plugin believing it
|
|
506
|
+
started something it just removed. Callers that already hold their own
|
|
507
|
+
lifecycle lock see no change.
|
|
508
|
+
|
|
465
509
|
### Version compatibility
|
|
466
510
|
|
|
467
511
|
The helpers feature-detect newer signalk-container capabilities:
|
package/dist/http.d.ts
CHANGED
|
@@ -30,6 +30,15 @@ export interface WaitForHttpReadyOptions {
|
|
|
30
30
|
/** Per-request timeout. Default 2_000. */
|
|
31
31
|
requestTimeoutMs?: number;
|
|
32
32
|
fetchImpl?: FetchLike;
|
|
33
|
+
/**
|
|
34
|
+
* Stops polling when aborted, throwing an `AbortError` (a `DOMException`,
|
|
35
|
+
* matching what `fetch` itself throws) rather than the deadline error — a
|
|
36
|
+
* caller that cancelled must be able to tell "I stopped this" from "the app
|
|
37
|
+
* never came up". Without it, a caller that has given up still waits out
|
|
38
|
+
* the full `maxMs`: up to a minute of pointless requests against a
|
|
39
|
+
* container it is about to stop.
|
|
40
|
+
*/
|
|
41
|
+
signal?: AbortSignal;
|
|
33
42
|
}
|
|
34
43
|
/**
|
|
35
44
|
* Poll a URL until it answers 2xx, or throw when the deadline passes.
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,KACpD,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CAUpE;AAED,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,KACpD,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CAUpE;AAED,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,iBAAiB,CAAC,CA0B5B"}
|
package/dist/http.js
CHANGED
|
@@ -21,10 +21,17 @@ export async function fetchWithTimeout(url, options = {}) {
|
|
|
21
21
|
* containerized app's own health endpoint after ensureRunning.
|
|
22
22
|
*/
|
|
23
23
|
export async function waitForHttpReady(url, options = {}) {
|
|
24
|
-
const { maxMs = 60_000, intervalMs = 1_000, requestTimeoutMs = 2_000, fetchImpl, } = options;
|
|
24
|
+
const { maxMs = 60_000, intervalMs = 1_000, requestTimeoutMs = 2_000, fetchImpl, signal, } = options;
|
|
25
25
|
const deadline = Date.now() + maxMs;
|
|
26
26
|
let lastErr;
|
|
27
|
+
// Aborting must NOT fall through to the deadline message below: a caller
|
|
28
|
+
// that cancelled needs to tell "I stopped this" from "the app never came
|
|
29
|
+
// up", and reporting the latter would put a readiness failure on screen for
|
|
30
|
+
// a container it deliberately tore down.
|
|
31
|
+
const aborted = () => new DOMException(`Readiness polling aborted for ${url}${lastErr === undefined ? "" : ` (last error: ${errMsg(lastErr)})`}`, "AbortError");
|
|
27
32
|
for (;;) {
|
|
33
|
+
if (signal?.aborted)
|
|
34
|
+
throw aborted();
|
|
28
35
|
try {
|
|
29
36
|
const res = await fetchWithTimeout(url, {
|
|
30
37
|
timeoutMs: requestTimeoutMs,
|
|
@@ -37,6 +44,8 @@ export async function waitForHttpReady(url, options = {}) {
|
|
|
37
44
|
catch (err) {
|
|
38
45
|
lastErr = err;
|
|
39
46
|
}
|
|
47
|
+
if (signal?.aborted)
|
|
48
|
+
throw aborted();
|
|
40
49
|
if (Date.now() >= deadline)
|
|
41
50
|
break;
|
|
42
51
|
await sleep(intervalMs);
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAe1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,UAAmC,EAAE;IAErC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3D,MAAM,IAAI,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,13 +2,13 @@ export * from "./types.js";
|
|
|
2
2
|
export { getContainerManager, waitForContainerManager } from "./manager.js";
|
|
3
3
|
export type { WaitForManagerOptions, ManagerWaitResult } from "./manager.js";
|
|
4
4
|
export { ManagedContainer } from "./managed-container.js";
|
|
5
|
-
export type { ManagedContainerOptions, ManagedUpdateOptions, ReadinessOptions, StartResult, RouterLike, ResponseLike, UpdateRoutesOptions, } from "./managed-container.js";
|
|
5
|
+
export type { ManagedContainerOptions, ManagedUpdateOptions, ReadinessOptions, StartResult, RouterLike, ResponseLike, UpdateRoutesOptions, OperationOptions, } from "./managed-container.js";
|
|
6
6
|
export { AdoptedContainer } from "./adopted-container.js";
|
|
7
7
|
export type { AdoptedContainerOptions } from "./adopted-container.js";
|
|
8
8
|
export { buildVersionSource } from "./version-source.js";
|
|
9
9
|
export type { VersionSourceSpec } from "./version-source.js";
|
|
10
10
|
export { fetchWithTimeout, waitForHttpReady, probeHttpHealth } from "./http.js";
|
|
11
11
|
export type { FetchLike, FetchWithTimeoutOptions, WaitForHttpReadyOptions, ProbeHttpHealthOptions, HealthProbeResult, } from "./http.js";
|
|
12
|
-
export { startSafely, errMsg, isValidImageTag, IMAGE_TAG_PATTERN, ContainerHelperError, } from "./util.js";
|
|
12
|
+
export { startSafely, throwIfAborted, errMsg, isValidImageTag, IMAGE_TAG_PATTERN, ContainerHelperError, } from "./util.js";
|
|
13
13
|
export type { ContainerHelperErrorCode } from "./util.js";
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5E,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5E,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAChF,YAAY,EACV,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,5 +4,5 @@ export { ManagedContainer } from "./managed-container.js";
|
|
|
4
4
|
export { AdoptedContainer } from "./adopted-container.js";
|
|
5
5
|
export { buildVersionSource } from "./version-source.js";
|
|
6
6
|
export { fetchWithTimeout, waitForHttpReady, probeHttpHealth } from "./http.js";
|
|
7
|
-
export { startSafely, errMsg, isValidImageTag, IMAGE_TAG_PATTERN, ContainerHelperError, } from "./util.js";
|
|
7
|
+
export { startSafely, throwIfAborted, errMsg, isValidImageTag, IMAGE_TAG_PATTERN, ContainerHelperError, } from "./util.js";
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAW1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAQhF,OAAO,EACL,WAAW,EACX,cAAc,EACd,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
|
|
@@ -65,6 +65,24 @@ export interface ManagedContainerOptions {
|
|
|
65
65
|
/** Injectable fetch for tests. */
|
|
66
66
|
fetchImpl?: FetchLike;
|
|
67
67
|
}
|
|
68
|
+
/** Per-call options shared by the long-running lifecycle operations. */
|
|
69
|
+
export interface OperationOptions {
|
|
70
|
+
/**
|
|
71
|
+
* Cancels the operation.
|
|
72
|
+
*
|
|
73
|
+
* **Cooperative, not pre-emptive.** signalk-container's `ensureRunning`,
|
|
74
|
+
* `recreate` and `stop` take no signal — only its one-off job API does — so
|
|
75
|
+
* a call already in flight runs to completion. What this cancels is
|
|
76
|
+
* everything around it: waiting for the manager global, the drift probe,
|
|
77
|
+
* readiness polling, and each step boundary. In practice that is where the
|
|
78
|
+
* time goes, since those are the polls with deadlines measured in minutes.
|
|
79
|
+
*
|
|
80
|
+
* Aborted operations reject with `ContainerHelperError` code `"cancelled"`,
|
|
81
|
+
* already flagged as reported so `startSafely` logs it rather than putting
|
|
82
|
+
* a plugin error on screen for something the caller asked for.
|
|
83
|
+
*/
|
|
84
|
+
signal?: AbortSignal;
|
|
85
|
+
}
|
|
68
86
|
export interface StartResult {
|
|
69
87
|
manager: ContainerManagerApi;
|
|
70
88
|
/** The resolved tag that was started. */
|
|
@@ -104,7 +122,19 @@ export declare class ManagedContainer {
|
|
|
104
122
|
/** "http://host:port" once readiness resolved an address. */
|
|
105
123
|
address: string | null;
|
|
106
124
|
private updatesRegistered;
|
|
125
|
+
/**
|
|
126
|
+
* Serializes the lifecycle operations. Without it an overlapping
|
|
127
|
+
* start/stop — a plugin restarted while its first start is still waiting on
|
|
128
|
+
* readiness — interleaves ensureRunning and stop against the same container.
|
|
129
|
+
* Every consumer plugin had built its own lock for this; it belongs here.
|
|
130
|
+
*/
|
|
131
|
+
private chain;
|
|
107
132
|
constructor(options: ManagedContainerOptions);
|
|
133
|
+
/**
|
|
134
|
+
* Queue `fn` behind any operation already in flight. Both settlement paths
|
|
135
|
+
* advance the chain, so one rejection cannot wedge every later call.
|
|
136
|
+
*/
|
|
137
|
+
private serialize;
|
|
108
138
|
private get app();
|
|
109
139
|
private status;
|
|
110
140
|
private fail;
|
|
@@ -145,7 +175,8 @@ export declare class ManagedContainer {
|
|
|
145
175
|
* (already reported via setPluginError) on fatal conditions; pair with
|
|
146
176
|
* `startSafely` in a synchronous plugin.start().
|
|
147
177
|
*/
|
|
148
|
-
start(tag?: string): Promise<StartResult>;
|
|
178
|
+
start(tag?: string, options?: OperationOptions): Promise<StartResult>;
|
|
179
|
+
private startInner;
|
|
149
180
|
private registerUpdates;
|
|
150
181
|
private awaitReadiness;
|
|
151
182
|
/**
|
|
@@ -162,6 +193,7 @@ export declare class ManagedContainer {
|
|
|
162
193
|
* instantly without a pull. Never throws.
|
|
163
194
|
*/
|
|
164
195
|
stop(): Promise<void>;
|
|
196
|
+
private stopInner;
|
|
165
197
|
/**
|
|
166
198
|
* Apply a new tag now ("Update now" UX): recreate when available
|
|
167
199
|
* (signalk-container 1.12.0+), otherwise the legacy
|
|
@@ -172,9 +204,10 @@ export declare class ManagedContainer {
|
|
|
172
204
|
* Returns the resolved tag. When readiness is configured the address is
|
|
173
205
|
* re-resolved afterwards (non-fatal on failure).
|
|
174
206
|
*/
|
|
175
|
-
applyUpdate(tag: string): Promise<{
|
|
207
|
+
applyUpdate(tag: string, options?: OperationOptions): Promise<{
|
|
176
208
|
tag: string;
|
|
177
209
|
}>;
|
|
210
|
+
private applyUpdateInner;
|
|
178
211
|
/** updates.checkOne — null when the manager is unavailable. */
|
|
179
212
|
checkForUpdate(): Promise<UpdateCheckResult | null>;
|
|
180
213
|
/** Container state; 'no-runtime' when the manager is unavailable. Never throws. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-container.d.ts","sourceRoot":"","sources":["../src/managed-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,eAAe,EAEf,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-container.d.ts","sourceRoot":"","sources":["../src/managed-container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getContainerManager, waitForContainerManager } from "./manager.js";
|
|
2
2
|
import { buildVersionSource, } from "./version-source.js";
|
|
3
3
|
import { waitForHttpReady } from "./http.js";
|
|
4
|
-
import { ContainerHelperError, errMsg, isValidImageTag } from "./util.js";
|
|
4
|
+
import { ContainerHelperError, errMsg, isValidImageTag, throwIfAborted, } from "./util.js";
|
|
5
5
|
/**
|
|
6
6
|
* Full lifecycle wrapper for a plugin-owned ("managed") container — the
|
|
7
7
|
* signalk-backup / mayara archetype. One instance per container.
|
|
@@ -15,9 +15,25 @@ export class ManagedContainer {
|
|
|
15
15
|
/** "http://host:port" once readiness resolved an address. */
|
|
16
16
|
address = null;
|
|
17
17
|
updatesRegistered = false;
|
|
18
|
+
/**
|
|
19
|
+
* Serializes the lifecycle operations. Without it an overlapping
|
|
20
|
+
* start/stop — a plugin restarted while its first start is still waiting on
|
|
21
|
+
* readiness — interleaves ensureRunning and stop against the same container.
|
|
22
|
+
* Every consumer plugin had built its own lock for this; it belongs here.
|
|
23
|
+
*/
|
|
24
|
+
chain = Promise.resolve();
|
|
18
25
|
constructor(options) {
|
|
19
26
|
this.options = options;
|
|
20
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Queue `fn` behind any operation already in flight. Both settlement paths
|
|
30
|
+
* advance the chain, so one rejection cannot wedge every later call.
|
|
31
|
+
*/
|
|
32
|
+
serialize(fn) {
|
|
33
|
+
const run = this.chain.then(fn, fn);
|
|
34
|
+
this.chain = run.then(() => undefined, () => undefined);
|
|
35
|
+
return run;
|
|
36
|
+
}
|
|
21
37
|
get app() {
|
|
22
38
|
return this.options.app;
|
|
23
39
|
}
|
|
@@ -97,17 +113,23 @@ export class ManagedContainer {
|
|
|
97
113
|
* (already reported via setPluginError) on fatal conditions; pair with
|
|
98
114
|
* `startSafely` in a synchronous plugin.start().
|
|
99
115
|
*/
|
|
100
|
-
async start(tag) {
|
|
116
|
+
async start(tag, options) {
|
|
117
|
+
return this.serialize(() => this.startInner(tag, options?.signal));
|
|
118
|
+
}
|
|
119
|
+
async startInner(tag, signal) {
|
|
101
120
|
const { name, image, buildConfig, ensureOptions, managerTimeoutMs = 120_000, managerPollIntervalMs = 500, } = this.options;
|
|
121
|
+
throwIfAborted(signal);
|
|
102
122
|
this.status("Waiting for signalk-container plugin...");
|
|
103
123
|
const { manager, runtime } = await waitForContainerManager({
|
|
104
124
|
timeoutMs: managerTimeoutMs,
|
|
105
125
|
intervalMs: managerPollIntervalMs,
|
|
126
|
+
signal,
|
|
106
127
|
onWaiting: (phase) => {
|
|
107
128
|
if (phase === "runtime")
|
|
108
129
|
this.status("Waiting for container runtime detection...");
|
|
109
130
|
},
|
|
110
131
|
});
|
|
132
|
+
throwIfAborted(signal);
|
|
111
133
|
if (!manager) {
|
|
112
134
|
this.fail("manager-unavailable", `signalk-container plugin not available after ${Math.round(managerTimeoutMs / 1000)}s. Install and enable it, then restart this plugin.`);
|
|
113
135
|
}
|
|
@@ -125,6 +147,7 @@ export class ManagedContainer {
|
|
|
125
147
|
if (typeof manager.recreate === "function") {
|
|
126
148
|
try {
|
|
127
149
|
const found = this.matchInfo(await manager.listContainers());
|
|
150
|
+
throwIfAborted(signal);
|
|
128
151
|
if (found && found.image !== desiredImage) {
|
|
129
152
|
this.status(`Recreating ${found.image} → ${desiredImage}...`);
|
|
130
153
|
await manager.recreate(name, config, ensureOptions);
|
|
@@ -132,18 +155,26 @@ export class ManagedContainer {
|
|
|
132
155
|
}
|
|
133
156
|
}
|
|
134
157
|
catch (probeErr) {
|
|
158
|
+
// A cancellation is not a probe failure — it must propagate, or the
|
|
159
|
+
// abandoned start would fall through and ensureRunning anyway.
|
|
160
|
+
if (probeErr instanceof ContainerHelperError &&
|
|
161
|
+
probeErr.code === "cancelled") {
|
|
162
|
+
throw probeErr;
|
|
163
|
+
}
|
|
135
164
|
this.app.debug(`self-heal probe failed (non-fatal): ${errMsg(probeErr)}`);
|
|
136
165
|
}
|
|
137
166
|
}
|
|
138
167
|
if (!reconciled) {
|
|
168
|
+
throwIfAborted(signal);
|
|
139
169
|
this.status(`Starting ${desiredImage}...`);
|
|
140
170
|
await manager.ensureRunning(name, config, ensureOptions);
|
|
141
171
|
}
|
|
172
|
+
throwIfAborted(signal);
|
|
142
173
|
this.lastStartedTag = resolved;
|
|
143
174
|
this.registerUpdates(manager);
|
|
144
175
|
this.address = null;
|
|
145
176
|
if (this.options.readiness) {
|
|
146
|
-
this.address = await this.awaitReadiness(resolved);
|
|
177
|
+
this.address = await this.awaitReadiness(resolved, signal);
|
|
147
178
|
}
|
|
148
179
|
return { manager, tag: resolved, address: this.address };
|
|
149
180
|
}
|
|
@@ -169,7 +200,7 @@ export class ManagedContainer {
|
|
|
169
200
|
this.app.debug(`updates.register failed (non-fatal): ${errMsg(err)}`);
|
|
170
201
|
}
|
|
171
202
|
}
|
|
172
|
-
async awaitReadiness(tag) {
|
|
203
|
+
async awaitReadiness(tag, signal) {
|
|
173
204
|
const readiness = this.options.readiness;
|
|
174
205
|
const addr = await this.resolveAddress(readiness.port);
|
|
175
206
|
if (!addr) {
|
|
@@ -184,9 +215,14 @@ export class ManagedContainer {
|
|
|
184
215
|
intervalMs: readiness.intervalMs,
|
|
185
216
|
requestTimeoutMs: readiness.requestTimeoutMs,
|
|
186
217
|
fetchImpl: this.options.fetchImpl,
|
|
218
|
+
signal,
|
|
187
219
|
});
|
|
188
220
|
}
|
|
189
221
|
catch (err) {
|
|
222
|
+
// A cancelled readiness wait is not a readiness failure — reporting it
|
|
223
|
+
// as one would put "never became ready" in the plugin error box for a
|
|
224
|
+
// container the caller deliberately abandoned.
|
|
225
|
+
throwIfAborted(signal);
|
|
190
226
|
this.fail("not-ready", `${this.options.image}:${tag} started but ${url} never became ready: ${errMsg(err)}`);
|
|
191
227
|
}
|
|
192
228
|
return base;
|
|
@@ -232,6 +268,9 @@ export class ManagedContainer {
|
|
|
232
268
|
* instantly without a pull. Never throws.
|
|
233
269
|
*/
|
|
234
270
|
async stop() {
|
|
271
|
+
return this.serialize(() => this.stopInner());
|
|
272
|
+
}
|
|
273
|
+
async stopInner() {
|
|
235
274
|
this.address = null;
|
|
236
275
|
const manager = this.manager ?? getContainerManager();
|
|
237
276
|
if (!manager)
|
|
@@ -262,7 +301,11 @@ export class ManagedContainer {
|
|
|
262
301
|
* Returns the resolved tag. When readiness is configured the address is
|
|
263
302
|
* re-resolved afterwards (non-fatal on failure).
|
|
264
303
|
*/
|
|
265
|
-
async applyUpdate(tag) {
|
|
304
|
+
async applyUpdate(tag, options) {
|
|
305
|
+
return this.serialize(() => this.applyUpdateInner(tag, options?.signal));
|
|
306
|
+
}
|
|
307
|
+
async applyUpdateInner(tag, signal) {
|
|
308
|
+
throwIfAborted(signal);
|
|
266
309
|
const manager = this.requireManager();
|
|
267
310
|
const resolved = this.resolveTag(tag);
|
|
268
311
|
const { name, image, buildConfig, ensureOptions } = this.options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-container.js","sourceRoot":"","sources":["../src/managed-container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"managed-container.js","sourceRoot":"","sources":["../src/managed-container.ts"],"names":[],"mappings":"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"}
|
package/dist/manager.d.ts
CHANGED
|
@@ -13,6 +13,13 @@ export interface WaitForManagerOptions {
|
|
|
13
13
|
intervalMs?: number;
|
|
14
14
|
/** Progress callback, e.g. to update the plugin status line per phase. */
|
|
15
15
|
onWaiting?: (phase: "manager" | "runtime") => void;
|
|
16
|
+
/**
|
|
17
|
+
* Abandons the wait when aborted, returning what has been found so far
|
|
18
|
+
* rather than throwing — the caller decides whether an abort is an error.
|
|
19
|
+
* Without it, a plugin stopped during startup keeps polling for the manager
|
|
20
|
+
* until the full timeout elapses.
|
|
21
|
+
*/
|
|
22
|
+
signal?: AbortSignal;
|
|
16
23
|
}
|
|
17
24
|
export interface ManagerWaitResult {
|
|
18
25
|
/**
|
package/dist/manager.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG5E;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,GAAG,SAAS,CAErE;AAED,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAG5E;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,GAAG,SAAS,CAErE;AAED,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACzC;;;;;OAKG;IACH,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACtC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAgC5B"}
|
package/dist/manager.js
CHANGED
|
@@ -21,10 +21,10 @@ export function getContainerManager() {
|
|
|
21
21
|
* Never throws; inspect the result to pick the right error message.
|
|
22
22
|
*/
|
|
23
23
|
export async function waitForContainerManager(options = {}) {
|
|
24
|
-
const { timeoutMs = 60_000, intervalMs = 500, onWaiting } = options;
|
|
24
|
+
const { timeoutMs = 60_000, intervalMs = 500, onWaiting, signal } = options;
|
|
25
25
|
const deadline = Date.now() + timeoutMs;
|
|
26
26
|
let manager = getContainerManager();
|
|
27
|
-
while (!manager && Date.now() < deadline) {
|
|
27
|
+
while (!manager && Date.now() < deadline && !signal?.aborted) {
|
|
28
28
|
onWaiting?.("manager");
|
|
29
29
|
await sleep(intervalMs);
|
|
30
30
|
manager = getContainerManager();
|
|
@@ -40,7 +40,9 @@ export async function waitForContainerManager(options = {}) {
|
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
42
|
// Pre-1.6.0 fallback: poll until detection settles or the deadline hits.
|
|
43
|
-
while (!manager.getRuntime() &&
|
|
43
|
+
while (!manager.getRuntime() &&
|
|
44
|
+
Date.now() < deadline &&
|
|
45
|
+
!signal?.aborted) {
|
|
44
46
|
await sleep(intervalMs);
|
|
45
47
|
}
|
|
46
48
|
}
|
package/dist/manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,0BAA0B,CAAC;AAC/C,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,0BAA0B,CAAC;AAC/C,CAAC;AAiCD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAAiC,EAAE;IAEnC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,UAAU,GAAG,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAExC,IAAI,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACpC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAC7D,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,GAAG,mBAAmB,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAC1B,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;QACvB,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACrD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,OACE,CAAC,OAAO,CAAC,UAAU,EAAE;gBACrB,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;gBACrB,CAAC,MAAM,EAAE,OAAO,EAChB,CAAC;gBACD,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AACpD,CAAC"}
|
package/dist/ui/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/ui/hooks.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,+DAA+D;IAC/D,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EACvC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAiB,CAAC,CAAC,CAAM,GACjC,UAAU,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/ui/hooks.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,+DAA+D;IAC/D,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EACvC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,iBAAiB,CAAC,CAAC,CAAM,GACjC,UAAU,CAAC,CAAC,CAAC,CA2Cf;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA6BtD;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,iFAAiF;IACjF,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,UAAU,CAgEb"}
|
package/dist/ui/hooks.js
CHANGED
|
@@ -44,7 +44,7 @@ export function useStatusPoll(url, options = {}) {
|
|
|
44
44
|
const poll = async () => {
|
|
45
45
|
await fetchOnce(controller.signal);
|
|
46
46
|
if (!cancelled && intervalMs > 0)
|
|
47
|
-
timer = setTimeout(poll, intervalMs);
|
|
47
|
+
timer = setTimeout(() => void poll(), intervalMs);
|
|
48
48
|
};
|
|
49
49
|
void poll();
|
|
50
50
|
return () => {
|
package/dist/ui/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/ui/hooks.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,yEAAyE;AAEzE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAoB,MAAM,eAAe,CAAC;AAuBrE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAW,EACX,UAAgC,EAAE;IAElC,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAW,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,WAAW,CAC3B,KAAK,EAAE,MAAoB,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;QACxB,IAAI,IAAI,GAAa,WAAW,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACzC,MAAM,IAAI,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,IAAI,GAAG,IAAS,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO;YAAE,OAAO;QAC9B,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,GAAyC,IAAI,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,MAAM,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,SAAS,IAAI,UAAU,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/ui/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare function isValidImageTag(tag: unknown): tag is string;
|
|
|
8
8
|
/** Normalize an unknown thrown value into a printable message. */
|
|
9
9
|
export declare function errMsg(err: unknown): string;
|
|
10
10
|
export declare function sleep(ms: number): Promise<void>;
|
|
11
|
-
export type ContainerHelperErrorCode = "manager-unavailable" | "no-runtime" | "invalid-tag" | "address-unresolved" | "not-ready" | "recreate-limbo";
|
|
11
|
+
export type ContainerHelperErrorCode = "manager-unavailable" | "no-runtime" | "invalid-tag" | "address-unresolved" | "not-ready" | "recreate-limbo" | "cancelled";
|
|
12
12
|
/**
|
|
13
13
|
* Typed error thrown by ManagedContainer/AdoptedContainer operations.
|
|
14
14
|
* `reported` is true when the helper already surfaced the message via
|
|
@@ -33,4 +33,20 @@ export declare class ContainerHelperError extends Error {
|
|
|
33
33
|
* not re-reported; everything else lands in `setPluginError`.
|
|
34
34
|
*/
|
|
35
35
|
export declare function startSafely(app: AppLike, fn: () => Promise<unknown>): void;
|
|
36
|
+
/**
|
|
37
|
+
* Throws if `signal` has been aborted.
|
|
38
|
+
*
|
|
39
|
+
* Called after every await inside a long container operation. This is the
|
|
40
|
+
* whole of the helper's cancellation: signalk-container exposes a signal only
|
|
41
|
+
* on its one-off job API, so `ensureRunning`/`recreate`/`stop` cannot be
|
|
42
|
+
* interrupted mid-call. Checking between steps is what stops an abandoned
|
|
43
|
+
* operation from continuing — through the manager-global wait, the drift
|
|
44
|
+
* probe and readiness polling — against a container the caller has already
|
|
45
|
+
* torn down.
|
|
46
|
+
*
|
|
47
|
+
* `reported: true` because a cancellation is the caller's own doing: it asked
|
|
48
|
+
* for the stop. Surfacing "Startup failed: cancelled" in the plugin error box
|
|
49
|
+
* would be noise, so startSafely logs it at debug instead.
|
|
50
|
+
*/
|
|
51
|
+
export declare function throwIfAborted(signal?: AbortSignal): void;
|
|
36
52
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAsB,CAAC;AAErD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAO3D;AAED,kEAAkE;AAClE,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE3C;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,MAAM,MAAM,wBAAwB,GAChC,qBAAqB,GACrB,YAAY,GACZ,aAAa,GACb,oBAAoB,GACpB,WAAW,GACX,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAsB,CAAC;AAErD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAO3D;AAED,kEAAkE;AAClE,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE3C;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,MAAM,MAAM,wBAAwB,GAChC,qBAAqB,GACrB,YAAY,GACZ,aAAa,GACb,oBAAoB,GACpB,WAAW,GACX,gBAAgB,GAChB,WAAW,CAAC;AAEhB;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,EAAE,OAAO,CAAC;gBAGhB,IAAI,EAAE,wBAAwB,EAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,UAAQ;CAOnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAQ1E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAQzD"}
|
package/dist/util.js
CHANGED
|
@@ -53,4 +53,24 @@ export function startSafely(app, fn) {
|
|
|
53
53
|
app.setPluginError(`Startup failed: ${errMsg(err)}`);
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Throws if `signal` has been aborted.
|
|
58
|
+
*
|
|
59
|
+
* Called after every await inside a long container operation. This is the
|
|
60
|
+
* whole of the helper's cancellation: signalk-container exposes a signal only
|
|
61
|
+
* on its one-off job API, so `ensureRunning`/`recreate`/`stop` cannot be
|
|
62
|
+
* interrupted mid-call. Checking between steps is what stops an abandoned
|
|
63
|
+
* operation from continuing — through the manager-global wait, the drift
|
|
64
|
+
* probe and readiness polling — against a container the caller has already
|
|
65
|
+
* torn down.
|
|
66
|
+
*
|
|
67
|
+
* `reported: true` because a cancellation is the caller's own doing: it asked
|
|
68
|
+
* for the stop. Surfacing "Startup failed: cancelled" in the plugin error box
|
|
69
|
+
* would be noise, so startSafely logs it at debug instead.
|
|
70
|
+
*/
|
|
71
|
+
export function throwIfAborted(signal) {
|
|
72
|
+
if (signal?.aborted) {
|
|
73
|
+
throw new ContainerHelperError("cancelled", "Operation cancelled by the caller.", true);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
56
76
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,CAAC,MAAM,GAAG,CAAC;QACd,GAAG,CAAC,MAAM,IAAI,GAAG;QACjB,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,CAAC,MAAM,GAAG,CAAC;QACd,GAAG,CAAC,MAAM,IAAI,GAAG;QACjB,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,MAAM,CAAC,GAAY;IACjC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAWD;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,CAA2B;IACxC,QAAQ,CAAU;IAElB,YACE,IAA8B,EAC9B,OAAe,EACf,QAAQ,GAAG,KAAK;QAEhB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY,EAAE,EAA0B;IAClE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC1B,IAAI,GAAG,YAAY,oBAAoB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,GAAG,CAAC,cAAc,CAAC,mBAAmB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,oBAAoB,CAC5B,WAAW,EACX,oCAAoC,EACpC,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED