@camstack/addon-pipeline 1.2.87 → 1.2.89
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/{addon-utils-D4cfzq_G.js → addon-utils-yc-chXuC.js} +1 -1
- package/dist/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +1 -1
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +2 -2
- package/dist/{dist-DHQjHc58.mjs → dist-BJYwWEZ9.mjs} +62 -12
- package/dist/{dist-Jyy7mZzp.js → dist-n4Nbnxx5.js} +62 -12
- package/dist/{event-loop-stall-monitor-Dh7uvmRd.mjs → event-loop-stall-monitor-BiPffk0D.mjs} +1 -1
- package/dist/{event-loop-stall-monitor-DwOjLeEM.js → event-loop-stall-monitor-DG7QY00k.js} +1 -1
- package/dist/{lazy-sharp-C8FjN01L.js → lazy-sharp-EoSOHgoj.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/pipeline-runner/index.js +4 -4
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/recorder/index.js +189 -51
- package/dist/recorder/index.mjs +188 -50
- package/dist/session-decode/decode-worker-child.js +2 -2
- package/dist/session-decode/decode-worker-child.mjs +1 -1
- package/dist/stream-broker/_stub.js +1 -1
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-D-4L5i5Y.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CsrMZYLB.mjs} +3 -3
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B2scqOH7.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DNSELPGi.mjs} +1 -1
- package/dist/stream-broker/{hostInit-Dsc30ipV.mjs → hostInit-DoFovQmc.mjs} +3 -3
- package/dist/stream-broker/index.js +3 -2
- package/dist/stream-broker/index.mjs +3 -2
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-DgKV4U9F.js → worker-protocol-DjuxhGo3.js} +1 -1
- package/dist/{worker-protocol-bhtyPfnr.mjs → worker-protocol-XZ1e36rM.mjs} +1 -1
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-n4Nbnxx5.js");
|
|
6
6
|
const require_node_topology_platform = require("../node-topology-platform-CFZ7F4xW.js");
|
|
7
|
-
const require_addon_utils = require("../addon-utils-
|
|
7
|
+
const require_addon_utils = require("../addon-utils-yc-chXuC.js");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
node_path = require_dist.__toESM(node_path);
|
|
10
10
|
let node_fs = require("node:fs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { D as audioAnalyzerCapability, E as audioAnalysisCapability, U as mapAudioLabelToMacro, h as HF_BASE_URL, ht as hydrateSchema, it as errMsg, n as AUDIO_BACKEND_CHOICES, s as DEFAULT_AUDIO_ANALYZER_CONFIG, ut as BaseAddon } from "../dist-
|
|
2
|
+
import { D as audioAnalyzerCapability, E as audioAnalysisCapability, U as mapAudioLabelToMacro, h as HF_BASE_URL, ht as hydrateSchema, it as errMsg, n as AUDIO_BACKEND_CHOICES, s as DEFAULT_AUDIO_ANALYZER_CONFIG, ut as BaseAddon } from "../dist-BJYwWEZ9.mjs";
|
|
3
3
|
import { t as pickNodePlatformArch } from "../node-topology-platform-BkR_k6WT.mjs";
|
|
4
4
|
import { i as downloadFile } from "../addon-utils-A2S9D7pu.mjs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
@@ -2,11 +2,11 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-
|
|
7
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-n4Nbnxx5.js");
|
|
6
|
+
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-DG7QY00k.js");
|
|
7
|
+
const require_lazy_sharp = require("../lazy-sharp-EoSOHgoj.js");
|
|
8
8
|
const require_node_topology_platform = require("../node-topology-platform-CFZ7F4xW.js");
|
|
9
|
-
const require_addon_utils = require("../addon-utils-
|
|
9
|
+
const require_addon_utils = require("../addon-utils-yc-chXuC.js");
|
|
10
10
|
let sharp = require("sharp");
|
|
11
11
|
sharp = require_dist.__toESM(sharp);
|
|
12
12
|
let node_child_process = require("node:child_process");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { $ as runtimeDevices$1, B as enumerateInferenceDevices, Ct as sleep, Ft as EventCategory, J as pipelineExecutorCapability, L as detectionPipelineCapability, M as defaultDeviceFor$1, Nt as string, Pt as union, Tt as array, V as evaluateZoneRules, bt as parseJsonUnknown, d as DEVICE_BACKEND_TO_FORMAT, ht as hydrateSchema, it as errMsg, jt as object, mt as createEvent, nt as supportedRuntimes$1, t as APPLE_SA_TO_MACRO, ut as BaseAddon, w as YAMNET_TO_MACRO, yt as nodePin } from "../dist-
|
|
3
|
-
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, n as startEventLoopStallMonitor, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep } from "../event-loop-stall-monitor-
|
|
2
|
+
import { $ as runtimeDevices$1, B as enumerateInferenceDevices, Ct as sleep, Ft as EventCategory, J as pipelineExecutorCapability, L as detectionPipelineCapability, M as defaultDeviceFor$1, Nt as string, Pt as union, Tt as array, V as evaluateZoneRules, bt as parseJsonUnknown, d as DEVICE_BACKEND_TO_FORMAT, ht as hydrateSchema, it as errMsg, jt as object, mt as createEvent, nt as supportedRuntimes$1, t as APPLE_SA_TO_MACRO, ut as BaseAddon, w as YAMNET_TO_MACRO, yt as nodePin } from "../dist-BJYwWEZ9.mjs";
|
|
3
|
+
import { a as getDefaultModelForFormat, c as getStepDefinition, i as ALL_STEPS, l as resolveModelForFormat, n as startEventLoopStallMonitor, o as getDefaultModelForFormatFromDef, r as ALL_PIPELINE_STEPS, s as getStep } from "../event-loop-stall-monitor-BiPffk0D.mjs";
|
|
4
4
|
import { t as getSharp } from "../lazy-sharp-6oymT_yf.mjs";
|
|
5
5
|
import { t as pickNodePlatformArch } from "../node-topology-platform-BkR_k6WT.mjs";
|
|
6
6
|
import { a as ensureModel, o as isModelDownloaded, r as deleteModelFromDisk } from "../addon-utils-A2S9D7pu.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-C0lyLd5U.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -16,9 +16,10 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
16
16
|
EventCategory["SystemRestartCompleted"] = "system.restart-completed";
|
|
17
17
|
/**
|
|
18
18
|
* A newer addon or server-root package version was found by the
|
|
19
|
-
* authoritative registry check. Emitted once
|
|
20
|
-
* `(
|
|
21
|
-
*
|
|
19
|
+
* authoritative registry check. Emitted once when any observed
|
|
20
|
+
* `latestVersion` changes (or a package/node first appears behind);
|
|
21
|
+
* the payload carries the full currently-available list. Repeated
|
|
22
|
+
* polling of the same latests is silent.
|
|
22
23
|
*/
|
|
23
24
|
EventCategory["UpdateAvailable"] = "update.available";
|
|
24
25
|
/**
|
|
@@ -8536,6 +8537,7 @@ var DEFAULT_EVENTS_BAND_BUFFER_SEC = {
|
|
|
8536
8537
|
preBufferSec: 10,
|
|
8537
8538
|
postBufferSec: 30
|
|
8538
8539
|
};
|
|
8540
|
+
DEFAULT_EVENTS_BAND_BUFFER_SEC.postBufferSec * 1e3;
|
|
8539
8541
|
/**
|
|
8540
8542
|
* Per-device retention overrides. Every field is optional; an unset or `0`
|
|
8541
8543
|
* value inherits the node-wide recorder default. Only footage-lifetime limits
|
|
@@ -16042,6 +16044,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
16042
16044
|
"alarm-disarmed",
|
|
16043
16045
|
"alarm-arming",
|
|
16044
16046
|
"alarm-arm-refused",
|
|
16047
|
+
"addon-updated",
|
|
16048
|
+
"server-updated",
|
|
16049
|
+
"export-completed",
|
|
16045
16050
|
"camera-online",
|
|
16046
16051
|
"camera-offline",
|
|
16047
16052
|
"camera-disabled",
|
|
@@ -17935,13 +17940,19 @@ var RetrainStatusSchema = _enum([
|
|
|
17935
17940
|
* "never marked" from "already trained" must read `retrainStatus`.
|
|
17936
17941
|
*
|
|
17937
17942
|
* `debug` does NOT pin; it is attention, not durability.
|
|
17943
|
+
*
|
|
17944
|
+
* `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
|
|
17945
|
+
* A favourited track is skipped by retention the same way `staging` is, but
|
|
17946
|
+
* it does not enter `none|staging|trained` and has no staging budget.
|
|
17938
17947
|
*/
|
|
17939
17948
|
var TrackFlagFields = {
|
|
17940
17949
|
/** Operator marked this track as training material — i.e. `retrainStatus` is
|
|
17941
17950
|
* `'staging'`. */
|
|
17942
17951
|
markForTrain: boolean().optional(),
|
|
17943
17952
|
/** Operator marked this track for diagnostic attention. */
|
|
17944
|
-
debug: boolean().optional()
|
|
17953
|
+
debug: boolean().optional(),
|
|
17954
|
+
/** Operator favourited this track. Pins it against pruning. */
|
|
17955
|
+
favourited: boolean().optional()
|
|
17945
17956
|
};
|
|
17946
17957
|
/**
|
|
17947
17958
|
* The lifecycle field itself, on the READ surfaces only (`Track`, `KeyEvent`).
|
|
@@ -17966,6 +17977,7 @@ var TrackFlagsSchema = object({
|
|
|
17966
17977
|
trackId: string(),
|
|
17967
17978
|
markForTrain: boolean(),
|
|
17968
17979
|
debug: boolean(),
|
|
17980
|
+
favourited: boolean(),
|
|
17969
17981
|
/** The lifecycle state the boolean was derived from. Required here (unlike on
|
|
17970
17982
|
* a track row) because this shape is only ever produced by the write body,
|
|
17971
17983
|
* which always knows it — and a surface that has just written needs to render
|
|
@@ -21214,7 +21226,14 @@ targets: array(object({
|
|
|
21214
21226
|
"sleeping",
|
|
21215
21227
|
"unreachable",
|
|
21216
21228
|
"waking"
|
|
21217
|
-
]).nullable()
|
|
21229
|
+
]).nullable(),
|
|
21230
|
+
/** A battery camera (whatever its current state). An AWAKE battery
|
|
21231
|
+
* camera is deliberately NOT recaptured on the poll cadence — every
|
|
21232
|
+
* capture is a camera hit that would keep it out of sleep — so its
|
|
21233
|
+
* cached frame legitimately ages past the currency ceiling while
|
|
21234
|
+
* nothing is streaming. A surface must keep painting it (a fresh
|
|
21235
|
+
* frame is captured at each wake), not blank to "unavailable". */
|
|
21236
|
+
battery: boolean()
|
|
21218
21237
|
})));
|
|
21219
21238
|
/**
|
|
21220
21239
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -21920,8 +21939,28 @@ var ClipSchema = object({
|
|
|
21920
21939
|
startMs: number(),
|
|
21921
21940
|
endMs: number()
|
|
21922
21941
|
}),
|
|
21923
|
-
/**
|
|
21924
|
-
thumbnail
|
|
21942
|
+
/**
|
|
21943
|
+
* Lazy thumbnail URL, never inlined.
|
|
21944
|
+
*
|
|
21945
|
+
* Recording-derived clips (events-mode keep-window, and the prepared
|
|
21946
|
+
* continuous event+fragment visit) MUST use the snapshot of the **main
|
|
21947
|
+
* event of the interval** — `getEventMedia({ eventId, kind: 'snapshot' })`
|
|
21948
|
+
* of the event that owns `kind` (object > motion > audio). Do not extract
|
|
21949
|
+
* a keyframe from the recorded segments. Other providers (onboard, HKSV)
|
|
21950
|
+
* mint their own stills.
|
|
21951
|
+
*/
|
|
21952
|
+
thumbnail: string().optional(),
|
|
21953
|
+
/** Analytics event ids that overlap this visit. Empty on footage-only clips.
|
|
21954
|
+
* The default provider's visit grain puts many motion heartbeats on one clip
|
|
21955
|
+
* instead of minting one clip per marker. */
|
|
21956
|
+
eventIds: array(string()).optional(),
|
|
21957
|
+
/** Intra-visit footage holes (GOP rolls, discarded segments) still shorter
|
|
21958
|
+
* than `VISIT_MERGE_GAP_MS`. Playback concatenates around them; the timeline
|
|
21959
|
+
* bar keeps showing them via `recording.getAvailability`. */
|
|
21960
|
+
holes: array(object({
|
|
21961
|
+
startMs: number(),
|
|
21962
|
+
endMs: number()
|
|
21963
|
+
})).optional()
|
|
21925
21964
|
});
|
|
21926
21965
|
var ClipPlaybackSchema = object({
|
|
21927
21966
|
/** HLS master URL through the hub data-plane (Range + token in path). */
|
|
@@ -26764,7 +26803,9 @@ var ExportOptionsSchema = object({
|
|
|
26764
26803
|
includeAudio: boolean(),
|
|
26765
26804
|
maxLifeMs: number().int().positive(),
|
|
26766
26805
|
deleteAfterDownload: boolean(),
|
|
26767
|
-
title: string().max(200).optional()
|
|
26806
|
+
title: string().max(200).optional(),
|
|
26807
|
+
/** Notification-output target ids to ping when this export becomes ready. */
|
|
26808
|
+
notifyTargetIds: array(string().min(1)).max(20).optional()
|
|
26768
26809
|
}).superRefine((v, ctx) => {
|
|
26769
26810
|
if (v.speed !== void 0 && v.timelapse !== void 0) ctx.addIssue({
|
|
26770
26811
|
code: ZodIssueCode.custom,
|
|
@@ -26845,14 +26886,23 @@ var recordingExportCapability = {
|
|
|
26845
26886
|
scope: "system",
|
|
26846
26887
|
mode: "singleton",
|
|
26847
26888
|
methods: {
|
|
26848
|
-
/** Queue a render of `[fromMs,toMs)` for `deviceId`/`
|
|
26849
|
-
*
|
|
26889
|
+
/** Queue a render of `[fromMs,toMs)` for `deviceId`/`profiles` (legacy
|
|
26890
|
+
* singular `profile` still accepted). Fails fast when no footage covers
|
|
26891
|
+
* the range. One job per profile; returns the first queued record. */
|
|
26850
26892
|
createExport: method(object({
|
|
26851
26893
|
deviceId: number(),
|
|
26852
|
-
|
|
26894
|
+
/** @deprecated Prefer `profiles`. Kept so timelapse/notifiers keep working. */
|
|
26895
|
+
profile: string().optional(),
|
|
26896
|
+
profiles: array(string()).min(1).optional(),
|
|
26853
26897
|
fromMs: number(),
|
|
26854
26898
|
toMs: number(),
|
|
26855
26899
|
options: ExportOptionsSchema
|
|
26900
|
+
}).superRefine((v, ctx) => {
|
|
26901
|
+
if ((v.profiles !== void 0 && v.profiles.length > 0 ? v.profiles : v.profile !== void 0 ? [v.profile] : []).length < 1) ctx.addIssue({
|
|
26902
|
+
code: ZodIssueCode.custom,
|
|
26903
|
+
message: "pass profiles[] (min 1) or legacy profile",
|
|
26904
|
+
path: ["profiles"]
|
|
26905
|
+
});
|
|
26856
26906
|
}), ExportRecordSchema, {
|
|
26857
26907
|
kind: "mutation",
|
|
26858
26908
|
auth: "protected"
|
|
@@ -22,7 +22,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
22
|
}) : target, mod));
|
|
23
23
|
//#endregion
|
|
24
24
|
let node_crypto = require("node:crypto");
|
|
25
|
-
//#region ../types/dist/event-category-
|
|
25
|
+
//#region ../types/dist/event-category-C0lyLd5U.mjs
|
|
26
26
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
27
27
|
EventCategory["SystemBoot"] = "system.boot";
|
|
28
28
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -39,9 +39,10 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
39
39
|
EventCategory["SystemRestartCompleted"] = "system.restart-completed";
|
|
40
40
|
/**
|
|
41
41
|
* A newer addon or server-root package version was found by the
|
|
42
|
-
* authoritative registry check. Emitted once
|
|
43
|
-
* `(
|
|
44
|
-
*
|
|
42
|
+
* authoritative registry check. Emitted once when any observed
|
|
43
|
+
* `latestVersion` changes (or a package/node first appears behind);
|
|
44
|
+
* the payload carries the full currently-available list. Repeated
|
|
45
|
+
* polling of the same latests is silent.
|
|
45
46
|
*/
|
|
46
47
|
EventCategory["UpdateAvailable"] = "update.available";
|
|
47
48
|
/**
|
|
@@ -8559,6 +8560,7 @@ var DEFAULT_EVENTS_BAND_BUFFER_SEC = {
|
|
|
8559
8560
|
preBufferSec: 10,
|
|
8560
8561
|
postBufferSec: 30
|
|
8561
8562
|
};
|
|
8563
|
+
DEFAULT_EVENTS_BAND_BUFFER_SEC.postBufferSec * 1e3;
|
|
8562
8564
|
/**
|
|
8563
8565
|
* Per-device retention overrides. Every field is optional; an unset or `0`
|
|
8564
8566
|
* value inherits the node-wide recorder default. Only footage-lifetime limits
|
|
@@ -16065,6 +16067,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
16065
16067
|
"alarm-disarmed",
|
|
16066
16068
|
"alarm-arming",
|
|
16067
16069
|
"alarm-arm-refused",
|
|
16070
|
+
"addon-updated",
|
|
16071
|
+
"server-updated",
|
|
16072
|
+
"export-completed",
|
|
16068
16073
|
"camera-online",
|
|
16069
16074
|
"camera-offline",
|
|
16070
16075
|
"camera-disabled",
|
|
@@ -17958,13 +17963,19 @@ var RetrainStatusSchema = _enum([
|
|
|
17958
17963
|
* "never marked" from "already trained" must read `retrainStatus`.
|
|
17959
17964
|
*
|
|
17960
17965
|
* `debug` does NOT pin; it is attention, not durability.
|
|
17966
|
+
*
|
|
17967
|
+
* `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
|
|
17968
|
+
* A favourited track is skipped by retention the same way `staging` is, but
|
|
17969
|
+
* it does not enter `none|staging|trained` and has no staging budget.
|
|
17961
17970
|
*/
|
|
17962
17971
|
var TrackFlagFields = {
|
|
17963
17972
|
/** Operator marked this track as training material — i.e. `retrainStatus` is
|
|
17964
17973
|
* `'staging'`. */
|
|
17965
17974
|
markForTrain: boolean().optional(),
|
|
17966
17975
|
/** Operator marked this track for diagnostic attention. */
|
|
17967
|
-
debug: boolean().optional()
|
|
17976
|
+
debug: boolean().optional(),
|
|
17977
|
+
/** Operator favourited this track. Pins it against pruning. */
|
|
17978
|
+
favourited: boolean().optional()
|
|
17968
17979
|
};
|
|
17969
17980
|
/**
|
|
17970
17981
|
* The lifecycle field itself, on the READ surfaces only (`Track`, `KeyEvent`).
|
|
@@ -17989,6 +18000,7 @@ var TrackFlagsSchema = object({
|
|
|
17989
18000
|
trackId: string(),
|
|
17990
18001
|
markForTrain: boolean(),
|
|
17991
18002
|
debug: boolean(),
|
|
18003
|
+
favourited: boolean(),
|
|
17992
18004
|
/** The lifecycle state the boolean was derived from. Required here (unlike on
|
|
17993
18005
|
* a track row) because this shape is only ever produced by the write body,
|
|
17994
18006
|
* which always knows it — and a surface that has just written needs to render
|
|
@@ -21237,7 +21249,14 @@ targets: array(object({
|
|
|
21237
21249
|
"sleeping",
|
|
21238
21250
|
"unreachable",
|
|
21239
21251
|
"waking"
|
|
21240
|
-
]).nullable()
|
|
21252
|
+
]).nullable(),
|
|
21253
|
+
/** A battery camera (whatever its current state). An AWAKE battery
|
|
21254
|
+
* camera is deliberately NOT recaptured on the poll cadence — every
|
|
21255
|
+
* capture is a camera hit that would keep it out of sleep — so its
|
|
21256
|
+
* cached frame legitimately ages past the currency ceiling while
|
|
21257
|
+
* nothing is streaming. A surface must keep painting it (a fresh
|
|
21258
|
+
* frame is captured at each wake), not blank to "unavailable". */
|
|
21259
|
+
battery: boolean()
|
|
21241
21260
|
})));
|
|
21242
21261
|
/**
|
|
21243
21262
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -21943,8 +21962,28 @@ var ClipSchema = object({
|
|
|
21943
21962
|
startMs: number(),
|
|
21944
21963
|
endMs: number()
|
|
21945
21964
|
}),
|
|
21946
|
-
/**
|
|
21947
|
-
thumbnail
|
|
21965
|
+
/**
|
|
21966
|
+
* Lazy thumbnail URL, never inlined.
|
|
21967
|
+
*
|
|
21968
|
+
* Recording-derived clips (events-mode keep-window, and the prepared
|
|
21969
|
+
* continuous event+fragment visit) MUST use the snapshot of the **main
|
|
21970
|
+
* event of the interval** — `getEventMedia({ eventId, kind: 'snapshot' })`
|
|
21971
|
+
* of the event that owns `kind` (object > motion > audio). Do not extract
|
|
21972
|
+
* a keyframe from the recorded segments. Other providers (onboard, HKSV)
|
|
21973
|
+
* mint their own stills.
|
|
21974
|
+
*/
|
|
21975
|
+
thumbnail: string().optional(),
|
|
21976
|
+
/** Analytics event ids that overlap this visit. Empty on footage-only clips.
|
|
21977
|
+
* The default provider's visit grain puts many motion heartbeats on one clip
|
|
21978
|
+
* instead of minting one clip per marker. */
|
|
21979
|
+
eventIds: array(string()).optional(),
|
|
21980
|
+
/** Intra-visit footage holes (GOP rolls, discarded segments) still shorter
|
|
21981
|
+
* than `VISIT_MERGE_GAP_MS`. Playback concatenates around them; the timeline
|
|
21982
|
+
* bar keeps showing them via `recording.getAvailability`. */
|
|
21983
|
+
holes: array(object({
|
|
21984
|
+
startMs: number(),
|
|
21985
|
+
endMs: number()
|
|
21986
|
+
})).optional()
|
|
21948
21987
|
});
|
|
21949
21988
|
var ClipPlaybackSchema = object({
|
|
21950
21989
|
/** HLS master URL through the hub data-plane (Range + token in path). */
|
|
@@ -26787,7 +26826,9 @@ var ExportOptionsSchema = object({
|
|
|
26787
26826
|
includeAudio: boolean(),
|
|
26788
26827
|
maxLifeMs: number().int().positive(),
|
|
26789
26828
|
deleteAfterDownload: boolean(),
|
|
26790
|
-
title: string().max(200).optional()
|
|
26829
|
+
title: string().max(200).optional(),
|
|
26830
|
+
/** Notification-output target ids to ping when this export becomes ready. */
|
|
26831
|
+
notifyTargetIds: array(string().min(1)).max(20).optional()
|
|
26791
26832
|
}).superRefine((v, ctx) => {
|
|
26792
26833
|
if (v.speed !== void 0 && v.timelapse !== void 0) ctx.addIssue({
|
|
26793
26834
|
code: ZodIssueCode.custom,
|
|
@@ -26868,14 +26909,23 @@ var recordingExportCapability = {
|
|
|
26868
26909
|
scope: "system",
|
|
26869
26910
|
mode: "singleton",
|
|
26870
26911
|
methods: {
|
|
26871
|
-
/** Queue a render of `[fromMs,toMs)` for `deviceId`/`
|
|
26872
|
-
*
|
|
26912
|
+
/** Queue a render of `[fromMs,toMs)` for `deviceId`/`profiles` (legacy
|
|
26913
|
+
* singular `profile` still accepted). Fails fast when no footage covers
|
|
26914
|
+
* the range. One job per profile; returns the first queued record. */
|
|
26873
26915
|
createExport: method(object({
|
|
26874
26916
|
deviceId: number(),
|
|
26875
|
-
|
|
26917
|
+
/** @deprecated Prefer `profiles`. Kept so timelapse/notifiers keep working. */
|
|
26918
|
+
profile: string().optional(),
|
|
26919
|
+
profiles: array(string()).min(1).optional(),
|
|
26876
26920
|
fromMs: number(),
|
|
26877
26921
|
toMs: number(),
|
|
26878
26922
|
options: ExportOptionsSchema
|
|
26923
|
+
}).superRefine((v, ctx) => {
|
|
26924
|
+
if ((v.profiles !== void 0 && v.profiles.length > 0 ? v.profiles : v.profile !== void 0 ? [v.profile] : []).length < 1) ctx.addIssue({
|
|
26925
|
+
code: ZodIssueCode.custom,
|
|
26926
|
+
message: "pass profiles[] (min 1) or legacy profile",
|
|
26927
|
+
path: ["profiles"]
|
|
26928
|
+
});
|
|
26879
26929
|
}), ExportRecordSchema, {
|
|
26880
26930
|
kind: "mutation",
|
|
26881
26931
|
auth: "protected"
|
package/dist/{event-loop-stall-monitor-Dh7uvmRd.mjs → event-loop-stall-monitor-BiPffk0D.mjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { H as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-
|
|
1
|
+
import { H as hfModelUrl, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS } from "./dist-BJYwWEZ9.mjs";
|
|
2
2
|
import { PerformanceObserver } from "node:perf_hooks";
|
|
3
3
|
//#region src/detection-pipeline/registry/model-catalogs.ts
|
|
4
4
|
var HF_REPO = "camstack/camstack-models";
|
|
@@ -2,8 +2,8 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
5
|
+
const require_dist = require("../dist-n4Nbnxx5.js");
|
|
6
|
+
const require_lazy_sharp = require("../lazy-sharp-EoSOHgoj.js");
|
|
7
7
|
let node_path = require("node:path");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
//#region src/motion-wasm/wasm-motion-detector.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { G as motionDetectionCapability, V as evaluateZoneRules, ht as hydrateSchema, pt as DeviceType, ut as BaseAddon } from "../dist-
|
|
1
|
+
import { G as motionDetectionCapability, V as evaluateZoneRules, ht as hydrateSchema, pt as DeviceType, ut as BaseAddon } from "../dist-BJYwWEZ9.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-6oymT_yf.mjs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { readFileSync } from "node:fs";
|
|
@@ -2,11 +2,11 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
6
|
-
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-
|
|
7
|
-
const require_worker_protocol = require("../worker-protocol-
|
|
5
|
+
const require_dist = require("../dist-n4Nbnxx5.js");
|
|
6
|
+
const require_event_loop_stall_monitor = require("../event-loop-stall-monitor-DG7QY00k.js");
|
|
7
|
+
const require_worker_protocol = require("../worker-protocol-DjuxhGo3.js");
|
|
8
8
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
9
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
9
|
+
const require_lazy_sharp = require("../lazy-sharp-EoSOHgoj.js");
|
|
10
10
|
const require_remote_restream = require("../remote-restream-BYbAsgUf.js");
|
|
11
11
|
let sharp = require("sharp");
|
|
12
12
|
sharp = require_dist.__toESM(sharp);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { At as number, Et as boolean, F as deriveDetailCropRect, Ft as EventCategory, K as pickDetailCropConvention, N as defineCustomActions, Nt as string, Ot as lazy, Tt as array, Y as pipelineRunnerCapability, c as DEFAULT_DETAIL_CROP_CONVENTION, d as DEVICE_BACKEND_TO_FORMAT, it as errMsg, j as customAction, jt as object, kt as literal, mt as createEvent, q as pickNativeLeaseOverride, ut as BaseAddon, wt as _enum, yt as nodePin } from "../dist-
|
|
2
|
-
import { c as getStepDefinition, t as attributeStall } from "../event-loop-stall-monitor-
|
|
3
|
-
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-
|
|
1
|
+
import { At as number, Et as boolean, F as deriveDetailCropRect, Ft as EventCategory, K as pickDetailCropConvention, N as defineCustomActions, Nt as string, Ot as lazy, Tt as array, Y as pipelineRunnerCapability, c as DEFAULT_DETAIL_CROP_CONVENTION, d as DEVICE_BACKEND_TO_FORMAT, it as errMsg, j as customAction, jt as object, kt as literal, mt as createEvent, q as pickNativeLeaseOverride, ut as BaseAddon, wt as _enum, yt as nodePin } from "../dist-BJYwWEZ9.mjs";
|
|
2
|
+
import { c as getStepDefinition, t as attributeStall } from "../event-loop-stall-monitor-BiPffk0D.mjs";
|
|
3
|
+
import { a as nativeLeaseSettingEnv, t as isWorkerReply } from "../worker-protocol-XZ1e36rM.mjs";
|
|
4
4
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-6oymT_yf.mjs";
|
|
6
6
|
import { i as withDetectionIntent, n as profileForStreamId, t as isRemoteRestream } from "../remote-restream-Ci7RXNGb.mjs";
|