@camstack/addon-pipeline-orchestrator 1.1.39 → 1.1.40

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.
@@ -36,6 +36,6 @@
36
36
  </noscript>
37
37
  <!-- The root element for your Expo app. -->
38
38
  <div id="root"></div>
39
- <script src="/viewer/camstack/_expo/static/js/web/index-9c67053a517d45555621530dfb9fb675.js" defer></script>
39
+ <script src="/viewer/camstack/_expo/static/js/web/index-2652f9e84570fd99982cca8d7fd7917c.js" defer></script>
40
40
  </body>
41
41
  </html>
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
3
3
  var e = {
4
4
  "@camstack/sdk": {
5
5
  name: "@camstack/sdk",
6
- version: "1.1.21",
6
+ version: "1.1.22",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_pipeline_orchestrator_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.1.38",
21
+ version: "1.1.39",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_pipeline_orchestrator_widgets",
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.1.38",
39
+ version: "1.1.39",
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.1.21",
48
+ version: "1.1.22",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
package/dist/index.js CHANGED
@@ -17400,6 +17400,15 @@ method(_void(), array(TurnServerSchema).readonly());
17400
17400
  * - `listPasskeys({userId})` — enumerate user's enrolled credentials.
17401
17401
  * - `removePasskey({userId, credentialId})` — revoke one credential.
17402
17402
  *
17403
+ * 4. Second-factor preference (opt-in, default OFF):
17404
+ * Enrolling a passkey only enables passkey-FIRST sign-in. It is
17405
+ * demanded as a second factor after a password login ONLY when the
17406
+ * user explicitly opts in via `setSecondFactorPreference`.
17407
+ * - `getSecondFactorPreference({userId})` → `{ enabled }` (missing
17408
+ * row ⇒ `enabled: false`).
17409
+ * - `setSecondFactorPreference({userId, enabled})` — persisted by
17410
+ * the providing addon beside its credentials.
17411
+ *
17403
17412
  * Challenges are short-lived (5 min, in-memory). The cap is internal —
17404
17413
  * the admin-ui composes the begin/finish round-trip and never exposes
17405
17414
  * the cap to non-admins.
@@ -17460,6 +17469,13 @@ response: record(string(), unknown()) }), object({
17460
17469
  kind: "mutation",
17461
17470
  auth: "admin",
17462
17471
  access: "delete"
17472
+ }), method(object({ userId: string() }), object({ enabled: boolean() }), { auth: "admin" }), method(object({
17473
+ userId: string(),
17474
+ enabled: boolean()
17475
+ }), object({ success: literal(true) }), {
17476
+ kind: "mutation",
17477
+ auth: "admin",
17478
+ access: "create"
17463
17479
  });
17464
17480
  /**
17465
17481
  * `videoclips` — the unified, navigable-clip surface for a camera.
@@ -23982,6 +23998,12 @@ Object.freeze({
23982
23998
  addonId: null,
23983
23999
  access: "create"
23984
24000
  },
24001
+ "userPasskeys.getSecondFactorPreference": {
24002
+ capName: "user-passkeys",
24003
+ capScope: "system",
24004
+ addonId: null,
24005
+ access: "view"
24006
+ },
23985
24007
  "userPasskeys.listPasskeys": {
23986
24008
  capName: "user-passkeys",
23987
24009
  capScope: "system",
@@ -23994,6 +24016,12 @@ Object.freeze({
23994
24016
  addonId: null,
23995
24017
  access: "delete"
23996
24018
  },
24019
+ "userPasskeys.setSecondFactorPreference": {
24020
+ capName: "user-passkeys",
24021
+ capScope: "system",
24022
+ addonId: null,
24023
+ access: "create"
24024
+ },
23997
24025
  "vacuumControl.locate": {
23998
24026
  capName: "vacuum-control",
23999
24027
  capScope: "device",
package/dist/index.mjs CHANGED
@@ -17372,6 +17372,15 @@ method(_void(), array(TurnServerSchema).readonly());
17372
17372
  * - `listPasskeys({userId})` — enumerate user's enrolled credentials.
17373
17373
  * - `removePasskey({userId, credentialId})` — revoke one credential.
17374
17374
  *
17375
+ * 4. Second-factor preference (opt-in, default OFF):
17376
+ * Enrolling a passkey only enables passkey-FIRST sign-in. It is
17377
+ * demanded as a second factor after a password login ONLY when the
17378
+ * user explicitly opts in via `setSecondFactorPreference`.
17379
+ * - `getSecondFactorPreference({userId})` → `{ enabled }` (missing
17380
+ * row ⇒ `enabled: false`).
17381
+ * - `setSecondFactorPreference({userId, enabled})` — persisted by
17382
+ * the providing addon beside its credentials.
17383
+ *
17375
17384
  * Challenges are short-lived (5 min, in-memory). The cap is internal —
17376
17385
  * the admin-ui composes the begin/finish round-trip and never exposes
17377
17386
  * the cap to non-admins.
@@ -17432,6 +17441,13 @@ response: record(string(), unknown()) }), object({
17432
17441
  kind: "mutation",
17433
17442
  auth: "admin",
17434
17443
  access: "delete"
17444
+ }), method(object({ userId: string() }), object({ enabled: boolean() }), { auth: "admin" }), method(object({
17445
+ userId: string(),
17446
+ enabled: boolean()
17447
+ }), object({ success: literal(true) }), {
17448
+ kind: "mutation",
17449
+ auth: "admin",
17450
+ access: "create"
17435
17451
  });
17436
17452
  /**
17437
17453
  * `videoclips` — the unified, navigable-clip surface for a camera.
@@ -23954,6 +23970,12 @@ Object.freeze({
23954
23970
  addonId: null,
23955
23971
  access: "create"
23956
23972
  },
23973
+ "userPasskeys.getSecondFactorPreference": {
23974
+ capName: "user-passkeys",
23975
+ capScope: "system",
23976
+ addonId: null,
23977
+ access: "view"
23978
+ },
23957
23979
  "userPasskeys.listPasskeys": {
23958
23980
  capName: "user-passkeys",
23959
23981
  capScope: "system",
@@ -23966,6 +23988,12 @@ Object.freeze({
23966
23988
  addonId: null,
23967
23989
  access: "delete"
23968
23990
  },
23991
+ "userPasskeys.setSecondFactorPreference": {
23992
+ capName: "user-passkeys",
23993
+ capScope: "system",
23994
+ addonId: null,
23995
+ access: "create"
23996
+ },
23969
23997
  "vacuumControl.locate": {
23970
23998
  capName: "vacuum-control",
23971
23999
  capScope: "device",
@@ -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_pipeline_orchestrator_widgets-DSljd9Tz.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-BTIaj2P5.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-pipeline-orchestrator",
3
- "version": "1.1.39",
3
+ "version": "1.1.40",
4
4
  "description": "Hub-side camera-to-agent load balancer — tracks runner capacity and dispatches attachCamera calls to the optimal pipeline-runner instance",
5
5
  "keywords": [
6
6
  "camstack",