@camstack/addon-notifiers 1.2.614 → 1.2.616
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 +237 -61
- package/dist/addon.mjs +237 -61
- package/package.json +1 -1
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-
|
|
32
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
33
33
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
34
34
|
EventCategory["SystemBoot"] = "system.boot";
|
|
35
35
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -346,6 +346,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
346
346
|
*/
|
|
347
347
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
348
348
|
/**
|
|
349
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
350
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
351
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
352
|
+
* {@link PipelineMotionCalm}.
|
|
353
|
+
*/
|
|
354
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
355
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
356
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
357
|
+
/**
|
|
349
358
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
350
359
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
351
360
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -717,6 +726,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
717
726
|
EventCategory["BackupRestored"] = "backup.restored";
|
|
718
727
|
EventCategory["NotificationDispatched"] = "notification.dispatched";
|
|
719
728
|
EventCategory["NotificationFailed"] = "notification.failed";
|
|
729
|
+
/**
|
|
730
|
+
* A notification rule that cannot work (D905): its stored row does not load,
|
|
731
|
+
* or it still names a device / delivery target the prune CONFIRMED deleted.
|
|
732
|
+
* One edge per rule per distinct set of reasons; never on an unanswered read.
|
|
733
|
+
*/
|
|
734
|
+
EventCategory["NotificationRuleBroken"] = "notification.rule-broken";
|
|
735
|
+
/** The clear of {@link NotificationRuleBroken}: the rule loads and names nothing deleted. */
|
|
736
|
+
EventCategory["NotificationRuleRepaired"] = "notification.rule-repaired";
|
|
720
737
|
EventCategory["DeviceUpdated"] = "device.updated";
|
|
721
738
|
/**
|
|
722
739
|
* Transport-level connectivity. Emitted by the device driver when
|
|
@@ -5577,7 +5594,7 @@ var ZodIssueCode = {
|
|
|
5577
5594
|
var ZodFirstPartyTypeKind;
|
|
5578
5595
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5579
5596
|
//#endregion
|
|
5580
|
-
//#region ../types/dist/sleep-
|
|
5597
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5581
5598
|
/**
|
|
5582
5599
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5583
5600
|
* window to float samples (D455).
|
|
@@ -8169,7 +8186,7 @@ var EntryDescriptorSchema = object({
|
|
|
8169
8186
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
8170
8187
|
fields: record(string(), unknown())
|
|
8171
8188
|
}).strict();
|
|
8172
|
-
/** What crosses the wire
|
|
8189
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
8173
8190
|
var RecordKindDeclarationSchema = object({
|
|
8174
8191
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
8175
8192
|
class: _enum(RECORD_CLASSES),
|
|
@@ -8188,14 +8205,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
8188
8205
|
secretPaths: array(string().min(1)).default([]),
|
|
8189
8206
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
8190
8207
|
secretArrayKeys: record(string(), string()).default({}),
|
|
8191
|
-
/**
|
|
8192
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
8193
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
8194
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
8195
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
8196
|
-
* removal still sends it. Never set it.
|
|
8197
|
-
*/
|
|
8198
|
-
adoptsFrom: string().min(1).optional(),
|
|
8199
8208
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
8200
8209
|
transactFamily: string().min(1).optional(),
|
|
8201
8210
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -13095,17 +13104,6 @@ object({
|
|
|
13095
13104
|
createdAt: number(),
|
|
13096
13105
|
updatedAt: number()
|
|
13097
13106
|
});
|
|
13098
|
-
object({
|
|
13099
|
-
id: string(),
|
|
13100
|
-
label: string(),
|
|
13101
|
-
isAdmin: boolean().default(false),
|
|
13102
|
-
allowedProviders: AllowedProviderSchema,
|
|
13103
|
-
allowedDevices: AllowedDevicesSchema,
|
|
13104
|
-
tokenHash: string(),
|
|
13105
|
-
tokenPrefix: string(),
|
|
13106
|
-
createdAt: number(),
|
|
13107
|
-
lastUsedAt: number().optional()
|
|
13108
|
-
});
|
|
13109
13107
|
object({
|
|
13110
13108
|
id: string(),
|
|
13111
13109
|
userId: string(),
|
|
@@ -17000,16 +16998,36 @@ var RecordKindStateSchema = _enum([
|
|
|
17000
16998
|
var DeclareKindResultSchema = object({
|
|
17001
16999
|
kindId: number().int(),
|
|
17002
17000
|
state: RecordKindStateSchema,
|
|
17003
|
-
createdIndexes: array(string())
|
|
17004
|
-
/**
|
|
17005
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
17006
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
17007
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
17008
|
-
*/
|
|
17009
|
-
adoptionPending: _null()
|
|
17001
|
+
createdIndexes: array(string())
|
|
17010
17002
|
});
|
|
17011
17003
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
17012
17004
|
var SecretRefsList = array(string());
|
|
17005
|
+
/**
|
|
17006
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
17007
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
17008
|
+
*/
|
|
17009
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
17010
|
+
object({
|
|
17011
|
+
op: literal("put"),
|
|
17012
|
+
kind: RecordKindNameSchema,
|
|
17013
|
+
record: RecordInputSchema,
|
|
17014
|
+
ifRev: number().int().min(0).optional()
|
|
17015
|
+
}),
|
|
17016
|
+
object({
|
|
17017
|
+
op: literal("patch"),
|
|
17018
|
+
kind: RecordKindNameSchema,
|
|
17019
|
+
id: RecordIdSchema,
|
|
17020
|
+
data: RecordBodySchema,
|
|
17021
|
+
at: number().int().nullable().optional(),
|
|
17022
|
+
expiresAt: number().int().nullable().optional(),
|
|
17023
|
+
ifRev: number().int().min(1).optional()
|
|
17024
|
+
}),
|
|
17025
|
+
object({
|
|
17026
|
+
op: literal("delete"),
|
|
17027
|
+
kind: RecordKindNameSchema,
|
|
17028
|
+
id: RecordIdSchema
|
|
17029
|
+
})
|
|
17030
|
+
]);
|
|
17013
17031
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
17014
17032
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
17015
17033
|
kind: "mutation",
|
|
@@ -17116,6 +17134,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
17116
17134
|
}), {
|
|
17117
17135
|
kind: "mutation",
|
|
17118
17136
|
auth: "admin"
|
|
17137
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
17138
|
+
results: array(object({
|
|
17139
|
+
rev: number().int().nullable(),
|
|
17140
|
+
deleted: boolean()
|
|
17141
|
+
})),
|
|
17142
|
+
releasedRefs: SecretRefsList,
|
|
17143
|
+
secretRefs: SecretRefsList
|
|
17144
|
+
}), {
|
|
17145
|
+
kind: "mutation",
|
|
17146
|
+
auth: "admin"
|
|
17119
17147
|
}), method(object({
|
|
17120
17148
|
deviceId: number().int(),
|
|
17121
17149
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42496,9 +42524,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42496
42524
|
"node-updating",
|
|
42497
42525
|
"node-inference-unavailable",
|
|
42498
42526
|
"detection-blind",
|
|
42527
|
+
"motion-noisy",
|
|
42528
|
+
"motion-calm",
|
|
42499
42529
|
"recording-stalled",
|
|
42500
42530
|
"recording-healthy",
|
|
42501
42531
|
"recording-degraded",
|
|
42532
|
+
"device-attention-required",
|
|
42533
|
+
"device-attention-resolved",
|
|
42502
42534
|
"storage-location-low",
|
|
42503
42535
|
"storage-location-critical",
|
|
42504
42536
|
"storage-location-ok",
|
|
@@ -42522,6 +42554,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42522
42554
|
"alert-critical",
|
|
42523
42555
|
"alert-error",
|
|
42524
42556
|
"alert-critical-resolved",
|
|
42557
|
+
"rule-broken",
|
|
42558
|
+
"rule-repaired",
|
|
42525
42559
|
"camera-online",
|
|
42526
42560
|
"camera-offline",
|
|
42527
42561
|
"camera-disabled",
|
|
@@ -54953,6 +54987,16 @@ object({
|
|
|
54953
54987
|
powerState: string().nullable(),
|
|
54954
54988
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54955
54989
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54990
|
+
/**
|
|
54991
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
54992
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
54993
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
54994
|
+
*/
|
|
54995
|
+
filterCleaningDue: boolean().nullable(),
|
|
54996
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
54997
|
+
machineCareDue: boolean().nullable(),
|
|
54998
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
54999
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
54956
55000
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
54957
55001
|
halfLoad: boolean().nullable(),
|
|
54958
55002
|
hygienePlus: boolean().nullable(),
|
|
@@ -61570,16 +61614,6 @@ var UpdateUserInputSchema = object({
|
|
|
61570
61614
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
61571
61615
|
scopes: array(TokenScopeSchema).optional()
|
|
61572
61616
|
});
|
|
61573
|
-
var ApiKeySummarySchema = object({
|
|
61574
|
-
id: string(),
|
|
61575
|
-
label: string(),
|
|
61576
|
-
isAdmin: boolean().default(false),
|
|
61577
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
61578
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
61579
|
-
tokenPrefix: string(),
|
|
61580
|
-
createdAt: number(),
|
|
61581
|
-
lastUsedAt: number().optional()
|
|
61582
|
-
});
|
|
61583
61617
|
var OauthSessionSummarySchema = object({
|
|
61584
61618
|
id: string(),
|
|
61585
61619
|
userId: string(),
|
|
@@ -61601,8 +61635,7 @@ var TotpStatusSchema = object({
|
|
|
61601
61635
|
confirmedAt: number().nullable()
|
|
61602
61636
|
});
|
|
61603
61637
|
/**
|
|
61604
|
-
* user-management — singleton capability for user accounts
|
|
61605
|
-
* legacy API-key rows.
|
|
61638
|
+
* user-management — singleton capability for user accounts.
|
|
61606
61639
|
*
|
|
61607
61640
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
61608
61641
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -61658,10 +61691,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
61658
61691
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
61659
61692
|
kind: "mutation",
|
|
61660
61693
|
access: "view"
|
|
61661
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
61662
|
-
kind: "mutation",
|
|
61663
|
-
auth: "admin",
|
|
61664
|
-
access: "delete"
|
|
61665
61694
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
61666
61695
|
kind: "mutation",
|
|
61667
61696
|
auth: "admin",
|
|
@@ -69174,6 +69203,12 @@ Object.freeze({
|
|
|
69174
69203
|
addonId: null,
|
|
69175
69204
|
access: "view"
|
|
69176
69205
|
},
|
|
69206
|
+
"records.transact": {
|
|
69207
|
+
capName: "records",
|
|
69208
|
+
capScope: "system",
|
|
69209
|
+
addonId: null,
|
|
69210
|
+
access: "create"
|
|
69211
|
+
},
|
|
69177
69212
|
"sceneMonitor.captureReference": {
|
|
69178
69213
|
capName: "scene-monitor",
|
|
69179
69214
|
capScope: "device",
|
|
@@ -70506,12 +70541,6 @@ Object.freeze({
|
|
|
70506
70541
|
addonId: null,
|
|
70507
70542
|
access: "view"
|
|
70508
70543
|
},
|
|
70509
|
-
"userManagement.listApiKeys": {
|
|
70510
|
-
capName: "user-management",
|
|
70511
|
-
capScope: "system",
|
|
70512
|
-
addonId: null,
|
|
70513
|
-
access: "view"
|
|
70514
|
-
},
|
|
70515
70544
|
"userManagement.listExternalIdentities": {
|
|
70516
70545
|
capName: "user-management",
|
|
70517
70546
|
capScope: "system",
|
|
@@ -70566,12 +70595,6 @@ Object.freeze({
|
|
|
70566
70595
|
addonId: null,
|
|
70567
70596
|
access: "create"
|
|
70568
70597
|
},
|
|
70569
|
-
"userManagement.revokeApiKey": {
|
|
70570
|
-
capName: "user-management",
|
|
70571
|
-
capScope: "system",
|
|
70572
|
-
addonId: null,
|
|
70573
|
-
access: "delete"
|
|
70574
|
-
},
|
|
70575
70598
|
"userManagement.revokeOauthSession": {
|
|
70576
70599
|
capName: "user-management",
|
|
70577
70600
|
capScope: "system",
|
|
@@ -74143,9 +74166,13 @@ new Map(Object.entries({
|
|
|
74143
74166
|
"stream-online": "device-events",
|
|
74144
74167
|
"stream-offline": "device-events",
|
|
74145
74168
|
"detection-blind": "device-events",
|
|
74169
|
+
"motion-noisy": "device-events",
|
|
74170
|
+
"motion-calm": "device-events",
|
|
74146
74171
|
"recording-stalled": "device-events",
|
|
74147
74172
|
"recording-healthy": "device-events",
|
|
74148
74173
|
"recording-degraded": "device-events",
|
|
74174
|
+
"device-attention-required": "device-events",
|
|
74175
|
+
"device-attention-resolved": "device-events",
|
|
74149
74176
|
"node-online": "system",
|
|
74150
74177
|
"node-offline": "system",
|
|
74151
74178
|
"node-restarting": "system",
|
|
@@ -74162,6 +74189,8 @@ new Map(Object.entries({
|
|
|
74162
74189
|
"alert-critical": "system",
|
|
74163
74190
|
"alert-error": "system",
|
|
74164
74191
|
"alert-critical-resolved": "system",
|
|
74192
|
+
"rule-broken": "system",
|
|
74193
|
+
"rule-repaired": "system",
|
|
74165
74194
|
"storage-location-low": "system",
|
|
74166
74195
|
"storage-location-critical": "system",
|
|
74167
74196
|
"storage-location-ok": "system",
|
|
@@ -74226,6 +74255,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
74226
74255
|
label: "Detecting nothing",
|
|
74227
74256
|
kinds: ["detection-blind"]
|
|
74228
74257
|
},
|
|
74258
|
+
{
|
|
74259
|
+
id: "motion-noise",
|
|
74260
|
+
family: "device-events",
|
|
74261
|
+
label: "Motion without a subject",
|
|
74262
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
74263
|
+
},
|
|
74229
74264
|
{
|
|
74230
74265
|
id: "recording",
|
|
74231
74266
|
family: "device-events",
|
|
@@ -74236,6 +74271,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
74236
74271
|
"recording-degraded"
|
|
74237
74272
|
]
|
|
74238
74273
|
},
|
|
74274
|
+
{
|
|
74275
|
+
id: "device-attention",
|
|
74276
|
+
family: "device-events",
|
|
74277
|
+
label: "Needs attention",
|
|
74278
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
74279
|
+
},
|
|
74239
74280
|
{
|
|
74240
74281
|
id: "nodes",
|
|
74241
74282
|
family: "system",
|
|
@@ -74296,6 +74337,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
74296
74337
|
"alert-critical-resolved"
|
|
74297
74338
|
]
|
|
74298
74339
|
},
|
|
74340
|
+
{
|
|
74341
|
+
id: "rule-health",
|
|
74342
|
+
family: "system",
|
|
74343
|
+
label: "Notification rules",
|
|
74344
|
+
kinds: ["rule-broken", "rule-repaired"]
|
|
74345
|
+
},
|
|
74299
74346
|
{
|
|
74300
74347
|
id: "alarm",
|
|
74301
74348
|
family: "alarm",
|
|
@@ -74369,6 +74416,7 @@ var ALERT_EPISODE = [
|
|
|
74369
74416
|
"alert-error",
|
|
74370
74417
|
"alert-critical-resolved"
|
|
74371
74418
|
];
|
|
74419
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
74372
74420
|
var UPDATES = [
|
|
74373
74421
|
"addon-update-available",
|
|
74374
74422
|
"server-update-available",
|
|
@@ -74398,9 +74446,12 @@ var DEVICE_EVENTS = [
|
|
|
74398
74446
|
"stream-online",
|
|
74399
74447
|
"stream-offline",
|
|
74400
74448
|
"detection-blind",
|
|
74449
|
+
"motion-noisy",
|
|
74450
|
+
"motion-calm",
|
|
74401
74451
|
"recording-stalled",
|
|
74402
74452
|
"recording-healthy",
|
|
74403
74453
|
"recording-degraded",
|
|
74454
|
+
...DEVICE_ATTENTION,
|
|
74404
74455
|
...ALARM
|
|
74405
74456
|
];
|
|
74406
74457
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -74568,7 +74619,13 @@ var STATE_SUMMARY_VARS = [
|
|
|
74568
74619
|
[...RULE_TEXT],
|
|
74569
74620
|
[...RULE_TEXT],
|
|
74570
74621
|
[...RULE_TEXT],
|
|
74571
|
-
|
|
74622
|
+
[...RULE_TEXT],
|
|
74623
|
+
[...RULE_TEXT],
|
|
74624
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74625
|
+
[...RULE_TEXT],
|
|
74626
|
+
[...RULE_TEXT],
|
|
74627
|
+
[...RULE_TEXT],
|
|
74628
|
+
[...RULE_TEXT],
|
|
74572
74629
|
[...RULE_TEXT],
|
|
74573
74630
|
[...RULE_TEXT],
|
|
74574
74631
|
[...RULE_TEXT],
|
|
@@ -74586,11 +74643,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
74586
74643
|
[...RULE_TEXT],
|
|
74587
74644
|
[...RULE_TEXT],
|
|
74588
74645
|
[...RULE_TEXT],
|
|
74646
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74589
74647
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74648
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74590
74649
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74591
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74592
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74593
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74650
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74594
74651
|
[...RULE_TEXT],
|
|
74595
74652
|
[...RULE_TEXT],
|
|
74596
74653
|
[...RULE_TEXT],
|
|
@@ -74611,6 +74668,125 @@ var STATE_SUMMARY_VARS = [
|
|
|
74611
74668
|
[...RULE_TEXT],
|
|
74612
74669
|
...STATE_SUMMARY_VARS
|
|
74613
74670
|
];
|
|
74671
|
+
new Map([
|
|
74672
|
+
{
|
|
74673
|
+
id: "device-connectivity",
|
|
74674
|
+
family: "device-events",
|
|
74675
|
+
label: "Device connectivity (offline / back online)",
|
|
74676
|
+
bad: ["device-offline"],
|
|
74677
|
+
recovery: ["device-online"],
|
|
74678
|
+
snapshotLabel: "Devices offline now",
|
|
74679
|
+
snapshotSection: "device-state"
|
|
74680
|
+
},
|
|
74681
|
+
{
|
|
74682
|
+
id: "device-switch",
|
|
74683
|
+
family: "device-events",
|
|
74684
|
+
label: "Device switched off / back on",
|
|
74685
|
+
bad: ["device-disabled"],
|
|
74686
|
+
recovery: ["device-enabled"],
|
|
74687
|
+
snapshotLabel: "Devices switched off now",
|
|
74688
|
+
snapshotSection: "device-state"
|
|
74689
|
+
},
|
|
74690
|
+
{
|
|
74691
|
+
id: "stream-connectivity",
|
|
74692
|
+
family: "device-events",
|
|
74693
|
+
label: "Stream connectivity (offline / back online)",
|
|
74694
|
+
bad: ["stream-offline"],
|
|
74695
|
+
recovery: ["stream-online"],
|
|
74696
|
+
snapshotLabel: "Streams offline now",
|
|
74697
|
+
snapshotSection: "streams"
|
|
74698
|
+
},
|
|
74699
|
+
{
|
|
74700
|
+
id: "battery",
|
|
74701
|
+
family: "device-events",
|
|
74702
|
+
label: "Battery (low / back to normal)",
|
|
74703
|
+
bad: ["device-battery-low"],
|
|
74704
|
+
recovery: ["device-battery-normal"],
|
|
74705
|
+
snapshotLabel: "Batteries low now",
|
|
74706
|
+
snapshotSection: "battery"
|
|
74707
|
+
},
|
|
74708
|
+
{
|
|
74709
|
+
id: "consumables",
|
|
74710
|
+
family: "device-events",
|
|
74711
|
+
label: "Consumables (low / replaced)",
|
|
74712
|
+
bad: ["device-consumable-low"],
|
|
74713
|
+
recovery: ["device-consumable-normal"],
|
|
74714
|
+
snapshotLabel: "Consumables low now",
|
|
74715
|
+
snapshotSection: "consumables"
|
|
74716
|
+
},
|
|
74717
|
+
{
|
|
74718
|
+
id: "tanks",
|
|
74719
|
+
family: "device-events",
|
|
74720
|
+
label: "Tanks (low or full / back to normal)",
|
|
74721
|
+
bad: ["device-tank-low", "device-tank-full"],
|
|
74722
|
+
recovery: ["device-tank-normal"],
|
|
74723
|
+
snapshotLabel: "Tanks low or full now",
|
|
74724
|
+
snapshotSection: "tanks"
|
|
74725
|
+
},
|
|
74726
|
+
{
|
|
74727
|
+
id: "motion-noise",
|
|
74728
|
+
family: "device-events",
|
|
74729
|
+
label: "Motion without a subject (constant / calm again)",
|
|
74730
|
+
bad: ["motion-noisy"],
|
|
74731
|
+
recovery: ["motion-calm"],
|
|
74732
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
74733
|
+
snapshotSection: null
|
|
74734
|
+
},
|
|
74735
|
+
{
|
|
74736
|
+
id: "recording-health",
|
|
74737
|
+
family: "device-events",
|
|
74738
|
+
label: "Recording health (stalled or degraded / recording again)",
|
|
74739
|
+
bad: ["recording-stalled", "recording-degraded"],
|
|
74740
|
+
recovery: ["recording-healthy"],
|
|
74741
|
+
snapshotLabel: "Recordings stalled now",
|
|
74742
|
+
snapshotSection: null
|
|
74743
|
+
},
|
|
74744
|
+
{
|
|
74745
|
+
id: "device-attention",
|
|
74746
|
+
family: "device-events",
|
|
74747
|
+
label: "Device needs attention (raised / resolved)",
|
|
74748
|
+
bad: ["device-attention-required"],
|
|
74749
|
+
recovery: ["device-attention-resolved"],
|
|
74750
|
+
snapshotLabel: "Devices needing attention now",
|
|
74751
|
+
snapshotSection: null
|
|
74752
|
+
},
|
|
74753
|
+
{
|
|
74754
|
+
id: "node-connectivity",
|
|
74755
|
+
family: "system",
|
|
74756
|
+
label: "Node connectivity (offline / back online)",
|
|
74757
|
+
bad: ["node-offline"],
|
|
74758
|
+
recovery: ["node-online"],
|
|
74759
|
+
snapshotLabel: "Nodes offline now",
|
|
74760
|
+
snapshotSection: "nodes"
|
|
74761
|
+
},
|
|
74762
|
+
{
|
|
74763
|
+
id: "storage-space",
|
|
74764
|
+
family: "system",
|
|
74765
|
+
label: "Storage space (low or critical / ok again)",
|
|
74766
|
+
bad: ["storage-location-low", "storage-location-critical"],
|
|
74767
|
+
recovery: ["storage-location-ok"],
|
|
74768
|
+
snapshotLabel: "Storage locations low now",
|
|
74769
|
+
snapshotSection: null
|
|
74770
|
+
},
|
|
74771
|
+
{
|
|
74772
|
+
id: "critical-alerts",
|
|
74773
|
+
family: "system",
|
|
74774
|
+
label: "Critical alerts (raised / resolved)",
|
|
74775
|
+
bad: ["alert-critical"],
|
|
74776
|
+
recovery: ["alert-critical-resolved"],
|
|
74777
|
+
snapshotLabel: "Critical alerts open now",
|
|
74778
|
+
snapshotSection: null
|
|
74779
|
+
},
|
|
74780
|
+
{
|
|
74781
|
+
id: "rule-health",
|
|
74782
|
+
family: "system",
|
|
74783
|
+
label: "Rule health (broken / repaired)",
|
|
74784
|
+
bad: ["rule-broken"],
|
|
74785
|
+
recovery: ["rule-repaired"],
|
|
74786
|
+
snapshotLabel: "Notification rules broken now",
|
|
74787
|
+
snapshotSection: null
|
|
74788
|
+
}
|
|
74789
|
+
].flatMap((spec) => [...spec.bad, ...spec.recovery].map((kind) => [kind, spec])));
|
|
74614
74790
|
new Set([
|
|
74615
74791
|
"disarmed",
|
|
74616
74792
|
"armed_home",
|
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-
|
|
5
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
6
6
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
7
7
|
EventCategory["SystemBoot"] = "system.boot";
|
|
8
8
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -319,6 +319,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
319
319
|
*/
|
|
320
320
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
321
321
|
/**
|
|
322
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
323
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
324
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
325
|
+
* {@link PipelineMotionCalm}.
|
|
326
|
+
*/
|
|
327
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
328
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
329
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
330
|
+
/**
|
|
322
331
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
323
332
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
324
333
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -690,6 +699,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
690
699
|
EventCategory["BackupRestored"] = "backup.restored";
|
|
691
700
|
EventCategory["NotificationDispatched"] = "notification.dispatched";
|
|
692
701
|
EventCategory["NotificationFailed"] = "notification.failed";
|
|
702
|
+
/**
|
|
703
|
+
* A notification rule that cannot work (D905): its stored row does not load,
|
|
704
|
+
* or it still names a device / delivery target the prune CONFIRMED deleted.
|
|
705
|
+
* One edge per rule per distinct set of reasons; never on an unanswered read.
|
|
706
|
+
*/
|
|
707
|
+
EventCategory["NotificationRuleBroken"] = "notification.rule-broken";
|
|
708
|
+
/** The clear of {@link NotificationRuleBroken}: the rule loads and names nothing deleted. */
|
|
709
|
+
EventCategory["NotificationRuleRepaired"] = "notification.rule-repaired";
|
|
693
710
|
EventCategory["DeviceUpdated"] = "device.updated";
|
|
694
711
|
/**
|
|
695
712
|
* Transport-level connectivity. Emitted by the device driver when
|
|
@@ -5550,7 +5567,7 @@ var ZodIssueCode = {
|
|
|
5550
5567
|
var ZodFirstPartyTypeKind;
|
|
5551
5568
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5552
5569
|
//#endregion
|
|
5553
|
-
//#region ../types/dist/sleep-
|
|
5570
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5554
5571
|
/**
|
|
5555
5572
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5556
5573
|
* window to float samples (D455).
|
|
@@ -8142,7 +8159,7 @@ var EntryDescriptorSchema = object({
|
|
|
8142
8159
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
8143
8160
|
fields: record(string(), unknown())
|
|
8144
8161
|
}).strict();
|
|
8145
|
-
/** What crosses the wire
|
|
8162
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
8146
8163
|
var RecordKindDeclarationSchema = object({
|
|
8147
8164
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
8148
8165
|
class: _enum(RECORD_CLASSES),
|
|
@@ -8161,14 +8178,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
8161
8178
|
secretPaths: array(string().min(1)).default([]),
|
|
8162
8179
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
8163
8180
|
secretArrayKeys: record(string(), string()).default({}),
|
|
8164
|
-
/**
|
|
8165
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
8166
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
8167
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
8168
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
8169
|
-
* removal still sends it. Never set it.
|
|
8170
|
-
*/
|
|
8171
|
-
adoptsFrom: string().min(1).optional(),
|
|
8172
8181
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
8173
8182
|
transactFamily: string().min(1).optional(),
|
|
8174
8183
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -13068,17 +13077,6 @@ object({
|
|
|
13068
13077
|
createdAt: number(),
|
|
13069
13078
|
updatedAt: number()
|
|
13070
13079
|
});
|
|
13071
|
-
object({
|
|
13072
|
-
id: string(),
|
|
13073
|
-
label: string(),
|
|
13074
|
-
isAdmin: boolean().default(false),
|
|
13075
|
-
allowedProviders: AllowedProviderSchema,
|
|
13076
|
-
allowedDevices: AllowedDevicesSchema,
|
|
13077
|
-
tokenHash: string(),
|
|
13078
|
-
tokenPrefix: string(),
|
|
13079
|
-
createdAt: number(),
|
|
13080
|
-
lastUsedAt: number().optional()
|
|
13081
|
-
});
|
|
13082
13080
|
object({
|
|
13083
13081
|
id: string(),
|
|
13084
13082
|
userId: string(),
|
|
@@ -16973,16 +16971,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16973
16971
|
var DeclareKindResultSchema = object({
|
|
16974
16972
|
kindId: number().int(),
|
|
16975
16973
|
state: RecordKindStateSchema,
|
|
16976
|
-
createdIndexes: array(string())
|
|
16977
|
-
/**
|
|
16978
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16979
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16980
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16981
|
-
*/
|
|
16982
|
-
adoptionPending: _null()
|
|
16974
|
+
createdIndexes: array(string())
|
|
16983
16975
|
});
|
|
16984
16976
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16985
16977
|
var SecretRefsList = array(string());
|
|
16978
|
+
/**
|
|
16979
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16980
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16981
|
+
*/
|
|
16982
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16983
|
+
object({
|
|
16984
|
+
op: literal("put"),
|
|
16985
|
+
kind: RecordKindNameSchema,
|
|
16986
|
+
record: RecordInputSchema,
|
|
16987
|
+
ifRev: number().int().min(0).optional()
|
|
16988
|
+
}),
|
|
16989
|
+
object({
|
|
16990
|
+
op: literal("patch"),
|
|
16991
|
+
kind: RecordKindNameSchema,
|
|
16992
|
+
id: RecordIdSchema,
|
|
16993
|
+
data: RecordBodySchema,
|
|
16994
|
+
at: number().int().nullable().optional(),
|
|
16995
|
+
expiresAt: number().int().nullable().optional(),
|
|
16996
|
+
ifRev: number().int().min(1).optional()
|
|
16997
|
+
}),
|
|
16998
|
+
object({
|
|
16999
|
+
op: literal("delete"),
|
|
17000
|
+
kind: RecordKindNameSchema,
|
|
17001
|
+
id: RecordIdSchema
|
|
17002
|
+
})
|
|
17003
|
+
]);
|
|
16986
17004
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16987
17005
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16988
17006
|
kind: "mutation",
|
|
@@ -17089,6 +17107,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
17089
17107
|
}), {
|
|
17090
17108
|
kind: "mutation",
|
|
17091
17109
|
auth: "admin"
|
|
17110
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
17111
|
+
results: array(object({
|
|
17112
|
+
rev: number().int().nullable(),
|
|
17113
|
+
deleted: boolean()
|
|
17114
|
+
})),
|
|
17115
|
+
releasedRefs: SecretRefsList,
|
|
17116
|
+
secretRefs: SecretRefsList
|
|
17117
|
+
}), {
|
|
17118
|
+
kind: "mutation",
|
|
17119
|
+
auth: "admin"
|
|
17092
17120
|
}), method(object({
|
|
17093
17121
|
deviceId: number().int(),
|
|
17094
17122
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42469,9 +42497,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42469
42497
|
"node-updating",
|
|
42470
42498
|
"node-inference-unavailable",
|
|
42471
42499
|
"detection-blind",
|
|
42500
|
+
"motion-noisy",
|
|
42501
|
+
"motion-calm",
|
|
42472
42502
|
"recording-stalled",
|
|
42473
42503
|
"recording-healthy",
|
|
42474
42504
|
"recording-degraded",
|
|
42505
|
+
"device-attention-required",
|
|
42506
|
+
"device-attention-resolved",
|
|
42475
42507
|
"storage-location-low",
|
|
42476
42508
|
"storage-location-critical",
|
|
42477
42509
|
"storage-location-ok",
|
|
@@ -42495,6 +42527,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42495
42527
|
"alert-critical",
|
|
42496
42528
|
"alert-error",
|
|
42497
42529
|
"alert-critical-resolved",
|
|
42530
|
+
"rule-broken",
|
|
42531
|
+
"rule-repaired",
|
|
42498
42532
|
"camera-online",
|
|
42499
42533
|
"camera-offline",
|
|
42500
42534
|
"camera-disabled",
|
|
@@ -54926,6 +54960,16 @@ object({
|
|
|
54926
54960
|
powerState: string().nullable(),
|
|
54927
54961
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54928
54962
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54963
|
+
/**
|
|
54964
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
54965
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
54966
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
54967
|
+
*/
|
|
54968
|
+
filterCleaningDue: boolean().nullable(),
|
|
54969
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
54970
|
+
machineCareDue: boolean().nullable(),
|
|
54971
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
54972
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
54929
54973
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
54930
54974
|
halfLoad: boolean().nullable(),
|
|
54931
54975
|
hygienePlus: boolean().nullable(),
|
|
@@ -61543,16 +61587,6 @@ var UpdateUserInputSchema = object({
|
|
|
61543
61587
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
61544
61588
|
scopes: array(TokenScopeSchema).optional()
|
|
61545
61589
|
});
|
|
61546
|
-
var ApiKeySummarySchema = object({
|
|
61547
|
-
id: string(),
|
|
61548
|
-
label: string(),
|
|
61549
|
-
isAdmin: boolean().default(false),
|
|
61550
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
61551
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
61552
|
-
tokenPrefix: string(),
|
|
61553
|
-
createdAt: number(),
|
|
61554
|
-
lastUsedAt: number().optional()
|
|
61555
|
-
});
|
|
61556
61590
|
var OauthSessionSummarySchema = object({
|
|
61557
61591
|
id: string(),
|
|
61558
61592
|
userId: string(),
|
|
@@ -61574,8 +61608,7 @@ var TotpStatusSchema = object({
|
|
|
61574
61608
|
confirmedAt: number().nullable()
|
|
61575
61609
|
});
|
|
61576
61610
|
/**
|
|
61577
|
-
* user-management — singleton capability for user accounts
|
|
61578
|
-
* legacy API-key rows.
|
|
61611
|
+
* user-management — singleton capability for user accounts.
|
|
61579
61612
|
*
|
|
61580
61613
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
61581
61614
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -61631,10 +61664,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
61631
61664
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
61632
61665
|
kind: "mutation",
|
|
61633
61666
|
access: "view"
|
|
61634
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
61635
|
-
kind: "mutation",
|
|
61636
|
-
auth: "admin",
|
|
61637
|
-
access: "delete"
|
|
61638
61667
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
61639
61668
|
kind: "mutation",
|
|
61640
61669
|
auth: "admin",
|
|
@@ -69147,6 +69176,12 @@ Object.freeze({
|
|
|
69147
69176
|
addonId: null,
|
|
69148
69177
|
access: "view"
|
|
69149
69178
|
},
|
|
69179
|
+
"records.transact": {
|
|
69180
|
+
capName: "records",
|
|
69181
|
+
capScope: "system",
|
|
69182
|
+
addonId: null,
|
|
69183
|
+
access: "create"
|
|
69184
|
+
},
|
|
69150
69185
|
"sceneMonitor.captureReference": {
|
|
69151
69186
|
capName: "scene-monitor",
|
|
69152
69187
|
capScope: "device",
|
|
@@ -70479,12 +70514,6 @@ Object.freeze({
|
|
|
70479
70514
|
addonId: null,
|
|
70480
70515
|
access: "view"
|
|
70481
70516
|
},
|
|
70482
|
-
"userManagement.listApiKeys": {
|
|
70483
|
-
capName: "user-management",
|
|
70484
|
-
capScope: "system",
|
|
70485
|
-
addonId: null,
|
|
70486
|
-
access: "view"
|
|
70487
|
-
},
|
|
70488
70517
|
"userManagement.listExternalIdentities": {
|
|
70489
70518
|
capName: "user-management",
|
|
70490
70519
|
capScope: "system",
|
|
@@ -70539,12 +70568,6 @@ Object.freeze({
|
|
|
70539
70568
|
addonId: null,
|
|
70540
70569
|
access: "create"
|
|
70541
70570
|
},
|
|
70542
|
-
"userManagement.revokeApiKey": {
|
|
70543
|
-
capName: "user-management",
|
|
70544
|
-
capScope: "system",
|
|
70545
|
-
addonId: null,
|
|
70546
|
-
access: "delete"
|
|
70547
|
-
},
|
|
70548
70571
|
"userManagement.revokeOauthSession": {
|
|
70549
70572
|
capName: "user-management",
|
|
70550
70573
|
capScope: "system",
|
|
@@ -74116,9 +74139,13 @@ new Map(Object.entries({
|
|
|
74116
74139
|
"stream-online": "device-events",
|
|
74117
74140
|
"stream-offline": "device-events",
|
|
74118
74141
|
"detection-blind": "device-events",
|
|
74142
|
+
"motion-noisy": "device-events",
|
|
74143
|
+
"motion-calm": "device-events",
|
|
74119
74144
|
"recording-stalled": "device-events",
|
|
74120
74145
|
"recording-healthy": "device-events",
|
|
74121
74146
|
"recording-degraded": "device-events",
|
|
74147
|
+
"device-attention-required": "device-events",
|
|
74148
|
+
"device-attention-resolved": "device-events",
|
|
74122
74149
|
"node-online": "system",
|
|
74123
74150
|
"node-offline": "system",
|
|
74124
74151
|
"node-restarting": "system",
|
|
@@ -74135,6 +74162,8 @@ new Map(Object.entries({
|
|
|
74135
74162
|
"alert-critical": "system",
|
|
74136
74163
|
"alert-error": "system",
|
|
74137
74164
|
"alert-critical-resolved": "system",
|
|
74165
|
+
"rule-broken": "system",
|
|
74166
|
+
"rule-repaired": "system",
|
|
74138
74167
|
"storage-location-low": "system",
|
|
74139
74168
|
"storage-location-critical": "system",
|
|
74140
74169
|
"storage-location-ok": "system",
|
|
@@ -74199,6 +74228,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
74199
74228
|
label: "Detecting nothing",
|
|
74200
74229
|
kinds: ["detection-blind"]
|
|
74201
74230
|
},
|
|
74231
|
+
{
|
|
74232
|
+
id: "motion-noise",
|
|
74233
|
+
family: "device-events",
|
|
74234
|
+
label: "Motion without a subject",
|
|
74235
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
74236
|
+
},
|
|
74202
74237
|
{
|
|
74203
74238
|
id: "recording",
|
|
74204
74239
|
family: "device-events",
|
|
@@ -74209,6 +74244,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
74209
74244
|
"recording-degraded"
|
|
74210
74245
|
]
|
|
74211
74246
|
},
|
|
74247
|
+
{
|
|
74248
|
+
id: "device-attention",
|
|
74249
|
+
family: "device-events",
|
|
74250
|
+
label: "Needs attention",
|
|
74251
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
74252
|
+
},
|
|
74212
74253
|
{
|
|
74213
74254
|
id: "nodes",
|
|
74214
74255
|
family: "system",
|
|
@@ -74269,6 +74310,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
74269
74310
|
"alert-critical-resolved"
|
|
74270
74311
|
]
|
|
74271
74312
|
},
|
|
74313
|
+
{
|
|
74314
|
+
id: "rule-health",
|
|
74315
|
+
family: "system",
|
|
74316
|
+
label: "Notification rules",
|
|
74317
|
+
kinds: ["rule-broken", "rule-repaired"]
|
|
74318
|
+
},
|
|
74272
74319
|
{
|
|
74273
74320
|
id: "alarm",
|
|
74274
74321
|
family: "alarm",
|
|
@@ -74342,6 +74389,7 @@ var ALERT_EPISODE = [
|
|
|
74342
74389
|
"alert-error",
|
|
74343
74390
|
"alert-critical-resolved"
|
|
74344
74391
|
];
|
|
74392
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
74345
74393
|
var UPDATES = [
|
|
74346
74394
|
"addon-update-available",
|
|
74347
74395
|
"server-update-available",
|
|
@@ -74371,9 +74419,12 @@ var DEVICE_EVENTS = [
|
|
|
74371
74419
|
"stream-online",
|
|
74372
74420
|
"stream-offline",
|
|
74373
74421
|
"detection-blind",
|
|
74422
|
+
"motion-noisy",
|
|
74423
|
+
"motion-calm",
|
|
74374
74424
|
"recording-stalled",
|
|
74375
74425
|
"recording-healthy",
|
|
74376
74426
|
"recording-degraded",
|
|
74427
|
+
...DEVICE_ATTENTION,
|
|
74377
74428
|
...ALARM
|
|
74378
74429
|
];
|
|
74379
74430
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -74541,7 +74592,13 @@ var STATE_SUMMARY_VARS = [
|
|
|
74541
74592
|
[...RULE_TEXT],
|
|
74542
74593
|
[...RULE_TEXT],
|
|
74543
74594
|
[...RULE_TEXT],
|
|
74544
|
-
|
|
74595
|
+
[...RULE_TEXT],
|
|
74596
|
+
[...RULE_TEXT],
|
|
74597
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74598
|
+
[...RULE_TEXT],
|
|
74599
|
+
[...RULE_TEXT],
|
|
74600
|
+
[...RULE_TEXT],
|
|
74601
|
+
[...RULE_TEXT],
|
|
74545
74602
|
[...RULE_TEXT],
|
|
74546
74603
|
[...RULE_TEXT],
|
|
74547
74604
|
[...RULE_TEXT],
|
|
@@ -74559,11 +74616,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
74559
74616
|
[...RULE_TEXT],
|
|
74560
74617
|
[...RULE_TEXT],
|
|
74561
74618
|
[...RULE_TEXT],
|
|
74619
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74562
74620
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74621
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74563
74622
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74564
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74565
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74566
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74623
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
74567
74624
|
[...RULE_TEXT],
|
|
74568
74625
|
[...RULE_TEXT],
|
|
74569
74626
|
[...RULE_TEXT],
|
|
@@ -74584,6 +74641,125 @@ var STATE_SUMMARY_VARS = [
|
|
|
74584
74641
|
[...RULE_TEXT],
|
|
74585
74642
|
...STATE_SUMMARY_VARS
|
|
74586
74643
|
];
|
|
74644
|
+
new Map([
|
|
74645
|
+
{
|
|
74646
|
+
id: "device-connectivity",
|
|
74647
|
+
family: "device-events",
|
|
74648
|
+
label: "Device connectivity (offline / back online)",
|
|
74649
|
+
bad: ["device-offline"],
|
|
74650
|
+
recovery: ["device-online"],
|
|
74651
|
+
snapshotLabel: "Devices offline now",
|
|
74652
|
+
snapshotSection: "device-state"
|
|
74653
|
+
},
|
|
74654
|
+
{
|
|
74655
|
+
id: "device-switch",
|
|
74656
|
+
family: "device-events",
|
|
74657
|
+
label: "Device switched off / back on",
|
|
74658
|
+
bad: ["device-disabled"],
|
|
74659
|
+
recovery: ["device-enabled"],
|
|
74660
|
+
snapshotLabel: "Devices switched off now",
|
|
74661
|
+
snapshotSection: "device-state"
|
|
74662
|
+
},
|
|
74663
|
+
{
|
|
74664
|
+
id: "stream-connectivity",
|
|
74665
|
+
family: "device-events",
|
|
74666
|
+
label: "Stream connectivity (offline / back online)",
|
|
74667
|
+
bad: ["stream-offline"],
|
|
74668
|
+
recovery: ["stream-online"],
|
|
74669
|
+
snapshotLabel: "Streams offline now",
|
|
74670
|
+
snapshotSection: "streams"
|
|
74671
|
+
},
|
|
74672
|
+
{
|
|
74673
|
+
id: "battery",
|
|
74674
|
+
family: "device-events",
|
|
74675
|
+
label: "Battery (low / back to normal)",
|
|
74676
|
+
bad: ["device-battery-low"],
|
|
74677
|
+
recovery: ["device-battery-normal"],
|
|
74678
|
+
snapshotLabel: "Batteries low now",
|
|
74679
|
+
snapshotSection: "battery"
|
|
74680
|
+
},
|
|
74681
|
+
{
|
|
74682
|
+
id: "consumables",
|
|
74683
|
+
family: "device-events",
|
|
74684
|
+
label: "Consumables (low / replaced)",
|
|
74685
|
+
bad: ["device-consumable-low"],
|
|
74686
|
+
recovery: ["device-consumable-normal"],
|
|
74687
|
+
snapshotLabel: "Consumables low now",
|
|
74688
|
+
snapshotSection: "consumables"
|
|
74689
|
+
},
|
|
74690
|
+
{
|
|
74691
|
+
id: "tanks",
|
|
74692
|
+
family: "device-events",
|
|
74693
|
+
label: "Tanks (low or full / back to normal)",
|
|
74694
|
+
bad: ["device-tank-low", "device-tank-full"],
|
|
74695
|
+
recovery: ["device-tank-normal"],
|
|
74696
|
+
snapshotLabel: "Tanks low or full now",
|
|
74697
|
+
snapshotSection: "tanks"
|
|
74698
|
+
},
|
|
74699
|
+
{
|
|
74700
|
+
id: "motion-noise",
|
|
74701
|
+
family: "device-events",
|
|
74702
|
+
label: "Motion without a subject (constant / calm again)",
|
|
74703
|
+
bad: ["motion-noisy"],
|
|
74704
|
+
recovery: ["motion-calm"],
|
|
74705
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
74706
|
+
snapshotSection: null
|
|
74707
|
+
},
|
|
74708
|
+
{
|
|
74709
|
+
id: "recording-health",
|
|
74710
|
+
family: "device-events",
|
|
74711
|
+
label: "Recording health (stalled or degraded / recording again)",
|
|
74712
|
+
bad: ["recording-stalled", "recording-degraded"],
|
|
74713
|
+
recovery: ["recording-healthy"],
|
|
74714
|
+
snapshotLabel: "Recordings stalled now",
|
|
74715
|
+
snapshotSection: null
|
|
74716
|
+
},
|
|
74717
|
+
{
|
|
74718
|
+
id: "device-attention",
|
|
74719
|
+
family: "device-events",
|
|
74720
|
+
label: "Device needs attention (raised / resolved)",
|
|
74721
|
+
bad: ["device-attention-required"],
|
|
74722
|
+
recovery: ["device-attention-resolved"],
|
|
74723
|
+
snapshotLabel: "Devices needing attention now",
|
|
74724
|
+
snapshotSection: null
|
|
74725
|
+
},
|
|
74726
|
+
{
|
|
74727
|
+
id: "node-connectivity",
|
|
74728
|
+
family: "system",
|
|
74729
|
+
label: "Node connectivity (offline / back online)",
|
|
74730
|
+
bad: ["node-offline"],
|
|
74731
|
+
recovery: ["node-online"],
|
|
74732
|
+
snapshotLabel: "Nodes offline now",
|
|
74733
|
+
snapshotSection: "nodes"
|
|
74734
|
+
},
|
|
74735
|
+
{
|
|
74736
|
+
id: "storage-space",
|
|
74737
|
+
family: "system",
|
|
74738
|
+
label: "Storage space (low or critical / ok again)",
|
|
74739
|
+
bad: ["storage-location-low", "storage-location-critical"],
|
|
74740
|
+
recovery: ["storage-location-ok"],
|
|
74741
|
+
snapshotLabel: "Storage locations low now",
|
|
74742
|
+
snapshotSection: null
|
|
74743
|
+
},
|
|
74744
|
+
{
|
|
74745
|
+
id: "critical-alerts",
|
|
74746
|
+
family: "system",
|
|
74747
|
+
label: "Critical alerts (raised / resolved)",
|
|
74748
|
+
bad: ["alert-critical"],
|
|
74749
|
+
recovery: ["alert-critical-resolved"],
|
|
74750
|
+
snapshotLabel: "Critical alerts open now",
|
|
74751
|
+
snapshotSection: null
|
|
74752
|
+
},
|
|
74753
|
+
{
|
|
74754
|
+
id: "rule-health",
|
|
74755
|
+
family: "system",
|
|
74756
|
+
label: "Rule health (broken / repaired)",
|
|
74757
|
+
bad: ["rule-broken"],
|
|
74758
|
+
recovery: ["rule-repaired"],
|
|
74759
|
+
snapshotLabel: "Notification rules broken now",
|
|
74760
|
+
snapshotSection: null
|
|
74761
|
+
}
|
|
74762
|
+
].flatMap((spec) => [...spec.bad, ...spec.recovery].map((kind) => [kind, spec])));
|
|
74587
74763
|
new Set([
|
|
74588
74764
|
"disarmed",
|
|
74589
74765
|
"armed_home",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-notifiers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.616",
|
|
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",
|