@camstack/addon-auth 1.1.5 → 1.1.7

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.
@@ -4627,7 +4627,7 @@ function _instanceof(cls, params = {}) {
4627
4627
  return inst;
4628
4628
  }
4629
4629
  //#endregion
4630
- //#region ../types/dist/sleep-DJaTV2D7.mjs
4630
+ //#region ../types/dist/sleep-BC9Yqte7.mjs
4631
4631
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4632
4632
  EventCategory["SystemBoot"] = "system.boot";
4633
4633
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -6731,6 +6731,18 @@ function method(input, output, options) {
6731
6731
  timeoutMs: options?.timeoutMs
6732
6732
  };
6733
6733
  }
6734
+ /**
6735
+ * A wrapper/system-only method: served exclusively by the cap's system-level
6736
+ * provider (`InferProvider`), and OPTIONAL on `InferNativeProvider` so per-device
6737
+ * driver natives don't stub out a wrapper concern (e.g. a cross-device cache
6738
+ * overview). The `systemOnly: true` literal is what `InferNativeProvider` keys on.
6739
+ */
6740
+ function systemMethod(input, output, options) {
6741
+ return {
6742
+ ...method(input, output, options),
6743
+ systemOnly: true
6744
+ };
6745
+ }
6734
6746
  var StaticDirOutputSchema$1 = object({ staticDir: string() });
6735
6747
  var VersionOutputSchema$1 = object({ version: string() });
6736
6748
  method(_void(), StaticDirOutputSchema$1), method(_void(), VersionOutputSchema$1);
@@ -10598,6 +10610,7 @@ var PipelineAddonSchemaSchema = object({
10598
10610
  defaultModelId: string(),
10599
10611
  defaultModelIdByFormat: record(string(), string()).optional(),
10600
10612
  enabledByDefault: boolean().optional(),
10613
+ backfillIntoExistingOverrides: boolean().optional(),
10601
10614
  defaultConfidence: number(),
10602
10615
  group: string().optional(),
10603
10616
  configSchema: array(ConfigFieldBridge).readonly().optional()
@@ -10904,6 +10917,25 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(ZoneSchema).read
10904
10917
  auth: "admin"
10905
10918
  }), object({ zones: array(ZoneSchema).readonly() });
10906
10919
  /**
10920
+ * A bounding box in NORMALIZED [0,1] frame coordinates for `getNativeCrop`. The
10921
+ * decode worker resolves it against the RETAINED native frame's real pixel dims,
10922
+ * so the caller supplies only the detection-res bbox divided by the detection
10923
+ * dims — no native resolution to plumb.
10924
+ */
10925
+ var NativeCropBboxSchema = object({
10926
+ x: number(),
10927
+ y: number(),
10928
+ w: number(),
10929
+ h: number()
10930
+ });
10931
+ /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
10932
+ var NativeCropResultSchema = object({
10933
+ /** Packed rgb (24-bit) pixels of the crop. */
10934
+ bytes: _instanceof(Uint8Array),
10935
+ width: number().int().positive(),
10936
+ height: number().int().positive()
10937
+ });
10938
+ /**
10907
10939
  * Per-camera tunable ranges + defaults. Single source of truth used
10908
10940
  * by both the Zod data schema (validation + default fallback) and
10909
10941
  * the device settings UI (slider min/max/step). Touch one place and
@@ -11159,7 +11191,11 @@ var RunnerLocalMetricsSchema = object({
11159
11191
  avgInferenceTimeMs: number(),
11160
11192
  queueDepth: number()
11161
11193
  });
11162
- method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mutation" }), method(object({ deviceId: number() }), object({ success: literal(true) }), { kind: "mutation" }), method(ReportMotionInputSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), RunnerLocalLoadSchema), method(_void(), RunnerLocalMetricsSchema), method(object({ deviceId: number() }), CameraMetricsSchema.nullable()), method(_void(), array(CameraMetricsWithDeviceIdSchema).readonly()), method(_void(), array(number()).readonly());
11194
+ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mutation" }), method(object({ deviceId: number() }), object({ success: literal(true) }), { kind: "mutation" }), method(ReportMotionInputSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), RunnerLocalLoadSchema), method(_void(), RunnerLocalMetricsSchema), method(object({ deviceId: number() }), CameraMetricsSchema.nullable()), method(_void(), array(CameraMetricsWithDeviceIdSchema).readonly()), method(_void(), array(number()).readonly()), method(object({
11195
+ handle: FrameHandleSchema,
11196
+ bbox: NativeCropBboxSchema,
11197
+ maxWidth: number().int().positive().optional()
11198
+ }), NativeCropResultSchema.nullable());
11163
11199
  object({
11164
11200
  detected: boolean(),
11165
11201
  /** Ms epoch of the last detected-true observation. Null if never detected. */
@@ -15243,7 +15279,17 @@ var TrackSchema = object({
15243
15279
  /** Cumulative normalized distance travelled (0..1 units = full frame width). */
15244
15280
  totalDistance: number(),
15245
15281
  state: TrackStateSchema,
15246
- active: boolean()
15282
+ active: boolean(),
15283
+ /** Deterministic key-event importance score in [0,1] (server-computed at
15284
+ * track expiry, recomputed on late label). Absent on legacy rows written
15285
+ * before scoring shipped — consumers degrade to absence / compute-on-read. */
15286
+ importance: number().optional(),
15287
+ /** Id of the track's highest-confidence ObjectEvent (its representative
15288
+ * "best" frame). Absent when the track produced no object events. */
15289
+ bestEventId: string().optional(),
15290
+ /** Tag of the importance sub-signal that dominated the score
15291
+ * (identity|dwell|proximity|class|confidence|travel|zone). */
15292
+ importanceReason: string().optional()
15247
15293
  });
