@camstack/addon-provider-rtsp 1.2.140 → 1.2.142
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 +239 -67
- package/dist/addon.mjs +239 -67
- package/i18n/en.json +2 -4
- package/i18n/it.json +2 -4
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -23,7 +23,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
23
|
//#endregion
|
|
24
24
|
let node_net = require("node:net");
|
|
25
25
|
node_net = __toESM(node_net);
|
|
26
|
-
//#region ../types/dist/event-category-
|
|
26
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
27
27
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
28
28
|
EventCategory["SystemBoot"] = "system.boot";
|
|
29
29
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -340,6 +340,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
340
340
|
*/
|
|
341
341
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
342
342
|
/**
|
|
343
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
344
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
345
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
346
|
+
* {@link PipelineMotionCalm}.
|
|
347
|
+
*/
|
|
348
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
349
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
350
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
351
|
+
/**
|
|
343
352
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
344
353
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
345
354
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -711,6 +720,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
711
720
|
EventCategory["BackupRestored"] = "backup.restored";
|
|
712
721
|
EventCategory["NotificationDispatched"] = "notification.dispatched";
|
|
713
722
|
EventCategory["NotificationFailed"] = "notification.failed";
|
|
723
|
+
/**
|
|
724
|
+
* A notification rule that cannot work (D905): its stored row does not load,
|
|
725
|
+
* or it still names a device / delivery target the prune CONFIRMED deleted.
|
|
726
|
+
* One edge per rule per distinct set of reasons; never on an unanswered read.
|
|
727
|
+
*/
|
|
728
|
+
EventCategory["NotificationRuleBroken"] = "notification.rule-broken";
|
|
729
|
+
/** The clear of {@link NotificationRuleBroken}: the rule loads and names nothing deleted. */
|
|
730
|
+
EventCategory["NotificationRuleRepaired"] = "notification.rule-repaired";
|
|
714
731
|
EventCategory["DeviceUpdated"] = "device.updated";
|
|
715
732
|
/**
|
|
716
733
|
* Transport-level connectivity. Emitted by the device driver when
|
|
@@ -5438,7 +5455,7 @@ var ZodIssueCode = {
|
|
|
5438
5455
|
var ZodFirstPartyTypeKind;
|
|
5439
5456
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5440
5457
|
//#endregion
|
|
5441
|
-
//#region ../types/dist/sleep-
|
|
5458
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5442
5459
|
/**
|
|
5443
5460
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5444
5461
|
* window to float samples (D455).
|
|
@@ -7967,7 +7984,7 @@ var EntryDescriptorSchema = object({
|
|
|
7967
7984
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7968
7985
|
fields: record(string(), unknown())
|
|
7969
7986
|
}).strict();
|
|
7970
|
-
/** What crosses the wire
|
|
7987
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7971
7988
|
var RecordKindDeclarationSchema = object({
|
|
7972
7989
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7973
7990
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7986,14 +8003,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7986
8003
|
secretPaths: array(string().min(1)).default([]),
|
|
7987
8004
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7988
8005
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7989
|
-
/**
|
|
7990
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7991
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
7992
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
7993
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
7994
|
-
* removal still sends it. Never set it.
|
|
7995
|
-
*/
|
|
7996
|
-
adoptsFrom: string().min(1).optional(),
|
|
7997
8006
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
7998
8007
|
transactFamily: string().min(1).optional(),
|
|
7999
8008
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12792,17 +12801,6 @@ object({
|
|
|
12792
12801
|
createdAt: number(),
|
|
12793
12802
|
updatedAt: number()
|
|
12794
12803
|
});
|
|
12795
|
-
object({
|
|
12796
|
-
id: string(),
|
|
12797
|
-
label: string(),
|
|
12798
|
-
isAdmin: boolean().default(false),
|
|
12799
|
-
allowedProviders: AllowedProviderSchema,
|
|
12800
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12801
|
-
tokenHash: string(),
|
|
12802
|
-
tokenPrefix: string(),
|
|
12803
|
-
createdAt: number(),
|
|
12804
|
-
lastUsedAt: number().optional()
|
|
12805
|
-
});
|
|
12806
12804
|
object({
|
|
12807
12805
|
id: string(),
|
|
12808
12806
|
userId: string(),
|
|
@@ -16784,16 +16782,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16784
16782
|
var DeclareKindResultSchema = object({
|
|
16785
16783
|
kindId: number().int(),
|
|
16786
16784
|
state: RecordKindStateSchema,
|
|
16787
|
-
createdIndexes: array(string())
|
|
16788
|
-
/**
|
|
16789
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16790
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16791
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16792
|
-
*/
|
|
16793
|
-
adoptionPending: _null()
|
|
16785
|
+
createdIndexes: array(string())
|
|
16794
16786
|
});
|
|
16795
16787
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16796
16788
|
var SecretRefsList = array(string());
|
|
16789
|
+
/**
|
|
16790
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16791
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16792
|
+
*/
|
|
16793
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16794
|
+
object({
|
|
16795
|
+
op: literal("put"),
|
|
16796
|
+
kind: RecordKindNameSchema,
|
|
16797
|
+
record: RecordInputSchema,
|
|
16798
|
+
ifRev: number().int().min(0).optional()
|
|
16799
|
+
}),
|
|
16800
|
+
object({
|
|
16801
|
+
op: literal("patch"),
|
|
16802
|
+
kind: RecordKindNameSchema,
|
|
16803
|
+
id: RecordIdSchema,
|
|
16804
|
+
data: RecordBodySchema,
|
|
16805
|
+
at: number().int().nullable().optional(),
|
|
16806
|
+
expiresAt: number().int().nullable().optional(),
|
|
16807
|
+
ifRev: number().int().min(1).optional()
|
|
16808
|
+
}),
|
|
16809
|
+
object({
|
|
16810
|
+
op: literal("delete"),
|
|
16811
|
+
kind: RecordKindNameSchema,
|
|
16812
|
+
id: RecordIdSchema
|
|
16813
|
+
})
|
|
16814
|
+
]);
|
|
16797
16815
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16798
16816
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16799
16817
|
kind: "mutation",
|
|
@@ -16900,6 +16918,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16900
16918
|
}), {
|
|
16901
16919
|
kind: "mutation",
|
|
16902
16920
|
auth: "admin"
|
|
16921
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16922
|
+
results: array(object({
|
|
16923
|
+
rev: number().int().nullable(),
|
|
16924
|
+
deleted: boolean()
|
|
16925
|
+
})),
|
|
16926
|
+
releasedRefs: SecretRefsList,
|
|
16927
|
+
secretRefs: SecretRefsList
|
|
16928
|
+
}), {
|
|
16929
|
+
kind: "mutation",
|
|
16930
|
+
auth: "admin"
|
|
16903
16931
|
}), method(object({
|
|
16904
16932
|
deviceId: number().int(),
|
|
16905
16933
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42494,9 +42522,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42494
42522
|
"node-updating",
|
|
42495
42523
|
"node-inference-unavailable",
|
|
42496
42524
|
"detection-blind",
|
|
42525
|
+
"motion-noisy",
|
|
42526
|
+
"motion-calm",
|
|
42497
42527
|
"recording-stalled",
|
|
42498
42528
|
"recording-healthy",
|
|
42499
42529
|
"recording-degraded",
|
|
42530
|
+
"device-attention-required",
|
|
42531
|
+
"device-attention-resolved",
|
|
42500
42532
|
"storage-location-low",
|
|
42501
42533
|
"storage-location-critical",
|
|
42502
42534
|
"storage-location-ok",
|
|
@@ -42520,6 +42552,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42520
42552
|
"alert-critical",
|
|
42521
42553
|
"alert-error",
|
|
42522
42554
|
"alert-critical-resolved",
|
|
42555
|
+
"rule-broken",
|
|
42556
|
+
"rule-repaired",
|
|
42523
42557
|
"camera-online",
|
|
42524
42558
|
"camera-offline",
|
|
42525
42559
|
"camera-disabled",
|
|
@@ -55930,6 +55964,16 @@ var DishwasherStatusSchema = object({
|
|
|
55930
55964
|
powerState: string().nullable(),
|
|
55931
55965
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55932
55966
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55967
|
+
/**
|
|
55968
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55969
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55970
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55971
|
+
*/
|
|
55972
|
+
filterCleaningDue: boolean().nullable(),
|
|
55973
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55974
|
+
machineCareDue: boolean().nullable(),
|
|
55975
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55976
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55933
55977
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55934
55978
|
halfLoad: boolean().nullable(),
|
|
55935
55979
|
hygienePlus: boolean().nullable(),
|
|
@@ -64580,16 +64624,6 @@ var UpdateUserInputSchema = object({
|
|
|
64580
64624
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64581
64625
|
scopes: array(TokenScopeSchema).optional()
|
|
64582
64626
|
});
|
|
64583
|
-
var ApiKeySummarySchema = object({
|
|
64584
|
-
id: string(),
|
|
64585
|
-
label: string(),
|
|
64586
|
-
isAdmin: boolean().default(false),
|
|
64587
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64588
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64589
|
-
tokenPrefix: string(),
|
|
64590
|
-
createdAt: number(),
|
|
64591
|
-
lastUsedAt: number().optional()
|
|
64592
|
-
});
|
|
64593
64627
|
var OauthSessionSummarySchema = object({
|
|
64594
64628
|
id: string(),
|
|
64595
64629
|
userId: string(),
|
|
@@ -64611,8 +64645,7 @@ var TotpStatusSchema = object({
|
|
|
64611
64645
|
confirmedAt: number().nullable()
|
|
64612
64646
|
});
|
|
64613
64647
|
/**
|
|
64614
|
-
* user-management — singleton capability for user accounts
|
|
64615
|
-
* legacy API-key rows.
|
|
64648
|
+
* user-management — singleton capability for user accounts.
|
|
64616
64649
|
*
|
|
64617
64650
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64618
64651
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64668,10 +64701,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64668
64701
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64669
64702
|
kind: "mutation",
|
|
64670
64703
|
access: "view"
|
|
64671
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64672
|
-
kind: "mutation",
|
|
64673
|
-
auth: "admin",
|
|
64674
|
-
access: "delete"
|
|
64675
64704
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64676
64705
|
kind: "mutation",
|
|
64677
64706
|
auth: "admin",
|
|
@@ -74127,6 +74156,12 @@ Object.freeze({
|
|
|
74127
74156
|
addonId: null,
|
|
74128
74157
|
access: "view"
|
|
74129
74158
|
},
|
|
74159
|
+
"records.transact": {
|
|
74160
|
+
capName: "records",
|
|
74161
|
+
capScope: "system",
|
|
74162
|
+
addonId: null,
|
|
74163
|
+
access: "create"
|
|
74164
|
+
},
|
|
74130
74165
|
"sceneMonitor.captureReference": {
|
|
74131
74166
|
capName: "scene-monitor",
|
|
74132
74167
|
capScope: "device",
|
|
@@ -75459,12 +75494,6 @@ Object.freeze({
|
|
|
75459
75494
|
addonId: null,
|
|
75460
75495
|
access: "view"
|
|
75461
75496
|
},
|
|
75462
|
-
"userManagement.listApiKeys": {
|
|
75463
|
-
capName: "user-management",
|
|
75464
|
-
capScope: "system",
|
|
75465
|
-
addonId: null,
|
|
75466
|
-
access: "view"
|
|
75467
|
-
},
|
|
75468
75497
|
"userManagement.listExternalIdentities": {
|
|
75469
75498
|
capName: "user-management",
|
|
75470
75499
|
capScope: "system",
|
|
@@ -75519,12 +75548,6 @@ Object.freeze({
|
|
|
75519
75548
|
addonId: null,
|
|
75520
75549
|
access: "create"
|
|
75521
75550
|
},
|
|
75522
|
-
"userManagement.revokeApiKey": {
|
|
75523
|
-
capName: "user-management",
|
|
75524
|
-
capScope: "system",
|
|
75525
|
-
addonId: null,
|
|
75526
|
-
access: "delete"
|
|
75527
|
-
},
|
|
75528
75551
|
"userManagement.revokeOauthSession": {
|
|
75529
75552
|
capName: "user-management",
|
|
75530
75553
|
capScope: "system",
|
|
@@ -78955,9 +78978,13 @@ new Map(Object.entries({
|
|
|
78955
78978
|
"stream-online": "device-events",
|
|
78956
78979
|
"stream-offline": "device-events",
|
|
78957
78980
|
"detection-blind": "device-events",
|
|
78981
|
+
"motion-noisy": "device-events",
|
|
78982
|
+
"motion-calm": "device-events",
|
|
78958
78983
|
"recording-stalled": "device-events",
|
|
78959
78984
|
"recording-healthy": "device-events",
|
|
78960
78985
|
"recording-degraded": "device-events",
|
|
78986
|
+
"device-attention-required": "device-events",
|
|
78987
|
+
"device-attention-resolved": "device-events",
|
|
78961
78988
|
"node-online": "system",
|
|
78962
78989
|
"node-offline": "system",
|
|
78963
78990
|
"node-restarting": "system",
|
|
@@ -78974,6 +79001,8 @@ new Map(Object.entries({
|
|
|
78974
79001
|
"alert-critical": "system",
|
|
78975
79002
|
"alert-error": "system",
|
|
78976
79003
|
"alert-critical-resolved": "system",
|
|
79004
|
+
"rule-broken": "system",
|
|
79005
|
+
"rule-repaired": "system",
|
|
78977
79006
|
"storage-location-low": "system",
|
|
78978
79007
|
"storage-location-critical": "system",
|
|
78979
79008
|
"storage-location-ok": "system",
|
|
@@ -79038,6 +79067,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79038
79067
|
label: "Detecting nothing",
|
|
79039
79068
|
kinds: ["detection-blind"]
|
|
79040
79069
|
},
|
|
79070
|
+
{
|
|
79071
|
+
id: "motion-noise",
|
|
79072
|
+
family: "device-events",
|
|
79073
|
+
label: "Motion without a subject",
|
|
79074
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
79075
|
+
},
|
|
79041
79076
|
{
|
|
79042
79077
|
id: "recording",
|
|
79043
79078
|
family: "device-events",
|
|
@@ -79048,6 +79083,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79048
79083
|
"recording-degraded"
|
|
79049
79084
|
]
|
|
79050
79085
|
},
|
|
79086
|
+
{
|
|
79087
|
+
id: "device-attention",
|
|
79088
|
+
family: "device-events",
|
|
79089
|
+
label: "Needs attention",
|
|
79090
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
79091
|
+
},
|
|
79051
79092
|
{
|
|
79052
79093
|
id: "nodes",
|
|
79053
79094
|
family: "system",
|
|
@@ -79108,6 +79149,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79108
79149
|
"alert-critical-resolved"
|
|
79109
79150
|
]
|
|
79110
79151
|
},
|
|
79152
|
+
{
|
|
79153
|
+
id: "rule-health",
|
|
79154
|
+
family: "system",
|
|
79155
|
+
label: "Notification rules",
|
|
79156
|
+
kinds: ["rule-broken", "rule-repaired"]
|
|
79157
|
+
},
|
|
79111
79158
|
{
|
|
79112
79159
|
id: "alarm",
|
|
79113
79160
|
family: "alarm",
|
|
@@ -79181,6 +79228,7 @@ var ALERT_EPISODE = [
|
|
|
79181
79228
|
"alert-error",
|
|
79182
79229
|
"alert-critical-resolved"
|
|
79183
79230
|
];
|
|
79231
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79184
79232
|
var UPDATES = [
|
|
79185
79233
|
"addon-update-available",
|
|
79186
79234
|
"server-update-available",
|
|
@@ -79210,9 +79258,12 @@ var DEVICE_EVENTS = [
|
|
|
79210
79258
|
"stream-online",
|
|
79211
79259
|
"stream-offline",
|
|
79212
79260
|
"detection-blind",
|
|
79261
|
+
"motion-noisy",
|
|
79262
|
+
"motion-calm",
|
|
79213
79263
|
"recording-stalled",
|
|
79214
79264
|
"recording-healthy",
|
|
79215
79265
|
"recording-degraded",
|
|
79266
|
+
...DEVICE_ATTENTION,
|
|
79216
79267
|
...ALARM
|
|
79217
79268
|
];
|
|
79218
79269
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79380,7 +79431,13 @@ var STATE_SUMMARY_VARS = [
|
|
|
79380
79431
|
[...RULE_TEXT],
|
|
79381
79432
|
[...RULE_TEXT],
|
|
79382
79433
|
[...RULE_TEXT],
|
|
79383
|
-
|
|
79434
|
+
[...RULE_TEXT],
|
|
79435
|
+
[...RULE_TEXT],
|
|
79436
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79437
|
+
[...RULE_TEXT],
|
|
79438
|
+
[...RULE_TEXT],
|
|
79439
|
+
[...RULE_TEXT],
|
|
79440
|
+
[...RULE_TEXT],
|
|
79384
79441
|
[...RULE_TEXT],
|
|
79385
79442
|
[...RULE_TEXT],
|
|
79386
79443
|
[...RULE_TEXT],
|
|
@@ -79398,11 +79455,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79398
79455
|
[...RULE_TEXT],
|
|
79399
79456
|
[...RULE_TEXT],
|
|
79400
79457
|
[...RULE_TEXT],
|
|
79458
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79401
79459
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79460
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79402
79461
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79403
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79404
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79405
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79462
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79406
79463
|
[...RULE_TEXT],
|
|
79407
79464
|
[...RULE_TEXT],
|
|
79408
79465
|
[...RULE_TEXT],
|
|
@@ -79423,6 +79480,125 @@ var STATE_SUMMARY_VARS = [
|
|
|
79423
79480
|
[...RULE_TEXT],
|
|
79424
79481
|
...STATE_SUMMARY_VARS
|
|
79425
79482
|
];
|
|
79483
|
+
new Map([
|
|
79484
|
+
{
|
|
79485
|
+
id: "device-connectivity",
|
|
79486
|
+
family: "device-events",
|
|
79487
|
+
label: "Device connectivity (offline / back online)",
|
|
79488
|
+
bad: ["device-offline"],
|
|
79489
|
+
recovery: ["device-online"],
|
|
79490
|
+
snapshotLabel: "Devices offline now",
|
|
79491
|
+
snapshotSection: "device-state"
|
|
79492
|
+
},
|
|
79493
|
+
{
|
|
79494
|
+
id: "device-switch",
|
|
79495
|
+
family: "device-events",
|
|
79496
|
+
label: "Device switched off / back on",
|
|
79497
|
+
bad: ["device-disabled"],
|
|
79498
|
+
recovery: ["device-enabled"],
|
|
79499
|
+
snapshotLabel: "Devices switched off now",
|
|
79500
|
+
snapshotSection: "device-state"
|
|
79501
|
+
},
|
|
79502
|
+
{
|
|
79503
|
+
id: "stream-connectivity",
|
|
79504
|
+
family: "device-events",
|
|
79505
|
+
label: "Stream connectivity (offline / back online)",
|
|
79506
|
+
bad: ["stream-offline"],
|
|
79507
|
+
recovery: ["stream-online"],
|
|
79508
|
+
snapshotLabel: "Streams offline now",
|
|
79509
|
+
snapshotSection: "streams"
|
|
79510
|
+
},
|
|
79511
|
+
{
|
|
79512
|
+
id: "battery",
|
|
79513
|
+
family: "device-events",
|
|
79514
|
+
label: "Battery (low / back to normal)",
|
|
79515
|
+
bad: ["device-battery-low"],
|
|
79516
|
+
recovery: ["device-battery-normal"],
|
|
79517
|
+
snapshotLabel: "Batteries low now",
|
|
79518
|
+
snapshotSection: "battery"
|
|
79519
|
+
},
|
|
79520
|
+
{
|
|
79521
|
+
id: "consumables",
|
|
79522
|
+
family: "device-events",
|
|
79523
|
+
label: "Consumables (low / replaced)",
|
|
79524
|
+
bad: ["device-consumable-low"],
|
|
79525
|
+
recovery: ["device-consumable-normal"],
|
|
79526
|
+
snapshotLabel: "Consumables low now",
|
|
79527
|
+
snapshotSection: "consumables"
|
|
79528
|
+
},
|
|
79529
|
+
{
|
|
79530
|
+
id: "tanks",
|
|
79531
|
+
family: "device-events",
|
|
79532
|
+
label: "Tanks (low or full / back to normal)",
|
|
79533
|
+
bad: ["device-tank-low", "device-tank-full"],
|
|
79534
|
+
recovery: ["device-tank-normal"],
|
|
79535
|
+
snapshotLabel: "Tanks low or full now",
|
|
79536
|
+
snapshotSection: "tanks"
|
|
79537
|
+
},
|
|
79538
|
+
{
|
|
79539
|
+
id: "motion-noise",
|
|
79540
|
+
family: "device-events",
|
|
79541
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79542
|
+
bad: ["motion-noisy"],
|
|
79543
|
+
recovery: ["motion-calm"],
|
|
79544
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79545
|
+
snapshotSection: null
|
|
79546
|
+
},
|
|
79547
|
+
{
|
|
79548
|
+
id: "recording-health",
|
|
79549
|
+
family: "device-events",
|
|
79550
|
+
label: "Recording health (stalled or degraded / recording again)",
|
|
79551
|
+
bad: ["recording-stalled", "recording-degraded"],
|
|
79552
|
+
recovery: ["recording-healthy"],
|
|
79553
|
+
snapshotLabel: "Recordings stalled now",
|
|
79554
|
+
snapshotSection: null
|
|
79555
|
+
},
|
|
79556
|
+
{
|
|
79557
|
+
id: "device-attention",
|
|
79558
|
+
family: "device-events",
|
|
79559
|
+
label: "Device needs attention (raised / resolved)",
|
|
79560
|
+
bad: ["device-attention-required"],
|
|
79561
|
+
recovery: ["device-attention-resolved"],
|
|
79562
|
+
snapshotLabel: "Devices needing attention now",
|
|
79563
|
+
snapshotSection: null
|
|
79564
|
+
},
|
|
79565
|
+
{
|
|
79566
|
+
id: "node-connectivity",
|
|
79567
|
+
family: "system",
|
|
79568
|
+
label: "Node connectivity (offline / back online)",
|
|
79569
|
+
bad: ["node-offline"],
|
|
79570
|
+
recovery: ["node-online"],
|
|
79571
|
+
snapshotLabel: "Nodes offline now",
|
|
79572
|
+
snapshotSection: "nodes"
|
|
79573
|
+
},
|
|
79574
|
+
{
|
|
79575
|
+
id: "storage-space",
|
|
79576
|
+
family: "system",
|
|
79577
|
+
label: "Storage space (low or critical / ok again)",
|
|
79578
|
+
bad: ["storage-location-low", "storage-location-critical"],
|
|
79579
|
+
recovery: ["storage-location-ok"],
|
|
79580
|
+
snapshotLabel: "Storage locations low now",
|
|
79581
|
+
snapshotSection: null
|
|
79582
|
+
},
|
|
79583
|
+
{
|
|
79584
|
+
id: "critical-alerts",
|
|
79585
|
+
family: "system",
|
|
79586
|
+
label: "Critical alerts (raised / resolved)",
|
|
79587
|
+
bad: ["alert-critical"],
|
|
79588
|
+
recovery: ["alert-critical-resolved"],
|
|
79589
|
+
snapshotLabel: "Critical alerts open now",
|
|
79590
|
+
snapshotSection: null
|
|
79591
|
+
},
|
|
79592
|
+
{
|
|
79593
|
+
id: "rule-health",
|
|
79594
|
+
family: "system",
|
|
79595
|
+
label: "Rule health (broken / repaired)",
|
|
79596
|
+
bad: ["rule-broken"],
|
|
79597
|
+
recovery: ["rule-repaired"],
|
|
79598
|
+
snapshotLabel: "Notification rules broken now",
|
|
79599
|
+
snapshotSection: null
|
|
79600
|
+
}
|
|
79601
|
+
].flatMap((spec) => [...spec.bad, ...spec.recovery].map((kind) => [kind, spec])));
|
|
79426
79602
|
new Set([
|
|
79427
79603
|
"disarmed",
|
|
79428
79604
|
"armed_home",
|
|
@@ -80205,7 +80381,7 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80205
80381
|
id: "streams",
|
|
80206
80382
|
title: "RTSP Streams",
|
|
80207
80383
|
titleKey: "provider-rtsp:schema.s_streams.title",
|
|
80208
|
-
description: "
|
|
80384
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80209
80385
|
descriptionKey: "provider-rtsp:schema.s_streams.description",
|
|
80210
80386
|
columns: 1,
|
|
80211
80387
|
fields: [{
|
|
@@ -80235,8 +80411,6 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80235
80411
|
key: "snapshotUrl",
|
|
80236
80412
|
label: "Snapshot URL",
|
|
80237
80413
|
labelKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.label",
|
|
80238
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80239
|
-
descriptionKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.description",
|
|
80240
80414
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80241
80415
|
inputType: "url"
|
|
80242
80416
|
}]
|
|
@@ -80490,7 +80664,7 @@ function buildCreationFormSchema() {
|
|
|
80490
80664
|
id: "streams",
|
|
80491
80665
|
title: "RTSP Streams",
|
|
80492
80666
|
titleKey: "provider-rtsp:creation.s_streams.title",
|
|
80493
|
-
description: "
|
|
80667
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80494
80668
|
descriptionKey: "provider-rtsp:creation.s_streams.description",
|
|
80495
80669
|
columns: 1,
|
|
80496
80670
|
fields: [{
|
|
@@ -80520,8 +80694,6 @@ function buildCreationFormSchema() {
|
|
|
80520
80694
|
key: "snapshotUrl",
|
|
80521
80695
|
label: "Snapshot URL",
|
|
80522
80696
|
labelKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.label",
|
|
80523
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80524
|
-
descriptionKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.description",
|
|
80525
80697
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80526
80698
|
inputType: "url"
|
|
80527
80699
|
}]
|
package/dist/addon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import net from "node:net";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -316,6 +316,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
316
316
|
*/
|
|
317
317
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
318
318
|
/**
|
|
319
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
320
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
321
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
322
|
+
* {@link PipelineMotionCalm}.
|
|
323
|
+
*/
|
|
324
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
325
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
326
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
327
|
+
/**
|
|
319
328
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
320
329
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
321
330
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -687,6 +696,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
687
696
|
EventCategory["BackupRestored"] = "backup.restored";
|
|
688
697
|
EventCategory["NotificationDispatched"] = "notification.dispatched";
|
|
689
698
|
EventCategory["NotificationFailed"] = "notification.failed";
|
|
699
|
+
/**
|
|
700
|
+
* A notification rule that cannot work (D905): its stored row does not load,
|
|
701
|
+
* or it still names a device / delivery target the prune CONFIRMED deleted.
|
|
702
|
+
* One edge per rule per distinct set of reasons; never on an unanswered read.
|
|
703
|
+
*/
|
|
704
|
+
EventCategory["NotificationRuleBroken"] = "notification.rule-broken";
|
|
705
|
+
/** The clear of {@link NotificationRuleBroken}: the rule loads and names nothing deleted. */
|
|
706
|
+
EventCategory["NotificationRuleRepaired"] = "notification.rule-repaired";
|
|
690
707
|
EventCategory["DeviceUpdated"] = "device.updated";
|
|
691
708
|
/**
|
|
692
709
|
* Transport-level connectivity. Emitted by the device driver when
|
|
@@ -5414,7 +5431,7 @@ var ZodIssueCode = {
|
|
|
5414
5431
|
var ZodFirstPartyTypeKind;
|
|
5415
5432
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5416
5433
|
//#endregion
|
|
5417
|
-
//#region ../types/dist/sleep-
|
|
5434
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5418
5435
|
/**
|
|
5419
5436
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5420
5437
|
* window to float samples (D455).
|
|
@@ -7943,7 +7960,7 @@ var EntryDescriptorSchema = object({
|
|
|
7943
7960
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7944
7961
|
fields: record(string(), unknown())
|
|
7945
7962
|
}).strict();
|
|
7946
|
-
/** What crosses the wire
|
|
7963
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7947
7964
|
var RecordKindDeclarationSchema = object({
|
|
7948
7965
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7949
7966
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7962,14 +7979,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7962
7979
|
secretPaths: array(string().min(1)).default([]),
|
|
7963
7980
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7964
7981
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7965
|
-
/**
|
|
7966
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7967
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
7968
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
7969
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
7970
|
-
* removal still sends it. Never set it.
|
|
7971
|
-
*/
|
|
7972
|
-
adoptsFrom: string().min(1).optional(),
|
|
7973
7982
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
7974
7983
|
transactFamily: string().min(1).optional(),
|
|
7975
7984
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12768,17 +12777,6 @@ object({
|
|
|
12768
12777
|
createdAt: number(),
|
|
12769
12778
|
updatedAt: number()
|
|
12770
12779
|
});
|
|
12771
|
-
object({
|
|
12772
|
-
id: string(),
|
|
12773
|
-
label: string(),
|
|
12774
|
-
isAdmin: boolean().default(false),
|
|
12775
|
-
allowedProviders: AllowedProviderSchema,
|
|
12776
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12777
|
-
tokenHash: string(),
|
|
12778
|
-
tokenPrefix: string(),
|
|
12779
|
-
createdAt: number(),
|
|
12780
|
-
lastUsedAt: number().optional()
|
|
12781
|
-
});
|
|
12782
12780
|
object({
|
|
12783
12781
|
id: string(),
|
|
12784
12782
|
userId: string(),
|
|
@@ -16760,16 +16758,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16760
16758
|
var DeclareKindResultSchema = object({
|
|
16761
16759
|
kindId: number().int(),
|
|
16762
16760
|
state: RecordKindStateSchema,
|
|
16763
|
-
createdIndexes: array(string())
|
|
16764
|
-
/**
|
|
16765
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16766
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16767
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16768
|
-
*/
|
|
16769
|
-
adoptionPending: _null()
|
|
16761
|
+
createdIndexes: array(string())
|
|
16770
16762
|
});
|
|
16771
16763
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16772
16764
|
var SecretRefsList = array(string());
|
|
16765
|
+
/**
|
|
16766
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16767
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16768
|
+
*/
|
|
16769
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16770
|
+
object({
|
|
16771
|
+
op: literal("put"),
|
|
16772
|
+
kind: RecordKindNameSchema,
|
|
16773
|
+
record: RecordInputSchema,
|
|
16774
|
+
ifRev: number().int().min(0).optional()
|
|
16775
|
+
}),
|
|
16776
|
+
object({
|
|
16777
|
+
op: literal("patch"),
|
|
16778
|
+
kind: RecordKindNameSchema,
|
|
16779
|
+
id: RecordIdSchema,
|
|
16780
|
+
data: RecordBodySchema,
|
|
16781
|
+
at: number().int().nullable().optional(),
|
|
16782
|
+
expiresAt: number().int().nullable().optional(),
|
|
16783
|
+
ifRev: number().int().min(1).optional()
|
|
16784
|
+
}),
|
|
16785
|
+
object({
|
|
16786
|
+
op: literal("delete"),
|
|
16787
|
+
kind: RecordKindNameSchema,
|
|
16788
|
+
id: RecordIdSchema
|
|
16789
|
+
})
|
|
16790
|
+
]);
|
|
16773
16791
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16774
16792
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16775
16793
|
kind: "mutation",
|
|
@@ -16876,6 +16894,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16876
16894
|
}), {
|
|
16877
16895
|
kind: "mutation",
|
|
16878
16896
|
auth: "admin"
|
|
16897
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16898
|
+
results: array(object({
|
|
16899
|
+
rev: number().int().nullable(),
|
|
16900
|
+
deleted: boolean()
|
|
16901
|
+
})),
|
|
16902
|
+
releasedRefs: SecretRefsList,
|
|
16903
|
+
secretRefs: SecretRefsList
|
|
16904
|
+
}), {
|
|
16905
|
+
kind: "mutation",
|
|
16906
|
+
auth: "admin"
|
|
16879
16907
|
}), method(object({
|
|
16880
16908
|
deviceId: number().int(),
|
|
16881
16909
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42470,9 +42498,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42470
42498
|
"node-updating",
|
|
42471
42499
|
"node-inference-unavailable",
|
|
42472
42500
|
"detection-blind",
|
|
42501
|
+
"motion-noisy",
|
|
42502
|
+
"motion-calm",
|
|
42473
42503
|
"recording-stalled",
|
|
42474
42504
|
"recording-healthy",
|
|
42475
42505
|
"recording-degraded",
|
|
42506
|
+
"device-attention-required",
|
|
42507
|
+
"device-attention-resolved",
|
|
42476
42508
|
"storage-location-low",
|
|
42477
42509
|
"storage-location-critical",
|
|
42478
42510
|
"storage-location-ok",
|
|
@@ -42496,6 +42528,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42496
42528
|
"alert-critical",
|
|
42497
42529
|
"alert-error",
|
|
42498
42530
|
"alert-critical-resolved",
|
|
42531
|
+
"rule-broken",
|
|
42532
|
+
"rule-repaired",
|
|
42499
42533
|
"camera-online",
|
|
42500
42534
|
"camera-offline",
|
|
42501
42535
|
"camera-disabled",
|
|
@@ -55906,6 +55940,16 @@ var DishwasherStatusSchema = object({
|
|
|
55906
55940
|
powerState: string().nullable(),
|
|
55907
55941
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55908
55942
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55943
|
+
/**
|
|
55944
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55945
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55946
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55947
|
+
*/
|
|
55948
|
+
filterCleaningDue: boolean().nullable(),
|
|
55949
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55950
|
+
machineCareDue: boolean().nullable(),
|
|
55951
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55952
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55909
55953
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55910
55954
|
halfLoad: boolean().nullable(),
|
|
55911
55955
|
hygienePlus: boolean().nullable(),
|
|
@@ -64556,16 +64600,6 @@ var UpdateUserInputSchema = object({
|
|
|
64556
64600
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64557
64601
|
scopes: array(TokenScopeSchema).optional()
|
|
64558
64602
|
});
|
|
64559
|
-
var ApiKeySummarySchema = object({
|
|
64560
|
-
id: string(),
|
|
64561
|
-
label: string(),
|
|
64562
|
-
isAdmin: boolean().default(false),
|
|
64563
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64564
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64565
|
-
tokenPrefix: string(),
|
|
64566
|
-
createdAt: number(),
|
|
64567
|
-
lastUsedAt: number().optional()
|
|
64568
|
-
});
|
|
64569
64603
|
var OauthSessionSummarySchema = object({
|
|
64570
64604
|
id: string(),
|
|
64571
64605
|
userId: string(),
|
|
@@ -64587,8 +64621,7 @@ var TotpStatusSchema = object({
|
|
|
64587
64621
|
confirmedAt: number().nullable()
|
|
64588
64622
|
});
|
|
64589
64623
|
/**
|
|
64590
|
-
* user-management — singleton capability for user accounts
|
|
64591
|
-
* legacy API-key rows.
|
|
64624
|
+
* user-management — singleton capability for user accounts.
|
|
64592
64625
|
*
|
|
64593
64626
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64594
64627
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64644,10 +64677,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64644
64677
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64645
64678
|
kind: "mutation",
|
|
64646
64679
|
access: "view"
|
|
64647
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64648
|
-
kind: "mutation",
|
|
64649
|
-
auth: "admin",
|
|
64650
|
-
access: "delete"
|
|
64651
64680
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64652
64681
|
kind: "mutation",
|
|
64653
64682
|
auth: "admin",
|
|
@@ -74103,6 +74132,12 @@ Object.freeze({
|
|
|
74103
74132
|
addonId: null,
|
|
74104
74133
|
access: "view"
|
|
74105
74134
|
},
|
|
74135
|
+
"records.transact": {
|
|
74136
|
+
capName: "records",
|
|
74137
|
+
capScope: "system",
|
|
74138
|
+
addonId: null,
|
|
74139
|
+
access: "create"
|
|
74140
|
+
},
|
|
74106
74141
|
"sceneMonitor.captureReference": {
|
|
74107
74142
|
capName: "scene-monitor",
|
|
74108
74143
|
capScope: "device",
|
|
@@ -75435,12 +75470,6 @@ Object.freeze({
|
|
|
75435
75470
|
addonId: null,
|
|
75436
75471
|
access: "view"
|
|
75437
75472
|
},
|
|
75438
|
-
"userManagement.listApiKeys": {
|
|
75439
|
-
capName: "user-management",
|
|
75440
|
-
capScope: "system",
|
|
75441
|
-
addonId: null,
|
|
75442
|
-
access: "view"
|
|
75443
|
-
},
|
|
75444
75473
|
"userManagement.listExternalIdentities": {
|
|
75445
75474
|
capName: "user-management",
|
|
75446
75475
|
capScope: "system",
|
|
@@ -75495,12 +75524,6 @@ Object.freeze({
|
|
|
75495
75524
|
addonId: null,
|
|
75496
75525
|
access: "create"
|
|
75497
75526
|
},
|
|
75498
|
-
"userManagement.revokeApiKey": {
|
|
75499
|
-
capName: "user-management",
|
|
75500
|
-
capScope: "system",
|
|
75501
|
-
addonId: null,
|
|
75502
|
-
access: "delete"
|
|
75503
|
-
},
|
|
75504
75527
|
"userManagement.revokeOauthSession": {
|
|
75505
75528
|
capName: "user-management",
|
|
75506
75529
|
capScope: "system",
|
|
@@ -78931,9 +78954,13 @@ new Map(Object.entries({
|
|
|
78931
78954
|
"stream-online": "device-events",
|
|
78932
78955
|
"stream-offline": "device-events",
|
|
78933
78956
|
"detection-blind": "device-events",
|
|
78957
|
+
"motion-noisy": "device-events",
|
|
78958
|
+
"motion-calm": "device-events",
|
|
78934
78959
|
"recording-stalled": "device-events",
|
|
78935
78960
|
"recording-healthy": "device-events",
|
|
78936
78961
|
"recording-degraded": "device-events",
|
|
78962
|
+
"device-attention-required": "device-events",
|
|
78963
|
+
"device-attention-resolved": "device-events",
|
|
78937
78964
|
"node-online": "system",
|
|
78938
78965
|
"node-offline": "system",
|
|
78939
78966
|
"node-restarting": "system",
|
|
@@ -78950,6 +78977,8 @@ new Map(Object.entries({
|
|
|
78950
78977
|
"alert-critical": "system",
|
|
78951
78978
|
"alert-error": "system",
|
|
78952
78979
|
"alert-critical-resolved": "system",
|
|
78980
|
+
"rule-broken": "system",
|
|
78981
|
+
"rule-repaired": "system",
|
|
78953
78982
|
"storage-location-low": "system",
|
|
78954
78983
|
"storage-location-critical": "system",
|
|
78955
78984
|
"storage-location-ok": "system",
|
|
@@ -79014,6 +79043,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79014
79043
|
label: "Detecting nothing",
|
|
79015
79044
|
kinds: ["detection-blind"]
|
|
79016
79045
|
},
|
|
79046
|
+
{
|
|
79047
|
+
id: "motion-noise",
|
|
79048
|
+
family: "device-events",
|
|
79049
|
+
label: "Motion without a subject",
|
|
79050
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
79051
|
+
},
|
|
79017
79052
|
{
|
|
79018
79053
|
id: "recording",
|
|
79019
79054
|
family: "device-events",
|
|
@@ -79024,6 +79059,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79024
79059
|
"recording-degraded"
|
|
79025
79060
|
]
|
|
79026
79061
|
},
|
|
79062
|
+
{
|
|
79063
|
+
id: "device-attention",
|
|
79064
|
+
family: "device-events",
|
|
79065
|
+
label: "Needs attention",
|
|
79066
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
79067
|
+
},
|
|
79027
79068
|
{
|
|
79028
79069
|
id: "nodes",
|
|
79029
79070
|
family: "system",
|
|
@@ -79084,6 +79125,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79084
79125
|
"alert-critical-resolved"
|
|
79085
79126
|
]
|
|
79086
79127
|
},
|
|
79128
|
+
{
|
|
79129
|
+
id: "rule-health",
|
|
79130
|
+
family: "system",
|
|
79131
|
+
label: "Notification rules",
|
|
79132
|
+
kinds: ["rule-broken", "rule-repaired"]
|
|
79133
|
+
},
|
|
79087
79134
|
{
|
|
79088
79135
|
id: "alarm",
|
|
79089
79136
|
family: "alarm",
|
|
@@ -79157,6 +79204,7 @@ var ALERT_EPISODE = [
|
|
|
79157
79204
|
"alert-error",
|
|
79158
79205
|
"alert-critical-resolved"
|
|
79159
79206
|
];
|
|
79207
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79160
79208
|
var UPDATES = [
|
|
79161
79209
|
"addon-update-available",
|
|
79162
79210
|
"server-update-available",
|
|
@@ -79186,9 +79234,12 @@ var DEVICE_EVENTS = [
|
|
|
79186
79234
|
"stream-online",
|
|
79187
79235
|
"stream-offline",
|
|
79188
79236
|
"detection-blind",
|
|
79237
|
+
"motion-noisy",
|
|
79238
|
+
"motion-calm",
|
|
79189
79239
|
"recording-stalled",
|
|
79190
79240
|
"recording-healthy",
|
|
79191
79241
|
"recording-degraded",
|
|
79242
|
+
...DEVICE_ATTENTION,
|
|
79192
79243
|
...ALARM
|
|
79193
79244
|
];
|
|
79194
79245
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79356,7 +79407,13 @@ var STATE_SUMMARY_VARS = [
|
|
|
79356
79407
|
[...RULE_TEXT],
|
|
79357
79408
|
[...RULE_TEXT],
|
|
79358
79409
|
[...RULE_TEXT],
|
|
79359
|
-
|
|
79410
|
+
[...RULE_TEXT],
|
|
79411
|
+
[...RULE_TEXT],
|
|
79412
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79413
|
+
[...RULE_TEXT],
|
|
79414
|
+
[...RULE_TEXT],
|
|
79415
|
+
[...RULE_TEXT],
|
|
79416
|
+
[...RULE_TEXT],
|
|
79360
79417
|
[...RULE_TEXT],
|
|
79361
79418
|
[...RULE_TEXT],
|
|
79362
79419
|
[...RULE_TEXT],
|
|
@@ -79374,11 +79431,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79374
79431
|
[...RULE_TEXT],
|
|
79375
79432
|
[...RULE_TEXT],
|
|
79376
79433
|
[...RULE_TEXT],
|
|
79434
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79377
79435
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79436
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79378
79437
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79379
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79380
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79381
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79438
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79382
79439
|
[...RULE_TEXT],
|
|
79383
79440
|
[...RULE_TEXT],
|
|
79384
79441
|
[...RULE_TEXT],
|
|
@@ -79399,6 +79456,125 @@ var STATE_SUMMARY_VARS = [
|
|
|
79399
79456
|
[...RULE_TEXT],
|
|
79400
79457
|
...STATE_SUMMARY_VARS
|
|
79401
79458
|
];
|
|
79459
|
+
new Map([
|
|
79460
|
+
{
|
|
79461
|
+
id: "device-connectivity",
|
|
79462
|
+
family: "device-events",
|
|
79463
|
+
label: "Device connectivity (offline / back online)",
|
|
79464
|
+
bad: ["device-offline"],
|
|
79465
|
+
recovery: ["device-online"],
|
|
79466
|
+
snapshotLabel: "Devices offline now",
|
|
79467
|
+
snapshotSection: "device-state"
|
|
79468
|
+
},
|
|
79469
|
+
{
|
|
79470
|
+
id: "device-switch",
|
|
79471
|
+
family: "device-events",
|
|
79472
|
+
label: "Device switched off / back on",
|
|
79473
|
+
bad: ["device-disabled"],
|
|
79474
|
+
recovery: ["device-enabled"],
|
|
79475
|
+
snapshotLabel: "Devices switched off now",
|
|
79476
|
+
snapshotSection: "device-state"
|
|
79477
|
+
},
|
|
79478
|
+
{
|
|
79479
|
+
id: "stream-connectivity",
|
|
79480
|
+
family: "device-events",
|
|
79481
|
+
label: "Stream connectivity (offline / back online)",
|
|
79482
|
+
bad: ["stream-offline"],
|
|
79483
|
+
recovery: ["stream-online"],
|
|
79484
|
+
snapshotLabel: "Streams offline now",
|
|
79485
|
+
snapshotSection: "streams"
|
|
79486
|
+
},
|
|
79487
|
+
{
|
|
79488
|
+
id: "battery",
|
|
79489
|
+
family: "device-events",
|
|
79490
|
+
label: "Battery (low / back to normal)",
|
|
79491
|
+
bad: ["device-battery-low"],
|
|
79492
|
+
recovery: ["device-battery-normal"],
|
|
79493
|
+
snapshotLabel: "Batteries low now",
|
|
79494
|
+
snapshotSection: "battery"
|
|
79495
|
+
},
|
|
79496
|
+
{
|
|
79497
|
+
id: "consumables",
|
|
79498
|
+
family: "device-events",
|
|
79499
|
+
label: "Consumables (low / replaced)",
|
|
79500
|
+
bad: ["device-consumable-low"],
|
|
79501
|
+
recovery: ["device-consumable-normal"],
|
|
79502
|
+
snapshotLabel: "Consumables low now",
|
|
79503
|
+
snapshotSection: "consumables"
|
|
79504
|
+
},
|
|
79505
|
+
{
|
|
79506
|
+
id: "tanks",
|
|
79507
|
+
family: "device-events",
|
|
79508
|
+
label: "Tanks (low or full / back to normal)",
|
|
79509
|
+
bad: ["device-tank-low", "device-tank-full"],
|
|
79510
|
+
recovery: ["device-tank-normal"],
|
|
79511
|
+
snapshotLabel: "Tanks low or full now",
|
|
79512
|
+
snapshotSection: "tanks"
|
|
79513
|
+
},
|
|
79514
|
+
{
|
|
79515
|
+
id: "motion-noise",
|
|
79516
|
+
family: "device-events",
|
|
79517
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79518
|
+
bad: ["motion-noisy"],
|
|
79519
|
+
recovery: ["motion-calm"],
|
|
79520
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79521
|
+
snapshotSection: null
|
|
79522
|
+
},
|
|
79523
|
+
{
|
|
79524
|
+
id: "recording-health",
|
|
79525
|
+
family: "device-events",
|
|
79526
|
+
label: "Recording health (stalled or degraded / recording again)",
|
|
79527
|
+
bad: ["recording-stalled", "recording-degraded"],
|
|
79528
|
+
recovery: ["recording-healthy"],
|
|
79529
|
+
snapshotLabel: "Recordings stalled now",
|
|
79530
|
+
snapshotSection: null
|
|
79531
|
+
},
|
|
79532
|
+
{
|
|
79533
|
+
id: "device-attention",
|
|
79534
|
+
family: "device-events",
|
|
79535
|
+
label: "Device needs attention (raised / resolved)",
|
|
79536
|
+
bad: ["device-attention-required"],
|
|
79537
|
+
recovery: ["device-attention-resolved"],
|
|
79538
|
+
snapshotLabel: "Devices needing attention now",
|
|
79539
|
+
snapshotSection: null
|
|
79540
|
+
},
|
|
79541
|
+
{
|
|
79542
|
+
id: "node-connectivity",
|
|
79543
|
+
family: "system",
|
|
79544
|
+
label: "Node connectivity (offline / back online)",
|
|
79545
|
+
bad: ["node-offline"],
|
|
79546
|
+
recovery: ["node-online"],
|
|
79547
|
+
snapshotLabel: "Nodes offline now",
|
|
79548
|
+
snapshotSection: "nodes"
|
|
79549
|
+
},
|
|
79550
|
+
{
|
|
79551
|
+
id: "storage-space",
|
|
79552
|
+
family: "system",
|
|
79553
|
+
label: "Storage space (low or critical / ok again)",
|
|
79554
|
+
bad: ["storage-location-low", "storage-location-critical"],
|
|
79555
|
+
recovery: ["storage-location-ok"],
|
|
79556
|
+
snapshotLabel: "Storage locations low now",
|
|
79557
|
+
snapshotSection: null
|
|
79558
|
+
},
|
|
79559
|
+
{
|
|
79560
|
+
id: "critical-alerts",
|
|
79561
|
+
family: "system",
|
|
79562
|
+
label: "Critical alerts (raised / resolved)",
|
|
79563
|
+
bad: ["alert-critical"],
|
|
79564
|
+
recovery: ["alert-critical-resolved"],
|
|
79565
|
+
snapshotLabel: "Critical alerts open now",
|
|
79566
|
+
snapshotSection: null
|
|
79567
|
+
},
|
|
79568
|
+
{
|
|
79569
|
+
id: "rule-health",
|
|
79570
|
+
family: "system",
|
|
79571
|
+
label: "Rule health (broken / repaired)",
|
|
79572
|
+
bad: ["rule-broken"],
|
|
79573
|
+
recovery: ["rule-repaired"],
|
|
79574
|
+
snapshotLabel: "Notification rules broken now",
|
|
79575
|
+
snapshotSection: null
|
|
79576
|
+
}
|
|
79577
|
+
].flatMap((spec) => [...spec.bad, ...spec.recovery].map((kind) => [kind, spec])));
|
|
79402
79578
|
new Set([
|
|
79403
79579
|
"disarmed",
|
|
79404
79580
|
"armed_home",
|
|
@@ -80181,7 +80357,7 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80181
80357
|
id: "streams",
|
|
80182
80358
|
title: "RTSP Streams",
|
|
80183
80359
|
titleKey: "provider-rtsp:schema.s_streams.title",
|
|
80184
|
-
description: "
|
|
80360
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80185
80361
|
descriptionKey: "provider-rtsp:schema.s_streams.description",
|
|
80186
80362
|
columns: 1,
|
|
80187
80363
|
fields: [{
|
|
@@ -80211,8 +80387,6 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80211
80387
|
key: "snapshotUrl",
|
|
80212
80388
|
label: "Snapshot URL",
|
|
80213
80389
|
labelKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.label",
|
|
80214
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80215
|
-
descriptionKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.description",
|
|
80216
80390
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80217
80391
|
inputType: "url"
|
|
80218
80392
|
}]
|
|
@@ -80466,7 +80640,7 @@ function buildCreationFormSchema() {
|
|
|
80466
80640
|
id: "streams",
|
|
80467
80641
|
title: "RTSP Streams",
|
|
80468
80642
|
titleKey: "provider-rtsp:creation.s_streams.title",
|
|
80469
|
-
description: "
|
|
80643
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80470
80644
|
descriptionKey: "provider-rtsp:creation.s_streams.description",
|
|
80471
80645
|
columns: 1,
|
|
80472
80646
|
fields: [{
|
|
@@ -80496,8 +80670,6 @@ function buildCreationFormSchema() {
|
|
|
80496
80670
|
key: "snapshotUrl",
|
|
80497
80671
|
label: "Snapshot URL",
|
|
80498
80672
|
labelKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.label",
|
|
80499
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80500
|
-
descriptionKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.description",
|
|
80501
80673
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80502
80674
|
inputType: "url"
|
|
80503
80675
|
}]
|
package/i18n/en.json
CHANGED
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
"creation.s_identity.title": "Camera",
|
|
3
3
|
"creation.s_identity.name.label": "Name",
|
|
4
4
|
"creation.s_streams.title": "RTSP Streams",
|
|
5
|
-
"creation.s_streams.description": "
|
|
5
|
+
"creation.s_streams.description": "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
6
6
|
"creation.s_streams.streams.label": "RTSP stream URL",
|
|
7
7
|
"creation.s_snapshot.title": "Snapshot",
|
|
8
8
|
"creation.s_snapshot.snapshotUrl.label": "Snapshot URL",
|
|
9
|
-
"creation.s_snapshot.snapshotUrl.description": "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
10
9
|
"creation.s_credentials.title": "Credentials",
|
|
11
10
|
"creation.s_credentials.description": "Optional. If the RTSP URL already contains user:pass@ you can leave these empty.",
|
|
12
11
|
"creation.s_credentials.username.label": "Username",
|
|
13
12
|
"creation.s_credentials.password.label": "Password",
|
|
14
13
|
"schema.s_streams.title": "RTSP Streams",
|
|
15
|
-
"schema.s_streams.description": "
|
|
14
|
+
"schema.s_streams.description": "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
16
15
|
"schema.s_streams.streams.label": "RTSP stream URL",
|
|
17
16
|
"schema.s_snapshot.title": "Snapshot",
|
|
18
17
|
"schema.s_snapshot.snapshotUrl.label": "Snapshot URL",
|
|
19
|
-
"schema.s_snapshot.snapshotUrl.description": "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
20
18
|
"schema.s_credentials.title": "Credentials",
|
|
21
19
|
"schema.s_credentials.description": "Optional. If the RTSP URL already contains user:pass@ you can leave these empty.",
|
|
22
20
|
"schema.s_credentials.username.label": "Username",
|
package/i18n/it.json
CHANGED
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
"creation.s_identity.title": "Telecamera",
|
|
3
3
|
"creation.s_identity.name.label": "Nome",
|
|
4
4
|
"creation.s_streams.title": "Flussi RTSP",
|
|
5
|
-
"creation.s_streams.description": "
|
|
5
|
+
"creation.s_streams.description": "1–3 URL RTSP; il broker assegna i profili high / mid / low in base alla risoluzione.",
|
|
6
6
|
"creation.s_streams.streams.label": "URL del flusso RTSP",
|
|
7
7
|
"creation.s_snapshot.title": "Snapshot",
|
|
8
8
|
"creation.s_snapshot.snapshotUrl.label": "URL dello snapshot",
|
|
9
|
-
"creation.s_snapshot.snapshotUrl.description": "Endpoint HTTP(S) facoltativo che restituisce un'immagine JPEG fissa.",
|
|
10
9
|
"creation.s_credentials.title": "Credenziali",
|
|
11
10
|
"creation.s_credentials.description": "Facoltativo. Se l'URL RTSP contiene già utente:password@ puoi lasciare questi campi vuoti.",
|
|
12
11
|
"creation.s_credentials.username.label": "Nome utente",
|
|
13
12
|
"creation.s_credentials.password.label": "Password",
|
|
14
13
|
"schema.s_streams.title": "Flussi RTSP",
|
|
15
|
-
"schema.s_streams.description": "
|
|
14
|
+
"schema.s_streams.description": "1–3 URL RTSP; il broker assegna i profili high / mid / low in base alla risoluzione.",
|
|
16
15
|
"schema.s_streams.streams.label": "URL del flusso RTSP",
|
|
17
16
|
"schema.s_snapshot.title": "Snapshot",
|
|
18
17
|
"schema.s_snapshot.snapshotUrl.label": "URL dello snapshot",
|
|
19
|
-
"schema.s_snapshot.snapshotUrl.description": "Endpoint HTTP(S) facoltativo che restituisce un'immagine JPEG fissa.",
|
|
20
18
|
"schema.s_credentials.title": "Credenziali",
|
|
21
19
|
"schema.s_credentials.description": "Facoltativo. Se l'URL RTSP contiene già utente:password@ puoi lasciare questi campi vuoti.",
|
|
22
20
|
"schema.s_credentials.username.label": "Nome utente",
|