@camstack/addon-provider-reolink 1.2.105 → 1.2.106

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
@@ -29962,8 +29962,27 @@ var PrivacyMaskRegionSchema = object({
29962
29962
  /** Current on-camera privacy state — mask master enable + zones + microphone. */
29963
29963
  var PrivacyMaskStatusSchema = object({
29964
29964
  enabled: boolean(),
29965
- /** Active zones (normalized 0..1). Length ≤ maxRegions. */
29966
- regions: array(PrivacyMaskRegionSchema),
29965
+ /**
29966
+ * Active zones (normalized 0..1). Length ≤ maxRegions.
29967
+ *
29968
+ * `null` means "no answer" — the provider has never reached this camera
29969
+ * (a cold `runtimeState` slice, a battery camera asleep) or the read
29970
+ * failed. A consumer must render it as UNKNOWN and never as "this camera
29971
+ * has no zones": those two look identical to an operator right up to the
29972
+ * moment one of them is acted on, and acting on them differs completely.
29973
+ * The switch group turned an unanswered read into *"nothing is set up for
29974
+ * it to act on"* — an instruction to go and draw a zone that already
29975
+ * exists — and this editor seeded an EMPTY canvas from it, one Save away
29976
+ * from deleting the mask it could not read.
29977
+ *
29978
+ * Empty-and-answered is `[]` and stays a real answer: this camera genuinely
29979
+ * has no zones. The distinction is the same one {@link
29980
+ * PrivacyMaskStatusSchema.shape.audioEnabled} already draws for the
29981
+ * microphone, on the very same payload — both planes come from ONE refresh,
29982
+ * so it was never coherent for one of them to be able to say "unknown"
29983
+ * while the other could not.
29984
+ */
29985
+ regions: array(PrivacyMaskRegionSchema).nullable(),
29967
29986
  /**
29968
29987
  * Is the camera capturing sound right now? Read from the camera, never from
29969
29988
  * a server-side mirror.
@@ -150510,7 +150529,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
150510
150529
  staleRead: "serve-and-revalidate",
150511
150530
  empty: () => ({
150512
150531
  enabled: false,
150513
- regions: [],
150532
+ regions: null,
150514
150533
  audioEnabled: null,
150515
150534
  lastFetchedAt: 0
150516
150535
  })
package/dist/addon.mjs CHANGED
@@ -29957,8 +29957,27 @@ var PrivacyMaskRegionSchema = object({
29957
29957
  /** Current on-camera privacy state — mask master enable + zones + microphone. */
29958
29958
  var PrivacyMaskStatusSchema = object({
29959
29959
  enabled: boolean(),
29960
- /** Active zones (normalized 0..1). Length ≤ maxRegions. */
29961
- regions: array(PrivacyMaskRegionSchema),
29960
+ /**
29961
+ * Active zones (normalized 0..1). Length ≤ maxRegions.
29962
+ *
29963
+ * `null` means "no answer" — the provider has never reached this camera
29964
+ * (a cold `runtimeState` slice, a battery camera asleep) or the read
29965
+ * failed. A consumer must render it as UNKNOWN and never as "this camera
29966
+ * has no zones": those two look identical to an operator right up to the
29967
+ * moment one of them is acted on, and acting on them differs completely.
29968
+ * The switch group turned an unanswered read into *"nothing is set up for
29969
+ * it to act on"* — an instruction to go and draw a zone that already
29970
+ * exists — and this editor seeded an EMPTY canvas from it, one Save away
29971
+ * from deleting the mask it could not read.
29972
+ *
29973
+ * Empty-and-answered is `[]` and stays a real answer: this camera genuinely
29974
+ * has no zones. The distinction is the same one {@link
29975
+ * PrivacyMaskStatusSchema.shape.audioEnabled} already draws for the
29976
+ * microphone, on the very same payload — both planes come from ONE refresh,
29977
+ * so it was never coherent for one of them to be able to say "unknown"
29978
+ * while the other could not.
29979
+ */
29980
+ regions: array(PrivacyMaskRegionSchema).nullable(),
29962
29981
  /**
29963
29982
  * Is the camera capturing sound right now? Read from the camera, never from
29964
29983
  * a server-side mirror.
@@ -150505,7 +150524,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
150505
150524
  staleRead: "serve-and-revalidate",
150506
150525
  empty: () => ({
150507
150526
  enabled: false,
150508
- regions: [],
150527
+ regions: null,
150509
150528
  audioEnabled: null,
150510
150529
  lastFetchedAt: 0
150511
150530
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-reolink",
3
- "version": "1.2.105",
3
+ "version": "1.2.106",
4
4
  "description": "Reolink camera device provider addon for CamStack — native Baichuan protocol",
5
5
  "keywords": [
6
6
  "camstack",