@camstack/addon-provider-velux 0.2.18 → 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
@@ -19402,7 +19402,31 @@ DeviceType.Camera, method(object({
19402
19402
  lastCapturedAt: number().nullable(),
19403
19403
  cacheAgeMs: number().nullable(),
19404
19404
  etag: string().nullable()
19405
- }))), systemMethod(object({
19405
+ }))), systemMethod(object({ deviceId: number() }), object({
19406
+ /** The battery slice as read, or null when the device has none. */
19407
+ battery: object({
19408
+ sleeping: boolean(),
19409
+ lastUpdated: number(),
19410
+ lastContactAt: number().optional()
19411
+ }).nullable(),
19412
+ /** The resolved snapshot state (what the overlay decision used). */
19413
+ state: object({
19414
+ isBattery: boolean(),
19415
+ reason: _enum([
19416
+ "disabled",
19417
+ "sleeping",
19418
+ "unreachable",
19419
+ "waking"
19420
+ ]).nullable()
19421
+ }),
19422
+ /** The cached frame behind the next paint. */
19423
+ frame: object({
19424
+ capturedAt: number().nullable(),
19425
+ ageMs: number().nullable()
19426
+ }),
19427
+ /** A wake window is currently open (the Waking overlay's source). */
19428
+ waking: boolean()
19429
+ })), systemMethod(object({
19406
19430
  /** The tiles a surface is actually rendering. One entry per (device,
19407
19431
  * width) the caller will paint — the width is snapped to the server's
19408
19432
  * ladder and becomes part of the link's SIGNED identity. */
@@ -19441,7 +19465,14 @@ targets: array(object({
19441
19465
  "sleeping",
19442
19466
  "unreachable",
19443
19467
  "waking"
19444
- ]).nullable()
19468
+ ]).nullable(),
19469
+ /** A battery camera (whatever its current state). An AWAKE battery
19470
+ * camera is deliberately NOT recaptured on the poll cadence — every
19471
+ * capture is a camera hit that would keep it out of sleep — so its
19472
+ * cached frame legitimately ages past the currency ceiling while
19473
+ * nothing is streaming. A surface must keep painting it (a fresh
19474
+ * frame is captured at each wake), not blank to "unavailable". */
19475
+ battery: boolean()
19445
19476
  })));
19446
19477
  /**
19447
19478
  * `sso-bridge` — internal hub-only cap that lets SSO-style auth
@@ -33990,6 +34021,12 @@ Object.freeze({
33990
34021
  addonId: null,
33991
34022
  access: "view"
33992
34023
  },
34024
+ "snapshot.getDebugState": {
34025
+ capName: "snapshot",
34026
+ capScope: "device",
34027
+ addonId: null,
34028
+ access: "view"
34029
+ },
33993
34030
  "snapshot.getSnapshot": {
33994
34031
  capName: "snapshot",
33995
34032
  capScope: "device",
@@ -36587,6 +36624,11 @@ Object.freeze({
36587
36624
  form: "single",
36588
36625
  optional: false
36589
36626
  }],
36627
+ "snapshot.getDebugState": [{
36628
+ name: "deviceId",
36629
+ form: "single",
36630
+ optional: false
36631
+ }],
36590
36632
  "snapshot.getSnapshot": [{
36591
36633
  name: "deviceId",
36592
36634
  form: "single",
package/dist/addon.mjs CHANGED
@@ -19401,7 +19401,31 @@ DeviceType.Camera, method(object({
19401
19401
  lastCapturedAt: number().nullable(),
19402
19402
  cacheAgeMs: number().nullable(),
19403
19403
  etag: string().nullable()
19404
- }))), systemMethod(object({
19404
+ }))), systemMethod(object({ deviceId: number() }), object({
19405
+ /** The battery slice as read, or null when the device has none. */
19406
+ battery: object({
19407
+ sleeping: boolean(),
19408
+ lastUpdated: number(),
19409
+ lastContactAt: number().optional()
19410
+ }).nullable(),
19411
+ /** The resolved snapshot state (what the overlay decision used). */
19412
+ state: object({
19413
+ isBattery: boolean(),
19414
+ reason: _enum([
19415
+ "disabled",
19416
+ "sleeping",
19417
+ "unreachable",
19418
+ "waking"
19419
+ ]).nullable()
19420
+ }),
19421
+ /** The cached frame behind the next paint. */
19422
+ frame: object({
19423
+ capturedAt: number().nullable(),
19424
+ ageMs: number().nullable()
19425
+ }),
19426
+ /** A wake window is currently open (the Waking overlay's source). */
19427
+ waking: boolean()
19428
+ })), systemMethod(object({
19405
19429
  /** The tiles a surface is actually rendering. One entry per (device,
19406
19430
  * width) the caller will paint — the width is snapped to the server's
19407
19431
  * ladder and becomes part of the link's SIGNED identity. */
@@ -19440,7 +19464,14 @@ targets: array(object({
19440
19464
  "sleeping",
19441
19465
  "unreachable",
19442
19466
  "waking"
19443
- ]).nullable()
19467
+ ]).nullable(),
19468
+ /** A battery camera (whatever its current state). An AWAKE battery
19469
+ * camera is deliberately NOT recaptured on the poll cadence — every
19470
+ * capture is a camera hit that would keep it out of sleep — so its
19471
+ * cached frame legitimately ages past the currency ceiling while
19472
+ * nothing is streaming. A surface must keep painting it (a fresh
19473
+ * frame is captured at each wake), not blank to "unavailable". */
19474
+ battery: boolean()
19444
19475
  })));
19445
19476
  /**
19446
19477
  * `sso-bridge` — internal hub-only cap that lets SSO-style auth
@@ -33989,6 +34020,12 @@ Object.freeze({
33989
34020
  addonId: null,
33990
34021
  access: "view"
33991
34022
  },
34023
+ "snapshot.getDebugState": {
34024
+ capName: "snapshot",
34025
+ capScope: "device",
34026
+ addonId: null,
34027
+ access: "view"
34028
+ },
33992
34029
  "snapshot.getSnapshot": {
33993
34030
  capName: "snapshot",
33994
34031
  capScope: "device",
@@ -36586,6 +36623,11 @@ Object.freeze({
36586
36623
  form: "single",
36587
36624
  optional: false
36588
36625
  }],
36626
+ "snapshot.getDebugState": [{
36627
+ name: "deviceId",
36628
+ form: "single",
36629
+ optional: false
36630
+ }],
36589
36631
  "snapshot.getSnapshot": [{
36590
36632
  name: "deviceId",
36591
36633
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-velux",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
4
4
  "description": "Velux KLF-200 device-provider addon for CamStack — local-gateway window + shutter covers (positional, no tilt)",
5
5
  "keywords": [
6
6
  "camstack",