@camstack/addon-pipeline 1.2.65 → 1.2.68
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/audio-analyzer/index.js +1 -1
- package/dist/audio-analyzer/index.mjs +1 -1
- package/dist/detection-pipeline/index.js +2 -2
- package/dist/detection-pipeline/index.mjs +2 -2
- package/dist/{dist-DKrqeIfS.js → dist-Bv9CqUAF.js} +159 -14
- package/dist/{dist-B9_C-QmC.mjs → dist-CwUPxdAB.mjs} +154 -15
- package/dist/{event-loop-stall-monitor-CnJ5JGA2.js → event-loop-stall-monitor-Bz3lx_aY.js} +1 -1
- package/dist/{event-loop-stall-monitor-BucTbe9v.mjs → event-loop-stall-monitor-D2dL-_bE.mjs} +1 -1
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/pipeline-runner/index.js +144 -14
- package/dist/pipeline-runner/index.mjs +144 -14
- package/dist/recorder/index.js +117 -6
- package/dist/recorder/index.mjs +117 -6
- package/dist/remote-restream-BYbAsgUf.js +89 -0
- package/dist/remote-restream-Ci7RXNGb.mjs +66 -0
- package/dist/session-decode/decode-worker-child.js +1 -1
- package/dist/session-decode/decode-worker-child.mjs +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BCyIjQkw.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-Cl4eU4eN.mjs} +2 -2
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-ircnzt0s.mjs +26 -0
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CJAUKSrT.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DU7u9EJt.mjs} +1 -1
- package/dist/stream-broker/{hostInit-DqLdTCfo.mjs → hostInit-_NJ0GBOO.mjs} +2 -2
- package/dist/stream-broker/index.js +54 -15
- package/dist/stream-broker/index.mjs +54 -15
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-CQHY2NeB.mjs → worker-protocol-0uQE5Lfd.mjs} +1 -1
- package/dist/{worker-protocol-CDkbdSuM.js → worker-protocol-D8M43suz.js} +1 -1
- package/package.json +2 -2
- package/dist/remote-restream-BeHi78PZ.mjs +0 -25
- package/dist/remote-restream-CO36Sr30.js +0 -36
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C2tu4c14.mjs +0 -26
package/dist/recorder/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
2
|
-
const require_dist = require("../dist-
|
|
2
|
+
const require_dist = require("../dist-Bv9CqUAF.js");
|
|
3
3
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
4
4
|
const require_addon_utils = require("../addon-utils-CQs-AjTJ.js");
|
|
5
5
|
let node_crypto = require("node:crypto");
|
|
@@ -3002,6 +3002,38 @@ var X264 = [
|
|
|
3002
3002
|
"yuv420p"
|
|
3003
3003
|
];
|
|
3004
3004
|
var FASTSTART = ["-movflags", "+faststart"];
|
|
3005
|
+
/**
|
|
3006
|
+
* Format a seconds value for an ffmpeg expression.
|
|
3007
|
+
*
|
|
3008
|
+
* `String(n)` and nothing else: an exponent (`1e-7`) or a locale separator
|
|
3009
|
+
* would both be a filter ffmpeg refuses, and the values here are bounded
|
|
3010
|
+
* (`everyMs` is a positive integer of ms, range bounds are window offsets in
|
|
3011
|
+
* seconds), so neither can arise from a valid input. Kept as one function so
|
|
3012
|
+
* the base cadence and the dense cadence can never format differently.
|
|
3013
|
+
*/
|
|
3014
|
+
function sec(value) {
|
|
3015
|
+
return String(value);
|
|
3016
|
+
}
|
|
3017
|
+
/**
|
|
3018
|
+
* The timelapse frame-select PREDICATE — one rate, or two.
|
|
3019
|
+
*
|
|
3020
|
+
* Single rate (unchanged): `not(mod(t,every))`.
|
|
3021
|
+
* Two rates: `if(between(t,a,b)+…, not(mod(t,dense)), not(mod(t,base)))` — the
|
|
3022
|
+
* `+` is ffmpeg's expression OR (any non-zero term makes the sum non-zero), so
|
|
3023
|
+
* one `if` covers every range without nesting.
|
|
3024
|
+
*
|
|
3025
|
+
* An EMPTY range list degrades to the single-rate expression rather than
|
|
3026
|
+
* emitting `if(,…)`. `ExportDenseSchema` refuses `ranges: []` at the cap
|
|
3027
|
+
* boundary, but this builder is also reached from a PERSISTED export record
|
|
3028
|
+
* written before that boundary existed — and a malformed filter fails the
|
|
3029
|
+
* render for that camera forever, where a plain timelapse merely loses the
|
|
3030
|
+
* second rate.
|
|
3031
|
+
*/
|
|
3032
|
+
function selectPredicate(everySec, dense) {
|
|
3033
|
+
const base = `not(mod(t,${sec(everySec)}))`;
|
|
3034
|
+
if (dense === void 0 || dense.ranges.length === 0) return base;
|
|
3035
|
+
return `if(${dense.ranges.map((r) => `between(t,${sec(r.fromSec)},${sec(r.toSec)})`).join("+")},not(mod(t,${sec(dense.everyMs / 1e3)})),${base})`;
|
|
3036
|
+
}
|
|
3005
3037
|
/** Build the ffmpeg argv for one export render. */
|
|
3006
3038
|
function buildExportArgs(input) {
|
|
3007
3039
|
const { inputPlaylist, outPath, options } = input;
|
|
@@ -3012,7 +3044,7 @@ function buildExportArgs(input) {
|
|
|
3012
3044
|
return [
|
|
3013
3045
|
...inArgs,
|
|
3014
3046
|
"-vf",
|
|
3015
|
-
`select='
|
|
3047
|
+
`select='${selectPredicate(everySec, options.timelapse.dense)}',setpts=N/FRAME_RATE/TB,fps=${fps}`,
|
|
3016
3048
|
"-an",
|
|
3017
3049
|
...X264,
|
|
3018
3050
|
...FASTSTART,
|
|
@@ -3259,6 +3291,23 @@ var ExportEngine = class {
|
|
|
3259
3291
|
};
|
|
3260
3292
|
//#endregion
|
|
3261
3293
|
//#region src/recorder/addon/recording-export-provider.ts
|
|
3294
|
+
/** Content type of every rendered export — the engine only ever writes MP4. */
|
|
3295
|
+
var EXPORT_CONTENT_TYPE = "video/mp4";
|
|
3296
|
+
/** Filename bound, extension included. Long enough to stay recognisable. */
|
|
3297
|
+
var EXPORT_NAME_MAX = 64;
|
|
3298
|
+
/**
|
|
3299
|
+
* The filename a RECIPIENT sees on the attachment.
|
|
3300
|
+
*
|
|
3301
|
+
* Derived from the operator's own export title so a delivered video is
|
|
3302
|
+
* identifiable in a chat thread, but slugified and BOUNDED: the title field
|
|
3303
|
+
* accepts 200 characters and several notifier backends silently mangle a
|
|
3304
|
+
* filename that long. No usable title degrades to the export id, never to an
|
|
3305
|
+
* empty name.
|
|
3306
|
+
*/
|
|
3307
|
+
function exportFileName(rec) {
|
|
3308
|
+
const slug = (rec.title ?? "").replace(/[^\p{L}\p{N}]+/gu, "-").replace(/^-+|-+$/g, "").slice(0, EXPORT_NAME_MAX - 4).replace(/-+$/g, "");
|
|
3309
|
+
return slug.length > 0 ? `${slug}.mp4` : `export-${rec.id}.mp4`;
|
|
3310
|
+
}
|
|
3262
3311
|
/**
|
|
3263
3312
|
* True when at least one indexed segment overlaps `[fromMs, toMs)`. Mirrors the
|
|
3264
3313
|
* `buildPlaybackManifest` overlap idiom: a segment `[startMs, startMs+durMs)`
|
|
@@ -3271,15 +3320,15 @@ function hasFootage(index, deviceId, profile, fromMs, toMs) {
|
|
|
3271
3320
|
/** Load a record or throw a clear NOT_FOUND-style error. */
|
|
3272
3321
|
async function requireRecord(state, exportId) {
|
|
3273
3322
|
const rec = await getExportRecord(state, exportId);
|
|
3274
|
-
if (!rec) throw new Error(`
|
|
3323
|
+
if (!rec) throw new Error(`recording-export: unknown export "${exportId}"`);
|
|
3275
3324
|
return rec;
|
|
3276
3325
|
}
|
|
3277
3326
|
/** Build the `recordingExport` provider over the injected deps. */
|
|
3278
3327
|
function buildRecordingExportProvider(deps) {
|
|
3279
3328
|
return {
|
|
3280
3329
|
createExport: async ({ deviceId, profile, fromMs, toMs, options }) => {
|
|
3281
|
-
if (!(fromMs < toMs)) throw new Error(`
|
|
3282
|
-
if (!hasFootage(deps.index, deviceId, profile, fromMs, toMs)) throw new Error(`
|
|
3330
|
+
if (!(fromMs < toMs)) throw new Error(`recording-export: invalid range ${fromMs}..${toMs}`);
|
|
3331
|
+
if (!hasFootage(deps.index, deviceId, profile, fromMs, toMs)) throw new Error(`recording-export: no footage for ${deviceId}/${profile} in ${fromMs}..${toMs}`);
|
|
3283
3332
|
const now = deps.now();
|
|
3284
3333
|
const record = {
|
|
3285
3334
|
id: deps.newId(),
|
|
@@ -3324,6 +3373,65 @@ function buildRecordingExportProvider(deps) {
|
|
|
3324
3373
|
url,
|
|
3325
3374
|
endpoints: [url]
|
|
3326
3375
|
};
|
|
3376
|
+
},
|
|
3377
|
+
readExportBytes: async ({ exportId }) => {
|
|
3378
|
+
const rec = await requireRecord(deps.state, exportId);
|
|
3379
|
+
const tags = { deviceId: rec.deviceId };
|
|
3380
|
+
if (rec.state !== "ready") {
|
|
3381
|
+
deps.logger.warn("export byte read refused: export is not ready", {
|
|
3382
|
+
tags,
|
|
3383
|
+
meta: {
|
|
3384
|
+
exportId,
|
|
3385
|
+
state: rec.state
|
|
3386
|
+
}
|
|
3387
|
+
});
|
|
3388
|
+
throw new Error(`recording-export: export "${exportId}" is not ready (${rec.state})`);
|
|
3389
|
+
}
|
|
3390
|
+
if (deps.now() >= rec.expiresAt) {
|
|
3391
|
+
deps.logger.warn("export byte read refused: export has expired", {
|
|
3392
|
+
tags,
|
|
3393
|
+
meta: {
|
|
3394
|
+
exportId,
|
|
3395
|
+
expiresAt: rec.expiresAt
|
|
3396
|
+
}
|
|
3397
|
+
});
|
|
3398
|
+
throw new Error(`recording-export: export "${exportId}" has expired`);
|
|
3399
|
+
}
|
|
3400
|
+
const file = deps.outPath(rec);
|
|
3401
|
+
let size;
|
|
3402
|
+
try {
|
|
3403
|
+
size = await deps.statBytes(file);
|
|
3404
|
+
} catch (err) {
|
|
3405
|
+
deps.logger.warn("export byte read refused: file is missing", {
|
|
3406
|
+
tags,
|
|
3407
|
+
meta: {
|
|
3408
|
+
exportId,
|
|
3409
|
+
error: String(err)
|
|
3410
|
+
}
|
|
3411
|
+
});
|
|
3412
|
+
throw new Error(`recording-export: export "${exportId}" has no file on disk`, { cause: err });
|
|
3413
|
+
}
|
|
3414
|
+
if (size > 52428800) {
|
|
3415
|
+
deps.logger.warn("export byte read refused: file is too large to inline", {
|
|
3416
|
+
tags,
|
|
3417
|
+
meta: {
|
|
3418
|
+
exportId,
|
|
3419
|
+
bytes: size,
|
|
3420
|
+
maxBytes: require_dist.RECORDING_EXPORT_MAX_READ_BYTES
|
|
3421
|
+
}
|
|
3422
|
+
});
|
|
3423
|
+
throw new Error(`recording-export: export "${exportId}" is too large to read inline (${size} > ${require_dist.RECORDING_EXPORT_MAX_READ_BYTES} bytes)`);
|
|
3424
|
+
}
|
|
3425
|
+
const bytes = await deps.readFile(file);
|
|
3426
|
+
return {
|
|
3427
|
+
base64: bytes.toString("base64"),
|
|
3428
|
+
contentType: EXPORT_CONTENT_TYPE,
|
|
3429
|
+
name: exportFileName({
|
|
3430
|
+
id: rec.id,
|
|
3431
|
+
...rec.options.title !== void 0 ? { title: rec.options.title } : {}
|
|
3432
|
+
}),
|
|
3433
|
+
bytes: bytes.byteLength
|
|
3434
|
+
};
|
|
3327
3435
|
}
|
|
3328
3436
|
};
|
|
3329
3437
|
}
|
|
@@ -5672,7 +5780,10 @@ var RecorderV2Addon = class extends require_dist.BaseAddon {
|
|
|
5672
5780
|
createdBy: () => "operator",
|
|
5673
5781
|
outPath: exportOutPath,
|
|
5674
5782
|
removeFile: removeExportFile,
|
|
5675
|
-
downloadUrlFor: (id) => `/addon/${RECORDER_ADDON_ID}/${EXPORTS_PREFIX}/${id}.mp4
|
|
5783
|
+
downloadUrlFor: (id) => `/addon/${RECORDER_ADDON_ID}/${EXPORTS_PREFIX}/${id}.mp4`,
|
|
5784
|
+
statBytes: async (p) => (await node_fs.promises.stat(p)).size,
|
|
5785
|
+
readFile: (p) => node_fs.promises.readFile(p),
|
|
5786
|
+
logger: this.ctx.logger.child("export")
|
|
5676
5787
|
});
|
|
5677
5788
|
try {
|
|
5678
5789
|
const handler = withDirectoryRoute({
|
package/dist/recorder/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { At as string, J as recordingExportCapability, Mt as EventCategory, N as deriveRecordingMode, St as array, Z as storageEvictableCapability, _ as OpsLogEntrySchema, b as RECORDING_EXPORT_MAX_READ_BYTES, c as DEFAULT_EVENTS_BAND_BUFFER_SEC, d as EVENT_PAD_MS, ft as hydrateSchema, gt as nodePin, kt as record, p as ExportRecordSchema, q as recordingCapability, st as BaseAddon, tt as errMsg, ut as DeviceType, x as RecordingConfigSchema, yt as selectAssignedProfileSlots } from "../dist-CwUPxdAB.mjs";
|
|
2
2
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
3
3
|
import { n as createFileDataPlaneHandler, s as parseRangeHeader, t as contentTypeFor } from "../addon-utils-CZ2xo67g.mjs";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -3000,6 +3000,38 @@ var X264 = [
|
|
|
3000
3000
|
"yuv420p"
|
|
3001
3001
|
];
|
|
3002
3002
|
var FASTSTART = ["-movflags", "+faststart"];
|
|
3003
|
+
/**
|
|
3004
|
+
* Format a seconds value for an ffmpeg expression.
|
|
3005
|
+
*
|
|
3006
|
+
* `String(n)` and nothing else: an exponent (`1e-7`) or a locale separator
|
|
3007
|
+
* would both be a filter ffmpeg refuses, and the values here are bounded
|
|
3008
|
+
* (`everyMs` is a positive integer of ms, range bounds are window offsets in
|
|
3009
|
+
* seconds), so neither can arise from a valid input. Kept as one function so
|
|
3010
|
+
* the base cadence and the dense cadence can never format differently.
|
|
3011
|
+
*/
|
|
3012
|
+
function sec(value) {
|
|
3013
|
+
return String(value);
|
|
3014
|
+
}
|
|
3015
|
+
/**
|
|
3016
|
+
* The timelapse frame-select PREDICATE — one rate, or two.
|
|
3017
|
+
*
|
|
3018
|
+
* Single rate (unchanged): `not(mod(t,every))`.
|
|
3019
|
+
* Two rates: `if(between(t,a,b)+…, not(mod(t,dense)), not(mod(t,base)))` — the
|
|
3020
|
+
* `+` is ffmpeg's expression OR (any non-zero term makes the sum non-zero), so
|
|
3021
|
+
* one `if` covers every range without nesting.
|
|
3022
|
+
*
|
|
3023
|
+
* An EMPTY range list degrades to the single-rate expression rather than
|
|
3024
|
+
* emitting `if(,…)`. `ExportDenseSchema` refuses `ranges: []` at the cap
|
|
3025
|
+
* boundary, but this builder is also reached from a PERSISTED export record
|
|
3026
|
+
* written before that boundary existed — and a malformed filter fails the
|
|
3027
|
+
* render for that camera forever, where a plain timelapse merely loses the
|
|
3028
|
+
* second rate.
|
|
3029
|
+
*/
|
|
3030
|
+
function selectPredicate(everySec, dense) {
|
|
3031
|
+
const base = `not(mod(t,${sec(everySec)}))`;
|
|
3032
|
+
if (dense === void 0 || dense.ranges.length === 0) return base;
|
|
3033
|
+
return `if(${dense.ranges.map((r) => `between(t,${sec(r.fromSec)},${sec(r.toSec)})`).join("+")},not(mod(t,${sec(dense.everyMs / 1e3)})),${base})`;
|
|
3034
|
+
}
|
|
3003
3035
|
/** Build the ffmpeg argv for one export render. */
|
|
3004
3036
|
function buildExportArgs(input) {
|
|
3005
3037
|
const { inputPlaylist, outPath, options } = input;
|
|
@@ -3010,7 +3042,7 @@ function buildExportArgs(input) {
|
|
|
3010
3042
|
return [
|
|
3011
3043
|
...inArgs,
|
|
3012
3044
|
"-vf",
|
|
3013
|
-
`select='
|
|
3045
|
+
`select='${selectPredicate(everySec, options.timelapse.dense)}',setpts=N/FRAME_RATE/TB,fps=${fps}`,
|
|
3014
3046
|
"-an",
|
|
3015
3047
|
...X264,
|
|
3016
3048
|
...FASTSTART,
|
|
@@ -3257,6 +3289,23 @@ var ExportEngine = class {
|
|
|
3257
3289
|
};
|
|
3258
3290
|
//#endregion
|
|
3259
3291
|
//#region src/recorder/addon/recording-export-provider.ts
|
|
3292
|
+
/** Content type of every rendered export — the engine only ever writes MP4. */
|
|
3293
|
+
var EXPORT_CONTENT_TYPE = "video/mp4";
|
|
3294
|
+
/** Filename bound, extension included. Long enough to stay recognisable. */
|
|
3295
|
+
var EXPORT_NAME_MAX = 64;
|
|
3296
|
+
/**
|
|
3297
|
+
* The filename a RECIPIENT sees on the attachment.
|
|
3298
|
+
*
|
|
3299
|
+
* Derived from the operator's own export title so a delivered video is
|
|
3300
|
+
* identifiable in a chat thread, but slugified and BOUNDED: the title field
|
|
3301
|
+
* accepts 200 characters and several notifier backends silently mangle a
|
|
3302
|
+
* filename that long. No usable title degrades to the export id, never to an
|
|
3303
|
+
* empty name.
|
|
3304
|
+
*/
|
|
3305
|
+
function exportFileName(rec) {
|
|
3306
|
+
const slug = (rec.title ?? "").replace(/[^\p{L}\p{N}]+/gu, "-").replace(/^-+|-+$/g, "").slice(0, EXPORT_NAME_MAX - 4).replace(/-+$/g, "");
|
|
3307
|
+
return slug.length > 0 ? `${slug}.mp4` : `export-${rec.id}.mp4`;
|
|
3308
|
+
}
|
|
3260
3309
|
/**
|
|
3261
3310
|
* True when at least one indexed segment overlaps `[fromMs, toMs)`. Mirrors the
|
|
3262
3311
|
* `buildPlaybackManifest` overlap idiom: a segment `[startMs, startMs+durMs)`
|
|
@@ -3269,15 +3318,15 @@ function hasFootage(index, deviceId, profile, fromMs, toMs) {
|
|
|
3269
3318
|
/** Load a record or throw a clear NOT_FOUND-style error. */
|
|
3270
3319
|
async function requireRecord(state, exportId) {
|
|
3271
3320
|
const rec = await getExportRecord(state, exportId);
|
|
3272
|
-
if (!rec) throw new Error(`
|
|
3321
|
+
if (!rec) throw new Error(`recording-export: unknown export "${exportId}"`);
|
|
3273
3322
|
return rec;
|
|
3274
3323
|
}
|
|
3275
3324
|
/** Build the `recordingExport` provider over the injected deps. */
|
|
3276
3325
|
function buildRecordingExportProvider(deps) {
|
|
3277
3326
|
return {
|
|
3278
3327
|
createExport: async ({ deviceId, profile, fromMs, toMs, options }) => {
|
|
3279
|
-
if (!(fromMs < toMs)) throw new Error(`
|
|
3280
|
-
if (!hasFootage(deps.index, deviceId, profile, fromMs, toMs)) throw new Error(`
|
|
3328
|
+
if (!(fromMs < toMs)) throw new Error(`recording-export: invalid range ${fromMs}..${toMs}`);
|
|
3329
|
+
if (!hasFootage(deps.index, deviceId, profile, fromMs, toMs)) throw new Error(`recording-export: no footage for ${deviceId}/${profile} in ${fromMs}..${toMs}`);
|
|
3281
3330
|
const now = deps.now();
|
|
3282
3331
|
const record = {
|
|
3283
3332
|
id: deps.newId(),
|
|
@@ -3322,6 +3371,65 @@ function buildRecordingExportProvider(deps) {
|
|
|
3322
3371
|
url,
|
|
3323
3372
|
endpoints: [url]
|
|
3324
3373
|
};
|
|
3374
|
+
},
|
|
3375
|
+
readExportBytes: async ({ exportId }) => {
|
|
3376
|
+
const rec = await requireRecord(deps.state, exportId);
|
|
3377
|
+
const tags = { deviceId: rec.deviceId };
|
|
3378
|
+
if (rec.state !== "ready") {
|
|
3379
|
+
deps.logger.warn("export byte read refused: export is not ready", {
|
|
3380
|
+
tags,
|
|
3381
|
+
meta: {
|
|
3382
|
+
exportId,
|
|
3383
|
+
state: rec.state
|
|
3384
|
+
}
|
|
3385
|
+
});
|
|
3386
|
+
throw new Error(`recording-export: export "${exportId}" is not ready (${rec.state})`);
|
|
3387
|
+
}
|
|
3388
|
+
if (deps.now() >= rec.expiresAt) {
|
|
3389
|
+
deps.logger.warn("export byte read refused: export has expired", {
|
|
3390
|
+
tags,
|
|
3391
|
+
meta: {
|
|
3392
|
+
exportId,
|
|
3393
|
+
expiresAt: rec.expiresAt
|
|
3394
|
+
}
|
|
3395
|
+
});
|
|
3396
|
+
throw new Error(`recording-export: export "${exportId}" has expired`);
|
|
3397
|
+
}
|
|
3398
|
+
const file = deps.outPath(rec);
|
|
3399
|
+
let size;
|
|
3400
|
+
try {
|
|
3401
|
+
size = await deps.statBytes(file);
|
|
3402
|
+
} catch (err) {
|
|
3403
|
+
deps.logger.warn("export byte read refused: file is missing", {
|
|
3404
|
+
tags,
|
|
3405
|
+
meta: {
|
|
3406
|
+
exportId,
|
|
3407
|
+
error: String(err)
|
|
3408
|
+
}
|
|
3409
|
+
});
|
|
3410
|
+
throw new Error(`recording-export: export "${exportId}" has no file on disk`, { cause: err });
|
|
3411
|
+
}
|
|
3412
|
+
if (size > 52428800) {
|
|
3413
|
+
deps.logger.warn("export byte read refused: file is too large to inline", {
|
|
3414
|
+
tags,
|
|
3415
|
+
meta: {
|
|
3416
|
+
exportId,
|
|
3417
|
+
bytes: size,
|
|
3418
|
+
maxBytes: RECORDING_EXPORT_MAX_READ_BYTES
|
|
3419
|
+
}
|
|
3420
|
+
});
|
|
3421
|
+
throw new Error(`recording-export: export "${exportId}" is too large to read inline (${size} > ${RECORDING_EXPORT_MAX_READ_BYTES} bytes)`);
|
|
3422
|
+
}
|
|
3423
|
+
const bytes = await deps.readFile(file);
|
|
3424
|
+
return {
|
|
3425
|
+
base64: bytes.toString("base64"),
|
|
3426
|
+
contentType: EXPORT_CONTENT_TYPE,
|
|
3427
|
+
name: exportFileName({
|
|
3428
|
+
id: rec.id,
|
|
3429
|
+
...rec.options.title !== void 0 ? { title: rec.options.title } : {}
|
|
3430
|
+
}),
|
|
3431
|
+
bytes: bytes.byteLength
|
|
3432
|
+
};
|
|
3325
3433
|
}
|
|
3326
3434
|
};
|
|
3327
3435
|
}
|
|
@@ -5670,7 +5778,10 @@ var RecorderV2Addon = class extends BaseAddon {
|
|
|
5670
5778
|
createdBy: () => "operator",
|
|
5671
5779
|
outPath: exportOutPath,
|
|
5672
5780
|
removeFile: removeExportFile,
|
|
5673
|
-
downloadUrlFor: (id) => `/addon/${RECORDER_ADDON_ID}/${EXPORTS_PREFIX}/${id}.mp4
|
|
5781
|
+
downloadUrlFor: (id) => `/addon/${RECORDER_ADDON_ID}/${EXPORTS_PREFIX}/${id}.mp4`,
|
|
5782
|
+
statBytes: async (p) => (await promises.stat(p)).size,
|
|
5783
|
+
readFile: (p) => promises.readFile(p),
|
|
5784
|
+
logger: this.ctx.logger.child("export")
|
|
5674
5785
|
});
|
|
5675
5786
|
try {
|
|
5676
5787
|
const handler = withDirectoryRoute({
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path suffix for the audio-free variant dialed by a DETECTION decode session.
|
|
3
|
+
* Muted in every respect (no audio, still `isMuted()`), plus exempt from the
|
|
4
|
+
* live-edge join withhold.
|
|
5
|
+
*/
|
|
6
|
+
var DETECTION_MUTED_PATH_SUFFIX = "/muted-detection";
|
|
7
|
+
/**
|
|
8
|
+
* Split a restream request path (already stripped of `rtsp://host:port/` and of
|
|
9
|
+
* any `/trackID=N` control suffix) into its token, mute bit and intent.
|
|
10
|
+
*/
|
|
11
|
+
function parseRestreamPath(streamPath) {
|
|
12
|
+
if (streamPath.endsWith("/muted-detection")) return {
|
|
13
|
+
lookupPath: streamPath.slice(0, -16),
|
|
14
|
+
muted: true,
|
|
15
|
+
intent: "detection"
|
|
16
|
+
};
|
|
17
|
+
if (streamPath.endsWith("/muted")) return {
|
|
18
|
+
lookupPath: streamPath.slice(0, -6),
|
|
19
|
+
muted: true,
|
|
20
|
+
intent: null
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
lookupPath: streamPath,
|
|
24
|
+
muted: false,
|
|
25
|
+
intent: null
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Rewrite an acquired restream URL to declare the detection intent.
|
|
30
|
+
*
|
|
31
|
+
* Only a MUTED url is rewritten. `resolveSourceUrl` falls back to the
|
|
32
|
+
* audio-bearing url when the broker has no muted variant; that session is not
|
|
33
|
+
* muted, the live-edge withhold never applied to it, and appending the suffix
|
|
34
|
+
* would only break the token lookup. Idempotent.
|
|
35
|
+
*/
|
|
36
|
+
function withDetectionIntent(restreamUrl) {
|
|
37
|
+
if (restreamUrl.endsWith("/muted-detection")) return restreamUrl;
|
|
38
|
+
if (!restreamUrl.endsWith("/muted")) return restreamUrl;
|
|
39
|
+
return `${restreamUrl.slice(0, -6)}${DETECTION_MUTED_PATH_SUFFIX}`;
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/pipeline-runner/remote-restream.ts
|
|
43
|
+
/**
|
|
44
|
+
* Runner-side mode selection (pure): whether an attach payload routes this
|
|
45
|
+
* camera through the remote-source leg. Absent `frameSource` (a pre-P2c
|
|
46
|
+
* payload) and `local-broker` both take the co-located broker path.
|
|
47
|
+
*/
|
|
48
|
+
function isRemoteRestream(frameSource) {
|
|
49
|
+
return frameSource !== void 0 && frameSource.kind === "remote-restream";
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Resolve WHICH broker profile a camStream id feeds for a device (pure).
|
|
53
|
+
*
|
|
54
|
+
* `getStreamWithCodec` targets a PROFILE (its assigned camStream), while the
|
|
55
|
+
* runner is dispatched with camStream ids (`motionStreamId` /
|
|
56
|
+
* `detectionStreamId`). The broker's profile slots carry the mapping
|
|
57
|
+
* (`sourceCamStreamId`); a stream no slot feeds returns `null` — the acquire
|
|
58
|
+
* fails fast and the caller's backoff retries (the assignment may still be
|
|
59
|
+
* propagating).
|
|
60
|
+
*/
|
|
61
|
+
function profileForStreamId(slots, deviceId, streamId) {
|
|
62
|
+
for (const slot of slots) if (slot.deviceId === deviceId && slot.sourceCamStreamId === streamId) return slot.profile;
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
Object.defineProperty(exports, "isRemoteRestream", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function() {
|
|
69
|
+
return isRemoteRestream;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "parseRestreamPath", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function() {
|
|
75
|
+
return parseRestreamPath;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "profileForStreamId", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function() {
|
|
81
|
+
return profileForStreamId;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
Object.defineProperty(exports, "withDetectionIntent", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function() {
|
|
87
|
+
return withDetectionIntent;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path suffix for the audio-free variant dialed by a DETECTION decode session.
|
|
3
|
+
* Muted in every respect (no audio, still `isMuted()`), plus exempt from the
|
|
4
|
+
* live-edge join withhold.
|
|
5
|
+
*/
|
|
6
|
+
var DETECTION_MUTED_PATH_SUFFIX = "/muted-detection";
|
|
7
|
+
/**
|
|
8
|
+
* Split a restream request path (already stripped of `rtsp://host:port/` and of
|
|
9
|
+
* any `/trackID=N` control suffix) into its token, mute bit and intent.
|
|
10
|
+
*/
|
|
11
|
+
function parseRestreamPath(streamPath) {
|
|
12
|
+
if (streamPath.endsWith("/muted-detection")) return {
|
|
13
|
+
lookupPath: streamPath.slice(0, -16),
|
|
14
|
+
muted: true,
|
|
15
|
+
intent: "detection"
|
|
16
|
+
};
|
|
17
|
+
if (streamPath.endsWith("/muted")) return {
|
|
18
|
+
lookupPath: streamPath.slice(0, -6),
|
|
19
|
+
muted: true,
|
|
20
|
+
intent: null
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
lookupPath: streamPath,
|
|
24
|
+
muted: false,
|
|
25
|
+
intent: null
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Rewrite an acquired restream URL to declare the detection intent.
|
|
30
|
+
*
|
|
31
|
+
* Only a MUTED url is rewritten. `resolveSourceUrl` falls back to the
|
|
32
|
+
* audio-bearing url when the broker has no muted variant; that session is not
|
|
33
|
+
* muted, the live-edge withhold never applied to it, and appending the suffix
|
|
34
|
+
* would only break the token lookup. Idempotent.
|
|
35
|
+
*/
|
|
36
|
+
function withDetectionIntent(restreamUrl) {
|
|
37
|
+
if (restreamUrl.endsWith("/muted-detection")) return restreamUrl;
|
|
38
|
+
if (!restreamUrl.endsWith("/muted")) return restreamUrl;
|
|
39
|
+
return `${restreamUrl.slice(0, -6)}${DETECTION_MUTED_PATH_SUFFIX}`;
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/pipeline-runner/remote-restream.ts
|
|
43
|
+
/**
|
|
44
|
+
* Runner-side mode selection (pure): whether an attach payload routes this
|
|
45
|
+
* camera through the remote-source leg. Absent `frameSource` (a pre-P2c
|
|
46
|
+
* payload) and `local-broker` both take the co-located broker path.
|
|
47
|
+
*/
|
|
48
|
+
function isRemoteRestream(frameSource) {
|
|
49
|
+
return frameSource !== void 0 && frameSource.kind === "remote-restream";
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Resolve WHICH broker profile a camStream id feeds for a device (pure).
|
|
53
|
+
*
|
|
54
|
+
* `getStreamWithCodec` targets a PROFILE (its assigned camStream), while the
|
|
55
|
+
* runner is dispatched with camStream ids (`motionStreamId` /
|
|
56
|
+
* `detectionStreamId`). The broker's profile slots carry the mapping
|
|
57
|
+
* (`sourceCamStreamId`); a stream no slot feeds returns `null` — the acquire
|
|
58
|
+
* fails fast and the caller's backoff retries (the assignment may still be
|
|
59
|
+
* propagating).
|
|
60
|
+
*/
|
|
61
|
+
function profileForStreamId(slots, deviceId, streamId) {
|
|
62
|
+
for (const slot of slots) if (slot.deviceId === deviceId && slot.sourceCamStreamId === streamId) return slot.profile;
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { withDetectionIntent as i, profileForStreamId as n, parseRestreamPath as r, isRemoteRestream as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
3
|
-
const require_worker_protocol = require("../worker-protocol-
|
|
3
|
+
const require_worker_protocol = require("../worker-protocol-D8M43suz.js");
|
|
4
4
|
let node_url = require("node:url");
|
|
5
5
|
let node_fs = require("node:fs");
|
|
6
6
|
node_fs = require_chunk.__toESM(node_fs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as formatNativeLeaseKnobs, n as isWorkerRequest, o as resolveNativeLeaseKnobs, r as logLevelForLine } from "../worker-protocol-
|
|
1
|
+
import { i as formatNativeLeaseKnobs, n as isWorkerRequest, o as resolveNativeLeaseKnobs, r as logLevelForLine } from "../worker-protocol-0uQE5Lfd.mjs";
|
|
2
2
|
import { pathToFileURL } from "node:url";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-
|
|
1
|
+
import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DU7u9EJt.mjs";
|
|
2
2
|
import { a as d, i as f, n as p, o as m, r as h, t as g } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react__loadShare__.js-C9j-2lBe.mjs";
|
|
3
3
|
import { n as _, r as v, t as y } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-XO0-Pyu6.mjs";
|
|
4
4
|
import { n as b, t as x } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-BO7TIbJV.mjs";
|
|
5
|
-
import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
5
|
+
import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-ircnzt0s.mjs";
|
|
6
6
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
|
|
7
7
|
var C = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), w = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), T = (e) => {
|
|
8
8
|
let t = w(e);
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.62",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_stream_broker_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.42",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_stream_broker_widgets",
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region \0virtual:mf:__mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js
|
|
2
|
+
var e = "__mf_init__virtual:mf:__mfe_internal__addon_stream_broker_widgets__mf_v__runtimeInit__mf_v__.js__", t = globalThis[e];
|
|
3
|
+
if (!t) {
|
|
4
|
+
let n, r, i = new Promise((e, t) => {
|
|
5
|
+
n = e, r = t;
|
|
6
|
+
});
|
|
7
|
+
t = globalThis[e] = {
|
|
8
|
+
initPromise: i,
|
|
9
|
+
initResolve: n,
|
|
10
|
+
initReject: r
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
var n = t.initPromise, r = "__mf_module_cache__";
|
|
14
|
+
globalThis[r] ||= {
|
|
15
|
+
share: {},
|
|
16
|
+
remote: {}
|
|
17
|
+
}, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
|
|
18
|
+
var i = globalThis[r], a, o = (e) => {
|
|
19
|
+
e.ACCESSORY_LABEL, e.ALEXA_EGRESS_PROFILE, e.ALL_CAPABILITY_DEFINITIONS, e.APPLE_SA_TO_MACRO, e.AUDIO_ANALYSIS_CAP_NAME, e.AUDIO_BACKEND_CHOICES, e.AUDIO_MACRO_LABELS, e.AUDIO_PRESETS, e.AccessoriesStatusSchema, e.AccessoryKind, e.AddBrokerInputSchema, e.AddonAutoUpdateSchema, e.AddonListItemSchema, e.AddonPageDeclarationSchema, e.AddonPageInfoSchema, e.AdoptionAdoptInputSchema, e.AdoptionAdoptResultSchema, e.AdoptionCandidateResultSchema, e.AdoptionFilterSchema, e.AdoptionGetCandidateInputSchema, e.AdoptionJobSchema, e.AdoptionJobStateSchema, e.AdoptionListCandidatesInputSchema, e.AdoptionListCandidatesOutputSchema, e.AdoptionOutcomeSchema, e.AdoptionReleaseInputSchema, e.AdoptionStatusSchema, e.AgentLoadSummarySchema, e.AirQualitySensorStatusSchema, e.AlarmArmModeSchema, e.AlarmPanelStatusSchema, e.AlarmStateSchema, e.AlertSchema, e.AlertSeveritySchema, e.AlertSourceSchema, e.AlertStatusSchema, e.AmbientLightSensorStatusSchema, e.ApiKeyRecordSchema, e.ApiKeySummarySchema, e.ArchiveEntrySchema, e.ArchiveManifestSchema, e.AttachmentMediaTypeSchema, e.AttachmentSchema, e.AudioAnalysisResultSchema, e.AudioAnalysisSettingsSchema, e.AudioChunkInputSchema, e.AudioClassSummarySchema, e.AudioClassificationLabelSchema, e.AudioClassificationResultSchema, e.AudioCodecInfoSchema, e.AudioDecodeSessionConfigSchema, e.AudioEncodeSchema, e.AudioEncodeSessionConfigSchema, e.AudioEncodedChunkSchema, e.AudioEventSchema, e.AudioLevelSchema, e.AudioMetricsHistoryPointSchema, e.AudioMetricsHistorySchema, e.AudioMetricsSnapshotSchema, e.AudioPcmChunkSchema, e.AuthResultSchema, e.AutoUpdateSettingsSchema, e.AutomationActionSchema, e.AutomationConditionOperatorSchema, e.AutomationConditionSchema, e.AutomationControlStatusSchema, e.AutomationRecipeSchema, e.AutomationTriggerSchema, e.AvailableIntegrationTypeSchema, e.BACKEND_TO_FORMAT, e.BASE_LIVE_EGRESS_PROFILE, e.BATTERY_DEVICE_PROFILE, e.BacklightModeSchema, e.BackupDestinationInfoSchema, e.BackupEntrySchema, e.BaseAddon, e.BaseDevice, e.BaseDeviceProvider, e.BatteryStatusSchema, e.BinaryStatusSchema, e.BoundingBoxSchema, e.BrightnessStatusSchema, e.BrokerAddInputSchema, e.BrokerAudioClientSchema, e.BrokerClientsSchema, e.BrokerConnectionDetailsSchema, e.BrokerConsumerAttributionSchema, e.BrokerConsumerKindSchema, e.BrokerDecodedClientSchema, e.BrokerEncodedClientSchema, e.BrokerGetStateInputSchema, e.BrokerInfoSchema, e.BrokerProviderInfoSchema, e.BrokerPublishInputSchema, e.BrokerRegistryStatusSchema, e.BrokerRtspClientSchema, e.BrokerStatsSchema, e.BrokerStatusEnum, e.BrokerStatusSchema, e.BrokerSubscribeInputSchema, e.BrokerSubscribeResultSchema, e.BrokerTestConnectionResultSchema, e.BrokerUnsubscribeInputSchema, e.CAMERA_SWITCH_CATALOG, e.CAMERA_SWITCH_ORDER, e.CAM_PROFILE_ORDER, e.CAPABILITY_NAMES, e.CAPABILITY_ROUTER_KEYS, e.CAP_NAMES_WITH_STATUS, e.CAP_NODE_PIN_CONTEXT_KEY, e.CAP_PROVIDER_KIND_MAP, e.COCO_80_LABELS, e.COCO_TO_MACRO, e.CONNECTION_TEST_TIMEOUT_MS, e.CORE_BLOCKS_ADDON_ID, e.CORE_BLOCK_ADDON_PREFIX, e.CamProfileSchema, e.CamStreamDescriptorSchema, e.CamStreamKindSchema, e.CamStreamResolutionSchema, e.CameraAssignmentStatusSchema, e.CameraAudioStatusSchema, e.CameraBrokerProfileSchema, e.CameraBrokerStatusSchema, e.CameraCredentialsSchema, e.CameraCredentialsStatusSchema, e.CameraDecoderShmSchema, e.CameraDecoderStatusSchema, e.CameraDetectionPhaseSchema, e.CameraDetectionProvisioningSchema, e.CameraDetectionProvisioningStateSchema, e.CameraDetectionStatusSchema, e.CameraMetricsSchema, e.CameraMetricsWithDeviceIdSchema, e.CameraMotionStatusSchema, e.CameraRecordingModeSchema, e.CameraRecordingStatusSchema, e.CameraSourceStatusSchema, e.CameraSourceStreamSchema, e.CameraStatusDegradationReasonSchema, e.CameraStatusDegradationSchema, e.CameraStatusSchema, e.CameraStatusStageSchema, e.CameraStreamSchema, e.CameraSwitchAuthoritySchema, e.CameraSwitchGroupSchema, e.CameraSwitchIdSchema, e.CameraSwitchSchema, e.CameraSwitchUnavailableReasonSchema, e.CandidateQueryFilterSchema, e.CapScopeSchema, e.CapabilityBindingsSchema, e.CarbonMonoxideStatusSchema, e.ChargingStatus, e.ClientNetworkStatsSchema, e.ClimateControlStatusSchema, e.ClipPlaybackSchema, e.ClipSchema, e.ClusterAddonNodeDeploymentSchema, e.ClusterAddonStatusEntrySchema, e.CollectionColumnSchema, e.CollectionIndexSchema, e.ColorStatusSchema, e.ConfigEntrySchema, e.ConfigSectionWithValuesSchema, e.ConfigTabDeclarationSchema, e.ConnectionTestDescriptorSchema, e.ConnectionTestInputSchema, e.ConnectionTestOutcomeSchema, e.ConnectivityStatusSchema, e.ConsumableItemSchema, e.ConsumablesStatusSchema, e.ContactStatusSchema, e.ControlKindSchema, e.ControlStatusSchema, e.ConvertArtifactSchema, e.ConvertResultSchema, e.ConvertTargetSchema, e.CoreBlockCompileResultSchema, e.CoreBlockInputSchema, e.CoreBlockPlacementSchema, e.CoreBlockSchema, e.CoreBlockStatusSchema, e.CoverStateSchema, e.CoverStatusSchema, e.CreateApiKeyInputSchema, e.CreateApiKeyResultSchema, e.CreateIntegrationInputSchema, e.CreateScopedTokenInputSchema, e.CreateScopedTokenResultSchema, e.CreateUserInputSchema, e.CustomActionInputSchema, e.CustomModelDescriptorSchema, e.DATAPLANE_SECRET_HEADER, e.DECLARED_DEVICE_SWEEP_LIMIT, e.DECLARED_INTEGRATION_FIXED_KEY, e.DEFAULT_ADDON_PLACEMENT, e.DEFAULT_AUDIO_ANALYZER_CONFIG, e.DEFAULT_DECODER_HWACCEL_CONFIG, e.DEFAULT_DETAIL_CROP_CONVENTION, e.DEFAULT_EVENTS_BAND_BUFFER_SEC, e.DEFAULT_EVENT_COLOR, e.DEFAULT_FEATURES, e.DEFAULT_NATIVE_LEASE_SETTINGS, e.DEFAULT_RETENTION, e.DEFAULT_SCRUB_THUMBNAIL_PRESET, e.DETAIL_CROP_PADDING_FIELD, e.DETAIL_CROP_PADDING_KEY, e.DETAIL_CROP_SECTION_ID, e.DETAIL_CROP_SQUARE_KEY, e.DETECTION_PIPELINE_CAP_NAME, e.DEVICE_BACKEND_TO_FORMAT, e.DEVICE_CAP_NAMES, e.DEVICE_PROFILES, e.DEVICE_SCOPED_CAPS, e.DEVICE_SETTINGS_CONTRIBUTION_METHODS, e.DEVICE_STATE_READERS, e.DEVICE_STATUS_METHOD, e.DEVICE_TYPE_CONTROL_KIND, e.DEVICE_TYPE_INFO, e.DataStoreEngineInfoSchema, e.DayNightModeSchema, e.DayNightOptionsSchema, e.DayNightSettingsPatchSchema, e.DayNightStatusSchema, e.DeclaredDevices, e.DecodedAudioChunkSchema, e.DecodedFrameSchema, e.DecoderSessionConfigSchema, e.DecoderStatsSchema, e.DeleteIntegrationResultSchema, e.DetailCropConventionSchema, e.DetectionSourceSchema, e.DeviceCodeSeveritySchema, e.DeviceConfig, e.DeviceDiscoveryStatusSchema, e.DeviceExportExposeInputSchema, e.DeviceExportStatusSchema, e.DeviceExportUnexposeInputSchema, e.DeviceFeature, e.DeviceInfoSchema, e.DeviceNetworkStatsSchema, e.DeviceRole, e.DeviceRuntimeState, e.DeviceStatusSchema, e.DeviceType, e.DiscoveredChildDeviceSchema, e.DiscoveredChildStatusSchema, e.DiscoveredDeviceSchema, e.DiscoveredTargetSchema, e.DisposerChain, e.DoorbellPressEventSchema, e.DoorbellStatusSchema, e.EVENTFUL_CAP_NAMES, e.EVENT_KIND_BY_CAP, e.EVENT_PAD_MS, e.EVENT_TAXONOMY, e.EXPORT_DENSE_MAX_RANGES, e.EXPRESSION_BUILTINS, e.EXPRESSION_BUILTIN_NAMES, e.EXPRESSION_COMPILE_CACHE_CAPACITY, e.EXPRESSION_IDENTIFIER_RE, e.EXPRESSION_INJECTED_NOW, e.EgressEncodeSchema, e.EgressRateControlSchema, e.EgressTranscodeRequestSchema, e.EgressTranscodeSchema, e.ElementConfigStore, e.EmbeddingInfoSchema, e.EmbeddingResultSchema, e.EncodeProfileSchema, e.EncodedPacketSchema, e.EnrichedWidgetMetadataSchema, e.EnumSensorDateTimeFormatSchema, e.EnumSensorStatusSchema, e.EventCategory, e.EventEmitterStatusSchema, e.EventFireSchema, e.EventItemSchema, e.EventKindCategorySchema, e.EventKindDescriptorSchema, e.EventKindIconSchema, e.EventKindSchema, e.EventKindsForDeviceSchema, e.EventMediaArtifactSchema, e.EventMediaCoverageSchema, e.EventMediaKindSchema, e.EventMediaProductionSchema, e.EventSourceType, e.ExportBytesSchema, e.ExportDenseRangeSchema, e.ExportDenseSchema, e.ExportDownloadSchema, e.ExportOptionsSchema, e.ExportRecordSchema, e.ExportSetupFieldSchema, e.ExportSetupSchema, e.ExportSpeedSchema, e.ExportStateSchema, e.ExportTimelapseSchema, e.ExposedDeviceSchema, e.ExposureModeSchema, e.ExpressionBindingSourceSchema, e.ExpressionEvalError, e.ExpressionFieldBindingSchema, e.ExpressionGlobalBindingSchema, e.ExpressionLiteralBindingSchema, e.ExpressionParseError, e.ExpressionSourceSchema, e.FanControlStatusSchema, e.FanDirectionSchema, e.FeatureManifestSchema, e.FeatureProbeStatusSchema, e.FloodStatusSchema, e.Fmp4BoxSplitter, e.FrameHandleFormatSchema, e.FrameHandleSchema, e.FrameInputSchema, e.GasStatusSchema, e.GetStreamWithCodecInputSchema, e.GlobalMetricsSchema, e.HAP_AUDIO_BASE, e.HAP_AUDIO_BITRATE_KBPS, e.HAP_AUDIO_VBV_KBITS, e.HAP_KEYFRAME_INTERVAL_SEC, e.HF_BASE_URL, e.HF_REPO, e.HWACCEL_OPTIONS, e.HealthStatusSchema, e.HistoryPointSchema, e.HistoryResolutionEnum, e.HumidifierStatusSchema, e.HumiditySensorStatusSchema, e.HvacModeSchema, e.ImageContractSchema, e.ImageContractStateSchema, e.ImageRotateSchema, e.ImageSettingsOptionsSchema, e.ImageSettingsPatchSchema, e.ImageSettingsStatusSchema, e.ImageStatusSchema, e.IngestOwnerSchema, e.InstalledPackageSchema, e.IntegrationLiteSchema, e.IntegrationWithStateSchema, e.IntercomAbilitySchema, e.IntercomStatusSchema, e.KNOWN_CAP_NAMES, e.KeyEventSchema, e.LOG_LEVEL_RANK, e.LabelAttributionSchema, e.LabelDefinitionSchema, e.LabelTierSchema, e.LawnMowerActivitySchema, e.LawnMowerControlStatusSchema, e.LinkedDeviceSchema, e.LinkedDevicesModeSchema, e.LlmDefaultSchema, e.LlmDefaultSelectorSchema, e.LlmErrorCodeSchema, e.LlmGenerateBaseInputSchema, e.LlmGenerateErrSchema, e.LlmGenerateOkSchema, e.LlmGenerateResultSchema, e.LlmImageSchema, e.LlmNodeModelSchema, e.LlmProfileKindDescriptorSchema, e.LlmProfileKindSchema, e.LlmProfileSchema, e.LlmRuntimeCompleteInputSchema, e.LlmRuntimeDiskUsageSchema, e.LlmRuntimeNodeSchema, e.LlmRuntimeStatusSchema, e.LlmUsageRollupSchema, e.LlmUsageSchema, e.LocateSegmentResultSchema, e.LocationStatSchema, e.LockControlStatusSchema, e.LockStateSchema, e.LogEntrySchema, e.LogLevelSchema, e.LogStreamEntrySchema, e.LoginMethodContributionSchema, e.LoginStageEnum, e.MACRO_LABELS, e.MAX_CONDITION_DEPTH, e.MAX_CONDITION_LEAVES, e.MAX_EXPRESSION_AST_NODES, e.MAX_EXPRESSION_BINDINGS, e.MAX_EXPRESSION_CALL_ARGS, e.MAX_EXPRESSION_EVAL_STEPS, e.MAX_EXPRESSION_SOURCE_LENGTH, e.METHOD_ACCESS_MAP, e.MODEL_FORMATS, e.MOTION_TRIGGER_FEATURE, e.ManagedModelCatalogEntrySchema, e.ManagedModelRefSchema, e.ManagedRuntimeConfigSchema, e.MaskGridDimsSchema, e.MaskGridShapeSchema, e.MaskLineShapeSchema, e.MaskPointSchema, e.MaskPolygonShapeSchema, e.MaskPolygonVerticesSchema, e.MaskRectShapeSchema, e.MaskShapeKindSchema, e.MaskShapeSchema, e.MediaFileInfoSchema, e.MediaFileSchema, e.MediaPlayerRepeatSchema, e.MediaPlayerStateSchema, e.MediaPlayerStatusSchema, e.MeshPeerSchema, e.MeshStatusSchema, e.MethodAccessSchema, e.ModelCatalogEntrySchema, e.ModelConvertInputSchema, e.ModelConvertMetadataSchema, e.ModelDistributeInputSchema, e.ModelDistributeResultSchema, e.ModelExtraFileSchema, e.ModelFormatEntrySchema, e.ModelFormatsSchema, e.ModelSubstitutionSchema, e.ModelVariantGroupSchema, e.MotionAnalysisResultSchema, e.MotionEventSchema, e.MotionOnMotionChangedDataSchema, e.MotionRegionSchema, e.MotionSourceEnum, e.MotionSourcesSchema, e.MotionStatusSchema, e.MotionTriggerRuntimeStateSchema, e.MotionTriggerStatusSchema, e.MotionZoneOptionsSchema, e.MotionZonePatchSchema, e.MotionZoneRegionSchema, e.MotionZoneStatusSchema, e.MqttBrokerStatusSchema, e.MutationFilterSchema, e.NATIVE_LEASE_ACTIVITY_FIELD, e.NATIVE_LEASE_ACTIVITY_KEY, e.NATIVE_LEASE_ADMISSION_FIELD, e.NATIVE_LEASE_ADMISSION_KEY, e.NATIVE_LEASE_BUDGET_FIELD, e.NATIVE_LEASE_BUDGET_KEY, e.NATIVE_LEASE_SECTION_ID, e.NATIVE_LEASE_TTL_FIELD, e.NATIVE_LEASE_TTL_KEY, e.NC_BASE_CONDITION_KEYS, e.NC_CONDITION_CATALOG, e.NC_HISTORY_LIMIT_DEFAULT, e.NC_HISTORY_LIMIT_MAX, e.NC_MAX_PER_TRACK_IMMEDIATE, e.NC_SNOOZE_MAX_MINUTES, e.NC_TAXONOMY, e.NativeCropBboxSchema, e.NativeCropRefSchema, e.NativeCropResultSchema, e.NativeDetectionSchema, e.NativeLeaseAdmissionSchema, e.NativeLeaseSettingsSchema, e.NativeObjectClassEnum, e.NativeObjectDetectionRuntimeStateSchema, e.NativeObjectDetectionStatusSchema, e.NcAlarmConfigSchema, e.NcAlarmModeCoverageSchema, e.NcAlarmSettingsPatchSchema, e.NcAlarmSettingsSchema, e.NcConditionDescriptorSchema, e.NcConditionsSchema, e.NcCrossingSchema, e.NcDeliverySchema, e.NcDeviceStateConditionSchema, e.NcHistoryEntrySchema, e.NcHistoryFilterSchema, e.NcHistoryRecordKindSchema, e.NcHistoryStatusSchema, e.NcHistorySubjectSchema, e.NcMediaFrameSchema, e.NcMediaPolicySchema, e.NcOccupancyConditionSchema, e.NcPlateMatcherSchema, e.NcRuleActionSchema, e.NcRuleActionSequenceSchema, e.NcRuleActionsSchema, e.NcRuleInputSchema, e.NcRuleNotificationButtonSchema, e.NcRulePatchSchema, e.NcRuleSchema, e.NcRuleTargetSchema, e.NcScheduleSchema, e.NcScheduleWindowSchema, e.NcSnoozeInputSchema, e.NcSnoozeSchema, e.NcSnoozeScopeSchema, e.NcSnoozeSuppressedSchema, e.NcSystemEventConditionSchema, e.NcSystemEventKindSchema, e.NcTaxonomyEntrySchema, e.NcTaxonomySchema, e.NcTestResultSchema, e.NcThrottleGranularitySchema, e.NcThrottleSchema, e.NcZoneConditionSchema, e.NetworkAccessStatusSchema, e.NetworkAddressSchema, e.NetworkEndpointSchema, e.NotificationActionIconSchema, e.NotificationActionSchema, e.NotificationFormatSchema, e.NotificationSchema, e.NotifierStatusSchema, e.NumericSensorStatusSchema, e.OPS_LOG_DEFAULT_LIMIT, e.OPS_LOG_RING_DEFAULT_MAX, e.OauthIntegrationDescriptorSchema, e.ObjectEventSchema, e.OpsLogDomainSchema, e.OpsLogEntrySchema, e.OpsLogOpSchema, e.OpsLogQueryInputSchema, e.OpsLogReasonSchema, e.OrchestratorMetricsSchema, e.OsdOverlayKindEnum, e.OsdOverlayPatchSchema, e.OsdOverlaySchema, e.OsdPositionEnum, e.OsdRenderOutcomeEnum, e.OsdRenderResultSchema, e.OsdSlotBindingSchema, e.OsdSlotViewSchema, e.OsdSourceOptionSchema, e.OsdSourceSchema, e.OsdSourceValueTypeEnum, e.OsdStatusSchema, e.PET_FEEDER_MANUAL_FEED_MAX, e.PET_FEEDER_MANUAL_FEED_MIN, e.PIPELINE_FLOW_CAPABILITY_NAMES, e.PIPELINE_OWNER_CAPABILITY_NAMES, e.PRIVACY_MASK_CAP_NAME, e.PROVIDER_KIND_CAP_NAMES, e.PYTHON_SCRIPT, e.PackageUpdateSchema, e.PackageVersionInfoSchema, e.PasskeyLoginMethodSchema, e.PasskeySummarySchema, e.PcmSampleFormatSchema, e.PerScopeBreakdownSchema, e.PetFeederStatusSchema, e.PickStreamPreferencesSchema, e.PickStreamRequirementsSchema, e.PickedCamStreamSchema, e.PipelineAssignmentSchema, e.PipelineDefaultStepSchema, e.PipelineEngineChoiceSchema, e.PipelineRunResultBridge, e.PipelineStepInputSchema, e.PipelineValidationIssueSchema, e.PipelineValidationResultSchema, e.PlaceholderReasonSchema, e.PolygonPointSchema, e.PowerMeterStatusSchema, e.PresenceStatusSchema, e.PressureSensorStatusSchema, e.PrivacyMaskOptionsSchema, e.PrivacyMaskPatchSchema, e.PrivacyMaskRegionSchema, e.PrivacyMaskShapeSchema, e.PrivacyMaskStatusSchema, e.ProfileRtspEntrySchema, e.ProfileSlotSchema, e.ProfileSlotStatusSchema, e.ProviderStatusSchema, e.PtzAutotrackRuntimeStateSchema, e.PtzAutotrackSettingsSchema, e.PtzAutotrackStatusSchema, e.PtzAutotrackTargetOptionSchema, e.PtzMoveCommandSchema, e.PtzOptionsSchema, e.PtzPositionSchema, e.PtzPresetSchema, e.PtzStatusSchema, e.QueryFilterSchema, e.RATE_CONTROL_RELAXED, e.RATE_CONTROL_TIGHT, e.REACHABILITY_FAILURES_TO_OFFLINE, e.REACHABILITY_POLL_INTERVAL_MS, e.REACHABILITY_PROBE_TIMEOUT_MS, e.RECOGNITION_TYPES, e.RECORDING_EXPORT_MAX_READ_BYTES, e.RESERVED_BINDING_NAMES, e.RUNTIME_DEFAULTS, e.RUNTIME_TO_FORMAT, e.RawStateResultSchema, e.ReadGopBytesResultSchema, e.ReadSegmentBytesResultSchema, e.ReadinessRegistry, e.ReadinessTimeoutError, e.RecentTracksPageSchema, e.RecentTracksQueryInput, e.RecordingAvailabilitySchema, e.RecordingBandModeSchema, e.RecordingBandSchema, e.RecordingBandTriggersSchema, e.RecordingConfigSchema, e.RecordingDaysSchema, e.RecordingDeviceUsageSchema, e.RecordingLocationUsageSchema, e.RecordingManifestSchema, e.RecordingRangeSchema, e.RecordingRetentionSchema, e.RecordingStatusSchema, e.RecordingStorageModeSchema, e.RecordingStorageUsageSchema, e.RecordingTriggersSchema, e.RecordingWeekdaySchema, e.RedirectLoginMethodSchema, e.RelocateFootageClassSchema, e.RelocateFootageInputSchema, e.RelocateJobSchema, e.RelocateJobStateSchema, e.RelocateMediaInputSchema, e.RenderedAsSchema, e.ReportMotionInputSchema, e.RetrainAnnotationDraftSchema, e.RetrainAnnotationKindSchema, e.RetrainAnnotationSchema, e.RetrainAnnotationSourceSchema, e.RetrainAssistResultSchema, e.RetrainAssistSubjectSchema, e.RetrainCopyRefusalSchema, e.RetrainFrameCandidateSchema, e.RetrainFrameListSchema, e.RetrainFrameSchema, e.RetrainFrameSelectionSchema, e.RetrainMacroClassSchema, e.RetrainStatusSchema, e.RetrainTrackSchema, e.RetrainTransitionResultSchema, e.RingBuffer, e.RtpSourceSchema, e.RtspRestreamEntrySchema, e.RunnerCameraConfigSchema, e.RunnerCameraDeviceUIFields, e.RunnerFrameSourceSchema, e.RunnerInferenceDeviceSchema, e.RunnerLocalLoadSchema, e.RunnerLocalMetricsSchema, e.SCOPE_PRESETS, e.SCRUB_THUMBNAIL_PRESETS, e.SCRUB_THUMBNAIL_PRESET_LABELS, e.SCRUB_THUMBNAIL_PRESET_ORDER, e.SENSOR_FEATURES, e.SENSOR_MAP, e.SOURCE_INFO_METADATA_KEY, e.STREAM_PROFILE_META, e.STREAM_QUALITY_LABELS, e.SUB_DETECTION_TYPES, e.SYSTEM_CAP_NAMES, e.SceneCheckSchema, e.SceneConditionSchema, e.SceneMonitorSchema, e.SceneMonitorStateSchema, e.SceneMonitorStatusSchema, e.SceneReferenceSchema, e.ScopedTokenSchema, e.ScopedTokenSummarySchema, e.ScoredObjectEventSchema, e.ScriptRunnerStatusSchema, e.ScrubThumbnailPresetSchema, e.SearchResultSchema, e.SendEmailInputSchema, e.SendEmailResultSchema, e.SendResultSchema, e.SensorEventSchema, e.ServerBootModeSchema, e.ServerPackageStatusSchema, e.ServerRollbackInfoSchema, e.ServerUpdateActionResultSchema, e.ServerUpdateCheckResultSchema, e.ServerUpdateStateSchema, e.SettingsPatchSchema, e.SettingsRecordSchema, e.SettingsSchemaWithValuesSchema, e.SettingsUpdateResultSchema, e.ShmRingStatsSchema, e.SmokeStatusSchema, e.SmtpStatusSchema, e.SnapshotImageSchema, e.SourceInfoSchema, e.SpatialDetectionSchema, e.SsoBridgeClaimsSchema, e.StartEmbeddedInputSchema, e.StationaryObjectSchema, e.StorageAbortUploadInputSchema, e.StorageBeginDownloadInputSchema, e.StorageBeginDownloadResultSchema, e.StorageBeginUploadInputSchema, e.StorageBeginUploadResultSchema, e.StorageEndDownloadInputSchema, e.StorageFinalizeUploadInputSchema, e.StorageLocationDeclarationSchema, e.StorageLocationRefSchema, e.StorageLocationSchema, e.StorageLocationTypeSchema, e.StorageMigrationClassSchema, e.StorageMigrationDestinationsSchema, e.StorageMigrationFootageMoveInputSchema, e.StorageMigrationInputSchema, e.StorageMigrationJobSchema, e.StorageMigrationLeaseInputSchema, e.StorageMigrationMediaMoveInputSchema, e.StorageMigrationMoveSchema, e.StorageMigrationParticipantSchema, e.StorageMigrationPhaseSchema, e.StorageMigrationPlanSchema, e.StorageProviderInfoSchema, e.StorageReadChunkInputSchema, e.StorageTestLocationResultSchema, e.StorageWriteChunkInputSchema, e.StreamCodecSchema, e.StreamFormatSchema, e.StreamNetworkStatsSchema, e.StreamParamsOptionsSchema, e.StreamParamsStatusSchema, e.StreamProfileConfigSchema, e.StreamProfileOptionsSchema, e.StreamProfilePatchSchema, e.StreamProfileSchema, e.StreamSourceEntrySchema, e.StreamSourceSchema, e.SubscribeAudioChunksInputSchema, e.SubscribeAudioChunksResultSchema, e.SubscribeFramesInputSchema, e.SubscribeFramesResultSchema, e.SwitchStatusSchema, e.SystemMetricsSchema, e.SystemMirror, e.TAXONOMY_COLORS, e.TIMEZONES, e.TRANSCODE_DOWN_MAX_BITRATE_KBPS, e.TRANSCODE_DOWN_MAX_HEIGHT, e.TamperStatusSchema, e.TankStatusSchema, e.TargetKindCapsSchema, e.TargetKindLevelSchema, e.TargetKindSchema, e.TargetSchema, e.TemperatureSensorStatusSchema, e.TerminalInstanceInfoSchema, e.TerminalLegacyCameraSchema, e.TerminalOutputBatchSchema, e.TerminalOutputEventSchema, e.TerminalProfileInfoSchema, e.TerminalSessionInfoSchema, e.TestConnectionResultSchema, e.TestConnectionStatusEnum, e.TestResultSchema, e.TimelapseRuleInputSchema, e.TimelapseRulePatchSchema, e.TimelapseRuleSchema, e.TimelapseTemplateSchema, e.ToastSchema, e.TokenScopeSchema, e.TopologyNodeSchema, e.TopologyProcessSchema, e.TopologyServiceSchema, e.TrackCascadeCountsSchema, e.TrackEnvelopeSchema, e.TrackFlagsPatchSchema, e.TrackFlagsSchema, e.TrackProjectionSchema, e.TrackSchema, e.TrackSourceSchema, e.TrackStateSchema, e.TrackZoneFilterSchema, e.TrackedDetectionSchema, e.TrainingExportDeviceTotalsSchema, e.TrainingExportSummarySchema, e.TurnServerSchema, e.UNIT_TABLE, e.UnifiedBrokerInfoSchema, e.UnitConversionError, e.UpdateIntegrationInputSchema, e.UpdateStatusSchema, e.UpdateUserInputSchema, e.UserRecordSchema, e.UserSummarySchema, e.VacuumControlStatusSchema, e.VacuumStateSchema, e.ValveStateSchema, e.ValveStatusSchema, e.VectorDeclareIndexInputSchema, e.VectorDeleteByFilterInputSchema, e.VectorDeleteInputSchema, e.VectorDeleteResultSchema, e.VectorFilterSchema, e.VectorGetInputSchema, e.VectorGetResultSchema, e.VectorItemSchema, e.VectorMatchSchema, e.VectorMetadataSchema, e.VectorMetricSchema, e.VectorQueryInputSchema, e.VectorQueryResultSchema, e.VectorStatsInputSchema, e.VectorStatsResultSchema, e.VectorUpsertInputSchema, e.VectorUpsertResultSchema, e.VibrationStatusSchema, e.VideoEncodeSchema, e.WEBRTC_EGRESS_PROFILE, e.WELL_KNOWN_TABS, e.WELL_KNOWN_TAB_MAP, e.WaterHeaterStatusSchema, e.WeatherStatusSchema, e.WebrtcStreamChoiceSchema, e.WebrtcStreamTargetSchema, e.WhiteBalanceModeSchema, e.WidgetHostEnum, e.WidgetLoginMethodSchema, e.WidgetMetadataSchema, e.WidgetRemoteSchema, e.WidgetSizeEnum, e.YAMNET_TO_MACRO, e.ZoneCrossingDirectionSchema, e.ZoneCrossingSchema, e.ZoneKindEnum, e.ZoneRuleModeEnum, e.ZoneRuleSchema, e.ZoneRuleStageEnum, e.ZoneRulesArraySchema, e.ZoneSchema, e.ZoneScopeBreakdownSchema, e.accessoriesCapability, e.accessoryStableId, e.addonPagesCapability, e.addonPagesSourceCapability, e.addonRoutesCapability, e.addonSettingsCapability, e.addonWidgetsCapability, e.addonWidgetsSourceCapability, e.addonsCapability, e.adminUiCapability, e.airQualitySensorCapability, e.alarmPanelCapability, e.alertsCapability, e.ambientLightSensorCapability, e.asBoolean, e.asJsonArray, e.asJsonObject, e.asNumber, e.asString, e.audioAnalysisCapability, e.audioAnalyzerCapability, e.audioCodecCapability, e.audioMetricsCapability, e.audioPlanFromEncodeProfile, e.authProviderCapability, e.autoAssignProfiles, e.automationControlCapability, e.backupCapability, e.bareAddonId, e.batteryCapability, e.bestLocationMatch, e.binaryCapability, e.bindAddonActions, e.brightnessCapability, e.brokerCapability, e.buildAddonRouteProvider, e.buildAudioArgs, e.buildEventKindDescriptor, e.buildFfmpegArgs, e.buildInputArgs, e.buildModelVariantGroups, e.buildNcTaxonomy, e.buildStreamParamsConfigSchema, e.buildVideoArgs, e.buttonCapability, e.cameraCredentialsCapability, e.cameraPipelineConfigCapability, e.cameraStreamsCapability, e.canConvertUnit, e.canonicalEgressPlan, e.carbonMonoxideCapability, e.cellsToRects, e.classifyBearerPrincipal, e.classifyStream, e.classifyStreams, e.climateControlCapability, e.collectHydratedFieldEntries, e.collectHydratedFieldValues, e.colorCapability, e.colorForKind, e.compileExpression, e.compileExpressionSafe, e.composeSwitchedOff, e.conditionDepth, e.connectionTestCapability, e.connectivityCapability, e.consumablesCapability, e.contactCapability, e.controlCapability, e.convertUnit, e.coreBlockAddonId, e.coreBlockIdFromAddonId, e.coreBlocksCapability, e.cosineSimilarity, e.countConditionLeaves, e.coverCapability, e.createDeviceProxy, e.createDurableState, e.createEvent, e.createExpressionScope, e.createHwAccelCache, e.createLazyTrpcSource, e.createMirrorSource, e.createRuntimeStateBridge, e.createSliceHandle, e.createSystemProxy, e.customAction, e.customModelRegistryCapability, e.dataStoreProviderCapability, e.dayNightCapability, e.declarationOwnerNodeId, e.decodeVectorBase64, e.decoderCapability, e.defaultDeviceFor, e.defineCustomActions, e.deriveCameraSwitches, e.deriveDetailCropRect, e.deriveRecordingMode, e.describeModelVariant, e.detectionPipelineCapability, e.deviceAdoptionCapability, e.deviceBackendToFormat, e.deviceCustomAction, e.deviceDiscoveryCapability, e.deviceExportCapability, e.deviceManagerCapability, e.deviceMatchesProfile, e.deviceOpsCapability, e.deviceProviderCapability, e.deviceStateCapability, e.deviceStatusCapability, e.doorbellCapability, e.egressTranscodeSharingKey, e.egressTransportFromRequest, e.embeddingEncoderCapability, e.emitDownForOwnedCaps, e.emitReadiness, e.encodeProfileFromStreamShape, e.encodeVectorBase64, e.enumSensorCapability, e.enumerateInferenceDevices, e.enumerateItemArrayFields, e.enumerateSchemaFields, e.errMsg, e.evaluateAst, e.evaluateExpressionSource, e.evaluateZoneRules, e.event, e.eventEmitterCapability, e.eventsCapability, e.expandCapMethods, e.extractNestedAddonId, e.extractSourceInfoFromMetadata, e.faceGalleryCapability, e.fanControlCapability, e.featureProbeCapability, e.filesystemBrowseCapability, e.findTimezone, e.floodCapability, e.formatForBackend, e.formatForRuntime, e.gasCapability, e.generateAutomationBlock, e.getAudioMacroClassIds, e.getByPath, e.getCapsByProviderKind, e.getTaxonomyEntry, e.hasMotionTrigger, e.hfModelUrl, e.htmlToText, e.humidifierCapability, e.humiditySensorCapability, e.hydrateSchema, e.imageCapability, e.imageSettingsCapability, e.integrationsCapability, e.intercomCapability, e.invocationFromEncodeProfile, e.isAgentOnlyPlacement, e.isArrayOutputSchema, e.isBaseConditionKey, e.isCollectionArrayMethod, e.isDeployableToAgent, e.isDeviceConfigCap, e.isDeviceScopedCap, e.isEvent, e.isNode, e.isObjectInput, e.isSameAddonId, e.isScheduleActive, e.isSoftwareDecode, e.isVoidInput, e.jobKindSchema, e.kebabToCamel, e.knownValues, e.lawnMowerControlCapability, e.lifecycleJobSchema, e.lifecycleJobScopeSchema, e.lifecycleJobStateSchema, e.lifecycleTaskSchema, e.llmCapability, e.llmRuntimeCapability, e.localNetworkCapability, e.locationSimilarity, e.lockControlCapability, e.logBannerArgs, e.logDestinationCapability, e.logLevelAtMost, e.loginMethodCapability, e.looseSchema, e.makeProfileBrokerId, a = e.makeSourceBrokerId, e.mapAudioLabelToMacro, e.markdownToHtmlLite, e.markdownToText, e.maskUrlCredentials, e.mediaPlayerCapability, e.mergeSourceInfo, e.meshNetworkCapability, e.method, e.methodAccessForHttpMethod, e.metricsProviderCapability, e.modelConvertCapability, e.modelDistributorCapability, e.modelFormatForRuntime, e.motionCapability, e.motionDetectionCapability, e.motionTriggerCapability, e.motionZonesCapability, e.mqttBrokerCapability, e.nativeObjectDetectionCapability, e.networkAccessCapability, e.networkQualityCapability, e.nodePin, e.nodesCapability, e.normalizeAddonInitResult, e.normalizeUnit, e.notificationOutputCapability, e.notificationRulesCapability, e.notifierCapability, e.numericSensorCapability, e.oauthIntegrationCapability, e.objectInputDeclaresAddonId, e.osdCapability, e.osdManagerCapability, e.parseCameraStreamConfig, e.parseExpression, e.parseJsonArray, e.parseJsonObject, e.parseJsonUnknown, e.parseProfileBrokerId, e.parseStreamParamsFormPatch, e.petFeederCapability, e.pickAccessoryControl, e.pickDetailCropConvention, e.pickNativeLeaseOverride, e.pickPreferredRtspEntry, e.pickVideoEncoder, e.pickerForCondition, e.pipelineAnalyticsCapability, e.pipelineExecutorCapability, e.pipelineOrchestratorCapability, e.pipelineRunnerCapability, e.plateGalleryCapability, e.platformProbeCapability, e.powerMeterCapability, e.prepareNotification, e.presenceCapability, e.pressureSensorCapability, e.principalMayReachAddon, e.privacyMaskCapability, e.procedureAuthKey, e.ptzAutotrackCapability, e.ptzCapability, e.pythonScriptForBackend, e.readDetailCropConvention, e.readDeviceStateFrom, e.readNativeLeaseOverride, e.readNodePin, e.readTimelapseGeneratedAt, e.readinessKey, e.rebootCapability, e.recordingCapability, e.recordingExportCapability, e.rectsToCells, e.requiresPython, e.resolveAddonExecution, e.resolveAddonGroup, e.resolveAddonPlacement, e.resolveAddonRuntime, e.resolveCapMount, e.resolveDetectionRuntime, e.resolveDeviceControlKind, e.resolveDeviceProfile, e.resolveEgressDecodeHwAccel, e.resolveFormat, e.resolveHydratedFieldValue, e.resolveModelFormat, e.resolveMutate, e.resolveRunnerId, e.resolveScrubThumbnailGeometry, e.resolveVariantModelId, e.runInferenceStep, e.runtimeDevices, e.sceneMonitorCapability, e.scopeKey, e.scopesAllowAddon, e.scopesAllowDeviceCap, e.scoreRuntimes, e.scriptRunnerCapability, e.selectAssignedProfileSlots, e.serverManagementCapability, e.setByPath, e.settingsStoreCapability, e.sleep, e.sleepCancellable, e.smokeCapability, e.smtpProviderCapability, e.snapshotCapability, e.ssoBridgeCapability, e.startReachabilityPoll, e.stateVocabularyFor, e.storageCapability, e.storageEvictableCapability, e.storageMigrationCapability, e.storageProviderCapability, e.streamBrokerCapability, e.streamCatalogCapability, e.streamParamsCapability, e.streamPixels, e.streamQualityLabel, e.subKindsOf, e.summarisePrivacyAudio, e.supportedRuntimes, e.switchCapability, e.switchedOffIds, e.synthesizeSourceInfo, e.systemCapability, e.tamperCapability, e.taskLogEntrySchema, e.taskPhaseSchema, e.taskTargetSchema, e.temperatureSensorCapability, e.terminalSessionCapability, e.textToHtml, e.toDeviceSummary, e.toExpressionValue, e.toNodeId, e.toStreamSourceEntry, e.toastCapability, e.tokenize, e.transcodeBody, e.tryConvertUnit, e.turnProviderCapability, e.unitDimension, e.unitsForDimension, e.updateCapability, e.userManagementCapability, e.userPasskeysCapability, e.vacuumControlCapability, e.validateExpressionSource, e.validateRecipeBounds, e.valveCapability, e.vectorDimFromBase64, e.vectorStoreCapability, e.vibrationCapability, e.videoclipsCapability, e.viewerUiCapability, e.waterHeaterCapability, e.weatherCapability, e.webrtcClientHintsSchema, e.webrtcSessionCapability, e.wiringAddonHealthSchema, e.wiringHealthSnapshotSchema, e.wiringNodeHealthSchema, e.wiringProbeKindSchema, e.wiringProbeResultSchema, e.zodEntriesToConfigUI, e.zoneAnalyticsCapability, e.zoneRulesCapability, e.zonesCapability, e.default;
|
|
20
|
+
}, s = i.share["default:@camstack/types"];
|
|
21
|
+
s === void 0 ? n.then(() => {
|
|
22
|
+
if (s = i.share["default:@camstack/types"], s === void 0) throw Error("[Module Federation] Shared module @camstack/types was imported before federation bootstrap finished.");
|
|
23
|
+
o(s);
|
|
24
|
+
}) : o(s);
|
|
25
|
+
//#endregion
|
|
26
|
+
export { a as t };
|