@camstack/addon-tailscale 1.2.69 → 1.2.70

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-DusCdQeu.js");
27
+ const require_dist = require("../dist-BoE-0P-g.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-DzOJ1z3l.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-BI0_HzJ1.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";
@@ -1,4 +1,4 @@
1
- //#region ../types/dist/event-category-BZL-fdNj.mjs
1
+ //#region ../types/dist/event-category-zAv7pMUz.mjs
2
2
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
3
3
  EventCategory["SystemBoot"] = "system.boot";
4
4
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -370,6 +370,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
370
370
  */
371
371
  EventCategory["BatteryOnStatusChanged"] = "battery.onStatusChanged";
372
372
  /**
373
+ * Cap event fired by every device that registers the `network-link`
374
+ * capability. Mirrors the cap definition's `onStatusChanged`. Carries
375
+ * `{ deviceId, status: NetworkLinkStatus }` — a link switch or a signal
376
+ * reading that moved.
377
+ */
378
+ EventCategory["NetworkLinkOnStatusChanged"] = "network-link.onStatusChanged";
379
+ /**
373
380
  * Emitted by the battery cap provider WHEN `wakeForStream` enters the
374
381
  * "wake in progress" window — between the Baichuan wake-up issue and
375
382
  * the camera's first dialed-back RTP packet. The stream-broker
@@ -23215,6 +23222,39 @@ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, meth
23215
23222
  deviceId: number(),
23216
23223
  status: BatteryStatusSchema
23217
23224
  });
23225
+ /**
23226
+ * Network-link snapshot. Same shape for every provider (a Reolink wifi
23227
+ * camera, a Home Assistant device with a signal-strength sensor, a Tapo
23228
+ * plug): one slice under `device.runtimeState['network-link']`, one badge,
23229
+ * one Home Assistant projection.
23230
+ */
23231
+ var NetworkLinkStatusSchema = object({
23232
+ /** The link the device is on. `'unknown'` = not read yet, not "no link". */
23233
+ type: _enum([
23234
+ "wifi",
23235
+ "ethernet",
23236
+ "cellular",
23237
+ "unknown"
23238
+ ]),
23239
+ /**
23240
+ * Link quality, 0..100 inclusive, normalised by the provider from whatever
23241
+ * the firmware reports (bars, RSSI, a vendor scale). **`null` means NOT
23242
+ * KNOWN or NOT APPLICABLE** — a wired link has no signal, and a wireless
23243
+ * one whose reading has not landed must not be drawn at 0 %. Consumers
23244
+ * SKIP a null rather than coerce it.
23245
+ */
23246
+ signalPercent: number().min(0).max(100).nullable(),
23247
+ /** Raw received signal strength in dBm, when the firmware reports one. */
23248
+ rssiDbm: number().optional(),
23249
+ /** Network name of a wireless link, when the firmware reports it. */
23250
+ ssid: string().optional(),
23251
+ /** Ms epoch of the last observation. Lets consumers reason about freshness. */
23252
+ lastUpdated: number()
23253
+ });
23254
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.Light, DeviceType.Lock, DeviceType.Siren, object({
23255
+ deviceId: number(),
23256
+ status: NetworkLinkStatusSchema
23257
+ });
23218
23258
  object({
23219
23259
  on: boolean(),
23220
23260
  /** Ms epoch of the last transition. 0 if never observed. */
@@ -1,4 +1,4 @@
1
- //#region ../types/dist/event-category-BZL-fdNj.mjs
1
+ //#region ../types/dist/event-category-zAv7pMUz.mjs
2
2
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
3
3
  EventCategory["SystemBoot"] = "system.boot";
4
4
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -370,6 +370,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
370
370
  */
371
371
  EventCategory["BatteryOnStatusChanged"] = "battery.onStatusChanged";
372
372
  /**
373
+ * Cap event fired by every device that registers the `network-link`
374
+ * capability. Mirrors the cap definition's `onStatusChanged`. Carries
375
+ * `{ deviceId, status: NetworkLinkStatus }` — a link switch or a signal
376
+ * reading that moved.
377
+ */
378
+ EventCategory["NetworkLinkOnStatusChanged"] = "network-link.onStatusChanged";
379
+ /**
373
380
  * Emitted by the battery cap provider WHEN `wakeForStream` enters the
374
381
  * "wake in progress" window — between the Baichuan wake-up issue and
375
382
  * the camera's first dialed-back RTP packet. The stream-broker
@@ -23215,6 +23222,39 @@ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, meth
23215
23222
  deviceId: number(),
23216
23223
  status: BatteryStatusSchema
23217
23224
  });
23225
+ /**
23226
+ * Network-link snapshot. Same shape for every provider (a Reolink wifi
23227
+ * camera, a Home Assistant device with a signal-strength sensor, a Tapo
23228
+ * plug): one slice under `device.runtimeState['network-link']`, one badge,
23229
+ * one Home Assistant projection.
23230
+ */
23231
+ var NetworkLinkStatusSchema = object({
23232
+ /** The link the device is on. `'unknown'` = not read yet, not "no link". */
23233
+ type: _enum([
23234
+ "wifi",
23235
+ "ethernet",
23236
+ "cellular",
23237
+ "unknown"
23238
+ ]),
23239
+ /**
23240
+ * Link quality, 0..100 inclusive, normalised by the provider from whatever
23241
+ * the firmware reports (bars, RSSI, a vendor scale). **`null` means NOT
23242
+ * KNOWN or NOT APPLICABLE** — a wired link has no signal, and a wireless
23243
+ * one whose reading has not landed must not be drawn at 0 %. Consumers
23244
+ * SKIP a null rather than coerce it.
23245
+ */
23246
+ signalPercent: number().min(0).max(100).nullable(),
23247
+ /** Raw received signal strength in dBm, when the firmware reports one. */
23248
+ rssiDbm: number().optional(),
23249
+ /** Network name of a wireless link, when the firmware reports it. */
23250
+ ssid: string().optional(),
23251
+ /** Ms epoch of the last observation. Lets consumers reason about freshness. */
23252
+ lastUpdated: number()
23253
+ });
23254
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.Light, DeviceType.Lock, DeviceType.Siren, object({
23255
+ deviceId: number(),
23256
+ status: NetworkLinkStatusSchema
23257
+ });
23218
23258
  object({
23219
23259
  on: boolean(),
23220
23260
  /** Ms epoch of the last transition. 0 if never observed. */
@@ -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-DusCdQeu.js");
5
+ const require_dist = require("../dist-BoE-0P-g.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-DzOJ1z3l.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-BI0_HzJ1.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.69",
3
+ "version": "1.2.70",
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",