@camstack/addon-provider-velux 0.2.141 → 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 +115 -62
- package/dist/addon.mjs +115 -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
|
|
@@ -5422,7 +5431,7 @@ var ZodIssueCode = {
|
|
|
5422
5431
|
var ZodFirstPartyTypeKind;
|
|
5423
5432
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5424
5433
|
//#endregion
|
|
5425
|
-
//#region ../types/dist/sleep-
|
|
5434
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5426
5435
|
/**
|
|
5427
5436
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5428
5437
|
* window to float samples (D455).
|
|
@@ -7951,7 +7960,7 @@ var EntryDescriptorSchema = object({
|
|
|
7951
7960
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7952
7961
|
fields: record(string(), unknown())
|
|
7953
7962
|
}).strict();
|
|
7954
|
-
/** What crosses the wire
|
|
7963
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7955
7964
|
var RecordKindDeclarationSchema = object({
|
|
7956
7965
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7957
7966
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7970,14 +7979,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7970
7979
|
secretPaths: array(string().min(1)).default([]),
|
|
7971
7980
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7972
7981
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7973
|
-
/**
|
|
7974
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7975
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
7976
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
7977
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
7978
|
-
* removal still sends it. Never set it.
|
|
7979
|
-
*/
|
|
7980
|
-
adoptsFrom: string().min(1).optional(),
|
|
7981
7982
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
7982
7983
|
transactFamily: string().min(1).optional(),
|
|
7983
7984
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12669,17 +12670,6 @@ object({
|
|
|
12669
12670
|
createdAt: number(),
|
|
12670
12671
|
updatedAt: number()
|
|
12671
12672
|
});
|
|
12672
|
-
object({
|
|
12673
|
-
id: string(),
|
|
12674
|
-
label: string(),
|
|
12675
|
-
isAdmin: boolean().default(false),
|
|
12676
|
-
allowedProviders: AllowedProviderSchema,
|
|
12677
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12678
|
-
tokenHash: string(),
|
|
12679
|
-
tokenPrefix: string(),
|
|
12680
|
-
createdAt: number(),
|
|
12681
|
-
lastUsedAt: number().optional()
|
|
12682
|
-
});
|
|
12683
12673
|
object({
|
|
12684
12674
|
id: string(),
|
|
12685
12675
|
userId: string(),
|
|
@@ -16661,16 +16651,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16661
16651
|
var DeclareKindResultSchema = object({
|
|
16662
16652
|
kindId: number().int(),
|
|
16663
16653
|
state: RecordKindStateSchema,
|
|
16664
|
-
createdIndexes: array(string())
|
|
16665
|
-
/**
|
|
16666
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16667
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16668
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16669
|
-
*/
|
|
16670
|
-
adoptionPending: _null()
|
|
16654
|
+
createdIndexes: array(string())
|
|
16671
16655
|
});
|
|
16672
16656
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16673
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
|
+
]);
|
|
16674
16684
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16675
16685
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16676
16686
|
kind: "mutation",
|
|
@@ -16777,6 +16787,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16777
16787
|
}), {
|
|
16778
16788
|
kind: "mutation",
|
|
16779
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"
|
|
16780
16800
|
}), method(object({
|
|
16781
16801
|
deviceId: number().int(),
|
|
16782
16802
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42484,9 +42504,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42484
42504
|
"node-updating",
|
|
42485
42505
|
"node-inference-unavailable",
|
|
42486
42506
|
"detection-blind",
|
|
42507
|
+
"motion-noisy",
|
|
42508
|
+
"motion-calm",
|
|
42487
42509
|
"recording-stalled",
|
|
42488
42510
|
"recording-healthy",
|
|
42489
42511
|
"recording-degraded",
|
|
42512
|
+
"device-attention-required",
|
|
42513
|
+
"device-attention-resolved",
|
|
42490
42514
|
"storage-location-low",
|
|
42491
42515
|
"storage-location-critical",
|
|
42492
42516
|
"storage-location-ok",
|
|
@@ -55810,6 +55834,16 @@ var DishwasherStatusSchema = object({
|
|
|
55810
55834
|
powerState: string().nullable(),
|
|
55811
55835
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55812
55836
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55837
|
+
/**
|
|
55838
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55839
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55840
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55841
|
+
*/
|
|
55842
|
+
filterCleaningDue: boolean().nullable(),
|
|
55843
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55844
|
+
machineCareDue: boolean().nullable(),
|
|
55845
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55846
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55813
55847
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55814
55848
|
halfLoad: boolean().nullable(),
|
|
55815
55849
|
hygienePlus: boolean().nullable(),
|
|
@@ -64460,16 +64494,6 @@ var UpdateUserInputSchema = object({
|
|
|
64460
64494
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64461
64495
|
scopes: array(TokenScopeSchema).optional()
|
|
64462
64496
|
});
|
|
64463
|
-
var ApiKeySummarySchema = object({
|
|
64464
|
-
id: string(),
|
|
64465
|
-
label: string(),
|
|
64466
|
-
isAdmin: boolean().default(false),
|
|
64467
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64468
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64469
|
-
tokenPrefix: string(),
|
|
64470
|
-
createdAt: number(),
|
|
64471
|
-
lastUsedAt: number().optional()
|
|
64472
|
-
});
|
|
64473
64497
|
var OauthSessionSummarySchema = object({
|
|
64474
64498
|
id: string(),
|
|
64475
64499
|
userId: string(),
|
|
@@ -64491,8 +64515,7 @@ var TotpStatusSchema = object({
|
|
|
64491
64515
|
confirmedAt: number().nullable()
|
|
64492
64516
|
});
|
|
64493
64517
|
/**
|
|
64494
|
-
* user-management — singleton capability for user accounts
|
|
64495
|
-
* legacy API-key rows.
|
|
64518
|
+
* user-management — singleton capability for user accounts.
|
|
64496
64519
|
*
|
|
64497
64520
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64498
64521
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64548,10 +64571,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64548
64571
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64549
64572
|
kind: "mutation",
|
|
64550
64573
|
access: "view"
|
|
64551
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64552
|
-
kind: "mutation",
|
|
64553
|
-
auth: "admin",
|
|
64554
|
-
access: "delete"
|
|
64555
64574
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64556
64575
|
kind: "mutation",
|
|
64557
64576
|
auth: "admin",
|
|
@@ -74007,6 +74026,12 @@ Object.freeze({
|
|
|
74007
74026
|
addonId: null,
|
|
74008
74027
|
access: "view"
|
|
74009
74028
|
},
|
|
74029
|
+
"records.transact": {
|
|
74030
|
+
capName: "records",
|
|
74031
|
+
capScope: "system",
|
|
74032
|
+
addonId: null,
|
|
74033
|
+
access: "create"
|
|
74034
|
+
},
|
|
74010
74035
|
"sceneMonitor.captureReference": {
|
|
74011
74036
|
capName: "scene-monitor",
|
|
74012
74037
|
capScope: "device",
|
|
@@ -75339,12 +75364,6 @@ Object.freeze({
|
|
|
75339
75364
|
addonId: null,
|
|
75340
75365
|
access: "view"
|
|
75341
75366
|
},
|
|
75342
|
-
"userManagement.listApiKeys": {
|
|
75343
|
-
capName: "user-management",
|
|
75344
|
-
capScope: "system",
|
|
75345
|
-
addonId: null,
|
|
75346
|
-
access: "view"
|
|
75347
|
-
},
|
|
75348
75367
|
"userManagement.listExternalIdentities": {
|
|
75349
75368
|
capName: "user-management",
|
|
75350
75369
|
capScope: "system",
|
|
@@ -75399,12 +75418,6 @@ Object.freeze({
|
|
|
75399
75418
|
addonId: null,
|
|
75400
75419
|
access: "create"
|
|
75401
75420
|
},
|
|
75402
|
-
"userManagement.revokeApiKey": {
|
|
75403
|
-
capName: "user-management",
|
|
75404
|
-
capScope: "system",
|
|
75405
|
-
addonId: null,
|
|
75406
|
-
access: "delete"
|
|
75407
|
-
},
|
|
75408
75421
|
"userManagement.revokeOauthSession": {
|
|
75409
75422
|
capName: "user-management",
|
|
75410
75423
|
capScope: "system",
|
|
@@ -78769,9 +78782,13 @@ new Map(Object.entries({
|
|
|
78769
78782
|
"stream-online": "device-events",
|
|
78770
78783
|
"stream-offline": "device-events",
|
|
78771
78784
|
"detection-blind": "device-events",
|
|
78785
|
+
"motion-noisy": "device-events",
|
|
78786
|
+
"motion-calm": "device-events",
|
|
78772
78787
|
"recording-stalled": "device-events",
|
|
78773
78788
|
"recording-healthy": "device-events",
|
|
78774
78789
|
"recording-degraded": "device-events",
|
|
78790
|
+
"device-attention-required": "device-events",
|
|
78791
|
+
"device-attention-resolved": "device-events",
|
|
78775
78792
|
"node-online": "system",
|
|
78776
78793
|
"node-offline": "system",
|
|
78777
78794
|
"node-restarting": "system",
|
|
@@ -78854,6 +78871,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78854
78871
|
label: "Detecting nothing",
|
|
78855
78872
|
kinds: ["detection-blind"]
|
|
78856
78873
|
},
|
|
78874
|
+
{
|
|
78875
|
+
id: "motion-noise",
|
|
78876
|
+
family: "device-events",
|
|
78877
|
+
label: "Motion without a subject",
|
|
78878
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
78879
|
+
},
|
|
78857
78880
|
{
|
|
78858
78881
|
id: "recording",
|
|
78859
78882
|
family: "device-events",
|
|
@@ -78864,6 +78887,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78864
78887
|
"recording-degraded"
|
|
78865
78888
|
]
|
|
78866
78889
|
},
|
|
78890
|
+
{
|
|
78891
|
+
id: "device-attention",
|
|
78892
|
+
family: "device-events",
|
|
78893
|
+
label: "Needs attention",
|
|
78894
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
78895
|
+
},
|
|
78867
78896
|
{
|
|
78868
78897
|
id: "nodes",
|
|
78869
78898
|
family: "system",
|
|
@@ -79003,6 +79032,7 @@ var ALERT_EPISODE = [
|
|
|
79003
79032
|
"alert-error",
|
|
79004
79033
|
"alert-critical-resolved"
|
|
79005
79034
|
];
|
|
79035
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79006
79036
|
var UPDATES = [
|
|
79007
79037
|
"addon-update-available",
|
|
79008
79038
|
"server-update-available",
|
|
@@ -79032,9 +79062,12 @@ var DEVICE_EVENTS = [
|
|
|
79032
79062
|
"stream-online",
|
|
79033
79063
|
"stream-offline",
|
|
79034
79064
|
"detection-blind",
|
|
79065
|
+
"motion-noisy",
|
|
79066
|
+
"motion-calm",
|
|
79035
79067
|
"recording-stalled",
|
|
79036
79068
|
"recording-healthy",
|
|
79037
79069
|
"recording-degraded",
|
|
79070
|
+
...DEVICE_ATTENTION,
|
|
79038
79071
|
...ALARM
|
|
79039
79072
|
];
|
|
79040
79073
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79202,7 +79235,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
79202
79235
|
[...RULE_TEXT],
|
|
79203
79236
|
[...RULE_TEXT],
|
|
79204
79237
|
[...RULE_TEXT],
|
|
79205
|
-
|
|
79238
|
+
[...RULE_TEXT],
|
|
79239
|
+
[...RULE_TEXT],
|
|
79240
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79206
79241
|
[...RULE_TEXT],
|
|
79207
79242
|
[...RULE_TEXT],
|
|
79208
79243
|
[...RULE_TEXT],
|
|
@@ -79224,11 +79259,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79224
79259
|
[...RULE_TEXT],
|
|
79225
79260
|
[...RULE_TEXT],
|
|
79226
79261
|
[...RULE_TEXT],
|
|
79262
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79227
79263
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79264
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79228
79265
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79229
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79230
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79231
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79266
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79232
79267
|
[...RULE_TEXT],
|
|
79233
79268
|
[...RULE_TEXT],
|
|
79234
79269
|
[...RULE_TEXT],
|
|
@@ -79304,6 +79339,15 @@ new Map([
|
|
|
79304
79339
|
snapshotLabel: "Tanks low or full now",
|
|
79305
79340
|
snapshotSection: "tanks"
|
|
79306
79341
|
},
|
|
79342
|
+
{
|
|
79343
|
+
id: "motion-noise",
|
|
79344
|
+
family: "device-events",
|
|
79345
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79346
|
+
bad: ["motion-noisy"],
|
|
79347
|
+
recovery: ["motion-calm"],
|
|
79348
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79349
|
+
snapshotSection: null
|
|
79350
|
+
},
|
|
79307
79351
|
{
|
|
79308
79352
|
id: "recording-health",
|
|
79309
79353
|
family: "device-events",
|
|
@@ -79313,6 +79357,15 @@ new Map([
|
|
|
79313
79357
|
snapshotLabel: "Recordings stalled now",
|
|
79314
79358
|
snapshotSection: null
|
|
79315
79359
|
},
|
|
79360
|
+
{
|
|
79361
|
+
id: "device-attention",
|
|
79362
|
+
family: "device-events",
|
|
79363
|
+
label: "Device needs attention (raised / resolved)",
|
|
79364
|
+
bad: ["device-attention-required"],
|
|
79365
|
+
recovery: ["device-attention-resolved"],
|
|
79366
|
+
snapshotLabel: "Devices needing attention now",
|
|
79367
|
+
snapshotSection: null
|
|
79368
|
+
},
|
|
79316
79369
|
{
|
|
79317
79370
|
id: "node-connectivity",
|
|
79318
79371
|
family: "system",
|
|
@@ -79954,7 +80007,7 @@ function buildConnectionFormSchema() {
|
|
|
79954
80007
|
id: "connection",
|
|
79955
80008
|
title: "Connection",
|
|
79956
80009
|
titleKey: "provider-velux:connection.s_connection.title",
|
|
79957
|
-
description: "
|
|
80010
|
+
description: "The password is the WiFi/web password printed on the back of the unit.",
|
|
79958
80011
|
descriptionKey: "provider-velux:connection.s_connection.description",
|
|
79959
80012
|
columns: 2,
|
|
79960
80013
|
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
|
|
@@ -5421,7 +5430,7 @@ var ZodIssueCode = {
|
|
|
5421
5430
|
var ZodFirstPartyTypeKind;
|
|
5422
5431
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5423
5432
|
//#endregion
|
|
5424
|
-
//#region ../types/dist/sleep-
|
|
5433
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5425
5434
|
/**
|
|
5426
5435
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5427
5436
|
* window to float samples (D455).
|
|
@@ -7950,7 +7959,7 @@ var EntryDescriptorSchema = object({
|
|
|
7950
7959
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7951
7960
|
fields: record(string(), unknown())
|
|
7952
7961
|
}).strict();
|
|
7953
|
-
/** What crosses the wire
|
|
7962
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7954
7963
|
var RecordKindDeclarationSchema = object({
|
|
7955
7964
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7956
7965
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7969,14 +7978,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7969
7978
|
secretPaths: array(string().min(1)).default([]),
|
|
7970
7979
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7971
7980
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7972
|
-
/**
|
|
7973
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7974
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
7975
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
7976
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
7977
|
-
* removal still sends it. Never set it.
|
|
7978
|
-
*/
|
|
7979
|
-
adoptsFrom: string().min(1).optional(),
|
|
7980
7981
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
7981
7982
|
transactFamily: string().min(1).optional(),
|
|
7982
7983
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12668,17 +12669,6 @@ object({
|
|
|
12668
12669
|
createdAt: number(),
|
|
12669
12670
|
updatedAt: number()
|
|
12670
12671
|
});
|
|
12671
|
-
object({
|
|
12672
|
-
id: string(),
|
|
12673
|
-
label: string(),
|
|
12674
|
-
isAdmin: boolean().default(false),
|
|
12675
|
-
allowedProviders: AllowedProviderSchema,
|
|
12676
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12677
|
-
tokenHash: string(),
|
|
12678
|
-
tokenPrefix: string(),
|
|
12679
|
-
createdAt: number(),
|
|
12680
|
-
lastUsedAt: number().optional()
|
|
12681
|
-
});
|
|
12682
12672
|
object({
|
|
12683
12673
|
id: string(),
|
|
12684
12674
|
userId: string(),
|
|
@@ -16660,16 +16650,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16660
16650
|
var DeclareKindResultSchema = object({
|
|
16661
16651
|
kindId: number().int(),
|
|
16662
16652
|
state: RecordKindStateSchema,
|
|
16663
|
-
createdIndexes: array(string())
|
|
16664
|
-
/**
|
|
16665
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16666
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16667
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16668
|
-
*/
|
|
16669
|
-
adoptionPending: _null()
|
|
16653
|
+
createdIndexes: array(string())
|
|
16670
16654
|
});
|
|
16671
16655
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16672
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
|
+
]);
|
|
16673
16683
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16674
16684
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16675
16685
|
kind: "mutation",
|
|
@@ -16776,6 +16786,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16776
16786
|
}), {
|
|
16777
16787
|
kind: "mutation",
|
|
16778
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"
|
|
16779
16799
|
}), method(object({
|
|
16780
16800
|
deviceId: number().int(),
|
|
16781
16801
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42483,9 +42503,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42483
42503
|
"node-updating",
|
|
42484
42504
|
"node-inference-unavailable",
|
|
42485
42505
|
"detection-blind",
|
|
42506
|
+
"motion-noisy",
|
|
42507
|
+
"motion-calm",
|
|
42486
42508
|
"recording-stalled",
|
|
42487
42509
|
"recording-healthy",
|
|
42488
42510
|
"recording-degraded",
|
|
42511
|
+
"device-attention-required",
|
|
42512
|
+
"device-attention-resolved",
|
|
42489
42513
|
"storage-location-low",
|
|
42490
42514
|
"storage-location-critical",
|
|
42491
42515
|
"storage-location-ok",
|
|
@@ -55809,6 +55833,16 @@ var DishwasherStatusSchema = object({
|
|
|
55809
55833
|
powerState: string().nullable(),
|
|
55810
55834
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55811
55835
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55836
|
+
/**
|
|
55837
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55838
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55839
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55840
|
+
*/
|
|
55841
|
+
filterCleaningDue: boolean().nullable(),
|
|
55842
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55843
|
+
machineCareDue: boolean().nullable(),
|
|
55844
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55845
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55812
55846
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55813
55847
|
halfLoad: boolean().nullable(),
|
|
55814
55848
|
hygienePlus: boolean().nullable(),
|
|
@@ -64459,16 +64493,6 @@ var UpdateUserInputSchema = object({
|
|
|
64459
64493
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64460
64494
|
scopes: array(TokenScopeSchema).optional()
|
|
64461
64495
|
});
|
|
64462
|
-
var ApiKeySummarySchema = object({
|
|
64463
|
-
id: string(),
|
|
64464
|
-
label: string(),
|
|
64465
|
-
isAdmin: boolean().default(false),
|
|
64466
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64467
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64468
|
-
tokenPrefix: string(),
|
|
64469
|
-
createdAt: number(),
|
|
64470
|
-
lastUsedAt: number().optional()
|
|
64471
|
-
});
|
|
64472
64496
|
var OauthSessionSummarySchema = object({
|
|
64473
64497
|
id: string(),
|
|
64474
64498
|
userId: string(),
|
|
@@ -64490,8 +64514,7 @@ var TotpStatusSchema = object({
|
|
|
64490
64514
|
confirmedAt: number().nullable()
|
|
64491
64515
|
});
|
|
64492
64516
|
/**
|
|
64493
|
-
* user-management — singleton capability for user accounts
|
|
64494
|
-
* legacy API-key rows.
|
|
64517
|
+
* user-management — singleton capability for user accounts.
|
|
64495
64518
|
*
|
|
64496
64519
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64497
64520
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64547,10 +64570,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64547
64570
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64548
64571
|
kind: "mutation",
|
|
64549
64572
|
access: "view"
|
|
64550
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64551
|
-
kind: "mutation",
|
|
64552
|
-
auth: "admin",
|
|
64553
|
-
access: "delete"
|
|
64554
64573
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64555
64574
|
kind: "mutation",
|
|
64556
64575
|
auth: "admin",
|
|
@@ -74006,6 +74025,12 @@ Object.freeze({
|
|
|
74006
74025
|
addonId: null,
|
|
74007
74026
|
access: "view"
|
|
74008
74027
|
},
|
|
74028
|
+
"records.transact": {
|
|
74029
|
+
capName: "records",
|
|
74030
|
+
capScope: "system",
|
|
74031
|
+
addonId: null,
|
|
74032
|
+
access: "create"
|
|
74033
|
+
},
|
|
74009
74034
|
"sceneMonitor.captureReference": {
|
|
74010
74035
|
capName: "scene-monitor",
|
|
74011
74036
|
capScope: "device",
|
|
@@ -75338,12 +75363,6 @@ Object.freeze({
|
|
|
75338
75363
|
addonId: null,
|
|
75339
75364
|
access: "view"
|
|
75340
75365
|
},
|
|
75341
|
-
"userManagement.listApiKeys": {
|
|
75342
|
-
capName: "user-management",
|
|
75343
|
-
capScope: "system",
|
|
75344
|
-
addonId: null,
|
|
75345
|
-
access: "view"
|
|
75346
|
-
},
|
|
75347
75366
|
"userManagement.listExternalIdentities": {
|
|
75348
75367
|
capName: "user-management",
|
|
75349
75368
|
capScope: "system",
|
|
@@ -75398,12 +75417,6 @@ Object.freeze({
|
|
|
75398
75417
|
addonId: null,
|
|
75399
75418
|
access: "create"
|
|
75400
75419
|
},
|
|
75401
|
-
"userManagement.revokeApiKey": {
|
|
75402
|
-
capName: "user-management",
|
|
75403
|
-
capScope: "system",
|
|
75404
|
-
addonId: null,
|
|
75405
|
-
access: "delete"
|
|
75406
|
-
},
|
|
75407
75420
|
"userManagement.revokeOauthSession": {
|
|
75408
75421
|
capName: "user-management",
|
|
75409
75422
|
capScope: "system",
|
|
@@ -78768,9 +78781,13 @@ new Map(Object.entries({
|
|
|
78768
78781
|
"stream-online": "device-events",
|
|
78769
78782
|
"stream-offline": "device-events",
|
|
78770
78783
|
"detection-blind": "device-events",
|
|
78784
|
+
"motion-noisy": "device-events",
|
|
78785
|
+
"motion-calm": "device-events",
|
|
78771
78786
|
"recording-stalled": "device-events",
|
|
78772
78787
|
"recording-healthy": "device-events",
|
|
78773
78788
|
"recording-degraded": "device-events",
|
|
78789
|
+
"device-attention-required": "device-events",
|
|
78790
|
+
"device-attention-resolved": "device-events",
|
|
78774
78791
|
"node-online": "system",
|
|
78775
78792
|
"node-offline": "system",
|
|
78776
78793
|
"node-restarting": "system",
|
|
@@ -78853,6 +78870,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78853
78870
|
label: "Detecting nothing",
|
|
78854
78871
|
kinds: ["detection-blind"]
|
|
78855
78872
|
},
|
|
78873
|
+
{
|
|
78874
|
+
id: "motion-noise",
|
|
78875
|
+
family: "device-events",
|
|
78876
|
+
label: "Motion without a subject",
|
|
78877
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
78878
|
+
},
|
|
78856
78879
|
{
|
|
78857
78880
|
id: "recording",
|
|
78858
78881
|
family: "device-events",
|
|
@@ -78863,6 +78886,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78863
78886
|
"recording-degraded"
|
|
78864
78887
|
]
|
|
78865
78888
|
},
|
|
78889
|
+
{
|
|
78890
|
+
id: "device-attention",
|
|
78891
|
+
family: "device-events",
|
|
78892
|
+
label: "Needs attention",
|
|
78893
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
78894
|
+
},
|
|
78866
78895
|
{
|
|
78867
78896
|
id: "nodes",
|
|
78868
78897
|
family: "system",
|
|
@@ -79002,6 +79031,7 @@ var ALERT_EPISODE = [
|
|
|
79002
79031
|
"alert-error",
|
|
79003
79032
|
"alert-critical-resolved"
|
|
79004
79033
|
];
|
|
79034
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79005
79035
|
var UPDATES = [
|
|
79006
79036
|
"addon-update-available",
|
|
79007
79037
|
"server-update-available",
|
|
@@ -79031,9 +79061,12 @@ var DEVICE_EVENTS = [
|
|
|
79031
79061
|
"stream-online",
|
|
79032
79062
|
"stream-offline",
|
|
79033
79063
|
"detection-blind",
|
|
79064
|
+
"motion-noisy",
|
|
79065
|
+
"motion-calm",
|
|
79034
79066
|
"recording-stalled",
|
|
79035
79067
|
"recording-healthy",
|
|
79036
79068
|
"recording-degraded",
|
|
79069
|
+
...DEVICE_ATTENTION,
|
|
79037
79070
|
...ALARM
|
|
79038
79071
|
];
|
|
79039
79072
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79201,7 +79234,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
79201
79234
|
[...RULE_TEXT],
|
|
79202
79235
|
[...RULE_TEXT],
|
|
79203
79236
|
[...RULE_TEXT],
|
|
79204
|
-
|
|
79237
|
+
[...RULE_TEXT],
|
|
79238
|
+
[...RULE_TEXT],
|
|
79239
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79205
79240
|
[...RULE_TEXT],
|
|
79206
79241
|
[...RULE_TEXT],
|
|
79207
79242
|
[...RULE_TEXT],
|
|
@@ -79223,11 +79258,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79223
79258
|
[...RULE_TEXT],
|
|
79224
79259
|
[...RULE_TEXT],
|
|
79225
79260
|
[...RULE_TEXT],
|
|
79261
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79226
79262
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79263
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79227
79264
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79228
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79229
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79230
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79265
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79231
79266
|
[...RULE_TEXT],
|
|
79232
79267
|
[...RULE_TEXT],
|
|
79233
79268
|
[...RULE_TEXT],
|
|
@@ -79303,6 +79338,15 @@ new Map([
|
|
|
79303
79338
|
snapshotLabel: "Tanks low or full now",
|
|
79304
79339
|
snapshotSection: "tanks"
|
|
79305
79340
|
},
|
|
79341
|
+
{
|
|
79342
|
+
id: "motion-noise",
|
|
79343
|
+
family: "device-events",
|
|
79344
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79345
|
+
bad: ["motion-noisy"],
|
|
79346
|
+
recovery: ["motion-calm"],
|
|
79347
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79348
|
+
snapshotSection: null
|
|
79349
|
+
},
|
|
79306
79350
|
{
|
|
79307
79351
|
id: "recording-health",
|
|
79308
79352
|
family: "device-events",
|
|
@@ -79312,6 +79356,15 @@ new Map([
|
|
|
79312
79356
|
snapshotLabel: "Recordings stalled now",
|
|
79313
79357
|
snapshotSection: null
|
|
79314
79358
|
},
|
|
79359
|
+
{
|
|
79360
|
+
id: "device-attention",
|
|
79361
|
+
family: "device-events",
|
|
79362
|
+
label: "Device needs attention (raised / resolved)",
|
|
79363
|
+
bad: ["device-attention-required"],
|
|
79364
|
+
recovery: ["device-attention-resolved"],
|
|
79365
|
+
snapshotLabel: "Devices needing attention now",
|
|
79366
|
+
snapshotSection: null
|
|
79367
|
+
},
|
|
79315
79368
|
{
|
|
79316
79369
|
id: "node-connectivity",
|
|
79317
79370
|
family: "system",
|
|
@@ -79953,7 +80006,7 @@ function buildConnectionFormSchema() {
|
|
|
79953
80006
|
id: "connection",
|
|
79954
80007
|
title: "Connection",
|
|
79955
80008
|
titleKey: "provider-velux:connection.s_connection.title",
|
|
79956
|
-
description: "
|
|
80009
|
+
description: "The password is the WiFi/web password printed on the back of the unit.",
|
|
79957
80010
|
descriptionKey: "provider-velux:connection.s_connection.description",
|
|
79958
80011
|
columns: 2,
|
|
79959
80012
|
fields: [
|
package/i18n/en.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"connection.s_identity.title": "Gateway",
|
|
3
3
|
"connection.s_identity.name.label": "Name",
|
|
4
4
|
"connection.s_connection.title": "Connection",
|
|
5
|
-
"connection.s_connection.description": "
|
|
5
|
+
"connection.s_connection.description": "The password is the WiFi/web password printed on the back of the unit.",
|
|
6
6
|
"connection.s_connection.host.label": "Gateway host / IP",
|
|
7
7
|
"connection.s_connection.password.label": "Password",
|
|
8
8
|
"connection.s_connection.pollIntervalMs.label": "Poll interval (ms)"
|
package/i18n/it.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"connection.s_identity.title": "Gateway",
|
|
3
3
|
"connection.s_identity.name.label": "Nome",
|
|
4
4
|
"connection.s_connection.title": "Connessione",
|
|
5
|
-
"connection.s_connection.description": "
|
|
5
|
+
"connection.s_connection.description": "La password è quella WiFi/web stampata sul retro del dispositivo.",
|
|
6
6
|
"connection.s_connection.host.label": "Host / IP del gateway",
|
|
7
7
|
"connection.s_connection.password.label": "Password",
|
|
8
8
|
"connection.s_connection.pollIntervalMs.label": "Intervallo di lettura (ms)"
|
package/package.json
CHANGED