@camstack/addon-auth 1.2.67 → 1.2.69

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.
@@ -12802,6 +12802,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12802
12802
  kind: "mutation",
12803
12803
  auth: "admin"
12804
12804
  });
12805
+ /**
12806
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12807
+ * live registry access, and all management operations into a single tRPC surface.
12808
+ *
12809
+ * Replaces:
12810
+ * - `device-persistence` capability (persistence methods absorbed here)
12811
+ * - `device-management.router.ts` (deleted in Phase 2)
12812
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12813
+ *
12814
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12815
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12816
+ * - No nodeId routing needed — this is a pure hub singleton.
12817
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12818
+ * - No shadow registry or cross-node aggregation required.
12819
+ *
12820
+ * Forked workers register devices back to the hub via `ctx.devices`
12821
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12822
+ */
12805
12823
  /** One child-placement directive on a container's `childLayout`. Structurally
12806
12824
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12807
12825
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18458,6 +18476,9 @@ var RetrainStatusSchema = _enum([
18458
18476
  *
18459
18477
  * `debug` does NOT pin; it is attention, not durability.
18460
18478
  *
18479
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18480
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18481
+ *
18461
18482
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18462
18483
  * A favourited track is skipped by retention the same way `staging` is, but
18463
18484
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18468,6 +18489,21 @@ var TrackFlagFields = {
18468
18489
  markForTrain: boolean().optional(),
18469
18490
  /** Operator marked this track for diagnostic attention. */
18470
18491
  debug: boolean().optional(),
18492
+ /**
18493
+ * What the operator wants CHECKED on this track, in their own words.
18494
+ *
18495
+ * The flag alone says "look at this" and nothing about what for; a debug set
18496
+ * reviewed hours later is a list of tracks with no question attached. Bound
18497
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18498
+ * and refuses it on a track whose debug is off — so a note can never outlive
18499
+ * the attention it belongs to.
18500
+ *
18501
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18502
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18503
+ * on without a note (a cancelled prompt) and what lets it edit the note
18504
+ * without touching the flag.
18505
+ */
18506
+ debugNote: string().max(500).optional(),
18471
18507
  /** Operator favourited this track. Pins it against pruning. */
18472
18508
  favourited: boolean().optional()
18473
18509
  };
@@ -18494,6 +18530,12 @@ var TrackFlagsSchema = object({
18494
18530
  trackId: string(),
18495
18531
  markForTrain: boolean(),
18496
18532
  debug: boolean(),
18533
+ /** The note as it STANDS after the write — never absent here (a track with no
18534
+ * note reports `''`), for the same reason the booleans are required: a
18535
+ * surface that has just written must be able to render the note it now owns
18536
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18537
+ * screen that has no previous value to keep. */
18538
+ debugNote: string(),
18497
18539
  favourited: boolean(),
18498
18540
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18499
18541
  * a track row) because this shape is only ever produced by the write body,
@@ -12802,6 +12802,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12802
12802
  kind: "mutation",
12803
12803
  auth: "admin"
12804
12804
  });
12805
+ /**
12806
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12807
+ * live registry access, and all management operations into a single tRPC surface.
12808
+ *
12809
+ * Replaces:
12810
+ * - `device-persistence` capability (persistence methods absorbed here)
12811
+ * - `device-management.router.ts` (deleted in Phase 2)
12812
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12813
+ *
12814
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12815
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12816
+ * - No nodeId routing needed — this is a pure hub singleton.
12817
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12818
+ * - No shadow registry or cross-node aggregation required.
12819
+ *
12820
+ * Forked workers register devices back to the hub via `ctx.devices`
12821
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12822
+ */
12805
12823
  /** One child-placement directive on a container's `childLayout`. Structurally
12806
12824
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12807
12825
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18458,6 +18476,9 @@ var RetrainStatusSchema = _enum([
18458
18476
  *
18459
18477
  * `debug` does NOT pin; it is attention, not durability.
18460
18478
  *
18479
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18480
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18481
+ *
18461
18482
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18462
18483
  * A favourited track is skipped by retention the same way `staging` is, but
18463
18484
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18468,6 +18489,21 @@ var TrackFlagFields = {
18468
18489
  markForTrain: boolean().optional(),
18469
18490
  /** Operator marked this track for diagnostic attention. */
