@camstack/addon-provider-wyze 0.2.17 → 0.2.18

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
@@ -19497,6 +19497,39 @@ var snapshotCapability = {
19497
19497
  etag: string().nullable()
19498
19498
  }))),
19499
19499
  /**
19500
+ * The full decision chain for ONE device, for the viewer's debug readout —
19501
+ * the answer to "why does this tile show what it shows" in a single poll:
19502
+ * the battery slice the state was derived from, the resolved state + its
19503
+ * reason, the cached frame's identity/age, whether a wake window is open,
19504
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19505
+ * a debug read must never wake a battery camera.
19506
+ */
19507
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19508
+ /** The battery slice as read, or null when the device has none. */
19509
+ battery: object({
19510
+ sleeping: boolean(),
19511
+ lastUpdated: number(),
19512
+ lastContactAt: number().optional()
19513
+ }).nullable(),
19514
+ /** The resolved snapshot state (what the overlay decision used). */
19515
+ state: object({
19516
+ isBattery: boolean(),
19517
+ reason: _enum([
19518
+ "disabled",
19519
+ "sleeping",
19520
+ "unreachable",
19521
+ "waking"
19522
+ ]).nullable()
19523
+ }),
19524
+ /** The cached frame behind the next paint. */
19525
+ frame: object({
19526
+ capturedAt: number().nullable(),
19527
+ ageMs: number().nullable()
19528
+ }),
19529
+ /** A wake window is currently open (the Waking overlay's source). */
19530
+ waking: boolean()
19531
+ })),
19532
+ /**
19500
19533
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19501
19534
  * that makes those frames current.
19502
19535
  *
@@ -34133,6 +34166,12 @@ Object.freeze({
34133
34166
  addonId: null,
34134
34167
  access: "view"
34135
34168
  },
34169
+ "snapshot.getDebugState": {
34170
+ capName: "snapshot",
34171
+ capScope: "device",
34172
+ addonId: null,
34173
+ access: "view"
34174
+ },
34136
34175
  "snapshot.getSnapshot": {
34137
34176
  capName: "snapshot",
34138
34177
  capScope: "device",
@@ -36730,6 +36769,11 @@ Object.freeze({
36730
36769
  form: "single",
36731
36770
  optional: false
36732
36771
  }],
36772
+ "snapshot.getDebugState": [{
36773
+ name: "deviceId",
36774
+ form: "single",
36775
+ optional: false
36776
+ }],
36733
36777
  "snapshot.getSnapshot": [{
36734
36778
  name: "deviceId",
36735
36779
  form: "single",
package/dist/addon.mjs CHANGED
@@ -19476,6 +19476,39 @@ var snapshotCapability = {
19476
19476
  etag: string().nullable()
19477
19477
  }))),
19478
19478
  /**
19479
+ * The full decision chain for ONE device, for the viewer's debug readout —
19480
+ * the answer to "why does this tile show what it shows" in a single poll:
19481
+ * the battery slice the state was derived from, the resolved state + its
19482
+ * reason, the cached frame's identity/age, whether a wake window is open,
19483
+ * and whether a fresh capture is in flight. Cache-only and capture-free:
19484
+ * a debug read must never wake a battery camera.
19485
+ */
19486
+ getDebugState: systemMethod(object({ deviceId: number() }), object({
19487
+ /** The battery slice as read, or null when the device has none. */
19488
+ battery: object({
19489
+ sleeping: boolean(),
19490
+ lastUpdated: number(),
19491
+ lastContactAt: number().optional()
19492
+ }).nullable(),
19493
+ /** The resolved snapshot state (what the overlay decision used). */
19494
+ state: object({
19495
+ isBattery: boolean(),
19496
+ reason: _enum([
19497
+ "disabled",
19498
+ "sleeping",
19499
+ "unreachable",
19500
+ "waking"
19501
+ ]).nullable()
19502
+ }),
19503
+ /** The cached frame behind the next paint. */
19504
+ frame: object({
19505
+ capturedAt: number().nullable(),
19506
+ ageMs: number().nullable()
19507
+ }),
19508
+ /** A wake window is currently open (the Waking overlay's source). */
19509
+ waking: boolean()
19510
+ })),
19511
+ /**
19479
19512
  * Signed, expiring links to a CLIENT-SIZED frame — and the demand signal
19480
19513
  * that makes those frames current.
19481
19514
  *
@@ -34112,6 +34145,12 @@ Object.freeze({
34112
34145
  addonId: null,
34113
34146
  access: "view"
34114
34147
  },
34148
+ "snapshot.getDebugState": {
34149
+ capName: "snapshot",
34150
+ capScope: "device",
34151
+ addonId: null,
34152
+ access: "view"
34153
+ },
34115
34154
  "snapshot.getSnapshot": {
34116
34155
  capName: "snapshot",
34117
34156
  capScope: "device",
@@ -36709,6 +36748,11 @@ Object.freeze({
36709
36748
  form: "single",
36710
36749
  optional: false
36711
36750
  }],
36751
+ "snapshot.getDebugState": [{
36752
+ name: "deviceId",
36753
+ form: "single",
36754
+ optional: false
36755
+ }],
36712
36756
  "snapshot.getSnapshot": [{
36713
36757
  name: "deviceId",
36714
36758
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-wyze",
3
- "version": "0.2.17",
3
+ "version": "0.2.18",
4
4
  "description": "Wyze camera device-provider addon for CamStack — wraps the @apocaliss92/wyze-bridge-js P2P/DTLS client, feeding the stream-broker via the pull-rfc4571 lazy-publish path (a structural twin of addon-provider-reolink)",
5
5
  "keywords": [
6
6
  "camstack",