@camstack/addon-provider-unifi 0.2.140 → 0.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 +238 -62
- package/dist/addon.mjs +238 -62
- package/i18n/en.json +1 -1
- package/i18n/it.json +1 -1
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
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()
|
|
@@ -12661,17 +12670,6 @@ object({
|
|
|
12661
12670
|
createdAt: number(),
|
|
12662
12671
|
updatedAt: number()
|
|
12663
12672
|
});
|
|
12664
|
-
object({
|
|
12665
|
-
id: string(),
|
|
12666
|
-
label: string(),
|
|
12667
|
-
isAdmin: boolean().default(false),
|
|
12668
|
-
allowedProviders: AllowedProviderSchema,
|
|
12669
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12670
|
-
tokenHash: string(),
|
|
12671
|
-
tokenPrefix: string(),
|
|
12672
|
-
createdAt: number(),
|
|
12673
|
-
lastUsedAt: number().optional()
|
|
12674
|
-
});
|
|
12675
12673
|
object({
|
|
12676
12674
|
id: string(),
|
|
12677
12675
|
userId: string(),
|
|
@@ -16653,16 +16651,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16653
16651
|
var DeclareKindResultSchema = object({
|
|
16654
16652
|
kindId: number().int(),
|
|
16655
16653
|
state: RecordKindStateSchema,
|
|
16656
|
-
createdIndexes: array(string())
|
|
16657
|
-
/**
|
|
16658
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16659
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16660
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16661
|
-
*/
|
|
16662
|
-
adoptionPending: _null()
|
|
16654
|
+
createdIndexes: array(string())
|
|
16663
16655
|
});
|
|
16664
16656
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16665
16657
|
var SecretRefsList = array(string());
|
|
16658
|
+
/**
|
|
16659
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16660
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16661
|
+
*/
|
|
16662
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16663
|
+
object({
|
|
16664
|
+
op: literal("put"),
|
|
16665
|
+
kind: RecordKindNameSchema,
|
|
16666
|
+
record: RecordInputSchema,
|
|
16667
|
+
ifRev: number().int().min(0).optional()
|
|
16668
|
+
}),
|
|
16669
|
+
object({
|
|
16670
|
+
op: literal("patch"),
|
|
16671
|
+
kind: RecordKindNameSchema,
|
|
16672
|
+
id: RecordIdSchema,
|
|
16673
|
+
data: RecordBodySchema,
|
|
16674
|
+
at: number().int().nullable().optional(),
|
|
16675
|
+
expiresAt: number().int().nullable().optional(),
|
|
16676
|
+
ifRev: number().int().min(1).optional()
|
|
16677
|
+
}),
|
|
16678
|
+
object({
|
|
16679
|
+
op: literal("delete"),
|
|
16680
|
+
kind: RecordKindNameSchema,
|
|
16681
|
+
id: RecordIdSchema
|
|
16682
|
+
})
|
|
16683
|
+
]);
|
|
16666
16684
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16667
16685
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16668
16686
|
kind: "mutation",
|
|
@@ -16769,6 +16787,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16769
16787
|
}), {
|
|
16770
16788
|
kind: "mutation",
|
|
16771
16789
|
auth: "admin"
|
|
16790
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16791
|
+
results: array(object({
|
|
16792
|
+
rev: number().int().nullable(),
|
|
16793
|
+
deleted: boolean()
|
|
16794
|
+
})),
|
|
16795
|
+
releasedRefs: SecretRefsList,
|
|
16796
|
+
secretRefs: SecretRefsList
|
|
16797
|
+
}), {
|
|
16798
|
+
kind: "mutation",
|
|
16799
|
+
auth: "admin"
|
|
16772
16800
|
}), method(object({
|
|
16773
16801
|
deviceId: number().int(),
|
|
16774
16802
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42476,9 +42504,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42476
42504
|
"node-updating",
|
|
42477
42505
|
"node-inference-unavailable",
|
|
42478
42506
|
"detection-blind",
|
|
42507
|
+
"motion-noisy",
|
|
42508
|
+
"motion-calm",
|
|
42479
42509
|
"recording-stalled",
|
|
42480
42510
|
"recording-healthy",
|
|
42481
42511
|
"recording-degraded",
|
|
42512
|
+
"device-attention-required",
|
|
42513
|
+
"device-attention-resolved",
|
|
42482
42514
|
"storage-location-low",
|
|
42483
42515
|
"storage-location-critical",
|
|
42484
42516
|
"storage-location-ok",
|
|
@@ -42502,6 +42534,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42502
42534
|
"alert-critical",
|
|
42503
42535
|
"alert-error",
|
|
42504
42536
|
"alert-critical-resolved",
|
|
42537
|
+
"rule-broken",
|
|
42538
|
+
"rule-repaired",
|
|
42505
42539
|
"camera-online",
|
|
42506
42540
|
"camera-offline",
|
|
42507
42541
|
"camera-disabled",
|
|
@@ -55817,6 +55851,16 @@ var DishwasherStatusSchema = object({
|
|
|
55817
55851
|
powerState: string().nullable(),
|
|
55818
55852
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55819
55853
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55854
|
+
/**
|
|
55855
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55856
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55857
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55858
|
+
*/
|
|
55859
|
+
filterCleaningDue: boolean().nullable(),
|
|
55860
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55861
|
+
machineCareDue: boolean().nullable(),
|
|
55862
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55863
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55820
55864
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55821
55865
|
halfLoad: boolean().nullable(),
|
|
55822
55866
|
hygienePlus: boolean().nullable(),
|
|
@@ -64467,16 +64511,6 @@ var UpdateUserInputSchema = object({
|
|
|
64467
64511
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64468
64512
|
scopes: array(TokenScopeSchema).optional()
|
|
64469
64513
|
});
|
|
64470
|
-
var ApiKeySummarySchema = object({
|
|
64471
|
-
id: string(),
|
|
64472
|
-
label: string(),
|
|
64473
|
-
isAdmin: boolean().default(false),
|
|
64474
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64475
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64476
|
-
tokenPrefix: string(),
|
|
64477
|
-
createdAt: number(),
|
|
64478
|
-
lastUsedAt: number().optional()
|
|
64479
|
-
});
|
|
64480
64514
|
var OauthSessionSummarySchema = object({
|
|
64481
64515
|
id: string(),
|
|
64482
64516
|
userId: string(),
|
|
@@ -64498,8 +64532,7 @@ var TotpStatusSchema = object({
|
|
|
64498
64532
|
confirmedAt: number().nullable()
|
|
64499
64533
|
});
|
|
64500
64534
|
/**
|
|
64501
|
-
* user-management — singleton capability for user accounts
|
|
64502
|
-
* legacy API-key rows.
|
|
64535
|
+
* user-management — singleton capability for user accounts.
|
|
64503
64536
|
*
|
|
64504
64537
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64505
64538
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64555,10 +64588,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64555
64588
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64556
64589
|
kind: "mutation",
|
|
64557
64590
|
access: "view"
|
|
64558
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64559
|
-
kind: "mutation",
|
|
64560
|
-
auth: "admin",
|
|
64561
|
-
access: "delete"
|
|
64562
64591
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64563
64592
|
kind: "mutation",
|
|
64564
64593
|
auth: "admin",
|
|
@@ -74014,6 +74043,12 @@ Object.freeze({
|
|
|
74014
74043
|
addonId: null,
|
|
74015
74044
|
access: "view"
|
|
74016
74045
|
},
|
|
74046
|
+
"records.transact": {
|
|
74047
|
+
capName: "records",
|
|
74048
|
+
capScope: "system",
|
|
74049
|
+
addonId: null,
|
|
74050
|
+
access: "create"
|
|
74051
|
+
},
|
|
74017
74052
|
"sceneMonitor.captureReference": {
|
|
74018
74053
|
capName: "scene-monitor",
|
|
74019
74054
|
capScope: "device",
|
|
@@ -75346,12 +75381,6 @@ Object.freeze({
|
|
|
75346
75381
|
addonId: null,
|
|
75347
75382
|
access: "view"
|
|
75348
75383
|
},
|
|
75349
|
-
"userManagement.listApiKeys": {
|
|
75350
|
-
capName: "user-management",
|
|
75351
|
-
capScope: "system",
|
|
75352
|
-
addonId: null,
|
|
75353
|
-
access: "view"
|
|
75354
|
-
},
|
|
75355
75384
|
"userManagement.listExternalIdentities": {
|
|
75356
75385
|
capName: "user-management",
|
|
75357
75386
|
capScope: "system",
|
|
@@ -75406,12 +75435,6 @@ Object.freeze({
|
|
|
75406
75435
|
addonId: null,
|
|
75407
75436
|
access: "create"
|
|
75408
75437
|
},
|
|
75409
|
-
"userManagement.revokeApiKey": {
|
|
75410
|
-
capName: "user-management",
|
|
75411
|
-
capScope: "system",
|
|
75412
|
-
addonId: null,
|
|
75413
|
-
access: "delete"
|
|
75414
|
-
},
|
|
75415
75438
|
"userManagement.revokeOauthSession": {
|
|
75416
75439
|
capName: "user-management",
|
|
75417
75440
|
capScope: "system",
|
|
@@ -78776,9 +78799,13 @@ new Map(Object.entries({
|
|
|
78776
78799
|
"stream-online": "device-events",
|
|
78777
78800
|
"stream-offline": "device-events",
|
|
78778
78801
|
"detection-blind": "device-events",
|
|
78802
|
+
"motion-noisy": "device-events",
|
|
78803
|
+
"motion-calm": "device-events",
|
|
78779
78804
|
"recording-stalled": "device-events",
|
|
78780
78805
|
"recording-healthy": "device-events",
|
|
78781
78806
|
"recording-degraded": "device-events",
|
|
78807
|
+
"device-attention-required": "device-events",
|
|
78808
|
+
"device-attention-resolved": "device-events",
|
|
78782
78809
|
"node-online": "system",
|
|
78783
78810
|
"node-offline": "system",
|
|
78784
78811
|
"node-restarting": "system",
|
|
@@ -78795,6 +78822,8 @@ new Map(Object.entries({
|
|
|
78795
78822
|
"alert-critical": "system",
|
|
78796
78823
|
"alert-error": "system",
|
|
78797
78824
|
"alert-critical-resolved": "system",
|
|
78825
|
+
"rule-broken": "system",
|
|
78826
|
+
"rule-repaired": "system",
|
|
78798
78827
|
"storage-location-low": "system",
|
|
78799
78828
|
"storage-location-critical": "system",
|
|
78800
78829
|
"storage-location-ok": "system",
|
|
@@ -78859,6 +78888,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78859
78888
|
label: "Detecting nothing",
|
|
78860
78889
|
kinds: ["detection-blind"]
|
|
78861
78890
|
},
|
|
78891
|
+
{
|
|
78892
|
+
id: "motion-noise",
|
|
78893
|
+
family: "device-events",
|
|
78894
|
+
label: "Motion without a subject",
|
|
78895
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
78896
|
+
},
|
|
78862
78897
|
{
|
|
78863
78898
|
id: "recording",
|
|
78864
78899
|
family: "device-events",
|
|
@@ -78869,6 +78904,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78869
78904
|
"recording-degraded"
|
|
78870
78905
|
]
|
|
78871
78906
|
},
|
|
78907
|
+
{
|
|
78908
|
+
id: "device-attention",
|
|
78909
|
+
family: "device-events",
|
|
78910
|
+
label: "Needs attention",
|
|
78911
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
78912
|
+
},
|
|
78872
78913
|
{
|
|
78873
78914
|
id: "nodes",
|
|
78874
78915
|
family: "system",
|
|
@@ -78929,6 +78970,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78929
78970
|
"alert-critical-resolved"
|
|
78930
78971
|
]
|
|
78931
78972
|
},
|
|
78973
|
+
{
|
|
78974
|
+
id: "rule-health",
|
|
78975
|
+
family: "system",
|
|
78976
|
+
label: "Notification rules",
|
|
78977
|
+
kinds: ["rule-broken", "rule-repaired"]
|
|
78978
|
+
},
|
|
78932
78979
|
{
|
|
78933
78980
|
id: "alarm",
|
|
78934
78981
|
family: "alarm",
|
|
@@ -79002,6 +79049,7 @@ var ALERT_EPISODE = [
|
|
|
79002
79049
|
"alert-error",
|
|
79003
79050
|
"alert-critical-resolved"
|
|
79004
79051
|
];
|
|
79052
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79005
79053
|
var UPDATES = [
|
|
79006
79054
|
"addon-update-available",
|
|
79007
79055
|
"server-update-available",
|
|
@@ -79031,9 +79079,12 @@ var DEVICE_EVENTS = [
|
|
|
79031
79079
|
"stream-online",
|
|
79032
79080
|
"stream-offline",
|
|
79033
79081
|
"detection-blind",
|
|
79082
|
+
"motion-noisy",
|
|
79083
|
+
"motion-calm",
|
|
79034
79084
|
"recording-stalled",
|
|
79035
79085
|
"recording-healthy",
|
|
79036
79086
|
"recording-degraded",
|
|
79087
|
+
...DEVICE_ATTENTION,
|
|
79037
79088
|
...ALARM
|
|
79038
79089
|
];
|
|
79039
79090
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79201,7 +79252,13 @@ var STATE_SUMMARY_VARS = [
|
|
|
79201
79252
|
[...RULE_TEXT],
|
|
79202
79253
|
[...RULE_TEXT],
|
|
79203
79254
|
[...RULE_TEXT],
|
|
79204
|
-
|
|
79255
|
+
[...RULE_TEXT],
|
|
79256
|
+
[...RULE_TEXT],
|
|
79257
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79258
|
+
[...RULE_TEXT],
|
|
79259
|
+
[...RULE_TEXT],
|
|
79260
|
+
[...RULE_TEXT],
|
|
79261
|
+
[...RULE_TEXT],
|
|
79205
79262
|
[...RULE_TEXT],
|
|
79206
79263
|
[...RULE_TEXT],
|
|
79207
79264
|
[...RULE_TEXT],
|
|
@@ -79219,11 +79276,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79219
79276
|
[...RULE_TEXT],
|
|
79220
79277
|
[...RULE_TEXT],
|
|
79221
79278
|
[...RULE_TEXT],
|
|
79279
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79222
79280
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79281
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79223
79282
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79224
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79225
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79226
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79283
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79227
79284
|
[...RULE_TEXT],
|
|
79228
79285
|
[...RULE_TEXT],
|
|
79229
79286
|
[...RULE_TEXT],
|
|
@@ -79244,6 +79301,125 @@ var STATE_SUMMARY_VARS = [
|
|
|
79244
79301
|
[...RULE_TEXT],
|
|
79245
79302
|
...STATE_SUMMARY_VARS
|
|
79246
79303
|
];
|
|
79304
|
+
new Map([
|
|
79305
|
+
{
|
|
79306
|
+
id: "device-connectivity",
|
|
79307
|
+
family: "device-events",
|
|
79308
|
+
label: "Device connectivity (offline / back online)",
|
|
79309
|
+
bad: ["device-offline"],
|
|
79310
|
+
recovery: ["device-online"],
|
|
79311
|
+
snapshotLabel: "Devices offline now",
|
|
79312
|
+
snapshotSection: "device-state"
|
|
79313
|
+
},
|
|
79314
|
+
{
|
|
79315
|
+
id: "device-switch",
|
|
79316
|
+
family: "device-events",
|
|
79317
|
+
label: "Device switched off / back on",
|
|
79318
|
+
bad: ["device-disabled"],
|
|
79319
|
+
recovery: ["device-enabled"],
|
|
79320
|
+
snapshotLabel: "Devices switched off now",
|
|
79321
|
+
snapshotSection: "device-state"
|
|
79322
|
+
},
|
|
79323
|
+
{
|
|
79324
|
+
id: "stream-connectivity",
|
|
79325
|
+
family: "device-events",
|
|
79326
|
+
label: "Stream connectivity (offline / back online)",
|
|
79327
|
+
bad: ["stream-offline"],
|
|
79328
|
+
recovery: ["stream-online"],
|
|
79329
|
+
snapshotLabel: "Streams offline now",
|
|
79330
|
+
snapshotSection: "streams"
|
|
79331
|
+
},
|
|
79332
|
+
{
|
|
79333
|
+
id: "battery",
|
|
79334
|
+
family: "device-events",
|
|
79335
|
+
label: "Battery (low / back to normal)",
|
|
79336
|
+
bad: ["device-battery-low"],
|
|
79337
|
+
recovery: ["device-battery-normal"],
|
|
79338
|
+
snapshotLabel: "Batteries low now",
|
|
79339
|
+
snapshotSection: "battery"
|
|
79340
|
+
},
|
|
79341
|
+
{
|
|
79342
|
+
id: "consumables",
|
|
79343
|
+
family: "device-events",
|
|
79344
|
+
label: "Consumables (low / replaced)",
|
|
79345
|
+
bad: ["device-consumable-low"],
|
|
79346
|
+
recovery: ["device-consumable-normal"],
|
|
79347
|
+
snapshotLabel: "Consumables low now",
|
|
79348
|
+
snapshotSection: "consumables"
|
|
79349
|
+
},
|
|
79350
|
+
{
|
|
79351
|
+
id: "tanks",
|
|
79352
|
+
family: "device-events",
|
|
79353
|
+
label: "Tanks (low or full / back to normal)",
|
|
79354
|
+
bad: ["device-tank-low", "device-tank-full"],
|
|
79355
|
+
recovery: ["device-tank-normal"],
|
|
79356
|
+
snapshotLabel: "Tanks low or full now",
|
|
79357
|
+
snapshotSection: "tanks"
|
|
79358
|
+
},
|
|
79359
|
+
{
|
|
79360
|
+
id: "motion-noise",
|
|
79361
|
+
family: "device-events",
|
|
79362
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79363
|
+
bad: ["motion-noisy"],
|
|
79364
|
+
recovery: ["motion-calm"],
|
|
79365
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79366
|
+
snapshotSection: null
|
|
79367
|
+
},
|
|
79368
|
+
{
|
|
79369
|
+
id: "recording-health",
|
|
79370
|
+
family: "device-events",
|
|
79371
|
+
label: "Recording health (stalled or degraded / recording again)",
|
|
79372
|
+
bad: ["recording-stalled", "recording-degraded"],
|
|
79373
|
+
recovery: ["recording-healthy"],
|
|
79374
|
+
snapshotLabel: "Recordings stalled now",
|
|
79375
|
+
snapshotSection: null
|
|
79376
|
+
},
|
|
79377
|
+
{
|
|
79378
|
+
id: "device-attention",
|
|
79379
|
+
family: "device-events",
|
|
79380
|
+
label: "Device needs attention (raised / resolved)",
|
|
79381
|
+
bad: ["device-attention-required"],
|
|
79382
|
+
recovery: ["device-attention-resolved"],
|
|
79383
|
+
snapshotLabel: "Devices needing attention now",
|
|
79384
|
+
snapshotSection: null
|
|
79385
|
+
},
|
|
79386
|
+
{
|
|
79387
|
+
id: "node-connectivity",
|
|
79388
|
+
family: "system",
|
|
79389
|
+
label: "Node connectivity (offline / back online)",
|
|
79390
|
+
bad: ["node-offline"],
|
|
79391
|
+
recovery: ["node-online"],
|
|
79392
|
+
snapshotLabel: "Nodes offline now",
|
|
79393
|
+
snapshotSection: "nodes"
|
|
79394
|
+
},
|
|
79395
|
+
{
|
|
79396
|
+
id: "storage-space",
|
|
79397
|
+
family: "system",
|
|
79398
|
+
label: "Storage space (low or critical / ok again)",
|
|
79399
|
+
bad: ["storage-location-low", "storage-location-critical"],
|
|
79400
|
+
recovery: ["storage-location-ok"],
|
|
79401
|
+
snapshotLabel: "Storage locations low now",
|
|
79402
|
+
snapshotSection: null
|
|
79403
|
+
},
|
|
79404
|
+
{
|
|
79405
|
+
id: "critical-alerts",
|
|
79406
|
+
family: "system",
|
|
79407
|
+
label: "Critical alerts (raised / resolved)",
|
|
79408
|
+
bad: ["alert-critical"],
|
|
79409
|
+
recovery: ["alert-critical-resolved"],
|
|
79410
|
+
snapshotLabel: "Critical alerts open now",
|
|
79411
|
+
snapshotSection: null
|
|
79412
|
+
},
|
|
79413
|
+
{
|
|
79414
|
+
id: "rule-health",
|
|
79415
|
+
family: "system",
|
|
79416
|
+
label: "Rule health (broken / repaired)",
|
|
79417
|
+
bad: ["rule-broken"],
|
|
79418
|
+
recovery: ["rule-repaired"],
|
|
79419
|
+
snapshotLabel: "Notification rules broken now",
|
|
79420
|
+
snapshotSection: null
|
|
79421
|
+
}
|
|
79422
|
+
].flatMap((spec) => [...spec.bad, ...spec.recovery].map((kind) => [kind, spec])));
|
|
79247
79423
|
new Set([
|
|
79248
79424
|
"disarmed",
|
|
79249
79425
|
"armed_home",
|
|
@@ -79921,7 +80097,7 @@ function buildControllerFormSchema() {
|
|
|
79921
80097
|
id: "connection",
|
|
79922
80098
|
title: "Connection",
|
|
79923
80099
|
titleKey: "provider-unifi:controller.s_connection.title",
|
|
79924
|
-
description: "
|
|
80100
|
+
description: "Authenticate with a UniFi OS API key (preferred) or a local admin username and password.",
|
|
79925
80101
|
descriptionKey: "provider-unifi:controller.s_connection.description",
|
|
79926
80102
|
columns: 2,
|
|
79927
80103
|
fields: [
|
package/dist/addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../types/dist/event-category-
|
|
1
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
2
2
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
3
3
|
EventCategory["SystemBoot"] = "system.boot";
|
|
4
4
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -315,6 +315,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
315
315
|
*/
|
|
316
316
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
317
317
|
/**
|
|
318
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
319
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
320
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
321
|
+
* {@link PipelineMotionCalm}.
|
|
322
|
+
*/
|
|
323
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
324
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
325
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
326
|
+
/**
|
|
318
327
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
319
328
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
320
329
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -686,6 +695,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
686
695
|
EventCategory["BackupRestored"] = "backup.restored";
|
|
687
696
|
EventCategory["NotificationDispatched"] = "notification.dispatched";
|
|
688
697
|
EventCategory["NotificationFailed"] = "notification.failed";
|
|
698
|
+
/**
|
|
699
|
+
* A notification rule that cannot work (D905): its stored row does not load,
|
|
700
|
+
* or it still names a device / delivery target the prune CONFIRMED deleted.
|
|
701
|
+
* One edge per rule per distinct set of reasons; never on an unanswered read.
|
|
702
|
+
*/
|
|
703
|
+
EventCategory["NotificationRuleBroken"] = "notification.rule-broken";
|
|
704
|
+
/** The clear of {@link NotificationRuleBroken}: the rule loads and names nothing deleted. */
|
|
705
|
+
EventCategory["NotificationRuleRepaired"] = "notification.rule-repaired";
|
|
689
706
|
EventCategory["DeviceUpdated"] = "device.updated";
|
|
690
707
|
/**
|
|
691
708
|
* Transport-level connectivity. Emitted by the device driver when
|
|
@@ -5413,7 +5430,7 @@ var ZodIssueCode = {
|
|
|
5413
5430
|
var ZodFirstPartyTypeKind;
|
|
5414
5431
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5415
5432
|
//#endregion
|
|
5416
|
-
//#region ../types/dist/sleep-
|
|
5433
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5417
5434
|
/**
|
|
5418
5435
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5419
5436
|
* window to float samples (D455).
|
|
@@ -7942,7 +7959,7 @@ var EntryDescriptorSchema = object({
|
|
|
7942
7959
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7943
7960
|
fields: record(string(), unknown())
|
|
7944
7961
|
}).strict();
|
|
7945
|
-
/** What crosses the wire
|
|
7962
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7946
7963
|
var RecordKindDeclarationSchema = object({
|
|
7947
7964
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7948
7965
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7961,14 +7978,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7961
7978
|
secretPaths: array(string().min(1)).default([]),
|
|
7962
7979
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7963
7980
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7964
|
-
/**
|
|
7965
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7966
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
7967
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
7968
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
7969
|
-
* removal still sends it. Never set it.
|
|
7970
|
-
*/
|
|
7971
|
-
adoptsFrom: string().min(1).optional(),
|
|
7972
7981
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
7973
7982
|
transactFamily: string().min(1).optional(),
|
|
7974
7983
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12660,17 +12669,6 @@ object({
|
|
|
12660
12669
|
createdAt: number(),
|
|
12661
12670
|
updatedAt: number()
|
|
12662
12671
|
});
|
|
12663
|
-
object({
|
|
12664
|
-
id: string(),
|
|
12665
|
-
label: string(),
|
|
12666
|
-
isAdmin: boolean().default(false),
|
|
12667
|
-
allowedProviders: AllowedProviderSchema,
|
|
12668
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12669
|
-
tokenHash: string(),
|
|
12670
|
-
tokenPrefix: string(),
|
|
12671
|
-
createdAt: number(),
|
|
12672
|
-
lastUsedAt: number().optional()
|
|
12673
|
-
});
|
|
12674
12672
|
object({
|
|
12675
12673
|
id: string(),
|
|
12676
12674
|
userId: string(),
|
|
@@ -16652,16 +16650,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16652
16650
|
var DeclareKindResultSchema = object({
|
|
16653
16651
|
kindId: number().int(),
|
|
16654
16652
|
state: RecordKindStateSchema,
|
|
16655
|
-
createdIndexes: array(string())
|
|
16656
|
-
/**
|
|
16657
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16658
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16659
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16660
|
-
*/
|
|
16661
|
-
adoptionPending: _null()
|
|
16653
|
+
createdIndexes: array(string())
|
|
16662
16654
|
});
|
|
16663
16655
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16664
16656
|
var SecretRefsList = array(string());
|
|
16657
|
+
/**
|
|
16658
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16659
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16660
|
+
*/
|
|
16661
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16662
|
+
object({
|
|
16663
|
+
op: literal("put"),
|
|
16664
|
+
kind: RecordKindNameSchema,
|
|
16665
|
+
record: RecordInputSchema,
|
|
16666
|
+
ifRev: number().int().min(0).optional()
|
|
16667
|
+
}),
|
|
16668
|
+
object({
|
|
16669
|
+
op: literal("patch"),
|
|
16670
|
+
kind: RecordKindNameSchema,
|
|
16671
|
+
id: RecordIdSchema,
|
|
16672
|
+
data: RecordBodySchema,
|
|
16673
|
+
at: number().int().nullable().optional(),
|
|
16674
|
+
expiresAt: number().int().nullable().optional(),
|
|
16675
|
+
ifRev: number().int().min(1).optional()
|
|
16676
|
+
}),
|
|
16677
|
+
object({
|
|
16678
|
+
op: literal("delete"),
|
|
16679
|
+
kind: RecordKindNameSchema,
|
|
16680
|
+
id: RecordIdSchema
|
|
16681
|
+
})
|
|
16682
|
+
]);
|
|
16665
16683
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16666
16684
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16667
16685
|
kind: "mutation",
|
|
@@ -16768,6 +16786,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16768
16786
|
}), {
|
|
16769
16787
|
kind: "mutation",
|
|
16770
16788
|
auth: "admin"
|
|
16789
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16790
|
+
results: array(object({
|
|
16791
|
+
rev: number().int().nullable(),
|
|
16792
|
+
deleted: boolean()
|
|
16793
|
+
})),
|
|
16794
|
+
releasedRefs: SecretRefsList,
|
|
16795
|
+
secretRefs: SecretRefsList
|
|
16796
|
+
}), {
|
|
16797
|
+
kind: "mutation",
|
|
16798
|
+
auth: "admin"
|
|
16771
16799
|
}), method(object({
|
|
16772
16800
|
deviceId: number().int(),
|
|
16773
16801
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42475,9 +42503,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42475
42503
|
"node-updating",
|
|
42476
42504
|
"node-inference-unavailable",
|
|
42477
42505
|
"detection-blind",
|
|
42506
|
+
"motion-noisy",
|
|
42507
|
+
"motion-calm",
|
|
42478
42508
|
"recording-stalled",
|
|
42479
42509
|
"recording-healthy",
|
|
42480
42510
|
"recording-degraded",
|
|
42511
|
+
"device-attention-required",
|
|
42512
|
+
"device-attention-resolved",
|
|
42481
42513
|
"storage-location-low",
|
|
42482
42514
|
"storage-location-critical",
|
|
42483
42515
|
"storage-location-ok",
|
|
@@ -42501,6 +42533,8 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42501
42533
|
"alert-critical",
|
|
42502
42534
|
"alert-error",
|
|
42503
42535
|
"alert-critical-resolved",
|
|
42536
|
+
"rule-broken",
|
|
42537
|
+
"rule-repaired",
|
|
42504
42538
|
"camera-online",
|
|
42505
42539
|
"camera-offline",
|
|
42506
42540
|
"camera-disabled",
|
|
@@ -55816,6 +55850,16 @@ var DishwasherStatusSchema = object({
|
|
|
55816
55850
|
powerState: string().nullable(),
|
|
55817
55851
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55818
55852
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55853
|
+
/**
|
|
55854
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55855
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55856
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55857
|
+
*/
|
|
55858
|
+
filterCleaningDue: boolean().nullable(),
|
|
55859
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55860
|
+
machineCareDue: boolean().nullable(),
|
|
55861
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55862
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55819
55863
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55820
55864
|
halfLoad: boolean().nullable(),
|
|
55821
55865
|
hygienePlus: boolean().nullable(),
|
|
@@ -64466,16 +64510,6 @@ var UpdateUserInputSchema = object({
|
|
|
64466
64510
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64467
64511
|
scopes: array(TokenScopeSchema).optional()
|
|
64468
64512
|
});
|
|
64469
|
-
var ApiKeySummarySchema = object({
|
|
64470
|
-
id: string(),
|
|
64471
|
-
label: string(),
|
|
64472
|
-
isAdmin: boolean().default(false),
|
|
64473
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64474
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64475
|
-
tokenPrefix: string(),
|
|
64476
|
-
createdAt: number(),
|
|
64477
|
-
lastUsedAt: number().optional()
|
|
64478
|
-
});
|
|
64479
64513
|
var OauthSessionSummarySchema = object({
|
|
64480
64514
|
id: string(),
|
|
64481
64515
|
userId: string(),
|
|
@@ -64497,8 +64531,7 @@ var TotpStatusSchema = object({
|
|
|
64497
64531
|
confirmedAt: number().nullable()
|
|
64498
64532
|
});
|
|
64499
64533
|
/**
|
|
64500
|
-
* user-management — singleton capability for user accounts
|
|
64501
|
-
* legacy API-key rows.
|
|
64534
|
+
* user-management — singleton capability for user accounts.
|
|
64502
64535
|
*
|
|
64503
64536
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64504
64537
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64554,10 +64587,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64554
64587
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64555
64588
|
kind: "mutation",
|
|
64556
64589
|
access: "view"
|
|
64557
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64558
|
-
kind: "mutation",
|
|
64559
|
-
auth: "admin",
|
|
64560
|
-
access: "delete"
|
|
64561
64590
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64562
64591
|
kind: "mutation",
|
|
64563
64592
|
auth: "admin",
|
|
@@ -74013,6 +74042,12 @@ Object.freeze({
|
|
|
74013
74042
|
addonId: null,
|
|
74014
74043
|
access: "view"
|
|
74015
74044
|
},
|
|
74045
|
+
"records.transact": {
|
|
74046
|
+
capName: "records",
|
|
74047
|
+
capScope: "system",
|
|
74048
|
+
addonId: null,
|
|
74049
|
+
access: "create"
|
|
74050
|
+
},
|
|
74016
74051
|
"sceneMonitor.captureReference": {
|
|
74017
74052
|
capName: "scene-monitor",
|
|
74018
74053
|
capScope: "device",
|
|
@@ -75345,12 +75380,6 @@ Object.freeze({
|
|
|
75345
75380
|
addonId: null,
|
|
75346
75381
|
access: "view"
|
|
75347
75382
|
},
|
|
75348
|
-
"userManagement.listApiKeys": {
|
|
75349
|
-
capName: "user-management",
|
|
75350
|
-
capScope: "system",
|
|
75351
|
-
addonId: null,
|
|
75352
|
-
access: "view"
|
|
75353
|
-
},
|
|
75354
75383
|
"userManagement.listExternalIdentities": {
|
|
75355
75384
|
capName: "user-management",
|
|
75356
75385
|
capScope: "system",
|
|
@@ -75405,12 +75434,6 @@ Object.freeze({
|
|
|
75405
75434
|
addonId: null,
|
|
75406
75435
|
access: "create"
|
|
75407
75436
|
},
|
|
75408
|
-
"userManagement.revokeApiKey": {
|
|
75409
|
-
capName: "user-management",
|
|
75410
|
-
capScope: "system",
|
|
75411
|
-
addonId: null,
|
|
75412
|
-
access: "delete"
|
|
75413
|
-
},
|
|
75414
75437
|
"userManagement.revokeOauthSession": {
|
|
75415
75438
|
capName: "user-management",
|
|
75416
75439
|
capScope: "system",
|
|
@@ -78775,9 +78798,13 @@ new Map(Object.entries({
|
|
|
78775
78798
|
"stream-online": "device-events",
|
|
78776
78799
|
"stream-offline": "device-events",
|
|
78777
78800
|
"detection-blind": "device-events",
|
|
78801
|
+
"motion-noisy": "device-events",
|
|
78802
|
+
"motion-calm": "device-events",
|
|
78778
78803
|
"recording-stalled": "device-events",
|
|
78779
78804
|
"recording-healthy": "device-events",
|
|
78780
78805
|
"recording-degraded": "device-events",
|
|
78806
|
+
"device-attention-required": "device-events",
|
|
78807
|
+
"device-attention-resolved": "device-events",
|
|
78781
78808
|
"node-online": "system",
|
|
78782
78809
|
"node-offline": "system",
|
|
78783
78810
|
"node-restarting": "system",
|
|
@@ -78794,6 +78821,8 @@ new Map(Object.entries({
|
|
|
78794
78821
|
"alert-critical": "system",
|
|
78795
78822
|
"alert-error": "system",
|
|
78796
78823
|
"alert-critical-resolved": "system",
|
|
78824
|
+
"rule-broken": "system",
|
|
78825
|
+
"rule-repaired": "system",
|
|
78797
78826
|
"storage-location-low": "system",
|
|
78798
78827
|
"storage-location-critical": "system",
|
|
78799
78828
|
"storage-location-ok": "system",
|
|
@@ -78858,6 +78887,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78858
78887
|
label: "Detecting nothing",
|
|
78859
78888
|
kinds: ["detection-blind"]
|
|
78860
78889
|
},
|
|
78890
|
+
{
|
|
78891
|
+
id: "motion-noise",
|
|
78892
|
+
family: "device-events",
|
|
78893
|
+
label: "Motion without a subject",
|
|
78894
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
78895
|
+
},
|
|
78861
78896
|
{
|
|
78862
78897
|
id: "recording",
|
|
78863
78898
|
family: "device-events",
|
|
@@ -78868,6 +78903,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78868
78903
|
"recording-degraded"
|
|
78869
78904
|
]
|
|
78870
78905
|
},
|
|
78906
|
+
{
|
|
78907
|
+
id: "device-attention",
|
|
78908
|
+
family: "device-events",
|
|
78909
|
+
label: "Needs attention",
|
|
78910
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
78911
|
+
},
|
|
78871
78912
|
{
|
|
78872
78913
|
id: "nodes",
|
|
78873
78914
|
family: "system",
|
|
@@ -78928,6 +78969,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78928
78969
|
"alert-critical-resolved"
|
|
78929
78970
|
]
|
|
78930
78971
|
},
|
|
78972
|
+
{
|
|
78973
|
+
id: "rule-health",
|
|
78974
|
+
family: "system",
|
|
78975
|
+
label: "Notification rules",
|
|
78976
|
+
kinds: ["rule-broken", "rule-repaired"]
|
|
78977
|
+
},
|
|
78931
78978
|
{
|
|
78932
78979
|
id: "alarm",
|
|
78933
78980
|
family: "alarm",
|
|
@@ -79001,6 +79048,7 @@ var ALERT_EPISODE = [
|
|
|
79001
79048
|
"alert-error",
|
|
79002
79049
|
"alert-critical-resolved"
|
|
79003
79050
|
];
|
|
79051
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79004
79052
|
var UPDATES = [
|
|
79005
79053
|
"addon-update-available",
|
|
79006
79054
|
"server-update-available",
|
|
@@ -79030,9 +79078,12 @@ var DEVICE_EVENTS = [
|
|
|
79030
79078
|
"stream-online",
|
|
79031
79079
|
"stream-offline",
|
|
79032
79080
|
"detection-blind",
|
|
79081
|
+
"motion-noisy",
|
|
79082
|
+
"motion-calm",
|
|
79033
79083
|
"recording-stalled",
|
|
79034
79084
|
"recording-healthy",
|
|
79035
79085
|
"recording-degraded",
|
|
79086
|
+
...DEVICE_ATTENTION,
|
|
79036
79087
|
...ALARM
|
|
79037
79088
|
];
|
|
79038
79089
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79200,7 +79251,13 @@ var STATE_SUMMARY_VARS = [
|
|
|
79200
79251
|
[...RULE_TEXT],
|
|
79201
79252
|
[...RULE_TEXT],
|
|
79202
79253
|
[...RULE_TEXT],
|
|
79203
|
-
|
|
79254
|
+
[...RULE_TEXT],
|
|
79255
|
+
[...RULE_TEXT],
|
|
79256
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79257
|
+
[...RULE_TEXT],
|
|
79258
|
+
[...RULE_TEXT],
|
|
79259
|
+
[...RULE_TEXT],
|
|
79260
|
+
[...RULE_TEXT],
|
|
79204
79261
|
[...RULE_TEXT],
|
|
79205
79262
|
[...RULE_TEXT],
|
|
79206
79263
|
[...RULE_TEXT],
|
|
@@ -79218,11 +79275,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79218
79275
|
[...RULE_TEXT],
|
|
79219
79276
|
[...RULE_TEXT],
|
|
79220
79277
|
[...RULE_TEXT],
|
|
79278
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79221
79279
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79280
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79222
79281
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79223
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79224
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79225
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79282
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79226
79283
|
[...RULE_TEXT],
|
|
79227
79284
|
[...RULE_TEXT],
|
|
79228
79285
|
[...RULE_TEXT],
|
|
@@ -79243,6 +79300,125 @@ var STATE_SUMMARY_VARS = [
|
|
|
79243
79300
|
[...RULE_TEXT],
|
|
79244
79301
|
...STATE_SUMMARY_VARS
|
|
79245
79302
|
];
|
|
79303
|
+
new Map([
|
|
79304
|
+
{
|
|
79305
|
+
id: "device-connectivity",
|
|
79306
|
+
family: "device-events",
|
|
79307
|
+
label: "Device connectivity (offline / back online)",
|
|
79308
|
+
bad: ["device-offline"],
|
|
79309
|
+
recovery: ["device-online"],
|
|
79310
|
+
snapshotLabel: "Devices offline now",
|
|
79311
|
+
snapshotSection: "device-state"
|
|
79312
|
+
},
|
|
79313
|
+
{
|
|
79314
|
+
id: "device-switch",
|
|
79315
|
+
family: "device-events",
|
|
79316
|
+
label: "Device switched off / back on",
|
|
79317
|
+
bad: ["device-disabled"],
|
|
79318
|
+
recovery: ["device-enabled"],
|
|
79319
|
+
snapshotLabel: "Devices switched off now",
|
|
79320
|
+
snapshotSection: "device-state"
|
|
79321
|
+
},
|
|
79322
|
+
{
|
|
79323
|
+
id: "stream-connectivity",
|
|
79324
|
+
family: "device-events",
|
|
79325
|
+
label: "Stream connectivity (offline / back online)",
|
|
79326
|
+
bad: ["stream-offline"],
|
|
79327
|
+
recovery: ["stream-online"],
|
|
79328
|
+
snapshotLabel: "Streams offline now",
|
|
79329
|
+
snapshotSection: "streams"
|
|
79330
|
+
},
|
|
79331
|
+
{
|
|
79332
|
+
id: "battery",
|
|
79333
|
+
family: "device-events",
|
|
79334
|
+
label: "Battery (low / back to normal)",
|
|
79335
|
+
bad: ["device-battery-low"],
|
|
79336
|
+
recovery: ["device-battery-normal"],
|
|
79337
|
+
snapshotLabel: "Batteries low now",
|
|
79338
|
+
snapshotSection: "battery"
|
|
79339
|
+
},
|
|
79340
|
+
{
|
|
79341
|
+
id: "consumables",
|
|
79342
|
+
family: "device-events",
|
|
79343
|
+
label: "Consumables (low / replaced)",
|
|
79344
|
+
bad: ["device-consumable-low"],
|
|
79345
|
+
recovery: ["device-consumable-normal"],
|
|
79346
|
+
snapshotLabel: "Consumables low now",
|
|
79347
|
+
snapshotSection: "consumables"
|
|
79348
|
+
},
|
|
79349
|
+
{
|
|
79350
|
+
id: "tanks",
|
|
79351
|
+
family: "device-events",
|
|
79352
|
+
label: "Tanks (low or full / back to normal)",
|
|
79353
|
+
bad: ["device-tank-low", "device-tank-full"],
|
|
79354
|
+
recovery: ["device-tank-normal"],
|
|
79355
|
+
snapshotLabel: "Tanks low or full now",
|
|
79356
|
+
snapshotSection: "tanks"
|
|
79357
|
+
},
|
|
79358
|
+
{
|
|
79359
|
+
id: "motion-noise",
|
|
79360
|
+
family: "device-events",
|
|
79361
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79362
|
+
bad: ["motion-noisy"],
|
|
79363
|
+
recovery: ["motion-calm"],
|
|
79364
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79365
|
+
snapshotSection: null
|
|
79366
|
+
},
|
|
79367
|
+
{
|
|
79368
|
+
id: "recording-health",
|
|
79369
|
+
family: "device-events",
|
|
79370
|
+
label: "Recording health (stalled or degraded / recording again)",
|
|
79371
|
+
bad: ["recording-stalled", "recording-degraded"],
|
|
79372
|
+
recovery: ["recording-healthy"],
|
|
79373
|
+
snapshotLabel: "Recordings stalled now",
|
|
79374
|
+
snapshotSection: null
|
|
79375
|
+
},
|
|
79376
|
+
{
|
|
79377
|
+
id: "device-attention",
|
|
79378
|
+
family: "device-events",
|
|
79379
|
+
label: "Device needs attention (raised / resolved)",
|
|
79380
|
+
bad: ["device-attention-required"],
|
|
79381
|
+
recovery: ["device-attention-resolved"],
|
|
79382
|
+
snapshotLabel: "Devices needing attention now",
|
|
79383
|
+
snapshotSection: null
|
|
79384
|
+
},
|
|
79385
|
+
{
|
|
79386
|
+
id: "node-connectivity",
|
|
79387
|
+
family: "system",
|
|
79388
|
+
label: "Node connectivity (offline / back online)",
|
|
79389
|
+
bad: ["node-offline"],
|
|
79390
|
+
recovery: ["node-online"],
|
|
79391
|
+
snapshotLabel: "Nodes offline now",
|
|
79392
|
+
snapshotSection: "nodes"
|
|
79393
|
+
},
|
|
79394
|
+
{
|
|
79395
|
+
id: "storage-space",
|
|
79396
|
+
family: "system",
|
|
79397
|
+
label: "Storage space (low or critical / ok again)",
|
|
79398
|
+
bad: ["storage-location-low", "storage-location-critical"],
|
|
79399
|
+
recovery: ["storage-location-ok"],
|
|
79400
|
+
snapshotLabel: "Storage locations low now",
|
|
79401
|
+
snapshotSection: null
|
|
79402
|
+
},
|
|
79403
|
+
{
|
|
79404
|
+
id: "critical-alerts",
|
|
79405
|
+
family: "system",
|
|
79406
|
+
label: "Critical alerts (raised / resolved)",
|
|
79407
|
+
bad: ["alert-critical"],
|
|
79408
|
+
recovery: ["alert-critical-resolved"],
|
|
79409
|
+
snapshotLabel: "Critical alerts open now",
|
|
79410
|
+
snapshotSection: null
|
|
79411
|
+
},
|
|
79412
|
+
{
|
|
79413
|
+
id: "rule-health",
|
|
79414
|
+
family: "system",
|
|
79415
|
+
label: "Rule health (broken / repaired)",
|
|
79416
|
+
bad: ["rule-broken"],
|
|
79417
|
+
recovery: ["rule-repaired"],
|
|
79418
|
+
snapshotLabel: "Notification rules broken now",
|
|
79419
|
+
snapshotSection: null
|
|
79420
|
+
}
|
|
79421
|
+
].flatMap((spec) => [...spec.bad, ...spec.recovery].map((kind) => [kind, spec])));
|
|
79246
79422
|
new Set([
|
|
79247
79423
|
"disarmed",
|
|
79248
79424
|
"armed_home",
|
|
@@ -79920,7 +80096,7 @@ function buildControllerFormSchema() {
|
|
|
79920
80096
|
id: "connection",
|
|
79921
80097
|
title: "Connection",
|
|
79922
80098
|
titleKey: "provider-unifi:controller.s_connection.title",
|
|
79923
|
-
description: "
|
|
80099
|
+
description: "Authenticate with a UniFi OS API key (preferred) or a local admin username and password.",
|
|
79924
80100
|
descriptionKey: "provider-unifi:controller.s_connection.description",
|
|
79925
80101
|
columns: 2,
|
|
79926
80102
|
fields: [
|
package/i18n/en.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"controller.s_identity.title": "Controller",
|
|
3
3
|
"controller.s_identity.name.label": "Name",
|
|
4
4
|
"controller.s_connection.title": "Connection",
|
|
5
|
-
"controller.s_connection.description": "
|
|
5
|
+
"controller.s_connection.description": "Authenticate with a UniFi OS API key (preferred) or a local admin username and password.",
|
|
6
6
|
"controller.s_connection.host.label": "Controller host / IP",
|
|
7
7
|
"controller.s_connection.port.label": "HTTPS port",
|
|
8
8
|
"controller.s_connection.apiKey.label": "API key",
|
package/i18n/it.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"controller.s_identity.title": "Controller",
|
|
3
3
|
"controller.s_identity.name.label": "Nome",
|
|
4
4
|
"controller.s_connection.title": "Connessione",
|
|
5
|
-
"controller.s_connection.description": "
|
|
5
|
+
"controller.s_connection.description": "Autenticati con una API key UniFi OS (consigliata) o con utente e password di un admin locale.",
|
|
6
6
|
"controller.s_connection.host.label": "Host / IP del controller",
|
|
7
7
|
"controller.s_connection.port.label": "Porta HTTPS",
|
|
8
8
|
"controller.s_connection.apiKey.label": "API key",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-unifi",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.142",
|
|
4
4
|
"description": "UniFi Network controller device-provider addon for CamStack — local-controller infra switches/APs (as containers) + network-client presence. NO cameras/Protect.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|