18470
18491
  debug: boolean().optional(),
18492
+ /**
18493
+ * What the operator wants CHECKED on this track, in their own words.
18494
+ *
18495
+ * The flag alone says "look at this" and nothing about what for; a debug set
18496
+ * reviewed hours later is a list of tracks with no question attached. Bound
18497
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18498
+ * and refuses it on a track whose debug is off — so a note can never outlive
18499
+ * the attention it belongs to.
18500
+ *
18501
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18502
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18503
+ * on without a note (a cancelled prompt) and what lets it edit the note
18504
+ * without touching the flag.
18505
+ */
18506
+ debugNote: string().max(500).optional(),
18471
18507
  /** Operator favourited this track. Pins it against pruning. */
18472
18508
  favourited: boolean().optional()
18473
18509
  };
@@ -18494,6 +18530,12 @@ var TrackFlagsSchema = object({
18494
18530
  trackId: string(),
18495
18531
  markForTrain: boolean(),
18496
18532
  debug: boolean(),
18533
+ /** The note as it STANDS after the write — never absent here (a track with no
18534
+ * note reports `''`), for the same reason the booleans are required: a
18535
+ * surface that has just written must be able to render the note it now owns
18536
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18537
+ * screen that has no previous value to keep. */
18538
+ debugNote: string(),
18497
18539
  favourited: boolean(),
18498
18540
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18499
18541
  * a track row) because this shape is only ever produced by the write body,
@@ -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-BUXQNhfP.js");
6
+ const require_dist = require("../dist-DtU5qFMT.js");
7
7
  //#region src/magic-link/auth-magic-link.addon.ts
8
8
  /**
9
9
  * Magic-link authentication addon.
@@ -1,4 +1,4 @@
1
- import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-BR2AQ3_b.mjs";
1
+ import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-gxYvZ7-v.mjs";
2
2
  //#region src/magic-link/auth-magic-link.addon.ts
3
3
  /**
4
4
  * Magic-link authentication addon.
@@ -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-BUXQNhfP.js");
6
+ const require_dist = require("../dist-DtU5qFMT.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  //#region node_modules/jose/dist/webapi/lib/buffer_utils.js
@@ -1,4 +1,4 @@
1
- import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-BR2AQ3_b.mjs";
1
+ import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-gxYvZ7-v.mjs";
2
2
  import * as crypto$1 from "node:crypto";
3
3
  //#region node_modules/jose/dist/webapi/lib/buffer_utils.js
4
4
  var encoder = new TextEncoder();
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.2.65",
6
+ version: "1.2.67",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_auth_webauthn_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.145",
21
+ version: "1.2.147",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_auth_webauthn_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.111",
36
+ version: "1.2.113",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_auth_webauthn_widgets",
@@ -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-BUXQNhfP.js");
6
+ const require_dist = require("../dist-DtU5qFMT.js");
7
7
  let stream = require("stream");
8
8
  stream = require_chunk.__toESM(stream, 1);
9
9
  let http = require("http");
@@ -1,4 +1,4 @@
1
- import { a as loginMethodCapability, c as BaseAddon, d as number, f as object, l as array, n as addonWidgetsSourceCapability, o as userPasskeysCapability, p as string, u as boolean } from "../dist-BR2AQ3_b.mjs";
1
+ import { a as loginMethodCapability, c as BaseAddon, d as number, f as object, l as array, n as addonWidgetsSourceCapability, o as userPasskeysCapability, p as string, u as boolean } from "../dist-gxYvZ7-v.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import Stream from "stream";
4
4
  import http from "http";
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.145",
39
+ version: "1.2.147",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.65",
48
+ version: "1.2.67",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.111",
84
+ version: "1.2.113",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -30,7 +30,7 @@ async function d(e) {
30
30
  }
31
31
  }
32
32
  async function f() {
33
- return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-CdTqCyY-.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-DzHG8dEy.mjs")).catch((e) => {
34
34
  throw l = void 0, e;
35
35
  }), l;
36
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-auth",
3
- "version": "1.2.67",
3
+ "version": "1.2.69",
4
4
  "description": "Authentication bundle — magic-link, OIDC, and WebAuthn/passkey. Multi-entry npm package shipping 3 addons under a single bundle; each addon keeps its own id, capabilities, and runner.",
5
5
  "keywords": [
6
6
  "camstack",