@camstack/system 1.2.93 → 1.2.94
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/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- 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 +1 -1
- package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
- 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 +205 -94
- package/dist/builtins/snapshot/index.mjs +205 -94
- package/dist/builtins/snapshot/snapshot-courtesy.d.ts +13 -1
- package/dist/builtins/snapshot/snapshot-media-handler.d.ts +7 -1
- package/dist/builtins/snapshot/snapshot-resize.d.ts +4 -4
- package/dist/builtins/snapshot/snapshot.addon.d.ts +35 -37
- 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 +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +1 -1
- 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-BMus2E5R.js → dist-BspfS8Q7.js} +6 -0
- package/dist/{dist-F1XDQDE1.mjs → dist-COd223t-.mjs} +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
|
@@ -40,9 +40,14 @@ export declare class SnapshotAddon extends BaseAddon<SnapshotAddonConfig> {
|
|
|
40
40
|
* A courtesy frame is a pure function of those three, so it is rendered once
|
|
41
41
|
* and reused for as long as the process lives — a disabled camera must not
|
|
42
42
|
* cost an ffmpeg run per poll. Unbounded on purpose: the key space is
|
|
43
|
-
* (
|
|
43
|
+
* (state reasons × this node's own cameras), not user input.
|
|
44
44
|
*/
|
|
45
45
|
private readonly courtesyFrames;
|
|
46
|
+
/** State overlays over real cached frames, grouped by device so invalidation
|
|
47
|
+
* can discard every generation in O(1). */
|
|
48
|
+
private readonly stateFrames;
|
|
49
|
+
/** Devices inside the explicit battery wake-in-progress window. */
|
|
50
|
+
private readonly wakingDevices;
|
|
46
51
|
/**
|
|
47
52
|
* De-dupes concurrent captures per `${deviceId}:${streamId}` and holds a
|
|
48
53
|
* settled SUCCESS for COALESCE_MS so a grid-mount burst (and a row of refresh
|
|
@@ -201,9 +206,7 @@ export declare class SnapshotAddon extends BaseAddon<SnapshotAddonConfig> {
|
|
|
201
206
|
* the Viewer's 15-second currency contract and the link-mint wait bound.
|
|
202
207
|
*/
|
|
203
208
|
private awaitFreshEnough;
|
|
204
|
-
/** True only for a
|
|
205
|
-
* question so the link path cannot accidentally treat "battery" as "asleep"
|
|
206
|
-
* and stop refreshing a camera that is awake and streaming. */
|
|
209
|
+
/** True only for a battery device that must not be snapshot-refreshed. */
|
|
207
210
|
private isSleepingBatteryDevice;
|
|
208
211
|
/**
|
|
209
212
|
* Resolve a device (+ optional stream, + force) to renderable JPEG bytes for
|
|
@@ -225,8 +228,8 @@ export declare class SnapshotAddon extends BaseAddon<SnapshotAddonConfig> {
|
|
|
225
228
|
*/
|
|
226
229
|
private peekFreshFrame;
|
|
227
230
|
/**
|
|
228
|
-
* The frame at a card-sized width, derived once per
|
|
229
|
-
* per capture.
|
|
231
|
+
* The frame at a card-sized width, derived once per
|
|
232
|
+
* (device, stream, width, state treatment) per capture.
|
|
230
233
|
*
|
|
231
234
|
* A failed resize falls back to the FULL frame — a visible card beats a
|
|
232
235
|
* broken one — but never silently: the card would otherwise keep costing a
|
|
@@ -355,36 +358,26 @@ export declare class SnapshotAddon extends BaseAddon<SnapshotAddonConfig> {
|
|
|
355
358
|
*/
|
|
356
359
|
private deviceStillExists;
|
|
357
360
|
/**
|
|
358
|
-
*
|
|
361
|
+
* Resolve the state that must be visible on a snapshot.
|
|
359
362
|
*
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
*
|
|
363
|
-
* in the UI, so if the operator can see "sleeping" on screen, this
|
|
364
|
-
* sees it too. (Both spec harnesses already model exactly this wiring
|
|
365
|
-
* — like the orphaned doc comment above, it outlived the gate it was
|
|
366
|
-
* built for.)
|
|
363
|
+
* Uses the same two canonical sources as wake-on-play:
|
|
364
|
+
* 1. `deviceManager.getDevice` for the registry's BatteryOperated feature;
|
|
365
|
+
* 2. `deviceState.getCapSlice('battery')` for the durable runtime mirror.
|
|
367
366
|
*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
370
|
-
* battery
|
|
371
|
-
*
|
|
367
|
+
* A valid battery slice is itself positive evidence that the device is
|
|
368
|
+
* battery-operated. That closes the field failure where "Baby monitor" had a
|
|
369
|
+
* sleeping battery slice but a stale persisted feature projection, so the
|
|
370
|
+
* snapshot wrapper classified it as mains and a Viewer thumbnail logged in
|
|
371
|
+
* to the sleeping camera. The reverse is deliberately not guessed: no
|
|
372
|
+
* feature + no valid slice remains a mains/unknown camera and follows the
|
|
373
|
+
* ordinary capture path.
|
|
372
374
|
*
|
|
373
|
-
*
|
|
374
|
-
*
|
|
375
|
+
* Once battery-operated is established, a missing slice fails safe toward
|
|
376
|
+
* `sleeping` through the shared `deriveBatteryPresence` function. This avoids
|
|
377
|
+
* a background wake without inventing an `unreachable` fault.
|
|
375
378
|
*/
|
|
376
|
-
private
|
|
377
|
-
|
|
378
|
-
* The device's three-valued battery presence (D173) — `awake`, `sleeping`,
|
|
379
|
-
* or `unreachable`. Same mirror read as the sleep gate, one derivation
|
|
380
|
-
* (`deriveBatteryPresence`) so this layer cannot disagree with the badge or
|
|
381
|
-
* the stream error about what a camera is doing.
|
|
382
|
-
*
|
|
383
|
-
* A failed read answers `awake`: unknown must never become a fault badge,
|
|
384
|
-
* and "assume awake" is the pre-existing, deliberately conservative failure
|
|
385
|
-
* direction of the gate this replaces.
|
|
386
|
-
*/
|
|
387
|
-
private readBatteryPresence;
|
|
379
|
+
private resolveSnapshotState;
|
|
380
|
+
private isDeviceWaking;
|
|
388
381
|
/**
|
|
389
382
|
* True when at least one of the device's brokers is actively
|
|
390
383
|
* streaming (status === 'streaming'). Used by the battery-cam guard
|
|
@@ -432,13 +425,18 @@ export declare class SnapshotAddon extends BaseAddon<SnapshotAddonConfig> {
|
|
|
432
425
|
private courtesyFrame;
|
|
433
426
|
/** A courtesy frame shaped as the cap's response, or null when unrenderable. */
|
|
434
427
|
private courtesyImage;
|
|
428
|
+
/**
|
|
429
|
+
* Render a state-labelled answer. A cached real frame is the background, not
|
|
430
|
+
* the answer by itself; if it cannot be decoded, fall back to the generated
|
|
431
|
+
* courtesy background rather than leaking an unlabelled stale frame.
|
|
432
|
+
*/
|
|
433
|
+
private stateImage;
|
|
435
434
|
/**
|
|
436
435
|
* Single-trip device lookup against device-manager. Returns the
|
|
437
|
-
* fields the wrapper
|
|
438
|
-
*
|
|
439
|
-
*
|
|
440
|
-
*
|
|
441
|
-
* we're trying to be resilient to).
|
|
436
|
+
* stable registry fields the wrapper consults. Battery classification is
|
|
437
|
+
* completed by `resolveSnapshotState` from this feature flag PLUS the
|
|
438
|
+
* canonical runtime-state mirror, so a stale persisted feature projection
|
|
439
|
+
* cannot authorize a snapshot dial against a known sleeping battery camera.
|
|
442
440
|
*
|
|
443
441
|
* Logged at debug + null return on failure: every call site already
|
|
444
442
|
* has a sensible fallback path (cache hit, conservative default, …),
|
|
@@ -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-BspfS8Q7.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 { V as filesystemBrowseCapability, pt as storageProviderCapability, yt as BaseAddon } from "../../dist-COd223t-.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";
|
|
@@ -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-BspfS8Q7.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
let node_module = require("node:module");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as dataStoreProviderCapability, Bt as parseJsonUnknown, _t as vectorStoreCapability, f as RUNTIME_DEFAULTS, gt as vectorDimFromBase64, j as decodeVectorBase64, kt as asJsonObject, vt as errMsg, w as bareAddonId, yt as BaseAddon } from "../../dist-COd223t-.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { statSync } 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-BspfS8Q7.js");
|
|
7
7
|
let node_crypto = require("node:crypto");
|
|
8
8
|
let node_fs_promises = require("node:fs/promises");
|
|
9
9
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { dt as storageCapability, ft as storageMigrationCapability, g as StorageMigrationJobSchema, h as StorageLocationTypeSchema, lt as settingsStoreCapability, yt as BaseAddon, zt as parseJsonObject } from "../../dist-COd223t-.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import * as fs from "node:fs/promises";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -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-BspfS8Q7.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 { It as hydrateSchema, vt as errMsg, yt as BaseAddon } from "../../dist-COd223t-.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-BspfS8Q7.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 {
|
|
1
|
+
import { X as logDestinationCapability, yt as BaseAddon } from "../../dist-COd223t-.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";
|
|
@@ -38253,6 +38253,12 @@ Object.defineProperty(exports, "bareAddonId", {
|
|
|
38253
38253
|
return bareAddonId;
|
|
38254
38254
|
}
|
|
38255
38255
|
});
|
|
38256
|
+
Object.defineProperty(exports, "batteryCapability", {
|
|
38257
|
+
enumerable: true,
|
|
38258
|
+
get: function() {
|
|
38259
|
+
return batteryCapability;
|
|
38260
|
+
}
|
|
38261
|
+
});
|
|
38256
38262
|
Object.defineProperty(exports, "buildStreamParamsConfigSchema", {
|
|
38257
38263
|
enumerable: true,
|
|
38258
38264
|
get: function() {
|
|
@@ -38025,4 +38025,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
38025
38025
|
return out;
|
|
38026
38026
|
}
|
|
38027
38027
|
//#endregion
|
|
38028
|
-
export {
|
|
38028
|
+
export { metricsProviderCapability as $, dataStoreProviderCapability as A, asNumber as At, extractNestedAddonId as B, parseJsonUnknown as Bt, backupCapability as C, DeviceFeature as Ct, coreBlockAddonId as D, ReadinessTimeoutError as Dt, buildStreamParamsConfigSchema as E, ReadinessRegistry as Et, deviceStatusCapability as F, expandCapMethods as Ft, isSameAddonId as G, EventCategory as Gt, isArrayOutputSchema as H, resolveCapMount as Ht, doorbellCapability as I, hydrateSchema as It, lifecycleJobSchema as J, isVoidInput as K, enumerateInferenceDevices as L, isDeviceConfigCap as Lt, deriveBatteryPresence as M, createEvent as Mt, deviceManagerCapability as N, emitDownForOwnedCaps as Nt, coreBlockIdFromAddonId as O, WELL_KNOWN_TAB_MAP as Ot, deviceStateCapability as P, emitReadiness as Pt, looseSchema as Q, enumerateItemArrayFields as R, nodePin as Rt, authProviderCapability as S, DEVICE_STATUS_METHOD as St, batteryCapability as T, DeviceType as Tt, isCollectionArrayMethod as U, scopeKey as Ut, filesystemBrowseCapability as V, readinessKey as Vt, isObjectInput as W, sleep as Wt, logDestinationCapability as X, localNetworkCapability as Y, logLevelAtMost as Z, UserRecordSchema as _, vectorStoreCapability as _t, CAP_NAMES_WITH_STATUS as a, runtimeStatePolicyFor as at, addonWidgetsCapability as b, DATAPLANE_SECRET_HEADER as bt, CoreBlockSchema as c, scoreRuntimes as ct, METHOD_ACCESS_MAP as d, storageCapability as dt, normalizeUnit as et, RUNTIME_DEFAULTS as f, storageMigrationCapability as ft, StorageMigrationJobSchema as g, vectorDimFromBase64 as gt, StorageLocationTypeSchema as h, userManagementCapability as ht, BatteryStatusSchema as i, procedureAuthKey as it, decodeVectorBase64 as j, asString as jt, coreBlocksCapability as k, asJsonObject as kt, DeclaredDevices as l, settingsStoreCapability as lt, ScopedTokenSchema as m, streamQualityLabel as mt, AlertSchema as n, parseStreamParamsFormPatch as nt, CORE_BLOCKS_ADDON_ID as o, scopesAllowAddon as ot, STREAM_PROFILE_META as p, storageProviderCapability as pt, kebabToCamel as q, ApiKeyRecordSchema as r, platformProbeCapability as rt, CORE_BLOCK_ADDON_PREFIX as s, scopesAllowDeviceCap as st, ALL_CAPABILITY_DEFINITIONS as t, objectInputDeclaresAddonId as tt, DeviceStatusSchema as u, snapshotCapability as ut, addonPagesCapability as v, errMsg as vt, bareAddonId as w, DeviceRole as wt, alertsCapability as x, DEVICE_SETTINGS_CONTRIBUTION_METHODS as xt, addonSettingsCapability as y, BaseAddon as yt, enumerateSchemaFields as z, parseJsonObject 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-BspfS8Q7.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 { At as
|
|
2
|
+
import { At as asNumber, B as extractNestedAddonId, Bt as parseJsonUnknown$1, Dt as ReadinessTimeoutError, Et as ReadinessRegistry, Ft as expandCapMethods, Gt as EventCategory$1, H as isArrayOutputSchema, Ht as resolveCapMount, J as lifecycleJobSchema, K as isVoidInput, Mt as createEvent, Nt as emitDownForOwnedCaps, Q as looseSchema, St as DEVICE_STATUS_METHOD, U as isCollectionArrayMethod, Ut as scopeKey, Vt as readinessKey, W as isObjectInput, Z as logLevelAtMost, bt as DATAPLANE_SECRET_HEADER$1, d as METHOD_ACCESS_MAP, f as RUNTIME_DEFAULTS, it as procedureAuthKey, jt as asString$1, kt as asJsonObject$1, ot as scopesAllowAddon, q as kebabToCamel, st as scopesAllowDeviceCap, t as ALL_CAPABILITY_DEFINITIONS, tt as objectInputDeclaresAddonId, vt as errMsg$1, xt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, y as addonSettingsCapability, zt as parseJsonObject } from "./dist-COd223t-.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";
|