@camstack/addon-pipeline 1.2.326 → 1.2.327
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/THIRD_PARTY_MODELS.md +25 -27
- package/dist/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/{default-detection-model-WnGDQAQh.js → default-detection-model-CBIYdAJ5.js} +3 -3
- package/dist/{default-detection-model-Bu4So71h.mjs → default-detection-model-hql6BX9-.mjs} +3 -3
- package/dist/detection-pipeline/index.js +5 -5
- package/dist/detection-pipeline/index.mjs +5 -5
- package/dist/{dist-BuU8Y4o1.mjs → dist-B9LnBPz9.mjs} +91 -27
- package/dist/{dist-BTBbIGSC.js → dist-BBZwYfSN.js} +91 -27
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-inZFYgkm.mjs → node-Ci0E-0VP.mjs} +1 -1
- package/dist/{node-UK2v2ZSw.js → node-mJQBUiEc.js} +1 -1
- package/dist/pipeline-runner/index.js +41 -12
- package/dist/pipeline-runner/index.mjs +41 -13
- package/dist/{process-memory-DbSOL63T.mjs → process-memory-B63Jlpev.mjs} +1 -1
- package/dist/{process-memory-BfDlwJc4.js → process-memory-DgEfKdtC.js} +1 -1
- package/dist/recorder/index.js +9 -8
- package/dist/recorder/index.mjs +9 -8
- package/dist/{segment-demux-js-C1GXgxZ0.js → segment-demux-js-C2ufKMu0.js} +1 -1
- package/dist/{segment-demux-js-CMj020zz.mjs → segment-demux-js-DzwHW4Ey.mjs} +1 -1
- package/dist/stream-broker/_stub.js +1 -1
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-qHD9Dl1z.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-B4fPzS-8.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BDGzcgLP.mjs +26 -0
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-BgWrKrQn.mjs → hostInit-Cg4IdtE5.mjs} +3 -3
- package/dist/stream-broker/index.js +5 -5
- package/dist/stream-broker/index.mjs +5 -5
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/python/postprocessors/scrfd.py +2 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-NkeMtp-v.mjs +0 -26
|
@@ -16744,7 +16744,7 @@ var detectionPipelineCapability = {
|
|
|
16744
16744
|
* This matters here more than anywhere else in the repo, because every provider
|
|
16745
16745
|
* that knows a device's host knows its PASSWORD too: `{ host, port, username,
|
|
16746
16746
|
* password }` sit in one object on Hikvision, Amcrest, Reolink and ONVIF alike,
|
|
16747
|
-
* and `http://admin:hunter2@192.168.
|
|
16747
|
+
* and `http://admin:hunter2@192.168.60.139/` is a URL a browser accepts. The
|
|
16748
16748
|
* camera's own page will ask for its own login. That is correct, and pre-
|
|
16749
16749
|
* filling it is the operator's business, not ours.
|
|
16750
16750
|
*
|
|
@@ -22591,8 +22591,9 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
22591
22591
|
disabledTargetIds: array(string()).default([])
|
|
22592
22592
|
});
|
|
22593
22593
|
/**
|
|
22594
|
-
* The state-summary SECTIONS (D647 / D698): the D637 kind groups that
|
|
22595
|
-
* still-true state. `
|
|
22594
|
+
* The state-summary SECTIONS (D647 / D698 / D708): the D637 kind groups that
|
|
22595
|
+
* report a still-true state. `addons` is the crash-looped addons only and
|
|
22596
|
+
* `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
|
|
22596
22597
|
* job is not an open state, and the alarm stays instant.
|
|
22597
22598
|
*/
|
|
22598
22599
|
var NcStateSummarySectionIdSchema = _enum([
|
|
@@ -22604,6 +22605,7 @@ var NcStateSummarySectionIdSchema = _enum([
|
|
|
22604
22605
|
"detection-blind",
|
|
22605
22606
|
"nodes",
|
|
22606
22607
|
"addons",
|
|
22608
|
+
"addon-updates",
|
|
22607
22609
|
"updates"
|
|
22608
22610
|
]);
|
|
22609
22611
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
@@ -23084,7 +23086,19 @@ var NcAlarmModeDelaysListSchema = array(object({
|
|
|
23084
23086
|
* When this mode may be armed. Absent / null = always allowed (same as a
|
|
23085
23087
|
* rule with no `schedule`). Evaluated with {@link isScheduleActive}.
|
|
23086
23088
|
*/
|
|
23087
|
-
schedule: NcScheduleSchema.optional()
|
|
23089
|
+
schedule: NcScheduleSchema.optional(),
|
|
23090
|
+
/**
|
|
23091
|
+
* D706: while this mode's ENTRY DELAY runs, do the alarm rules' own pushes go out (as an
|
|
23092
|
+
* intrusion naming the locations)? Absent = false — the entry-delay notification is the
|
|
23093
|
+
* only one, and the matches ride the triggered notification's mosaic (D705).
|
|
23094
|
+
*/
|
|
23095
|
+
notifyDuringEntryDelay: boolean().optional(),
|
|
23096
|
+
/**
|
|
23097
|
+
* D706: notify "watched again" when a sensor this arm bypassed closes and opens again.
|
|
23098
|
+
* Absent = false (logged, not sent). Even when true it is not sent when that same sensor
|
|
23099
|
+
* is the one that starts the entry delay — the entry-delay notification already names it.
|
|
23100
|
+
*/
|
|
23101
|
+
notifySensorRewatched: boolean().optional()
|
|
23088
23102
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
|
|
23089
23103
|
var NcAlarmModeDelaysEditListSchema = array(object({
|
|
23090
23104
|
mode: AlarmArmModeSchema,
|
|
@@ -23093,7 +23107,11 @@ var NcAlarmModeDelaysEditListSchema = array(object({
|
|
|
23093
23107
|
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional(),
|
|
23094
23108
|
postTriggeredAction: NcAlarmPostTriggeredActionSchema.nullable().optional(),
|
|
23095
23109
|
/** Set a schedule, or `null` to clear (mode always allowed again). */
|
|
23096
|
-
schedule: NcScheduleSchema.nullable().optional()
|
|
23110
|
+
schedule: NcScheduleSchema.nullable().optional(),
|
|
23111
|
+
/** D706: set the switch, or `null` to clear it (back to the default, false). */
|
|
23112
|
+
notifyDuringEntryDelay: boolean().nullable().optional(),
|
|
23113
|
+
/** D706: set the switch, or `null` to clear it (back to the default, false). */
|
|
23114
|
+
notifySensorRewatched: boolean().nullable().optional()
|
|
23097
23115
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
|
|
23098
23116
|
/** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
|
|
23099
23117
|
var NcAlarmNonBlockingEditSchema = object({
|
|
@@ -27157,6 +27175,22 @@ var MotionSourceEnum = _enum([
|
|
|
27157
27175
|
"device-activity"
|
|
27158
27176
|
]);
|
|
27159
27177
|
/**
|
|
27178
|
+
* What opened an on-motion detection SESSION: the motion source that passed the
|
|
27179
|
+
* camera's `motionSources` gate, and what raised it (the camera itself, or a
|
|
27180
|
+
* sensor the operator attached — D672). `sensorName` is the attached sensor's
|
|
27181
|
+
* device name as the orchestrator's camera-sensors resolution last read it;
|
|
27182
|
+
* absent when unknown or when the camera itself triggered.
|
|
27183
|
+
*
|
|
27184
|
+
* Carried on the session attach ONLY so the runner's `DetectionPhaseTransition`
|
|
27185
|
+
* can say what started the session (D672 rule 11, amended 2026-10-06). The
|
|
27186
|
+
* runner never decides anything on it.
|
|
27187
|
+
*/
|
|
27188
|
+
var SessionTriggerSchema = object({
|
|
27189
|
+
source: MotionSourceEnum,
|
|
27190
|
+
triggeredBy: MotionTriggeredBySchema,
|
|
27191
|
+
sensorName: string().optional()
|
|
27192
|
+
});
|
|
27193
|
+
/**
|
|
27160
27194
|
* List of motion sources active on a camera. Empty array is valid:
|
|
27161
27195
|
* "no source" — happens for battery cams without firmware motion when
|
|
27162
27196
|
* the operator hasn't opted into the SW analyzer (would hold the
|
|
@@ -27408,6 +27442,14 @@ var RunnerCameraConfigSchema = object({
|
|
|
27408
27442
|
*/
|
|
27409
27443
|
motionSources: MotionSourcesSchema.default(["analyzer"]),
|
|
27410
27444
|
/**
|
|
27445
|
+
* What opened this attach, on a SESSION attach only (see
|
|
27446
|
+
* {@link SessionTriggerSchema}). OPTIONAL with no default: absent on a
|
|
27447
|
+
* standing attach, an occupancy burst, a re-dispatch with no motion event
|
|
27448
|
+
* behind it, and every attach from an orchestrator older than the field — the
|
|
27449
|
+
* runner then names no source on the phase event.
|
|
27450
|
+
*/
|
|
27451
|
+
sessionTrigger: SessionTriggerSchema.optional(),
|
|
27452
|
+
/**
|
|
27411
27453
|
* WHICH root detector runs for this camera. The detection counterpart of
|
|
27412
27454
|
* {@link motionSources}, same shape and same discipline: a per-camera list
|
|
27413
27455
|
* of sources the system understands, vendor-agnostic, owned here.
|
|
@@ -34298,7 +34340,7 @@ var LocalInterfaceSchema = object({
|
|
|
34298
34340
|
name: string(),
|
|
34299
34341
|
family: _enum(["IPv4", "IPv6"]),
|
|
34300
34342
|
address: string(),
|
|
34301
|
-
/** CIDR shorthand (e.g. `192.168.
|
|
34343
|
+
/** CIDR shorthand (e.g. `192.168.10.10/24`). Empty when OS doesn't expose. */
|
|
34302
34344
|
cidr: string(),
|
|
34303
34345
|
/** OS netmask. Stable across calls so the SDK can hash on it. */
|
|
34304
34346
|
netmask: string(),
|
|
@@ -34352,7 +34394,8 @@ var ConnectionEndpointSchema = object({
|
|
|
34352
34394
|
"lan-ipv4",
|
|
34353
34395
|
"lan-ipv6",
|
|
34354
34396
|
"public",
|
|
34355
|
-
"loopback"
|
|
34397
|
+
"loopback",
|
|
34398
|
+
"app-link"
|
|
34356
34399
|
]),
|
|
34357
34400
|
/**
|
|
34358
34401
|
* Originating-interface kind — `lan`/`wifi`/`docker`/`vpn`/`other`/
|
|
@@ -34421,15 +34464,27 @@ var GetConnectionEndpointsResultSchema = object({
|
|
|
34421
34464
|
localPort: AdvertisedLocalPortSchema
|
|
34422
34465
|
});
|
|
34423
34466
|
/**
|
|
34424
|
-
* The
|
|
34425
|
-
*
|
|
34426
|
-
*
|
|
34467
|
+
* The address flagged for notification links. `baseUrl: null` = AUTO, which
|
|
34468
|
+
* since D709 is the CamStack app link; `resolved` reports the effective value,
|
|
34469
|
+
* so the UI can show it either way.
|
|
34427
34470
|
*/
|
|
34428
34471
|
var NotificationEndpointSchema = object({
|
|
34429
34472
|
/** The operator's explicit choice, or null for AUTO. */
|
|
34430
34473
|
baseUrl: string().nullable(),
|
|
34431
|
-
/**
|
|
34432
|
-
|
|
34474
|
+
/**
|
|
34475
|
+
* The effective flagged address: the explicit choice, else (AUTO) the
|
|
34476
|
+
* CamStack app link `https://camstack.zentik.app` (D709). A pre-D709 hub
|
|
34477
|
+
* answered the public tunnel / mesh here, or null.
|
|
34478
|
+
*/
|
|
34479
|
+
resolved: string().nullable(),
|
|
34480
|
+
/**
|
|
34481
|
+
* The hub origin an app link carries as `hub=` (D709): the hub's best
|
|
34482
|
+
* public HTTPS address — the tunnel, then the mesh (Tailscale MagicDNS) —
|
|
34483
|
+
* picked from this cap's own palette by `pickAppLinkHub`. `null` when the
|
|
34484
|
+
* hub advertises neither; the app link is then minted without `hub=`.
|
|
34485
|
+
* Absent on a pre-D709 hub.
|
|
34486
|
+
*/
|
|
34487
|
+
appLinkHub: string().nullable()
|
|
34433
34488
|
});
|
|
34434
34489
|
/**
|
|
34435
34490
|
* The URLs the SDK / viewer should race for API access. `baseUrls` empty =
|
|
@@ -34483,7 +34538,11 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
|
|
|
34483
34538
|
* Pass `'https'` when the caller is itself loaded over HTTPS
|
|
34484
34539
|
* to avoid mixed-content blocks in the browser. The public
|
|
34485
34540
|
* tunnel always emits `https://` regardless. */
|
|
34486
|
-
scheme: _enum(["http", "https"]).optional()
|
|
34541
|
+
scheme: _enum(["http", "https"]).optional(),
|
|
34542
|
+
/** Append the CamStack app link entry (`kind: 'app-link'`, D709) —
|
|
34543
|
+
* an address notification links can be flagged with, not a hub
|
|
34544
|
+
* route. Default `false`: racers and rankers never see it. */
|
|
34545
|
+
includeAppLink: boolean().optional()
|
|
34487
34546
|
}), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), ViewerEndpointsSchema), method(object({ baseUrls: array(string()).readonly() }), ViewerEndpointsSchema, { kind: "mutation" }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" }), method(_void(), TlsStatusSchema), method(object({ reason: string().optional() }), TlsStatusSchema, {
|
|
34488
34547
|
kind: "mutation",
|
|
34489
34548
|
auth: "admin"
|
|
@@ -34744,7 +34803,7 @@ var MeshPeerSchema = object({
|
|
|
34744
34803
|
tags: array(string()).readonly(),
|
|
34745
34804
|
/** True when the peer advertises itself as an exit-node candidate. */
|
|
34746
34805
|
exitNodeOption: boolean(),
|
|
34747
|
-
/** Subnet routes the peer advertises (e.g. `["192.168.
|
|
34806
|
+
/** Subnet routes the peer advertises (e.g. `["192.168.10.0/24"]`). */
|
|
34748
34807
|
advertisedRoutes: array(string()).readonly(),
|
|
34749
34808
|
/** Owner account login (e.g. `foo@example.com`). Null for tagged peers. */
|
|
34750
34809
|
userLogin: string().nullable(),
|
|
@@ -52076,12 +52135,14 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
52076
52135
|
{
|
|
52077
52136
|
id: "addons",
|
|
52078
52137
|
family: "system",
|
|
52079
|
-
label: "Addons",
|
|
52080
|
-
kinds: [
|
|
52081
|
-
|
|
52082
|
-
|
|
52083
|
-
|
|
52084
|
-
|
|
52138
|
+
label: "Addons stopped",
|
|
52139
|
+
kinds: ["addon-crash-loop"]
|
|
52140
|
+
},
|
|
52141
|
+
{
|
|
52142
|
+
id: "addon-updates",
|
|
52143
|
+
family: "system",
|
|
52144
|
+
label: "Addon updates",
|
|
52145
|
+
kinds: ["addon-update-available", "addon-updated"]
|
|
52085
52146
|
},
|
|
52086
52147
|
{
|
|
52087
52148
|
id: "updates",
|
|
@@ -52241,13 +52302,15 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
52241
52302
|
},
|
|
52242
52303
|
{
|
|
52243
52304
|
name: "summaryAddons",
|
|
52244
|
-
label: "Summary: addons",
|
|
52245
|
-
example: "
|
|
52246
|
-
kinds: [
|
|
52247
|
-
|
|
52248
|
-
|
|
52249
|
-
|
|
52250
|
-
|
|
52305
|
+
label: "Summary: addons stopped",
|
|
52306
|
+
example: "hub — recorder stopped after repeated crashes",
|
|
52307
|
+
kinds: ["addon-crash-loop"]
|
|
52308
|
+
},
|
|
52309
|
+
{
|
|
52310
|
+
name: "summaryAddonUpdates",
|
|
52311
|
+
label: "Summary: addon updates",
|
|
52312
|
+
example: "hub:\n• @camstack/addon-recorder 1.2.3 → 1.2.4",
|
|
52313
|
+
kinds: ["addon-update-available", "addon-updated"]
|
|
52251
52314
|
},
|
|
52252
52315
|
{
|
|
52253
52316
|
name: "summaryUpdates",
|
|
@@ -52331,6 +52394,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
52331
52394
|
[...RULE_BODY_ONLY],
|
|
52332
52395
|
[...RULE_TEXT],
|
|
52333
52396
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
52397
|
+
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
52334
52398
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
52335
52399
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
52336
52400
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
@@ -2,7 +2,7 @@ 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-BBZwYfSN.js");
|
|
6
6
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Sn as hydrateSchema, ct as evaluateZoneRules, dn as DeviceType, kt as motionDetectionCapability, mn as BaseAddon } from "../dist-
|
|
1
|
+
import { Sn as hydrateSchema, ct as evaluateZoneRules, dn as DeviceType, kt as motionDetectionCapability, mn as BaseAddon } from "../dist-B9LnBPz9.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { an as Fmp4BoxSplitter, fn as errMsg, ln as isSoftwareDecode, on as buildFfmpegArgs } from "./dist-
|
|
1
|
+
import { an as Fmp4BoxSplitter, fn as errMsg, ln as isSoftwareDecode, on as buildFfmpegArgs } from "./dist-B9LnBPz9.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { realpathSync } from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
@@ -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-BBZwYfSN.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
let node_fs = require("node:fs");
|
|
5
5
|
node_fs = require_chunk.__toESM(node_fs, 1);
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_default_detection_model = require("../default-detection-model-
|
|
6
|
+
const require_dist = require("../dist-BBZwYfSN.js");
|
|
7
|
+
const require_node = require("../node-mJQBUiEc.js");
|
|
8
|
+
const require_default_detection_model = require("../default-detection-model-CBIYdAJ5.js");
|
|
9
9
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
10
10
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
11
11
|
const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
|
|
@@ -5933,12 +5933,10 @@ var PipelineRunner = class {
|
|
|
5933
5933
|
}, (registration.occupancyRecheckSec ?? 0) * 1e3);
|
|
5934
5934
|
if (initialPhase === "active") {
|
|
5935
5935
|
this.detectionStreamHandler?.(deviceId, "subscribe");
|
|
5936
|
-
const cooldownMs = registration.motionCooldownMs ?? DEFAULT_MOTION_COOLDOWN_MS;
|
|
5937
5936
|
this.config.onPhaseChanged?.(deviceId, "active", {
|
|
5938
|
-
|
|
5939
|
-
regions: void 0,
|
|
5937
|
+
cause: "attach",
|
|
5940
5938
|
timestamp: Date.now(),
|
|
5941
|
-
|
|
5939
|
+
...registration.sessionTrigger !== void 0 ? { trigger: registration.sessionTrigger } : {}
|
|
5942
5940
|
});
|
|
5943
5941
|
}
|
|
5944
5942
|
}
|
|
@@ -5953,7 +5951,13 @@ var PipelineRunner = class {
|
|
|
5953
5951
|
clearInterval(state.occupancyTimer);
|
|
5954
5952
|
state.occupancyTimer = null;
|
|
5955
5953
|
}
|
|
5956
|
-
if (state.phase === "active")
|
|
5954
|
+
if (state.phase === "active") {
|
|
5955
|
+
this.detectionStreamHandler?.(deviceId, "unsubscribe");
|
|
5956
|
+
this.config.onPhaseChanged?.(deviceId, "watching", {
|
|
5957
|
+
cause: "detach",
|
|
5958
|
+
timestamp: Date.now()
|
|
5959
|
+
});
|
|
5960
|
+
}
|
|
5957
5961
|
state.motionQueue.clear();
|
|
5958
5962
|
this.discardQueuedDetectionFrames(deviceId, state, "detach");
|
|
5959
5963
|
this.timingSampler.clearDroppedFramesSource(deviceId);
|
|
@@ -6324,6 +6328,7 @@ var PipelineRunner = class {
|
|
|
6324
6328
|
});
|
|
6325
6329
|
this.detectionStreamHandler?.(deviceId, "subscribe");
|
|
6326
6330
|
this.config.onPhaseChanged?.(deviceId, "active", {
|
|
6331
|
+
cause: "motion",
|
|
6327
6332
|
source,
|
|
6328
6333
|
regions,
|
|
6329
6334
|
timestamp: Date.now(),
|
|
@@ -6345,6 +6350,7 @@ var PipelineRunner = class {
|
|
|
6345
6350
|
this.detectionStreamHandler?.(deviceId, "unsubscribe");
|
|
6346
6351
|
const source = state.lastArmedSource ?? "analyzer";
|
|
6347
6352
|
this.config.onPhaseChanged?.(deviceId, "watching", {
|
|
6353
|
+
cause: "motion",
|
|
6348
6354
|
source,
|
|
6349
6355
|
regions: void 0,
|
|
6350
6356
|
timestamp: Date.now(),
|
|
@@ -7159,6 +7165,25 @@ var DETECTION_REDIAL_GIVEUP_WINDOW_MS = 6e4;
|
|
|
7159
7165
|
* NOTHING — see D453 for what that costs and why it was not taken either.
|
|
7160
7166
|
*/
|
|
7161
7167
|
/**
|
|
7168
|
+
* The source fields a `DetectionPhaseTransition` carries, per cause. A motion
|
|
7169
|
+
* transition: its source and cooldown. A session attach: the motion that opened
|
|
7170
|
+
* it, as the orchestrator dispatched it — absent when it sent none. A detach:
|
|
7171
|
+
* nothing.
|
|
7172
|
+
*/
|
|
7173
|
+
function phaseTransitionSourceFields(meta) {
|
|
7174
|
+
if (meta.cause === "motion") return {
|
|
7175
|
+
source: meta.source,
|
|
7176
|
+
cooldownMs: meta.cooldownMs
|
|
7177
|
+
};
|
|
7178
|
+
if (meta.cause === "detach" || meta.trigger === void 0) return {};
|
|
7179
|
+
const { source, triggeredBy, sensorName } = meta.trigger;
|
|
7180
|
+
return {
|
|
7181
|
+
source,
|
|
7182
|
+
triggeredBy,
|
|
7183
|
+
...sensorName !== void 0 ? { sensorName } : {}
|
|
7184
|
+
};
|
|
7185
|
+
}
|
|
7186
|
+
/**
|
|
7162
7187
|
* Pure decision helper: returns `true` when a dynamic frame-diff analyzer
|
|
7163
7188
|
* subscription should be opened for an onboard-motion camera.
|
|
7164
7189
|
*
|
|
@@ -8714,6 +8739,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
|
|
|
8714
8739
|
runner.registerCamera(config.deviceId, {
|
|
8715
8740
|
detectionMode: config.detectionMode,
|
|
8716
8741
|
...config.detectionSources !== void 0 ? { detectionSources: config.detectionSources } : {},
|
|
8742
|
+
...config.sessionTrigger !== void 0 ? { sessionTrigger: config.sessionTrigger } : {},
|
|
8717
8743
|
...require_default_detection_model.rootObjectGate(config.steps) !== void 0 ? { objectGate: require_default_detection_model.rootObjectGate(config.steps) } : {},
|
|
8718
8744
|
fps: config.detectionFps,
|
|
8719
8745
|
motionCooldownMs: config.motionCooldownMs,
|
|
@@ -10601,9 +10627,11 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
|
|
|
10601
10627
|
* The phase is NOT the camera's motion and writes no `motion` runtime slice
|
|
10602
10628
|
* (D696). Every on-motion detection session attaches `always-on`, so the
|
|
10603
10629
|
* phase reads `active` for a whole session, and an always-on camera is
|
|
10604
|
-
* `active` for as long as it is attached
|
|
10630
|
+
* `active` for as long as it is attached (`cause: 'attach'`), and returns to
|
|
10631
|
+
* `watching` on detach (`cause: 'detach'`) — neither names a motion source.
|
|
10605
10632
|
* The slice it used to write was therefore "a session is attached", and was
|
|
10606
|
-
* left `detected: true` after every session
|
|
10633
|
+
* left `detected: true` after every session (the detach close of the EVENT
|
|
10634
|
+
* did not exist either until 2026-10-06). The orchestrator is the only
|
|
10607
10635
|
* writer of that slice, with the EFFECTIVE motion, and this runner says so
|
|
10608
10636
|
* on `getLocalLoad().motionSliceWriter` so that it never writes the slice
|
|
10609
10637
|
* while a runner older than D696 still does.
|
|
@@ -10617,8 +10645,8 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
|
|
|
10617
10645
|
from: detected ? "watching" : "active",
|
|
10618
10646
|
to: detected ? "active" : "watching",
|
|
10619
10647
|
reason: detected ? "motion_detected" : "cooldown_expired",
|
|
10620
|
-
|
|
10621
|
-
|
|
10648
|
+
cause: meta.cause,
|
|
10649
|
+
...phaseTransitionSourceFields(meta),
|
|
10622
10650
|
timestamp: meta.timestamp
|
|
10623
10651
|
};
|
|
10624
10652
|
this.ctx.eventBus.emit(require_dist.createEvent(require_dist.EventCategory.DetectionPhaseTransition, {
|
|
@@ -11638,6 +11666,7 @@ exports.cameraOwnsMotionViaSensor = require_dist.cameraOwnsMotionViaSensor;
|
|
|
11638
11666
|
exports.customActions = pipelineRunnerBenchActions;
|
|
11639
11667
|
exports.default = PipelineRunnerAddon;
|
|
11640
11668
|
exports.deriveDetailSteps = deriveDetailSteps;
|
|
11669
|
+
exports.phaseTransitionSourceFields = phaseTransitionSourceFields;
|
|
11641
11670
|
exports.resolveMotionFrameSource = resolveMotionFrameSource;
|
|
11642
11671
|
exports.resolveSessionDecodeHostname = resolveSessionDecodeHostname;
|
|
11643
11672
|
exports.resolveSessionDecodeOwnerNodeId = resolveSessionDecodeOwnerNodeId;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { D as NativeLeaseAdmissionSchema, En as nodePin, Fn as lazy, In as literal, It as pipelineRunnerCapability, Ln as number, Mn as array, Nn as boolean, Nt as pickDetailCropConvention, O as NativeLeaseSettingsSchema, Pt as pickNativeLeaseOverride, Rn as object, Un as EventCategory, Vn as string, a as BackgroundRunRegistry, bn as defineCustomActions, bt as loadContributionCapability, fn as errMsg, ft as failureContributionCapability, g as DEFAULT_DETAIL_CROP_CONVENTION, jn as _enum, mn as BaseAddon, nt as deriveDetailCropRect, q as cameraOwnsMotionViaSensor, v as DEFAULT_NATIVE_LEASE_SETTINGS, vn as createEvent, w as FailureCounters, yn as customAction } from "../dist-
|
|
2
|
-
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-
|
|
3
|
-
import { c as macroGateVerdict, d as isSessionDecodeReadGone, f as createSessionDecodeCoordinator, l as rootObjectGate, o as placeDetailStep, p as resolveFrameViewGeometry, r as CustomModelCatalog, s as stepsForElectedPool, u as localFrameRegistry, v as getStepDefinition } from "../default-detection-model-
|
|
1
|
+
import { D as NativeLeaseAdmissionSchema, En as nodePin, Fn as lazy, In as literal, It as pipelineRunnerCapability, Ln as number, Mn as array, Nn as boolean, Nt as pickDetailCropConvention, O as NativeLeaseSettingsSchema, Pt as pickNativeLeaseOverride, Rn as object, Un as EventCategory, Vn as string, a as BackgroundRunRegistry, bn as defineCustomActions, bt as loadContributionCapability, fn as errMsg, ft as failureContributionCapability, g as DEFAULT_DETAIL_CROP_CONVENTION, jn as _enum, mn as BaseAddon, nt as deriveDetailCropRect, q as cameraOwnsMotionViaSensor, v as DEFAULT_NATIVE_LEASE_SETTINGS, vn as createEvent, w as FailureCounters, yn as customAction } from "../dist-B9LnBPz9.mjs";
|
|
2
|
+
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-Ci0E-0VP.mjs";
|
|
3
|
+
import { c as macroGateVerdict, d as isSessionDecodeReadGone, f as createSessionDecodeCoordinator, l as rootObjectGate, o as placeDetailStep, p as resolveFrameViewGeometry, r as CustomModelCatalog, s as stepsForElectedPool, u as localFrameRegistry, v as getStepDefinition } from "../default-detection-model-hql6BX9-.mjs";
|
|
4
4
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
6
|
import { c as withDetectionIntent, o as preRollRequestOf, t as DETECTION_PRE_ROLL_REQUEST_MS } from "../restream-intent-DyGmLAU9.mjs";
|
|
@@ -5925,12 +5925,10 @@ var PipelineRunner = class {
|
|
|
5925
5925
|
}, (registration.occupancyRecheckSec ?? 0) * 1e3);
|
|
5926
5926
|
if (initialPhase === "active") {
|
|
5927
5927
|
this.detectionStreamHandler?.(deviceId, "subscribe");
|
|
5928
|
-
const cooldownMs = registration.motionCooldownMs ?? DEFAULT_MOTION_COOLDOWN_MS;
|
|
5929
5928
|
this.config.onPhaseChanged?.(deviceId, "active", {
|
|
5930
|
-
|
|
5931
|
-
regions: void 0,
|
|
5929
|
+
cause: "attach",
|
|
5932
5930
|
timestamp: Date.now(),
|
|
5933
|
-
|
|
5931
|
+
...registration.sessionTrigger !== void 0 ? { trigger: registration.sessionTrigger } : {}
|
|
5934
5932
|
});
|
|
5935
5933
|
}
|
|
5936
5934
|
}
|
|
@@ -5945,7 +5943,13 @@ var PipelineRunner = class {
|
|
|
5945
5943
|
clearInterval(state.occupancyTimer);
|
|
5946
5944
|
state.occupancyTimer = null;
|
|
5947
5945
|
}
|
|
5948
|
-
if (state.phase === "active")
|
|
5946
|
+
if (state.phase === "active") {
|
|
5947
|
+
this.detectionStreamHandler?.(deviceId, "unsubscribe");
|
|
5948
|
+
this.config.onPhaseChanged?.(deviceId, "watching", {
|
|
5949
|
+
cause: "detach",
|
|
5950
|
+
timestamp: Date.now()
|
|
5951
|
+
});
|
|
5952
|
+
}
|
|
5949
5953
|
state.motionQueue.clear();
|
|
5950
5954
|
this.discardQueuedDetectionFrames(deviceId, state, "detach");
|
|
5951
5955
|
this.timingSampler.clearDroppedFramesSource(deviceId);
|
|
@@ -6316,6 +6320,7 @@ var PipelineRunner = class {
|
|
|
6316
6320
|
});
|
|
6317
6321
|
this.detectionStreamHandler?.(deviceId, "subscribe");
|
|
6318
6322
|
this.config.onPhaseChanged?.(deviceId, "active", {
|
|
6323
|
+
cause: "motion",
|
|
6319
6324
|
source,
|
|
6320
6325
|
regions,
|
|
6321
6326
|
timestamp: Date.now(),
|
|
@@ -6337,6 +6342,7 @@ var PipelineRunner = class {
|
|
|
6337
6342
|
this.detectionStreamHandler?.(deviceId, "unsubscribe");
|
|
6338
6343
|
const source = state.lastArmedSource ?? "analyzer";
|
|
6339
6344
|
this.config.onPhaseChanged?.(deviceId, "watching", {
|
|
6345
|
+
cause: "motion",
|
|
6340
6346
|
source,
|
|
6341
6347
|
regions: void 0,
|
|
6342
6348
|
timestamp: Date.now(),
|
|
@@ -7151,6 +7157,25 @@ var DETECTION_REDIAL_GIVEUP_WINDOW_MS = 6e4;
|
|
|
7151
7157
|
* NOTHING — see D453 for what that costs and why it was not taken either.
|
|
7152
7158
|
*/
|
|
7153
7159
|
/**
|
|
7160
|
+
* The source fields a `DetectionPhaseTransition` carries, per cause. A motion
|
|
7161
|
+
* transition: its source and cooldown. A session attach: the motion that opened
|
|
7162
|
+
* it, as the orchestrator dispatched it — absent when it sent none. A detach:
|
|
7163
|
+
* nothing.
|
|
7164
|
+
*/
|
|
7165
|
+
function phaseTransitionSourceFields(meta) {
|
|
7166
|
+
if (meta.cause === "motion") return {
|
|
7167
|
+
source: meta.source,
|
|
7168
|
+
cooldownMs: meta.cooldownMs
|
|
7169
|
+
};
|
|
7170
|
+
if (meta.cause === "detach" || meta.trigger === void 0) return {};
|
|
7171
|
+
const { source, triggeredBy, sensorName } = meta.trigger;
|
|
7172
|
+
return {
|
|
7173
|
+
source,
|
|
7174
|
+
triggeredBy,
|
|
7175
|
+
...sensorName !== void 0 ? { sensorName } : {}
|
|
7176
|
+
};
|
|
7177
|
+
}
|
|
7178
|
+
/**
|
|
7154
7179
|
* Pure decision helper: returns `true` when a dynamic frame-diff analyzer
|
|
7155
7180
|
* subscription should be opened for an onboard-motion camera.
|
|
7156
7181
|
*
|
|
@@ -8706,6 +8731,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
|
|
|
8706
8731
|
runner.registerCamera(config.deviceId, {
|
|
8707
8732
|
detectionMode: config.detectionMode,
|
|
8708
8733
|
...config.detectionSources !== void 0 ? { detectionSources: config.detectionSources } : {},
|
|
8734
|
+
...config.sessionTrigger !== void 0 ? { sessionTrigger: config.sessionTrigger } : {},
|
|
8709
8735
|
...rootObjectGate(config.steps) !== void 0 ? { objectGate: rootObjectGate(config.steps) } : {},
|
|
8710
8736
|
fps: config.detectionFps,
|
|
8711
8737
|
motionCooldownMs: config.motionCooldownMs,
|
|
@@ -10593,9 +10619,11 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
|
|
|
10593
10619
|
* The phase is NOT the camera's motion and writes no `motion` runtime slice
|
|
10594
10620
|
* (D696). Every on-motion detection session attaches `always-on`, so the
|
|
10595
10621
|
* phase reads `active` for a whole session, and an always-on camera is
|
|
10596
|
-
* `active` for as long as it is attached
|
|
10622
|
+
* `active` for as long as it is attached (`cause: 'attach'`), and returns to
|
|
10623
|
+
* `watching` on detach (`cause: 'detach'`) — neither names a motion source.
|
|
10597
10624
|
* The slice it used to write was therefore "a session is attached", and was
|
|
10598
|
-
* left `detected: true` after every session
|
|
10625
|
+
* left `detected: true` after every session (the detach close of the EVENT
|
|
10626
|
+
* did not exist either until 2026-10-06). The orchestrator is the only
|
|
10599
10627
|
* writer of that slice, with the EFFECTIVE motion, and this runner says so
|
|
10600
10628
|
* on `getLocalLoad().motionSliceWriter` so that it never writes the slice
|
|
10601
10629
|
* while a runner older than D696 still does.
|
|
@@ -10609,8 +10637,8 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
|
|
|
10609
10637
|
from: detected ? "watching" : "active",
|
|
10610
10638
|
to: detected ? "active" : "watching",
|
|
10611
10639
|
reason: detected ? "motion_detected" : "cooldown_expired",
|
|
10612
|
-
|
|
10613
|
-
|
|
10640
|
+
cause: meta.cause,
|
|
10641
|
+
...phaseTransitionSourceFields(meta),
|
|
10614
10642
|
timestamp: meta.timestamp
|
|
10615
10643
|
};
|
|
10616
10644
|
this.ctx.eventBus.emit(createEvent(EventCategory.DetectionPhaseTransition, {
|
|
@@ -11620,4 +11648,4 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
|
|
|
11620
11648
|
}
|
|
11621
11649
|
};
|
|
11622
11650
|
//#endregion
|
|
11623
|
-
export { DEFAULT_CONFIG, FrameQueue, PipelineRunner, PipelineTimingSampler, Semaphore, acquireSessionDecodeRestreamFrom, cameraOwnsMotionViaSensor, pipelineRunnerBenchActions as customActions, PipelineRunnerAddon as default, deriveDetailSteps, resolveMotionFrameSource, resolveSessionDecodeHostname, resolveSessionDecodeOwnerNodeId, rgbFrameToGrayFrame, shouldStartOnboardAnalyzer };
|
|
11651
|
+
export { DEFAULT_CONFIG, FrameQueue, PipelineRunner, PipelineTimingSampler, Semaphore, acquireSessionDecodeRestreamFrom, cameraOwnsMotionViaSensor, pipelineRunnerBenchActions as customActions, PipelineRunnerAddon as default, deriveDetailSteps, phaseTransitionSourceFields, resolveMotionFrameSource, resolveSessionDecodeHostname, resolveSessionDecodeOwnerNodeId, rgbFrameToGrayFrame, shouldStartOnboardAnalyzer };
|
|
@@ -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-BBZwYfSN.js");
|
|
3
3
|
let node_fs = require("node:fs");
|
|
4
4
|
node_fs = require_chunk.__toESM(node_fs);
|
|
5
5
|
let node_child_process = require("node:child_process");
|
package/dist/recorder/index.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
6
|
+
const require_dist = require("../dist-BBZwYfSN.js");
|
|
7
|
+
const require_node = require("../node-mJQBUiEc.js");
|
|
8
8
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
9
9
|
const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
|
|
10
10
|
const require_retire_root_keys = require("../retire-root-keys-Csb8z2f3.js");
|
|
@@ -8066,15 +8066,16 @@ function runShrinkFfmpeg(spawn, ffmpegPath, args) {
|
|
|
8066
8066
|
return new Promise((resolve, reject) => {
|
|
8067
8067
|
const proc = spawn(ffmpegPath, args);
|
|
8068
8068
|
let stderr = "";
|
|
8069
|
-
proc.stderr?.on("data", (
|
|
8070
|
-
|
|
8069
|
+
proc.stderr?.on("data", (...emitted) => {
|
|
8070
|
+
const chunk = emitted[0];
|
|
8071
|
+
stderr += Buffer.isBuffer(chunk) ? chunk.toString("utf8") : String(chunk);
|
|
8071
8072
|
});
|
|
8072
|
-
proc.on("error", (...
|
|
8073
|
-
const err =
|
|
8073
|
+
proc.on("error", (...emitted) => {
|
|
8074
|
+
const err = emitted[0];
|
|
8074
8075
|
reject(err instanceof Error ? err : new Error(String(err)));
|
|
8075
8076
|
});
|
|
8076
|
-
proc.on("close", (...
|
|
8077
|
-
const code =
|
|
8077
|
+
proc.on("close", (...emitted) => {
|
|
8078
|
+
const code = emitted[0];
|
|
8078
8079
|
if (code === 0) {
|
|
8079
8080
|
resolve();
|
|
8080
8081
|
return;
|
package/dist/recorder/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $t as stripRetiredBandPreBufferSec, An as sleep$1, B as VISIT_MERGE_GAP_MS, Bn as record, Bt as recordingExportCapability, C as ExportRecordSchema, Dt as migrateLegacyDeviceSignalConfig, En as nodePin, Et as memoizePinnedFfmpeg, F as RECORDING_SOURCE_CAMSTACK_ADDON, Gt as resolveLocationMode, I as RecordingConfigSchema, K as batteryCapability, L as RecordingSignalStatusSchema, Ln as number, Mn as array, N as RECORDING_EXPORT_MAX_READ_BYTES, Nn as boolean, Ot as modeMayWrite, P as RECORDING_SOURCE_CAMSTACK, Rn as object, Rt as recordingArchiveCapability, Sn as hydrateSchema, Tt as mayWriteToLocation, Un as EventCategory, Ut as resolveCreateExportSubject, Vn as string, Vt as recordingSignalCapability, X as clipExportFailureOf, Xt as storageEvictableCapability, Y as clipExportFailure, Zt as storageOccupancyCapability, _ as DEFAULT_EVENTS_BAND_BUFFER_SEC, b as EVENT_OWNER_TYPES, bn as defineCustomActions, bt as loadContributionCapability, dn as DeviceType, dt as exportSubjectOf, fn as errMsg$1, jn as _enum, k as OpsLogEntrySchema, kn as selectAssignedProfileSlots, lt as evictionPolicyForMode, mn as BaseAddon, mt as gbToBytes, o as BatteryStatusSchema, qt as resolveRecordingProfiles, rt as deriveRecordingMode, s as CLIP_BROKER_PACED_RATES, sn as evaluateSensorEdge, tn as videoclipsCapability, tt as deriveBatteryPresence, un as DeviceFeature, ut as evictionPolicyOfLocation, wt as mayReadLocation, x as EVENT_PAD_MS, yn as customAction, yt as isFirstLevelMacroClass, z as VIDEOCLIPS_MAX_OFFER_BYTES, zn as preprocess, zt as recordingCapability } from "../dist-
|
|
2
|
-
import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-
|
|
1
|
+
import { $t as stripRetiredBandPreBufferSec, An as sleep$1, B as VISIT_MERGE_GAP_MS, Bn as record, Bt as recordingExportCapability, C as ExportRecordSchema, Dt as migrateLegacyDeviceSignalConfig, En as nodePin, Et as memoizePinnedFfmpeg, F as RECORDING_SOURCE_CAMSTACK_ADDON, Gt as resolveLocationMode, I as RecordingConfigSchema, K as batteryCapability, L as RecordingSignalStatusSchema, Ln as number, Mn as array, N as RECORDING_EXPORT_MAX_READ_BYTES, Nn as boolean, Ot as modeMayWrite, P as RECORDING_SOURCE_CAMSTACK, Rn as object, Rt as recordingArchiveCapability, Sn as hydrateSchema, Tt as mayWriteToLocation, Un as EventCategory, Ut as resolveCreateExportSubject, Vn as string, Vt as recordingSignalCapability, X as clipExportFailureOf, Xt as storageEvictableCapability, Y as clipExportFailure, Zt as storageOccupancyCapability, _ as DEFAULT_EVENTS_BAND_BUFFER_SEC, b as EVENT_OWNER_TYPES, bn as defineCustomActions, bt as loadContributionCapability, dn as DeviceType, dt as exportSubjectOf, fn as errMsg$1, jn as _enum, k as OpsLogEntrySchema, kn as selectAssignedProfileSlots, lt as evictionPolicyForMode, mn as BaseAddon, mt as gbToBytes, o as BatteryStatusSchema, qt as resolveRecordingProfiles, rt as deriveRecordingMode, s as CLIP_BROKER_PACED_RATES, sn as evaluateSensorEdge, tn as videoclipsCapability, tt as deriveBatteryPresence, un as DeviceFeature, ut as evictionPolicyOfLocation, wt as mayReadLocation, x as EVENT_PAD_MS, yn as customAction, yt as isFirstLevelMacroClass, z as VIDEOCLIPS_MAX_OFFER_BYTES, zn as preprocess, zt as recordingCapability } from "../dist-B9LnBPz9.mjs";
|
|
2
|
+
import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-Ci0E-0VP.mjs";
|
|
3
3
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
4
4
|
import { d as PREBUFFER_MAX_MS, l as withRecordingIntent, r as RECORDING_PRE_ROLL_REQUEST_MS } from "../restream-intent-DyGmLAU9.mjs";
|
|
5
5
|
import { n as RowMapStore, t as retireRootKeys } from "../retire-root-keys-DZvlso2l.mjs";
|
|
@@ -8058,15 +8058,16 @@ function runShrinkFfmpeg(spawn, ffmpegPath, args) {
|
|
|
8058
8058
|
return new Promise((resolve, reject) => {
|
|
8059
8059
|
const proc = spawn(ffmpegPath, args);
|
|
8060
8060
|
let stderr = "";
|
|
8061
|
-
proc.stderr?.on("data", (
|
|
8062
|
-
|
|
8061
|
+
proc.stderr?.on("data", (...emitted) => {
|
|
8062
|
+
const chunk = emitted[0];
|
|
8063
|
+
stderr += Buffer.isBuffer(chunk) ? chunk.toString("utf8") : String(chunk);
|
|
8063
8064
|
});
|
|
8064
|
-
proc.on("error", (...
|
|
8065
|
-
const err =
|
|
8065
|
+
proc.on("error", (...emitted) => {
|
|
8066
|
+
const err = emitted[0];
|
|
8066
8067
|
reject(err instanceof Error ? err : new Error(String(err)));
|
|
8067
8068
|
});
|
|
8068
|
-
proc.on("close", (...
|
|
8069
|
-
const code =
|
|
8069
|
+
proc.on("close", (...emitted) => {
|
|
8070
|
+
const code = emitted[0];
|
|
8070
8071
|
if (code === 0) {
|
|
8071
8072
|
resolve();
|
|
8072
8073
|
return;
|
|
@@ -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-BBZwYfSN.js");
|
|
3
3
|
let node_child_process = require("node:child_process");
|
|
4
4
|
//#region src/stream-broker/recorded/avcc-annexb.ts
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as __toESM, t as __commonJSMin } from "./chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { fn as errMsg } from "./dist-
|
|
2
|
+
import { fn as errMsg } from "./dist-B9LnBPz9.mjs";
|
|
3
3
|
import { spawn } from "node:child_process";
|
|
4
4
|
//#region src/stream-broker/recorded/avcc-annexb.ts
|
|
5
5
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BpXPNINd.mjs";
|
|
2
2
|
import { a as p, i as m, n as h, o as g, r as _, t as v } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react__loadShare__.js-C9j-2lBe.mjs";
|
|
3
3
|
import { n as y, r as b, t as x } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-XO0-Pyu6.mjs";
|
|
4
|
-
import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
4
|
+
import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BDGzcgLP.mjs";
|
|
5
5
|
import { n as C, t as w } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-BO7TIbJV.mjs";
|
|
6
6
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
7
7
|
var T = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), E = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), D = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), O = (e) => {
|
|
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
|
|
|
3
3
|
var e = {
|
|
4
4
|
"@camstack/sdk": {
|
|
5
5
|
name: "@camstack/sdk",
|
|
6
|
-
version: "1.2.
|
|
6
|
+
version: "1.2.121",
|
|
7
7
|
scope: ["default"],
|
|
8
8
|
loaded: !1,
|
|
9
9
|
from: "addon_stream_broker_widgets",
|
|
@@ -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.305",
|
|
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.232",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_stream_broker_widgets",
|