@camstack/system 1.2.70 → 1.2.71

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.
Files changed (58) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/auth/auth-manager.d.ts +13 -29
  4. package/dist/auth/scope-matcher.d.ts +6 -5
  5. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  9. package/dist/builtins/alerts/alerts.addon.js +1 -1
  10. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  13. package/dist/builtins/console-logging/index.js +1 -1
  14. package/dist/builtins/console-logging/index.mjs +1 -1
  15. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  16. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  17. package/dist/builtins/device-manager/device-manager.addon.js +1 -1
  18. package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
  19. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  20. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  21. package/dist/builtins/hub-forwarder/index.js +1 -1
  22. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  23. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  24. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  25. package/dist/builtins/local-auth/local-auth.addon.js +4756 -4717
  26. package/dist/builtins/local-auth/local-auth.addon.mjs +4747 -4708
  27. package/dist/builtins/local-auth/oauth-grants.d.ts +15 -0
  28. package/dist/builtins/local-network/local-network.addon.js +1 -1
  29. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  30. package/dist/builtins/loki-logging/index.js +1 -1
  31. package/dist/builtins/loki-logging/index.mjs +1 -1
  32. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  33. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  34. package/dist/builtins/platform-probe/index.js +1 -1
  35. package/dist/builtins/platform-probe/index.mjs +1 -1
  36. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  37. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  38. package/dist/builtins/snapshot/index.js +1 -1
  39. package/dist/builtins/snapshot/index.mjs +1 -1
  40. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  41. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  42. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +1 -1
  43. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
  44. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  45. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  46. package/dist/builtins/system-config/system-config.addon.js +1 -1
  47. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  48. package/dist/builtins/winston-logging/index.js +1 -1
  49. package/dist/builtins/winston-logging/index.mjs +1 -1
  50. package/dist/{dist-CnQXXnK1.mjs → dist-Daxx9CB0.mjs} +92 -17
  51. package/dist/{dist-DCLoJf2T.js → dist-I0WgqQQ-.js} +103 -16
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.js +4 -13
  54. package/dist/index.mjs +3 -13
  55. package/dist/kernel/transport/parent-unowned-call.d.ts +27 -0
  56. package/dist/{manifest-python-deps-DKrHcUZj.mjs → manifest-python-deps-BdWxKNvu.mjs} +2 -0
  57. package/dist/{manifest-python-deps-DafB-1hp.js → manifest-python-deps-BqIpg0C7.js} +2 -0
  58. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_manifest_python_deps = require("./manifest-python-deps-DafB-1hp.js");
