signalk-container-helper 0.8.0 → 0.9.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 CHANGED
@@ -329,6 +329,42 @@ const client = new ShimClient(endpoint.baseUrl);
329
329
  transport half of your plugin stops caring which mode it is in. `endpoint.mode`
330
330
  is there for the parts that legitimately differ.
331
331
 
332
+ ### If you drive `ensureRunning` yourself
333
+
334
+ `container` is for plugins that hand their lifecycle to `ManagedContainer`.
335
+ Plenty do not — calling `ensureRunning`/`pullImage`/`stop` directly is a
336
+ perfectly good pattern, and address resolution needs none of that lifecycle.
337
+ Give a `containerName` instead:
338
+
339
+ ```ts
340
+ const endpoint = await resolveEndpoint({
341
+ managed: settings.managedContainer,
342
+ externalUrl: settings.externalUrl,
343
+ containerName: CONTAINER_NAME, // unprefixed
344
+ manager, // optional; defaults to the globalThis one
345
+ port: API_PORT,
346
+ productName: "signalk-tailscale-server",
347
+ debug: (msg) => app.debug(msg),
348
+ });
349
+ ```
350
+
351
+ `endpoint.container` is null in that form. Use `endpoint.mode` to decide
352
+ managed-versus-external behaviour, and null-check `container` separately
353
+ before touching it — `mode === "managed"` does not imply a container is
354
+ there.
355
+
356
+ `resolveContainerEndpoint(manager, name, port, debug?)` is exported on its own
357
+ if you only want the address. It asks the manager first and falls back to
358
+ parsing `listContainers()` port bindings — the resolver's process-local cache
359
+ can go stale after a recreate, and it _throws_ (rather than returning null)
360
+ when the port was declared in `signalkAccessiblePorts` but `ensureRunning()`
361
+ has not run yet. Both are handled; it never throws.
362
+
363
+ It also matches the live container by `unprefixedName`, falling back to any
364
+ `<namespace>-<name>` form. A hand-rolled `sk-<name>` comparison — which is what
365
+ the copies of this logic tended to be — silently finds nothing under a
366
+ non-default `SIGNALK_CONTAINER_NAMESPACE`.
367
+
332
368
  ### Pass the raw config value
333
369
 
334
370
  `managed` is `boolean | undefined`, and **`undefined` means managed**. Signal K
@@ -672,29 +708,31 @@ Adopt these even where you don't use the components:
672
708
 
673
709
  ## API overview
674
710
 
