@camstack/addon-notifiers 1.2.124 → 1.2.125
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 +49 -9
- package/dist/addon.mjs +49 -9
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -11085,7 +11085,16 @@ var AutomationActionSchema = discriminatedUnion("kind", [
|
|
|
11085
11085
|
}),
|
|
11086
11086
|
object({
|
|
11087
11087
|
kind: literal("cap"),
|
|
11088
|
-
|
|
11088
|
+
/**
|
|
11089
|
+
* One device, several same-family devices (locks / climate family / …),
|
|
11090
|
+
* or `{ $var }` for the device that triggered the run. An array is
|
|
11091
|
+
* fan-out at codegen — each id gets the same cap.method call.
|
|
11092
|
+
*/
|
|
11093
|
+
deviceId: union([
|
|
11094
|
+
number().int(),
|
|
11095
|
+
array(number().int()).min(1),
|
|
11096
|
+
object({ $var: string().min(1) })
|
|
11097
|
+
]),
|
|
11089
11098
|
cap: string().min(1),
|
|
11090
11099
|
method: string().min(1),
|
|
11091
11100
|
/** Values may carry `{{vars.x}}` slots, which SUBSTITUTE and do not
|
|
@@ -14257,7 +14266,7 @@ DeviceType.Camera;
|
|
|
14257
14266
|
* This matters here more than anywhere else in the repo, because every provider
|
|
14258
14267
|
* that knows a device's host knows its PASSWORD too: `{ host, port, username,
|
|
14259
14268
|
* password }` sit in one object on Hikvision, Amcrest, Reolink and ONVIF alike,
|
|
14260
|
-
* and `http://admin:hunter2@192.168.
|
|
14269
|
+
* and `http://admin:hunter2@192.168.x.x/` is a URL a browser accepts. The
|
|
14261
14270
|
* camera's own page will ask for its own login. That is correct, and pre-
|
|
14262
14271
|
* filling it is the operator's business, not ours.
|
|
14263
14272
|
*
|
|
@@ -20197,17 +20206,41 @@ var NC_ALARM_TRIGGERED_MAX_SEC = 3600;
|
|
|
20197
20206
|
var NcAlarmDelaySecSchema = number().int().min(0).max(600);
|
|
20198
20207
|
var NcAlarmTriggeredSecSchema = number().int().min(0).max(NC_ALARM_TRIGGERED_MAX_SEC);
|
|
20199
20208
|
var uniqueModes = (entries) => new Set(entries.map((e) => e.mode)).size === entries.length;
|
|
20209
|
+
/**
|
|
20210
|
+
* What the panel does when a bounded triggered window ends.
|
|
20211
|
+
* - `rearmAfter` — return to the armed mode
|
|
20212
|
+
* - `disableAfter` — auto-disarm
|
|
20213
|
+
* - `doNothing` — stay triggered until a human disarms
|
|
20214
|
+
*/
|
|
20215
|
+
var NcAlarmPostTriggeredActionSchema = _enum([
|
|
20216
|
+
"rearmAfter",
|
|
20217
|
+
"disableAfter",
|
|
20218
|
+
"doNothing"
|
|
20219
|
+
]);
|
|
20200
20220
|
var NcAlarmModeDelaysListSchema = array(object({
|
|
20201
20221
|
mode: AlarmArmModeSchema,
|
|
20202
20222
|
exitDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
20203
20223
|
entryDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
20204
|
-
|
|
20224
|
+
/**
|
|
20225
|
+
* Duration of `triggered` before {@link postTriggeredAction}. Kept as the
|
|
20226
|
+
* historical field name so older clients still read/write a number.
|
|
20227
|
+
*/
|
|
20228
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.optional(),
|
|
20229
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.optional(),
|
|
20230
|
+
/**
|
|
20231
|
+
* When this mode may be armed. Absent / null = always allowed (same as a
|
|
20232
|
+
* rule with no `schedule`). Evaluated with {@link isScheduleActive}.
|
|
20233
|
+
*/
|
|
20234
|
+
schedule: NcScheduleSchema.optional()
|
|
20205
20235
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
|
|
20206
20236
|
var NcAlarmModeDelaysEditListSchema = array(object({
|
|
20207
20237
|
mode: AlarmArmModeSchema,
|
|
20208
20238
|
exitDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
20209
20239
|
entryDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
20210
|
-
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional()
|
|
20240
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional(),
|
|
20241
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.nullable().optional(),
|
|
20242
|
+
/** Set a schedule, or `null` to clear (mode always allowed again). */
|
|
20243
|
+
schedule: NcScheduleSchema.nullable().optional()
|
|
20211
20244
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
|
|
20212
20245
|
/** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
|
|
20213
20246
|
var NcAlarmNonBlockingEditSchema = object({
|
|
@@ -20279,12 +20312,18 @@ var NcAlarmSettingsSchema = object({
|
|
|
20279
20312
|
/** Grace period between a trigger and the alarm firing. 0 = immediate. */
|
|
20280
20313
|
entryDelaySec: NcAlarmDelaySecSchema,
|
|
20281
20314
|
/**
|
|
20282
|
-
* How long `triggered` lasts before
|
|
20283
|
-
*
|
|
20284
|
-
*
|
|
20315
|
+
* How long `triggered` lasts before {@link postTriggeredAction} runs.
|
|
20316
|
+
* Ignored when the action is `doNothing`. Historical name kept so older
|
|
20317
|
+
* clients still round-trip a number.
|
|
20285
20318
|
*/
|
|
20286
20319
|
triggeredDurationSec: NcAlarmTriggeredSecSchema,
|
|
20287
20320
|
/**
|
|
20321
|
+
* What happens when the triggered window ends. Absent on a blob older than
|
|
20322
|
+
* this field → derived from {@link triggeredDurationSec} (`>0` ⇒ rearmAfter,
|
|
20323
|
+
* else doNothing).
|
|
20324
|
+
*/
|
|
20325
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.optional(),
|
|
20326
|
+
/**
|
|
20288
20327
|
* Deprecated by D630 — every transition is announced. Parsed, never read;
|
|
20289
20328
|
* remove after one release. Optional so an older admin's patch (which still
|
|
20290
20329
|
* sends it) parses rather than failing the whole save.
|
|
@@ -30516,7 +30555,7 @@ var LocalInterfaceSchema = object({
|
|
|
30516
30555
|
name: string(),
|
|
30517
30556
|
family: _enum(["IPv4", "IPv6"]),
|
|
30518
30557
|
address: string(),
|
|
30519
|
-
/** CIDR shorthand (e.g. `192.168.
|
|
30558
|
+
/** CIDR shorthand (e.g. `192.168.x.x/24`). Empty when OS doesn't expose. */
|
|
30520
30559
|
cidr: string(),
|
|
30521
30560
|
/** OS netmask. Stable across calls so the SDK can hash on it. */
|
|
30522
30561
|
netmask: string(),
|
|
@@ -30962,7 +31001,7 @@ var MeshPeerSchema = object({
|
|
|
30962
31001
|
tags: array(string()).readonly(),
|
|
30963
31002
|
/** True when the peer advertises itself as an exit-node candidate. */
|
|
30964
31003
|
exitNodeOption: boolean(),
|
|
30965
|
-
/** Subnet routes the peer advertises (e.g. `["192.168.
|
|
31004
|
+
/** Subnet routes the peer advertises (e.g. `["192.168.x.x/24"]`). */
|
|
30966
31005
|
advertisedRoutes: array(string()).readonly(),
|
|
30967
31006
|
/** Owner account login (e.g. `foo@example.com`). Null for tagged peers. */
|
|
30968
31007
|
userLogin: string().nullable(),
|
|
@@ -43593,6 +43632,7 @@ Object.freeze({
|
|
|
43593
43632
|
access: "create"
|
|
43594
43633
|
}
|
|
43595
43634
|
});
|
|
43635
|
+
DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
43596
43636
|
DeviceFeature.BatteryOperated;
|
|
43597
43637
|
/**
|
|
43598
43638
|
* The vocabulary, in the order a picker offers it.
|
package/dist/addon.mjs
CHANGED
|
@@ -11058,7 +11058,16 @@ var AutomationActionSchema = discriminatedUnion("kind", [
|
|
|
11058
11058
|
}),
|
|
11059
11059
|
object({
|
|
11060
11060
|
kind: literal("cap"),
|
|
11061
|
-
|
|
11061
|
+
/**
|
|
11062
|
+
* One device, several same-family devices (locks / climate family / …),
|
|
11063
|
+
* or `{ $var }` for the device that triggered the run. An array is
|
|
11064
|
+
* fan-out at codegen — each id gets the same cap.method call.
|
|
11065
|
+
*/
|
|
11066
|
+
deviceId: union([
|
|
11067
|
+
number().int(),
|
|
11068
|
+
array(number().int()).min(1),
|
|
11069
|
+
object({ $var: string().min(1) })
|
|
11070
|
+
]),
|
|
11062
11071
|
cap: string().min(1),
|
|
11063
11072
|
method: string().min(1),
|
|
11064
11073
|
/** Values may carry `{{vars.x}}` slots, which SUBSTITUTE and do not
|
|
@@ -14230,7 +14239,7 @@ DeviceType.Camera;
|
|
|
14230
14239
|
* This matters here more than anywhere else in the repo, because every provider
|
|
14231
14240
|
* that knows a device's host knows its PASSWORD too: `{ host, port, username,
|
|
14232
14241
|
* password }` sit in one object on Hikvision, Amcrest, Reolink and ONVIF alike,
|
|
14233
|
-
* and `http://admin:hunter2@192.168.
|
|
14242
|
+
* and `http://admin:hunter2@192.168.x.x/` is a URL a browser accepts. The
|
|
14234
14243
|
* camera's own page will ask for its own login. That is correct, and pre-
|
|
14235
14244
|
* filling it is the operator's business, not ours.
|
|
14236
14245
|
*
|
|
@@ -20170,17 +20179,41 @@ var NC_ALARM_TRIGGERED_MAX_SEC = 3600;
|
|
|
20170
20179
|
var NcAlarmDelaySecSchema = number().int().min(0).max(600);
|
|
20171
20180
|
var NcAlarmTriggeredSecSchema = number().int().min(0).max(NC_ALARM_TRIGGERED_MAX_SEC);
|
|
20172
20181
|
var uniqueModes = (entries) => new Set(entries.map((e) => e.mode)).size === entries.length;
|
|
20182
|
+
/**
|
|
20183
|
+
* What the panel does when a bounded triggered window ends.
|
|
20184
|
+
* - `rearmAfter` — return to the armed mode
|
|
20185
|
+
* - `disableAfter` — auto-disarm
|
|
20186
|
+
* - `doNothing` — stay triggered until a human disarms
|
|
20187
|
+
*/
|
|
20188
|
+
var NcAlarmPostTriggeredActionSchema = _enum([
|
|
20189
|
+
"rearmAfter",
|
|
20190
|
+
"disableAfter",
|
|
20191
|
+
"doNothing"
|
|
20192
|
+
]);
|
|
20173
20193
|
var NcAlarmModeDelaysListSchema = array(object({
|
|
20174
20194
|
mode: AlarmArmModeSchema,
|
|
20175
20195
|
exitDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
20176
20196
|
entryDelaySec: NcAlarmDelaySecSchema.optional(),
|
|
20177
|
-
|
|
20197
|
+
/**
|
|
20198
|
+
* Duration of `triggered` before {@link postTriggeredAction}. Kept as the
|
|
20199
|
+
* historical field name so older clients still read/write a number.
|
|
20200
|
+
*/
|
|
20201
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.optional(),
|
|
20202
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.optional(),
|
|
20203
|
+
/**
|
|
20204
|
+
* When this mode may be armed. Absent / null = always allowed (same as a
|
|
20205
|
+
* rule with no `schedule`). Evaluated with {@link isScheduleActive}.
|
|
20206
|
+
*/
|
|
20207
|
+
schedule: NcScheduleSchema.optional()
|
|
20178
20208
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
|
|
20179
20209
|
var NcAlarmModeDelaysEditListSchema = array(object({
|
|
20180
20210
|
mode: AlarmArmModeSchema,
|
|
20181
20211
|
exitDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
20182
20212
|
entryDelaySec: NcAlarmDelaySecSchema.nullable().optional(),
|
|
20183
|
-
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional()
|
|
20213
|
+
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional(),
|
|
20214
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.nullable().optional(),
|
|
20215
|
+
/** Set a schedule, or `null` to clear (mode always allowed again). */
|
|
20216
|
+
schedule: NcScheduleSchema.nullable().optional()
|
|
20184
20217
|
})).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
|
|
20185
20218
|
/** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
|
|
20186
20219
|
var NcAlarmNonBlockingEditSchema = object({
|
|
@@ -20252,12 +20285,18 @@ var NcAlarmSettingsSchema = object({
|
|
|
20252
20285
|
/** Grace period between a trigger and the alarm firing. 0 = immediate. */
|
|
20253
20286
|
entryDelaySec: NcAlarmDelaySecSchema,
|
|
20254
20287
|
/**
|
|
20255
|
-
* How long `triggered` lasts before
|
|
20256
|
-
*
|
|
20257
|
-
*
|
|
20288
|
+
* How long `triggered` lasts before {@link postTriggeredAction} runs.
|
|
20289
|
+
* Ignored when the action is `doNothing`. Historical name kept so older
|
|
20290
|
+
* clients still round-trip a number.
|
|
20258
20291
|
*/
|
|
20259
20292
|
triggeredDurationSec: NcAlarmTriggeredSecSchema,
|
|
20260
20293
|
/**
|
|
20294
|
+
* What happens when the triggered window ends. Absent on a blob older than
|
|
20295
|
+
* this field → derived from {@link triggeredDurationSec} (`>0` ⇒ rearmAfter,
|
|
20296
|
+
* else doNothing).
|
|
20297
|
+
*/
|
|
20298
|
+
postTriggeredAction: NcAlarmPostTriggeredActionSchema.optional(),
|
|
20299
|
+
/**
|
|
20261
20300
|
* Deprecated by D630 — every transition is announced. Parsed, never read;
|
|
20262
20301
|
* remove after one release. Optional so an older admin's patch (which still
|
|
20263
20302
|
* sends it) parses rather than failing the whole save.
|
|
@@ -30489,7 +30528,7 @@ var LocalInterfaceSchema = object({
|
|
|
30489
30528
|
name: string(),
|
|
30490
30529
|
family: _enum(["IPv4", "IPv6"]),
|
|
30491
30530
|
address: string(),
|
|
30492
|
-
/** CIDR shorthand (e.g. `192.168.
|
|
30531
|
+
/** CIDR shorthand (e.g. `192.168.x.x/24`). Empty when OS doesn't expose. */
|
|
30493
30532
|
cidr: string(),
|
|
30494
30533
|
/** OS netmask. Stable across calls so the SDK can hash on it. */
|
|
30495
30534
|
netmask: string(),
|
|
@@ -30935,7 +30974,7 @@ var MeshPeerSchema = object({
|
|
|
30935
30974
|
tags: array(string()).readonly(),
|
|
30936
30975
|
/** True when the peer advertises itself as an exit-node candidate. */
|
|
30937
30976
|
exitNodeOption: boolean(),
|
|
30938
|
-
/** Subnet routes the peer advertises (e.g. `["192.168.
|
|
30977
|
+
/** Subnet routes the peer advertises (e.g. `["192.168.x.x/24"]`). */
|
|
30939
30978
|
advertisedRoutes: array(string()).readonly(),
|
|
30940
30979
|
/** Owner account login (e.g. `foo@example.com`). Null for tagged peers. */
|
|
30941
30980
|
userLogin: string().nullable(),
|
|
@@ -43566,6 +43605,7 @@ Object.freeze({
|
|
|
43566
43605
|
access: "create"
|
|
43567
43606
|
}
|
|
43568
43607
|
});
|
|
43608
|
+
DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
43569
43609
|
DeviceFeature.BatteryOperated;
|
|
43570
43610
|
/**
|
|
43571
43611
|
* The vocabulary, in the order a picker offers it.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-notifiers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.125",
|
|
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",
|