@camstack/addon-provider-rtsp 1.2.18 → 1.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
@@ -19505,6 +19505,39 @@ var snapshotCapability = {
19505
19505
  etag: string().nullable()
19506
19506
  }))),
19507
19507
  /**
19508
+ * The full decision chain for ONE device, for the viewer's debug readout —
19509
+ * the answer to "why does this tile show what it shows" in a single poll:
19510
+ * the battery slice the state was derived from, the resolved state + its
19511
+ * reason, the cached frame's identity/age, whether a wake window is open,
19512
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19513
+ * a debug read must never wake a battery camera.
19514
+ */
19515
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19516
+ /** The battery slice as read, or null when the device has none. */
19517
+ battery: object({
19518
+ sleeping: boolean(),
19519
+ lastUpdated: number(),
19520
+ lastContactAt: number().optional()
19521
+ }).nullable(),
19522
+ /** The resolved snapshot state (what the overlay decision used). */
19523
+ state: object({
19524
+ isBattery: boolean(),
19525
+ reason: _enum([
19526
+ "disabled",
19527
+ "sleeping",
19528
+ "unreachable",
19529
+ "waking"
19530
+ ]).nullable()
19531
+ }),
19532
+ /** The cached frame behind the next paint. */
19533
+ frame: object({
19534
+ capturedAt: number().nullable(),
19535
+ ageMs: number().nullable()
19536
+ }),
19537
+ /** A wake window is currently open (the Waking overlay's source). */
19538
+ waking: boolean()
19539
+ })),
19540
+ /**
19508
19541
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19509
19542
  * that makes those frames current.
19510
19543
  *
@@ -19586,7 +19619,14 @@ targets: array(object({
19586
19619
  "sleeping",
19587
19620
  "unreachable",
19588
19621
  "waking"
19589
- ]).nullable()
19622
+ ]).nullable(),
19623
+ /** A battery camera (whatever its current state). An AWAKE battery
19624
+ * camera is deliberately NOT recaptured on the poll cadence — every
19625
+ * capture is a camera hit that would keep it out of sleep — so its
19626
+ * cached frame legitimately ages past the currency ceiling while
19627
+ * nothing is streaming. A surface must keep painting it (a fresh
19628
+ * frame is captured at each wake), not blank to "unavailable". */
19629
+ battery: boolean()
19590
19630
  })))
19591
19631
  },
19592
19632
  status: {
@@ -34215,6 +34255,12 @@ Object.freeze({
34215
34255
  addonId: null,
34216
34256
  access: "view"
34217
34257
  },
34258
+ "snapshot.getDebugState": {
34259
+ capName: "snapshot",
34260
+ capScope: "device",
34261
+ addonId: null,
34262
+ access: "view"
34263
+ },
34218
34264
  "snapshot.getSnapshot": {
34219
34265
  capName: "snapshot",
34220
34266
  capScope: "device",
@@ -36812,6 +36858,11 @@ Object.freeze({
36812
36858
  form: "single",
36813
36859
  optional: false
36814
36860
  }],
36861
+ "snapshot.getDebugState": [{
36862
+ name: "deviceId",
36863
+ form: "single",
36864
+ optional: false
36865
+ }],
36815
36866
  "snapshot.getSnapshot": [{
36816
36867
  name: "deviceId",
36817
36868
  form: "single",
package/dist/addon.mjs CHANGED
@@ -19481,6 +19481,39 @@ var snapshotCapability = {
19481
19481
  etag: string().nullable()
19482
19482
  }))),
19483
19483
  /**
19484
+ * The full decision chain for ONE device, for the viewer's debug readout —
19485
+ * the answer to "why does this tile show what it shows" in a single poll:
19486
+ * the battery slice the state was derived from, the resolved state + its
19487
+ * reason, the cached frame's identity/age, whether a wake window is open,
19488
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19489
+ * a debug read must never wake a battery camera.
19490
+ */
19491
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19492
+ /** The battery slice as read, or null when the device has none. */
19493
+ battery: object({
19494
+ sleeping: boolean(),
19495
+ lastUpdated: number(),
19496
+ lastContactAt: number().optional()
19497
+ }).nullable(),
19498
+ /** The resolved snapshot state (what the overlay decision used). */
19499
+ state: object({
19500
+ isBattery: boolean(),
19501
+ reason: _enum([
19502
+ "disabled",
19503
+ "sleeping",
19504
+ "unreachable",
19505
+ "waking"
19506
+ ]).nullable()
19507
+ }),
19508
+ /** The cached frame behind the next paint. */
19509
+ frame: object({
19510
+ capturedAt: number().nullable(),
19511
+ ageMs: number().nullable()
19512
+ }),
19513
+ /** A wake window is currently open (the Waking overlay's source). */
19514
+ waking: boolean()
19515
+ })),
19516
+ /**
19484
19517
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19485
19518
  * that makes those frames current.
19486
19519
  *
@@ -19562,7 +19595,14 @@ targets: array(object({
19562
19595
  "sleeping",
19563
19596
  "unreachable",
19564
19597
  "waking"
19565
- ]).nullable()
19598
+ ]).nullable(),
19599
+ /** A battery camera (whatever its current state). An AWAKE battery
19600
+ * camera is deliberately NOT recaptured on the poll cadence — every
19601
+ * capture is a camera hit that would keep it out of sleep — so its
19602
+ * cached frame legitimately ages past the currency ceiling while
19603
+ * nothing is streaming. A surface must keep painting it (a fresh
19604
+ * frame is captured at each wake), not blank to "unavailable". */
19605
+ battery: boolean()
19566
19606
  })))
19567
19607
  },
19568
19608
  status: {
@@ -34191,6 +34231,12 @@ Object.freeze({
34191
34231
  addonId: null,
34192
34232
  access: "view"
34193
34233
  },
34234
+ "snapshot.getDebugState": {
34235
+ capName: "snapshot",
34236
+ capScope: "device",
34237
+ addonId: null,
34238
+ access: "view"
34239
+ },
34194
34240
  "snapshot.getSnapshot": {
34195
34241
  capName: "snapshot",
34196
34242
  capScope: "device",
@@ -36788,6 +36834,11 @@ Object.freeze({
36788
36834
  form: "single",
36789
36835
  optional: false
36790
36836
  }],
36837
+ "snapshot.getDebugState": [{
36838
+ name: "deviceId",
36839
+ form: "single",
36840
+ optional: false
36841
+ }],
36791
36842
  "snapshot.getSnapshot": [{
36792
36843
  name: "deviceId",
36793
36844
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-rtsp",
3
- "version": "1.2.18",
3
+ "version": "1.2.20",
4
4
  "description": "Generic RTSP camera device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",