15248
15294
  var BaseEventFields = {
15249
15295
  id: string(),
@@ -15308,8 +15354,18 @@ var ObjectEventSchema = object({
15308
15354
  frameHeight: number().optional(),
15309
15355
  /** MediaStore key for the crop attached to this event (if any). */
15310
15356
  mediaKey: string().optional(),
15357
+ /** Design B: MediaStore key of the track's native-resolution key frame (the
15358
+ * best-detection full frame). Resolve via the event-media data-plane
15359
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`) for a detail view that
15360
+ * draws `bbox` over the native frame. Absent on legacy rows / non-decoded
15361
+ * sources — consumers fall back to `mediaKey` (the tight crop). */
15362
+ keyFrameMediaKey: string().optional(),
15311
15363
  /** Populated by B5 (recording playback URL for this event). */
15312
- mediaUrl: string().optional()
15364
+ mediaUrl: string().optional(),
15365
+ /** The parent track's key-event importance [0,1], propagated to every object
15366
+ * event of the track (so an event row can be sorted by importance without a
15367
+ * track join). Absent on legacy rows / before the track was scored. */
15368
+ importance: number().optional()
15313
15369
  });
15314
15370
  var AudioEventSchema = object({
15315
15371
  ...BaseEventFields,
@@ -15333,7 +15389,8 @@ var MediaFileKindEnum = _enum([
15333
15389
  "fullFrame",
15334
15390
  "fullFrameBoxed",
15335
15391
  "faceCrop",
15336
- "plateCrop"
15392
+ "plateCrop",
15393
+ "keyFrame"
15337
15394
  ]);
15338
15395
  var MediaFileSchema = object({
15339
15396
  key: string(),
@@ -15354,6 +15411,32 @@ var DeviceEventQueryInput = object({
15354
15411
  projection: _enum(["full", "slim"]).optional()
15355
15412
  });
15356
15413
  var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: string().optional() });
15414
+ var KeyEventQueryInput = object({
15415
+ deviceId: number(),
15416
+ /** Window lower bound (track firstSeen ≥ since). */
15417
+ since: number(),
15418
+ /** Window upper bound (track firstSeen ≤ until). */
15419
+ until: number(),
15420
+ limit: number().int().min(1).max(200).default(50),
15421
+ /** Drop tracks scoring below this importance. */
15422
+ minImportance: number().min(0).max(1).optional(),
15423
+ /** Restrict to a single class (e.g. 'person'). */
15424
+ classFilter: string().optional()
15425
+ });
15426
+ var KeyEventSchema = object({
15427
+ /** The representative event id (the track's best ObjectEvent, else its trackId). */
15428
+ id: string(),
15429
+ trackId: string(),
15430
+ /** Track start time (firstSeen). */
15431
+ timestamp: number(),
15432
+ className: string(),
15433
+ label: string().optional(),
15434
+ importance: number(),
15435
+ /** Highest-confidence ObjectEvent id for the track (empty when none). */
15436
+ bestEventId: string(),
15437
+ /** Track lifetime in ms (lastSeen - firstSeen). */
15438
+ windowMs: number().optional()
15439
+ });
15357
15440
  var TrackedDetectionSchema = object({
15358
15441
  trackId: string(),
15359
15442
  className: string(),
@@ -15383,7 +15466,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
15383
15466
  }), array(TrackSchema).readonly()), method(object({ deviceId: number() }), _void(), {
15384
15467
  kind: "mutation",
15385
15468
  auth: "admin"
15386
- }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({
15469
+ }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(KeyEventQueryInput, array(KeyEventSchema).readonly()), method(object({
15387
15470
  deviceId: number(),
15388
15471
  since: number(),
15389
15472
  until: number(),
@@ -16150,7 +16233,12 @@ DeviceType.Camera, method(object({
16150
16233
  }), SnapshotImageSchema.nullable()), method(object({ deviceId: number() }), _void(), {
16151
16234
  kind: "mutation",
16152
16235
  auth: "admin"
16153
- });
16236
+ }), systemMethod(object({ deviceIds: array(number()).min(1).max(200) }), array(object({
16237
+ deviceId: number(),
16238
+ lastCapturedAt: number().nullable(),
16239
+ cacheAgeMs: number().nullable(),
16240
+ etag: string().nullable()
16241
+ })));
16154
16242
  /**
16155
16243
  * `sso-bridge` — internal hub-only cap that lets SSO-style auth
16156
16244
  * providers (OIDC, SAML, magic-link, …) mint an HMAC-signed token
@@ -16418,6 +16506,15 @@ method(_void(), array(TurnServerSchema).readonly());
16418
16506
  * - `listPasskeys({userId})` — enumerate user's enrolled credentials.
16419
16507
  * - `removePasskey({userId, credentialId})` — revoke one credential.
16420
16508
  *
16509
+ * 4. Second-factor preference (opt-in, default OFF):
16510
+ * Enrolling a passkey only enables passkey-FIRST sign-in. It is
16511
+ * demanded as a second factor after a password login ONLY when the
16512
+ * user explicitly opts in via `setSecondFactorPreference`.
16513
+ * - `getSecondFactorPreference({userId})` → `{ enabled }` (missing
16514
+ * row ⇒ `enabled: false`).
16515
+ * - `setSecondFactorPreference({userId, enabled})` — persisted by
16516
+ * the providing addon beside its credentials.
16517
+ *
16421
16518
  * Challenges are short-lived (5 min, in-memory). The cap is internal —
16422
16519
  * the admin-ui composes the begin/finish round-trip and never exposes
16423
16520
  * the cap to non-admins.
@@ -16491,6 +16588,15 @@ response: record(string(), unknown()) }), object({
16491
16588
  kind: "mutation",
16492
16589
  auth: "admin",
16493
16590
  access: "delete"
16591
+ }),
16592
+ getSecondFactorPreference: method(object({ userId: string() }), object({ enabled: boolean() }), { auth: "admin" }),
16593
+ setSecondFactorPreference: method(object({
16594
+ userId: string(),
16595
+ enabled: boolean()
16596
+ }), object({ success: literal(true) }), {
16597
+ kind: "mutation",
16598
+ auth: "admin",
16599
+ access: "create"
16494
16600
  })
16495
16601
  }
16496
16602
  };
@@ -17294,7 +17400,17 @@ var FaceInfoSchema = object({
17294
17400
  recognizedIdentityId: string().optional(),
17295
17401
  identityName: string().optional(),
17296
17402
  assigned: boolean(),
17297
- base64: string().optional()
17403
+ base64: string().optional(),
17404
+ /** Design B: the face bbox (pixel space) on the key frame — lets a detail
17405
+ * view draw the box over the native `keyFrameMediaKey` frame. Absent on
17406
+ * legacy rows written before design B. */
17407
+ faceBbox: BoundingBoxSchema.optional(),
17408
+ /** Design B: MediaStore key of the track's native-resolution key frame.
17409
+ * Fetch the native JPEG via the event-media data-plane
17410
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`). Absent when the
17411
+ * track produced no key frame (e.g. native/onboard source) — the UI falls
17412
+ * back to the inline `base64` face crop. */
17413
+ keyFrameMediaKey: string().optional()
17298
17414
  });
17299
17415
  var FaceFilterEnum = _enum([
17300
17416
  "unassigned",
@@ -21413,6 +21529,12 @@ Object.freeze({
21413
21529
  addonId: null,
21414
21530
  access: "view"
21415
21531
  },
21532
+ "pipelineAnalytics.getKeyEvents": {
21533
+ capName: "pipeline-analytics",
21534
+ capScope: "device",
21535
+ addonId: null,
21536
+ access: "view"
21537
+ },
21416
21538
  "pipelineAnalytics.getMotionEvents": {
21417
21539
  capName: "pipeline-analytics",
21418
21540
  capScope: "device",
@@ -21941,6 +22063,12 @@ Object.freeze({
21941
22063
  addonId: null,
21942
22064
  access: "view"
21943
22065
  },
22066
+ "pipelineRunner.getNativeCrop": {
22067
+ capName: "pipeline-runner",
22068
+ capScope: "system",
22069
+ addonId: null,
22070
+ access: "view"
22071
+ },
21944
22072
  "pipelineRunner.reportMotion": {
21945
22073
  capName: "pipeline-runner",
21946
22074
  capScope: "system",
@@ -22307,6 +22435,12 @@ Object.freeze({
22307
22435
  addonId: null,
22308
22436
  access: "view"
22309
22437
  },
22438
+ "snapshot.getSnapshotOverview": {
22439
+ capName: "snapshot",
22440
+ capScope: "device",
22441
+ addonId: null,
22442
+ access: "view"
22443
+ },
22310
22444
  "snapshot.invalidateCache": {
22311
22445
  capName: "snapshot",
22312
22446
  capScope: "device",
@@ -23015,6 +23149,12 @@ Object.freeze({
23015
23149
  addonId: null,
23016
23150
  access: "create"
23017
23151
  },
23152
+ "userPasskeys.getSecondFactorPreference": {
23153
+ capName: "user-passkeys",
23154
+ capScope: "system",
23155
+ addonId: null,
23156
+ access: "view"
23157
+ },
23018
23158
  "userPasskeys.listPasskeys": {
23019
23159
  capName: "user-passkeys",
23020
23160
  capScope: "system",
@@ -23027,6 +23167,12 @@ Object.freeze({
23027
23167
  addonId: null,
23028
23168
  access: "delete"
23029
23169
  },
23170
+ "userPasskeys.setSecondFactorPreference": {
23171
+ capName: "user-passkeys",
23172
+ capScope: "system",
23173
+ addonId: null,
23174
+ access: "create"
23175
+ },
23030
23176
  "vacuumControl.locate": {
23031
23177
  capName: "vacuum-control",
23032
23178
  capScope: "device",
@@ -23309,6 +23455,12 @@ Object.defineProperty(exports, "authProviderCapability", {
23309
23455
  return authProviderCapability;
23310
23456
  }
23311
23457
  });
23458
+ Object.defineProperty(exports, "boolean", {
23459
+ enumerable: true,
23460
+ get: function() {
23461
+ return boolean;
23462
+ }
23463
+ });
23312
23464
  Object.defineProperty(exports, "buildAddonRouteProvider", {
23313
23465
  enumerable: true,
23314
23466
  get: function() {
@@ -23327,6 +23479,12 @@ Object.defineProperty(exports, "loginMethodCapability", {
23327
23479
  return loginMethodCapability;
23328
23480
  }
23329
23481
  });
23482
+ Object.defineProperty(exports, "number", {
23483
+ enumerable: true,
23484
+ get: function() {
23485
+ return number;
23486
+ }
23487
+ });
23330
23488
  Object.defineProperty(exports, "object", {
23331
23489
  enumerable: true,
23332
23490
  get: function() {
@@ -4627,7 +4627,7 @@ function _instanceof(cls, params = {}) {
4627
4627
  return inst;
4628
4628
  }
4629
4629
  //#endregion
4630
- //#region ../types/dist/sleep-DJaTV2D7.mjs
4630
+ //#region ../types/dist/sleep-BC9Yqte7.mjs
4631
4631
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4632
4632
  EventCategory["SystemBoot"] = "system.boot";
4633
4633
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -6731,6 +6731,18 @@ function method(input, output, options) {
6731
6731
  timeoutMs: options?.timeoutMs
6732
6732
  };
6733
6733
  }
6734
+ /**
6735
+ * A wrapper/system-only method: served exclusively by the cap's system-level
6736
+ * provider (`InferProvider`), and OPTIONAL on `InferNativeProvider` so per-device
6737
+ * driver natives don't stub out a wrapper concern (e.g. a cross-device cache
6738
+ * overview). The `systemOnly: true` literal is what `InferNativeProvider` keys on.
6739
+ */
6740
+ function systemMethod(input, output, options) {
6741
+ return {
6742
+ ...method(input, output, options),
6743
+ systemOnly: true
6744
+ };
6745
+ }
6734
6746
  var StaticDirOutputSchema$1 = object({ staticDir: string() });
6735
6747
  var VersionOutputSchema$1 = object({ version: string() });
6736
6748
  method(_void(), StaticDirOutputSchema$1), method(_void(), VersionOutputSchema$1);
@@ -10598,6 +10610,7 @@ var PipelineAddonSchemaSchema = object({
10598
10610
  defaultModelId: string(),
10599
10611
  defaultModelIdByFormat: record(string(), string()).optional(),
10600
10612
  enabledByDefault: boolean().optional(),
10613
+ backfillIntoExistingOverrides: boolean().optional(),
10601
10614
  defaultConfidence: number(),
10602
10615
  group: string().optional(),
10603
10616
  configSchema: array(ConfigFieldBridge).readonly().optional()
@@ -10904,6 +10917,25 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(ZoneSchema).read
10904
10917
  auth: "admin"
10905
10918
  }), object({ zones: array(ZoneSchema).readonly() });
10906
10919
  /**
10920
+ * A bounding box in NORMALIZED [0,1] frame coordinates for `getNativeCrop`. The
10921
+ * decode worker resolves it against the RETAINED native frame's real pixel dims,
10922
+ * so the caller supplies only the detection-res bbox divided by the detection
10923
+ * dims — no native resolution to plumb.
10924
+ */
10925
+ var NativeCropBboxSchema = object({
10926
+ x: number(),
10927
+ y: number(),
10928
+ w: number(),
10929
+ h: number()
10930
+ });
10931
+ /** Result of a best-effort native-resolution crop (`getNativeCrop`). */
10932
+ var NativeCropResultSchema = object({
10933
+ /** Packed rgb (24-bit) pixels of the crop. */
10934
+ bytes: _instanceof(Uint8Array),
10935
+ width: number().int().positive(),
10936
+ height: number().int().positive()
10937
+ });
10938
+ /**
10907
10939
  * Per-camera tunable ranges + defaults. Single source of truth used
10908
10940
  * by both the Zod data schema (validation + default fallback) and
10909
10941
  * the device settings UI (slider min/max/step). Touch one place and
@@ -11159,7 +11191,11 @@ var RunnerLocalMetricsSchema = object({
11159
11191
  avgInferenceTimeMs: number(),
11160
11192
  queueDepth: number()
11161
11193
  });
11162
- method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mutation" }), method(object({ deviceId: number() }), object({ success: literal(true) }), { kind: "mutation" }), method(ReportMotionInputSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), RunnerLocalLoadSchema), method(_void(), RunnerLocalMetricsSchema), method(object({ deviceId: number() }), CameraMetricsSchema.nullable()), method(_void(), array(CameraMetricsWithDeviceIdSchema).readonly()), method(_void(), array(number()).readonly());
11194
+ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mutation" }), method(object({ deviceId: number() }), object({ success: literal(true) }), { kind: "mutation" }), method(ReportMotionInputSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), RunnerLocalLoadSchema), method(_void(), RunnerLocalMetricsSchema), method(object({ deviceId: number() }), CameraMetricsSchema.nullable()), method(_void(), array(CameraMetricsWithDeviceIdSchema).readonly()), method(_void(), array(number()).readonly()), method(object({
11195
+ handle: FrameHandleSchema,
11196
+ bbox: NativeCropBboxSchema,
11197
+ maxWidth: number().int().positive().optional()
11198
+ }), NativeCropResultSchema.nullable());
11163
11199
  object({
11164
11200
  detected: boolean(),
11165
11201
  /** Ms epoch of the last detected-true observation. Null if never detected. */
@@ -15243,7 +15279,17 @@ var TrackSchema = object({
15243
15279
  /** Cumulative normalized distance travelled (0..1 units = full frame width). */
15244
15280
  totalDistance: number(),
15245
15281
  state: TrackStateSchema,
15246
- active: boolean()
15282
+ active: boolean(),
15283
+ /** Deterministic key-event importance score in [0,1] (server-computed at
15284
+ * track expiry, recomputed on late label). Absent on legacy rows written
15285
+ * before scoring shipped — consumers degrade to absence / compute-on-read. */
15286
+ importance: number().optional(),
15287
+ /** Id of the track's highest-confidence ObjectEvent (its representative
15288
+ * "best" frame). Absent when the track produced no object events. */
15289
+ bestEventId: string().optional(),
15290
+ /** Tag of the importance sub-signal that dominated the score
15291
+ * (identity|dwell|proximity|class|confidence|travel|zone). */
15292
+ importanceReason: string().optional()
15247
15293
  });
15248
15294
  var BaseEventFields = {
15249
15295
  id: string(),
@@ -15308,8 +15354,18 @@ var ObjectEventSchema = object({
15308
15354
  frameHeight: number().optional(),
15309
15355
  /** MediaStore key for the crop attached to this event (if any). */
15310
15356
  mediaKey: string().optional(),
15357
+ /** Design B: MediaStore key of the track's native-resolution key frame (the
15358
+ * best-detection full frame). Resolve via the event-media data-plane
15359
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`) for a detail view that
15360
+ * draws `bbox` over the native frame. Absent on legacy rows / non-decoded
15361
+ * sources — consumers fall back to `mediaKey` (the tight crop). */
15362
+ keyFrameMediaKey: string().optional(),
15311
15363
  /** Populated by B5 (recording playback URL for this event). */
15312
- mediaUrl: string().optional()
15364
+ mediaUrl: string().optional(),
15365
+ /** The parent track's key-event importance [0,1], propagated to every object
15366
+ * event of the track (so an event row can be sorted by importance without a
15367
+ * track join). Absent on legacy rows / before the track was scored. */
15368
+ importance: number().optional()
15313
15369
  });
15314
15370
  var AudioEventSchema = object({
15315
15371
  ...BaseEventFields,
@@ -15333,7 +15389,8 @@ var MediaFileKindEnum = _enum([
15333
15389
  "fullFrame",
15334
15390
  "fullFrameBoxed",
15335
15391
  "faceCrop",
15336
- "plateCrop"
15392
+ "plateCrop",
15393
+ "keyFrame"
15337
15394
  ]);
15338
15395
  var MediaFileSchema = object({
15339
15396
  key: string(),
@@ -15354,6 +15411,32 @@ var DeviceEventQueryInput = object({
15354
15411
  projection: _enum(["full", "slim"]).optional()
15355
15412
  });
15356
15413
  var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: string().optional() });
15414
+ var KeyEventQueryInput = object({
15415
+ deviceId: number(),
15416
+ /** Window lower bound (track firstSeen ≥ since). */
15417
+ since: number(),
15418
+ /** Window upper bound (track firstSeen ≤ until). */
15419
+ until: number(),
15420
+ limit: number().int().min(1).max(200).default(50),
15421
+ /** Drop tracks scoring below this importance. */
15422
+ minImportance: number().min(0).max(1).optional(),
15423
+ /** Restrict to a single class (e.g. 'person'). */
15424
+ classFilter: string().optional()
15425
+ });
15426
+ var KeyEventSchema = object({
15427
+ /** The representative event id (the track's best ObjectEvent, else its trackId). */
15428
+ id: string(),
15429
+ trackId: string(),
15430
+ /** Track start time (firstSeen). */
15431
+ timestamp: number(),
15432
+ className: string(),
15433
+ label: string().optional(),
15434
+ importance: number(),
15435
+ /** Highest-confidence ObjectEvent id for the track (empty when none). */
15436
+ bestEventId: string(),
15437
+ /** Track lifetime in ms (lastSeen - firstSeen). */
15438
+ windowMs: number().optional()
15439
+ });
15357
15440
  var TrackedDetectionSchema = object({
15358
15441
  trackId: string(),
15359
15442
  className: string(),
@@ -15383,7 +15466,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
15383
15466
  }), array(TrackSchema).readonly()), method(object({ deviceId: number() }), _void(), {
15384
15467
  kind: "mutation",
15385
15468
  auth: "admin"
15386
- }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({
15469
+ }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(KeyEventQueryInput, array(KeyEventSchema).readonly()), method(object({
15387
15470
  deviceId: number(),
15388
15471
  since: number(),
15389
15472
  until: number(),
@@ -16150,7 +16233,12 @@ DeviceType.Camera, method(object({
16150
16233
  }), SnapshotImageSchema.nullable()), method(object({ deviceId: number() }), _void(), {
16151
16234
  kind: "mutation",
16152
16235
  auth: "admin"
16153
- });
16236
+ }), systemMethod(object({ deviceIds: array(number()).min(1).max(200) }), array(object({
16237
+ deviceId: number(),
16238
+ lastCapturedAt: number().nullable(),
16239
+ cacheAgeMs: number().nullable(),
16240
+ etag: string().nullable()
16241
+ })));
16154
16242
  /**
16155
16243
  * `sso-bridge` — internal hub-only cap that lets SSO-style auth
16156
16244
  * providers (OIDC, SAML, magic-link, …) mint an HMAC-signed token
@@ -16418,6 +16506,15 @@ method(_void(), array(TurnServerSchema).readonly());
16418
16506
  * - `listPasskeys({userId})` — enumerate user's enrolled credentials.
16419
16507
  * - `removePasskey({userId, credentialId})` — revoke one credential.
16420
16508
  *
16509
+ * 4. Second-factor preference (opt-in, default OFF):
16510
+ * Enrolling a passkey only enables passkey-FIRST sign-in. It is
16511
+ * demanded as a second factor after a password login ONLY when the
16512
+ * user explicitly opts in via `setSecondFactorPreference`.
16513
+ * - `getSecondFactorPreference({userId})` → `{ enabled }` (missing
16514
+ * row ⇒ `enabled: false`).
16515
+ * - `setSecondFactorPreference({userId, enabled})` — persisted by
16516
+ * the providing addon beside its credentials.
16517
+ *
16421
16518
  * Challenges are short-lived (5 min, in-memory). The cap is internal —
16422
16519
  * the admin-ui composes the begin/finish round-trip and never exposes
16423
16520
  * the cap to non-admins.
@@ -16491,6 +16588,15 @@ response: record(string(), unknown()) }), object({
16491
16588
  kind: "mutation",
16492
16589
  auth: "admin",
16493
16590
  access: "delete"
16591
+ }),
16592
+ getSecondFactorPreference: method(object({ userId: string() }), object({ enabled: boolean() }), { auth: "admin" }),
16593
+ setSecondFactorPreference: method(object({
16594
+ userId: string(),
16595
+ enabled: boolean()
16596
+ }), object({ success: literal(true) }), {
16597
+ kind: "mutation",
16598
+ auth: "admin",
16599
+ access: "create"
16494
16600
  })
16495
16601
  }
16496
16602
  };
@@ -17294,7 +17400,17 @@ var FaceInfoSchema = object({
17294
17400
  recognizedIdentityId: string().optional(),
17295
17401
  identityName: string().optional(),
17296
17402
  assigned: boolean(),
17297
- base64: string().optional()
17403
+ base64: string().optional(),
17404
+ /** Design B: the face bbox (pixel space) on the key frame — lets a detail
17405
+ * view draw the box over the native `keyFrameMediaKey` frame. Absent on
17406
+ * legacy rows written before design B. */
17407
+ faceBbox: BoundingBoxSchema.optional(),
17408
+ /** Design B: MediaStore key of the track's native-resolution key frame.
17409
+ * Fetch the native JPEG via the event-media data-plane
17410
+ * (`/addon/<addonId>/event-media/<keyFrameMediaKey>`). Absent when the
17411
+ * track produced no key frame (e.g. native/onboard source) — the UI falls
17412
+ * back to the inline `base64` face crop. */
17413
+ keyFrameMediaKey: string().optional()
17298
17414
  });
17299
17415
  var FaceFilterEnum = _enum([
17300
17416
  "unassigned",
@@ -21413,6 +21529,12 @@ Object.freeze({
21413
21529
  addonId: null,
21414
21530
  access: "view"
21415
21531
  },
21532
+ "pipelineAnalytics.getKeyEvents": {
21533
+ capName: "pipeline-analytics",
21534
+ capScope: "device",
21535
+ addonId: null,
21536
+ access: "view"
21537
+ },
21416
21538
  "pipelineAnalytics.getMotionEvents": {
21417
21539
  capName: "pipeline-analytics",
21418
21540
  capScope: "device",
@@ -21941,6 +22063,12 @@ Object.freeze({
21941
22063
  addonId: null,
21942
22064
  access: "view"
21943
22065
  },
22066
+ "pipelineRunner.getNativeCrop": {
22067
+ capName: "pipeline-runner",
22068
+ capScope: "system",
22069
+ addonId: null,
22070
+ access: "view"
22071
+ },
21944
22072
  "pipelineRunner.reportMotion": {
21945
22073
  capName: "pipeline-runner",
21946
22074
  capScope: "system",
@@ -22307,6 +22435,12 @@ Object.freeze({
22307
22435
  addonId: null,
22308
22436
  access: "view"
22309
22437
  },
22438
+ "snapshot.getSnapshotOverview": {
22439
+ capName: "snapshot",
22440
+ capScope: "device",
22441
+ addonId: null,
22442
+ access: "view"
22443
+ },
22310
22444
  "snapshot.invalidateCache": {
22311
22445
  capName: "snapshot",
22312
22446
  capScope: "device",
@@ -23015,6 +23149,12 @@ Object.freeze({
23015
23149
  addonId: null,
23016
23150
  access: "create"
23017
23151
  },
23152
+ "userPasskeys.getSecondFactorPreference": {
23153
+ capName: "user-passkeys",
23154
+ capScope: "system",
23155
+ addonId: null,
23156
+ access: "view"
23157
+ },
23018
23158
  "userPasskeys.listPasskeys": {
23019
23159
  capName: "user-passkeys",
23020
23160
  capScope: "system",
@@ -23027,6 +23167,12 @@ Object.freeze({
23027
23167
  addonId: null,
23028
23168
  access: "delete"
23029
23169
  },
23170
+ "userPasskeys.setSecondFactorPreference": {
23171
+ capName: "user-passkeys",
23172
+ capScope: "system",
23173
+ addonId: null,
23174
+ access: "create"
23175
+ },
23030
23176
  "vacuumControl.locate": {
23031
23177
  capName: "vacuum-control",
23032
23178
  capScope: "device",
@@ -23279,4 +23425,4 @@ object({
23279
23425
  schemaVersion: literal(1)
23280
23426
  });
23281
23427
  //#endregion
23282
- export { loginMethodCapability as a, BaseAddon as c, string as d, buildAddonRouteProvider as i, array as l, addonWidgetsSourceCapability as n, userPasskeysCapability as o, authProviderCapability as r, errMsg as s, addonRoutesCapability as t, object as u };
23428
+ export { loginMethodCapability as a, BaseAddon as c, number as d, object as f, buildAddonRouteProvider as i, array as l, addonWidgetsSourceCapability as n, userPasskeysCapability as o, string as p, authProviderCapability as r, errMsg as s, addonRoutesCapability as t, boolean as u };
@@ -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-biwV9TkV.js");
6
+ const require_dist = require("../dist-CiAMdD_k.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-BopfLZ9P.mjs";
1
+ import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-DYqeeRNy.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-biwV9TkV.js");
6
+ const require_dist = require("../dist-CiAMdD_k.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-BopfLZ9P.mjs";
1
+ import { a as loginMethodCapability, c as BaseAddon, i as buildAddonRouteProvider, r as authProviderCapability, s as errMsg, t as addonRoutesCapability } from "../dist-DYqeeRNy.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();
@@ -1,6 +1,6 @@
1
1
  import { n as e, r as t, t as n } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare__react__loadShare__.js-BIIa6vDX.mjs";
2
2
  import { n as r, t as i } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CQ-aEQ9b.mjs";
3
- import { t as a } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-EnxrfqY5.mjs";
3
+ import { t as a } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CdMP8xMr.mjs";
4
4
  import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-BL2etuqg.mjs";
5
5
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
6
6
  var l = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), u = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), d = (e) => {
@@ -414,7 +414,17 @@ function B(e) {
414
414
  let n = a(), l = r({
415
415
  queryKey: ["auth", "listOwnPasskeys"],
416
416
  queryFn: () => n.listOwnPasskeys()
417
- }), u = l.data ?? [], [d, f] = t(""), [p, m] = t(!1), [h, g] = t(null), S = async () => {
417
+ }), u = l.data ?? [], [d, f] = t(""), [p, m] = t(!1), [h, g] = t(null), S = r({
418
+ queryKey: ["auth", "getOwnPasskeySecondFactorPreference"],
419
+ queryFn: () => n.getOwnPasskeySecondFactorPreference(),
420
+ enabled: u.length > 0
421
+ }), C = S.data?.enabled ?? !1, w = i({
422
+ mutationFn: (e) => n.setOwnPasskeySecondFactorPreference({ enabled: e }),
423
+ onSuccess: () => {
424
+ g(null), S.refetch();
425
+ },
426
+ onError: (e) => g(e instanceof Error ? e.message : "Could not update the preference")
427
+ }), T = async () => {
418
428
  g(null), m(!0);
419
429
  try {
420
430
  let e = await z((await n.beginOwnPasskeyRegistration()).optionsJSON);
@@ -427,7 +437,7 @@ function B(e) {
427
437
  } finally {
428
438
  m(!1);
429
439
  }
430
- }, C = i({
440
+ }, E = i({
431
441
  mutationFn: (e) => n.removeOwnPasskey({ credentialId: e }),
432
442
  onSuccess: () => {
433
443
  g(null), l.refetch();
@@ -447,7 +457,7 @@ function B(e) {
447
457
  children: [
448
458
  /* @__PURE__ */ o("div", {
449
459
  className: "text-xs text-foreground-subtle",
450
- children: "Add a passkey (Touch ID, Windows Hello, or a security key) as a phishing-resistant second factor. You'll be prompted for it at every login."
460
+ children: "Add a passkey (Touch ID, Windows Hello, or a security key) to sign in directly fast and phishing-resistant, no password needed."
451
461
  }),
452
462
  l.isLoading ? /* @__PURE__ */ s("div", {
453
463
  className: "flex items-center gap-2 text-xs text-foreground-subtle",
@@ -473,8 +483,8 @@ function B(e) {
473
483
  })]
474
484
  }),
475
485
  /* @__PURE__ */ s("button", {
476
- onClick: () => C.mutate(e.credentialId),
477
- disabled: C.isPending,
486
+ onClick: () => E.mutate(e.credentialId),
487
+ disabled: E.isPending,
478
488
  className: "inline-flex items-center gap-1 rounded px-2 py-1 text-[11px] text-danger hover:bg-danger/10 disabled:opacity-50",
479
489
  children: [/* @__PURE__ */ o(x, { className: "h-3 w-3" }), "Remove"]
480
490
  })
@@ -484,6 +494,28 @@ function B(e) {
484
494
  className: "text-[11px] text-foreground-subtle",
485
495
  children: "No passkeys enrolled yet."
486
496
  }),
497
+ u.length > 0 && /* @__PURE__ */ s("div", {
498
+ className: "flex items-start justify-between gap-3 rounded-md border border-border px-3 py-2.5",
499
+ children: [/* @__PURE__ */ s("div", {
500
+ className: "min-w-0",
501
+ children: [/* @__PURE__ */ o("div", {
502
+ className: "text-xs font-medium text-foreground",
503
+ children: "Require passkey as second factor"
504
+ }), /* @__PURE__ */ o("div", {
505
+ className: "text-[10px] text-foreground-subtle mt-0.5",
506
+ children: "Also ask for a passkey after every password sign-in. Off by default — enrolling a passkey on its own only enables direct passkey sign-in."
507
+ })]
508
+ }), /* @__PURE__ */ o("button", {
509
+ type: "button",
510
+ role: "switch",
511
+ "aria-checked": C,
512
+ "aria-label": "Require passkey as second factor",
513
+ onClick: () => w.mutate(!C),
514
+ disabled: S.isLoading || w.isPending,
515
+ className: `relative inline-flex h-5 w-9 shrink-0 items-center rounded-full transition-colors disabled:opacity-50 ${C ? "bg-primary" : "bg-foreground-subtle/30"}`,
516
+ children: /* @__PURE__ */ o("span", { className: `inline-block h-3.5 w-3.5 rounded-full bg-white shadow transition-transform ${C ? "translate-x-[18px]" : "translate-x-[3px]"}` })
517
+ })]
518
+ }),
487
519
  h && /* @__PURE__ */ s("div", {
488
520
  className: "text-[11px] text-danger flex items-center gap-1",
489
521
  children: [/* @__PURE__ */ o(_, { className: "h-3 w-3" }), h]
@@ -503,7 +535,7 @@ function B(e) {
503
535
  className: "w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-primary"
504
536
  })]
505
537
  }), /* @__PURE__ */ o("button", {
506
- onClick: S,
538
+ onClick: T,
507
539
  disabled: p,
508
540
  className: "inline-flex items-center gap-1.5 rounded-lg bg-primary px-3 py-2 text-xs font-semibold text-primary-foreground hover:opacity-90 disabled:opacity-50",
509
541
  children: p ? /* @__PURE__ */ s(c, { children: [/* @__PURE__ */ o(b, { className: "h-3.5 w-3.5 animate-spin" }), "Enrolling…"] }) : /* @__PURE__ */ s(c, { children: [/* @__PURE__ */ o(v, { className: "h-3.5 w-3.5" }), "Add passkey"] })
@@ -564,12 +596,14 @@ var U = {
564
596
  en: {
565
597
  signInWithPasskey: "Sign in with a passkey",
566
598
  unsupported: "This browser does not support passkeys.",
567
- failed: "Passkey sign-in failed"
599
+ failed: "Passkey sign-in failed",
600
+ secondFactorRequired: "Additional verification is required — sign in with your password to continue."
568
601
  },
569
602
  it: {
570
603
  signInWithPasskey: "Accedi con una passkey",
571
604
  unsupported: "Questo browser non supporta le passkey.",
572
- failed: "Accesso con passkey non riuscito"
605
+ failed: "Accesso con passkey non riuscito",
606
+ secondFactorRequired: "È richiesta una verifica aggiuntiva — accedi con la password per continuare."
573
607
  }
574
608
  };
575
609
  function W(e) {
@@ -582,11 +616,12 @@ function G(e, t) {
582
616
  //#region src/webauthn/widgets/PasskeyDirectLogin.tsx
583
617
  function K(e) {
584
618
  if (!e) return null;
585
- let t = e.onComplete, n = e.onError, r = e.locale;
619
+ let t = e.onComplete, n = e.onSecondFactor, r = e.onError, i = e.locale;
586
620
  return typeof t == "function" ? {
587
621
  onComplete: t,
588
- onError: typeof n == "function" ? n : void 0,
589
- locale: typeof r == "string" ? r : void 0
622
+ onSecondFactor: typeof n == "function" ? n : void 0,
623
+ onError: typeof r == "function" ? r : void 0,
624
+ locale: typeof i == "string" ? i : void 0
590
625
  } : null;
591
626
  }
592
627
  function q(e) {
@@ -599,7 +634,18 @@ function q(e) {
599
634
  onClick: async () => {
600
635
  u(null), c(!0);
601
636
  try {
602
- let e = await R((await n.passkeyLoginBegin()).optionsJSON), t = await n.passkeyLoginFinish(e);
637
+ let e = await R((await n.passkeyLoginBegin()).optionsJSON), t = await n.passkeyLoginFinish(e), i = t.secondFactors ?? (t.requiresTotp === !0 ? ["totp"] : []);
638
+ if (i.length > 0) {
639
+ if (r.onSecondFactor) r.onSecondFactor({
640
+ challengeToken: t.token,
641
+ factors: i
642
+ });
643
+ else {
644
+ let e = G(d, "secondFactorRequired");
645
+ u(e), r.onError?.(e);
646
+ }
647
+ return;
648
+ }
603
649
  r.onComplete(t.token);
604
650
  } catch (e) {
605
651
  let t = e instanceof Error ? e.message : G(d, "failed");
@@ -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.23",
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.1.37",
21
+ version: "1.1.42",
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.1.31",
36
+ version: "1.1.34",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_auth_webauthn_widgets",
@@ -16,7 +16,7 @@ globalThis[r] ||= {
16
16
  remote: {}
17
17
  }, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
18
18
  var i = globalThis[r], a, o = (e) => {
19
- e.AddonGlobalSettingsForm, e.AgentStepEditor, e.AlarmHeroCard, e.AlarmPanelInlineControl, e.AppShell, e.ArcKnob, e.AudioClassificationList, e.AudioLevelWaveform, e.AudioWaveform, e.AutotrackSection, e.BTN_COMPACT, e.BTN_COMPACT_DANGER, e.BTN_COMPACT_PRIMARY, e.BTN_COMPACT_WARNING, e.Badge, e.BatteryBadge, e.BottomSheet, e.Breadcrumb, e.BrightnessPanel, e.Button, e.ButtonControl, e.ButtonHeroCard, e.CENTER, e.CHIP_ACTIVE, e.CHIP_BASE, e.CHIP_INACTIVE, e.CLASS_COLORS, e.COLUMN_BREAKPOINT_CLASS, e.COLUMN_PRIORITY, e.COMMIT_DEDUPE_TOLERANCE_MS, e.COMMIT_DEDUPE_WINDOW_MS, e.CONTROL_CAP_NAMES, e.CONTROL_FILLS, e.CameraStreamPlayer, e.Card, e.Checkbox, e.ChildSectionAccordion, e.ClimatePanel, e.CodeBlock, e.CollapsibleCard, e.ConfigFormBuilder, e.ConfigFormField, e.ConfigSchemaField, e.ConfirmActionButton, e.ConfirmDialogProvider, e.ConsumablesPanel, e.ContainerChildrenProvider, e.ContainerPrimaryHero, e.ControlColumn, e.ControlHeroCard, e.ControlInlineControl, e.ControlPanel, e.CopyButton, e.CoverHeroCard, e.CoverInlineControl, e.CoverPanel, e.CustomFieldRenderersProvider, e.DEFAULT_COLOR, e.DEVICE_COLUMNS, e.DEVICE_LIST_PAGE_SIZE_KEY, e.DEVICE_LIST_PAGE_SIZE_OPTIONS, e.DEVICE_ROLE_META, e.DEVICE_TYPE_CONTROL, e.DEVICE_TYPE_META, e.DISPLAY_ICON_REGISTRY, e.DataTable, e.DetectionCanvas, e.DetectionOverlay, e.DetectionResultTree, e.DevShell, e.DeviceActivityPanel, e.DeviceBatchToolbar, e.DeviceCard, e.DeviceContextProvider, e.DeviceExportPanel, e.DeviceGrid, e.DeviceItem, e.DeviceList, e.Dialog, e.DialogContent, e.DialogDescription, e.DialogFooter, e.DialogHeader, e.DialogTitle, e.DialogTrigger, e.DiscoveryPanel, e.DoorbellRecentPanel, e.Dropdown, e.DropdownContent, e.DropdownItem, e.DropdownTrigger, e.DummyHeroCard, e.DummyInline, e.EmptyState, e.ErrorBox, e.EventStream, e.EyeOff, e.FILL, e.FanHeroCard, e.FanInlineControl, e.FanPanel, e.FilterBar, e.FloatingEventStream, e.FloatingLogStream, e.FloatingPanel, e.FormField, e.GRID_GAP, e.GRID_PAIRED, e.GRID_QUICK_STATS, e.GripTrack, e.GroupedModelSelector, e.HOST_WIDGETS, e.HlsVideo, e.HoverZoomImage, e.HumidifierHeroCard, e.HumidifierInlineControl, e.INPUT_COMPACT, e.IconAction, e.IconButton, e.ImageHeroCard, e.ImageInlineControl, e.ImageSelector, e.InferenceConfigSelector, e.Input, e.KebabMenu, e.KeyValueList, e.LIST_ROW, e.Label, e.LawnMowerHeroCard, e.LawnMowerInlineControl, e.LightHeroCard, e.LightInlineControl, e.LockHeroCard, e.LockInlineControl, e.LockPanel, e.LogStream, e.LoginForm, e.MODE_COLOR, e.MaskShapeCanvas, e.MediaPlayerHeroCard, e.MediaPlayerInlineControl, e.MediaPlayerPanel, e.MobileDrawer, e.MotionZonesSettings, e.NodeMultiSelectField, e.NodePicker, e.NodeSelectField, e.OfflineBadge, e.PHASE_CONFIG, e.PRIORITY, e.PTZOverlay, e.PageHeader, e.PhaseIcon, e.PipelineBuilder, e.PipelineRuntimeSelector, e.PipelineStep, e.PipelineTreeMatrix, e.PlayerOverlaysProvider, e.Popover, e.PopoverContent, e.PopoverRowAction, e.PopoverTrigger, e.PrimaryChildPicker, e.PrivacyMaskSettings, e.ProviderBadge, e.PtzPanel, e.QrCode, e.RECORDED_PLAYBACK_MODES, e.RIGHT, e.ROLE_DESCRIPTOR, e.RadialGauge, e.RecordedPlaybackProvider, e.RecordingPanel, e.ResponseLog, e.SECTION_BODY, e.SECTION_CARD, e.SECTION_HEADER, e.SPLIT_PANEL_OUTER, e.SPLIT_PANEL_SIDE, e.STACK_GAP, e.STATE_COLOR, e.ScopePicker, e.ScrollArea, e.Select, e.SemanticBadge, e.SensorHeroCard, e.SensorInlineControl, e.SensorValueAtom, e.Separator, e.Sidebar, e.SidebarItem, e.Skeleton, e.SlideOverPanel, e.SlideToggle, e.SnapshotButton, e.Square, e.StatCard, e.StateValuesStream, e.StatusBadge, e.StepTimings, e.StepTreeMaster, e.Stepper, e.StreamBrokerSelector, e.StreamPanel, e.Switch, e.SwitchHeroCard, e.SwitchInlineControl, e.SwitchPanel, e.SystemProvider, e.TEXT_FIELD_LABEL, e.TEXT_HINT, e.TEXT_METRIC, e.TEXT_SECTION_LABEL, e.TEXT_VALUE, e.TIMEZONES, e.Tabs, e.TabsContent, e.TabsList, e.TabsTrigger, e.TapToggle, e.ThemeProvider, e.ThermostatHeroCard, e.ThermostatInlineControl, e.TimezoneSelector, e.Tooltip, e.TooltipContent, e.TooltipTrigger, e.Trash2, e.VacuumHeroCard, e.VacuumInlineControl, e.ValueReadout, e.ValveHeroCard, e.ValveInlineControl, e.VersionBadge, e.VodPlaybackProvider, e.WaterHeaterHeroCard, e.WaterHeaterInlineControl, e.WeatherHeroCard, e.WeatherInlineControl, e.WidgetMetricCard, e.WidgetPanel, e.WidgetRegistryProvider, e.WidgetSlot, e.ZoneEditingProvider, e.allDeviceTypeFilterOptions, e.buildStepTreeFromSchema, e.childEntityId, e.childListName, e.cn, e.columnsForContext, e.containerChildToRef, e.countableDevices, e.coverHighlight, e.createLucideIcon, e.createSharedContext, e.createTheme, e.cursorFractionFor, e.darkColors, e.defaultTheme, e.deriveDeviceKind, e.deviceRoleMeta, e.deviceRoleMetaOf, e.deviceTypeMeta, e.deviceTypeMetaOf, e.ensureMfHostInit, e.findTimezone, e.formatControlDateTime, e.formatLastSeen, e.formatNumeric, e.fuzzyMatch, e.getClassColor, e.getPhaseVisual, e.groupChildrenByLayout, e.hardwareLabel, e.humidifierTint, e.initialScrubState, e.isAbsentProvider, e.isAbsentProvider$1, e.isFieldVisible, e.lawnMowerActivityMeta, e.lightColors, e.loadRemoteBundle, e.makeScrubBridge, e.metadataEntries, e.metadataString, e.mirror, e.mountAddonPage, e.nextSort, e.normalizeForSearch, e.overrideEntityIdFromLink, e.parseRecordedServerMessage, e.providerIcons, e.resolveContainerPrimary, e.resolveControlAlign, e.resolveDeviceControl, e.resolveDisplayIcon, e.resolvePrimaryChild, e.resolveSensorDisplay, e.scrubReducer, e.serializeRecordedCommand, e.shouldCommit, e.shouldEmit, e.sortRows, e.statusIcons, e.stripParentNamePrefix, e.tankAlert, e.themeToCss, e.trpc, e.useAccessoriesGetStatus, e.useAccessoriesSetChildHidden, e.useAddonPagesListPages, e.useAddonSettingsGetDeviceSettings, e.useAddonSettingsGetGlobalSettings, e.useAddonSettingsUpdateDeviceSettings, e.useAddonSettingsUpdateGlobalSettings, e.useAddonWidgetsListWidgets, e.useAddonsApplyAutoUpdateToAll, e.useAddonsCancelJob, e.useAddonsCustom, e.useAddonsForceRefresh, e.useAddonsGetAddonAutoUpdate, e.useAddonsGetAutoUpdateSettings, e.useAddonsGetJob, e.useAddonsGetLastRestart, e.useAddonsGetLogs, e.useAddonsGetVersions, e.useAddonsInstallFromWorkspace, e.useAddonsInstallPackage, e.useAddonsIsWorkspaceAvailable, e.useAddonsList, e.useAddonsListCapabilityProviders, e.useAddonsListFrameworkPackages, e.useAddonsListJobs, e.useAddonsListPackages, e.useAddonsListUpdates, e.useAddonsListWorkspacePackages, e.useAddonsOnAddonLogs, e.useAddonsReloadPackages, e.useAddonsRestartAddon, e.useAddonsRestartServer, e.useAddonsRetryLoad, e.useAddonsRollbackPackage, e.useAddonsSearchAvailable, e.useAddonsSetAddonAutoUpdate, e.useAddonsSetAutoUpdateSettings, e.useAddonsSetCapabilityProviderEnabled, e.useAddonsStartJob, e.useAddonsUninstallPackage, e.useAddonsUpdateFrameworkPackage, e.useAddonsUpdatePackage, e.useAirQualitySensorGetStatus, e.useAlarmPanelArm, e.useAlarmPanelDisarm, e.useAlarmPanelGetStatus, e.useAlarmPanelTrigger, e.useAlertsDismiss, e.useAlertsEmit, e.useAlertsGetUnreadCount, e.useAlertsList, e.useAlertsMarkAllRead, e.useAlertsMarkRead, e.useAlertsUpdate, e.useAllWidgets, e.useAmbientLightSensorGetStatus, e.useAudioAnalysisApplyDeviceSettingsPatch, e.useAudioAnalysisGetDeviceLiveContribution, e.useAudioAnalysisGetDeviceSettingsContribution, e.useAudioAnalysisResolveDeviceSettings, e.useAudioAnalyzerAnalyseChunk, e.useAudioAnalyzerClassify, e.useAudioAnalyzerDispose, e.useAudioAnalyzerIsReady, e.useAudioAnalyzerReprobeAudioEngine, e.useAudioCodecCanHandle, e.useAudioCodecCloseSession, e.useAudioCodecCreateDecodeSession, e.useAudioCodecCreateEncodeSession, e.useAudioCodecFlushEncode, e.useAudioCodecListActiveSessions, e.useAudioCodecListSupportedCodecs, e.useAudioCodecPullEncoded, e.useAudioCodecPullPcm, e.useAudioCodecPushEncodedFrame, e.useAudioCodecPushPcm, e.useAudioMetricsGetCurrentSnapshot, e.useAudioMetricsGetHistory, e.useAutomationControlDisable, e.useAutomationControlEnable, e.useAutomationControlGetStatus, e.useAutomationControlTrigger, e.useBackupDelete, e.useBackupGetEntries, e.useBackupList, e.useBackupListArchives, e.useBackupListDestinations, e.useBackupListLocations, e.useBackupPreviewSchedule, e.useBackupRestore, e.useBackupTrigger, e.useBackupUpsertDestinationPolicy, e.useBatteryGetStatus, e.useBatteryWakeForStream, e.useBinaryGetStatus, e.useBrightnessGetStatus, e.useBrightnessSetBrightness, e.useBrokerAdd, e.useBrokerGet, e.useBrokerGetBrokerConfig, e.useBrokerGetSettings, e.useBrokerGetSettingsSchema, e.useBrokerGetState, e.useBrokerGetStatus, e.useBrokerList, e.useBrokerListProviders, e.useBrokerPublish, e.useBrokerRemove, e.useBrokerSetSettings, e.useBrokerSubscribe, e.useBrokerTestConnection, e.useBrokerTestSettings, e.useBrokerUnsubscribe, e.useButtonPress, e.useCameraCredentialsGetCredentials, e.useCameraCredentialsGetStatus, e.useCameraPipelineConfigApplyDeviceSettingsPatch, e.useCameraPipelineConfigGetDeviceLiveContribution, e.useCameraPipelineConfigGetDeviceSettingsContribution, e.useCameraStreamsGetBrokerStreams, e.useCameraStreamsGetCameraStreams, e.useCameraStreamsGetProfileRtspEntries, e.useCameraStreamsGetRtspEntries, e.useCameraStreamsPickStream, e.useCarbonMonoxideGetStatus, e.useClimateControlGetStatus, e.useClimateControlSetFanMode, e.useClimateControlSetMode, e.useClimateControlSetPreset, e.useClimateControlSetSwingHorizontal, e.useClimateControlSetSwingVertical, e.useClimateControlSetTarget, e.useClimateControlSetTargetHumidity, e.useClimateControlSetTargetRange, e.useClusterNodes, e.useColorGetStatus, e.useColorSetColor, e.useConfirm, e.useConnectivityGetStatus, e.useConsumablesGetStatus, e.useConsumablesReset, e.useContactGetStatus, e.useContainerChildren, e.useControlGetStatus, e.useControlSetValue, e.useCoverClose, e.useCoverGetStatus, e.useCoverOpen, e.useCoverSetPosition, e.useCoverSetTiltPosition, e.useCoverStop, e.useCustomFieldRenderer, e.useDayNightGetOptions, e.useDayNightGetStatus, e.useDayNightSetSettings, e.useDebouncedString, e.useDecoderCreateSession, e.useDecoderDestroySession, e.useDecoderGetFrame, e.useDecoderGetInfo, e.useDecoderGetShmStats, e.useDecoderGetStats, e.useDecoderListActiveSessions, e.useDecoderOpenStream, e.useDecoderPullFrames, e.useDecoderPullHandles, e.useDecoderPushPacket, e.useDecoderReprobeHwaccel, e.useDecoderSupportsCodec, e.useDecoderUpdateConfig, e.useDetectionPipelineApplyDeviceSettingsPatch, e.useDetectionPipelineGetDeviceLiveContribution, e.useDetectionPipelineGetDeviceSettingsContribution, e.useDevShell, e.useDevice, e.useDeviceAdoptionAdopt, e.useDeviceAdoptionGetCandidate, e.useDeviceAdoptionGetStatus, e.useDeviceAdoptionListCandidateFilters, e.useDeviceAdoptionListCandidates, e.useDeviceAdoptionRefresh, e.useDeviceAdoptionRelease, e.useDeviceAdoptionResync, e.useDeviceAutotrack, e.useDeviceBattery, e.useDeviceCapSlice, e.useDeviceCapability, e.useDeviceDetections, e.useDeviceDiscoveryAdoptDevice, e.useDeviceDiscoveryGetStatus, e.useDeviceDiscoveryListDiscovered, e.useDeviceDiscoveryRefreshDiscovery, e.useDeviceDiscoveryReleaseDevice, e.useDeviceExportApplyDeviceSettingsPatch, e.useDeviceExportExposeDevice, e.useDeviceExportGetDeviceLiveContribution, e.useDeviceExportGetDeviceSettingsContribution, e.useDeviceExportGetStatus, e.useDeviceExportListExposedDevices, e.useDeviceExportListSupportedDeviceKinds, e.useDeviceExportUnexposeDevice, e.useDeviceId, e.useDeviceListPageSize, e.useDeviceManagerAddLocation, e.useDeviceManagerAdoptDevice, e.useDeviceManagerAdoptionAdopt, e.useDeviceManagerAdoptionListCandidateFilters, e.useDeviceManagerAdoptionListCandidates, e.useDeviceManagerAdoptionRefresh, e.useDeviceManagerAdoptionRelease, e.useDeviceManagerAdoptionResync, e.useDeviceManagerAllocateDeviceId, e.useDeviceManagerApplyInitialMeta, e.useDeviceManagerCreateDevice, e.useDeviceManagerDisable, e.useDeviceManagerDiscoverAllProviders, e.useDeviceManagerDiscoverDevices, e.useDeviceManagerDiscoverProvider, e.useDeviceManagerDiscoveryProviders, e.useDeviceManagerEnable, e.useDeviceManagerGetAllBindings, e.useDeviceManagerGetBindings, e.useDeviceManagerGetChildren, e.useDeviceManagerGetConfigSchema, e.useDeviceManagerGetCreationSchema, e.useDeviceManagerGetDevice, e.useDeviceManagerGetDeviceAggregate, e.useDeviceManagerGetDeviceLiveInfoAggregate, e.useDeviceManagerGetDeviceSettingsAggregate, e.useDeviceManagerGetDeviceStatusAggregate, e.useDeviceManagerGetRoleDisplayDefaults, e.useDeviceManagerGetSettingsSchema, e.useDeviceManagerGetStreamProfileMap, e.useDeviceManagerGetStreamSources, e.useDeviceManagerGetWireableFields, e.useDeviceManagerListAll, e.useDeviceManagerListBindableCapsForDeviceType, e.useDeviceManagerListLocations, e.useDeviceManagerListPersistedByAddon, e.useDeviceManagerListWrappersForCap, e.useDeviceManagerLoadConfig, e.useDeviceManagerLoadMeta, e.useDeviceManagerLoadRuntimeState, e.useDeviceManagerPersistConfig, e.useDeviceManagerProbeStreams, e.useDeviceManagerProviderCreationType, e.useDeviceManagerProviderDiscoveryParamsSchema, e.useDeviceManagerRegisterDevice, e.useDeviceManagerRemove, e.useDeviceManagerRemoveByIntegration, e.useDeviceManagerRemoveDevice, e.useDeviceManagerRemoveLocation, e.useDeviceManagerRunDeviceAction, e.useDeviceManagerSetChildLayout, e.useDeviceManagerSetDeviceLinks, e.useDeviceManagerSetDisabled, e.useDeviceManagerSetDisplay, e.useDeviceManagerSetIntegrationId, e.useDeviceManagerSetLinkDeviceId, e.useDeviceManagerSetLocation, e.useDeviceManagerSetMetadata, e.useDeviceManagerSetName, e.useDeviceManagerSetPrimaryChildEntityId, e.useDeviceManagerSetRole, e.useDeviceManagerSetRoleDisplayDefaults, e.useDeviceManagerSetStreamProfileMap, e.useDeviceManagerSetType, e.useDeviceManagerSetWrapperActive, e.useDeviceManagerTestCreationField, e.useDeviceManagerTestField, e.useDeviceManagerUpdateConfig, e.useDeviceManagerUpdateDeviceField, e.useDeviceManagerUpdateDeviceFieldsBatch, e.useDeviceOpsGetConfigEntries, e.useDeviceOpsGetRawState, e.useDeviceOpsGetSettingsSchema, e.useDeviceOpsGetStreamSources, e.useDeviceOpsRemoveDevice, e.useDeviceOpsRunAction, e.useDeviceOpsSetConfig, e.useDeviceProviderAdoptDiscoveredDevice, e.useDeviceProviderCreateDevice, e.useDeviceProviderDiscoverDevices, e.useDeviceProviderGetChildCreationSchema, e.useDeviceProviderGetDevices, e.useDeviceProviderGetDiscoveryParamsSchema, e.useDeviceProviderGetManualCreationType, e.useDeviceProviderGetStatus, e.useDeviceProviderStart, e.useDeviceProviderStop, e.useDeviceProviderSupportsDiscovery, e.useDeviceProviderSupportsManualCreation, e.useDeviceProviderTestCreationField, e.useDeviceProxy, e.useDeviceProxy$1, e.useDeviceSnapshot, e.useDeviceSnapshotImage, e.useDeviceState, e.useDeviceStateGetAllSnapshots, e.useDeviceStateGetCapSlice, e.useDeviceStateGetSnapshot, e.useDeviceStateSetCapSlice, e.useDeviceStateSlice, e.useDeviceStatusGetStatus, e.useDeviceWebrtc, e.useDevices, e.useDoorbellEvents, e.useDoorbellGetStatus, e.useEnumSensorGetStatus, e.useEventEmitterGetStatus, e.useEventInvalidation, e.useEventStreamLatest, e.useEventStreamMap, e.useEventsGetEventClipUrl, e.useEventsGetEventThumbnail, e.useEventsGetEvents, e.useFaceGalleryAssignFace, e.useFaceGalleryAssignFaces, e.useFaceGalleryCreateIdentity, e.useFaceGalleryDeleteFace, e.useFaceGalleryDeleteIdentity, e.useFaceGalleryGetFaceByTrack, e.useFaceGalleryGetFaceMedia, e.useFaceGalleryListIdentities, e.useFaceGalleryListIdentitySamples, e.useFaceGalleryListRecentFaces, e.useFaceGalleryRemoveSample, e.useFaceGalleryRenameIdentity, e.useFaceGallerySuggestFaceClusters, e.useFaceGalleryUnassignFace, e.useFaceGalleryUnassignFaces, e.useFanControlGetStatus, e.useFanControlSetDirection, e.useFanControlSetOscillating, e.useFanControlSetPercentage, e.useFanControlSetPreset, e.useFeatureProbeGetStatus, e.useFloodGetStatus, e.useGasGetStatus, e.useHumidifierGetStatus, e.useHumidifierSetMode, e.useHumidifierSetOn, e.useHumidifierSetTargetHumidity, e.useHumiditySensorGetStatus, e.useImageGetStatus, e.useImageSettingsGetOptions, e.useImageSettingsGetStatus, e.useImageSettingsSetSettings, e.useIntegrationsCreate, e.useIntegrationsDelete, e.useIntegrationsGet, e.useIntegrationsGetAvailableTypes, e.useIntegrationsGetByAddonId, e.useIntegrationsGetSettings, e.useIntegrationsList, e.useIntegrationsSetSettings, e.useIntegrationsTestConnection, e.useIntegrationsUpdate, e.useIntercomEndTalkSession, e.useIntercomGetStatus, e.useIntercomHandleAnswer, e.useIntercomPushTalkAudio, e.useIntercomStartSession, e.useIntercomStartTalkSession, e.useIntercomStopSession, e.useIsMidWidth, e.useIsMobile, e.useLawnMowerControlDock, e.useLawnMowerControlGetStatus, e.useLawnMowerControlPause, e.useLawnMowerControlStartMowing, e.useLiveBuffer, e.useLiveEvent, e.useLocalNetworkGetAllowedAddresses, e.useLocalNetworkGetConnectionEndpoints, e.useLocalNetworkGetPreferred, e.useLocalNetworkList, e.useLocalNetworkResetAllowlistToBestMatch, e.useLocalNetworkSetAllowedAddresses, e.useLockControlGetStatus, e.useLockControlLock, e.useLockControlOpen, e.useLockControlUnlock, e.useMediaPlayerGetStatus, e.useMediaPlayerNext, e.useMediaPlayerPause, e.useMediaPlayerPlay, e.useMediaPlayerPlayMedia, e.useMediaPlayerPrevious, e.useMediaPlayerSeek, e.useMediaPlayerSelectSource, e.useMediaPlayerSetMute, e.useMediaPlayerSetRepeat, e.useMediaPlayerSetShuffle, e.useMediaPlayerSetVolume, e.useMediaPlayerStop, e.useMeshNetworkGetStatus, e.useMeshNetworkJoin, e.useMeshNetworkLeave, e.useMeshNetworkListPeers, e.useMeshNetworkLogout, e.useMeshNetworkStartLogin, e.useMeshNetworkTestConnection, e.useMetricsProviderCollectSnapshot, e.useMetricsProviderDumpHeapSnapshot, e.useMetricsProviderGetAddonStats, e.useMetricsProviderGetCached, e.useMetricsProviderGetCpuTemperature, e.useMetricsProviderGetCurrent, e.useMetricsProviderGetDiskSpace, e.useMetricsProviderGetGpuInfo, e.useMetricsProviderGetProcessStats, e.useMetricsProviderKillProcess, e.useMetricsProviderListAddonInstances, e.useMetricsProviderListNodeProcesses, e.useMotionDetectionAnalyze, e.useMotionDetectionApplyDeviceSettingsPatch, e.useMotionDetectionGetDeviceLiveContribution, e.useMotionDetectionGetDeviceSettingsContribution, e.useMotionDetectionRemoveCamera, e.useMotionDetectionReset, e.useMotionGetStatus, e.useMotionIsDetected, e.useMotionTriggerGetStatus, e.useMotionTriggerSetMotionTrigger, e.useMotionZonesGetOptions, e.useMotionZonesGetStatus, e.useMotionZonesSetZone, e.useMqttBrokerAddBroker, e.useMqttBrokerGetBrokerConfig, e.useMqttBrokerGetStatus, e.useMqttBrokerListBrokers, e.useMqttBrokerRemoveBroker, e.useMqttBrokerStartEmbeddedBroker, e.useMqttBrokerStopEmbeddedBroker, e.useMqttBrokerTestConnection, e.useNativeObjectDetectionGetStatus, e.useNativeObjectDetectionSetEnabled, e.useNetworkAccessGetEndpoint, e.useNetworkAccessGetStatus, e.useNetworkAccessListEndpoints, e.useNetworkAccessStart, e.useNetworkAccessStop, e.useNetworkQualityGetAllStats, e.useNetworkQualityGetDeviceStats, e.useNetworkQualityReportClientStats, e.useNodesClusterAddonStatus, e.useNodesDeployAddon, e.useNodesExecuteQuery, e.useNodesGetCapUsageGraph, e.useNodesGetNodeAddons, e.useNodesRenameNode, e.useNodesRestartAddon, e.useNodesRestartNode, e.useNodesRestartProcess, e.useNodesSetProcessLogLevel, e.useNodesShutdownNode, e.useNodesTopology, e.useNodesUndeployAddon, e.useNotificationOutputDeleteTarget, e.useNotificationOutputDiscoverTargets, e.useNotificationOutputListTargetKinds, e.useNotificationOutputListTargets, e.useNotificationOutputSend, e.useNotificationOutputSetTargetEnabled, e.useNotificationOutputTestTarget, e.useNotificationOutputUpsertTarget, e.useNotifierCancel, e.useNotifierGetStatus, e.useNotifierSend, e.useNumericSensorGetStatus, e.useOptimisticSlice, e.useOptionalSystem, e.useOptionalWidgetRegistry, e.useOsdGetStatus, e.useOsdSetOverlay, e.usePTZ, e.usePetFeederCallPet, e.usePetFeederCancelFeed, e.usePetFeederFeed, e.usePetFeederGetStatus, e.usePetFeederMarkFoodReplenished, e.usePetFeederPlaySound, e.usePetFeederResetDesiccant, e.usePetFeederSetChildLock, e.usePetFeederSetFeedSound, e.usePetFeederSetIndicatorLight, e.usePetFeederSetVolume, e.usePipelineAnalyticsApplyDeviceSettingsPatch, e.usePipelineAnalyticsClearTracks, e.usePipelineAnalyticsGetActiveTracks, e.usePipelineAnalyticsGetAudioEvents, e.usePipelineAnalyticsGetDeviceLiveContribution, e.usePipelineAnalyticsGetDeviceSettingsContribution, e.usePipelineAnalyticsGetEventDensity, e.usePipelineAnalyticsGetEventMedia, e.usePipelineAnalyticsGetMotionEvents, e.usePipelineAnalyticsGetObjectEvents, e.usePipelineAnalyticsGetTrack, e.usePipelineAnalyticsGetTrackMedia, e.usePipelineAnalyticsListTracks, e.usePipelineAnalyticsPruneEventsBefore, e.usePipelineAnalyticsSearchObjectEvents, e.usePipelineExecutorCacheFrameInPool, e.usePipelineExecutorClearDeviceOverrides, e.usePipelineExecutorDeleteModel, e.usePipelineExecutorDeleteTemplate, e.usePipelineExecutorDownloadModel, e.usePipelineExecutorGetAddonModels, e.usePipelineExecutorGetAudioCapabilities, e.usePipelineExecutorGetAvailableEngines, e.usePipelineExecutorGetCapabilities, e.usePipelineExecutorGetDefaultSteps, e.usePipelineExecutorGetDetectionConfigSchema, e.usePipelineExecutorGetEffectiveTuning, e.usePipelineExecutorGetEngineProvisioning, e.usePipelineExecutorGetGlobalPipelineConfig, e.usePipelineExecutorGetGlobalSteps, e.usePipelineExecutorGetOrchestratorConfigSchema, e.usePipelineExecutorGetReferenceAudio, e.usePipelineExecutorGetReferenceAudioFiles, e.usePipelineExecutorGetReferenceImage, e.usePipelineExecutorGetSchema, e.usePipelineExecutorGetSelectedEngine, e.usePipelineExecutorGetVideoPipelineSteps, e.usePipelineExecutorInferCached, e.usePipelineExecutorKillEngine, e.usePipelineExecutorListLoadedEngines, e.usePipelineExecutorListReferenceImages, e.usePipelineExecutorListTemplates, e.usePipelineExecutorReprobeEngine, e.usePipelineExecutorRunAudioTest, e.usePipelineExecutorRunPipeline, e.usePipelineExecutorRunPipelineBatch, e.usePipelineExecutorSaveTemplate, e.usePipelineExecutorSetVideoPipelineSteps, e.usePipelineExecutorSpinEngine, e.usePipelineExecutorUncacheFrame, e.usePipelineExecutorUpdateTemplate, e.usePipelineExecutorValidatePipeline, e.usePipelineOrchestratorApplyDeviceSettingsPatch, e.usePipelineOrchestratorAssignAudio, e.usePipelineOrchestratorAssignPipeline, e.usePipelineOrchestratorDeleteTemplate, e.usePipelineOrchestratorGetAgentLoad, e.usePipelineOrchestratorGetAgentSettings, e.usePipelineOrchestratorGetAudioAssignment, e.usePipelineOrchestratorGetAudioAssignments, e.usePipelineOrchestratorGetAudioNodeLoad, e.usePipelineOrchestratorGetCameraMetrics, e.usePipelineOrchestratorGetCameraSettings, e.usePipelineOrchestratorGetCameraStatus, e.usePipelineOrchestratorGetCameraStatuses, e.usePipelineOrchestratorGetCameraStepOverrides, e.usePipelineOrchestratorGetCapabilityBindings, e.usePipelineOrchestratorGetDeviceLiveContribution, e.usePipelineOrchestratorGetDeviceSettingsContribution, e.usePipelineOrchestratorGetGlobalMetrics, e.usePipelineOrchestratorGetIngestOwner, e.usePipelineOrchestratorGetPipelineAssignment, e.usePipelineOrchestratorGetPipelineAssignments, e.usePipelineOrchestratorListAgentSettings, e.usePipelineOrchestratorListTemplates, e.usePipelineOrchestratorRebalance, e.usePipelineOrchestratorRemoveAgentSettings, e.usePipelineOrchestratorResetNodePipelineDefaults, e.usePipelineOrchestratorResolvePipeline, e.usePipelineOrchestratorSaveTemplate, e.usePipelineOrchestratorSetAgentAddonDefaults, e.usePipelineOrchestratorSetAgentCapabilities, e.usePipelineOrchestratorSetAgentDetectWeight, e.usePipelineOrchestratorSetAgentMaxCameras, e.usePipelineOrchestratorSetAgentReachableHost, e.usePipelineOrchestratorSetCameraPipelineForAgent, e.usePipelineOrchestratorSetCameraStepOverride, e.usePipelineOrchestratorSetCameraStepToggle, e.usePipelineOrchestratorSetCapabilityBinding, e.usePipelineOrchestratorUnassignAudio, e.usePipelineOrchestratorUnassignPipeline, e.usePipelineOrchestratorUpdateTemplate, e.usePipelineRunnerAttachCamera, e.usePipelineRunnerDetachCamera, e.usePipelineRunnerGetAllCameraMetrics, e.usePipelineRunnerGetCameraMetrics, e.usePipelineRunnerGetLocalCameras, e.usePipelineRunnerGetLocalLoad, e.usePipelineRunnerGetLocalMetrics, e.usePipelineRunnerReportMotion, e.usePlateGalleryCorrectPlateText, e.usePlateGalleryDeletePlate, e.usePlateGalleryGetPlateByTrack, e.usePlateGalleryGetPlateMedia, e.usePlateGalleryListPlates, e.usePlateGallerySearchPlates, e.usePlateGallerySuggestPlateClusters, e.usePlayerOverlayLayer, e.usePlayerOverlayLayers, e.usePlayerToolbarButton, e.usePlayerToolbarButtons, e.usePowerMeterGetStatus, e.usePresenceGetStatus, e.usePressureSensorGetStatus, e.usePrivacyMaskGetOptions, e.usePrivacyMaskGetStatus, e.usePrivacyMaskSetMask, e.usePtzAutotrackGetSettings, e.usePtzAutotrackGetStatus, e.usePtzAutotrackSetEnabled, e.usePtzAutotrackSetSettings, e.usePtzContinuousMove, e.usePtzDeletePreset, e.usePtzGetOptions, e.usePtzGetPosition, e.usePtzGetPresets, e.usePtzGetStatus, e.usePtzGoHome, e.usePtzGoToPreset, e.usePtzMove, e.usePtzSavePreset, e.usePtzSetAutofocus, e.usePtzStop, e.useRebootReboot, e.useRecordedPlayback, e.useRecordingApplyDeviceSettingsPatch, e.useRecordingGetAvailability, e.useRecordingGetDaysWithRecordings, e.useRecordingGetDeviceConfig, e.useRecordingGetDeviceLiveContribution, e.useRecordingGetDeviceSettingsContribution, e.useRecordingGetPlaybackManifest, e.useRecordingGetStatus, e.useRecordingGetStorageUsage, e.useRecordingLocateSegment, e.useRecordingPruneFootage, e.useRecordingReadSegmentBytes, e.useRecordingRescanStorage, e.useRecordingSetDeviceConfig, e.useRemoteComponent, e.useScriptRunnerGetStatus, e.useScriptRunnerRun, e.useScriptRunnerStop, e.useScrubController, e.useServerManagementApplyServerUpdate, e.useServerManagementCheckServerUpdate, e.useServerManagementGetServerPackageStatus, e.useServerManagementRestartServer, e.useServerManagementRollbackServerUpdate, e.useSettingsStoreCount, e.useSettingsStoreDeclareCollection, e.useSettingsStoreDelete, e.useSettingsStoreGet, e.useSettingsStoreHistogram, e.useSettingsStoreInsert, e.useSettingsStoreIsEmpty, e.useSettingsStoreQuery, e.useSettingsStoreSet, e.useSettingsStoreUpdate, e.useSmokeGetStatus, e.useSnapshotApplyDeviceSettingsPatch, e.useSnapshotGetDeviceLiveContribution, e.useSnapshotGetDeviceSettingsContribution, e.useSnapshotGetSnapshot, e.useSnapshotGetStatus, e.useSnapshotInvalidateCache, e.useStorageAbortUpload, e.useStorageBeginDownload, e.useStorageBeginUpload, e.useStorageDelete, e.useStorageDeleteLocation, e.useStorageEndDownload, e.useStorageExists, e.useStorageFinalizeUpload, e.useStorageGetAvailableSpace, e.useStorageGetDefaultLocation, e.useStorageList, e.useStorageListLocationDeclarations, e.useStorageListLocations, e.useStorageListProviders, e.useStorageRead, e.useStorageReadChunk, e.useStorageResolve, e.useStorageTestConfig, e.useStorageTestLocation, e.useStorageUpsertLocation, e.useStorageWrite, e.useStorageWriteChunk, e.useStreamBrokerApplyDeviceSettingsPatch, e.useStreamBrokerAssignProfile, e.useStreamBrokerGetAllRtspEntries, e.useStreamBrokerGetBrokerStats, e.useStreamBrokerGetDeviceLiveContribution, e.useStreamBrokerGetDeviceSettingsContribution, e.useStreamBrokerGetPreBufferInfo, e.useStreamBrokerGetRtspEntry, e.useStreamBrokerGetRtspPort, e.useStreamBrokerGetStreamUrl, e.useStreamBrokerGetStreamWithCodec, e.useStreamBrokerIsRtspEnabled, e.useStreamBrokerKillClient, e.useStreamBrokerListAllCameraStreams, e.useStreamBrokerListAllProfileSlots, e.useStreamBrokerListClients, e.useStreamBrokerProbeStream, e.useStreamBrokerPublishCameraStream, e.useStreamBrokerPullAudioChunks, e.useStreamBrokerPullFrameHandles, e.useStreamBrokerRegenerateRtspToken, e.useStreamBrokerReleaseStreamWithCodec, e.useStreamBrokerRestartProfile, e.useStreamBrokerRetractCameraStream, e.useStreamBrokerSetPreBufferDuration, e.useStreamBrokerSetRtspEnabled, e.useStreamBrokerSubscribeAudioChunks, e.useStreamBrokerSubscribeFrames, e.useStreamBrokerUnassignProfile, e.useStreamBrokerUnsubscribeAudioChunks, e.useStreamBrokerUnsubscribeFrames, e.useStreamCatalogGetCatalog, e.useStreamParamsGetConfigSchema, e.useStreamParamsGetOptions, e.useStreamParamsGetStatus, e.useStreamParamsSetProfile, e.useSwitchGetStatus, e.useSwitchSetState, a = e.useSystem, e.useSystem$1, e.useSystemFeatureFlags, e.useSystemForceRetentionCleanup, e.useSystemGetRetentionConfig, e.useSystemHealth, e.useSystemInfo, e.useSystemMutation, e.useSystemNetworkAddresses, e.useSystemQuery, e.useSystemSetRetentionConfig, e.useTamperGetStatus, e.useTemperatureSensorGetStatus, e.useThemeMode, e.useToastOnToast, e.useTurnProviderGetTurnServers, e.useUpdateGetStatus, e.useUpdateInstallUpdate, e.useUserManagementConfirmTotp, e.useUserManagementCreateApiKey, e.useUserManagementCreateScopedToken, e.useUserManagementCreateUser, e.useUserManagementDeleteUser, e.useUserManagementDisableTotp, e.useUserManagementGetTotpStatus, e.useUserManagementListApiKeys, e.useUserManagementListOauthSessions, e.useUserManagementListScopedTokens, e.useUserManagementListUsers, e.useUserManagementOauthExchangeCode, e.useUserManagementOauthIssueCode, e.useUserManagementOauthRefresh, e.useUserManagementOauthVerifyAccessToken, e.useUserManagementResetPassword, e.useUserManagementRevokeApiKey, e.useUserManagementRevokeOauthSession, e.useUserManagementRevokeScopedToken, e.useUserManagementSetUserScopes, e.useUserManagementSetupTotp, e.useUserManagementUpdateUser, e.useUserManagementValidateApiKey, e.useUserManagementValidateCredentials, e.useUserManagementValidateScopedToken, e.useUserManagementVerifyTotp, e.useVacuumControlGetStatus, e.useVacuumControlLocate, e.useVacuumControlPause, e.useVacuumControlReturnToBase, e.useVacuumControlSetFanSpeed, e.useVacuumControlStart, e.useVacuumControlStop, e.useValveClose, e.useValveGetStatus, e.useValveOpen, e.useValveSetPosition, e.useValveStop, e.useVibrationGetStatus, e.useVideoclipsGetClipPlayback, e.useVideoclipsListClips, e.useVodPlayback, e.useWaterHeaterGetStatus, e.useWaterHeaterSetAway, e.useWaterHeaterSetOperationMode, e.useWaterHeaterSetTargetTemp, e.useWeatherGetStatus, e.useWebrtcSessionAddIceCandidate, e.useWebrtcSessionCloseSession, e.useWebrtcSessionCreateSession, e.useWebrtcSessionGetIceCandidates, e.useWebrtcSessionGetSessionState, e.useWebrtcSessionHandleAnswer, e.useWebrtcSessionHandleOffer, e.useWebrtcSessionHasAdaptiveBitrate, e.useWebrtcSessionListStreams, e.useWidget, e.useWidgetMetadata, e.useWidgetRegistry, e.useZoneAnalyticsGetCameraHistory, e.useZoneAnalyticsGetCurrentSnapshot, e.useZoneAnalyticsGetUnzonedHistory, e.useZoneAnalyticsGetZoneHistory, e.useZoneEditing, e.useZoneRulesListRules, e.useZoneRulesSetRules, e.useZonesAddZone, e.useZonesListZones, e.useZonesRemoveZone, e.useZonesUpdateZone, e.vacuumStateMeta, e.validateScopes, e.valveStateMeta, e.waterHeaterPhase, e.waterHeaterTint, e.weatherConditionMeta, e.weatherTint, e.default;
19
+ e.AddonGlobalSettingsForm, e.AgentStepEditor, e.AlarmHeroCard, e.AlarmPanelInlineControl, e.AppShell, e.ArcKnob, e.AudioClassificationList, e.AudioLevelWaveform, e.AudioWaveform, e.AutotrackSection, e.BTN_COMPACT, e.BTN_COMPACT_DANGER, e.BTN_COMPACT_PRIMARY, e.BTN_COMPACT_WARNING, e.Badge, e.BatteryBadge, e.BottomSheet, e.Breadcrumb, e.BrightnessPanel, e.Button, e.ButtonControl, e.ButtonHeroCard, e.CENTER, e.CHIP_ACTIVE, e.CHIP_BASE, e.CHIP_INACTIVE, e.CLASS_COLORS, e.COLUMN_BREAKPOINT_CLASS, e.COLUMN_PRIORITY, e.COMMIT_DEDUPE_TOLERANCE_MS, e.COMMIT_DEDUPE_WINDOW_MS, e.CONTROL_CAP_NAMES, e.CONTROL_FILLS, e.CameraStreamPlayer, e.Card, e.Checkbox, e.ChildSectionAccordion, e.ClimatePanel, e.CodeBlock, e.CollapsibleCard, e.ConfigFormBuilder, e.ConfigFormField, e.ConfigSchemaField, e.ConfirmActionButton, e.ConfirmDialogProvider, e.ConsumablesPanel, e.ContainerChildrenProvider, e.ContainerPrimaryHero, e.ControlColumn, e.ControlHeroCard, e.ControlInlineControl, e.ControlPanel, e.CopyButton, e.CoverHeroCard, e.CoverInlineControl, e.CoverPanel, e.CustomFieldRenderersProvider, e.DEFAULT_COLOR, e.DEVICE_COLUMNS, e.DEVICE_LIST_PAGE_SIZE_KEY, e.DEVICE_LIST_PAGE_SIZE_OPTIONS, e.DEVICE_ROLE_META, e.DEVICE_TYPE_CONTROL, e.DEVICE_TYPE_META, e.DISPLAY_ICON_REGISTRY, e.DataTable, e.DetectionCanvas, e.DetectionOverlay, e.DetectionResultTree, e.DevShell, e.DeviceActivityPanel, e.DeviceBatchToolbar, e.DeviceCard, e.DeviceContextProvider, e.DeviceExportPanel, e.DeviceGrid, e.DeviceItem, e.DeviceList, e.Dialog, e.DialogContent, e.DialogDescription, e.DialogFooter, e.DialogHeader, e.DialogTitle, e.DialogTrigger, e.DiscoveryPanel, e.DoorbellRecentPanel, e.Dropdown, e.DropdownContent, e.DropdownItem, e.DropdownTrigger, e.DummyHeroCard, e.DummyInline, e.EmptyState, e.ErrorBox, e.EventStream, e.EyeOff, e.FILL, e.FanHeroCard, e.FanInlineControl, e.FanPanel, e.FilterBar, e.FloatingEventStream, e.FloatingLogStream, e.FloatingPanel, e.FormField, e.GRID_GAP, e.GRID_PAIRED, e.GRID_QUICK_STATS, e.GripTrack, e.GroupedModelSelector, e.HOST_WIDGETS, e.HlsVideo, e.HoverZoomImage, e.HumidifierHeroCard, e.HumidifierInlineControl, e.INPUT_COMPACT, e.IconAction, e.IconButton, e.ImageHeroCard, e.ImageInlineControl, e.ImageSelector, e.InferenceConfigSelector, e.Input, e.KebabMenu, e.KeyValueList, e.LIST_ROW, e.Label, e.LawnMowerHeroCard, e.LawnMowerInlineControl, e.LightHeroCard, e.LightInlineControl, e.LockHeroCard, e.LockInlineControl, e.LockPanel, e.LogStream, e.LoginForm, e.MODE_COLOR, e.MaskShapeCanvas, e.MediaPlayerHeroCard, e.MediaPlayerInlineControl, e.MediaPlayerPanel, e.MobileDrawer, e.MotionZonesSettings, e.NodeMultiSelectField, e.NodePicker, e.NodeSelectField, e.OfflineBadge, e.PHASE_CONFIG, e.PRIORITY, e.PTZOverlay, e.PageHeader, e.PhaseIcon, e.PipelineBuilder, e.PipelineRuntimeSelector, e.PipelineStep, e.PipelineTreeMatrix, e.PlayerOverlaysProvider, e.Popover, e.PopoverContent, e.PopoverRowAction, e.PopoverTrigger, e.PrimaryChildPicker, e.PrivacyMaskSettings, e.ProviderBadge, e.PtzPanel, e.QrCode, e.RECORDED_PLAYBACK_MODES, e.RIGHT, e.ROLE_DESCRIPTOR, e.RadialGauge, e.RecordedPlaybackProvider, e.RecordingPanel, e.ResponseLog, e.SECTION_BODY, e.SECTION_CARD, e.SECTION_HEADER, e.SPLIT_PANEL_OUTER, e.SPLIT_PANEL_SIDE, e.STACK_GAP, e.STATE_COLOR, e.ScopePicker, e.ScrollArea, e.Select, e.SemanticBadge, e.SensorHeroCard, e.SensorInlineControl, e.SensorValueAtom, e.Separator, e.Sidebar, e.SidebarItem, e.Skeleton, e.SlideOverPanel, e.SlideToggle, e.SnapshotButton, e.Square, e.StatCard, e.StateValuesStream, e.StatusBadge, e.StepTimings, e.StepTreeMaster, e.Stepper, e.StreamBrokerSelector, e.StreamPanel, e.Switch, e.SwitchHeroCard, e.SwitchInlineControl, e.SwitchPanel, e.SystemProvider, e.TEXT_FIELD_LABEL, e.TEXT_HINT, e.TEXT_METRIC, e.TEXT_SECTION_LABEL, e.TEXT_VALUE, e.TIMEZONES, e.Tabs, e.TabsContent, e.TabsList, e.TabsTrigger, e.TapToggle, e.ThemeProvider, e.ThermostatHeroCard, e.ThermostatInlineControl, e.TimezoneSelector, e.Tooltip, e.TooltipContent, e.TooltipTrigger, e.Trash2, e.VacuumHeroCard, e.VacuumInlineControl, e.ValueReadout, e.ValveHeroCard, e.ValveInlineControl, e.VersionBadge, e.VodPlaybackProvider, e.WaterHeaterHeroCard, e.WaterHeaterInlineControl, e.WeatherHeroCard, e.WeatherInlineControl, e.WidgetMetricCard, e.WidgetPanel, e.WidgetRegistryProvider, e.WidgetSlot, e.ZoneEditingProvider, e.allDeviceTypeFilterOptions, e.buildStepTreeFromSchema, e.childEntityId, e.childListName, e.cn, e.columnsForContext, e.containerChildToRef, e.countableDevices, e.coverHighlight, e.createLucideIcon, e.createSharedContext, e.createTheme, e.cursorFractionFor, e.darkColors, e.defaultTheme, e.deriveDeviceKind, e.deviceRoleMeta, e.deviceRoleMetaOf, e.deviceTypeMeta, e.deviceTypeMetaOf, e.ensureMfHostInit, e.findTimezone, e.formatControlDateTime, e.formatLastSeen, e.formatNumeric, e.fuzzyMatch, e.getClassColor, e.getPhaseVisual, e.groupChildrenByLayout, e.hardwareLabel, e.humidifierTint, e.initialScrubState, e.isAbsentProvider, e.isAbsentProvider$1, e.isFieldVisible, e.lawnMowerActivityMeta, e.lightColors, e.loadRemoteBundle, e.makeScrubBridge, e.metadataEntries, e.metadataString, e.mirror, e.mountAddonPage, e.nextSort, e.normalizeForSearch, e.overrideEntityIdFromLink, e.parseRecordedServerMessage, e.providerIcons, e.resolveContainerPrimary, e.resolveControlAlign, e.resolveDeviceControl, e.resolveDisplayIcon, e.resolvePrimaryChild, e.resolveSensorDisplay, e.scrubReducer, e.serializeRecordedCommand, e.shouldCommit, e.shouldEmit, e.sortRows, e.statusIcons, e.stripParentNamePrefix, e.tankAlert, e.themeToCss, e.trpc, e.useAccessoriesGetStatus, e.useAccessoriesSetChildHidden, e.useAddonPagesListPages, e.useAddonSettingsGetDeviceSettings, e.useAddonSettingsGetGlobalSettings, e.useAddonSettingsUpdateDeviceSettings, e.useAddonSettingsUpdateGlobalSettings, e.useAddonWidgetsListWidgets, e.useAddonsApplyAutoUpdateToAll, e.useAddonsCancelJob, e.useAddonsCustom, e.useAddonsForceRefresh, e.useAddonsGetAddonAutoUpdate, e.useAddonsGetAutoUpdateSettings, e.useAddonsGetJob, e.useAddonsGetLastRestart, e.useAddonsGetLogs, e.useAddonsGetVersions, e.useAddonsInstallFromWorkspace, e.useAddonsInstallPackage, e.useAddonsIsWorkspaceAvailable, e.useAddonsList, e.useAddonsListCapabilityProviders, e.useAddonsListFrameworkPackages, e.useAddonsListJobs, e.useAddonsListPackages, e.useAddonsListUpdates, e.useAddonsListWorkspacePackages, e.useAddonsOnAddonLogs, e.useAddonsReloadPackages, e.useAddonsRestartAddon, e.useAddonsRestartServer, e.useAddonsRetryLoad, e.useAddonsRollbackPackage, e.useAddonsSearchAvailable, e.useAddonsSetAddonAutoUpdate, e.useAddonsSetAutoUpdateSettings, e.useAddonsSetCapabilityProviderEnabled, e.useAddonsStartJob, e.useAddonsUninstallPackage, e.useAddonsUpdateFrameworkPackage, e.useAddonsUpdatePackage, e.useAirQualitySensorGetStatus, e.useAlarmPanelArm, e.useAlarmPanelDisarm, e.useAlarmPanelGetStatus, e.useAlarmPanelTrigger, e.useAlertsDismiss, e.useAlertsEmit, e.useAlertsGetUnreadCount, e.useAlertsList, e.useAlertsMarkAllRead, e.useAlertsMarkRead, e.useAlertsUpdate, e.useAllWidgets, e.useAmbientLightSensorGetStatus, e.useAudioAnalysisApplyDeviceSettingsPatch, e.useAudioAnalysisGetDeviceLiveContribution, e.useAudioAnalysisGetDeviceSettingsContribution, e.useAudioAnalysisResolveDeviceSettings, e.useAudioAnalyzerAnalyseChunk, e.useAudioAnalyzerClassify, e.useAudioAnalyzerDispose, e.useAudioAnalyzerIsReady, e.useAudioAnalyzerReprobeAudioEngine, e.useAudioCodecCanHandle, e.useAudioCodecCloseSession, e.useAudioCodecCreateDecodeSession, e.useAudioCodecCreateEncodeSession, e.useAudioCodecFlushEncode, e.useAudioCodecListActiveSessions, e.useAudioCodecListSupportedCodecs, e.useAudioCodecPullEncoded, e.useAudioCodecPullPcm, e.useAudioCodecPushEncodedFrame, e.useAudioCodecPushPcm, e.useAudioMetricsGetCurrentSnapshot, e.useAudioMetricsGetHistory, e.useAutomationControlDisable, e.useAutomationControlEnable, e.useAutomationControlGetStatus, e.useAutomationControlTrigger, e.useBackupDelete, e.useBackupGetEntries, e.useBackupList, e.useBackupListArchives, e.useBackupListDestinations, e.useBackupListLocations, e.useBackupPreviewSchedule, e.useBackupRestore, e.useBackupTrigger, e.useBackupUpsertDestinationPolicy, e.useBatteryGetStatus, e.useBatteryWakeForStream, e.useBinaryGetStatus, e.useBrightnessGetStatus, e.useBrightnessSetBrightness, e.useBrokerAdd, e.useBrokerGet, e.useBrokerGetBrokerConfig, e.useBrokerGetSettings, e.useBrokerGetSettingsSchema, e.useBrokerGetState, e.useBrokerGetStatus, e.useBrokerList, e.useBrokerListProviders, e.useBrokerPublish, e.useBrokerRemove, e.useBrokerSetSettings, e.useBrokerSubscribe, e.useBrokerTestConnection, e.useBrokerTestSettings, e.useBrokerUnsubscribe, e.useButtonPress, e.useCameraCredentialsGetCredentials, e.useCameraCredentialsGetStatus, e.useCameraPipelineConfigApplyDeviceSettingsPatch, e.useCameraPipelineConfigGetDeviceLiveContribution, e.useCameraPipelineConfigGetDeviceSettingsContribution, e.useCameraStreamsGetBrokerStreams, e.useCameraStreamsGetCameraStreams, e.useCameraStreamsGetProfileRtspEntries, e.useCameraStreamsGetRtspEntries, e.useCameraStreamsPickStream, e.useCarbonMonoxideGetStatus, e.useClimateControlGetStatus, e.useClimateControlSetFanMode, e.useClimateControlSetMode, e.useClimateControlSetPreset, e.useClimateControlSetSwingHorizontal, e.useClimateControlSetSwingVertical, e.useClimateControlSetTarget, e.useClimateControlSetTargetHumidity, e.useClimateControlSetTargetRange, e.useClusterNodes, e.useColorGetStatus, e.useColorSetColor, e.useConfirm, e.useConnectivityGetStatus, e.useConsumablesGetStatus, e.useConsumablesReset, e.useContactGetStatus, e.useContainerChildren, e.useControlGetStatus, e.useControlSetValue, e.useCoverClose, e.useCoverGetStatus, e.useCoverOpen, e.useCoverSetPosition, e.useCoverSetTiltPosition, e.useCoverStop, e.useCustomFieldRenderer, e.useDayNightGetOptions, e.useDayNightGetStatus, e.useDayNightSetSettings, e.useDebouncedString, e.useDecoderCreateSession, e.useDecoderDestroySession, e.useDecoderGetFrame, e.useDecoderGetInfo, e.useDecoderGetShmStats, e.useDecoderGetStats, e.useDecoderListActiveSessions, e.useDecoderOpenStream, e.useDecoderPullFrames, e.useDecoderPullHandles, e.useDecoderPushPacket, e.useDecoderReprobeHwaccel, e.useDecoderSupportsCodec, e.useDecoderUpdateConfig, e.useDetectionPipelineApplyDeviceSettingsPatch, e.useDetectionPipelineGetDeviceLiveContribution, e.useDetectionPipelineGetDeviceSettingsContribution, e.useDevShell, e.useDevice, e.useDeviceAdoptionAdopt, e.useDeviceAdoptionGetCandidate, e.useDeviceAdoptionGetStatus, e.useDeviceAdoptionListCandidateFilters, e.useDeviceAdoptionListCandidates, e.useDeviceAdoptionRefresh, e.useDeviceAdoptionRelease, e.useDeviceAdoptionResync, e.useDeviceAutotrack, e.useDeviceBattery, e.useDeviceCapSlice, e.useDeviceCapability, e.useDeviceDetections, e.useDeviceDiscoveryAdoptDevice, e.useDeviceDiscoveryGetStatus, e.useDeviceDiscoveryListDiscovered, e.useDeviceDiscoveryRefreshDiscovery, e.useDeviceDiscoveryReleaseDevice, e.useDeviceExportApplyDeviceSettingsPatch, e.useDeviceExportExposeDevice, e.useDeviceExportGetDeviceLiveContribution, e.useDeviceExportGetDeviceSettingsContribution, e.useDeviceExportGetStatus, e.useDeviceExportListExposedDevices, e.useDeviceExportListSupportedDeviceKinds, e.useDeviceExportUnexposeDevice, e.useDeviceId, e.useDeviceListPageSize, e.useDeviceManagerAddLocation, e.useDeviceManagerAdoptDevice, e.useDeviceManagerAdoptionAdopt, e.useDeviceManagerAdoptionListCandidateFilters, e.useDeviceManagerAdoptionListCandidates, e.useDeviceManagerAdoptionRefresh, e.useDeviceManagerAdoptionRelease, e.useDeviceManagerAdoptionResync, e.useDeviceManagerAllocateDeviceId, e.useDeviceManagerApplyInitialMeta, e.useDeviceManagerCreateDevice, e.useDeviceManagerDisable, e.useDeviceManagerDiscoverAllProviders, e.useDeviceManagerDiscoverDevices, e.useDeviceManagerDiscoverProvider, e.useDeviceManagerDiscoveryProviders, e.useDeviceManagerEnable, e.useDeviceManagerGetAllBindings, e.useDeviceManagerGetBindings, e.useDeviceManagerGetChildren, e.useDeviceManagerGetConfigSchema, e.useDeviceManagerGetCreationSchema, e.useDeviceManagerGetDevice, e.useDeviceManagerGetDeviceAggregate, e.useDeviceManagerGetDeviceLiveInfoAggregate, e.useDeviceManagerGetDeviceSettingsAggregate, e.useDeviceManagerGetDeviceStatusAggregate, e.useDeviceManagerGetRoleDisplayDefaults, e.useDeviceManagerGetSettingsSchema, e.useDeviceManagerGetStreamProfileMap, e.useDeviceManagerGetStreamSources, e.useDeviceManagerGetWireableFields, e.useDeviceManagerListAll, e.useDeviceManagerListBindableCapsForDeviceType, e.useDeviceManagerListLocations, e.useDeviceManagerListPersistedByAddon, e.useDeviceManagerListWrappersForCap, e.useDeviceManagerLoadConfig, e.useDeviceManagerLoadMeta, e.useDeviceManagerLoadRuntimeState, e.useDeviceManagerPersistConfig, e.useDeviceManagerProbeStreams, e.useDeviceManagerProviderCreationType, e.useDeviceManagerProviderDiscoveryParamsSchema, e.useDeviceManagerRegisterDevice, e.useDeviceManagerRemove, e.useDeviceManagerRemoveByIntegration, e.useDeviceManagerRemoveDevice, e.useDeviceManagerRemoveLocation, e.useDeviceManagerRunDeviceAction, e.useDeviceManagerSetChildLayout, e.useDeviceManagerSetDeviceLinks, e.useDeviceManagerSetDisabled, e.useDeviceManagerSetDisplay, e.useDeviceManagerSetIntegrationId, e.useDeviceManagerSetLinkDeviceId, e.useDeviceManagerSetLocation, e.useDeviceManagerSetMetadata, e.useDeviceManagerSetName, e.useDeviceManagerSetPrimaryChildEntityId, e.useDeviceManagerSetRole, e.useDeviceManagerSetRoleDisplayDefaults, e.useDeviceManagerSetStreamProfileMap, e.useDeviceManagerSetType, e.useDeviceManagerSetWrapperActive, e.useDeviceManagerTestCreationField, e.useDeviceManagerTestField, e.useDeviceManagerUpdateConfig, e.useDeviceManagerUpdateDeviceField, e.useDeviceManagerUpdateDeviceFieldsBatch, e.useDeviceOpsGetConfigEntries, e.useDeviceOpsGetRawState, e.useDeviceOpsGetSettingsSchema, e.useDeviceOpsGetStreamSources, e.useDeviceOpsRemoveDevice, e.useDeviceOpsRunAction, e.useDeviceOpsSetConfig, e.useDeviceProviderAdoptDiscoveredDevice, e.useDeviceProviderCreateDevice, e.useDeviceProviderDiscoverDevices, e.useDeviceProviderGetChildCreationSchema, e.useDeviceProviderGetDevices, e.useDeviceProviderGetDiscoveryParamsSchema, e.useDeviceProviderGetManualCreationType, e.useDeviceProviderGetStatus, e.useDeviceProviderStart, e.useDeviceProviderStop, e.useDeviceProviderSupportsDiscovery, e.useDeviceProviderSupportsManualCreation, e.useDeviceProviderTestCreationField, e.useDeviceProxy, e.useDeviceProxy$1, e.useDeviceSnapshot, e.useDeviceSnapshotImage, e.useDeviceState, e.useDeviceStateGetAllSnapshots, e.useDeviceStateGetCapSlice, e.useDeviceStateGetSnapshot, e.useDeviceStateSetCapSlice, e.useDeviceStateSlice, e.useDeviceStatusGetStatus, e.useDeviceWebrtc, e.useDevices, e.useDoorbellEvents, e.useDoorbellGetStatus, e.useEnumSensorGetStatus, e.useEventEmitterGetStatus, e.useEventInvalidation, e.useEventStreamLatest, e.useEventStreamMap, e.useEventsGetEventClipUrl, e.useEventsGetEventThumbnail, e.useEventsGetEvents, e.useFaceGalleryAssignFace, e.useFaceGalleryAssignFaces, e.useFaceGalleryCreateIdentity, e.useFaceGalleryDeleteFace, e.useFaceGalleryDeleteIdentity, e.useFaceGalleryGetFaceByTrack, e.useFaceGalleryGetFaceMedia, e.useFaceGalleryListIdentities, e.useFaceGalleryListIdentitySamples, e.useFaceGalleryListRecentFaces, e.useFaceGalleryRemoveSample, e.useFaceGalleryRenameIdentity, e.useFaceGallerySuggestFaceClusters, e.useFaceGalleryUnassignFace, e.useFaceGalleryUnassignFaces, e.useFanControlGetStatus, e.useFanControlSetDirection, e.useFanControlSetOscillating, e.useFanControlSetPercentage, e.useFanControlSetPreset, e.useFeatureProbeGetStatus, e.useFloodGetStatus, e.useGasGetStatus, e.useHumidifierGetStatus, e.useHumidifierSetMode, e.useHumidifierSetOn, e.useHumidifierSetTargetHumidity, e.useHumiditySensorGetStatus, e.useImageGetStatus, e.useImageSettingsGetOptions, e.useImageSettingsGetStatus, e.useImageSettingsSetSettings, e.useIntegrationsCreate, e.useIntegrationsDelete, e.useIntegrationsGet, e.useIntegrationsGetAvailableTypes, e.useIntegrationsGetByAddonId, e.useIntegrationsGetSettings, e.useIntegrationsList, e.useIntegrationsSetSettings, e.useIntegrationsTestConnection, e.useIntegrationsUpdate, e.useIntercomEndTalkSession, e.useIntercomGetStatus, e.useIntercomHandleAnswer, e.useIntercomPushTalkAudio, e.useIntercomStartSession, e.useIntercomStartTalkSession, e.useIntercomStopSession, e.useIsMidWidth, e.useIsMobile, e.useLawnMowerControlDock, e.useLawnMowerControlGetStatus, e.useLawnMowerControlPause, e.useLawnMowerControlStartMowing, e.useLiveBuffer, e.useLiveEvent, e.useLocalNetworkGetAllowedAddresses, e.useLocalNetworkGetConnectionEndpoints, e.useLocalNetworkGetPreferred, e.useLocalNetworkList, e.useLocalNetworkResetAllowlistToBestMatch, e.useLocalNetworkSetAllowedAddresses, e.useLockControlGetStatus, e.useLockControlLock, e.useLockControlOpen, e.useLockControlUnlock, e.useMediaPlayerGetStatus, e.useMediaPlayerNext, e.useMediaPlayerPause, e.useMediaPlayerPlay, e.useMediaPlayerPlayMedia, e.useMediaPlayerPrevious, e.useMediaPlayerSeek, e.useMediaPlayerSelectSource, e.useMediaPlayerSetMute, e.useMediaPlayerSetRepeat, e.useMediaPlayerSetShuffle, e.useMediaPlayerSetVolume, e.useMediaPlayerStop, e.useMeshNetworkGetStatus, e.useMeshNetworkJoin, e.useMeshNetworkLeave, e.useMeshNetworkListPeers, e.useMeshNetworkLogout, e.useMeshNetworkStartLogin, e.useMeshNetworkTestConnection, e.useMetricsProviderCollectSnapshot, e.useMetricsProviderDumpHeapSnapshot, e.useMetricsProviderGetAddonStats, e.useMetricsProviderGetCached, e.useMetricsProviderGetCpuTemperature, e.useMetricsProviderGetCurrent, e.useMetricsProviderGetDiskSpace, e.useMetricsProviderGetGpuInfo, e.useMetricsProviderGetProcessStats, e.useMetricsProviderKillProcess, e.useMetricsProviderListAddonInstances, e.useMetricsProviderListNodeProcesses, e.useMotionDetectionAnalyze, e.useMotionDetectionApplyDeviceSettingsPatch, e.useMotionDetectionGetDeviceLiveContribution, e.useMotionDetectionGetDeviceSettingsContribution, e.useMotionDetectionRemoveCamera, e.useMotionDetectionReset, e.useMotionGetStatus, e.useMotionIsDetected, e.useMotionTriggerGetStatus, e.useMotionTriggerSetMotionTrigger, e.useMotionZonesGetOptions, e.useMotionZonesGetStatus, e.useMotionZonesSetZone, e.useMqttBrokerAddBroker, e.useMqttBrokerGetBrokerConfig, e.useMqttBrokerGetStatus, e.useMqttBrokerListBrokers, e.useMqttBrokerRemoveBroker, e.useMqttBrokerStartEmbeddedBroker, e.useMqttBrokerStopEmbeddedBroker, e.useMqttBrokerTestConnection, e.useNativeObjectDetectionGetStatus, e.useNativeObjectDetectionSetEnabled, e.useNetworkAccessGetEndpoint, e.useNetworkAccessGetStatus, e.useNetworkAccessListEndpoints, e.useNetworkAccessStart, e.useNetworkAccessStop, e.useNetworkQualityGetAllStats, e.useNetworkQualityGetDeviceStats, e.useNetworkQualityReportClientStats, e.useNodesClusterAddonStatus, e.useNodesDeployAddon, e.useNodesExecuteQuery, e.useNodesGetCapUsageGraph, e.useNodesGetNodeAddons, e.useNodesRenameNode, e.useNodesRestartAddon, e.useNodesRestartNode, e.useNodesRestartProcess, e.useNodesSetProcessLogLevel, e.useNodesShutdownNode, e.useNodesTopology, e.useNodesUndeployAddon, e.useNotificationOutputDeleteTarget, e.useNotificationOutputDiscoverTargets, e.useNotificationOutputListTargetKinds, e.useNotificationOutputListTargets, e.useNotificationOutputSend, e.useNotificationOutputSetTargetEnabled, e.useNotificationOutputTestTarget, e.useNotificationOutputUpsertTarget, e.useNotifierCancel, e.useNotifierGetStatus, e.useNotifierSend, e.useNumericSensorGetStatus, e.useOptimisticSlice, e.useOptionalSystem, e.useOptionalWidgetRegistry, e.useOsdGetStatus, e.useOsdSetOverlay, e.usePTZ, e.usePetFeederCallPet, e.usePetFeederCancelFeed, e.usePetFeederFeed, e.usePetFeederGetStatus, e.usePetFeederMarkFoodReplenished, e.usePetFeederPlaySound, e.usePetFeederResetDesiccant, e.usePetFeederSetChildLock, e.usePetFeederSetFeedSound, e.usePetFeederSetIndicatorLight, e.usePetFeederSetVolume, e.usePipelineAnalyticsApplyDeviceSettingsPatch, e.usePipelineAnalyticsClearTracks, e.usePipelineAnalyticsGetActiveTracks, e.usePipelineAnalyticsGetAudioEvents, e.usePipelineAnalyticsGetDeviceLiveContribution, e.usePipelineAnalyticsGetDeviceSettingsContribution, e.usePipelineAnalyticsGetEventDensity, e.usePipelineAnalyticsGetEventMedia, e.usePipelineAnalyticsGetKeyEvents, e.usePipelineAnalyticsGetMotionEvents, e.usePipelineAnalyticsGetObjectEvents, e.usePipelineAnalyticsGetTrack, e.usePipelineAnalyticsGetTrackMedia, e.usePipelineAnalyticsListTracks, e.usePipelineAnalyticsPruneEventsBefore, e.usePipelineAnalyticsSearchObjectEvents, e.usePipelineExecutorCacheFrameInPool, e.usePipelineExecutorClearDeviceOverrides, e.usePipelineExecutorDeleteModel, e.usePipelineExecutorDeleteTemplate, e.usePipelineExecutorDownloadModel, e.usePipelineExecutorGetAddonModels, e.usePipelineExecutorGetAudioCapabilities, e.usePipelineExecutorGetAvailableEngines, e.usePipelineExecutorGetCapabilities, e.usePipelineExecutorGetDefaultSteps, e.usePipelineExecutorGetDetectionConfigSchema, e.usePipelineExecutorGetEffectiveTuning, e.usePipelineExecutorGetEngineProvisioning, e.usePipelineExecutorGetGlobalPipelineConfig, e.usePipelineExecutorGetGlobalSteps, e.usePipelineExecutorGetOrchestratorConfigSchema, e.usePipelineExecutorGetReferenceAudio, e.usePipelineExecutorGetReferenceAudioFiles, e.usePipelineExecutorGetReferenceImage, e.usePipelineExecutorGetSchema, e.usePipelineExecutorGetSelectedEngine, e.usePipelineExecutorGetVideoPipelineSteps, e.usePipelineExecutorInferCached, e.usePipelineExecutorKillEngine, e.usePipelineExecutorListLoadedEngines, e.usePipelineExecutorListReferenceImages, e.usePipelineExecutorListTemplates, e.usePipelineExecutorReprobeEngine, e.usePipelineExecutorRunAudioTest, e.usePipelineExecutorRunPipeline, e.usePipelineExecutorRunPipelineBatch, e.usePipelineExecutorSaveTemplate, e.usePipelineExecutorSetVideoPipelineSteps, e.usePipelineExecutorSpinEngine, e.usePipelineExecutorUncacheFrame, e.usePipelineExecutorUpdateTemplate, e.usePipelineExecutorValidatePipeline, e.usePipelineOrchestratorApplyDeviceSettingsPatch, e.usePipelineOrchestratorAssignAudio, e.usePipelineOrchestratorAssignPipeline, e.usePipelineOrchestratorDeleteTemplate, e.usePipelineOrchestratorGetAgentLoad, e.usePipelineOrchestratorGetAgentSettings, e.usePipelineOrchestratorGetAudioAssignment, e.usePipelineOrchestratorGetAudioAssignments, e.usePipelineOrchestratorGetAudioNodeLoad, e.usePipelineOrchestratorGetCameraMetrics, e.usePipelineOrchestratorGetCameraSettings, e.usePipelineOrchestratorGetCameraStatus, e.usePipelineOrchestratorGetCameraStatuses, e.usePipelineOrchestratorGetCameraStepOverrides, e.usePipelineOrchestratorGetCapabilityBindings, e.usePipelineOrchestratorGetDeviceLiveContribution, e.usePipelineOrchestratorGetDeviceSettingsContribution, e.usePipelineOrchestratorGetGlobalMetrics, e.usePipelineOrchestratorGetIngestOwner, e.usePipelineOrchestratorGetPipelineAssignment, e.usePipelineOrchestratorGetPipelineAssignments, e.usePipelineOrchestratorListAgentSettings, e.usePipelineOrchestratorListTemplates, e.usePipelineOrchestratorRebalance, e.usePipelineOrchestratorRemoveAgentSettings, e.usePipelineOrchestratorResetNodePipelineDefaults, e.usePipelineOrchestratorResolvePipeline, e.usePipelineOrchestratorSaveTemplate, e.usePipelineOrchestratorSetAgentAddonDefaults, e.usePipelineOrchestratorSetAgentCapabilities, e.usePipelineOrchestratorSetAgentDetectWeight, e.usePipelineOrchestratorSetAgentMaxCameras, e.usePipelineOrchestratorSetAgentReachableHost, e.usePipelineOrchestratorSetCameraPipelineForAgent, e.usePipelineOrchestratorSetCameraStepOverride, e.usePipelineOrchestratorSetCameraStepToggle, e.usePipelineOrchestratorSetCapabilityBinding, e.usePipelineOrchestratorUnassignAudio, e.usePipelineOrchestratorUnassignPipeline, e.usePipelineOrchestratorUpdateTemplate, e.usePipelineRunnerAttachCamera, e.usePipelineRunnerDetachCamera, e.usePipelineRunnerGetAllCameraMetrics, e.usePipelineRunnerGetCameraMetrics, e.usePipelineRunnerGetLocalCameras, e.usePipelineRunnerGetLocalLoad, e.usePipelineRunnerGetLocalMetrics, e.usePipelineRunnerGetNativeCrop, e.usePipelineRunnerReportMotion, e.usePlateGalleryCorrectPlateText, e.usePlateGalleryDeletePlate, e.usePlateGalleryGetPlateByTrack, e.usePlateGalleryGetPlateMedia, e.usePlateGalleryListPlates, e.usePlateGallerySearchPlates, e.usePlateGallerySuggestPlateClusters, e.usePlayerOverlayLayer, e.usePlayerOverlayLayers, e.usePlayerToolbarButton, e.usePlayerToolbarButtons, e.usePowerMeterGetStatus, e.usePresenceGetStatus, e.usePressureSensorGetStatus, e.usePrivacyMaskGetOptions, e.usePrivacyMaskGetStatus, e.usePrivacyMaskSetMask, e.usePtzAutotrackGetSettings, e.usePtzAutotrackGetStatus, e.usePtzAutotrackSetEnabled, e.usePtzAutotrackSetSettings, e.usePtzContinuousMove, e.usePtzDeletePreset, e.usePtzGetOptions, e.usePtzGetPosition, e.usePtzGetPresets, e.usePtzGetStatus, e.usePtzGoHome, e.usePtzGoToPreset, e.usePtzMove, e.usePtzSavePreset, e.usePtzSetAutofocus, e.usePtzStop, e.useRebootReboot, e.useRecordedPlayback, e.useRecordingApplyDeviceSettingsPatch, e.useRecordingGetAvailability, e.useRecordingGetDaysWithRecordings, e.useRecordingGetDeviceConfig, e.useRecordingGetDeviceLiveContribution, e.useRecordingGetDeviceSettingsContribution, e.useRecordingGetPlaybackManifest, e.useRecordingGetStatus, e.useRecordingGetStorageUsage, e.useRecordingLocateSegment, e.useRecordingPruneFootage, e.useRecordingReadSegmentBytes, e.useRecordingRescanStorage, e.useRecordingSetDeviceConfig, e.useRemoteComponent, e.useScriptRunnerGetStatus, e.useScriptRunnerRun, e.useScriptRunnerStop, e.useScrubController, e.useServerManagementApplyServerUpdate, e.useServerManagementCheckServerUpdate, e.useServerManagementGetServerPackageStatus, e.useServerManagementRestartServer, e.useServerManagementRollbackServerUpdate, e.useSettingsStoreCount, e.useSettingsStoreDeclareCollection, e.useSettingsStoreDelete, e.useSettingsStoreGet, e.useSettingsStoreHistogram, e.useSettingsStoreInsert, e.useSettingsStoreIsEmpty, e.useSettingsStoreQuery, e.useSettingsStoreSet, e.useSettingsStoreUpdate, e.useSmokeGetStatus, e.useSnapshotApplyDeviceSettingsPatch, e.useSnapshotGetDeviceLiveContribution, e.useSnapshotGetDeviceSettingsContribution, e.useSnapshotGetSnapshot, e.useSnapshotGetSnapshotOverview, e.useSnapshotGetStatus, e.useSnapshotInvalidateCache, e.useStorageAbortUpload, e.useStorageBeginDownload, e.useStorageBeginUpload, e.useStorageDelete, e.useStorageDeleteLocation, e.useStorageEndDownload, e.useStorageExists, e.useStorageFinalizeUpload, e.useStorageGetAvailableSpace, e.useStorageGetDefaultLocation, e.useStorageList, e.useStorageListLocationDeclarations, e.useStorageListLocations, e.useStorageListProviders, e.useStorageRead, e.useStorageReadChunk, e.useStorageResolve, e.useStorageTestConfig, e.useStorageTestLocation, e.useStorageUpsertLocation, e.useStorageWrite, e.useStorageWriteChunk, e.useStreamBrokerApplyDeviceSettingsPatch, e.useStreamBrokerAssignProfile, e.useStreamBrokerGetAllRtspEntries, e.useStreamBrokerGetBrokerStats, e.useStreamBrokerGetDeviceLiveContribution, e.useStreamBrokerGetDeviceSettingsContribution, e.useStreamBrokerGetPreBufferInfo, e.useStreamBrokerGetRtspEntry, e.useStreamBrokerGetRtspPort, e.useStreamBrokerGetStreamUrl, e.useStreamBrokerGetStreamWithCodec, e.useStreamBrokerIsRtspEnabled, e.useStreamBrokerKillClient, e.useStreamBrokerListAllCameraStreams, e.useStreamBrokerListAllProfileSlots, e.useStreamBrokerListClients, e.useStreamBrokerProbeStream, e.useStreamBrokerPublishCameraStream, e.useStreamBrokerPullAudioChunks, e.useStreamBrokerPullFrameHandles, e.useStreamBrokerRegenerateRtspToken, e.useStreamBrokerReleaseStreamWithCodec, e.useStreamBrokerRestartProfile, e.useStreamBrokerRetractCameraStream, e.useStreamBrokerSetPreBufferDuration, e.useStreamBrokerSetRtspEnabled, e.useStreamBrokerSubscribeAudioChunks, e.useStreamBrokerSubscribeFrames, e.useStreamBrokerUnassignProfile, e.useStreamBrokerUnsubscribeAudioChunks, e.useStreamBrokerUnsubscribeFrames, e.useStreamCatalogGetCatalog, e.useStreamParamsGetConfigSchema, e.useStreamParamsGetOptions, e.useStreamParamsGetStatus, e.useStreamParamsSetProfile, e.useSwitchGetStatus, e.useSwitchSetState, a = e.useSystem, e.useSystem$1, e.useSystemFeatureFlags, e.useSystemForceRetentionCleanup, e.useSystemGetRetentionConfig, e.useSystemHealth, e.useSystemInfo, e.useSystemMutation, e.useSystemNetworkAddresses, e.useSystemQuery, e.useSystemSetRetentionConfig, e.useTamperGetStatus, e.useTemperatureSensorGetStatus, e.useThemeMode, e.useToastOnToast, e.useTurnProviderGetTurnServers, e.useUpdateGetStatus, e.useUpdateInstallUpdate, e.useUserManagementConfirmTotp, e.useUserManagementCreateApiKey, e.useUserManagementCreateScopedToken, e.useUserManagementCreateUser, e.useUserManagementDeleteUser, e.useUserManagementDisableTotp, e.useUserManagementGetTotpStatus, e.useUserManagementListApiKeys, e.useUserManagementListOauthSessions, e.useUserManagementListScopedTokens, e.useUserManagementListUsers, e.useUserManagementOauthExchangeCode, e.useUserManagementOauthIssueCode, e.useUserManagementOauthRefresh, e.useUserManagementOauthVerifyAccessToken, e.useUserManagementResetPassword, e.useUserManagementRevokeApiKey, e.useUserManagementRevokeOauthSession, e.useUserManagementRevokeScopedToken, e.useUserManagementSetUserScopes, e.useUserManagementSetupTotp, e.useUserManagementUpdateUser, e.useUserManagementValidateApiKey, e.useUserManagementValidateCredentials, e.useUserManagementValidateScopedToken, e.useUserManagementVerifyTotp, e.useVacuumControlGetStatus, e.useVacuumControlLocate, e.useVacuumControlPause, e.useVacuumControlReturnToBase, e.useVacuumControlSetFanSpeed, e.useVacuumControlStart, e.useVacuumControlStop, e.useValveClose, e.useValveGetStatus, e.useValveOpen, e.useValveSetPosition, e.useValveStop, e.useVibrationGetStatus, e.useVideoclipsGetClipPlayback, e.useVideoclipsListClips, e.useVodPlayback, e.useWaterHeaterGetStatus, e.useWaterHeaterSetAway, e.useWaterHeaterSetOperationMode, e.useWaterHeaterSetTargetTemp, e.useWeatherGetStatus, e.useWebrtcSessionAddIceCandidate, e.useWebrtcSessionCloseSession, e.useWebrtcSessionCreateSession, e.useWebrtcSessionGetIceCandidates, e.useWebrtcSessionGetSessionState, e.useWebrtcSessionHandleAnswer, e.useWebrtcSessionHandleOffer, e.useWebrtcSessionHasAdaptiveBitrate, e.useWebrtcSessionListStreams, e.useWidget, e.useWidgetMetadata, e.useWidgetRegistry, e.useZoneAnalyticsGetCameraHistory, e.useZoneAnalyticsGetCurrentSnapshot, e.useZoneAnalyticsGetUnzonedHistory, e.useZoneAnalyticsGetZoneHistory, e.useZoneEditing, e.useZoneRulesListRules, e.useZoneRulesSetRules, e.useZonesAddZone, e.useZonesListZones, e.useZonesRemoveZone, e.useZonesUpdateZone, e.vacuumStateMeta, e.validateScopes, e.valveStateMeta, e.waterHeaterPhase, e.waterHeaterTint, e.weatherConditionMeta, e.weatherTint, e.default;
20
20
  }, s = i.share["default:@camstack/ui-library"];
21
21
  s === void 0 ? n.then(() => {
22
22
  if (s = i.share["default:@camstack/ui-library"], s === void 0) throw Error("[Module Federation] Shared module @camstack/ui-library was imported before federation bootstrap finished.");
@@ -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-biwV9TkV.js");
6
+ const require_dist = require("../dist-CiAMdD_k.js");
7
7
  let stream = require("stream");
8
8
  stream = require_chunk.__toESM(stream, 1);
9
9
  let http = require("http");
@@ -12123,6 +12123,36 @@ async function verifyAuthenticationResponse(options) {
12123
12123
  * auth like Touch ID), `usb`, `nfc`, `ble`.
12124
12124
  */
12125
12125
  var COLLECTION = "user_passkeys";
12126
+ /**
12127
+ * Per-user passkey preferences — one row per userId, keyed upserts via
12128
+ * the settings-store `set` surface. Today a single flag: whether the
12129
+ * user OPTED IN to their passkey doubling as a mandatory second factor
12130
+ * after a password login (default OFF — enrolling a passkey only
12131
+ * enables passkey-first sign-in).
12132
+ */
12133
+ var PREF_COLLECTION = "user_passkey_prefs";
12134
+ var PREF_COLUMNS = [
12135
+ {
12136
+ name: "userId",
12137
+ type: "TEXT",
12138
+ primaryKey: true,
12139
+ notNull: true
12140
+ },
12141
+ {
12142
+ name: "secondFactorEnabled",
12143
+ type: "BOOLEAN",
12144
+ notNull: true
12145
+ },
12146
+ {
12147
+ name: "updatedAt",
12148
+ type: "INTEGER",
12149
+ notNull: true
12150
+ }
12151
+ ];
12152
+ var StoredPreferenceSchema = require_dist.object({
12153
+ secondFactorEnabled: require_dist.boolean(),
12154
+ updatedAt: require_dist.number()
12155
+ });
12126
12156
  var COLUMNS = [
12127
12157
  {
12128
12158
  name: "credentialId",
@@ -12173,6 +12203,10 @@ async function declarePasskeySchema(store) {
12173
12203
  columns: ["userId"]
12174
12204
  }]
12175
12205
  });
12206
+ await store.declareCollection.mutate({
12207
+ collection: PREF_COLLECTION,
12208
+ columns: PREF_COLUMNS
12209
+ });
12176
12210
  }
12177
12211
  function parseRow(data) {
12178
12212
  const credentialId = data["credentialId"];
@@ -12248,6 +12282,31 @@ var PasskeyStore = class {
12248
12282
  key: credentialId
12249
12283
  });
12250
12284
  }
12285
+ /**
12286
+ * Whether `userId` opted in to the passkey-as-second-factor gate.
12287
+ * Fail-safe: a missing or malformed row reads as `false` — the
12288
+ * password login flow must never demand a factor the user did not
12289
+ * explicitly enable.
12290
+ */
12291
+ async getSecondFactorPreference(userId) {
12292
+ const raw = await this.store.get.query({
12293
+ collection: PREF_COLLECTION,
12294
+ key: userId
12295
+ });
12296
+ const parsed = StoredPreferenceSchema.safeParse(raw);
12297
+ return parsed.success ? parsed.data.secondFactorEnabled : false;
12298
+ }
12299
+ async setSecondFactorPreference(userId, enabled) {
12300
+ const value = {
12301
+ secondFactorEnabled: enabled,
12302
+ updatedAt: Date.now()
12303
+ };
12304
+ await this.store.set.mutate({
12305
+ collection: PREF_COLLECTION,
12306
+ key: userId,
12307
+ value
12308
+ });
12309
+ }
12251
12310
  };
12252
12311
  //#endregion
12253
12312
  //#region src/webauthn/widget-catalog.ts
@@ -12438,7 +12497,9 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12438
12497
  beginDiscoverableAuthentication: async () => this.beginDiscoverableAuthentication(),
12439
12498
  finishDiscoverableAuthentication: async ({ response }) => this.finishDiscoverableAuthentication(response),
12440
12499
  listPasskeys: async ({ userId }) => this.listPasskeys(userId),
12441
- removePasskey: async ({ userId, credentialId }) => this.removePasskey(userId, credentialId)
12500
+ removePasskey: async ({ userId, credentialId }) => this.removePasskey(userId, credentialId),
12501
+ getSecondFactorPreference: async ({ userId }) => this.getSecondFactorPreference(userId),
12502
+ setSecondFactorPreference: async ({ userId, enabled }) => this.setSecondFactorPreference(userId, enabled)
12442
12503
  };
12443
12504
  const widgetsProvider = { listWidgets: async () => authWebauthnWidgets };
12444
12505
  const loginMethodProvider = { getLoginMethods: async () => authWebauthnLoginMethods };
@@ -12794,6 +12855,20 @@ var AuthWebauthnAddon = class extends require_dist.BaseAddon {
12794
12855
  transports: [...r.transports]
12795
12856
  }));
12796
12857
  }
12858
+ /**
12859
+ * Second-factor preference (opt-in, default OFF). Enrolling a passkey
12860
+ * only enables passkey-first sign-in; the password login flow demands
12861
+ * the passkey second leg ONLY when this flag is explicitly enabled.
12862
+ */
12863
+ async getSecondFactorPreference(userId) {
12864
+ if (!this.store) return { enabled: false };
12865
+ return { enabled: await this.store.getSecondFactorPreference(userId) };
12866
+ }
12867
+ async setSecondFactorPreference(userId, enabled) {
12868
+ if (!this.store) throw new Error("passkey store unavailable");
12869
+ await this.store.setSecondFactorPreference(userId, enabled);
12870
+ return { success: true };
12871
+ }
12797
12872
  async removePasskey(userId, credentialId) {
12798
12873
  if (!this.store) throw new Error("passkey store unavailable");
12799
12874
  const existing = await this.store.findByCredentialId(credentialId);
@@ -1,4 +1,4 @@
1
- import { a as loginMethodCapability, c as BaseAddon, d as string, l as array, n as addonWidgetsSourceCapability, o as userPasskeysCapability, u as object } from "../dist-BopfLZ9P.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-DYqeeRNy.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import Stream from "stream";
4
4
  import http from "http";
@@ -12149,6 +12149,36 @@ async function verifyAuthenticationResponse(options) {
12149
12149
  * auth like Touch ID), `usb`, `nfc`, `ble`.
12150
12150
  */
12151
12151
  var COLLECTION = "user_passkeys";
12152
+ /**
12153
+ * Per-user passkey preferences — one row per userId, keyed upserts via
12154
+ * the settings-store `set` surface. Today a single flag: whether the
12155
+ * user OPTED IN to their passkey doubling as a mandatory second factor
12156
+ * after a password login (default OFF — enrolling a passkey only
12157
+ * enables passkey-first sign-in).
12158
+ */
12159
+ var PREF_COLLECTION = "user_passkey_prefs";
12160
+ var PREF_COLUMNS = [
12161
+ {
12162
+ name: "userId",
12163
+ type: "TEXT",
12164
+ primaryKey: true,
12165
+ notNull: true
12166
+ },
12167
+ {
12168
+ name: "secondFactorEnabled",
12169
+ type: "BOOLEAN",
12170
+ notNull: true
12171
+ },
12172
+ {
12173
+ name: "updatedAt",
12174
+ type: "INTEGER",
12175
+ notNull: true
12176
+ }
12177
+ ];
12178
+ var StoredPreferenceSchema = object({
12179
+ secondFactorEnabled: boolean(),
12180
+ updatedAt: number()
12181
+ });
12152
12182
  var COLUMNS = [
12153
12183
  {
12154
12184
  name: "credentialId",
@@ -12199,6 +12229,10 @@ async function declarePasskeySchema(store) {
12199
12229
  columns: ["userId"]
12200
12230
  }]
12201
12231
  });
12232
+ await store.declareCollection.mutate({
12233
+ collection: PREF_COLLECTION,
12234
+ columns: PREF_COLUMNS
12235
+ });
12202
12236
  }
12203
12237
  function parseRow(data) {
12204
12238
  const credentialId = data["credentialId"];
@@ -12274,6 +12308,31 @@ var PasskeyStore = class {
12274
12308
  key: credentialId
12275
12309
  });
12276
12310
  }
12311
+ /**
12312
+ * Whether `userId` opted in to the passkey-as-second-factor gate.
12313
+ * Fail-safe: a missing or malformed row reads as `false` — the
12314
+ * password login flow must never demand a factor the user did not
12315
+ * explicitly enable.
12316
+ */
12317
+ async getSecondFactorPreference(userId) {
12318
+ const raw = await this.store.get.query({
12319
+ collection: PREF_COLLECTION,
12320
+ key: userId
12321
+ });
12322
+ const parsed = StoredPreferenceSchema.safeParse(raw);
12323
+ return parsed.success ? parsed.data.secondFactorEnabled : false;
12324
+ }
12325
+ async setSecondFactorPreference(userId, enabled) {
12326
+ const value = {
12327
+ secondFactorEnabled: enabled,
12328
+ updatedAt: Date.now()
12329
+ };
12330
+ await this.store.set.mutate({
12331
+ collection: PREF_COLLECTION,
12332
+ key: userId,
12333
+ value
12334
+ });
12335
+ }
12277
12336
  };
12278
12337
  //#endregion
12279
12338
  //#region src/webauthn/widget-catalog.ts
@@ -12427,7 +12486,9 @@ var AuthWebauthnAddon = class extends BaseAddon {
12427
12486
  beginDiscoverableAuthentication: async () => this.beginDiscoverableAuthentication(),
12428
12487
  finishDiscoverableAuthentication: async ({ response }) => this.finishDiscoverableAuthentication(response),
12429
12488
  listPasskeys: async ({ userId }) => this.listPasskeys(userId),
12430
- removePasskey: async ({ userId, credentialId }) => this.removePasskey(userId, credentialId)
12489
+ removePasskey: async ({ userId, credentialId }) => this.removePasskey(userId, credentialId),
12490
+ getSecondFactorPreference: async ({ userId }) => this.getSecondFactorPreference(userId),
12491
+ setSecondFactorPreference: async ({ userId, enabled }) => this.setSecondFactorPreference(userId, enabled)
12431
12492
  };
12432
12493
  const widgetsProvider = { listWidgets: async () => authWebauthnWidgets };
12433
12494
  const loginMethodProvider = { getLoginMethods: async () => authWebauthnLoginMethods };
@@ -12783,6 +12844,20 @@ var AuthWebauthnAddon = class extends BaseAddon {
12783
12844
  transports: [...r.transports]
12784
12845
  }));
12785
12846
  }
12847
+ /**
12848
+ * Second-factor preference (opt-in, default OFF). Enrolling a passkey
12849
+ * only enables passkey-first sign-in; the password login flow demands
12850
+ * the passkey second leg ONLY when this flag is explicitly enabled.
12851
+ */
12852
+ async getSecondFactorPreference(userId) {
12853
+ if (!this.store) return { enabled: false };
12854
+ return { enabled: await this.store.getSecondFactorPreference(userId) };
12855
+ }
12856
+ async setSecondFactorPreference(userId, enabled) {
12857
+ if (!this.store) throw new Error("passkey store unavailable");
12858
+ await this.store.setSecondFactorPreference(userId, enabled);
12859
+ return { success: true };
12860
+ }
12786
12861
  async removePasskey(userId, credentialId) {
12787
12862
  if (!this.store) throw new Error("passkey store unavailable");
12788
12863
  const existing = await this.store.findByCredentialId(credentialId);
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.1.37",
39
+ version: "1.1.42",
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.23",
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.1.31",
84
+ version: "1.1.34",
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-DW5sgIHW.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-D12RYg-E.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.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "CamStack 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",