@camstack/addon-terminal 0.1.134 → 0.1.135
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 +264 -44
- package/dist/addon.mjs +264 -44
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -31,7 +31,7 @@ let node_module = require("node:module");
|
|
|
31
31
|
let sharp = require("sharp");
|
|
32
32
|
sharp = __toESM(sharp);
|
|
33
33
|
let node_http = require("node:http");
|
|
34
|
-
//#region ../types/dist/event-category-
|
|
34
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
35
35
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
36
36
|
EventCategory["SystemBoot"] = "system.boot";
|
|
37
37
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -110,9 +110,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
110
110
|
/**
|
|
111
111
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
112
112
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
113
|
-
* alert centre turns it into one
|
|
113
|
+
* alert centre turns it into one critical alert.
|
|
114
114
|
*/
|
|
115
115
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
116
|
+
/**
|
|
117
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
118
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
119
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
120
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
121
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
122
|
+
* event may be dropped (D8, D11).
|
|
123
|
+
*/
|
|
124
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
116
125
|
EventCategory["AddonError"] = "addon.error";
|
|
117
126
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
118
127
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5437,7 +5446,7 @@ var ZodIssueCode = {
|
|
|
5437
5446
|
var ZodFirstPartyTypeKind;
|
|
5438
5447
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5439
5448
|
//#endregion
|
|
5440
|
-
//#region ../types/dist/sleep-
|
|
5449
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5441
5450
|
/**
|
|
5442
5451
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5443
5452
|
* window to float samples (D455).
|
|
@@ -13291,7 +13300,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13291
13300
|
]);
|
|
13292
13301
|
var AlertActionSchema = object({
|
|
13293
13302
|
label: string(),
|
|
13294
|
-
href: string().optional()
|
|
13303
|
+
href: string().optional(),
|
|
13304
|
+
/**
|
|
13305
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13306
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13307
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13308
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13309
|
+
*/
|
|
13310
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13295
13311
|
});
|
|
13296
13312
|
var AlertStatusSchema = _enum([
|
|
13297
13313
|
"active",
|
|
@@ -41926,6 +41942,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
41926
41942
|
"server-updated",
|
|
41927
41943
|
"export-completed",
|
|
41928
41944
|
"backup-completed",
|
|
41945
|
+
"alert-critical",
|
|
41946
|
+
"alert-error",
|
|
41947
|
+
"alert-critical-resolved",
|
|
41929
41948
|
"camera-online",
|
|
41930
41949
|
"camera-offline",
|
|
41931
41950
|
"camera-disabled",
|
|
@@ -51106,7 +51125,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51106
51125
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51107
51126
|
kind: "mutation",
|
|
51108
51127
|
auth: "admin"
|
|
51109
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51128
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51129
|
+
clear: boolean(),
|
|
51130
|
+
repointLocationId: string().optional()
|
|
51131
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51110
51132
|
kind: "mutation",
|
|
51111
51133
|
auth: "admin"
|
|
51112
51134
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55406,6 +55428,11 @@ onStatusChanged: { data: object({
|
|
|
55406
55428
|
*
|
|
55407
55429
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55408
55430
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55431
|
+
*
|
|
55432
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55433
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55434
|
+
* the link is down, or the description does not carry it) and is never
|
|
55435
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55409
55436
|
*/
|
|
55410
55437
|
var DishwasherStateSchema = _enum([
|
|
55411
55438
|
"idle",
|
|
@@ -55415,43 +55442,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55415
55442
|
"error",
|
|
55416
55443
|
"unavailable"
|
|
55417
55444
|
]);
|
|
55445
|
+
/**
|
|
55446
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55447
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55448
|
+
*/
|
|
55449
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55450
|
+
"Inactive",
|
|
55451
|
+
"Ready",
|
|
55452
|
+
"DelayedStart",
|
|
55453
|
+
"Run",
|
|
55454
|
+
"Pause",
|
|
55455
|
+
"ActionRequired",
|
|
55456
|
+
"Finished",
|
|
55457
|
+
"Error",
|
|
55458
|
+
"Aborting"
|
|
55459
|
+
]);
|
|
55460
|
+
/**
|
|
55461
|
+
* Why fields may be `null`:
|
|
55462
|
+
* - `available` — the link is up and the description is loaded;
|
|
55463
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55464
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55465
|
+
* be loaded, so its values cannot be decoded.
|
|
55466
|
+
*/
|
|
55467
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55468
|
+
"available",
|
|
55469
|
+
"offline",
|
|
55470
|
+
"description-missing"
|
|
55471
|
+
]);
|
|
55418
55472
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55419
55473
|
"ok",
|
|
55420
55474
|
"low",
|
|
55421
55475
|
"empty"
|
|
55422
55476
|
]);
|
|
55423
55477
|
var DishwasherStatusSchema = object({
|
|
55478
|
+
availability: DishwasherAvailabilitySchema,
|
|
55479
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55424
55480
|
state: DishwasherStateSchema,
|
|
55425
|
-
/**
|
|
55481
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55482
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55483
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55426
55484
|
program: string().nullable(),
|
|
55427
|
-
/**
|
|
55485
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55486
|
+
selectedProgram: string().nullable(),
|
|
55487
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55428
55488
|
availablePrograms: array(string()),
|
|
55429
|
-
/**
|
|
55430
|
-
|
|
55489
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55490
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55491
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55492
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55431
55493
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55432
55494
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55433
|
-
/** True when the door is reported open. */
|
|
55434
|
-
doorOpen: boolean(),
|
|
55435
|
-
/** True when
|
|
55436
|
-
|
|
55437
|
-
/**
|
|
55438
|
-
|
|
55495
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55496
|
+
doorOpen: boolean().nullable(),
|
|
55497
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55498
|
+
doorLocked: boolean().nullable(),
|
|
55499
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55500
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55501
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55502
|
+
remoteControlActive: boolean().nullable(),
|
|
55503
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55504
|
+
localControlActive: boolean().nullable(),
|
|
55505
|
+
/** Main power / switched-on state; null when not known. */
|
|
55506
|
+
powerOn: boolean().nullable(),
|
|
55507
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55508
|
+
powerState: string().nullable(),
|
|
55439
55509
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55440
55510
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55441
|
-
|
|
55442
|
-
|
|
55511
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55512
|
+
halfLoad: boolean().nullable(),
|
|
55513
|
+
hygienePlus: boolean().nullable(),
|
|
55443
55514
|
/** Extra dry option when the appliance exposes it. */
|
|
55444
|
-
extraDry: boolean(),
|
|
55515
|
+
extraDry: boolean().nullable(),
|
|
55445
55516
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55446
|
-
intensiveZone: boolean(),
|
|
55517
|
+
intensiveZone: boolean().nullable(),
|
|
55447
55518
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55448
|
-
varioSpeedPlus: boolean(),
|
|
55449
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55450
|
-
childLock: boolean(),
|
|
55519
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55520
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55521
|
+
childLock: boolean().nullable(),
|
|
55522
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55523
|
+
activeEvents: array(string()),
|
|
55524
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55451
55525
|
errorCode: number().nullable(),
|
|
55526
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55452
55527
|
errorLabel: string().nullable(),
|
|
55528
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55453
55529
|
lastFetchedAt: number()
|
|
55454
55530
|
});
|
|
55531
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55532
|
+
/** A value a program option or setting can take. */
|
|
55533
|
+
var DishwasherValueSchema = union([
|
|
55534
|
+
boolean(),
|
|
55535
|
+
string(),
|
|
55536
|
+
number()
|
|
55537
|
+
]);
|
|
55538
|
+
var DishwasherAccessSchema = _enum([
|
|
55539
|
+
"none",
|
|
55540
|
+
"read",
|
|
55541
|
+
"readWrite",
|
|
55542
|
+
"writeOnly",
|
|
55543
|
+
"readStatic"
|
|
55544
|
+
]);
|
|
55545
|
+
/**
|
|
55546
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55547
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55548
|
+
*/
|
|
55549
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55550
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55551
|
+
key: string(),
|
|
55552
|
+
/** Last segment of the key, for display. */
|
|
55553
|
+
name: string(),
|
|
55554
|
+
type: _enum([
|
|
55555
|
+
"boolean",
|
|
55556
|
+
"number",
|
|
55557
|
+
"enum",
|
|
55558
|
+
"string"
|
|
55559
|
+
]),
|
|
55560
|
+
access: DishwasherAccessSchema,
|
|
55561
|
+
/** The appliance reports this entity as currently available. */
|
|
55562
|
+
available: boolean(),
|
|
55563
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55564
|
+
unit: string().nullable(),
|
|
55565
|
+
min: number().nullable(),
|
|
55566
|
+
max: number().nullable(),
|
|
55567
|
+
step: number().nullable(),
|
|
55568
|
+
/** Allowed members of an enum; null for other types. */
|
|
55569
|
+
enumValues: array(string()).nullable(),
|
|
55570
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55571
|
+
});
|
|
55572
|
+
var DishwasherProgramSchema = object({
|
|
55573
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55574
|
+
key: string(),
|
|
55575
|
+
name: string(),
|
|
55576
|
+
/** The appliance currently offers this program. */
|
|
55577
|
+
available: boolean(),
|
|
55578
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55579
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55580
|
+
});
|
|
55581
|
+
var DishwasherOptionsSchema = object({
|
|
55582
|
+
availability: DishwasherAvailabilitySchema,
|
|
55583
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55584
|
+
supportsStart: boolean(),
|
|
55585
|
+
supportsPause: boolean(),
|
|
55586
|
+
supportsResume: boolean(),
|
|
55587
|
+
supportsStop: boolean(),
|
|
55588
|
+
supportsPower: boolean(),
|
|
55589
|
+
/** Every program the description lists, with its options. */
|
|
55590
|
+
programs: array(DishwasherProgramSchema),
|
|
55591
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55592
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55593
|
+
});
|
|
55455
55594
|
var dishwasherCapability = {
|
|
55456
55595
|
name: "dishwasher",
|
|
55457
55596
|
scope: "device",
|
|
@@ -55459,86 +55598,102 @@ var dishwasherCapability = {
|
|
|
55459
55598
|
mode: "singleton",
|
|
55460
55599
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55461
55600
|
methods: {
|
|
55462
|
-
|
|
55601
|
+
/**
|
|
55602
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55603
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55604
|
+
*/
|
|
55605
|
+
start: method(object({
|
|
55606
|
+
deviceId: DeviceIdSchema,
|
|
55607
|
+
program: string().min(1).optional(),
|
|
55608
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55609
|
+
}), _void(), {
|
|
55463
55610
|
kind: "mutation",
|
|
55464
55611
|
auth: "protected"
|
|
55465
55612
|
}),
|
|
55466
|
-
pause: method(object({ deviceId:
|
|
55613
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55467
55614
|
kind: "mutation",
|
|
55468
55615
|
auth: "protected"
|
|
55469
55616
|
}),
|
|
55470
|
-
|
|
55617
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55618
|
+
kind: "mutation",
|
|
55619
|
+
auth: "protected"
|
|
55620
|
+
}),
|
|
55621
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55471
55622
|
kind: "mutation",
|
|
55472
55623
|
auth: "protected"
|
|
55473
55624
|
}),
|
|
55625
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55474
55626
|
setProgram: method(object({
|
|
55475
|
-
deviceId:
|
|
55627
|
+
deviceId: DeviceIdSchema,
|
|
55476
55628
|
program: string().min(1)
|
|
55477
55629
|
}), _void(), {
|
|
55478
55630
|
kind: "mutation",
|
|
55479
55631
|
auth: "protected"
|
|
55480
55632
|
}),
|
|
55481
55633
|
setPower: method(object({
|
|
55482
|
-
deviceId:
|
|
55634
|
+
deviceId: DeviceIdSchema,
|
|
55483
55635
|
on: boolean()
|
|
55484
55636
|
}), _void(), {
|
|
55485
55637
|
kind: "mutation",
|
|
55486
55638
|
auth: "protected"
|
|
55487
55639
|
}),
|
|
55488
55640
|
setHalfLoad: method(object({
|
|
55489
|
-
deviceId:
|
|
55641
|
+
deviceId: DeviceIdSchema,
|
|
55490
55642
|
on: boolean()
|
|
55491
55643
|
}), _void(), {
|
|
55492
55644
|
kind: "mutation",
|
|
55493
55645
|
auth: "protected"
|
|
55494
55646
|
}),
|
|
55495
55647
|
setHygienePlus: method(object({
|
|
55496
|
-
deviceId:
|
|
55648
|
+
deviceId: DeviceIdSchema,
|
|
55497
55649
|
on: boolean()
|
|
55498
55650
|
}), _void(), {
|
|
55499
55651
|
kind: "mutation",
|
|
55500
55652
|
auth: "protected"
|
|
55501
55653
|
}),
|
|
55502
55654
|
setExtraDry: method(object({
|
|
55503
|
-
deviceId:
|
|
55655
|
+
deviceId: DeviceIdSchema,
|
|
55504
55656
|
on: boolean()
|
|
55505
55657
|
}), _void(), {
|
|
55506
55658
|
kind: "mutation",
|
|
55507
55659
|
auth: "protected"
|
|
55508
55660
|
}),
|
|
55509
55661
|
setIntensiveZone: method(object({
|
|
55510
|
-
deviceId:
|
|
55662
|
+
deviceId: DeviceIdSchema,
|
|
55511
55663
|
on: boolean()
|
|
55512
55664
|
}), _void(), {
|
|
55513
55665
|
kind: "mutation",
|
|
55514
55666
|
auth: "protected"
|
|
55515
55667
|
}),
|
|
55516
55668
|
setVarioSpeedPlus: method(object({
|
|
55517
|
-
deviceId:
|
|
55669
|
+
deviceId: DeviceIdSchema,
|
|
55518
55670
|
on: boolean()
|
|
55519
55671
|
}), _void(), {
|
|
55520
55672
|
kind: "mutation",
|
|
55521
55673
|
auth: "protected"
|
|
55522
55674
|
}),
|
|
55523
55675
|
setChildLock: method(object({
|
|
55524
|
-
deviceId:
|
|
55676
|
+
deviceId: DeviceIdSchema,
|
|
55525
55677
|
on: boolean()
|
|
55526
55678
|
}), _void(), {
|
|
55527
55679
|
kind: "mutation",
|
|
55528
55680
|
auth: "protected"
|
|
55529
55681
|
}),
|
|
55682
|
+
/**
|
|
55683
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55684
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55685
|
+
* its declared range / members.
|
|
55686
|
+
*/
|
|
55530
55687
|
setOption: method(object({
|
|
55531
|
-
deviceId:
|
|
55688
|
+
deviceId: DeviceIdSchema,
|
|
55532
55689
|
key: string().min(1),
|
|
55533
|
-
value:
|
|
55534
|
-
boolean(),
|
|
55535
|
-
string(),
|
|
55536
|
-
number()
|
|
55537
|
-
])
|
|
55690
|
+
value: DishwasherValueSchema
|
|
55538
55691
|
}), _void(), {
|
|
55539
55692
|
kind: "mutation",
|
|
55540
55693
|
auth: "protected"
|
|
55541
|
-
})
|
|
55694
|
+
}),
|
|
55695
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55696
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55542
55697
|
},
|
|
55543
55698
|
status: {
|
|
55544
55699
|
schema: DishwasherStatusSchema,
|
|
@@ -69004,6 +69159,12 @@ Object.freeze({
|
|
|
69004
69159
|
addonId: null,
|
|
69005
69160
|
access: "view"
|
|
69006
69161
|
},
|
|
69162
|
+
"dishwasher.getOptions": {
|
|
69163
|
+
capName: "dishwasher",
|
|
69164
|
+
capScope: "device",
|
|
69165
|
+
addonId: null,
|
|
69166
|
+
access: "view"
|
|
69167
|
+
},
|
|
69007
69168
|
"dishwasher.getStatus": {
|
|
69008
69169
|
capName: "dishwasher",
|
|
69009
69170
|
capScope: "device",
|
|
@@ -69016,6 +69177,12 @@ Object.freeze({
|
|
|
69016
69177
|
addonId: null,
|
|
69017
69178
|
access: "create"
|
|
69018
69179
|
},
|
|
69180
|
+
"dishwasher.resume": {
|
|
69181
|
+
capName: "dishwasher",
|
|
69182
|
+
capScope: "device",
|
|
69183
|
+
addonId: null,
|
|
69184
|
+
access: "create"
|
|
69185
|
+
},
|
|
69019
69186
|
"dishwasher.setChildLock": {
|
|
69020
69187
|
capName: "dishwasher",
|
|
69021
69188
|
capScope: "device",
|
|
@@ -73516,6 +73683,12 @@ Object.freeze({
|
|
|
73516
73683
|
addonId: null,
|
|
73517
73684
|
access: "view"
|
|
73518
73685
|
},
|
|
73686
|
+
"storageMigration.moverClearance": {
|
|
73687
|
+
capName: "storage-migration",
|
|
73688
|
+
capScope: "system",
|
|
73689
|
+
addonId: null,
|
|
73690
|
+
access: "view"
|
|
73691
|
+
},
|
|
73519
73692
|
"storageMigration.movers": {
|
|
73520
73693
|
capName: "storage-migration",
|
|
73521
73694
|
capScope: "system",
|
|
@@ -75709,6 +75882,11 @@ Object.freeze({
|
|
|
75709
75882
|
form: "single",
|
|
75710
75883
|
optional: false
|
|
75711
75884
|
}],
|
|
75885
|
+
"dishwasher.getOptions": [{
|
|
75886
|
+
name: "deviceId",
|
|
75887
|
+
form: "single",
|
|
75888
|
+
optional: false
|
|
75889
|
+
}],
|
|
75712
75890
|
"dishwasher.getStatus": [{
|
|
75713
75891
|
name: "deviceId",
|
|
75714
75892
|
form: "single",
|
|
@@ -75719,6 +75897,11 @@ Object.freeze({
|
|
|
75719
75897
|
form: "single",
|
|
75720
75898
|
optional: false
|
|
75721
75899
|
}],
|
|
75900
|
+
"dishwasher.resume": [{
|
|
75901
|
+
name: "deviceId",
|
|
75902
|
+
form: "single",
|
|
75903
|
+
optional: false
|
|
75904
|
+
}],
|
|
75722
75905
|
"dishwasher.setChildLock": [{
|
|
75723
75906
|
name: "deviceId",
|
|
75724
75907
|
form: "single",
|
|
@@ -77805,6 +77988,9 @@ new Map(Object.entries({
|
|
|
77805
77988
|
"wrapper-update-available": "system",
|
|
77806
77989
|
"backup-completed": "system",
|
|
77807
77990
|
"export-completed": "system",
|
|
77991
|
+
"alert-critical": "system",
|
|
77992
|
+
"alert-error": "system",
|
|
77993
|
+
"alert-critical-resolved": "system",
|
|
77808
77994
|
"storage-location-low": "system",
|
|
77809
77995
|
"storage-location-critical": "system",
|
|
77810
77996
|
"storage-location-ok": "system",
|
|
@@ -77929,6 +78115,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
77929
78115
|
"storage-location-ok"
|
|
77930
78116
|
]
|
|
77931
78117
|
},
|
|
78118
|
+
{
|
|
78119
|
+
id: "alerts",
|
|
78120
|
+
family: "system",
|
|
78121
|
+
label: "Alerts",
|
|
78122
|
+
kinds: [
|
|
78123
|
+
"alert-critical",
|
|
78124
|
+
"alert-error",
|
|
78125
|
+
"alert-critical-resolved"
|
|
78126
|
+
]
|
|
78127
|
+
},
|
|
77932
78128
|
{
|
|
77933
78129
|
id: "alarm",
|
|
77934
78130
|
family: "alarm",
|
|
@@ -77973,6 +78169,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
77973
78169
|
return [[descriptor.kind, field]];
|
|
77974
78170
|
})));
|
|
77975
78171
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78172
|
+
object({
|
|
78173
|
+
phase: _enum(["raised", "resolved"]),
|
|
78174
|
+
episodeId: string().min(1),
|
|
78175
|
+
alertId: string().min(1),
|
|
78176
|
+
severity: AlertSeveritySchema,
|
|
78177
|
+
category: string(),
|
|
78178
|
+
title: string(),
|
|
78179
|
+
message: string(),
|
|
78180
|
+
sourceType: string().optional(),
|
|
78181
|
+
sourceId: string().optional(),
|
|
78182
|
+
nodeId: string().optional(),
|
|
78183
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78184
|
+
actionUrl: string().optional(),
|
|
78185
|
+
at: number()
|
|
78186
|
+
});
|
|
77976
78187
|
var RULE_BODY_ONLY = ["body"];
|
|
77977
78188
|
var RULE_TEXT = ["title", "body"];
|
|
77978
78189
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -77982,6 +78193,11 @@ var TANK = [
|
|
|
77982
78193
|
"device-tank-full",
|
|
77983
78194
|
"device-tank-normal"
|
|
77984
78195
|
];
|
|
78196
|
+
var ALERT_EPISODE = [
|
|
78197
|
+
"alert-critical",
|
|
78198
|
+
"alert-error",
|
|
78199
|
+
"alert-critical-resolved"
|
|
78200
|
+
];
|
|
77985
78201
|
var UPDATES = [
|
|
77986
78202
|
"addon-update-available",
|
|
77987
78203
|
"server-update-available",
|
|
@@ -78174,14 +78390,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78174
78390
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78175
78391
|
([...RULE_TEXT], [...TANK]),
|
|
78176
78392
|
[...RULE_TEXT],
|
|
78177
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78178
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78179
|
-
[...RULE_TEXT],
|
|
78393
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78394
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78180
78395
|
[...RULE_TEXT],
|
|
78181
78396
|
[...RULE_TEXT],
|
|
78182
78397
|
[...RULE_TEXT],
|
|
78183
78398
|
[...RULE_TEXT],
|
|
78184
78399
|
[...RULE_TEXT],
|
|
78400
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78185
78401
|
[...RULE_TEXT],
|
|
78186
78402
|
[...RULE_TEXT],
|
|
78187
78403
|
[...RULE_TEXT],
|
|
@@ -78199,7 +78415,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78199
78415
|
[...RULE_TEXT],
|
|
78200
78416
|
[...RULE_TEXT],
|
|
78201
78417
|
[...RULE_TEXT],
|
|
78202
|
-
[...RULE_TEXT],
|
|
78418
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78419
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78420
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78421
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78422
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78203
78423
|
[...RULE_TEXT],
|
|
78204
78424
|
[...RULE_TEXT],
|
|
78205
78425
|
[...RULE_TEXT],
|
package/dist/addon.mjs
CHANGED
|
@@ -8,7 +8,7 @@ import { createServer } from "node:http";
|
|
|
8
8
|
//#region \0rolldown/runtime.js
|
|
9
9
|
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
10
10
|
//#endregion
|
|
11
|
-
//#region ../types/dist/event-category-
|
|
11
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
12
12
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
13
13
|
EventCategory["SystemBoot"] = "system.boot";
|
|
14
14
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -87,9 +87,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
87
87
|
/**
|
|
88
88
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
89
89
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
90
|
-
* alert centre turns it into one
|
|
90
|
+
* alert centre turns it into one critical alert.
|
|
91
91
|
*/
|
|
92
92
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
93
|
+
/**
|
|
94
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
95
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
96
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
97
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
98
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
99
|
+
* event may be dropped (D8, D11).
|
|
100
|
+
*/
|
|
101
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
93
102
|
EventCategory["AddonError"] = "addon.error";
|
|
94
103
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
95
104
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5414,7 +5423,7 @@ var ZodIssueCode = {
|
|
|
5414
5423
|
var ZodFirstPartyTypeKind;
|
|
5415
5424
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5416
5425
|
//#endregion
|
|
5417
|
-
//#region ../types/dist/sleep-
|
|
5426
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5418
5427
|
/**
|
|
5419
5428
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5420
5429
|
* window to float samples (D455).
|
|
@@ -13268,7 +13277,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13268
13277
|
]);
|
|
13269
13278
|
var AlertActionSchema = object({
|
|
13270
13279
|
label: string(),
|
|
13271
|
-
href: string().optional()
|
|
13280
|
+
href: string().optional(),
|
|
13281
|
+
/**
|
|
13282
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13283
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13284
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13285
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13286
|
+
*/
|
|
13287
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13272
13288
|
});
|
|
13273
13289
|
var AlertStatusSchema = _enum([
|
|
13274
13290
|
"active",
|
|
@@ -41903,6 +41919,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
41903
41919
|
"server-updated",
|
|
41904
41920
|
"export-completed",
|
|
41905
41921
|
"backup-completed",
|
|
41922
|
+
"alert-critical",
|
|
41923
|
+
"alert-error",
|
|
41924
|
+
"alert-critical-resolved",
|
|
41906
41925
|
"camera-online",
|
|
41907
41926
|
"camera-offline",
|
|
41908
41927
|
"camera-disabled",
|
|
@@ -51083,7 +51102,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51083
51102
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51084
51103
|
kind: "mutation",
|
|
51085
51104
|
auth: "admin"
|
|
51086
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51105
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51106
|
+
clear: boolean(),
|
|
51107
|
+
repointLocationId: string().optional()
|
|
51108
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51087
51109
|
kind: "mutation",
|
|
51088
51110
|
auth: "admin"
|
|
51089
51111
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55383,6 +55405,11 @@ onStatusChanged: { data: object({
|
|
|
55383
55405
|
*
|
|
55384
55406
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55385
55407
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55408
|
+
*
|
|
55409
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55410
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55411
|
+
* the link is down, or the description does not carry it) and is never
|
|
55412
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55386
55413
|
*/
|
|
55387
55414
|
var DishwasherStateSchema = _enum([
|
|
55388
55415
|
"idle",
|
|
@@ -55392,43 +55419,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55392
55419
|
"error",
|
|
55393
55420
|
"unavailable"
|
|
55394
55421
|
]);
|
|
55422
|
+
/**
|
|
55423
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55424
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55425
|
+
*/
|
|
55426
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55427
|
+
"Inactive",
|
|
55428
|
+
"Ready",
|
|
55429
|
+
"DelayedStart",
|
|
55430
|
+
"Run",
|
|
55431
|
+
"Pause",
|
|
55432
|
+
"ActionRequired",
|
|
55433
|
+
"Finished",
|
|
55434
|
+
"Error",
|
|
55435
|
+
"Aborting"
|
|
55436
|
+
]);
|
|
55437
|
+
/**
|
|
55438
|
+
* Why fields may be `null`:
|
|
55439
|
+
* - `available` — the link is up and the description is loaded;
|
|
55440
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55441
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55442
|
+
* be loaded, so its values cannot be decoded.
|
|
55443
|
+
*/
|
|
55444
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55445
|
+
"available",
|
|
55446
|
+
"offline",
|
|
55447
|
+
"description-missing"
|
|
55448
|
+
]);
|
|
55395
55449
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55396
55450
|
"ok",
|
|
55397
55451
|
"low",
|
|
55398
55452
|
"empty"
|
|
55399
55453
|
]);
|
|
55400
55454
|
var DishwasherStatusSchema = object({
|
|
55455
|
+
availability: DishwasherAvailabilitySchema,
|
|
55456
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55401
55457
|
state: DishwasherStateSchema,
|
|
55402
|
-
/**
|
|
55458
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55459
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55460
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55403
55461
|
program: string().nullable(),
|
|
55404
|
-
/**
|
|
55462
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55463
|
+
selectedProgram: string().nullable(),
|
|
55464
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55405
55465
|
availablePrograms: array(string()),
|
|
55406
|
-
/**
|
|
55407
|
-
|
|
55466
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55467
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55468
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55469
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55408
55470
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55409
55471
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55410
|
-
/** True when the door is reported open. */
|
|
55411
|
-
doorOpen: boolean(),
|
|
55412
|
-
/** True when
|
|
55413
|
-
|
|
55414
|
-
/**
|
|
55415
|
-
|
|
55472
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55473
|
+
doorOpen: boolean().nullable(),
|
|
55474
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55475
|
+
doorLocked: boolean().nullable(),
|
|
55476
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55477
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55478
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55479
|
+
remoteControlActive: boolean().nullable(),
|
|
55480
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55481
|
+
localControlActive: boolean().nullable(),
|
|
55482
|
+
/** Main power / switched-on state; null when not known. */
|
|
55483
|
+
powerOn: boolean().nullable(),
|
|
55484
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55485
|
+
powerState: string().nullable(),
|
|
55416
55486
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55417
55487
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55418
|
-
|
|
55419
|
-
|
|
55488
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55489
|
+
halfLoad: boolean().nullable(),
|
|
55490
|
+
hygienePlus: boolean().nullable(),
|
|
55420
55491
|
/** Extra dry option when the appliance exposes it. */
|
|
55421
|
-
extraDry: boolean(),
|
|
55492
|
+
extraDry: boolean().nullable(),
|
|
55422
55493
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55423
|
-
intensiveZone: boolean(),
|
|
55494
|
+
intensiveZone: boolean().nullable(),
|
|
55424
55495
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55425
|
-
varioSpeedPlus: boolean(),
|
|
55426
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55427
|
-
childLock: boolean(),
|
|
55496
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55497
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55498
|
+
childLock: boolean().nullable(),
|
|
55499
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55500
|
+
activeEvents: array(string()),
|
|
55501
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55428
55502
|
errorCode: number().nullable(),
|
|
55503
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55429
55504
|
errorLabel: string().nullable(),
|
|
55505
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55430
55506
|
lastFetchedAt: number()
|
|
55431
55507
|
});
|
|
55508
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55509
|
+
/** A value a program option or setting can take. */
|
|
55510
|
+
var DishwasherValueSchema = union([
|
|
55511
|
+
boolean(),
|
|
55512
|
+
string(),
|
|
55513
|
+
number()
|
|
55514
|
+
]);
|
|
55515
|
+
var DishwasherAccessSchema = _enum([
|
|
55516
|
+
"none",
|
|
55517
|
+
"read",
|
|
55518
|
+
"readWrite",
|
|
55519
|
+
"writeOnly",
|
|
55520
|
+
"readStatic"
|
|
55521
|
+
]);
|
|
55522
|
+
/**
|
|
55523
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55524
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55525
|
+
*/
|
|
55526
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55527
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55528
|
+
key: string(),
|
|
55529
|
+
/** Last segment of the key, for display. */
|
|
55530
|
+
name: string(),
|
|
55531
|
+
type: _enum([
|
|
55532
|
+
"boolean",
|
|
55533
|
+
"number",
|
|
55534
|
+
"enum",
|
|
55535
|
+
"string"
|
|
55536
|
+
]),
|
|
55537
|
+
access: DishwasherAccessSchema,
|
|
55538
|
+
/** The appliance reports this entity as currently available. */
|
|
55539
|
+
available: boolean(),
|
|
55540
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55541
|
+
unit: string().nullable(),
|
|
55542
|
+
min: number().nullable(),
|
|
55543
|
+
max: number().nullable(),
|
|
55544
|
+
step: number().nullable(),
|
|
55545
|
+
/** Allowed members of an enum; null for other types. */
|
|
55546
|
+
enumValues: array(string()).nullable(),
|
|
55547
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55548
|
+
});
|
|
55549
|
+
var DishwasherProgramSchema = object({
|
|
55550
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55551
|
+
key: string(),
|
|
55552
|
+
name: string(),
|
|
55553
|
+
/** The appliance currently offers this program. */
|
|
55554
|
+
available: boolean(),
|
|
55555
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55556
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55557
|
+
});
|
|
55558
|
+
var DishwasherOptionsSchema = object({
|
|
55559
|
+
availability: DishwasherAvailabilitySchema,
|
|
55560
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55561
|
+
supportsStart: boolean(),
|
|
55562
|
+
supportsPause: boolean(),
|
|
55563
|
+
supportsResume: boolean(),
|
|
55564
|
+
supportsStop: boolean(),
|
|
55565
|
+
supportsPower: boolean(),
|
|
55566
|
+
/** Every program the description lists, with its options. */
|
|
55567
|
+
programs: array(DishwasherProgramSchema),
|
|
55568
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55569
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55570
|
+
});
|
|
55432
55571
|
var dishwasherCapability = {
|
|
55433
55572
|
name: "dishwasher",
|
|
55434
55573
|
scope: "device",
|
|
@@ -55436,86 +55575,102 @@ var dishwasherCapability = {
|
|
|
55436
55575
|
mode: "singleton",
|
|
55437
55576
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55438
55577
|
methods: {
|
|
55439
|
-
|
|
55578
|
+
/**
|
|
55579
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55580
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55581
|
+
*/
|
|
55582
|
+
start: method(object({
|
|
55583
|
+
deviceId: DeviceIdSchema,
|
|
55584
|
+
program: string().min(1).optional(),
|
|
55585
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55586
|
+
}), _void(), {
|
|
55440
55587
|
kind: "mutation",
|
|
55441
55588
|
auth: "protected"
|
|
55442
55589
|
}),
|
|
55443
|
-
pause: method(object({ deviceId:
|
|
55590
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55444
55591
|
kind: "mutation",
|
|
55445
55592
|
auth: "protected"
|
|
55446
55593
|
}),
|
|
55447
|
-
|
|
55594
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55595
|
+
kind: "mutation",
|
|
55596
|
+
auth: "protected"
|
|
55597
|
+
}),
|
|
55598
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55448
55599
|
kind: "mutation",
|
|
55449
55600
|
auth: "protected"
|
|
55450
55601
|
}),
|
|
55602
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55451
55603
|
setProgram: method(object({
|
|
55452
|
-
deviceId:
|
|
55604
|
+
deviceId: DeviceIdSchema,
|
|
55453
55605
|
program: string().min(1)
|
|
55454
55606
|
}), _void(), {
|
|
55455
55607
|
kind: "mutation",
|
|
55456
55608
|
auth: "protected"
|
|
55457
55609
|
}),
|
|
55458
55610
|
setPower: method(object({
|
|
55459
|
-
deviceId:
|
|
55611
|
+
deviceId: DeviceIdSchema,
|
|
55460
55612
|
on: boolean()
|
|
55461
55613
|
}), _void(), {
|
|
55462
55614
|
kind: "mutation",
|
|
55463
55615
|
auth: "protected"
|
|
55464
55616
|
}),
|
|
55465
55617
|
setHalfLoad: method(object({
|
|
55466
|
-
deviceId:
|
|
55618
|
+
deviceId: DeviceIdSchema,
|
|
55467
55619
|
on: boolean()
|
|
55468
55620
|
}), _void(), {
|
|
55469
55621
|
kind: "mutation",
|
|
55470
55622
|
auth: "protected"
|
|
55471
55623
|
}),
|
|
55472
55624
|
setHygienePlus: method(object({
|
|
55473
|
-
deviceId:
|
|
55625
|
+
deviceId: DeviceIdSchema,
|
|
55474
55626
|
on: boolean()
|
|
55475
55627
|
}), _void(), {
|
|
55476
55628
|
kind: "mutation",
|
|
55477
55629
|
auth: "protected"
|
|
55478
55630
|
}),
|
|
55479
55631
|
setExtraDry: method(object({
|
|
55480
|
-
deviceId:
|
|
55632
|
+
deviceId: DeviceIdSchema,
|
|
55481
55633
|
on: boolean()
|
|
55482
55634
|
}), _void(), {
|
|
55483
55635
|
kind: "mutation",
|
|
55484
55636
|
auth: "protected"
|
|
55485
55637
|
}),
|
|
55486
55638
|
setIntensiveZone: method(object({
|
|
55487
|
-
deviceId:
|
|
55639
|
+
deviceId: DeviceIdSchema,
|
|
55488
55640
|
on: boolean()
|
|
55489
55641
|
}), _void(), {
|
|
55490
55642
|
kind: "mutation",
|
|
55491
55643
|
auth: "protected"
|
|
55492
55644
|
}),
|
|
55493
55645
|
setVarioSpeedPlus: method(object({
|
|
55494
|
-
deviceId:
|
|
55646
|
+
deviceId: DeviceIdSchema,
|
|
55495
55647
|
on: boolean()
|
|
55496
55648
|
}), _void(), {
|
|
55497
55649
|
kind: "mutation",
|
|
55498
55650
|
auth: "protected"
|
|
55499
55651
|
}),
|
|
55500
55652
|
setChildLock: method(object({
|
|
55501
|
-
deviceId:
|
|
55653
|
+
deviceId: DeviceIdSchema,
|
|
55502
55654
|
on: boolean()
|
|
55503
55655
|
}), _void(), {
|
|
55504
55656
|
kind: "mutation",
|
|
55505
55657
|
auth: "protected"
|
|
55506
55658
|
}),
|
|
55659
|
+
/**
|
|
55660
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55661
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55662
|
+
* its declared range / members.
|
|
55663
|
+
*/
|
|
55507
55664
|
setOption: method(object({
|
|
55508
|
-
deviceId:
|
|
55665
|
+
deviceId: DeviceIdSchema,
|
|
55509
55666
|
key: string().min(1),
|
|
55510
|
-
value:
|
|
55511
|
-
boolean(),
|
|
55512
|
-
string(),
|
|
55513
|
-
number()
|
|
55514
|
-
])
|
|
55667
|
+
value: DishwasherValueSchema
|
|
55515
55668
|
}), _void(), {
|
|
55516
55669
|
kind: "mutation",
|
|
55517
55670
|
auth: "protected"
|
|
55518
|
-
})
|
|
55671
|
+
}),
|
|
55672
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55673
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55519
55674
|
},
|
|
55520
55675
|
status: {
|
|
55521
55676
|
schema: DishwasherStatusSchema,
|
|
@@ -68981,6 +69136,12 @@ Object.freeze({
|
|
|
68981
69136
|
addonId: null,
|
|
68982
69137
|
access: "view"
|
|
68983
69138
|
},
|
|
69139
|
+
"dishwasher.getOptions": {
|
|
69140
|
+
capName: "dishwasher",
|
|
69141
|
+
capScope: "device",
|
|
69142
|
+
addonId: null,
|
|
69143
|
+
access: "view"
|
|
69144
|
+
},
|
|
68984
69145
|
"dishwasher.getStatus": {
|
|
68985
69146
|
capName: "dishwasher",
|
|
68986
69147
|
capScope: "device",
|
|
@@ -68993,6 +69154,12 @@ Object.freeze({
|
|
|
68993
69154
|
addonId: null,
|
|
68994
69155
|
access: "create"
|
|
68995
69156
|
},
|
|
69157
|
+
"dishwasher.resume": {
|
|
69158
|
+
capName: "dishwasher",
|
|
69159
|
+
capScope: "device",
|
|
69160
|
+
addonId: null,
|
|
69161
|
+
access: "create"
|
|
69162
|
+
},
|
|
68996
69163
|
"dishwasher.setChildLock": {
|
|
68997
69164
|
capName: "dishwasher",
|
|
68998
69165
|
capScope: "device",
|
|
@@ -73493,6 +73660,12 @@ Object.freeze({
|
|
|
73493
73660
|
addonId: null,
|
|
73494
73661
|
access: "view"
|
|
73495
73662
|
},
|
|
73663
|
+
"storageMigration.moverClearance": {
|
|
73664
|
+
capName: "storage-migration",
|
|
73665
|
+
capScope: "system",
|
|
73666
|
+
addonId: null,
|
|
73667
|
+
access: "view"
|
|
73668
|
+
},
|
|
73496
73669
|
"storageMigration.movers": {
|
|
73497
73670
|
capName: "storage-migration",
|
|
73498
73671
|
capScope: "system",
|
|
@@ -75686,6 +75859,11 @@ Object.freeze({
|
|
|
75686
75859
|
form: "single",
|
|
75687
75860
|
optional: false
|
|
75688
75861
|
}],
|
|
75862
|
+
"dishwasher.getOptions": [{
|
|
75863
|
+
name: "deviceId",
|
|
75864
|
+
form: "single",
|
|
75865
|
+
optional: false
|
|
75866
|
+
}],
|
|
75689
75867
|
"dishwasher.getStatus": [{
|
|
75690
75868
|
name: "deviceId",
|
|
75691
75869
|
form: "single",
|
|
@@ -75696,6 +75874,11 @@ Object.freeze({
|
|
|
75696
75874
|
form: "single",
|
|
75697
75875
|
optional: false
|
|
75698
75876
|
}],
|
|
75877
|
+
"dishwasher.resume": [{
|
|
75878
|
+
name: "deviceId",
|
|
75879
|
+
form: "single",
|
|
75880
|
+
optional: false
|
|
75881
|
+
}],
|
|
75699
75882
|
"dishwasher.setChildLock": [{
|
|
75700
75883
|
name: "deviceId",
|
|
75701
75884
|
form: "single",
|
|
@@ -77782,6 +77965,9 @@ new Map(Object.entries({
|
|
|
77782
77965
|
"wrapper-update-available": "system",
|
|
77783
77966
|
"backup-completed": "system",
|
|
77784
77967
|
"export-completed": "system",
|
|
77968
|
+
"alert-critical": "system",
|
|
77969
|
+
"alert-error": "system",
|
|
77970
|
+
"alert-critical-resolved": "system",
|
|
77785
77971
|
"storage-location-low": "system",
|
|
77786
77972
|
"storage-location-critical": "system",
|
|
77787
77973
|
"storage-location-ok": "system",
|
|
@@ -77906,6 +78092,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
77906
78092
|
"storage-location-ok"
|
|
77907
78093
|
]
|
|
77908
78094
|
},
|
|
78095
|
+
{
|
|
78096
|
+
id: "alerts",
|
|
78097
|
+
family: "system",
|
|
78098
|
+
label: "Alerts",
|
|
78099
|
+
kinds: [
|
|
78100
|
+
"alert-critical",
|
|
78101
|
+
"alert-error",
|
|
78102
|
+
"alert-critical-resolved"
|
|
78103
|
+
]
|
|
78104
|
+
},
|
|
77909
78105
|
{
|
|
77910
78106
|
id: "alarm",
|
|
77911
78107
|
family: "alarm",
|
|
@@ -77950,6 +78146,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
77950
78146
|
return [[descriptor.kind, field]];
|
|
77951
78147
|
})));
|
|
77952
78148
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78149
|
+
object({
|
|
78150
|
+
phase: _enum(["raised", "resolved"]),
|
|
78151
|
+
episodeId: string().min(1),
|
|
78152
|
+
alertId: string().min(1),
|
|
78153
|
+
severity: AlertSeveritySchema,
|
|
78154
|
+
category: string(),
|
|
78155
|
+
title: string(),
|
|
78156
|
+
message: string(),
|
|
78157
|
+
sourceType: string().optional(),
|
|
78158
|
+
sourceId: string().optional(),
|
|
78159
|
+
nodeId: string().optional(),
|
|
78160
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78161
|
+
actionUrl: string().optional(),
|
|
78162
|
+
at: number()
|
|
78163
|
+
});
|
|
77953
78164
|
var RULE_BODY_ONLY = ["body"];
|
|
77954
78165
|
var RULE_TEXT = ["title", "body"];
|
|
77955
78166
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -77959,6 +78170,11 @@ var TANK = [
|
|
|
77959
78170
|
"device-tank-full",
|
|
77960
78171
|
"device-tank-normal"
|
|
77961
78172
|
];
|
|
78173
|
+
var ALERT_EPISODE = [
|
|
78174
|
+
"alert-critical",
|
|
78175
|
+
"alert-error",
|
|
78176
|
+
"alert-critical-resolved"
|
|
78177
|
+
];
|
|
77962
78178
|
var UPDATES = [
|
|
77963
78179
|
"addon-update-available",
|
|
77964
78180
|
"server-update-available",
|
|
@@ -78151,14 +78367,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78151
78367
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78152
78368
|
([...RULE_TEXT], [...TANK]),
|
|
78153
78369
|
[...RULE_TEXT],
|
|
78154
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78155
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78156
|
-
[...RULE_TEXT],
|
|
78370
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78371
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78157
78372
|
[...RULE_TEXT],
|
|
78158
78373
|
[...RULE_TEXT],
|
|
78159
78374
|
[...RULE_TEXT],
|
|
78160
78375
|
[...RULE_TEXT],
|
|
78161
78376
|
[...RULE_TEXT],
|
|
78377
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78162
78378
|
[...RULE_TEXT],
|
|
78163
78379
|
[...RULE_TEXT],
|
|
78164
78380
|
[...RULE_TEXT],
|
|
@@ -78176,7 +78392,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78176
78392
|
[...RULE_TEXT],
|
|
78177
78393
|
[...RULE_TEXT],
|
|
78178
78394
|
[...RULE_TEXT],
|
|
78179
|
-
[...RULE_TEXT],
|
|
78395
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78396
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78397
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78398
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78399
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78180
78400
|
[...RULE_TEXT],
|
|
78181
78401
|
[...RULE_TEXT],
|
|
78182
78402
|
[...RULE_TEXT],
|