@camstack/addon-cloudflare 1.1.21 → 1.1.23
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-B_c-nZHY.mjs → dist-BUzNAvoc.mjs} +231 -9
- package/dist/{dist-CKwL81JS.js → dist-gkRT1B9v.js} +231 -9
- package/dist/tunnel/cloudflare-tunnel.addon.js +1 -1
- package/dist/tunnel/cloudflare-tunnel.addon.mjs +1 -1
- package/dist/turn/cloudflare-turn.addon.js +1 -1
- package/dist/turn/cloudflare-turn.addon.mjs +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-Baang_XW.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);
|
|
@@ -10469,6 +10481,7 @@ var PipelineAddonSchemaSchema = object({
|
|
|
10469
10481
|
defaultModelId: string(),
|
|
10470
10482
|
defaultModelIdByFormat: record(string(), string()).optional(),
|
|
10471
10483
|
enabledByDefault: boolean().optional(),
|
|
10484
|
+
backfillIntoExistingOverrides: boolean().optional(),
|
|
10472
10485
|
defaultConfidence: number(),
|
|
10473
10486
|
group: string().optional(),
|
|
10474
10487
|
configSchema: array(ConfigFieldBridge).readonly().optional()
|
|
@@ -10650,7 +10663,15 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
10650
10663
|
image: _instanceof(Uint8Array).optional(),
|
|
10651
10664
|
referenceImage: string().optional(),
|
|
10652
10665
|
deviceId: number().optional(),
|
|
10653
|
-
sessionId: string().optional()
|
|
10666
|
+
sessionId: string().optional(),
|
|
10667
|
+
/**
|
|
10668
|
+
* Execution plane. 'full' (default) runs the whole tree — benchmark,
|
|
10669
|
+
* reference-image, and detail-subtree calls. 'frame' is the live
|
|
10670
|
+
* per-frame dispatch: ONLY root-plane steps run; crop children
|
|
10671
|
+
* (inputClasses ≠ null) are skipped and served per-track via
|
|
10672
|
+
* pipelineRunner.runDetailSubtree (two-plane design).
|
|
10673
|
+
*/
|
|
10674
|
+
plane: _enum(["full", "frame"]).optional()
|
|
10654
10675
|
}), PipelineRunResultBridge, { kind: "mutation" }), method(object({
|
|
10655
10676
|
engine: PipelineEngineChoiceSchema.optional(),
|
|
10656
10677
|
steps: array(PipelineStepInputSchema).min(1),
|
|
@@ -10775,6 +10796,47 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(ZoneSchema).read
|
|
|
10775
10796
|
auth: "admin"
|
|
10776
10797
|
}), object({ zones: array(ZoneSchema).readonly() });
|
|
10777
10798
|
/**
|
|
10799
|
+
* A bounding box in NORMALIZED [0,1] frame coordinates for `getNativeCrop`. The
|
|
10800
|
+
* decode worker resolves it against the RETAINED native frame's real pixel dims,
|
|
10801
|
+
* so the caller supplies only the detection-res bbox divided by the detection
|
|
10802
|
+
* dims — no native resolution to plumb.
|
|
10803
|
+
*/
|
|
10804
|
+
var NativeCropBboxSchema = object({
|
|
10805
|
+
x: number(),
|
|
10806
|
+
y: number(),
|
|
10807
|
+
w: number(),
|
|
10808
|
+
h: number()
|
|
10809
|
+
});
|
|
10810
|
+
/** Result of a best-effort native-resolution crop (`getNativeCrop`). */
|
|
10811
|
+
var NativeCropResultSchema = object({
|
|
10812
|
+
/** Packed rgb (24-bit) pixels of the crop. */
|
|
10813
|
+
bytes: _instanceof(Uint8Array),
|
|
10814
|
+
width: number().int().positive(),
|
|
10815
|
+
height: number().int().positive()
|
|
10816
|
+
});
|
|
10817
|
+
/** Parent detection context passed to `runDetailSubtree` — the crop's
|
|
10818
|
+
* originating detection, in FRAME-space coordinates. Reuses
|
|
10819
|
+
* `NativeCropBboxSchema`'s `{x,y,w,h}` shape (same numeric fields; here
|
|
10820
|
+
* the coordinates are frame-space rather than getNativeCrop's
|
|
10821
|
+
* normalized [0,1] convention). */
|
|
10822
|
+
var DetailParentSchema = object({
|
|
10823
|
+
bbox: NativeCropBboxSchema,
|
|
10824
|
+
className: string()
|
|
10825
|
+
});
|
|
10826
|
+
/** One child-step result from `runDetailSubtree` — an embedding, label,
|
|
10827
|
+
* or refined detection produced by running the crop-subtree on a
|
|
10828
|
+
* single tracked detection. */
|
|
10829
|
+
var DetailResultSchema = object({
|
|
10830
|
+
stepId: string(),
|
|
10831
|
+
className: string(),
|
|
10832
|
+
score: number(),
|
|
10833
|
+
/** FRAME-space bbox (already mapped back from crop space). */
|
|
10834
|
+
bbox: NativeCropBboxSchema.optional(),
|
|
10835
|
+
embedding: string().optional(),
|
|
10836
|
+
label: string().optional(),
|
|
10837
|
+
alignedCropJpeg: string().optional()
|
|
10838
|
+
});
|
|
10839
|
+
/**
|
|
10778
10840
|
* Per-camera tunable ranges + defaults. Single source of truth used
|
|
10779
10841
|
* by both the Zod data schema (validation + default fallback) and
|
|
10780
10842
|
* the device settings UI (slider min/max/step). Touch one place and
|
|
@@ -11030,7 +11092,17 @@ var RunnerLocalMetricsSchema = object({
|
|
|
11030
11092
|
avgInferenceTimeMs: number(),
|
|
11031
11093
|
queueDepth: number()
|
|
11032
11094
|
});
|
|
11033
|
-
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())
|
|
11095
|
+
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({
|
|
11096
|
+
handle: FrameHandleSchema,
|
|
11097
|
+
bbox: NativeCropBboxSchema,
|
|
11098
|
+
maxWidth: number().int().positive().optional()
|
|
11099
|
+
}), NativeCropResultSchema.nullable()), method(object({
|
|
11100
|
+
deviceId: number(),
|
|
11101
|
+
frameHandle: FrameHandleSchema.optional(),
|
|
11102
|
+
cropJpeg: string().optional(),
|
|
11103
|
+
parent: DetailParentSchema,
|
|
11104
|
+
steps: array(string()).optional()
|
|
11105
|
+
}), object({ details: array(DetailResultSchema) }).nullable(), { kind: "mutation" });
|
|
11034
11106
|
object({
|
|
11035
11107
|
detected: boolean(),
|
|
11036
11108
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -15106,7 +15178,17 @@ var TrackSchema = object({
|
|
|
15106
15178
|
/** Cumulative normalized distance travelled (0..1 units = full frame width). */
|
|
15107
15179
|
totalDistance: number(),
|
|
15108
15180
|
state: TrackStateSchema,
|
|
15109
|
-
active: boolean()
|
|
15181
|
+
active: boolean(),
|
|
15182
|
+
/** Deterministic key-event importance score in [0,1] (server-computed at
|
|
15183
|
+
* track expiry, recomputed on late label). Absent on legacy rows written
|
|
15184
|
+
* before scoring shipped — consumers degrade to absence / compute-on-read. */
|
|
15185
|
+
importance: number().optional(),
|
|
15186
|
+
/** Id of the track's highest-confidence ObjectEvent (its representative
|
|
15187
|
+
* "best" frame). Absent when the track produced no object events. */
|
|
15188
|
+
bestEventId: string().optional(),
|
|
15189
|
+
/** Tag of the importance sub-signal that dominated the score
|
|
15190
|
+
* (identity|dwell|proximity|class|confidence|travel|zone). */
|
|
15191
|
+
importanceReason: string().optional()
|
|
15110
15192
|
});
|
|
15111
15193
|
var BaseEventFields = {
|
|
15112
15194
|
id: string(),
|
|
@@ -15171,8 +15253,18 @@ var ObjectEventSchema = object({
|
|
|
15171
15253
|
frameHeight: number().optional(),
|
|
15172
15254
|
/** MediaStore key for the crop attached to this event (if any). */
|
|
15173
15255
|
mediaKey: string().optional(),
|
|
15256
|
+
/** Design B: MediaStore key of the track's native-resolution key frame (the
|
|
15257
|
+
* best-detection full frame). Resolve via the event-media data-plane
|
|
15258
|
+
* (`/addon/<addonId>/event-media/<keyFrameMediaKey>`) for a detail view that
|
|
15259
|
+
* draws `bbox` over the native frame. Absent on legacy rows / non-decoded
|
|
15260
|
+
* sources — consumers fall back to `mediaKey` (the tight crop). */
|
|
15261
|
+
keyFrameMediaKey: string().optional(),
|
|
15174
15262
|
/** Populated by B5 (recording playback URL for this event). */
|
|
15175
|
-
mediaUrl: string().optional()
|
|
15263
|
+
mediaUrl: string().optional(),
|
|
15264
|
+
/** The parent track's key-event importance [0,1], propagated to every object
|
|
15265
|
+
* event of the track (so an event row can be sorted by importance without a
|
|
15266
|
+
* track join). Absent on legacy rows / before the track was scored. */
|
|
15267
|
+
importance: number().optional()
|
|
15176
15268
|
});
|
|
15177
15269
|
var AudioEventSchema = object({
|
|
15178
15270
|
...BaseEventFields,
|
|
@@ -15196,7 +15288,8 @@ var MediaFileKindEnum = _enum([
|
|
|
15196
15288
|
"fullFrame",
|
|
15197
15289
|
"fullFrameBoxed",
|
|
15198
15290
|
"faceCrop",
|
|
15199
|
-
"plateCrop"
|
|
15291
|
+
"plateCrop",
|
|
15292
|
+
"keyFrame"
|
|
15200
15293
|
]);
|
|
15201
15294
|
var MediaFileSchema = object({
|
|
15202
15295
|
key: string(),
|
|
@@ -15217,6 +15310,32 @@ var DeviceEventQueryInput = object({
|
|
|
15217
15310
|
projection: _enum(["full", "slim"]).optional()
|
|
15218
15311
|
});
|
|
15219
15312
|
var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: string().optional() });
|
|
15313
|
+
var KeyEventQueryInput = object({
|
|
15314
|
+
deviceId: number(),
|
|
15315
|
+
/** Window lower bound (track firstSeen ≥ since). */
|
|
15316
|
+
since: number(),
|
|
15317
|
+
/** Window upper bound (track firstSeen ≤ until). */
|
|
15318
|
+
until: number(),
|
|
15319
|
+
limit: number().int().min(1).max(200).default(50),
|
|
15320
|
+
/** Drop tracks scoring below this importance. */
|
|
15321
|
+
minImportance: number().min(0).max(1).optional(),
|
|
15322
|
+
/** Restrict to a single class (e.g. 'person'). */
|
|
15323
|
+
classFilter: string().optional()
|
|
15324
|
+
});
|
|
15325
|
+
var KeyEventSchema = object({
|
|
15326
|
+
/** The representative event id (the track's best ObjectEvent, else its trackId). */
|
|
15327
|
+
id: string(),
|
|
15328
|
+
trackId: string(),
|
|
15329
|
+
/** Track start time (firstSeen). */
|
|
15330
|
+
timestamp: number(),
|
|
15331
|
+
className: string(),
|
|
15332
|
+
label: string().optional(),
|
|
15333
|
+
importance: number(),
|
|
15334
|
+
/** Highest-confidence ObjectEvent id for the track (empty when none). */
|
|
15335
|
+
bestEventId: string(),
|
|
15336
|
+
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
15337
|
+
windowMs: number().optional()
|
|
15338
|
+
});
|
|
15220
15339
|
var TrackedDetectionSchema = object({
|
|
15221
15340
|
trackId: string(),
|
|
15222
15341
|
className: string(),
|
|
@@ -15246,7 +15365,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15246
15365
|
}), array(TrackSchema).readonly()), method(object({ deviceId: number() }), _void(), {
|
|
15247
15366
|
kind: "mutation",
|
|
15248
15367
|
auth: "admin"
|
|
15249
|
-
}), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({
|
|
15368
|
+
}), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(KeyEventQueryInput, array(KeyEventSchema).readonly()), method(object({
|
|
15250
15369
|
deviceId: number(),
|
|
15251
15370
|
since: number(),
|
|
15252
15371
|
until: number(),
|
|
@@ -16013,7 +16132,12 @@ DeviceType.Camera, method(object({
|
|
|
16013
16132
|
}), SnapshotImageSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
16014
16133
|
kind: "mutation",
|
|
16015
16134
|
auth: "admin"
|
|
16016
|
-
})
|
|
16135
|
+
}), systemMethod(object({ deviceIds: array(number()).min(1).max(200) }), array(object({
|
|
16136
|
+
deviceId: number(),
|
|
16137
|
+
lastCapturedAt: number().nullable(),
|
|
16138
|
+
cacheAgeMs: number().nullable(),
|
|
16139
|
+
etag: string().nullable()
|
|
16140
|
+
})));
|
|
16017
16141
|
/**
|
|
16018
16142
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
16019
16143
|
* providers (OIDC, SAML, magic-link, …) mint an HMAC-signed token
|
|
@@ -16287,10 +16411,32 @@ getTurnServers: method(_void(), array(TurnServerSchema).readonly()) }
|
|
|
16287
16411
|
* b. `finishAuthentication({userId, response})` → server verifies
|
|
16288
16412
|
* the assertion, bumps the credential counter, returns ok.
|
|
16289
16413
|
*
|
|
16414
|
+
* 2b. Usernameless (discoverable-credential) authentication — the
|
|
16415
|
+
* passkey IS the primary factor, no password leg:
|
|
16416
|
+
* a. `beginDiscoverableAuthentication({})` → assertion options with
|
|
16417
|
+
* EMPTY `allowCredentials` (the browser offers every resident
|
|
16418
|
+
* passkey it holds for this RP) + `userVerification: 'required'`
|
|
16419
|
+
* (the passkey replaces both factors, so UV is mandatory).
|
|
16420
|
+
* The challenge is stored server-side, NOT bound to any user.
|
|
16421
|
+
* b. `finishDiscoverableAuthentication({response})` → the provider
|
|
16422
|
+
* resolves the credential by the response's credential id,
|
|
16423
|
+
* verifies the assertion against the stored challenge + that
|
|
16424
|
+
* credential's public key/counter, and returns the OWNING
|
|
16425
|
+
* `userId` — the caller (core auth router) mints the session.
|
|
16426
|
+
*
|
|
16290
16427
|
* 3. Management:
|
|
16291
16428
|
* - `listPasskeys({userId})` — enumerate user's enrolled credentials.
|
|
16292
16429
|
* - `removePasskey({userId, credentialId})` — revoke one credential.
|
|
16293
16430
|
*
|
|
16431
|
+
* 4. Second-factor preference (opt-in, default OFF):
|
|
16432
|
+
* Enrolling a passkey only enables passkey-FIRST sign-in. It is
|
|
16433
|
+
* demanded as a second factor after a password login ONLY when the
|
|
16434
|
+
* user explicitly opts in via `setSecondFactorPreference`.
|
|
16435
|
+
* - `getSecondFactorPreference({userId})` → `{ enabled }` (missing
|
|
16436
|
+
* row ⇒ `enabled: false`).
|
|
16437
|
+
* - `setSecondFactorPreference({userId, enabled})` — persisted by
|
|
16438
|
+
* the providing addon beside its credentials.
|
|
16439
|
+
*
|
|
16294
16440
|
* Challenges are short-lived (5 min, in-memory). The cap is internal —
|
|
16295
16441
|
* the admin-ui composes the begin/finish round-trip and never exposes
|
|
16296
16442
|
* the cap to non-admins.
|
|
@@ -16333,6 +16479,17 @@ method(object({
|
|
|
16333
16479
|
}), object({ verified: boolean() }), {
|
|
16334
16480
|
kind: "mutation",
|
|
16335
16481
|
access: "view"
|
|
16482
|
+
}), method(object({}), object({ optionsJSON: record(string(), unknown()) }), {
|
|
16483
|
+
kind: "mutation",
|
|
16484
|
+
access: "view"
|
|
16485
|
+
}), method(object({
|
|
16486
|
+
/** AuthenticationResponseJSON from the browser. */
|
|
16487
|
+
response: record(string(), unknown()) }), object({
|
|
16488
|
+
verified: boolean(),
|
|
16489
|
+
userId: string().nullable()
|
|
16490
|
+
}), {
|
|
16491
|
+
kind: "mutation",
|
|
16492
|
+
access: "view"
|
|
16336
16493
|
}), method(object({ userId: string() }), array(PasskeySummarySchema), { auth: "admin" }), method(object({
|
|
16337
16494
|
userId: string(),
|
|
16338
16495
|
credentialId: string()
|
|
@@ -16340,6 +16497,13 @@ method(object({
|
|
|
16340
16497
|
kind: "mutation",
|
|
16341
16498
|
auth: "admin",
|
|
16342
16499
|
access: "delete"
|
|
16500
|
+
}), method(object({ userId: string() }), object({ enabled: boolean() }), { auth: "admin" }), method(object({
|
|
16501
|
+
userId: string(),
|
|
16502
|
+
enabled: boolean()
|
|
16503
|
+
}), object({ success: literal(true) }), {
|
|
16504
|
+
kind: "mutation",
|
|
16505
|
+
auth: "admin",
|
|
16506
|
+
access: "create"
|
|
16343
16507
|
});
|
|
16344
16508
|
/**
|
|
16345
16509
|
* `videoclips` — the unified, navigable-clip surface for a camera.
|
|
@@ -17141,7 +17305,17 @@ var FaceInfoSchema = object({
|
|
|
17141
17305
|
recognizedIdentityId: string().optional(),
|
|
17142
17306
|
identityName: string().optional(),
|
|
17143
17307
|
assigned: boolean(),
|
|
17144
|
-
base64: string().optional()
|
|
17308
|
+
base64: string().optional(),
|
|
17309
|
+
/** Design B: the face bbox (pixel space) on the key frame — lets a detail
|
|
17310
|
+
* view draw the box over the native `keyFrameMediaKey` frame. Absent on
|
|
17311
|
+
* legacy rows written before design B. */
|
|
17312
|
+
faceBbox: BoundingBoxSchema.optional(),
|
|
17313
|
+
/** Design B: MediaStore key of the track's native-resolution key frame.
|
|
17314
|
+
* Fetch the native JPEG via the event-media data-plane
|
|
17315
|
+
* (`/addon/<addonId>/event-media/<keyFrameMediaKey>`). Absent when the
|
|
17316
|
+
* track produced no key frame (e.g. native/onboard source) — the UI falls
|
|
17317
|
+
* back to the inline `base64` face crop. */
|
|
17318
|
+
keyFrameMediaKey: string().optional()
|
|
17145
17319
|
});
|
|
17146
17320
|
var FaceFilterEnum = _enum([
|
|
17147
17321
|
"unassigned",
|
|
@@ -21260,6 +21434,12 @@ Object.freeze({
|
|
|
21260
21434
|
addonId: null,
|
|
21261
21435
|
access: "view"
|
|
21262
21436
|
},
|
|
21437
|
+
"pipelineAnalytics.getKeyEvents": {
|
|
21438
|
+
capName: "pipeline-analytics",
|
|
21439
|
+
capScope: "device",
|
|
21440
|
+
addonId: null,
|
|
21441
|
+
access: "view"
|
|
21442
|
+
},
|
|
21263
21443
|
"pipelineAnalytics.getMotionEvents": {
|
|
21264
21444
|
capName: "pipeline-analytics",
|
|
21265
21445
|
capScope: "device",
|
|
@@ -21788,12 +21968,24 @@ Object.freeze({
|
|
|
21788
21968
|
addonId: null,
|
|
21789
21969
|
access: "view"
|
|
21790
21970
|
},
|
|
21971
|
+
"pipelineRunner.getNativeCrop": {
|
|
21972
|
+
capName: "pipeline-runner",
|
|
21973
|
+
capScope: "system",
|
|
21974
|
+
addonId: null,
|
|
21975
|
+
access: "view"
|
|
21976
|
+
},
|
|
21791
21977
|
"pipelineRunner.reportMotion": {
|
|
21792
21978
|
capName: "pipeline-runner",
|
|
21793
21979
|
capScope: "system",
|
|
21794
21980
|
addonId: null,
|
|
21795
21981
|
access: "create"
|
|
21796
21982
|
},
|
|
21983
|
+
"pipelineRunner.runDetailSubtree": {
|
|
21984
|
+
capName: "pipeline-runner",
|
|
21985
|
+
capScope: "system",
|
|
21986
|
+
addonId: null,
|
|
21987
|
+
access: "create"
|
|
21988
|
+
},
|
|
21797
21989
|
"plateGallery.correctPlateText": {
|
|
21798
21990
|
capName: "plate-gallery",
|
|
21799
21991
|
capScope: "system",
|
|
@@ -22154,6 +22346,12 @@ Object.freeze({
|
|
|
22154
22346
|
addonId: null,
|
|
22155
22347
|
access: "view"
|
|
22156
22348
|
},
|
|
22349
|
+
"snapshot.getSnapshotOverview": {
|
|
22350
|
+
capName: "snapshot",
|
|
22351
|
+
capScope: "device",
|
|
22352
|
+
addonId: null,
|
|
22353
|
+
access: "view"
|
|
22354
|
+
},
|
|
22157
22355
|
"snapshot.invalidateCache": {
|
|
22158
22356
|
capName: "snapshot",
|
|
22159
22357
|
capScope: "device",
|
|
@@ -22832,6 +23030,12 @@ Object.freeze({
|
|
|
22832
23030
|
addonId: null,
|
|
22833
23031
|
access: "view"
|
|
22834
23032
|
},
|
|
23033
|
+
"userPasskeys.beginDiscoverableAuthentication": {
|
|
23034
|
+
capName: "user-passkeys",
|
|
23035
|
+
capScope: "system",
|
|
23036
|
+
addonId: null,
|
|
23037
|
+
access: "view"
|
|
23038
|
+
},
|
|
22835
23039
|
"userPasskeys.beginRegistration": {
|
|
22836
23040
|
capName: "user-passkeys",
|
|
22837
23041
|
capScope: "system",
|
|
@@ -22844,12 +23048,24 @@ Object.freeze({
|
|
|
22844
23048
|
addonId: null,
|
|
22845
23049
|
access: "view"
|
|
22846
23050
|
},
|
|
23051
|
+
"userPasskeys.finishDiscoverableAuthentication": {
|
|
23052
|
+
capName: "user-passkeys",
|
|
23053
|
+
capScope: "system",
|
|
23054
|
+
addonId: null,
|
|
23055
|
+
access: "view"
|
|
23056
|
+
},
|
|
22847
23057
|
"userPasskeys.finishRegistration": {
|
|
22848
23058
|
capName: "user-passkeys",
|
|
22849
23059
|
capScope: "system",
|
|
22850
23060
|
addonId: null,
|
|
22851
23061
|
access: "create"
|
|
22852
23062
|
},
|
|
23063
|
+
"userPasskeys.getSecondFactorPreference": {
|
|
23064
|
+
capName: "user-passkeys",
|
|
23065
|
+
capScope: "system",
|
|
23066
|
+
addonId: null,
|
|
23067
|
+
access: "view"
|
|
23068
|
+
},
|
|
22853
23069
|
"userPasskeys.listPasskeys": {
|
|
22854
23070
|
capName: "user-passkeys",
|
|
22855
23071
|
capScope: "system",
|
|
@@ -22862,6 +23078,12 @@ Object.freeze({
|
|
|
22862
23078
|
addonId: null,
|
|
22863
23079
|
access: "delete"
|
|
22864
23080
|
},
|
|
23081
|
+
"userPasskeys.setSecondFactorPreference": {
|
|
23082
|
+
capName: "user-passkeys",
|
|
23083
|
+
capScope: "system",
|
|
23084
|
+
addonId: null,
|
|
23085
|
+
access: "create"
|
|
23086
|
+
},
|
|
22865
23087
|
"vacuumControl.locate": {
|
|
22866
23088
|
capName: "vacuum-control",
|
|
22867
23089
|
capScope: "device",
|
|
@@ -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-Baang_XW.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);
|
|
@@ -10469,6 +10481,7 @@ var PipelineAddonSchemaSchema = object({
|
|
|
10469
10481
|
defaultModelId: string(),
|
|
10470
10482
|
defaultModelIdByFormat: record(string(), string()).optional(),
|
|
10471
10483
|
enabledByDefault: boolean().optional(),
|
|
10484
|
+
backfillIntoExistingOverrides: boolean().optional(),
|
|
10472
10485
|
defaultConfidence: number(),
|
|
10473
10486
|
group: string().optional(),
|
|
10474
10487
|
configSchema: array(ConfigFieldBridge).readonly().optional()
|
|
@@ -10650,7 +10663,15 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
10650
10663
|
image: _instanceof(Uint8Array).optional(),
|
|
10651
10664
|
referenceImage: string().optional(),
|
|
10652
10665
|
deviceId: number().optional(),
|
|
10653
|
-
sessionId: string().optional()
|
|
10666
|
+
sessionId: string().optional(),
|
|
10667
|
+
/**
|
|
10668
|
+
* Execution plane. 'full' (default) runs the whole tree — benchmark,
|
|
10669
|
+
* reference-image, and detail-subtree calls. 'frame' is the live
|
|
10670
|
+
* per-frame dispatch: ONLY root-plane steps run; crop children
|
|
10671
|
+
* (inputClasses ≠ null) are skipped and served per-track via
|
|
10672
|
+
* pipelineRunner.runDetailSubtree (two-plane design).
|
|
10673
|
+
*/
|
|
10674
|
+
plane: _enum(["full", "frame"]).optional()
|
|
10654
10675
|
}), PipelineRunResultBridge, { kind: "mutation" }), method(object({
|
|
10655
10676
|
engine: PipelineEngineChoiceSchema.optional(),
|
|
10656
10677
|
steps: array(PipelineStepInputSchema).min(1),
|
|
@@ -10775,6 +10796,47 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(ZoneSchema).read
|
|
|
10775
10796
|
auth: "admin"
|
|
10776
10797
|
}), object({ zones: array(ZoneSchema).readonly() });
|
|
10777
10798
|
/**
|
|
10799
|
+
* A bounding box in NORMALIZED [0,1] frame coordinates for `getNativeCrop`. The
|
|
10800
|
+
* decode worker resolves it against the RETAINED native frame's real pixel dims,
|
|
10801
|
+
* so the caller supplies only the detection-res bbox divided by the detection
|
|
10802
|
+
* dims — no native resolution to plumb.
|
|
10803
|
+
*/
|
|
10804
|
+
var NativeCropBboxSchema = object({
|
|
10805
|
+
x: number(),
|
|
10806
|
+
y: number(),
|
|
10807
|
+
w: number(),
|
|
10808
|
+
h: number()
|
|
10809
|
+
});
|
|
10810
|
+
/** Result of a best-effort native-resolution crop (`getNativeCrop`). */
|
|
10811
|
+
var NativeCropResultSchema = object({
|
|
10812
|
+
/** Packed rgb (24-bit) pixels of the crop. */
|
|
10813
|
+
bytes: _instanceof(Uint8Array),
|
|
10814
|
+
width: number().int().positive(),
|
|
10815
|
+
height: number().int().positive()
|
|
10816
|
+
});
|
|
10817
|
+
/** Parent detection context passed to `runDetailSubtree` — the crop's
|
|
10818
|
+
* originating detection, in FRAME-space coordinates. Reuses
|
|
10819
|
+
* `NativeCropBboxSchema`'s `{x,y,w,h}` shape (same numeric fields; here
|
|
10820
|
+
* the coordinates are frame-space rather than getNativeCrop's
|
|
10821
|
+
* normalized [0,1] convention). */
|
|
10822
|
+
var DetailParentSchema = object({
|
|
10823
|
+
bbox: NativeCropBboxSchema,
|
|
10824
|
+
className: string()
|
|
10825
|
+
});
|
|
10826
|
+
/** One child-step result from `runDetailSubtree` — an embedding, label,
|
|
10827
|
+
* or refined detection produced by running the crop-subtree on a
|
|
10828
|
+
* single tracked detection. */
|
|
10829
|
+
var DetailResultSchema = object({
|
|
10830
|
+
stepId: string(),
|
|
10831
|
+
className: string(),
|
|
10832
|
+
score: number(),
|
|
10833
|
+
/** FRAME-space bbox (already mapped back from crop space). */
|
|
10834
|
+
bbox: NativeCropBboxSchema.optional(),
|
|
10835
|
+
embedding: string().optional(),
|
|
10836
|
+
label: string().optional(),
|
|
10837
|
+
alignedCropJpeg: string().optional()
|
|
10838
|
+
});
|
|
10839
|
+
/**
|
|
10778
10840
|
* Per-camera tunable ranges + defaults. Single source of truth used
|
|
10779
10841
|
* by both the Zod data schema (validation + default fallback) and
|
|
10780
10842
|
* the device settings UI (slider min/max/step). Touch one place and
|
|
@@ -11030,7 +11092,17 @@ var RunnerLocalMetricsSchema = object({
|
|
|
11030
11092
|
avgInferenceTimeMs: number(),
|
|
11031
11093
|
queueDepth: number()
|
|
11032
11094
|
});
|
|
11033
|
-
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())
|
|
11095
|
+
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({
|
|
11096
|
+
handle: FrameHandleSchema,
|
|
11097
|
+
bbox: NativeCropBboxSchema,
|
|
11098
|
+
maxWidth: number().int().positive().optional()
|
|
11099
|
+
}), NativeCropResultSchema.nullable()), method(object({
|
|
11100
|
+
deviceId: number(),
|
|
11101
|
+
frameHandle: FrameHandleSchema.optional(),
|
|
11102
|
+
cropJpeg: string().optional(),
|
|
11103
|
+
parent: DetailParentSchema,
|
|
11104
|
+
steps: array(string()).optional()
|
|
11105
|
+
}), object({ details: array(DetailResultSchema) }).nullable(), { kind: "mutation" });
|
|
11034
11106
|
object({
|
|
11035
11107
|
detected: boolean(),
|
|
11036
11108
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -15106,7 +15178,17 @@ var TrackSchema = object({
|
|
|
15106
15178
|
/** Cumulative normalized distance travelled (0..1 units = full frame width). */
|
|
15107
15179
|
totalDistance: number(),
|
|
15108
15180
|
state: TrackStateSchema,
|
|
15109
|
-
active: boolean()
|
|
15181
|
+
active: boolean(),
|
|
15182
|
+
/** Deterministic key-event importance score in [0,1] (server-computed at
|
|
15183
|
+
* track expiry, recomputed on late label). Absent on legacy rows written
|
|
15184
|
+
* before scoring shipped — consumers degrade to absence / compute-on-read. */
|
|
15185
|
+
importance: number().optional(),
|
|
15186
|
+
/** Id of the track's highest-confidence ObjectEvent (its representative
|
|
15187
|
+
* "best" frame). Absent when the track produced no object events. */
|
|
15188
|
+
bestEventId: string().optional(),
|
|
15189
|
+
/** Tag of the importance sub-signal that dominated the score
|
|
15190
|
+
* (identity|dwell|proximity|class|confidence|travel|zone). */
|
|
15191
|
+
importanceReason: string().optional()
|
|
15110
15192
|
});
|
|
15111
15193
|
var BaseEventFields = {
|
|
15112
15194
|
id: string(),
|
|
@@ -15171,8 +15253,18 @@ var ObjectEventSchema = object({
|
|
|
15171
15253
|
frameHeight: number().optional(),
|
|
15172
15254
|
/** MediaStore key for the crop attached to this event (if any). */
|
|
15173
15255
|
mediaKey: string().optional(),
|
|
15256
|
+
/** Design B: MediaStore key of the track's native-resolution key frame (the
|
|
15257
|
+
* best-detection full frame). Resolve via the event-media data-plane
|
|
15258
|
+
* (`/addon/<addonId>/event-media/<keyFrameMediaKey>`) for a detail view that
|
|
15259
|
+
* draws `bbox` over the native frame. Absent on legacy rows / non-decoded
|
|
15260
|
+
* sources — consumers fall back to `mediaKey` (the tight crop). */
|
|
15261
|
+
keyFrameMediaKey: string().optional(),
|
|
15174
15262
|
/** Populated by B5 (recording playback URL for this event). */
|
|
15175
|
-
mediaUrl: string().optional()
|
|
15263
|
+
mediaUrl: string().optional(),
|
|
15264
|
+
/** The parent track's key-event importance [0,1], propagated to every object
|
|
15265
|
+
* event of the track (so an event row can be sorted by importance without a
|
|
15266
|
+
* track join). Absent on legacy rows / before the track was scored. */
|
|
15267
|
+
importance: number().optional()
|
|
15176
15268
|
});
|
|
15177
15269
|
var AudioEventSchema = object({
|
|
15178
15270
|
...BaseEventFields,
|
|
@@ -15196,7 +15288,8 @@ var MediaFileKindEnum = _enum([
|
|
|
15196
15288
|
"fullFrame",
|
|
15197
15289
|
"fullFrameBoxed",
|
|
15198
15290
|
"faceCrop",
|
|
15199
|
-
"plateCrop"
|
|
15291
|
+
"plateCrop",
|
|
15292
|
+
"keyFrame"
|
|
15200
15293
|
]);
|
|
15201
15294
|
var MediaFileSchema = object({
|
|
15202
15295
|
key: string(),
|
|
@@ -15217,6 +15310,32 @@ var DeviceEventQueryInput = object({
|
|
|
15217
15310
|
projection: _enum(["full", "slim"]).optional()
|
|
15218
15311
|
});
|
|
15219
15312
|
var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: string().optional() });
|
|
15313
|
+
var KeyEventQueryInput = object({
|
|
15314
|
+
deviceId: number(),
|
|
15315
|
+
/** Window lower bound (track firstSeen ≥ since). */
|
|
15316
|
+
since: number(),
|
|
15317
|
+
/** Window upper bound (track firstSeen ≤ until). */
|
|
15318
|
+
until: number(),
|
|
15319
|
+
limit: number().int().min(1).max(200).default(50),
|
|
15320
|
+
/** Drop tracks scoring below this importance. */
|
|
15321
|
+
minImportance: number().min(0).max(1).optional(),
|
|
15322
|
+
/** Restrict to a single class (e.g. 'person'). */
|
|
15323
|
+
classFilter: string().optional()
|
|
15324
|
+
});
|
|
15325
|
+
var KeyEventSchema = object({
|
|
15326
|
+
/** The representative event id (the track's best ObjectEvent, else its trackId). */
|
|
15327
|
+
id: string(),
|
|
15328
|
+
trackId: string(),
|
|
15329
|
+
/** Track start time (firstSeen). */
|
|
15330
|
+
timestamp: number(),
|
|
15331
|
+
className: string(),
|
|
15332
|
+
label: string().optional(),
|
|
15333
|
+
importance: number(),
|
|
15334
|
+
/** Highest-confidence ObjectEvent id for the track (empty when none). */
|
|
15335
|
+
bestEventId: string(),
|
|
15336
|
+
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
15337
|
+
windowMs: number().optional()
|
|
15338
|
+
});
|
|
15220
15339
|
var TrackedDetectionSchema = object({
|
|
15221
15340
|
trackId: string(),
|
|
15222
15341
|
className: string(),
|
|
@@ -15246,7 +15365,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15246
15365
|
}), array(TrackSchema).readonly()), method(object({ deviceId: number() }), _void(), {
|
|
15247
15366
|
kind: "mutation",
|
|
15248
15367
|
auth: "admin"
|
|
15249
|
-
}), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({
|
|
15368
|
+
}), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(KeyEventQueryInput, array(KeyEventSchema).readonly()), method(object({
|
|
15250
15369
|
deviceId: number(),
|
|
15251
15370
|
since: number(),
|
|
15252
15371
|
until: number(),
|
|
@@ -16013,7 +16132,12 @@ DeviceType.Camera, method(object({
|
|
|
16013
16132
|
}), SnapshotImageSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
16014
16133
|
kind: "mutation",
|
|
16015
16134
|
auth: "admin"
|
|
16016
|
-
})
|
|
16135
|
+
}), systemMethod(object({ deviceIds: array(number()).min(1).max(200) }), array(object({
|
|
16136
|
+
deviceId: number(),
|
|
16137
|
+
lastCapturedAt: number().nullable(),
|
|
16138
|
+
cacheAgeMs: number().nullable(),
|
|
16139
|
+
etag: string().nullable()
|
|
16140
|
+
})));
|
|
16017
16141
|
/**
|
|
16018
16142
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
16019
16143
|
* providers (OIDC, SAML, magic-link, …) mint an HMAC-signed token
|
|
@@ -16287,10 +16411,32 @@ getTurnServers: method(_void(), array(TurnServerSchema).readonly()) }
|
|
|
16287
16411
|
* b. `finishAuthentication({userId, response})` → server verifies
|
|
16288
16412
|
* the assertion, bumps the credential counter, returns ok.
|
|
16289
16413
|
*
|
|
16414
|
+
* 2b. Usernameless (discoverable-credential) authentication — the
|
|
16415
|
+
* passkey IS the primary factor, no password leg:
|
|
16416
|
+
* a. `beginDiscoverableAuthentication({})` → assertion options with
|
|
16417
|
+
* EMPTY `allowCredentials` (the browser offers every resident
|
|
16418
|
+
* passkey it holds for this RP) + `userVerification: 'required'`
|
|
16419
|
+
* (the passkey replaces both factors, so UV is mandatory).
|
|
16420
|
+
* The challenge is stored server-side, NOT bound to any user.
|
|
16421
|
+
* b. `finishDiscoverableAuthentication({response})` → the provider
|
|
16422
|
+
* resolves the credential by the response's credential id,
|
|
16423
|
+
* verifies the assertion against the stored challenge + that
|
|
16424
|
+
* credential's public key/counter, and returns the OWNING
|
|
16425
|
+
* `userId` — the caller (core auth router) mints the session.
|
|
16426
|
+
*
|
|
16290
16427
|
* 3. Management:
|
|
16291
16428
|
* - `listPasskeys({userId})` — enumerate user's enrolled credentials.
|
|
16292
16429
|
* - `removePasskey({userId, credentialId})` — revoke one credential.
|
|
16293
16430
|
*
|
|
16431
|
+
* 4. Second-factor preference (opt-in, default OFF):
|
|
16432
|
+
* Enrolling a passkey only enables passkey-FIRST sign-in. It is
|
|
16433
|
+
* demanded as a second factor after a password login ONLY when the
|
|
16434
|
+
* user explicitly opts in via `setSecondFactorPreference`.
|
|
16435
|
+
* - `getSecondFactorPreference({userId})` → `{ enabled }` (missing
|
|
16436
|
+
* row ⇒ `enabled: false`).
|
|
16437
|
+
* - `setSecondFactorPreference({userId, enabled})` — persisted by
|
|
16438
|
+
* the providing addon beside its credentials.
|
|
16439
|
+
*
|
|
16294
16440
|
* Challenges are short-lived (5 min, in-memory). The cap is internal —
|
|
16295
16441
|
* the admin-ui composes the begin/finish round-trip and never exposes
|
|
16296
16442
|
* the cap to non-admins.
|
|
@@ -16333,6 +16479,17 @@ method(object({
|
|
|
16333
16479
|
}), object({ verified: boolean() }), {
|
|
16334
16480
|
kind: "mutation",
|
|
16335
16481
|
access: "view"
|
|
16482
|
+
}), method(object({}), object({ optionsJSON: record(string(), unknown()) }), {
|
|
16483
|
+
kind: "mutation",
|
|
16484
|
+
access: "view"
|
|
16485
|
+
}), method(object({
|
|
16486
|
+
/** AuthenticationResponseJSON from the browser. */
|
|
16487
|
+
response: record(string(), unknown()) }), object({
|
|
16488
|
+
verified: boolean(),
|
|
16489
|
+
userId: string().nullable()
|
|
16490
|
+
}), {
|
|
16491
|
+
kind: "mutation",
|
|
16492
|
+
access: "view"
|
|
16336
16493
|
}), method(object({ userId: string() }), array(PasskeySummarySchema), { auth: "admin" }), method(object({
|
|
16337
16494
|
userId: string(),
|
|
16338
16495
|
credentialId: string()
|
|
@@ -16340,6 +16497,13 @@ method(object({
|
|
|
16340
16497
|
kind: "mutation",
|
|
16341
16498
|
auth: "admin",
|
|
16342
16499
|
access: "delete"
|
|
16500
|
+
}), method(object({ userId: string() }), object({ enabled: boolean() }), { auth: "admin" }), method(object({
|
|
16501
|
+
userId: string(),
|
|
16502
|
+
enabled: boolean()
|
|
16503
|
+
}), object({ success: literal(true) }), {
|
|
16504
|
+
kind: "mutation",
|
|
16505
|
+
auth: "admin",
|
|
16506
|
+
access: "create"
|
|
16343
16507
|
});
|
|
16344
16508
|
/**
|
|
16345
16509
|
* `videoclips` — the unified, navigable-clip surface for a camera.
|
|
@@ -17141,7 +17305,17 @@ var FaceInfoSchema = object({
|
|
|
17141
17305
|
recognizedIdentityId: string().optional(),
|
|
17142
17306
|
identityName: string().optional(),
|
|
17143
17307
|
assigned: boolean(),
|
|
17144
|
-
base64: string().optional()
|
|
17308
|
+
base64: string().optional(),
|
|
17309
|
+
/** Design B: the face bbox (pixel space) on the key frame — lets a detail
|
|
17310
|
+
* view draw the box over the native `keyFrameMediaKey` frame. Absent on
|
|
17311
|
+
* legacy rows written before design B. */
|
|
17312
|
+
faceBbox: BoundingBoxSchema.optional(),
|
|
17313
|
+
/** Design B: MediaStore key of the track's native-resolution key frame.
|
|
17314
|
+
* Fetch the native JPEG via the event-media data-plane
|
|
17315
|
+
* (`/addon/<addonId>/event-media/<keyFrameMediaKey>`). Absent when the
|
|
17316
|
+
* track produced no key frame (e.g. native/onboard source) — the UI falls
|
|
17317
|
+
* back to the inline `base64` face crop. */
|
|
17318
|
+
keyFrameMediaKey: string().optional()
|
|
17145
17319
|
});
|
|
17146
17320
|
var FaceFilterEnum = _enum([
|
|
17147
17321
|
"unassigned",
|
|
@@ -21260,6 +21434,12 @@ Object.freeze({
|
|
|
21260
21434
|
addonId: null,
|
|
21261
21435
|
access: "view"
|
|
21262
21436
|
},
|
|
21437
|
+
"pipelineAnalytics.getKeyEvents": {
|
|
21438
|
+
capName: "pipeline-analytics",
|
|
21439
|
+
capScope: "device",
|
|
21440
|
+
addonId: null,
|
|
21441
|
+
access: "view"
|
|
21442
|
+
},
|
|
21263
21443
|
"pipelineAnalytics.getMotionEvents": {
|
|
21264
21444
|
capName: "pipeline-analytics",
|
|
21265
21445
|
capScope: "device",
|
|
@@ -21788,12 +21968,24 @@ Object.freeze({
|
|
|
21788
21968
|
addonId: null,
|
|
21789
21969
|
access: "view"
|
|
21790
21970
|
},
|
|
21971
|
+
"pipelineRunner.getNativeCrop": {
|
|
21972
|
+
capName: "pipeline-runner",
|
|
21973
|
+
capScope: "system",
|
|
21974
|
+
addonId: null,
|
|
21975
|
+
access: "view"
|
|
21976
|
+
},
|
|
21791
21977
|
"pipelineRunner.reportMotion": {
|
|
21792
21978
|
capName: "pipeline-runner",
|
|
21793
21979
|
capScope: "system",
|
|
21794
21980
|
addonId: null,
|
|
21795
21981
|
access: "create"
|
|
21796
21982
|
},
|
|
21983
|
+
"pipelineRunner.runDetailSubtree": {
|
|
21984
|
+
capName: "pipeline-runner",
|
|
21985
|
+
capScope: "system",
|
|
21986
|
+
addonId: null,
|
|
21987
|
+
access: "create"
|
|
21988
|
+
},
|
|
21797
21989
|
"plateGallery.correctPlateText": {
|
|
21798
21990
|
capName: "plate-gallery",
|
|
21799
21991
|
capScope: "system",
|
|
@@ -22154,6 +22346,12 @@ Object.freeze({
|
|
|
22154
22346
|
addonId: null,
|
|
22155
22347
|
access: "view"
|
|
22156
22348
|
},
|
|
22349
|
+
"snapshot.getSnapshotOverview": {
|
|
22350
|
+
capName: "snapshot",
|
|
22351
|
+
capScope: "device",
|
|
22352
|
+
addonId: null,
|
|
22353
|
+
access: "view"
|
|
22354
|
+
},
|
|
22157
22355
|
"snapshot.invalidateCache": {
|
|
22158
22356
|
capName: "snapshot",
|
|
22159
22357
|
capScope: "device",
|
|
@@ -22832,6 +23030,12 @@ Object.freeze({
|
|
|
22832
23030
|
addonId: null,
|
|
22833
23031
|
access: "view"
|
|
22834
23032
|
},
|
|
23033
|
+
"userPasskeys.beginDiscoverableAuthentication": {
|
|
23034
|
+
capName: "user-passkeys",
|
|
23035
|
+
capScope: "system",
|
|
23036
|
+
addonId: null,
|
|
23037
|
+
access: "view"
|
|
23038
|
+
},
|
|
22835
23039
|
"userPasskeys.beginRegistration": {
|
|
22836
23040
|
capName: "user-passkeys",
|
|
22837
23041
|
capScope: "system",
|
|
@@ -22844,12 +23048,24 @@ Object.freeze({
|
|
|
22844
23048
|
addonId: null,
|
|
22845
23049
|
access: "view"
|
|
22846
23050
|
},
|
|
23051
|
+
"userPasskeys.finishDiscoverableAuthentication": {
|
|
23052
|
+
capName: "user-passkeys",
|
|
23053
|
+
capScope: "system",
|
|
23054
|
+
addonId: null,
|
|
23055
|
+
access: "view"
|
|
23056
|
+
},
|
|
22847
23057
|
"userPasskeys.finishRegistration": {
|
|
22848
23058
|
capName: "user-passkeys",
|
|
22849
23059
|
capScope: "system",
|
|
22850
23060
|
addonId: null,
|
|
22851
23061
|
access: "create"
|
|
22852
23062
|
},
|
|
23063
|
+
"userPasskeys.getSecondFactorPreference": {
|
|
23064
|
+
capName: "user-passkeys",
|
|
23065
|
+
capScope: "system",
|
|
23066
|
+
addonId: null,
|
|
23067
|
+
access: "view"
|
|
23068
|
+
},
|
|
22853
23069
|
"userPasskeys.listPasskeys": {
|
|
22854
23070
|
capName: "user-passkeys",
|
|
22855
23071
|
capScope: "system",
|
|
@@ -22862,6 +23078,12 @@ Object.freeze({
|
|
|
22862
23078
|
addonId: null,
|
|
22863
23079
|
access: "delete"
|
|
22864
23080
|
},
|
|
23081
|
+
"userPasskeys.setSecondFactorPreference": {
|
|
23082
|
+
capName: "user-passkeys",
|
|
23083
|
+
capScope: "system",
|
|
23084
|
+
addonId: null,
|
|
23085
|
+
access: "create"
|
|
23086
|
+
},
|
|
22865
23087
|
"vacuumControl.locate": {
|
|
22866
23088
|
capName: "vacuum-control",
|
|
22867
23089
|
capScope: "device",
|
|
@@ -21,7 +21,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
21
|
enumerable: true
|
|
22
22
|
}) : target, mod));
|
|
23
23
|
//#endregion
|
|
24
|
-
const require_dist = require("../dist-
|
|
24
|
+
const require_dist = require("../dist-gkRT1B9v.js");
|
|
25
25
|
let node_path = require("node:path");
|
|
26
26
|
node_path = __toESM(node_path);
|
|
27
27
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as BaseAddon, c as array, d as literal, f as number, l as boolean, m as string, n as defineCustomActions, o as EventCategory, p as object, r as networkAccessCapability, s as _enum, t as customAction } from "../dist-
|
|
1
|
+
import { a as BaseAddon, c as array, d as literal, f as number, l as boolean, m as string, n as defineCustomActions, o as EventCategory, p as object, r as networkAccessCapability, s as _enum, t as customAction } from "../dist-BUzNAvoc.mjs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { spawn } from "node:child_process";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_dist = require("../dist-
|
|
2
|
+
const require_dist = require("../dist-gkRT1B9v.js");
|
|
3
3
|
//#region src/turn/cloudflare-turn.ts
|
|
4
4
|
/**
|
|
5
5
|
* Cloudflare returns ICE servers in several flavours depending on which
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as BaseAddon, d as literal, f as number, i as turnProviderCapability, l as boolean, m as string, n as defineCustomActions, p as object, t as customAction, u as discriminatedUnion } from "../dist-
|
|
1
|
+
import { a as BaseAddon, d as literal, f as number, i as turnProviderCapability, l as boolean, m as string, n as defineCustomActions, p as object, t as customAction, u as discriminatedUnion } from "../dist-BUzNAvoc.mjs";
|
|
2
2
|
//#region src/turn/cloudflare-turn.ts
|
|
3
3
|
/**
|
|
4
4
|
* Cloudflare returns ICE servers in several flavours depending on which
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-cloudflare",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.23",
|
|
4
4
|
"description": "Cloudflare bundle — Tunnel (network-access) + TURN relay (turn-provider). Multi-entry npm package shipping 2 addons under a single bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|