@camstack/addon-tailscale 1.2.82 → 1.2.83

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.
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  enumerable: true
25
25
  }) : target, mod));
26
26
  //#endregion
27
- const require_dist = require("../dist-C0pHeK7c.js");
27
+ const require_dist = require("../dist-Cuor6raQ.js");
28
28
  let node_child_process = require("node:child_process");
29
29
  let node_util = require("node:util");
30
30
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-1FSuCaZr.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-BXwT8V-y.mjs";
2
2
  import { execFile, spawn } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import * as fs from "node:fs";
@@ -27192,8 +27192,27 @@ var PrivacyMaskRegionSchema = object({
27192
27192
  });
27193
27193
  object({
27194
27194
  enabled: boolean(),
27195
- /** Active zones (normalized 0..1). Length ≤ maxRegions. */
27196
- regions: array(PrivacyMaskRegionSchema),
27195
+ /**
27196
+ * Active zones (normalized 0..1). Length ≤ maxRegions.
27197
+ *
27198
+ * `null` means "no answer" — the provider has never reached this camera
27199
+ * (a cold `runtimeState` slice, a battery camera asleep) or the read
27200
+ * failed. A consumer must render it as UNKNOWN and never as "this camera
27201
+ * has no zones": those two look identical to an operator right up to the
27202
+ * moment one of them is acted on, and acting on them differs completely.
27203
+ * The switch group turned an unanswered read into *"nothing is set up for
27204
+ * it to act on"* — an instruction to go and draw a zone that already
27205
+ * exists — and this editor seeded an EMPTY canvas from it, one Save away
27206
+ * from deleting the mask it could not read.
27207
+ *
27208
+ * Empty-and-answered is `[]` and stays a real answer: this camera genuinely
27209
+ * has no zones. The distinction is the same one {@link
27210
+ * PrivacyMaskStatusSchema.shape.audioEnabled} already draws for the
27211
+ * microphone, on the very same payload — both planes come from ONE refresh,
27212
+ * so it was never coherent for one of them to be able to say "unknown"
27213
+ * while the other could not.
27214
+ */
27215
+ regions: array(PrivacyMaskRegionSchema).nullable(),
27197
27216
  /**
27198
27217
  * Is the camera capturing sound right now? Read from the camera, never from
27199
27218
  * a server-side mirror.
@@ -27192,8 +27192,27 @@ var PrivacyMaskRegionSchema = object({
27192
27192
  });
27193
27193
  object({
27194
27194
  enabled: boolean(),
27195
- /** Active zones (normalized 0..1). Length ≤ maxRegions. */
27196
- regions: array(PrivacyMaskRegionSchema),
27195
+ /**
27196
+ * Active zones (normalized 0..1). Length ≤ maxRegions.
27197
+ *
27198
+ * `null` means "no answer" — the provider has never reached this camera
27199
+ * (a cold `runtimeState` slice, a battery camera asleep) or the read
27200
+ * failed. A consumer must render it as UNKNOWN and never as "this camera
27201
+ * has no zones": those two look identical to an operator right up to the
27202
+ * moment one of them is acted on, and acting on them differs completely.
27203
+ * The switch group turned an unanswered read into *"nothing is set up for
27204
+ * it to act on"* — an instruction to go and draw a zone that already
27205
+ * exists — and this editor seeded an EMPTY canvas from it, one Save away
27206
+ * from deleting the mask it could not read.
27207
+ *
27208
+ * Empty-and-answered is `[]` and stays a real answer: this camera genuinely
27209
+ * has no zones. The distinction is the same one {@link
27210
+ * PrivacyMaskStatusSchema.shape.audioEnabled} already draws for the
27211
+ * microphone, on the very same payload — both planes come from ONE refresh,
27212
+ * so it was never coherent for one of them to be able to say "unknown"
27213
+ * while the other could not.
27214
+ */
27215
+ regions: array(PrivacyMaskRegionSchema).nullable(),
27197
27216
  /**
27198
27217
  * Is the camera capturing sound right now? Read from the camera, never from
27199
27218
  * a server-side mirror.
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-C0pHeK7c.js");
5
+ const require_dist = require("../dist-Cuor6raQ.js");
6
6
  let node_crypto = require("node:crypto");
7
7
  let node_child_process = require("node:child_process");
8
8
  //#region src/ingress/tailscale-cli.ts
@@ -1,4 +1,4 @@
1
- import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-1FSuCaZr.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-BXwT8V-y.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-tailscale",
3
- "version": "1.2.82",
3
+ "version": "1.2.83",
4
4
  "description": "Tailscale bundle for CamStack — joins the host to a tailnet (client) and exposes the hub via Serve/Funnel (ingress). Multi-entry npm package shipping 2 addons under a single bundle.",
5
5
  "keywords": [
6
6
  "camstack",