2
+ const require_manifest_python_deps = require("./manifest-python-deps-BqIpg0C7.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { I as createUdsLoggerWithControl, L as LocalChildClient, at as setWorkerNativeCapsChangeListener, bt as installManifestNativeDeps, i as createUdsAddonContext, nt as getWorkerNativeCapProvider, rt as getWorkerNativeCapSnapshot, st as validateProviderRegistrations, t as installManifestPythonDeps, xt as resolveAddonClass } from "./manifest-python-deps-DKrHcUZj.mjs";
1
+ import { I as createUdsLoggerWithControl, L as LocalChildClient, at as setWorkerNativeCapsChangeListener, bt as installManifestNativeDeps, i as createUdsAddonContext, nt as getWorkerNativeCapProvider, rt as getWorkerNativeCapSnapshot, st as validateProviderRegistrations, t as installManifestPythonDeps, xt as resolveAddonClass } from "./manifest-python-deps-BdWxKNvu.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.mjs";
3
3
  import { register } from "node:module";
4
4
  import * as path$1 from "node:path";
@@ -1,4 +1,5 @@
1
- import { TokenPayload, IScopedLogger, TokenScope } from '@camstack/types';
1
+ import { IScopedLogger, TokenPayload, SsoBridgeClaimsSchema } from '@camstack/types';
2
+ import { z } from 'zod';
2
3
  export type { TokenPayload };
3
4
  export type AuthConfigReader = {
4
5
  get<T>(path: string): T;
@@ -42,7 +43,7 @@ export declare class AuthManager {
42
43
  * redirect bounce, short enough that a leaked URL stops being useful
43
44
  * before the operator notices.
44
45
  */
45
- signSsoBridgeToken(payload: SsoBridgeClaims, ttlSec?: number): string;
46
+ signSsoBridgeToken(payload: SsoBridgeClaims, ttlSec?: number | 'never'): string;
46
47
  /**
47
48
  * Verify + decode a bridge token minted by `signSsoBridgeToken`.
48
49
  * Returns `null` for invalid signature, expired token, or wrong
@@ -75,33 +76,16 @@ export declare class AuthManager {
75
76
  */
76
77
  verifyTotpChallengeToken(token: string): TotpChallengeClaims | null;
77
78
  }
78
- export interface SsoBridgeClaims {
79
- readonly userId: string;
80
- readonly username: string;
81
- readonly isAdmin: boolean;
82
- readonly provider: string;
83
- readonly email?: string;
84
- readonly displayName?: string;
85
- /**
86
- * Public HTTPS URL of the hub that minted the token. Carried verbatim
87
- * through sign/verify; consumed by cloud-mode OAuth proxies (e.g. the
88
- * Alexa Lambda) which need to know which hub to forward to without
89
- * keeping per-user routing state. Optional — only the cloud-mode
90
- * issuers set it.
91
- */
92
- readonly hubUrl?: string;
93
- /** Permission scopes baked into the token by the OAuth account-linking
94
- * grant. Absent on ordinary SSO-login bridge tokens. */
95
- readonly scopes?: readonly TokenScope[];
96
- /** OAuth authorization-code binding — set only on `oauth-code` tokens. */
97
- readonly redirectUri?: string;
98
- readonly integrationId?: string;
99
- /** JWT ID — unique per issued code; consumed-set enforces single-use. */
100
- readonly jti?: string;
101
- /** OAuth session registry id — set on `oauth-access`/`oauth-refresh`
102
- * tokens so the verify path can check the session is not revoked. */
103
- readonly sessionId?: string;
104
- }
79
+ /**
80
+ * Derived from the cap schema rather than restated.
81
+ *
82
+ * This was a hand-written interface duplicating `SsoBridgeClaimsSchema`, and it
83
+ * had already drifted: `codeChallenge` — the field that makes PKCE mandatory at
84
+ * exchange — was in the schema and absent here, so the claim travelled through
85
+ * a type that did not know it existed. That is the failure mode the repo's
86
+ * `z.infer<>`-never-duplicate-a-shape rule exists to stop.
87
+ */
88
+ export type SsoBridgeClaims = z.infer<typeof SsoBridgeClaimsSchema>;
105
89
  export interface TotpChallengeClaims {
106
90
  readonly userId: string;
107
91
  readonly username: string;
@@ -1,7 +1,8 @@
1
- import { TokenScope, MethodAccess } from '@camstack/types';
2
1
  /**
3
- * True if the scope set grants `access` on device-scoped capabilities.
4
- * A `category:device` grant covers every device cap (the broad grant).
5
- * Mirrors the OR-semantics of the existing token scope matcher.
2
+ * The scope derivation moved to `@camstack/types`
3
+ * (`src/auth/principal-scope.ts`) so that ADDONS can reach it they may not
4
+ * import `@camstack/system`, which is why `addon-export-alexa` had hand-copied
5
+ * `scopesAllowDeviceCap` into its `directive-router.ts`. This module is the
6
+ * kernel-side re-export; there is no second implementation.
6
7
  */
7
- export declare function scopesAllowDeviceCap(scopes: readonly TokenScope[], access: MethodAccess): boolean;
8
+ export { scopesAllowAddon, scopesAllowDeviceCap } from '@camstack/types';
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DCLoJf2T.js");
6
+ const require_dist = require("../../dist-I0WgqQQ-.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Rt as EventCategory, _ as addonPagesCapability, dt as errMsg, ft as BaseAddon } from "../../dist-CnQXXnK1.mjs";
1
+ import { Bt as EventCategory, _ as addonPagesCapability, mt as BaseAddon, pt as errMsg } from "../../dist-Daxx9CB0.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DCLoJf2T.js");
6
+ const require_dist = require("../../dist-I0WgqQQ-.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Rt as EventCategory, dt as errMsg, ft as BaseAddon, y as addonWidgetsCapability } from "../../dist-CnQXXnK1.mjs";
1
+ import { Bt as EventCategory, mt as BaseAddon, pt as errMsg, y as addonWidgetsCapability } from "../../dist-Daxx9CB0.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DCLoJf2T.js");
6
+ const require_dist = require("../../dist-I0WgqQQ-.js");
7
7
  //#region src/builtins/alerts/prune-policy.ts
8
8
  /**
9
9
  * Ids older than `cutoffMs`, oldest first.
@@ -1,4 +1,4 @@
1
- import { Rt as EventCategory, Tt as createEvent, b as alertsCapability, dt as errMsg, ft as BaseAddon, n as AlertSchema } from "../../dist-CnQXXnK1.mjs";
1
+ import { Bt as EventCategory, Dt as createEvent, b as alertsCapability, mt as BaseAddon, n as AlertSchema, pt as errMsg } from "../../dist-Daxx9CB0.mjs";
2
2
  //#region src/builtins/alerts/prune-policy.ts
3
3
  /**
4
4
  * Ids older than `cutoffMs`, oldest first.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DCLoJf2T.js");
6
+ const require_dist = require("../../dist-I0WgqQQ-.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let buffer = require("buffer");
9
9
  let node_fs_promises = require("node:fs/promises");
@@ -1,4 +1,4 @@
1
- import { Rt as EventCategory, S as backupCapability, ft as BaseAddon } from "../../dist-CnQXXnK1.mjs";
1
+ import { Bt as EventCategory, S as backupCapability, mt as BaseAddon } from "../../dist-Daxx9CB0.mjs";
2
2
  import { randomBytes, randomUUID } from "node:crypto";
3
3
  import { Buffer as Buffer$1 } from "buffer";
4
4
  import * as fsp from "node:fs/promises";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DCLoJf2T.js");
6
+ const require_dist = require("../../dist-I0WgqQQ-.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/console-logging/console-destination.ts
9
9
  var LEVEL_RANK = {
@@ -1,4 +1,4 @@
1
- import { ft as BaseAddon, q as logDestinationCapability } from "../../dist-CnQXXnK1.mjs";
1
+ import { mt as BaseAddon, q as logDestinationCapability } from "../../dist-Daxx9CB0.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/console-logging/console-destination.ts
4
4
  var LEVEL_RANK = {
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-DCLoJf2T.js");
3
+ const require_dist = require("../../dist-I0WgqQQ-.js");
4
4
  let node_crypto = require("node:crypto");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -1,4 +1,4 @@
1
- import { D as coreBlocksCapability, E as coreBlockIdFromAddonId, T as coreBlockAddonId, c as CoreBlockSchema, ft as BaseAddon, l as DeclaredDevices, o as CORE_BLOCKS_ADDON_ID, s as CORE_BLOCK_ADDON_PREFIX } from "../../dist-CnQXXnK1.mjs";
1
+ import { D as coreBlocksCapability, E as coreBlockIdFromAddonId, T as coreBlockAddonId, c as CoreBlockSchema, l as DeclaredDevices, mt as BaseAddon, o as CORE_BLOCKS_ADDON_ID, s as CORE_BLOCK_ADDON_PREFIX } from "../../dist-Daxx9CB0.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import * as fs from "node:fs/promises";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DCLoJf2T.js");
6
+ const require_dist = require("../../dist-I0WgqQQ-.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let _camstack_types_node = require("@camstack/types/node");
9
9
  //#region src/builtins/device-manager/adoption-job-engine.ts
@@ -1,4 +1,4 @@
1
- import { $ as parseStreamParamsFormPatch, A as deviceManagerCapability, At as isDeviceConfigCap, F as enumerateItemArrayFields, I as enumerateSchemaFields, Lt as sleep, M as deviceStatusCapability, Rt as EventCategory, Z as normalizeUnit, _t as DeviceRole, a as CAP_NAMES_WITH_STATUS, dt as errMsg, ft as BaseAddon, gt as DeviceFeature, j as deviceStateCapability, p as STREAM_PROFILE_META, t as ALL_CAPABILITY_DEFINITIONS, u as DeviceStatusSchema, vt as DeviceType, w as buildStreamParamsConfigSchema, xt as WELL_KNOWN_TAB_MAP } from "../../dist-CnQXXnK1.mjs";
1
+ import { $ as parseStreamParamsFormPatch, A as deviceManagerCapability, Bt as EventCategory, Ct as WELL_KNOWN_TAB_MAP, F as enumerateItemArrayFields, I as enumerateSchemaFields, M as deviceStatusCapability, Mt as isDeviceConfigCap, Z as normalizeUnit, a as CAP_NAMES_WITH_STATUS, bt as DeviceType, j as deviceStateCapability, mt as BaseAddon, p as STREAM_PROFILE_META, pt as errMsg, t as ALL_CAPABILITY_DEFINITIONS, u as DeviceStatusSchema, vt as DeviceFeature, w as buildStreamParamsConfigSchema, yt as DeviceRole, zt as sleep } from "../../dist-Daxx9CB0.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
4
4
  //#region src/builtins/device-manager/adoption-job-engine.ts
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DCLoJf2T.js");
6
+ const require_dist = require("../../dist-I0WgqQQ-.js");
7
7
  //#region src/builtins/doorbell/trigger-engine.ts
8
8
  /**
9
9
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -1,4 +1,4 @@
1
- import { C as bareAddonId, H as isSameAddonId, N as doorbellCapability, Rt as EventCategory, Tt as createEvent, dt as errMsg, ft as BaseAddon, vt as DeviceType } from "../../dist-CnQXXnK1.mjs";
1
+ import { Bt as EventCategory, C as bareAddonId, Dt as createEvent, H as isSameAddonId, N as doorbellCapability, bt as DeviceType, mt as BaseAddon, pt as errMsg } from "../../dist-Daxx9CB0.mjs";
2
2
  //#region src/builtins/doorbell/trigger-engine.ts
3
3
  /**
4
4
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DCLoJf2T.js");
6
+ const require_dist = require("../../dist-I0WgqQQ-.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { ft as BaseAddon, q as logDestinationCapability } from "../../dist-CnQXXnK1.mjs";
1
+ import { mt as BaseAddon, q as logDestinationCapability } from "../../dist-Daxx9CB0.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
4
4
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-DCLoJf2T.js");
3
+ const require_dist = require("../../dist-I0WgqQQ-.js");
4
4
  //#region src/builtins/liveness-monitor/liveness-checks.ts
5
5
  var NO_DEVICES = "liveness:no-devices";
6
6
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -1,4 +1,4 @@
1
- import { Rt as EventCategory, Tt as createEvent, dt as errMsg, ft as BaseAddon } from "../../dist-CnQXXnK1.mjs";
1
+ import { Bt as EventCategory, Dt as createEvent, mt as BaseAddon, pt as errMsg } from "../../dist-Daxx9CB0.mjs";
2
2
  //#region src/builtins/liveness-monitor/liveness-checks.ts
3
3
  var NO_DEVICES = "liveness:no-devices";
4
4
  var ALL_OFFLINE = "liveness:all-devices-offline";