675
- | Export | Purpose |
676
- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
677
- | `ManagedContainer` | Full lifecycle: `start`, `stop`, `applyUpdate`, `checkForUpdate`, `getState`, `getInfo`, `resolveAddress`, `getLogs`, `registerUpdateRoutes` |
678
- | `AdoptedContainer` | Update registration + checks for externally-managed containers |
679
- | `getContainerManager()` | Read the `globalThis.__signalk_containerManager` global |
680
- | `waitForContainerManager(opts)` | Two-phase wait (manager present → runtime settled); returns `{ manager, runtime }` so the two failure modes get distinct messages |
681
- | `resolveMount(manager, opts)` | Translate an absolute host path into a mountable `{ source, containerPath, subPath }` — how you mount **your own** plugin's data dir (see [Mounting your plugin's own data directory](#mounting-your-plugins-own-data-directory)) |
682
- | `resolveEndpoint(opts)` | Resolve the base URL for a managed container or a self-hosted service — pass the RAW `managedContainer` value (`undefined` means managed) |
683
- | `waitForEndpointReady(ep, opts)` | Wait until a resolved endpoint answers 2xx. One attempt unless `retry` is given |
684
- | `isManagedMode(value)` | The `!== false` rule, named — for route guards and status fields |
685
- | `normalizeExternalUrl(raw)` | Normalise operator-typed input into a base URL (scheme defaulted, trailing slash stripped, path discarded); `null` when unusable |
686
- | `managedModeSchema(opts)` | The two config fields as plain JSON Schema + matching defaults (`signalk-container-helper/schema`) |
687
- | `waitForHttpReady(url, opts)` | Poll until 2xx or deadline (throws) |
688
- | `retryForever(fn, opts)` | Retry until success — 15s doubling to a 120s ceiling, no attempt cap. `ManagedContainer` takes it as `readinessRetry`; exported standalone for work this library does not manage |
689
- | `anySignal(signals)` | Compose several `AbortSignal`s into one that aborts when any does (`undefined` when none are given) |
690
- | `probeHttpHealth(url, opts)` | Retrying liveness probe with slow-response detection (never throws) |
691
- | `fetchWithTimeout(url, opts)` | `fetch` with an `AbortController` timeout |
692
- | `throwIfAborted(signal)` | Throw `ContainerHelperError` `cancelled` if the signal has fired — the check the lifecycle methods run between steps |
693
- | `startSafely(app, fn)` | Sync wrapper for async plugin startup — Signal K does not await `start()` |
694
- | `isValidImageTag(tag)` | Tag guard (`IMAGE_TAG_PATTERN`) |
695
- | `errMsg(err)` | Normalize unknown errors to strings |
696
- | `ContainerHelperError` | Typed error with `code` and `reported` |
697
- | Types | Local mirror of signalk-container's public API — `ContainerManagerApi`, `ContainerConfig`, `EnsureRunningOptions`, `UpdateServiceApi`, … — verified at build time against `signalk-container/types` (≥ 1.23.2) so it never silently drifts. Feature-detected members stay optional here. |
711
+ | Export | Purpose |
712
+ | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
713
+ | `ManagedContainer` | Full lifecycle: `start`, `stop`, `applyUpdate`, `checkForUpdate`, `getState`, `getInfo`, `resolveAddress`, `getLogs`, `registerUpdateRoutes` |
714
+ | `AdoptedContainer` | Update registration + checks for externally-managed containers |
715
+ | `getContainerManager()` | Read the `globalThis.__signalk_containerManager` global |
716
+ | `waitForContainerManager(opts)` | Two-phase wait (manager present → runtime settled); returns `{ manager, runtime }` so the two failure modes get distinct messages |
717
+ | `resolveMount(manager, opts)` | Translate an absolute host path into a mountable `{ source, containerPath, subPath }` — how you mount **your own** plugin's data dir (see [Mounting your plugin's own data directory](#mounting-your-plugins-own-data-directory)) |
718
+ | `resolveEndpoint(opts)` | Resolve the base URL for a managed container or a self-hosted service — pass the RAW `managedContainer` value (`undefined` means managed) |
719
+ | `waitForEndpointReady(ep, opts)` | Wait until a resolved endpoint answers 2xx. One attempt unless `retry` is given |
720
+ | `isManagedMode(value)` | The `!== false` rule, named — for route guards and status fields |
721
+ | `resolveContainerEndpoint(manager, name, port, debug?)` | `host:port` for a container port, or null. Resolver first, then `listContainers()` port bindings; never throws |
722
+ | `matchContainerInfo(list, name)` | Find the live container for an unprefixed managed name, honouring `unprefixedName` and any namespace prefix |
723
+ | `normalizeExternalUrl(raw)` | Normalise operator-typed input into a base URL (scheme defaulted, trailing slash stripped, path discarded); `null` when unusable |
724
+ | `managedModeSchema(opts)` | The two config fields as plain JSON Schema + matching defaults (`signalk-container-helper/schema`) |
725
+ | `waitForHttpReady(url, opts)` | Poll until 2xx or deadline (throws) |
726
+ | `retryForever(fn, opts)` | Retry until success — 15s doubling to a 120s ceiling, no attempt cap. `ManagedContainer` takes it as `readinessRetry`; exported standalone for work this library does not manage |
727
+ | `anySignal(signals)` | Compose several `AbortSignal`s into one that aborts when any does (`undefined` when none are given) |
728
+ | `probeHttpHealth(url, opts)` | Retrying liveness probe with slow-response detection (never throws) |
729
+ | `fetchWithTimeout(url, opts)` | `fetch` with an `AbortController` timeout |
730
+ | `throwIfAborted(signal)` | Throw `ContainerHelperError` `cancelled` if the signal has fired — the check the lifecycle methods run between steps |
731
+ | `startSafely(app, fn)` | Sync wrapper for async plugin startup — Signal K does not await `start()` |
732
+ | `isValidImageTag(tag)` | Tag guard (`IMAGE_TAG_PATTERN`) |
733
+ | `errMsg(err)` | Normalize unknown errors to strings |
734
+ | `ContainerHelperError` | Typed error with `code` and `reported` |
735
+ | Types | Local mirror of signalk-container's public API — `ContainerManagerApi`, `ContainerConfig`, `EnsureRunningOptions`, `UpdateServiceApi`, … — verified at build time against `signalk-container/types` (≥ 1.23.2) so it never silently drifts. Feature-detected members stay optional here. |
698
736
 
699
737
  ### Error codes
700
738
 
@@ -1,6 +1,7 @@
1
1
  import type { ManagedContainer } from "./managed-container.js";
2
2
  import type { FetchLike } from "./http.js";
3
3
  import { type RetryForeverOptions } from "./retry.js";
4
+ import type { ContainerManagerApi } from "./types.js";
4
5
  export type EndpointMode = "managed" | "external";
5
6
  export interface ResolvedEndpoint {
6
7
  mode: EndpointMode;
@@ -13,7 +14,14 @@ export interface ResolvedEndpoint {
13
14
  * type keeps the door open for a manager that cannot answer.
14
15
  */
15
16
  address: string | null;
16
- /** The container, in managed mode only — null when self-hosted. */
17
+ /**
18
+ * The ManagedContainer, when one was passed. Null in self-hosted mode, AND
19
+ * in managed mode when the `containerName` form was used.
20
+ *
21
+ * So: use `mode` to decide managed-versus-external behaviour, and null-check
22
+ * this field separately before touching the instance. `mode === "managed"`
23
+ * does not imply a container is here.
24
+ */
17
25
  container: ManagedContainer | null;
18
26
  }
19
27
  export interface ResolveEndpointOptions {
@@ -25,10 +33,31 @@ export interface ResolveEndpointOptions {
25
33
  managed: boolean | undefined;
26
34
  /** Raw operator input; normalised internally. Self-hosted mode only. */
27
35
  externalUrl?: string;
28
- /** Required in managed mode. Pass one that has already been started. */
36
+ /**
37
+ * Managed mode, if you use ManagedContainer. Pass one that has already been
38
+ * started.
39
+ */
29
40
  container?: ManagedContainer;
41
+ /**
42
+ * Managed mode, if you drive `ensureRunning` yourself: the unprefixed
43
+ * container name. Give this instead of `container`.
44
+ *
45
+ * Not every plugin hands its container lifecycle to ManagedContainer — two
46
+ * of the three reference plugins call `ensureRunning`/`pullImage`/`stop`
47
+ * directly — and address resolution needs none of that lifecycle, only a
48
+ * manager and a name.
49
+ */
50
+ containerName?: string;
51
+ /**
52
+ * Manager to resolve against when using `containerName`. Defaults to the
53
+ * `globalThis` one, so a plugin that already waited for it can just pass
54
+ * the name.
55
+ */
56
+ manager?: ContainerManagerApi;
30
57
  /** Container port to resolve in managed mode. */
31
58
  port?: number;
59
+ /** Debug sink for the resolution attempts. */
60
+ debug?: (msg: string) => void;
32
61
  /** Product noun for error copy, e.g. "backup-server". */
33
62
  productName: string;
34
63
  /** Config key named in the empty-URL error. Default "externalUrl". */
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAIpE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mEAAmE;IACnE,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAEnE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAmE3B;AAED,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAInE"}
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;OAOG;IACH,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAEnE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CA6E3B;AAED,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAInE"}
package/dist/endpoint.js CHANGED
@@ -13,6 +13,8 @@ import { waitForHttpReady } from "./http.js";
13
13
  import { retryForever } from "./retry.js";
14
14
  import { ContainerHelperError } from "./util.js";
15
15
  import { normalizeExternalUrl } from "./url.js";
16
+ import { resolveContainerEndpoint } from "./resolve-address.js";
17
+ import { getContainerManager } from "./manager.js";
16
18
  /**
17
19
  * Whether the plugin owns its container's lifecycle.
18
20
  *
@@ -40,7 +42,7 @@ export function isManagedMode(managed) {
40
42
  * retry policy stays a caller decision.
41
43
  */
42
44
  export async function resolveEndpoint(options) {
43
- const { managed, externalUrl, container, port, productName, urlFieldName = "externalUrl", defaultPort, } = options;
45
+ const { managed, externalUrl, container, port, productName, urlFieldName = "externalUrl", defaultPort, containerName, manager, debug, } = options;
44
46
  if (!isManagedMode(managed)) {
45
47
  const normalized = normalizeExternalUrl(externalUrl, { defaultPort });
46
48
  if (!normalized) {
@@ -60,15 +62,17 @@ export async function resolveEndpoint(options) {
60
62
  container: null,
61
63
  };
62
64
  }
63
- if (!container) {
64
- throw new ContainerHelperError("invalid-option", `${productName}: resolveEndpoint requires a ManagedContainer in managed mode.`);
65
+ if (!container && !containerName) {
66
+ throw new ContainerHelperError("invalid-option", `${productName}: resolveEndpoint needs either a ManagedContainer or a containerName in managed mode.`);
65
67
  }
66
68
  if (typeof port !== "number") {
67
69
  throw new ContainerHelperError("invalid-option", `${productName}: resolveEndpoint requires a port in managed mode.`);
68
70
  }
69
- // resolveAddress never throws — it already absorbs the case where
70
- // resolveContainerAddress rejects because ensureRunning has not run yet.
71
- const address = await container.resolveAddress(port);
71
+ // Neither form throws: both absorb the case where resolveContainerAddress
72
+ // rejects because ensureRunning has not run yet.
73
+ const address = container
74
+ ? await container.resolveAddress(port)
75
+ : await resolveContainerEndpoint(manager ?? getContainerManager(), containerName, port, debug);
72
76
  if (!address) {
73
77
  throw new ContainerHelperError("address-unresolved", `Could not resolve address for ${productName} port ${port}. ` +
74
78
  `Declare the port in signalkAccessiblePorts.`);
@@ -77,7 +81,7 @@ export async function resolveEndpoint(options) {
77
81
  mode: "managed",
78
82
  baseUrl: `http://${address}`,
79
83
  address,
80
- container,
84
+ container: container ?? null,
81
85
  };
82
86
  }
83
87
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,6 +16,7 @@ export { fetchWithTimeout, waitForHttpReady, probeHttpHealth } from "./http.js";
16
16
  export { resolveEndpoint, waitForEndpointReady, isManagedMode, describeEndpoint, } from "./endpoint.js";
17
17
  export type { EndpointMode, ResolvedEndpoint, ResolveEndpointOptions, EndpointReadyOptions, } from "./endpoint.js";
18
18
  export { normalizeExternalUrl } from "./url.js";
19
+ export { resolveContainerEndpoint, matchContainerInfo, matchesLegacyName, } from "./resolve-address.js";
19
20
  export type { NormalizeUrlOptions, NormalizedUrl } from "./url.js";
20
21
  export { managedModeSchema } from "./schema.js";
21
22
  export type { JsonSchemaFragment, ManagedModeSchema, ManagedModeSchemaOptions, } from "./schema.js";
@@ -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,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,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,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"}
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,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,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
@@ -9,6 +9,7 @@ export { retryForever, anySignal } from "./retry.js";
9
9
  export { fetchWithTimeout, waitForHttpReady, probeHttpHealth } from "./http.js";
10
10
  export { resolveEndpoint, waitForEndpointReady, isManagedMode, describeEndpoint, } from "./endpoint.js";
11
11
  export { normalizeExternalUrl } from "./url.js";
12
+ export { resolveContainerEndpoint, matchContainerInfo, matchesLegacyName, } from "./resolve-address.js";
12
13
  export { managedModeSchema } from "./schema.js";
13
14
  export { startSafely, throwIfAborted, errMsg, isValidImageTag, IMAGE_TAG_PATTERN, ContainerHelperError, } from "./util.js";
14
15
  //# 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;AAW1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAahD,OAAO,EACL,WAAW,EACX,cAAc,EACd,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,WAAW,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,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAahD,OAAO,EACL,WAAW,EACX,cAAc,EACd,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,WAAW,CAAC"}
@@ -185,7 +185,6 @@ export declare class ManagedContainer {
185
185
  * `unprefixedName`) signalk-container: either the bare name, or
186
186
  * `<namespace>-<name>` where namespace is a single `[a-z0-9]+` token.
187
187
  */
188
- private matchesLegacyName;
189
188
  /**
190
189
  * Full bring-up: wait for the manager and runtime, validate the tag,
191
190
  * self-heal when the live image disagrees with the desired one, reconcile
@@ -1 +1 @@
1
- {"version":3,"file":"managed-container.d.ts","sourceRoot":"","sources":["../src/managed-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managed-container.d.ts","sourceRoot":"","sources":["../src/managed-container.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { getContainerManager, waitForContainerManager } from "./manager.js";
2
2
  import { buildVersionSource, } from "./version-source.js";
3
3
  import { waitForHttpReady } from "./http.js";
4
4
  import { anySignal, retryForever } from "./retry.js";
5
+ import { matchContainerInfo, resolveContainerEndpoint, } from "./resolve-address.js";
5
6
  import { ContainerHelperError, errMsg, isValidImageTag, throwIfAborted, } from "./util.js";
6
7
  /**
7
8
  * Full lifecycle wrapper for a plugin-owned ("managed") container — the
@@ -88,27 +89,13 @@ export class ManagedContainer {
88
89
  * a foreign container like `otherns-app-<name>` would false-match.
89
90
  */
90
91
  matchInfo(list) {
91
- const { name } = this.options;
92
- // Two passes so the reliable key wins regardless of list order: an
93
- // exact unprefixedName match anywhere beats a legacy prefix match.
94
- return (list.find((c) => c.unprefixedName === name) ??
95
- list.find((c) => c.unprefixedName === undefined && this.matchesLegacyName(c.name)));
92
+ return matchContainerInfo(list, this.options.name);
96
93
  }
97
94
  /**
98
95
  * True when `liveName` is this container under a legacy (pre-
99
96
  * `unprefixedName`) signalk-container: either the bare name, or
100
97
  * `<namespace>-<name>` where namespace is a single `[a-z0-9]+` token.
101
98
  */
102
- matchesLegacyName(liveName) {
103
- const { name } = this.options;
104
- if (liveName === name)
105
- return true;
106
- const suffix = `-${name}`;
107
- if (!liveName.endsWith(suffix))
108
- return false;
109
- const prefix = liveName.slice(0, -suffix.length);
110
- return /^[a-z0-9]+$/.test(prefix);
111
- }
112
99
  /**
113
100
  * Full bring-up: wait for the manager and runtime, validate the tag,
114
101
  * self-heal when the live image disagrees with the desired one, reconcile
@@ -260,32 +247,7 @@ export class ManagedContainer {
260
247
  * signalk-backup). Returns null when both fail; never throws.
261
248
  */
262
249
  async resolveAddress(port) {
263
- const manager = this.manager ?? getContainerManager();
264
- if (!manager)
265
- return null;
266
- try {
267
- const answer = await manager.resolveContainerAddress(this.options.name, port);
268
- if (answer)
269
- return answer;
270
- }
271
- catch (err) {
272
- this.app.debug(`resolveContainerAddress failed: ${errMsg(err)}`);
273
- }
274
- try {
275
- const found = this.matchInfo(await manager.listContainers());
276
- const wanted = `->${port}/tcp`;
277
- for (const entry of found?.ports ?? []) {
278
- if (!entry.endsWith(wanted))
279
- continue;
280
- const hostPart = entry.slice(0, -wanted.length);
281
- if (hostPart.includes(":"))
282
- return hostPart;
283
- }
284
- }
285
- catch (err) {
286
- this.app.debug(`listContainers port fallback failed: ${errMsg(err)}`);
287
- }
288
- return null;
250
+ return resolveContainerEndpoint(this.manager ?? getContainerManager(), this.options.name, port, (msg) => this.app.debug(msg));
289
251
  }
290
252
  /**
291
253
  * Teardown for plugin.stop(): unregister from update detection, then stop
@@ -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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"}
@@ -0,0 +1,31 @@
1
+ import type { ContainerInfo, ContainerManagerApi } from "./types.js";
2
+ /**
3
+ * Find the live container for an unprefixed managed name.
4
+ *
5
+ * Two passes so the reliable key wins regardless of list order: an exact
6
+ * `unprefixedName` match anywhere beats a legacy prefix match.
7
+ */
8
+ export declare function matchContainerInfo(list: ContainerInfo[], name: string): ContainerInfo | undefined;
9
+ /**
10
+ * Pre-`unprefixedName` managers reported only the prefixed name, so fall back
11
+ * to matching `<namespace>-<name>` for any lowercase-alphanumeric namespace —
12
+ * NOT a hardcoded `sk-`, which is what breaks under
13
+ * SIGNALK_CONTAINER_NAMESPACE.
14
+ */
15
+ export declare function matchesLegacyName(liveName: string, name: string): boolean;
16
+ /**
17
+ * `host:port` to reach `containerPort` of the named container from the Signal
18
+ * K process, or null when it cannot be determined. Never throws.
19
+ *
20
+ * Asks `resolveContainerAddress` first, then falls back to parsing the port
21
+ * bindings out of `listContainers()`: the resolver's process-local cache can
22
+ * return a stale port after a recreate (seen in production by signalk-backup).
23
+ *
24
+ * `resolveContainerAddress` has three outcomes, and the throw is the one that
25
+ * surprises people — it throws when the port WAS declared in
26
+ * `signalkAccessiblePorts` but `ensureRunning()` has not run yet. Caught here
27
+ * so a caller ordering its startup differently degrades to the fallback
28
+ * instead of failing.
29
+ */
30
+ export declare function resolveContainerEndpoint(manager: ContainerManagerApi | undefined, containerName: string, containerPort: number, debug?: (msg: string) => void): Promise<string | null>;
31
+ //# sourceMappingURL=resolve-address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-address.d.ts","sourceRoot":"","sources":["../src/resolve-address.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGrE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,aAAa,GAAG,SAAS,CAO3B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMzE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,mBAAmB,GAAG,SAAS,EACxC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6BxB"}
@@ -0,0 +1,76 @@
1
+ // Resolving the host:port a container is reachable on.
2
+ //
3
+ // Extracted from ManagedContainer so a plugin that drives `ensureRunning`
4
+ // itself — rather than handing its lifecycle to ManagedContainer — can still
5
+ // share this. Two of the three reference plugins are in that position, and
6
+ // both had hand-rolled a copy; one of those copies hardcoded the `sk-` prefix
7
+ // and so broke under a non-default SIGNALK_CONTAINER_NAMESPACE, which is
8
+ // exactly the bug `unprefixedName` matching below avoids.
9
+ import { errMsg } from "./util.js";
10
+ /**
11
+ * Find the live container for an unprefixed managed name.
12
+ *
13
+ * Two passes so the reliable key wins regardless of list order: an exact
14
+ * `unprefixedName` match anywhere beats a legacy prefix match.
15
+ */
16
+ export function matchContainerInfo(list, name) {
17
+ return (list.find((c) => c.unprefixedName === name) ??
18
+ list.find((c) => c.unprefixedName === undefined && matchesLegacyName(c.name, name)));
19
+ }
20
+ /**
21
+ * Pre-`unprefixedName` managers reported only the prefixed name, so fall back
22
+ * to matching `<namespace>-<name>` for any lowercase-alphanumeric namespace —
23
+ * NOT a hardcoded `sk-`, which is what breaks under
24
+ * SIGNALK_CONTAINER_NAMESPACE.
25
+ */
26
+ export function matchesLegacyName(liveName, name) {
27
+ if (liveName === name)
28
+ return true;
29
+ const suffix = `-${name}`;
30
+ if (!liveName.endsWith(suffix))
31
+ return false;
32
+ const prefix = liveName.slice(0, -suffix.length);
33
+ return /^[a-z0-9]+$/.test(prefix);
34
+ }
35
+ /**
36
+ * `host:port` to reach `containerPort` of the named container from the Signal
37
+ * K process, or null when it cannot be determined. Never throws.
38
+ *
39
+ * Asks `resolveContainerAddress` first, then falls back to parsing the port
40
+ * bindings out of `listContainers()`: the resolver's process-local cache can
41
+ * return a stale port after a recreate (seen in production by signalk-backup).
42
+ *
43
+ * `resolveContainerAddress` has three outcomes, and the throw is the one that
44
+ * surprises people — it throws when the port WAS declared in
45
+ * `signalkAccessiblePorts` but `ensureRunning()` has not run yet. Caught here
46
+ * so a caller ordering its startup differently degrades to the fallback
47
+ * instead of failing.
48
+ */
49
+ export async function resolveContainerEndpoint(manager, containerName, containerPort, debug) {
50
+ if (!manager)
51
+ return null;
52
+ try {
53
+ const answer = await manager.resolveContainerAddress(containerName, containerPort);
54
+ if (answer)
55
+ return answer;
56
+ }
57
+ catch (err) {
58
+ debug?.(`resolveContainerAddress failed: ${errMsg(err)}`);
59
+ }
60
+ try {
61
+ const found = matchContainerInfo(await manager.listContainers(), containerName);
62
+ const wanted = `->${containerPort}/tcp`;
63
+ for (const entry of found?.ports ?? []) {
64
+ if (!entry.endsWith(wanted))
65
+ continue;
66
+ const hostPart = entry.slice(0, -wanted.length);
67
+ if (hostPart.includes(":"))
68
+ return hostPart;
69
+ }
70
+ }
71
+ catch (err) {
72
+ debug?.(`listContainers port fallback failed: ${errMsg(err)}`);
73
+ }
74
+ return null;
75
+ }
76
+ //# sourceMappingURL=resolve-address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-address.js","sourceRoot":"","sources":["../src/resolve-address.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,yEAAyE;AACzE,0DAA0D;AAG1D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAqB,EACrB,IAAY;IAEZ,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC;QAC3C,IAAI,CAAC,IAAI,CACP,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CACzE,CACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,IAAY;IAC9D,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAwC,EACxC,aAAqB,EACrB,aAAqB,EACrB,KAA6B;IAE7B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAClD,aAAa,EACb,aAAa,CACd,CAAC;QACF,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,EAAE,CAAC,mCAAmC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,kBAAkB,CAC9B,MAAM,OAAO,CAAC,cAAc,EAAE,EAC9B,aAAa,CACd,CAAC;QACF,MAAM,MAAM,GAAG,KAAK,aAAa,MAAM,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS;YACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,QAAQ,CAAC;QAC9C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,EAAE,CAAC,wCAAwC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/schema.d.ts CHANGED
@@ -6,7 +6,7 @@ export interface JsonSchemaFragment {
6
6
  readonly description?: string;
7
7
  readonly [key: string]: unknown;
8
8
  }
9
- export interface ManagedModeSchemaOptions {
9
+ export interface ManagedModeSchemaOptions<U extends string = "externalUrl"> {
10
10
  /** Product noun used in every string, e.g. "backup-server", "QuestDB". */
11
11
  productName: string;
12
12
  /**
@@ -17,13 +17,13 @@ export interface ManagedModeSchemaOptions {
17
17
  /** Example shown in the URL field, e.g. "http://192.168.1.50:3010". */
18
18
  exampleUrl?: string;
19
19
  /** Property name of the URL field. Default "externalUrl". */
20
- urlFieldName?: string;
20
+ urlFieldName?: U;
21
21
  /** Title override for the URL field. */
22
22
  urlTitle?: string;
23
23
  /** Default for the toggle. Default true. */
24
24
  defaultManaged?: boolean;
25
25
  }
26
- export interface ManagedModeSchema {
26
+ export interface ManagedModeSchema<U extends string = "externalUrl"> {
27
27
  managedContainer: JsonSchemaFragment;
28
28
  externalUrl: JsonSchemaFragment;
29
29
  /**
@@ -34,7 +34,11 @@ export interface ManagedModeSchema {
34
34
  * SCHEMA_DEFAULTS object beside its schema. Spreading this instead keeps the
35
35
  * two derived from the same literals, which is where the drift was.
36
36
  */
37
- defaults: Record<string, boolean | string>;
37
+ defaults: {
38
+ managedContainer: boolean;
39
+ } & {
40
+ [K in U]: string;
41
+ };
38
42
  }
39
43
  /**
40
44
  * Build the managed/self-hosted config fields for one plugin.
@@ -43,5 +47,5 @@ export interface ManagedModeSchema {
43
47
  * hosted somewhere else" — NOT "is there a container engine on another
44
48
  * machine". signalk-container drives local unix sockets only.
45
49
  */
46
- export declare function managedModeSchema(options: ManagedModeSchemaOptions): ManagedModeSchema;
50
+ export declare function managedModeSchema<U extends string = "externalUrl">(options: ManagedModeSchemaOptions<U>): ManagedModeSchema<U>;
47
51
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AA+BA,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,WAAW,EAAE,kBAAkB,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CA6CnB"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AA+BA,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa;IACxE,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa;IACjE,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,WAAW,EAAE,kBAAkB,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,EAAE;QAAE,gBAAgB,EAAE,OAAO,CAAA;KAAE,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM;KAAE,CAAC;CAChE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,EAChE,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACnC,iBAAiB,CAAC,CAAC,CAAC,CAgDtB"}
package/dist/schema.js CHANGED
@@ -62,6 +62,9 @@ export function managedModeSchema(options) {
62
62
  return {
63
63
  managedContainer,
64
64
  externalUrl,
65
+ // Cast: TS cannot see that a computed key of type U satisfies
66
+ // `{ [K in U]: string }` when U is generic. The value is correct by
67
+ // construction — urlFieldName IS the key, and its default IS "".
65
68
  defaults: {
66
69
  managedContainer: defaultManaged,
67
70
  [urlFieldName]: "",
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,yEAAyE;AACzE,+EAA+E;AAC/E,+EAA+E;AAC/E,eAAe;AACf,EAAE;AACF,qEAAqE;AACrE,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,2DAA2D;AAC3D,EAAE;AACF,wEAAwE;AACxE,EAAE;AACF,mEAAmE;AACnE,6DAA6D;AAC7D,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,mEAAmE;AACnE,yCAAyC;AACzC,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,4EAA4E;AAC5E,2CAA2C;AA2C3C;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAiC;IAEjC,MAAM,EACJ,WAAW,EACX,KAAK,EACL,UAAU,EACV,YAAY,GAAG,aAAa,EAC5B,QAAQ,EACR,cAAc,GAAG,IAAI,GACtB,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,QAAQ,IAAI,YAAY,WAAW,MAAM,CAAC;IACxD,MAAM,IAAI,GAAG,KAAK;QAChB,CAAC,CAAC,6BAA6B,KAAK,EAAE;QACtC,CAAC,CAAC,mBAAmB,WAAW,yBAAyB,CAAC;IAE5D,MAAM,gBAAgB,GAAuB;QAC3C,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,UAAU,WAAW,kCAAkC;QAC9D,WAAW,EACT,eAAe,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI;YAC9D,mCAAmC,WAAW,kBAAkB,KAAK,IAAI;KAC5E,CAAC;IAEF,MAAM,WAAW,GAAuB;QACtC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,KAAK;QACL,sEAAsE;QACtE,mDAAmD;QACnD,WAAW,EACT,6CAA6C;YAC7C,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,6CAA6C;YAC7C,sEAAsE;KACzE,CAAC;IAEF,OAAO;QACL,gBAAgB;QAChB,WAAW;QACX,QAAQ,EAAE;YACR,gBAAgB,EAAE,cAAc;YAChC,CAAC,YAAY,CAAC,EAAE,EAAE;SACnB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,yEAAyE;AACzE,+EAA+E;AAC/E,+EAA+E;AAC/E,eAAe;AACf,EAAE;AACF,qEAAqE;AACrE,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,2DAA2D;AAC3D,EAAE;AACF,wEAAwE;AACxE,EAAE;AACF,mEAAmE;AACnE,6DAA6D;AAC7D,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,mEAAmE;AACnE,yCAAyC;AACzC,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,4EAA4E;AAC5E,2CAA2C;AA2C3C;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAoC;IAEpC,MAAM,EACJ,WAAW,EACX,KAAK,EACL,UAAU,EACV,YAAY,GAAG,aAAkB,EACjC,QAAQ,EACR,cAAc,GAAG,IAAI,GACtB,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,QAAQ,IAAI,YAAY,WAAW,MAAM,CAAC;IACxD,MAAM,IAAI,GAAG,KAAK;QAChB,CAAC,CAAC,6BAA6B,KAAK,EAAE;QACtC,CAAC,CAAC,mBAAmB,WAAW,yBAAyB,CAAC;IAE5D,MAAM,gBAAgB,GAAuB;QAC3C,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,UAAU,WAAW,kCAAkC;QAC9D,WAAW,EACT,eAAe,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI;YAC9D,mCAAmC,WAAW,kBAAkB,KAAK,IAAI;KAC5E,CAAC;IAEF,MAAM,WAAW,GAAuB;QACtC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,KAAK;QACL,sEAAsE;QACtE,mDAAmD;QACnD,WAAW,EACT,6CAA6C;YAC7C,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,6CAA6C;YAC7C,sEAAsE;KACzE,CAAC;IAEF,OAAO;QACL,gBAAgB;QAChB,WAAW;QACX,8DAA8D;QAC9D,oEAAoE;QACpE,iEAAiE;QACjE,QAAQ,EAAE;YACR,gBAAgB,EAAE,cAAc;YAChC,CAAC,YAAY,CAAC,EAAE,EAAE;SACqC;KAC1D,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "signalk-container-helper",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Helper library for Signal K plugins that manage containers via the signalk-container plugin",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",