@camstack/addon-provider-reolink 1.2.37 → 1.2.39

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
@@ -19675,6 +19675,39 @@ var snapshotCapability = {
19675
19675
  etag: string().nullable()
19676
19676
  }))),
19677
19677
  /**
19678
+ * The full decision chain for ONE device, for the viewer's debug readout —
19679
+ * the answer to "why does this tile show what it shows" in a single poll:
19680
+ * the battery slice the state was derived from, the resolved state + its
19681
+ * reason, the cached frame's identity/age, whether a wake window is open,
19682
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19683
+ * a debug read must never wake a battery camera.
19684
+ */
19685
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19686
+ /** The battery slice as read, or null when the device has none. */
19687
+ battery: object({
19688
+ sleeping: boolean(),
19689
+ lastUpdated: number(),
19690
+ lastContactAt: number().optional()
19691
+ }).nullable(),
19692
+ /** The resolved snapshot state (what the overlay decision used). */
19693
+ state: object({
19694
+ isBattery: boolean(),
19695
+ reason: _enum([
19696
+ "disabled",
19697
+ "sleeping",
19698
+ "unreachable",
19699
+ "waking"
19700
+ ]).nullable()
19701
+ }),
19702
+ /** The cached frame behind the next paint. */
19703
+ frame: object({
19704
+ capturedAt: number().nullable(),
19705
+ ageMs: number().nullable()
19706
+ }),
19707
+ /** A wake window is currently open (the Waking overlay's source). */
19708
+ waking: boolean()
19709
+ })),
19710
+ /**
19678
19711
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19679
19712
  * that makes those frames current.
19680
19713
  *
@@ -19756,7 +19789,14 @@ targets: array(object({
19756
19789
  "sleeping",
19757
19790
  "unreachable",
19758
19791
  "waking"
19759
- ]).nullable()
19792
+ ]).nullable(),
19793
+ /** A battery camera (whatever its current state). An AWAKE battery
19794
+ * camera is deliberately NOT recaptured on the poll cadence — every
19795
+ * capture is a camera hit that would keep it out of sleep — so its
19796
+ * cached frame legitimately ages past the currency ceiling while
19797
+ * nothing is streaming. A surface must keep painting it (a fresh
19798
+ * frame is captured at each wake), not blank to "unavailable". */
19799
+ battery: boolean()
19760
19800
  })))
19761
19801
  },
19762
19802
  status: {
@@ -34676,6 +34716,12 @@ Object.freeze({
34676
34716
  addonId: null,
34677
34717
  access: "view"
34678
34718
  },
34719
+ "snapshot.getDebugState": {
34720
+ capName: "snapshot",
34721
+ capScope: "device",
34722
+ addonId: null,
34723
+ access: "view"
34724
+ },
34679
34725
  "snapshot.getSnapshot": {
34680
34726
  capName: "snapshot",
34681
34727
  capScope: "device",
@@ -37273,6 +37319,11 @@ Object.freeze({
37273
37319
  form: "single",
37274
37320
  optional: false
37275
37321
  }],
37322
+ "snapshot.getDebugState": [{
37323
+ name: "deviceId",
37324
+ form: "single",
37325
+ optional: false
37326
+ }],
37276
37327
  "snapshot.getSnapshot": [{
37277
37328
  name: "deviceId",
37278
37329
  form: "single",
package/dist/addon.mjs CHANGED
@@ -19670,6 +19670,39 @@ var snapshotCapability = {
19670
19670
  etag: string().nullable()
19671
19671
  }))),
19672
19672
  /**
19673
+ * The full decision chain for ONE device, for the viewer's debug readout —
19674
+ * the answer to "why does this tile show what it shows" in a single poll:
19675
+ * the battery slice the state was derived from, the resolved state + its
19676
+ * reason, the cached frame's identity/age, whether a wake window is open,
19677
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19678
+ * a debug read must never wake a battery camera.
19679
+ */
19680
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19681
+ /** The battery slice as read, or null when the device has none. */
19682
+ battery: object({
19683
+ sleeping: boolean(),
19684
+ lastUpdated: number(),
19685
+ lastContactAt: number().optional()
19686
+ }).nullable(),
19687
+ /** The resolved snapshot state (what the overlay decision used). */
19688
+ state: object({
19689
+ isBattery: boolean(),
19690
+ reason: _enum([
19691
+ "disabled",
19692
+ "sleeping",
19693
+ "unreachable",
19694
+ "waking"
19695
+ ]).nullable()
19696
+ }),
19697
+ /** The cached frame behind the next paint. */
19698
+ frame: object({
19699
+ capturedAt: number().nullable(),
19700
+ ageMs: number().nullable()
19701
+ }),
19702
+ /** A wake window is currently open (the Waking overlay's source). */
19703
+ waking: boolean()
19704
+ })),
19705
+ /**
19673
19706
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19674
19707
  * that makes those frames current.
19675
19708
  *
@@ -19751,7 +19784,14 @@ targets: array(object({
19751
19784
  "sleeping",
19752
19785
  "unreachable",
19753
19786
  "waking"
19754
- ]).nullable()
19787
+ ]).nullable(),
19788
+ /** A battery camera (whatever its current state). An AWAKE battery
19789
+ * camera is deliberately NOT recaptured on the poll cadence — every
19790
+ * capture is a camera hit that would keep it out of sleep — so its
19791
+ * cached frame legitimately ages past the currency ceiling while
19792
+ * nothing is streaming. A surface must keep painting it (a fresh
19793
+ * frame is captured at each wake), not blank to "unavailable". */
19794
+ battery: boolean()
19755
19795
  })))
19756
19796
  },
19757
19797
  status: {
@@ -34671,6 +34711,12 @@ Object.freeze({
34671
34711
  addonId: null,
34672
34712
  access: "view"
34673
34713
  },
34714
+ "snapshot.getDebugState": {
34715
+ capName: "snapshot",
34716
+ capScope: "device",
34717
+ addonId: null,
34718
+ access: "view"
34719
+ },
34674
34720
  "snapshot.getSnapshot": {
34675
34721
  capName: "snapshot",
34676
34722
  capScope: "device",
@@ -37268,6 +37314,11 @@ Object.freeze({
37268
37314
  form: "single",
37269
37315
  optional: false
37270
37316
  }],
37317
+ "snapshot.getDebugState": [{
37318
+ name: "deviceId",
37319
+ form: "single",
37320
+ optional: false
37321
+ }],
37271
37322
  "snapshot.getSnapshot": [{
37272
37323
  name: "deviceId",
37273
37324
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-reolink",
3
- "version": "1.2.37",
3
+ "version": "1.2.39",
4
4
  "description": "Reolink camera device provider addon for CamStack — native Baichuan protocol",
5
5
  "keywords": [
6
6
  "camstack",