@camstack/addon-notifiers 1.2.73 → 1.2.74

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
@@ -29,7 +29,7 @@ let node_fs = require("node:fs");
29
29
  let node_path = require("node:path");
30
30
  node_path = __toESM(node_path);
31
31
  let node_url = require("node:url");
32
- //#region ../types/dist/event-category-BZL-fdNj.mjs
32
+ //#region ../types/dist/event-category-zAv7pMUz.mjs
33
33
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
34
34
  EventCategory["SystemBoot"] = "system.boot";
35
35
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -401,6 +401,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
401
401
  */
402
402
  EventCategory["BatteryOnStatusChanged"] = "battery.onStatusChanged";
403
403
  /**
404
+ * Cap event fired by every device that registers the `network-link`
405
+ * capability. Mirrors the cap definition's `onStatusChanged`. Carries
406
+ * `{ deviceId, status: NetworkLinkStatus }` — a link switch or a signal
407
+ * reading that moved.
408
+ */
409
+ EventCategory["NetworkLinkOnStatusChanged"] = "network-link.onStatusChanged";
410
+ /**
404
411
  * Emitted by the battery cap provider WHEN `wakeForStream` enters the
405
412
  * "wake in progress" window — between the Baichuan wake-up issue and
406
413
  * the camera's first dialed-back RTP packet. The stream-broker
@@ -23369,6 +23376,39 @@ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, meth
23369
23376
  deviceId: number(),
23370
23377
  status: BatteryStatusSchema
23371
23378
  });
23379
+ /**
23380
+ * Network-link snapshot. Same shape for every provider (a Reolink wifi
23381
+ * camera, a Home Assistant device with a signal-strength sensor, a Tapo
23382
+ * plug): one slice under `device.runtimeState['network-link']`, one badge,
23383
+ * one Home Assistant projection.
23384
+ */
23385
+ var NetworkLinkStatusSchema = object({
23386
+ /** The link the device is on. `'unknown'` = not read yet, not "no link". */
23387
+ type: _enum([
23388
+ "wifi",
23389
+ "ethernet",
23390
+ "cellular",
23391
+ "unknown"
23392
+ ]),
23393
+ /**
23394
+ * Link quality, 0..100 inclusive, normalised by the provider from whatever
23395
+ * the firmware reports (bars, RSSI, a vendor scale). **`null` means NOT
23396
+ * KNOWN or NOT APPLICABLE** — a wired link has no signal, and a wireless
23397
+ * one whose reading has not landed must not be drawn at 0 %. Consumers
23398
+ * SKIP a null rather than coerce it.
23399
+ */
23400
+ signalPercent: number().min(0).max(100).nullable(),
23401
+ /** Raw received signal strength in dBm, when the firmware reports one. */
23402
+ rssiDbm: number().optional(),
23403
+ /** Network name of a wireless link, when the firmware reports it. */
23404
+ ssid: string().optional(),
23405
+ /** Ms epoch of the last observation. Lets consumers reason about freshness. */
23406
+ lastUpdated: number()
23407
+ });
23408
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.Light, DeviceType.Lock, DeviceType.Siren, object({
23409
+ deviceId: number(),
23410
+ status: NetworkLinkStatusSchema
23411
+ });
23372
23412
  object({
23373
23413
  on: boolean(),
23374
23414
  /** Ms epoch of the last transition. 0 if never observed. */
package/dist/addon.mjs CHANGED
@@ -2,7 +2,7 @@ import { brotliCompressSync, deflateSync, gzipSync } from "node:zlib";
2
2
  import { readFileSync } from "node:fs";
3
3
  import path from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
- //#region ../types/dist/event-category-BZL-fdNj.mjs
5
+ //#region ../types/dist/event-category-zAv7pMUz.mjs
6
6
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
7
7
  EventCategory["SystemBoot"] = "system.boot";
8
8
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -374,6 +374,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
374
374
  */
375
375
  EventCategory["BatteryOnStatusChanged"] = "battery.onStatusChanged";
376
376
  /**
377
+ * Cap event fired by every device that registers the `network-link`
378
+ * capability. Mirrors the cap definition's `onStatusChanged`. Carries
379
+ * `{ deviceId, status: NetworkLinkStatus }` — a link switch or a signal
380
+ * reading that moved.
381
+ */
382
+ EventCategory["NetworkLinkOnStatusChanged"] = "network-link.onStatusChanged";
383
+ /**
377
384
  * Emitted by the battery cap provider WHEN `wakeForStream` enters the
378
385
  * "wake in progress" window — between the Baichuan wake-up issue and
379
386
  * the camera's first dialed-back RTP packet. The stream-broker
@@ -23342,6 +23349,39 @@ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, meth
23342
23349
  deviceId: number(),
23343
23350
  status: BatteryStatusSchema
23344
23351
  });
23352
+ /**
23353
+ * Network-link snapshot. Same shape for every provider (a Reolink wifi
23354
+ * camera, a Home Assistant device with a signal-strength sensor, a Tapo
23355
+ * plug): one slice under `device.runtimeState['network-link']`, one badge,
23356
+ * one Home Assistant projection.
23357
+ */
23358
+ var NetworkLinkStatusSchema = object({
23359
+ /** The link the device is on. `'unknown'` = not read yet, not "no link". */
23360
+ type: _enum([
23361
+ "wifi",
23362
+ "ethernet",
23363
+ "cellular",
23364
+ "unknown"
23365
+ ]),
23366
+ /**
23367
+ * Link quality, 0..100 inclusive, normalised by the provider from whatever
23368
+ * the firmware reports (bars, RSSI, a vendor scale). **`null` means NOT
23369
+ * KNOWN or NOT APPLICABLE** — a wired link has no signal, and a wireless
23370
+ * one whose reading has not landed must not be drawn at 0 %. Consumers
23371
+ * SKIP a null rather than coerce it.
23372
+ */
23373
+ signalPercent: number().min(0).max(100).nullable(),
23374
+ /** Raw received signal strength in dBm, when the firmware reports one. */
23375
+ rssiDbm: number().optional(),
23376
+ /** Network name of a wireless link, when the firmware reports it. */
23377
+ ssid: string().optional(),
23378
+ /** Ms epoch of the last observation. Lets consumers reason about freshness. */
23379
+ lastUpdated: number()
23380
+ });
23381
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.Light, DeviceType.Lock, DeviceType.Siren, object({
23382
+ deviceId: number(),
23383
+ status: NetworkLinkStatusSchema
23384
+ });
23345
23385
  object({
23346
23386
  on: boolean(),
23347
23387
  /** Ms epoch of the last transition. 0 if never observed. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-notifiers",
3
- "version": "1.2.73",
3
+ "version": "1.2.74",
4
4
  "description": "System notifiers addon for CamStack — a `notification-output` collection provider hosting per-kind notifier adapters (ntfy, pushover, gotify, telegram, discord, webhook, zentik).",
5
5
  "keywords": [
6
6
  "camstack",