@camstack/system 1.2.263 → 1.2.264
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/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/camera-grid/addon.d.ts +20 -0
- package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +32 -0
- package/dist/builtins/camera-grid/grid-activity.d.ts +50 -0
- package/dist/builtins/camera-grid/grid-camera-device.d.ts +11 -1
- package/dist/builtins/camera-grid/grid-canvas.d.ts +83 -0
- package/dist/builtins/camera-grid/grid-compositor.d.ts +36 -0
- package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +31 -0
- package/dist/builtins/camera-grid/grid-tile-feed.d.ts +38 -0
- package/dist/builtins/camera-grid/grid-tile-plan.d.ts +32 -0
- package/dist/builtins/camera-grid/index.js +416 -7
- package/dist/builtins/camera-grid/index.mjs +416 -7
- package/dist/builtins/camera-grid/silence-analysis.d.ts +7 -0
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{dist-6hiXbrNY.js → dist-BhYweLVr.js} +74 -15
- package/dist/{dist-CQ7ItBIG.mjs → dist-CO2O_ddo.mjs} +61 -8
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{retired-settings-keys-CCXmaFTK.mjs → retired-settings-keys-BnnHWyfj.mjs} +1 -1
- package/dist/{retired-settings-keys-AmmGrCp1.js → retired-settings-keys-CKLI8VmE.js} +1 -1
- package/package.json +4 -1
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BhYweLVr.js");
|
|
7
7
|
let node_fs_promises = require("node:fs/promises");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
node_fs = require_chunk.__toESM(node_fs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Lt as reducePoints, Ot as metricsProviderCapability, Pn as EventCategory, Rt as resolveBucketMs, an as errMsg, bn as createEvent, lt as foldSnapshotByFunction, sn as BaseAddon } from "../../dist-CO2O_ddo.mjs";
|
|
2
2
|
import { access, readFile, readdir } from "node:fs/promises";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import { constants, readFileSync } from "node:fs";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BhYweLVr.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
node_fs = require_chunk.__toESM(node_fs);
|
|
9
9
|
let node_child_process = require("node:child_process");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { Gt as scoreRuntimes, Pn as EventCategory, Pt as platformProbeCapability, Sn as emitReadiness, an as errMsg, nt as enumerateInferenceDevices, sn as BaseAddon } from "../../dist-CO2O_ddo.mjs";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import { execFile } from "node:child_process";
|
|
5
5
|
import * as os from "node:os";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BhYweLVr.js");
|
|
7
7
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
8
8
|
/**
|
|
9
9
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Pn as EventCategory, sn as BaseAddon } from "../../dist-CO2O_ddo.mjs";
|
|
2
2
|
//#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
|
|
3
3
|
/**
|
|
4
4
|
* Reconcile the durable `enabledProviders` set against authoritative
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BhYweLVr.js");
|
|
7
7
|
const require_snapshot_courtesy = require("../../snapshot-courtesy-Cqs7GkOV.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as bareAddonId, Dn as nodePin, Jt as snapshotCapability, Pn as EventCategory, V as batteryCapability, Z as deriveBatteryPresence, a as BatteryStatusSchema, an as errMsg, dn as DeviceFeature, en as streamQualityLabel, pn as DeviceType, sn as BaseAddon } from "../../dist-CO2O_ddo.mjs";
|
|
2
2
|
import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CZPvteq2.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BhYweLVr.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let node_fs_promises = require("node:fs/promises");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Qt as storageProviderCapability, ct as filesystemBrowseCapability, sn as BaseAddon } from "../../dist-CO2O_ddo.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
Binary file
|
|
Binary file
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BhYweLVr.js");
|
|
7
7
|
const require_hub_cap_forward = require("../../hub-cap-forward-DmHNjbB0.js");
|
|
8
8
|
let zod = require("zod");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as StorageLocationModeSchema,
|
|
1
|
+
import { A as StorageLocationModeSchema, Bt as resolveLocationMode, Dt as mayWriteToLocation, Et as mayReadLocation, Kt as settingsStoreCapability, M as StorageMigrationJobSchema, On as parseJsonObject, Pn as EventCategory, W as collectSecretConfigKeys, Xt as storageMigrationCapability, Yt as storageCapability, _ as LegacyStorageLocationDefaultSchema, in as withLocationMode, j as StorageLocationTypeSchema, k as StorageCleanupJobSchema, kt as modeMayWrite, ot as evictionPolicyOfLocation, pt as isLocationEnabled, sn as BaseAddon, ut as gbToBytes, x as REDACTED_SECRET, yt as legacyModeOf } from "../../dist-CO2O_ddo.mjs";
|
|
2
2
|
import { t as HUB_CAP_FWD_ACTION } from "../../hub-cap-forward-BdT320dq.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BhYweLVr.js");
|
|
7
7
|
//#region src/builtins/system-config/system-config.addon.ts
|
|
8
8
|
/**
|
|
9
9
|
* Built-in `system-config` addon — Phase 4 of the settings redesign.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { an as errMsg, sn as BaseAddon, wn as hydrateSchema } from "../../dist-CO2O_ddo.mjs";
|
|
2
2
|
//#region src/builtins/system-config/system-config.addon.ts
|
|
3
3
|
/**
|
|
4
4
|
* Built-in `system-config` addon — Phase 4 of the settings redesign.
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BhYweLVr.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as logDestinationCapability,
|
|
1
|
+
import { Ct as logDestinationCapability, sn as BaseAddon } from "../../dist-CO2O_ddo.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
import * as path$1 from "node:path";
|
|
4
4
|
import path from "node:path";
|
|
@@ -3404,7 +3404,7 @@ function sleep(ms) {
|
|
|
3404
3404
|
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
3405
3405
|
}
|
|
3406
3406
|
//#endregion
|
|
3407
|
-
//#region ../types/dist/canonical-hash-
|
|
3407
|
+
//#region ../types/dist/canonical-hash-B-5nFwFn.mjs
|
|
3408
3408
|
var AUDIO_ENCODER_BY_CODEC = {
|
|
3409
3409
|
opus: "libopus",
|
|
3410
3410
|
aac: "aac",
|
|
@@ -3468,6 +3468,10 @@ function buildInputArgs(input, decodeHwAccel) {
|
|
|
3468
3468
|
if (input.useWallclockTimestamps === true) args.push("-use_wallclock_as_timestamps", "1");
|
|
3469
3469
|
if (input.fflags?.length) for (const flag of input.fflags) args.push("-fflags", flag);
|
|
3470
3470
|
if (input.rtspTransport) args.push("-rtsp_transport", input.rtspTransport);
|
|
3471
|
+
if (input.rawVideo !== void 0) {
|
|
3472
|
+
const raw = input.rawVideo;
|
|
3473
|
+
args.push("-f", "rawvideo", "-pix_fmt", raw.pixelFormat, "-video_size", `${String(raw.width)}x${String(raw.height)}`, "-framerate", String(raw.framerate));
|
|
3474
|
+
}
|
|
3471
3475
|
args.push("-i", input.url);
|
|
3472
3476
|
return args;
|
|
3473
3477
|
}
|
|
@@ -4284,13 +4288,37 @@ var CameraSwitchGroupSchema = zod.z.object({
|
|
|
4284
4288
|
fetchedAt: zod.z.number()
|
|
4285
4289
|
});
|
|
4286
4290
|
/**
|
|
4287
|
-
*
|
|
4288
|
-
*
|
|
4289
|
-
*
|
|
4290
|
-
*
|
|
4291
|
+
* Every analyser a camera CamStack BUILDS is created with switched off.
|
|
4292
|
+
*
|
|
4293
|
+
* A grid and a Terminal camera are `DeviceType.Camera`, so every wrapper that
|
|
4294
|
+
* declares `defaultActive: true` for a camera binds to them the instant they
|
|
4295
|
+
* exist — the whole analysis family included. There is nothing there to
|
|
4296
|
+
* analyse: a grid's subjects are already counted on the cameras it composes (a
|
|
4297
|
+
* person in the bottom-right cell is a person on THAT camera, not on the grid),
|
|
4298
|
+
* and a Terminal camera shows a shell.
|
|
4299
|
+
*
|
|
4300
|
+
* ONE list, in the package both already depend on, because there were two and
|
|
4301
|
+
* they had already drifted: the Terminal's and the grid's each named three caps
|
|
4302
|
+
* and neither named `pipeline-analytics` — which has no gate of its own except
|
|
4303
|
+
* this binding, so a grid that forwards its sources' motion (so the viewer can
|
|
4304
|
+
* light its tile) would open a motion EPISODE per forwarded event, duplicating
|
|
4305
|
+
* the rows those sources already write.
|
|
4306
|
+
*
|
|
4307
|
+
* `motion-detection` sits first deliberately: it is the one that holds the
|
|
4308
|
+
* decode session open, so its absence is the difference between a derived
|
|
4309
|
+
* camera costing a composition and costing a full decode pipeline.
|
|
4310
|
+
*
|
|
4311
|
+
* Applied ONLY at creation. An operator who deliberately turns analysis back on
|
|
4312
|
+
* for a grid must win, and a reconcile that re-asserted this every pass would
|
|
4313
|
+
* silently overrule them once a minute.
|
|
4291
4314
|
*/
|
|
4292
|
-
var
|
|
4293
|
-
|
|
4315
|
+
var DERIVED_CAMERA_SILENCED_CAP_NAMES = [
|
|
4316
|
+
"motion-detection",
|
|
4317
|
+
"detection-pipeline",
|
|
4318
|
+
"audio-analysis",
|
|
4319
|
+
"pipeline-analytics",
|
|
4320
|
+
"scene-monitor"
|
|
4321
|
+
];
|
|
4294
4322
|
/**
|
|
4295
4323
|
* The value a redacted secret is replaced with on every read surface.
|
|
4296
4324
|
*
|
|
@@ -30864,6 +30892,31 @@ authKey: zod.z.string().optional() }), zod.z.object({
|
|
|
30864
30892
|
}), { kind: "mutation" })
|
|
30865
30893
|
}
|
|
30866
30894
|
};
|
|
30895
|
+
/**
|
|
30896
|
+
* Hardware / firmware motion sensor cap — binary detected state plus
|
|
30897
|
+
* a timestamp of the last observation. Distinct from
|
|
30898
|
+
* `motion-detection.cap.ts` which owns the LOCAL ML motion pipeline;
|
|
30899
|
+
* `motion` is the lightweight readout from on-camera motion (Reolink
|
|
30900
|
+
* `GetMdState`, Baichuan push `type: motion`, ONVIF analytics).
|
|
30901
|
+
*
|
|
30902
|
+
* Native-motion providers also fan out to `detection.camera-native`
|
|
30903
|
+
* with `source: 'onboard'` so cross-cutting system services
|
|
30904
|
+
* (alert-center, advanced-notifier) can subscribe once and receive
|
|
30905
|
+
* motion from every camera.
|
|
30906
|
+
*/
|
|
30907
|
+
/**
|
|
30908
|
+
* How long after a camera's last rising edge `pipeline-analytics` closes the
|
|
30909
|
+
* motion EPISODE row it kept open for it (D475) — "il delay della cap", in
|
|
30910
|
+
* the operator's words. One authority for the whole system: every provider
|
|
30911
|
+
* that seeds `autoClearAfterMs` on a `Camera` device writes this SAME
|
|
30912
|
+
* constant while `detected: true` (never its own number — Hikvision used to
|
|
30913
|
+
* seed its internal 3 s inactivity timer here, which is a different clock for
|
|
30914
|
+
* a different purpose), and `MotionEpisodeTracker` imports it directly rather
|
|
30915
|
+
* than reading the live cap value on the hot path. A `Sensor` device (HA
|
|
30916
|
+
* binary sensor, Homematic) gets a genuine push both ways and has no episode
|
|
30917
|
+
* to close on a timer, so it writes `null`, never this constant.
|
|
30918
|
+
*/
|
|
30919
|
+
var MOTION_CLOSE_AFTER_MS = 15e3;
|
|
30867
30920
|
var MotionStatusSchema = zod.z.object({
|
|
30868
30921
|
detected: zod.z.boolean(),
|
|
30869
30922
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -48763,12 +48816,6 @@ Object.defineProperty(exports, "ALL_CAPABILITY_DEFINITIONS", {
|
|
|
48763
48816
|
return ALL_CAPABILITY_DEFINITIONS;
|
|
48764
48817
|
}
|
|
48765
48818
|
});
|
|
48766
|
-
Object.defineProperty(exports, "AUDIO_ANALYSIS_CAP_NAME", {
|
|
48767
|
-
enumerable: true,
|
|
48768
|
-
get: function() {
|
|
48769
|
-
return AUDIO_ANALYSIS_CAP_NAME;
|
|
48770
|
-
}
|
|
48771
|
-
});
|
|
48772
48819
|
Object.defineProperty(exports, "AlertSchema", {
|
|
48773
48820
|
enumerable: true,
|
|
48774
48821
|
get: function() {
|
|
@@ -48841,10 +48888,10 @@ Object.defineProperty(exports, "DEFAULT_FIRST_SIGHTING_FRESHNESS_MS", {
|
|
|
48841
48888
|
return DEFAULT_FIRST_SIGHTING_FRESHNESS_MS;
|
|
48842
48889
|
}
|
|
48843
48890
|
});
|
|
48844
|
-
Object.defineProperty(exports, "
|
|
48891
|
+
Object.defineProperty(exports, "DERIVED_CAMERA_SILENCED_CAP_NAMES", {
|
|
48845
48892
|
enumerable: true,
|
|
48846
48893
|
get: function() {
|
|
48847
|
-
return
|
|
48894
|
+
return DERIVED_CAMERA_SILENCED_CAP_NAMES;
|
|
48848
48895
|
}
|
|
48849
48896
|
});
|
|
48850
48897
|
Object.defineProperty(exports, "DEVICE_SETTINGS_CONTRIBUTION_METHODS", {
|
|
@@ -48925,6 +48972,12 @@ Object.defineProperty(exports, "METHOD_ACCESS_MAP", {
|
|
|
48925
48972
|
return METHOD_ACCESS_MAP;
|
|
48926
48973
|
}
|
|
48927
48974
|
});
|
|
48975
|
+
Object.defineProperty(exports, "MOTION_CLOSE_AFTER_MS", {
|
|
48976
|
+
enumerable: true,
|
|
48977
|
+
get: function() {
|
|
48978
|
+
return MOTION_CLOSE_AFTER_MS;
|
|
48979
|
+
}
|
|
48980
|
+
});
|
|
48928
48981
|
Object.defineProperty(exports, "REDACTED_SECRET", {
|
|
48929
48982
|
enumerable: true,
|
|
48930
48983
|
get: function() {
|
|
@@ -49393,6 +49446,12 @@ Object.defineProperty(exports, "modeMayWrite", {
|
|
|
49393
49446
|
return modeMayWrite;
|
|
49394
49447
|
}
|
|
49395
49448
|
});
|
|
49449
|
+
Object.defineProperty(exports, "motionCapability", {
|
|
49450
|
+
enumerable: true,
|
|
49451
|
+
get: function() {
|
|
49452
|
+
return motionCapability;
|
|
49453
|
+
}
|
|
49454
|
+
});
|
|
49396
49455
|
Object.defineProperty(exports, "nodePin", {
|
|
49397
49456
|
enumerable: true,
|
|
49398
49457
|
get: function() {
|
|
@@ -3404,7 +3404,7 @@ function sleep(ms) {
|
|
|
3404
3404
|
return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
|
|
3405
3405
|
}
|
|
3406
3406
|
//#endregion
|
|
3407
|
-
//#region ../types/dist/canonical-hash-
|
|
3407
|
+
//#region ../types/dist/canonical-hash-B-5nFwFn.mjs
|
|
3408
3408
|
var AUDIO_ENCODER_BY_CODEC = {
|
|
3409
3409
|
opus: "libopus",
|
|
3410
3410
|
aac: "aac",
|
|
@@ -3468,6 +3468,10 @@ function buildInputArgs(input, decodeHwAccel) {
|
|
|
3468
3468
|
if (input.useWallclockTimestamps === true) args.push("-use_wallclock_as_timestamps", "1");
|
|
3469
3469
|
if (input.fflags?.length) for (const flag of input.fflags) args.push("-fflags", flag);
|
|
3470
3470
|
if (input.rtspTransport) args.push("-rtsp_transport", input.rtspTransport);
|
|
3471
|
+
if (input.rawVideo !== void 0) {
|
|
3472
|
+
const raw = input.rawVideo;
|
|
3473
|
+
args.push("-f", "rawvideo", "-pix_fmt", raw.pixelFormat, "-video_size", `${String(raw.width)}x${String(raw.height)}`, "-framerate", String(raw.framerate));
|
|
3474
|
+
}
|
|
3471
3475
|
args.push("-i", input.url);
|
|
3472
3476
|
return args;
|
|
3473
3477
|
}
|
|
@@ -4284,13 +4288,37 @@ var CameraSwitchGroupSchema = z.object({
|
|
|
4284
4288
|
fetchedAt: z.number()
|
|
4285
4289
|
});
|
|
4286
4290
|
/**
|
|
4287
|
-
*
|
|
4288
|
-
*
|
|
4289
|
-
*
|
|
4290
|
-
*
|
|
4291
|
+
* Every analyser a camera CamStack BUILDS is created with switched off.
|
|
4292
|
+
*
|
|
4293
|
+
* A grid and a Terminal camera are `DeviceType.Camera`, so every wrapper that
|
|
4294
|
+
* declares `defaultActive: true` for a camera binds to them the instant they
|
|
4295
|
+
* exist — the whole analysis family included. There is nothing there to
|
|
4296
|
+
* analyse: a grid's subjects are already counted on the cameras it composes (a
|
|
4297
|
+
* person in the bottom-right cell is a person on THAT camera, not on the grid),
|
|
4298
|
+
* and a Terminal camera shows a shell.
|
|
4299
|
+
*
|
|
4300
|
+
* ONE list, in the package both already depend on, because there were two and
|
|
4301
|
+
* they had already drifted: the Terminal's and the grid's each named three caps
|
|
4302
|
+
* and neither named `pipeline-analytics` — which has no gate of its own except
|
|
4303
|
+
* this binding, so a grid that forwards its sources' motion (so the viewer can
|
|
4304
|
+
* light its tile) would open a motion EPISODE per forwarded event, duplicating
|
|
4305
|
+
* the rows those sources already write.
|
|
4306
|
+
*
|
|
4307
|
+
* `motion-detection` sits first deliberately: it is the one that holds the
|
|
4308
|
+
* decode session open, so its absence is the difference between a derived
|
|
4309
|
+
* camera costing a composition and costing a full decode pipeline.
|
|
4310
|
+
*
|
|
4311
|
+
* Applied ONLY at creation. An operator who deliberately turns analysis back on
|
|
4312
|
+
* for a grid must win, and a reconcile that re-asserted this every pass would
|
|
4313
|
+
* silently overrule them once a minute.
|
|
4291
4314
|
*/
|
|
4292
|
-
var
|
|
4293
|
-
|
|
4315
|
+
var DERIVED_CAMERA_SILENCED_CAP_NAMES = [
|
|
4316
|
+
"motion-detection",
|
|
4317
|
+
"detection-pipeline",
|
|
4318
|
+
"audio-analysis",
|
|
4319
|
+
"pipeline-analytics",
|
|
4320
|
+
"scene-monitor"
|
|
4321
|
+
];
|
|
4294
4322
|
/**
|
|
4295
4323
|
* The value a redacted secret is replaced with on every read surface.
|
|
4296
4324
|
*
|
|
@@ -30864,6 +30892,31 @@ authKey: z.string().optional() }), z.object({
|
|
|
30864
30892
|
}), { kind: "mutation" })
|
|
30865
30893
|
}
|
|
30866
30894
|
};
|
|
30895
|
+
/**
|
|
30896
|
+
* Hardware / firmware motion sensor cap — binary detected state plus
|
|
30897
|
+
* a timestamp of the last observation. Distinct from
|
|
30898
|
+
* `motion-detection.cap.ts` which owns the LOCAL ML motion pipeline;
|
|
30899
|
+
* `motion` is the lightweight readout from on-camera motion (Reolink
|
|
30900
|
+
* `GetMdState`, Baichuan push `type: motion`, ONVIF analytics).
|
|
30901
|
+
*
|
|
30902
|
+
* Native-motion providers also fan out to `detection.camera-native`
|
|
30903
|
+
* with `source: 'onboard'` so cross-cutting system services
|
|
30904
|
+
* (alert-center, advanced-notifier) can subscribe once and receive
|
|
30905
|
+
* motion from every camera.
|
|
30906
|
+
*/
|
|
30907
|
+
/**
|
|
30908
|
+
* How long after a camera's last rising edge `pipeline-analytics` closes the
|
|
30909
|
+
* motion EPISODE row it kept open for it (D475) — "il delay della cap", in
|
|
30910
|
+
* the operator's words. One authority for the whole system: every provider
|
|
30911
|
+
* that seeds `autoClearAfterMs` on a `Camera` device writes this SAME
|
|
30912
|
+
* constant while `detected: true` (never its own number — Hikvision used to
|
|
30913
|
+
* seed its internal 3 s inactivity timer here, which is a different clock for
|
|
30914
|
+
* a different purpose), and `MotionEpisodeTracker` imports it directly rather
|
|
30915
|
+
* than reading the live cap value on the hot path. A `Sensor` device (HA
|
|
30916
|
+
* binary sensor, Homematic) gets a genuine push both ways and has no episode
|
|
30917
|
+
* to close on a timer, so it writes `null`, never this constant.
|
|
30918
|
+
*/
|
|
30919
|
+
var MOTION_CLOSE_AFTER_MS = 15e3;
|
|
30867
30920
|
var MotionStatusSchema = z.object({
|
|
30868
30921
|
detected: z.boolean(),
|
|
30869
30922
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -48757,4 +48810,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
48757
48810
|
return out;
|
|
48758
48811
|
}
|
|
48759
48812
|
//#endregion
|
|
48760
|
-
export { deviceStateCapability as $,
|
|
48813
|
+
export { deviceStateCapability as $, streamCatalogCapability as $t, StorageLocationModeSchema as A, readinessKey as An, motionCapability as At, bareAddonId as B, resolveLocationMode as Bt, RecordingStatusSchema as C, expandCapMethods as Cn, logDestinationCapability as Ct, STREAM_PROFILE_META as D, nodePin as Dn, mayWriteToLocation as Dt, STORAGE_ACCESS_FALLBACK as E, isEvent as En, mayReadLocation as Et, addonSettingsCapability as F, procedureAuthKey as Ft, coreBlockAddonId as G, scoreRuntimes as Gt, buildStreamParamsConfigSchema as H, runtimeStatePolicyFor as Ht, addonWidgetsCapability as I, ptzAutotrackCapability as It, dataStoreProviderCapability as J, snapshotCapability as Jt, coreBlockIdFromAddonId as K, settingsStoreCapability as Kt, alertsCapability as L, reducePoints as Lt, StorageMigrationJobSchema as M, scopeKey as Mn, objectInputDeclaresAddonId as Mt, UserRecordSchema as N, sleep as Nn, parseStreamParamsFormPatch as Nt, ScopedTokenSchema as O, parseJsonObject as On, metricsProviderCapability as Ot, addonPagesCapability as P, EventCategory as Pn, platformProbeCapability as Pt, deviceManagerCapability as Q, storageProviderCapability as Qt, authProviderCapability as R, resolveBucketMs as Rt, RUNTIME_DEFAULTS as S, emitReadiness as Sn, locationIconKey as St, SOURCE_DEVICE_TYPES as T, isDeviceConfigCap as Tn, looseSchema as Tt, cameraGridLayoutCapability as U, scopesAllowAddon as Ut, batteryCapability as V, resolveMethodAuth as Vt, collectSecretConfigKeys as W, scopesAllowDeviceCap as Wt, decodeVectorBase64 as X, storageMigrationCapability as Xt, declarationOwnerNodeId as Y, storageCapability as Yt, deriveBatteryPresence as Z, storageOccupancyCapability as Zt, LegacyStorageLocationDefaultSchema as _, asJsonObject as _n, isVoidInput as _t, BatteryStatusSchema as a, errMsg as an, evaluateSensorEdge as at, MOTION_CLOSE_AFTER_MS as b, createEvent as bn, lifecycleJobSchema as bt, CORE_BLOCKS_ADDON_ID as c, DATAPLANE_SECRET_HEADER as cn, filesystemBrowseCapability as ct, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as d, DeviceFeature as dn, isArrayOutputSchema as dt, streamQualityLabel as en, deviceStatusCapability as et, DERIVED_CAMERA_SILENCED_CAP_NAMES as f, DeviceRole as fn, isCollectionArrayMethod as ft, LOG_LEVEL_RANK as g, WELL_KNOWN_TAB_MAP as gn, isSourceCap as gt, FIRST_LEVEL_MACRO_CLASSES as h, ReadinessTimeoutError as hn, isSameAddonId as ht, BaseDevice as i, withLocationMode as in, enumerateSchemaFields as it, StorageLocationTypeSchema as j, resolveCapMount as jn, normalizeUnit as jt, StorageCleanupJobSchema as k, parseJsonUnknown as kn, modeMayWrite as kt, CORE_BLOCK_ADDON_PREFIX as l, DEVICE_SETTINGS_CONTRIBUTION_METHODS as ln, foldSnapshotByFunction as lt, DeviceStatusSchema as m, ReadinessRegistry as mn, isObjectInput as mt, AlertSchema as n, vectorDimFromBase64 as nn, enumerateInferenceDevices as nt, CAMERA_SWITCH_ORDER as o, buildFfmpegArgs as on, evictionPolicyOfLocation as ot, DeclaredDevices as p, DeviceType as pn, isLocationEnabled as pt, coreBlocksCapability as q, siteZoneKey as qt, ApiKeyRecordSchema as r, vectorStoreCapability as rn, enumerateItemArrayFields as rt, CAP_NAMES_WITH_STATUS as s, BaseAddon as sn, extractNestedAddonId as st, ALL_CAPABILITY_DEFINITIONS as t, userManagementCapability as tn, doorbellCapability as tt, CoreBlockSchema as u, DEVICE_STATUS_METHOD as un, gbToBytes as ut, LocationIconIdSchema as v, asNumber as vn, kebabToCamel as vt, SOURCE_CAPS as w, hydrateSchema as wn, logLevelAtMost as wt, REDACTED_SECRET as x, emitDownForOwnedCaps as xn, localNetworkCapability as xt, METHOD_ACCESS_MAP as y, asString as yn, legacyModeOf as yt, backupCapability as z, resolveContainerPrimaryChild as zt };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("./dist-
|
|
3
|
+
const require_dist = require("./dist-BhYweLVr.js");
|
|
4
4
|
const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
|
|
5
5
|
require("./builtins/alerts/index.js");
|
|
6
6
|
const require_formatter = require("./formatter-DqAKDlvN.js");
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { An as
|
|
2
|
+
import { An as readinessKey, Cn as expandCapMethods, F as addonSettingsCapability, Ft as procedureAuthKey, Mn as scopeKey, Mt as objectInputDeclaresAddonId, On as parseJsonObject, Pn as EventCategory$1, S as RUNTIME_DEFAULTS, Tt as looseSchema, Ut as scopesAllowAddon, Vt as resolveMethodAuth, Wt as scopesAllowDeviceCap, _n as asJsonObject$1, _t as isVoidInput, an as errMsg$1, bn as createEvent, bt as lifecycleJobSchema, cn as DATAPLANE_SECRET_HEADER$1, dt as isArrayOutputSchema, ft as isCollectionArrayMethod, g as LOG_LEVEL_RANK, hn as ReadinessTimeoutError, jn as resolveCapMount, kn as parseJsonUnknown, ln as DEVICE_SETTINGS_CONTRIBUTION_METHODS, mn as ReadinessRegistry, mt as isObjectInput, st as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, un as DEVICE_STATUS_METHOD, vn as asNumber, vt as kebabToCamel, wt as logLevelAtMost, xn as emitDownForOwnedCaps, y as METHOD_ACCESS_MAP, yn as asString$1 } from "./dist-CO2O_ddo.mjs";
|
|
3
3
|
import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
|
|
4
4
|
import "./builtins/alerts/index.mjs";
|
|
5
5
|
import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/system",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.264",
|
|
4
4
|
"description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
|
@@ -368,6 +368,9 @@
|
|
|
368
368
|
"capabilities": [
|
|
369
369
|
{
|
|
370
370
|
"name": "camera-grid-layout"
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"name": "motion"
|
|
371
374
|
}
|
|
372
375
|
]
|
|
373
376
|
}
|