@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.
- package/dist/{dist-biwV9TkV.js → dist-CiAMdD_k.js} +166 -8
- package/dist/{dist-BopfLZ9P.mjs → dist-DYqeeRNy.mjs} +155 -9
- package/dist/magic-link/auth-magic-link.addon.js +1 -1
- package/dist/magic-link/auth-magic-link.addon.mjs +1 -1
- package/dist/oidc/auth-oidc.addon.js +1 -1
- package/dist/oidc/auth-oidc.addon.mjs +1 -1
- package/dist/webauthn/_stub.js +59 -13
- package/dist/webauthn/{_virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-DW5sgIHW.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_auth_webauthn_widgets-D12RYg-E.mjs} +3 -3
- package/dist/webauthn/{_virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-EnxrfqY5.mjs → _virtual_mf___mfe_internal__addon_auth_webauthn_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CdMP8xMr.mjs} +1 -1
- package/dist/webauthn/auth-webauthn.addon.js +77 -2
- package/dist/webauthn/auth-webauthn.addon.mjs +77 -2
- package/dist/webauthn/{hostInit-DKNSGMxo.mjs → hostInit-BiNL19Q-.mjs} +3 -3
- package/dist/webauthn/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -4627,7 +4627,7 @@ function _instanceof(cls, params = {}) {
|
|
|
4627
4627
|
return inst;
|
|
4628
4628
|
}
|
|
4629
4629
|
//#endregion
|
|
4630
|
-
//#region ../types/dist/sleep-
|
|
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-
|
|
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,
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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();
|
package/dist/webauthn/_stub.js
CHANGED
|
@@ -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-
|
|
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 =
|
|
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
|
-
},
|
|
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)
|
|
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: () =>
|
|
477
|
-
disabled:
|
|
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:
|
|
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.
|
|
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
|
-
|
|
589
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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-
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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-
|
|
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.
|
|
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",
|