@camstack/addon-terminal 0.1.133 → 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 +587 -15
- package/dist/addon.mjs +587 -15
- package/package.json +1 -1
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).
|
|
@@ -8492,7 +8501,7 @@ object({
|
|
|
8492
8501
|
params: record(string(), union([string(), number()])).optional()
|
|
8493
8502
|
});
|
|
8494
8503
|
//#endregion
|
|
8495
|
-
//#region ../types/dist/err-msg
|
|
8504
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8496
8505
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8497
8506
|
DeviceType["Camera"] = "camera";
|
|
8498
8507
|
DeviceType["Hub"] = "hub";
|
|
@@ -8584,6 +8593,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8584
8593
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8585
8594
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8586
8595
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8596
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8597
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8598
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8599
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8587
8600
|
return DeviceType;
|
|
8588
8601
|
}({});
|
|
8589
8602
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -8841,7 +8854,7 @@ function errMsg(err) {
|
|
|
8841
8854
|
return String(err);
|
|
8842
8855
|
}
|
|
8843
8856
|
//#endregion
|
|
8844
|
-
//#region ../types/dist/composition-
|
|
8857
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
8845
8858
|
/**
|
|
8846
8859
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8847
8860
|
*
|
|
@@ -13259,8 +13272,20 @@ var AlertSeveritySchema = _enum([
|
|
|
13259
13272
|
"info",
|
|
13260
13273
|
"success",
|
|
13261
13274
|
"warning",
|
|
13262
|
-
"error"
|
|
13275
|
+
"error",
|
|
13276
|
+
"critical"
|
|
13263
13277
|
]);
|
|
13278
|
+
var AlertActionSchema = object({
|
|
13279
|
+
label: string(),
|
|
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()
|
|
13288
|
+
});
|
|
13264
13289
|
var AlertStatusSchema = _enum([
|
|
13265
13290
|
"active",
|
|
13266
13291
|
"in-progress",
|
|
@@ -13278,6 +13303,7 @@ var AlertSchema = object({
|
|
|
13278
13303
|
severity: AlertSeveritySchema,
|
|
13279
13304
|
title: string(),
|
|
13280
13305
|
message: string(),
|
|
13306
|
+
action: AlertActionSchema.optional(),
|
|
13281
13307
|
status: AlertStatusSchema,
|
|
13282
13308
|
progress: number().optional(),
|
|
13283
13309
|
read: boolean(),
|
|
@@ -17639,7 +17665,11 @@ var deviceDiscoveryCapability = {
|
|
|
17639
17665
|
};
|
|
17640
17666
|
/**
|
|
17641
17667
|
* `device-adoption` — generic discovery + adoption surface,
|
|
17642
|
-
* system-scoped
|
|
17668
|
+
* system-scoped collection (one provider per integration addon), routed
|
|
17669
|
+
* by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
|
|
17670
|
+
* pin model as `connection-test`. The admin UI keeps using
|
|
17671
|
+
* `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
|
|
17672
|
+
* successor to `ha-discovery`:
|
|
17643
17673
|
* keyed by `integrationId` (the addon resolves integrationId → broker
|
|
17644
17674
|
* internally) rather than a connection-specific `brokerId`, and it
|
|
17645
17675
|
* REUSES the shared `DiscoveredChildDevice` candidate type from
|
|
@@ -41889,6 +41919,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
41889
41919
|
"server-updated",
|
|
41890
41920
|
"export-completed",
|
|
41891
41921
|
"backup-completed",
|
|
41922
|
+
"alert-critical",
|
|
41923
|
+
"alert-error",
|
|
41924
|
+
"alert-critical-resolved",
|
|
41892
41925
|
"camera-online",
|
|
41893
41926
|
"camera-offline",
|
|
41894
41927
|
"camera-disabled",
|
|
@@ -51069,7 +51102,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51069
51102
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51070
51103
|
kind: "mutation",
|
|
51071
51104
|
auth: "admin"
|
|
51072
|
-
}), 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() }), {
|
|
51073
51109
|
kind: "mutation",
|
|
51074
51110
|
auth: "admin"
|
|
51075
51111
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -53886,7 +53922,8 @@ var batteryCapability = {
|
|
|
53886
53922
|
DeviceType.Button,
|
|
53887
53923
|
DeviceType.Switch,
|
|
53888
53924
|
DeviceType.PetFeeder,
|
|
53889
|
-
DeviceType.Container
|
|
53925
|
+
DeviceType.Container,
|
|
53926
|
+
DeviceType.Thermostat
|
|
53890
53927
|
],
|
|
53891
53928
|
methods: {
|
|
53892
53929
|
/**
|
|
@@ -55359,6 +55396,294 @@ onStatusChanged: { data: object({
|
|
|
55359
55396
|
* whether persisting is worth a SQLite commit. */
|
|
55360
55397
|
volatileStateFields: ["lastChangedAt"]
|
|
55361
55398
|
};
|
|
55399
|
+
/**
|
|
55400
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
55401
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
55402
|
+
*
|
|
55403
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
55404
|
+
* by any integration that exposes the same program / option surface.
|
|
55405
|
+
*
|
|
55406
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
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.
|
|
55413
|
+
*/
|
|
55414
|
+
var DishwasherStateSchema = _enum([
|
|
55415
|
+
"idle",
|
|
55416
|
+
"running",
|
|
55417
|
+
"paused",
|
|
55418
|
+
"finished",
|
|
55419
|
+
"error",
|
|
55420
|
+
"unavailable"
|
|
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
|
+
]);
|
|
55449
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
55450
|
+
"ok",
|
|
55451
|
+
"low",
|
|
55452
|
+
"empty"
|
|
55453
|
+
]);
|
|
55454
|
+
var DishwasherStatusSchema = object({
|
|
55455
|
+
availability: DishwasherAvailabilitySchema,
|
|
55456
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55457
|
+
state: DishwasherStateSchema,
|
|
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. */
|
|
55461
|
+
program: string().nullable(),
|
|
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. */
|
|
55465
|
+
availablePrograms: array(string()),
|
|
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(),
|
|
55470
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
55471
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
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(),
|
|
55486
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55487
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55488
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55489
|
+
halfLoad: boolean().nullable(),
|
|
55490
|
+
hygienePlus: boolean().nullable(),
|
|
55491
|
+
/** Extra dry option when the appliance exposes it. */
|
|
55492
|
+
extraDry: boolean().nullable(),
|
|
55493
|
+
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55494
|
+
intensiveZone: boolean().nullable(),
|
|
55495
|
+
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
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. */
|
|
55502
|
+
errorCode: number().nullable(),
|
|
55503
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55504
|
+
errorLabel: string().nullable(),
|
|
55505
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55506
|
+
lastFetchedAt: number()
|
|
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
|
+
});
|
|
55571
|
+
var dishwasherCapability = {
|
|
55572
|
+
name: "dishwasher",
|
|
55573
|
+
scope: "device",
|
|
55574
|
+
deviceNative: true,
|
|
55575
|
+
mode: "singleton",
|
|
55576
|
+
deviceTypes: [DeviceType.Dishwasher],
|
|
55577
|
+
methods: {
|
|
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(), {
|
|
55587
|
+
kind: "mutation",
|
|
55588
|
+
auth: "protected"
|
|
55589
|
+
}),
|
|
55590
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55591
|
+
kind: "mutation",
|
|
55592
|
+
auth: "protected"
|
|
55593
|
+
}),
|
|
55594
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55595
|
+
kind: "mutation",
|
|
55596
|
+
auth: "protected"
|
|
55597
|
+
}),
|
|
55598
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55599
|
+
kind: "mutation",
|
|
55600
|
+
auth: "protected"
|
|
55601
|
+
}),
|
|
55602
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55603
|
+
setProgram: method(object({
|
|
55604
|
+
deviceId: DeviceIdSchema,
|
|
55605
|
+
program: string().min(1)
|
|
55606
|
+
}), _void(), {
|
|
55607
|
+
kind: "mutation",
|
|
55608
|
+
auth: "protected"
|
|
55609
|
+
}),
|
|
55610
|
+
setPower: method(object({
|
|
55611
|
+
deviceId: DeviceIdSchema,
|
|
55612
|
+
on: boolean()
|
|
55613
|
+
}), _void(), {
|
|
55614
|
+
kind: "mutation",
|
|
55615
|
+
auth: "protected"
|
|
55616
|
+
}),
|
|
55617
|
+
setHalfLoad: method(object({
|
|
55618
|
+
deviceId: DeviceIdSchema,
|
|
55619
|
+
on: boolean()
|
|
55620
|
+
}), _void(), {
|
|
55621
|
+
kind: "mutation",
|
|
55622
|
+
auth: "protected"
|
|
55623
|
+
}),
|
|
55624
|
+
setHygienePlus: method(object({
|
|
55625
|
+
deviceId: DeviceIdSchema,
|
|
55626
|
+
on: boolean()
|
|
55627
|
+
}), _void(), {
|
|
55628
|
+
kind: "mutation",
|
|
55629
|
+
auth: "protected"
|
|
55630
|
+
}),
|
|
55631
|
+
setExtraDry: method(object({
|
|
55632
|
+
deviceId: DeviceIdSchema,
|
|
55633
|
+
on: boolean()
|
|
55634
|
+
}), _void(), {
|
|
55635
|
+
kind: "mutation",
|
|
55636
|
+
auth: "protected"
|
|
55637
|
+
}),
|
|
55638
|
+
setIntensiveZone: method(object({
|
|
55639
|
+
deviceId: DeviceIdSchema,
|
|
55640
|
+
on: boolean()
|
|
55641
|
+
}), _void(), {
|
|
55642
|
+
kind: "mutation",
|
|
55643
|
+
auth: "protected"
|
|
55644
|
+
}),
|
|
55645
|
+
setVarioSpeedPlus: method(object({
|
|
55646
|
+
deviceId: DeviceIdSchema,
|
|
55647
|
+
on: boolean()
|
|
55648
|
+
}), _void(), {
|
|
55649
|
+
kind: "mutation",
|
|
55650
|
+
auth: "protected"
|
|
55651
|
+
}),
|
|
55652
|
+
setChildLock: method(object({
|
|
55653
|
+
deviceId: DeviceIdSchema,
|
|
55654
|
+
on: boolean()
|
|
55655
|
+
}), _void(), {
|
|
55656
|
+
kind: "mutation",
|
|
55657
|
+
auth: "protected"
|
|
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
|
+
*/
|
|
55664
|
+
setOption: method(object({
|
|
55665
|
+
deviceId: DeviceIdSchema,
|
|
55666
|
+
key: string().min(1),
|
|
55667
|
+
value: DishwasherValueSchema
|
|
55668
|
+
}), _void(), {
|
|
55669
|
+
kind: "mutation",
|
|
55670
|
+
auth: "protected"
|
|
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" })
|
|
55674
|
+
},
|
|
55675
|
+
status: {
|
|
55676
|
+
schema: DishwasherStatusSchema,
|
|
55677
|
+
kind: "poll"
|
|
55678
|
+
},
|
|
55679
|
+
runtimeState: DishwasherStatusSchema,
|
|
55680
|
+
durability: "session",
|
|
55681
|
+
history: { fields: { progressPercent: {
|
|
55682
|
+
kind: "gauge",
|
|
55683
|
+
unit: "%",
|
|
55684
|
+
deadband: 2
|
|
55685
|
+
} } }
|
|
55686
|
+
};
|
|
55362
55687
|
var DoorbellStatusSchema = object({
|
|
55363
55688
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55364
55689
|
lastPressedAt: number().nullable(),
|
|
@@ -56161,6 +56486,32 @@ var gasCapability = {
|
|
|
56161
56486
|
* whether persisting is worth a SQLite commit. */
|
|
56162
56487
|
volatileStateFields: ["lastChangedAt"]
|
|
56163
56488
|
};
|
|
56489
|
+
var HeatingValveStatusSchema = object({
|
|
56490
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
56491
|
+
position: number().min(0).max(100).nullable(),
|
|
56492
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
56493
|
+
lastFetchedAt: number()
|
|
56494
|
+
});
|
|
56495
|
+
var heatingValveCapability = {
|
|
56496
|
+
name: "heating-valve",
|
|
56497
|
+
scope: "device",
|
|
56498
|
+
deviceNative: true,
|
|
56499
|
+
mode: "singleton",
|
|
56500
|
+
deviceTypes: [DeviceType.Thermostat],
|
|
56501
|
+
methods: {},
|
|
56502
|
+
status: {
|
|
56503
|
+
schema: HeatingValveStatusSchema,
|
|
56504
|
+
kind: "push"
|
|
56505
|
+
},
|
|
56506
|
+
runtimeState: HeatingValveStatusSchema,
|
|
56507
|
+
durability: "session",
|
|
56508
|
+
history: { fields: { position: {
|
|
56509
|
+
kind: "gauge",
|
|
56510
|
+
unit: "%",
|
|
56511
|
+
deadband: 1
|
|
56512
|
+
} } },
|
|
56513
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
56514
|
+
};
|
|
56164
56515
|
/**
|
|
56165
56516
|
* Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
|
|
56166
56517
|
* an on/off actuator with an optional target-humidity setpoint and an
|
|
@@ -65581,6 +65932,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65581
65932
|
dayNight: dayNightCapability,
|
|
65582
65933
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
65583
65934
|
deviceStatus: deviceStatusCapability,
|
|
65935
|
+
dishwasher: dishwasherCapability,
|
|
65584
65936
|
doorbell: doorbellCapability,
|
|
65585
65937
|
enumSensor: enumSensorCapability,
|
|
65586
65938
|
eventEmitter: eventEmitterCapability,
|
|
@@ -65588,6 +65940,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65588
65940
|
featureProbe: featureProbeCapability,
|
|
65589
65941
|
flood: floodCapability,
|
|
65590
65942
|
gas: gasCapability,
|
|
65943
|
+
heatingValve: heatingValveCapability,
|
|
65591
65944
|
humidifier: humidifierCapability,
|
|
65592
65945
|
humiditySensor: humiditySensorCapability,
|
|
65593
65946
|
image: imageCapability,
|
|
@@ -66362,7 +66715,7 @@ var DeclaredDevices = class {
|
|
|
66362
66715
|
return removed;
|
|
66363
66716
|
}
|
|
66364
66717
|
};
|
|
66365
|
-
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
66718
|
+
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher;
|
|
66366
66719
|
new Set(Object.values(DeviceType));
|
|
66367
66720
|
Object.freeze({
|
|
66368
66721
|
"accessories.getStatus": {
|
|
@@ -68783,6 +69136,96 @@ Object.freeze({
|
|
|
68783
69136
|
addonId: null,
|
|
68784
69137
|
access: "view"
|
|
68785
69138
|
},
|
|
69139
|
+
"dishwasher.getOptions": {
|
|
69140
|
+
capName: "dishwasher",
|
|
69141
|
+
capScope: "device",
|
|
69142
|
+
addonId: null,
|
|
69143
|
+
access: "view"
|
|
69144
|
+
},
|
|
69145
|
+
"dishwasher.getStatus": {
|
|
69146
|
+
capName: "dishwasher",
|
|
69147
|
+
capScope: "device",
|
|
69148
|
+
addonId: null,
|
|
69149
|
+
access: "view"
|
|
69150
|
+
},
|
|
69151
|
+
"dishwasher.pause": {
|
|
69152
|
+
capName: "dishwasher",
|
|
69153
|
+
capScope: "device",
|
|
69154
|
+
addonId: null,
|
|
69155
|
+
access: "create"
|
|
69156
|
+
},
|
|
69157
|
+
"dishwasher.resume": {
|
|
69158
|
+
capName: "dishwasher",
|
|
69159
|
+
capScope: "device",
|
|
69160
|
+
addonId: null,
|
|
69161
|
+
access: "create"
|
|
69162
|
+
},
|
|
69163
|
+
"dishwasher.setChildLock": {
|
|
69164
|
+
capName: "dishwasher",
|
|
69165
|
+
capScope: "device",
|
|
69166
|
+
addonId: null,
|
|
69167
|
+
access: "create"
|
|
69168
|
+
},
|
|
69169
|
+
"dishwasher.setExtraDry": {
|
|
69170
|
+
capName: "dishwasher",
|
|
69171
|
+
capScope: "device",
|
|
69172
|
+
addonId: null,
|
|
69173
|
+
access: "create"
|
|
69174
|
+
},
|
|
69175
|
+
"dishwasher.setHalfLoad": {
|
|
69176
|
+
capName: "dishwasher",
|
|
69177
|
+
capScope: "device",
|
|
69178
|
+
addonId: null,
|
|
69179
|
+
access: "create"
|
|
69180
|
+
},
|
|
69181
|
+
"dishwasher.setHygienePlus": {
|
|
69182
|
+
capName: "dishwasher",
|
|
69183
|
+
capScope: "device",
|
|
69184
|
+
addonId: null,
|
|
69185
|
+
access: "create"
|
|
69186
|
+
},
|
|
69187
|
+
"dishwasher.setIntensiveZone": {
|
|
69188
|
+
capName: "dishwasher",
|
|
69189
|
+
capScope: "device",
|
|
69190
|
+
addonId: null,
|
|
69191
|
+
access: "create"
|
|
69192
|
+
},
|
|
69193
|
+
"dishwasher.setOption": {
|
|
69194
|
+
capName: "dishwasher",
|
|
69195
|
+
capScope: "device",
|
|
69196
|
+
addonId: null,
|
|
69197
|
+
access: "create"
|
|
69198
|
+
},
|
|
69199
|
+
"dishwasher.setPower": {
|
|
69200
|
+
capName: "dishwasher",
|
|
69201
|
+
capScope: "device",
|
|
69202
|
+
addonId: null,
|
|
69203
|
+
access: "create"
|
|
69204
|
+
},
|
|
69205
|
+
"dishwasher.setProgram": {
|
|
69206
|
+
capName: "dishwasher",
|
|
69207
|
+
capScope: "device",
|
|
69208
|
+
addonId: null,
|
|
69209
|
+
access: "create"
|
|
69210
|
+
},
|
|
69211
|
+
"dishwasher.setVarioSpeedPlus": {
|
|
69212
|
+
capName: "dishwasher",
|
|
69213
|
+
capScope: "device",
|
|
69214
|
+
addonId: null,
|
|
69215
|
+
access: "create"
|
|
69216
|
+
},
|
|
69217
|
+
"dishwasher.start": {
|
|
69218
|
+
capName: "dishwasher",
|
|
69219
|
+
capScope: "device",
|
|
69220
|
+
addonId: null,
|
|
69221
|
+
access: "create"
|
|
69222
|
+
},
|
|
69223
|
+
"dishwasher.stop": {
|
|
69224
|
+
capName: "dishwasher",
|
|
69225
|
+
capScope: "device",
|
|
69226
|
+
addonId: null,
|
|
69227
|
+
access: "create"
|
|
69228
|
+
},
|
|
68786
69229
|
"doorbell.getStatus": {
|
|
68787
69230
|
capName: "doorbell",
|
|
68788
69231
|
capScope: "device",
|
|
@@ -68993,6 +69436,12 @@ Object.freeze({
|
|
|
68993
69436
|
addonId: null,
|
|
68994
69437
|
access: "view"
|
|
68995
69438
|
},
|
|
69439
|
+
"heatingValve.getStatus": {
|
|
69440
|
+
capName: "heating-valve",
|
|
69441
|
+
capScope: "device",
|
|
69442
|
+
addonId: null,
|
|
69443
|
+
access: "view"
|
|
69444
|
+
},
|
|
68996
69445
|
"humidifier.getStatus": {
|
|
68997
69446
|
capName: "humidifier",
|
|
68998
69447
|
capScope: "device",
|
|
@@ -73211,6 +73660,12 @@ Object.freeze({
|
|
|
73211
73660
|
addonId: null,
|
|
73212
73661
|
access: "view"
|
|
73213
73662
|
},
|
|
73663
|
+
"storageMigration.moverClearance": {
|
|
73664
|
+
capName: "storage-migration",
|
|
73665
|
+
capScope: "system",
|
|
73666
|
+
addonId: null,
|
|
73667
|
+
access: "view"
|
|
73668
|
+
},
|
|
73214
73669
|
"storageMigration.movers": {
|
|
73215
73670
|
capName: "storage-migration",
|
|
73216
73671
|
capScope: "system",
|
|
@@ -74580,7 +75035,7 @@ Object.freeze({
|
|
|
74580
75035
|
access: "create"
|
|
74581
75036
|
}
|
|
74582
75037
|
});
|
|
74583
|
-
DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
75038
|
+
DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher;
|
|
74584
75039
|
DeviceFeature.BatteryOperated;
|
|
74585
75040
|
Object.freeze({
|
|
74586
75041
|
"accessories.getStatus": [{
|
|
@@ -75404,6 +75859,81 @@ Object.freeze({
|
|
|
75404
75859
|
form: "single",
|
|
75405
75860
|
optional: false
|
|
75406
75861
|
}],
|
|
75862
|
+
"dishwasher.getOptions": [{
|
|
75863
|
+
name: "deviceId",
|
|
75864
|
+
form: "single",
|
|
75865
|
+
optional: false
|
|
75866
|
+
}],
|
|
75867
|
+
"dishwasher.getStatus": [{
|
|
75868
|
+
name: "deviceId",
|
|
75869
|
+
form: "single",
|
|
75870
|
+
optional: false
|
|
75871
|
+
}],
|
|
75872
|
+
"dishwasher.pause": [{
|
|
75873
|
+
name: "deviceId",
|
|
75874
|
+
form: "single",
|
|
75875
|
+
optional: false
|
|
75876
|
+
}],
|
|
75877
|
+
"dishwasher.resume": [{
|
|
75878
|
+
name: "deviceId",
|
|
75879
|
+
form: "single",
|
|
75880
|
+
optional: false
|
|
75881
|
+
}],
|
|
75882
|
+
"dishwasher.setChildLock": [{
|
|
75883
|
+
name: "deviceId",
|
|
75884
|
+
form: "single",
|
|
75885
|
+
optional: false
|
|
75886
|
+
}],
|
|
75887
|
+
"dishwasher.setExtraDry": [{
|
|
75888
|
+
name: "deviceId",
|
|
75889
|
+
form: "single",
|
|
75890
|
+
optional: false
|
|
75891
|
+
}],
|
|
75892
|
+
"dishwasher.setHalfLoad": [{
|
|
75893
|
+
name: "deviceId",
|
|
75894
|
+
form: "single",
|
|
75895
|
+
optional: false
|
|
75896
|
+
}],
|
|
75897
|
+
"dishwasher.setHygienePlus": [{
|
|
75898
|
+
name: "deviceId",
|
|
75899
|
+
form: "single",
|
|
75900
|
+
optional: false
|
|
75901
|
+
}],
|
|
75902
|
+
"dishwasher.setIntensiveZone": [{
|
|
75903
|
+
name: "deviceId",
|
|
75904
|
+
form: "single",
|
|
75905
|
+
optional: false
|
|
75906
|
+
}],
|
|
75907
|
+
"dishwasher.setOption": [{
|
|
75908
|
+
name: "deviceId",
|
|
75909
|
+
form: "single",
|
|
75910
|
+
optional: false
|
|
75911
|
+
}],
|
|
75912
|
+
"dishwasher.setPower": [{
|
|
75913
|
+
name: "deviceId",
|
|
75914
|
+
form: "single",
|
|
75915
|
+
optional: false
|
|
75916
|
+
}],
|
|
75917
|
+
"dishwasher.setProgram": [{
|
|
75918
|
+
name: "deviceId",
|
|
75919
|
+
form: "single",
|
|
75920
|
+
optional: false
|
|
75921
|
+
}],
|
|
75922
|
+
"dishwasher.setVarioSpeedPlus": [{
|
|
75923
|
+
name: "deviceId",
|
|
75924
|
+
form: "single",
|
|
75925
|
+
optional: false
|
|
75926
|
+
}],
|
|
75927
|
+
"dishwasher.start": [{
|
|
75928
|
+
name: "deviceId",
|
|
75929
|
+
form: "single",
|
|
75930
|
+
optional: false
|
|
75931
|
+
}],
|
|
75932
|
+
"dishwasher.stop": [{
|
|
75933
|
+
name: "deviceId",
|
|
75934
|
+
form: "single",
|
|
75935
|
+
optional: false
|
|
75936
|
+
}],
|
|
75407
75937
|
"doorbell.getStatus": [{
|
|
75408
75938
|
name: "deviceId",
|
|
75409
75939
|
form: "single",
|
|
@@ -75473,6 +76003,11 @@ Object.freeze({
|
|
|
75473
76003
|
form: "single",
|
|
75474
76004
|
optional: false
|
|
75475
76005
|
}],
|
|
76006
|
+
"heatingValve.getStatus": [{
|
|
76007
|
+
name: "deviceId",
|
|
76008
|
+
form: "single",
|
|
76009
|
+
optional: false
|
|
76010
|
+
}],
|
|
75476
76011
|
"humidifier.getStatus": [{
|
|
75477
76012
|
name: "deviceId",
|
|
75478
76013
|
form: "single",
|
|
@@ -77430,6 +77965,9 @@ new Map(Object.entries({
|
|
|
77430
77965
|
"wrapper-update-available": "system",
|
|
77431
77966
|
"backup-completed": "system",
|
|
77432
77967
|
"export-completed": "system",
|
|
77968
|
+
"alert-critical": "system",
|
|
77969
|
+
"alert-error": "system",
|
|
77970
|
+
"alert-critical-resolved": "system",
|
|
77433
77971
|
"storage-location-low": "system",
|
|
77434
77972
|
"storage-location-critical": "system",
|
|
77435
77973
|
"storage-location-ok": "system",
|
|
@@ -77554,6 +78092,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
77554
78092
|
"storage-location-ok"
|
|
77555
78093
|
]
|
|
77556
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
|
+
},
|
|
77557
78105
|
{
|
|
77558
78106
|
id: "alarm",
|
|
77559
78107
|
family: "alarm",
|
|
@@ -77598,6 +78146,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
77598
78146
|
return [[descriptor.kind, field]];
|
|
77599
78147
|
})));
|
|
77600
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
|
+
});
|
|
77601
78164
|
var RULE_BODY_ONLY = ["body"];
|
|
77602
78165
|
var RULE_TEXT = ["title", "body"];
|
|
77603
78166
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -77607,6 +78170,11 @@ var TANK = [
|
|
|
77607
78170
|
"device-tank-full",
|
|
77608
78171
|
"device-tank-normal"
|
|
77609
78172
|
];
|
|
78173
|
+
var ALERT_EPISODE = [
|
|
78174
|
+
"alert-critical",
|
|
78175
|
+
"alert-error",
|
|
78176
|
+
"alert-critical-resolved"
|
|
78177
|
+
];
|
|
77610
78178
|
var UPDATES = [
|
|
77611
78179
|
"addon-update-available",
|
|
77612
78180
|
"server-update-available",
|
|
@@ -77799,14 +78367,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
77799
78367
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
77800
78368
|
([...RULE_TEXT], [...TANK]),
|
|
77801
78369
|
[...RULE_TEXT],
|
|
77802
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
77803
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
77804
|
-
[...RULE_TEXT],
|
|
78370
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78371
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
77805
78372
|
[...RULE_TEXT],
|
|
77806
78373
|
[...RULE_TEXT],
|
|
77807
78374
|
[...RULE_TEXT],
|
|
77808
78375
|
[...RULE_TEXT],
|
|
77809
78376
|
[...RULE_TEXT],
|
|
78377
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
77810
78378
|
[...RULE_TEXT],
|
|
77811
78379
|
[...RULE_TEXT],
|
|
77812
78380
|
[...RULE_TEXT],
|
|
@@ -77824,7 +78392,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
77824
78392
|
[...RULE_TEXT],
|
|
77825
78393
|
[...RULE_TEXT],
|
|
77826
78394
|
[...RULE_TEXT],
|
|
77827
|
-
[...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]),
|
|
77828
78400
|
[...RULE_TEXT],
|
|
77829
78401
|
[...RULE_TEXT],
|
|
77830
78402
|
[...RULE_TEXT],
|