@camstack/addon-provider-amcrest 0.2.19 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/addon.js CHANGED
@@ -19442,6 +19442,39 @@ var snapshotCapability = {
19442
19442
  etag: string().nullable()
19443
19443
  }))),
19444
19444
  /**
19445
+ * The full decision chain for ONE device, for the viewer's debug readout —
19446
+ * the answer to "why does this tile show what it shows" in a single poll:
19447
+ * the battery slice the state was derived from, the resolved state + its
19448
+ * reason, the cached frame's identity/age, whether a wake window is open,
19449
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19450
+ * a debug read must never wake a battery camera.
19451
+ */
19452
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19453
+ /** The battery slice as read, or null when the device has none. */
19454
+ battery: object({
19455
+ sleeping: boolean(),
19456
+ lastUpdated: number(),
19457
+ lastContactAt: number().optional()
19458
+ }).nullable(),
19459
+ /** The resolved snapshot state (what the overlay decision used). */
19460
+ state: object({
19461
+ isBattery: boolean(),
19462
+ reason: _enum([
19463
+ "disabled",
19464
+ "sleeping",
19465
+ "unreachable",
19466
+ "waking"
19467
+ ]).nullable()
19468
+ }),
19469
+ /** The cached frame behind the next paint. */
19470
+ frame: object({
19471
+ capturedAt: number().nullable(),
19472
+ ageMs: number().nullable()
19473
+ }),
19474
+ /** A wake window is currently open (the Waking overlay's source). */
19475
+ waking: boolean()
19476
+ })),
19477
+ /**
19445
19478
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19446
19479
  * that makes those frames current.
19447
19480
  *
@@ -34495,6 +34528,12 @@ Object.freeze({
34495
34528
  addonId: null,
34496
34529
  access: "view"
34497
34530
  },
34531
+ "snapshot.getDebugState": {
34532
+ capName: "snapshot",
34533
+ capScope: "device",
34534
+ addonId: null,
34535
+ access: "view"
34536
+ },
34498
34537
  "snapshot.getSnapshot": {
34499
34538
  capName: "snapshot",
34500
34539
  capScope: "device",
@@ -37092,6 +37131,11 @@ Object.freeze({
37092
37131
  form: "single",
37093
37132
  optional: false
37094
37133
  }],
37134
+ "snapshot.getDebugState": [{
37135
+ name: "deviceId",
37136
+ form: "single",
37137
+ optional: false
37138
+ }],
37095
37139
  "snapshot.getSnapshot": [{
37096
37140
  name: "deviceId",
37097
37141
  form: "single",
package/dist/addon.mjs CHANGED
@@ -19443,6 +19443,39 @@ var snapshotCapability = {
19443
19443
  etag: string().nullable()
19444
19444
  }))),
19445
19445
  /**
19446
+ * The full decision chain for ONE device, for the viewer's debug readout —
19447
+ * the answer to "why does this tile show what it shows" in a single poll:
19448
+ * the battery slice the state was derived from, the resolved state + its
19449
+ * reason, the cached frame's identity/age, whether a wake window is open,
19450
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19451
+ * a debug read must never wake a battery camera.
19452
+ */
19453
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19454
+ /** The battery slice as read, or null when the device has none. */
19455
+ battery: object({
19456
+ sleeping: boolean(),
19457
+ lastUpdated: number(),
19458
+ lastContactAt: number().optional()
19459
+ }).nullable(),
19460
+ /** The resolved snapshot state (what the overlay decision used). */
19461
+ state: object({
19462
+ isBattery: boolean(),
19463
+ reason: _enum([
19464
+ "disabled",
19465
+ "sleeping",
19466
+ "unreachable",
19467
+ "waking"
19468
+ ]).nullable()
19469
+ }),
19470
+ /** The cached frame behind the next paint. */
19471
+ frame: object({
19472
+ capturedAt: number().nullable(),
19473
+ ageMs: number().nullable()
19474
+ }),
19475
+ /** A wake window is currently open (the Waking overlay's source). */
19476
+ waking: boolean()
19477
+ })),
19478
+ /**
19446
19479
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19447
19480
  * that makes those frames current.
19448
19481
  *
@@ -34496,6 +34529,12 @@ Object.freeze({
34496
34529
  addonId: null,
34497
34530
  access: "view"
34498
34531
  },
34532
+ "snapshot.getDebugState": {
34533
+ capName: "snapshot",
34534
+ capScope: "device",
34535
+ addonId: null,
34536
+ access: "view"
34537
+ },
34499
34538
  "snapshot.getSnapshot": {
34500
34539
  capName: "snapshot",
34501
34540
  capScope: "device",
@@ -37093,6 +37132,11 @@ Object.freeze({
37093
37132
  form: "single",
37094
37133
  optional: false
37095
37134
  }],
37135
+ "snapshot.getDebugState": [{
37136
+ name: "deviceId",
37137
+ form: "single",
37138
+ optional: false
37139
+ }],
37096
37140
  "snapshot.getSnapshot": [{
37097
37141
  name: "deviceId",
37098
37142
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-amcrest",
3
- "version": "0.2.19",
3
+ "version": "0.2.20",
4
4
  "description": "Amcrest/Dahua camera device provider addon for CamStack — Dahua CGI over HTTP(S) with digest auth (snapshot, RTSP catalog, PTZ, image/day-night config)",
5
5
  "keywords": [
6
6
  "camstack",