@camstack/addon-provider-reolink 1.2.25 → 1.2.26
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 +75 -7
- package/dist/addon.mjs +75 -7
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -13427,11 +13427,33 @@ var NotificationFormatSchema = _enum([
|
|
|
13427
13427
|
* Named by INTENT, never by glyph. "check" would tie the vocabulary to one
|
|
13428
13428
|
* renderer's icon set; "acknowledge" survives an adapter that draws it
|
|
13429
13429
|
* differently.
|
|
13430
|
+
*
|
|
13431
|
+
* ── A TOKEN IS NOT A WIRE VALUE ─────────────────────────────────────
|
|
13432
|
+
*
|
|
13433
|
+
* These names are for US. **No adapter may forward one verbatim.** Each maps
|
|
13434
|
+
* the whole set onto its own renderer's vocabulary through a
|
|
13435
|
+
* `Record<NotificationActionIcon, string>` — a Record, never a lookup with a
|
|
13436
|
+
* fallback, so adding a member here fails every adapter's build until someone
|
|
13437
|
+
* decides its glyph, which is the only place that decision can be made
|
|
13438
|
+
* honestly.
|
|
13439
|
+
*
|
|
13440
|
+
* This paragraph is the bug. Zentik declared `actionIcons: true` and passed
|
|
13441
|
+
* `disarm` straight through; iOS feeds that string to
|
|
13442
|
+
* `UNNotificationActionIcon(systemImageName:)`, `disarm` is not an SF Symbol,
|
|
13443
|
+
* and every snooze and alarm button arrived BLANK. A pass-through is not a
|
|
13444
|
+
* mapping, and "the field is documented" is not "the value renders".
|
|
13445
|
+
*
|
|
13446
|
+
* Adding a member is TRAIN-BOUND. The enum lives in the published
|
|
13447
|
+
* `@camstack/server` closure and the cap seam validates against the HUB's copy,
|
|
13448
|
+
* so an addon that emits a token the running hub does not know does not lose an
|
|
13449
|
+
* icon — its whole `send` fails Zod validation and the notification never
|
|
13450
|
+
* arrives. Never emit a new token from an addon before the train carrying it.
|
|
13430
13451
|
*/
|
|
13431
13452
|
var NotificationActionIconSchema = _enum([
|
|
13432
13453
|
"acknowledge",
|
|
13433
13454
|
"dismiss",
|
|
13434
13455
|
"silence",
|
|
13456
|
+
"snooze",
|
|
13435
13457
|
"view",
|
|
13436
13458
|
"play",
|
|
13437
13459
|
"open",
|
|
@@ -13439,9 +13461,13 @@ var NotificationActionIconSchema = _enum([
|
|
|
13439
13461
|
"lock",
|
|
13440
13462
|
"unlock",
|
|
13441
13463
|
"arm",
|
|
13464
|
+
"arm-home",
|
|
13465
|
+
"arm-away",
|
|
13466
|
+
"arm-night",
|
|
13442
13467
|
"disarm",
|
|
13443
13468
|
"light",
|
|
13444
|
-
"alert"
|
|
13469
|
+
"alert",
|
|
13470
|
+
"camera"
|
|
13445
13471
|
]);
|
|
13446
13472
|
/** A single tap-through action button. */
|
|
13447
13473
|
var NotificationActionSchema = object({
|
|
@@ -13641,6 +13667,24 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
|
|
|
13641
13667
|
targetId: string(),
|
|
13642
13668
|
enabled: boolean()
|
|
13643
13669
|
}), _void(), { kind: "mutation" });
|
|
13670
|
+
new Set([
|
|
13671
|
+
{
|
|
13672
|
+
id: "person",
|
|
13673
|
+
name: "Person"
|
|
13674
|
+
},
|
|
13675
|
+
{
|
|
13676
|
+
id: "vehicle",
|
|
13677
|
+
name: "Vehicle"
|
|
13678
|
+
},
|
|
13679
|
+
{
|
|
13680
|
+
id: "animal",
|
|
13681
|
+
name: "Animal"
|
|
13682
|
+
},
|
|
13683
|
+
{
|
|
13684
|
+
id: "package",
|
|
13685
|
+
name: "Package"
|
|
13686
|
+
}
|
|
13687
|
+
].map((l) => l.id));
|
|
13644
13688
|
var COCO_TO_MACRO = {
|
|
13645
13689
|
mapping: {
|
|
13646
13690
|
person: "person",
|
|
@@ -14476,6 +14520,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
14476
14520
|
"alarm-triggered",
|
|
14477
14521
|
"alarm-armed",
|
|
14478
14522
|
"alarm-disarmed",
|
|
14523
|
+
"alarm-arming",
|
|
14524
|
+
"alarm-arm-refused",
|
|
14479
14525
|
"camera-online",
|
|
14480
14526
|
"camera-offline",
|
|
14481
14527
|
"camera-disabled",
|
|
@@ -17748,6 +17794,22 @@ var detectionFpsField = {
|
|
|
17748
17794
|
default: 10,
|
|
17749
17795
|
step: 1
|
|
17750
17796
|
};
|
|
17797
|
+
/**
|
|
17798
|
+
* The occupancy re-check interval. DEFAULT 300 s (2026-08-13 — was 30 s).
|
|
17799
|
+
*
|
|
17800
|
+
* The recheck is now on by default (a parked car is invisible to occupancy
|
|
17801
|
+
* rules until the stationary registry has been rebuilt by motion, which after a
|
|
17802
|
+
* restart may be never on a quiet camera). Each cycle re-subscribes a detection
|
|
17803
|
+
* session — an RTSP re-dial — so the switch is only affordable at a WIDE
|
|
17804
|
+
* interval: 300 s is ~12 re-dials an hour per camera, against 120 at the old
|
|
17805
|
+
* 30 s. A parked car is therefore counted within 5 minutes of a restart.
|
|
17806
|
+
*
|
|
17807
|
+
* Why not wider: `max` is 300 and raising it is TRAIN-BOUND, not addon-bound —
|
|
17808
|
+
* the host validates `attachCamera` against ITS copy of this schema, so a
|
|
17809
|
+
* runner asked for 600 would be rejected by the hub until a `@camstack/server`
|
|
17810
|
+
* carrying the wider bound is installed everywhere. 300 is the widest value
|
|
17811
|
+
* that ships with an addon deploy.
|
|
17812
|
+
*/
|
|
17751
17813
|
var occupancyRecheckSecField = {
|
|
17752
17814
|
min: 0,
|
|
17753
17815
|
max: 300,
|
|
@@ -17949,15 +18011,21 @@ var RunnerCameraConfigSchema = object({
|
|
|
17949
18011
|
*/
|
|
17950
18012
|
onboardMotionDrivesAnalyzer: boolean().default(true),
|
|
17951
18013
|
/**
|
|
17952
|
-
* Master toggle for the occupancy re-check. When `false`
|
|
17953
|
-
*
|
|
17954
|
-
* this is off by default because the recheck re-subscribes a detection session
|
|
17955
|
-
* every N seconds while `watching`, a major source of pull-decoder re-dial
|
|
17956
|
-
* churn (each cycle creates+tears a session → RTSP re-dial → latency). The
|
|
18014
|
+
* Master toggle for the occupancy re-check. When `false` the runner never arms
|
|
18015
|
+
* the periodic recheck timer, regardless of `occupancyRecheckSec`; the
|
|
17957
18016
|
* `occupancyRecheckSec` / `occupancyRecheckFrames` sliders only take effect
|
|
17958
18017
|
* (and only render) when this is enabled.
|
|
18018
|
+
*
|
|
18019
|
+
* DEFAULT `true` since 2026-08-13 (was `false`). It was off because the
|
|
18020
|
+
* recheck re-subscribes a detection session every N seconds while `watching`
|
|
18021
|
+
* — each cycle creates+tears a session ⇒ an RTSP re-dial ⇒ latency, a major
|
|
18022
|
+
* pull-decoder churn source. What that bought was a blind spot: a STATIONARY
|
|
18023
|
+
* object is counted only while the stationary registry holds it, and the
|
|
18024
|
+
* registry rebuilds from motion, so after a restart a parked car was invisible
|
|
18025
|
+
* to every occupancy rule until something moved in front of it. The churn is
|
|
18026
|
+
* now paid on the interval instead — see `occupancyRecheckSecField`.
|
|
17959
18027
|
*/
|
|
17960
|
-
occupancyRecheckEnabled: boolean().default(
|
|
18028
|
+
occupancyRecheckEnabled: boolean().default(true),
|
|
17961
18029
|
occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
|
|
17962
18030
|
occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
|
|
17963
18031
|
/**
|
package/dist/addon.mjs
CHANGED
|
@@ -13422,11 +13422,33 @@ var NotificationFormatSchema = _enum([
|
|
|
13422
13422
|
* Named by INTENT, never by glyph. "check" would tie the vocabulary to one
|
|
13423
13423
|
* renderer's icon set; "acknowledge" survives an adapter that draws it
|
|
13424
13424
|
* differently.
|
|
13425
|
+
*
|
|
13426
|
+
* ── A TOKEN IS NOT A WIRE VALUE ─────────────────────────────────────
|
|
13427
|
+
*
|
|
13428
|
+
* These names are for US. **No adapter may forward one verbatim.** Each maps
|
|
13429
|
+
* the whole set onto its own renderer's vocabulary through a
|
|
13430
|
+
* `Record<NotificationActionIcon, string>` — a Record, never a lookup with a
|
|
13431
|
+
* fallback, so adding a member here fails every adapter's build until someone
|
|
13432
|
+
* decides its glyph, which is the only place that decision can be made
|
|
13433
|
+
* honestly.
|
|
13434
|
+
*
|
|
13435
|
+
* This paragraph is the bug. Zentik declared `actionIcons: true` and passed
|
|
13436
|
+
* `disarm` straight through; iOS feeds that string to
|
|
13437
|
+
* `UNNotificationActionIcon(systemImageName:)`, `disarm` is not an SF Symbol,
|
|
13438
|
+
* and every snooze and alarm button arrived BLANK. A pass-through is not a
|
|
13439
|
+
* mapping, and "the field is documented" is not "the value renders".
|
|
13440
|
+
*
|
|
13441
|
+
* Adding a member is TRAIN-BOUND. The enum lives in the published
|
|
13442
|
+
* `@camstack/server` closure and the cap seam validates against the HUB's copy,
|
|
13443
|
+
* so an addon that emits a token the running hub does not know does not lose an
|
|
13444
|
+
* icon — its whole `send` fails Zod validation and the notification never
|
|
13445
|
+
* arrives. Never emit a new token from an addon before the train carrying it.
|
|
13425
13446
|
*/
|
|
13426
13447
|
var NotificationActionIconSchema = _enum([
|
|
13427
13448
|
"acknowledge",
|
|
13428
13449
|
"dismiss",
|
|
13429
13450
|
"silence",
|
|
13451
|
+
"snooze",
|
|
13430
13452
|
"view",
|
|
13431
13453
|
"play",
|
|
13432
13454
|
"open",
|
|
@@ -13434,9 +13456,13 @@ var NotificationActionIconSchema = _enum([
|
|
|
13434
13456
|
"lock",
|
|
13435
13457
|
"unlock",
|
|
13436
13458
|
"arm",
|
|
13459
|
+
"arm-home",
|
|
13460
|
+
"arm-away",
|
|
13461
|
+
"arm-night",
|
|
13437
13462
|
"disarm",
|
|
13438
13463
|
"light",
|
|
13439
|
-
"alert"
|
|
13464
|
+
"alert",
|
|
13465
|
+
"camera"
|
|
13440
13466
|
]);
|
|
13441
13467
|
/** A single tap-through action button. */
|
|
13442
13468
|
var NotificationActionSchema = object({
|
|
@@ -13636,6 +13662,24 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
|
|
|
13636
13662
|
targetId: string(),
|
|
13637
13663
|
enabled: boolean()
|
|
13638
13664
|
}), _void(), { kind: "mutation" });
|
|
13665
|
+
new Set([
|
|
13666
|
+
{
|
|
13667
|
+
id: "person",
|
|
13668
|
+
name: "Person"
|
|
13669
|
+
},
|
|
13670
|
+
{
|
|
13671
|
+
id: "vehicle",
|
|
13672
|
+
name: "Vehicle"
|
|
13673
|
+
},
|
|
13674
|
+
{
|
|
13675
|
+
id: "animal",
|
|
13676
|
+
name: "Animal"
|
|
13677
|
+
},
|
|
13678
|
+
{
|
|
13679
|
+
id: "package",
|
|
13680
|
+
name: "Package"
|
|
13681
|
+
}
|
|
13682
|
+
].map((l) => l.id));
|
|
13639
13683
|
var COCO_TO_MACRO = {
|
|
13640
13684
|
mapping: {
|
|
13641
13685
|
person: "person",
|
|
@@ -14471,6 +14515,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
14471
14515
|
"alarm-triggered",
|
|
14472
14516
|
"alarm-armed",
|
|
14473
14517
|
"alarm-disarmed",
|
|
14518
|
+
"alarm-arming",
|
|
14519
|
+
"alarm-arm-refused",
|
|
14474
14520
|
"camera-online",
|
|
14475
14521
|
"camera-offline",
|
|
14476
14522
|
"camera-disabled",
|
|
@@ -17743,6 +17789,22 @@ var detectionFpsField = {
|
|
|
17743
17789
|
default: 10,
|
|
17744
17790
|
step: 1
|
|
17745
17791
|
};
|
|
17792
|
+
/**
|
|
17793
|
+
* The occupancy re-check interval. DEFAULT 300 s (2026-08-13 — was 30 s).
|
|
17794
|
+
*
|
|
17795
|
+
* The recheck is now on by default (a parked car is invisible to occupancy
|
|
17796
|
+
* rules until the stationary registry has been rebuilt by motion, which after a
|
|
17797
|
+
* restart may be never on a quiet camera). Each cycle re-subscribes a detection
|
|
17798
|
+
* session — an RTSP re-dial — so the switch is only affordable at a WIDE
|
|
17799
|
+
* interval: 300 s is ~12 re-dials an hour per camera, against 120 at the old
|
|
17800
|
+
* 30 s. A parked car is therefore counted within 5 minutes of a restart.
|
|
17801
|
+
*
|
|
17802
|
+
* Why not wider: `max` is 300 and raising it is TRAIN-BOUND, not addon-bound —
|
|
17803
|
+
* the host validates `attachCamera` against ITS copy of this schema, so a
|
|
17804
|
+
* runner asked for 600 would be rejected by the hub until a `@camstack/server`
|
|
17805
|
+
* carrying the wider bound is installed everywhere. 300 is the widest value
|
|
17806
|
+
* that ships with an addon deploy.
|
|
17807
|
+
*/
|
|
17746
17808
|
var occupancyRecheckSecField = {
|
|
17747
17809
|
min: 0,
|
|
17748
17810
|
max: 300,
|
|
@@ -17944,15 +18006,21 @@ var RunnerCameraConfigSchema = object({
|
|
|
17944
18006
|
*/
|
|
17945
18007
|
onboardMotionDrivesAnalyzer: boolean().default(true),
|
|
17946
18008
|
/**
|
|
17947
|
-
* Master toggle for the occupancy re-check. When `false`
|
|
17948
|
-
*
|
|
17949
|
-
* this is off by default because the recheck re-subscribes a detection session
|
|
17950
|
-
* every N seconds while `watching`, a major source of pull-decoder re-dial
|
|
17951
|
-
* churn (each cycle creates+tears a session → RTSP re-dial → latency). The
|
|
18009
|
+
* Master toggle for the occupancy re-check. When `false` the runner never arms
|
|
18010
|
+
* the periodic recheck timer, regardless of `occupancyRecheckSec`; the
|
|
17952
18011
|
* `occupancyRecheckSec` / `occupancyRecheckFrames` sliders only take effect
|
|
17953
18012
|
* (and only render) when this is enabled.
|
|
18013
|
+
*
|
|
18014
|
+
* DEFAULT `true` since 2026-08-13 (was `false`). It was off because the
|
|
18015
|
+
* recheck re-subscribes a detection session every N seconds while `watching`
|
|
18016
|
+
* — each cycle creates+tears a session ⇒ an RTSP re-dial ⇒ latency, a major
|
|
18017
|
+
* pull-decoder churn source. What that bought was a blind spot: a STATIONARY
|
|
18018
|
+
* object is counted only while the stationary registry holds it, and the
|
|
18019
|
+
* registry rebuilds from motion, so after a restart a parked car was invisible
|
|
18020
|
+
* to every occupancy rule until something moved in front of it. The churn is
|
|
18021
|
+
* now paid on the interval instead — see `occupancyRecheckSecField`.
|
|
17954
18022
|
*/
|
|
17955
|
-
occupancyRecheckEnabled: boolean().default(
|
|
18023
|
+
occupancyRecheckEnabled: boolean().default(true),
|
|
17956
18024
|
occupancyRecheckSec: number().min(occupancyRecheckSecField.min).max(occupancyRecheckSecField.max).default(occupancyRecheckSecField.default),
|
|
17957
18025
|
occupancyRecheckFrames: number().min(occupancyRecheckFramesField.min).max(occupancyRecheckFramesField.max).default(occupancyRecheckFramesField.default),
|
|
17958
18026
|
/**
|