@camstack/system 1.2.263 → 1.2.265
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-child.d.ts +3 -0
- package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +19 -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 +31 -0
- package/dist/builtins/camera-grid/index.js +1199 -232
- package/dist/builtins/camera-grid/index.mjs +1199 -232
- 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-BbPssgI6.js} +85 -15
- package/dist/{dist-CQ7ItBIG.mjs → dist-Ck0rjYOQ.mjs} +72 -8
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{retired-settings-keys-CCXmaFTK.mjs → retired-settings-keys-BZpDuJVh.mjs} +1 -1
- package/dist/{retired-settings-keys-AmmGrCp1.js → retired-settings-keys-Dg_69cOY.js} +1 -1
- package/package.json +4 -1
|
@@ -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-C5pB-QV1.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
|
}
|
|
@@ -3530,6 +3534,17 @@ function buildRateControlArgs(video) {
|
|
|
3530
3534
|
}
|
|
3531
3535
|
/** The whole video block (`-vf` … `-c:v` … knobs), after `-i`. */
|
|
3532
3536
|
function buildVideoArgs(video, outputArgs, filterGraph) {
|
|
3537
|
+
if (video.kind === "raw") {
|
|
3538
|
+
if (filterGraph && video.filter !== void 0) throw new Error("FfmpegInvocation: video.filter cannot be combined with a filter graph — fold the filter into the graph");
|
|
3539
|
+
return [
|
|
3540
|
+
...video.filter !== void 0 ? ["-vf", video.filter] : [],
|
|
3541
|
+
"-c:v",
|
|
3542
|
+
"rawvideo",
|
|
3543
|
+
"-pix_fmt",
|
|
3544
|
+
video.pixelFormat,
|
|
3545
|
+
...video.fps !== void 0 ? ["-r", String(video.fps)] : []
|
|
3546
|
+
];
|
|
3547
|
+
}
|
|
3533
3548
|
if (video.kind === "copy") {
|
|
3534
3549
|
if (filterGraph) throw new Error("FfmpegInvocation: a filter graph produces a NEW picture, so video.kind must be `encode`");
|
|
3535
3550
|
return [
|
|
@@ -4284,13 +4299,37 @@ var CameraSwitchGroupSchema = z.object({
|
|
|
4284
4299
|
fetchedAt: z.number()
|
|
4285
4300
|
});
|
|
4286
4301
|
/**
|
|
4287
|
-
*
|
|
4288
|
-
*
|
|
4289
|
-
*
|
|
4290
|
-
*
|
|
4302
|
+
* Every analyser a camera CamStack BUILDS is created with switched off.
|
|
4303
|
+
*
|
|
4304
|
+
* A grid and a Terminal camera are `DeviceType.Camera`, so every wrapper that
|
|
4305
|
+
* declares `defaultActive: true` for a camera binds to them the instant they
|
|
4306
|
+
* exist — the whole analysis family included. There is nothing there to
|
|
4307
|
+
* analyse: a grid's subjects are already counted on the cameras it composes (a
|
|
4308
|
+
* person in the bottom-right cell is a person on THAT camera, not on the grid),
|
|
4309
|
+
* and a Terminal camera shows a shell.
|
|
4310
|
+
*
|
|
4311
|
+
* ONE list, in the package both already depend on, because there were two and
|
|
4312
|
+
* they had already drifted: the Terminal's and the grid's each named three caps
|
|
4313
|
+
* and neither named `pipeline-analytics` — which has no gate of its own except
|
|
4314
|
+
* this binding, so a grid that forwards its sources' motion (so the viewer can
|
|
4315
|
+
* light its tile) would open a motion EPISODE per forwarded event, duplicating
|
|
4316
|
+
* the rows those sources already write.
|
|
4317
|
+
*
|
|
4318
|
+
* `motion-detection` sits first deliberately: it is the one that holds the
|
|
4319
|
+
* decode session open, so its absence is the difference between a derived
|
|
4320
|
+
* camera costing a composition and costing a full decode pipeline.
|
|
4321
|
+
*
|
|
4322
|
+
* Applied ONLY at creation. An operator who deliberately turns analysis back on
|
|
4323
|
+
* for a grid must win, and a reconcile that re-asserted this every pass would
|
|
4324
|
+
* silently overrule them once a minute.
|
|
4291
4325
|
*/
|
|
4292
|
-
var
|
|
4293
|
-
|
|
4326
|
+
var DERIVED_CAMERA_SILENCED_CAP_NAMES = [
|
|
4327
|
+
"motion-detection",
|
|
4328
|
+
"detection-pipeline",
|
|
4329
|
+
"audio-analysis",
|
|
4330
|
+
"pipeline-analytics",
|
|
4331
|
+
"scene-monitor"
|
|
4332
|
+
];
|
|
4294
4333
|
/**
|
|
4295
4334
|
* The value a redacted secret is replaced with on every read surface.
|
|
4296
4335
|
*
|
|
@@ -30864,6 +30903,31 @@ authKey: z.string().optional() }), z.object({
|
|
|
30864
30903
|
}), { kind: "mutation" })
|
|
30865
30904
|
}
|
|
30866
30905
|
};
|
|
30906
|
+
/**
|
|
30907
|
+
* Hardware / firmware motion sensor cap — binary detected state plus
|
|
30908
|
+
* a timestamp of the last observation. Distinct from
|
|
30909
|
+
* `motion-detection.cap.ts` which owns the LOCAL ML motion pipeline;
|
|
30910
|
+
* `motion` is the lightweight readout from on-camera motion (Reolink
|
|
30911
|
+
* `GetMdState`, Baichuan push `type: motion`, ONVIF analytics).
|
|
30912
|
+
*
|
|
30913
|
+
* Native-motion providers also fan out to `detection.camera-native`
|
|
30914
|
+
* with `source: 'onboard'` so cross-cutting system services
|
|
30915
|
+
* (alert-center, advanced-notifier) can subscribe once and receive
|
|
30916
|
+
* motion from every camera.
|
|
30917
|
+
*/
|
|
30918
|
+
/**
|
|
30919
|
+
* How long after a camera's last rising edge `pipeline-analytics` closes the
|
|
30920
|
+
* motion EPISODE row it kept open for it (D475) — "il delay della cap", in
|
|
30921
|
+
* the operator's words. One authority for the whole system: every provider
|
|
30922
|
+
* that seeds `autoClearAfterMs` on a `Camera` device writes this SAME
|
|
30923
|
+
* constant while `detected: true` (never its own number — Hikvision used to
|
|
30924
|
+
* seed its internal 3 s inactivity timer here, which is a different clock for
|
|
30925
|
+
* a different purpose), and `MotionEpisodeTracker` imports it directly rather
|
|
30926
|
+
* than reading the live cap value on the hot path. A `Sensor` device (HA
|
|
30927
|
+
* binary sensor, Homematic) gets a genuine push both ways and has no episode
|
|
30928
|
+
* to close on a timer, so it writes `null`, never this constant.
|
|
30929
|
+
*/
|
|
30930
|
+
var MOTION_CLOSE_AFTER_MS = 15e3;
|
|
30867
30931
|
var MotionStatusSchema = z.object({
|
|
30868
30932
|
detected: z.boolean(),
|
|
30869
30933
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -48757,4 +48821,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
48757
48821
|
return out;
|
|
48758
48822
|
}
|
|
48759
48823
|
//#endregion
|
|
48760
|
-
export { deviceStateCapability as $,
|
|
48824
|
+
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-BbPssgI6.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-Ck0rjYOQ.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.265",
|
|
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
|
}
|