@camstack/addon-provider-bosch 0.1.1 → 0.1.3

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.
@@ -1,5 +1,5 @@
1
1
  import "node:crypto";
2
- //#region ../types/dist/event-category-BvOFi6PY.mjs
2
+ //#region ../types/dist/event-category-DOl51-Ij.mjs
3
3
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4
4
  EventCategory["SystemBoot"] = "system.boot";
5
5
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -78,9 +78,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
78
78
  /**
79
79
  * The node's one-shot runner boot check (D877): planned runners against the
80
80
  * process service, `degraded` when any is failed, refused or missing. The
81
- * alert centre turns it into one alert and a direct critical push.
81
+ * alert centre turns it into one critical alert.
82
82
  */
83
83
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
84
+ /**
85
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
86
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
87
+ * centre sends no notification of its own: Notification Center turns this
88
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
89
+ * system-event kinds, and reconciles from the alerts store because a bus
90
+ * event may be dropped (D8, D11).
91
+ */
92
+ EventCategory["AlertEpisode"] = "alert.episode";
84
93
  EventCategory["AddonError"] = "addon.error";
85
94
  EventCategory["AddonPageReady"] = "addon.page-ready";
86
95
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -5405,7 +5414,7 @@ var ZodIssueCode = {
5405
5414
  var ZodFirstPartyTypeKind;
5406
5415
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5407
5416
  //#endregion
5408
- //#region ../types/dist/sleep-BOjuyoPC.mjs
5417
+ //#region ../types/dist/sleep-BxjU_fJM.mjs
5409
5418
  /**
5410
5419
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5411
5420
  * window to float samples (D455).
@@ -13194,7 +13203,14 @@ var AlertSeveritySchema = _enum([
13194
13203
  ]);
13195
13204
  var AlertActionSchema = object({
13196
13205
  label: string(),
13197
- href: string().optional()
13206
+ href: string().optional(),
13207
+ /**
13208
+ * How `href` is followed. Absent / `app`: an admin-ui route (client-side).
13209
+ * `server`: a route the HUB serves (an addon HTTP route such as an OAuth
13210
+ * start) — the browser must leave the SPA with a full navigation, because
13211
+ * the SPA has no such route and would bounce to the home page.
13212
+ */
13213
+ navigation: _enum(["app", "server"]).optional()
13198
13214
  });
13199
13215
  var AlertStatusSchema = _enum([
13200
13216
  "active",
@@ -17575,7 +17591,11 @@ var deviceDiscoveryCapability = {
17575
17591
  };
17576
17592
  /**
17577
17593
  * `device-adoption` — generic discovery + adoption surface,
17578
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
17594
+ * system-scoped collection (one provider per integration addon), routed
17595
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
17596
+ * pin model as `connection-test`. The admin UI keeps using
17597
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
17598
+ * successor to `ha-discovery`:
17579
17599
  * keyed by `integrationId` (the addon resolves integrationId → broker
17580
17600
  * internally) rather than a connection-specific `brokerId`, and it
17581
17601
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -17740,7 +17760,7 @@ var ResyncResultSchema = object({
17740
17760
  var deviceAdoptionCapability = {
17741
17761
  name: "device-adoption",
17742
17762
  scope: "system",
17743
- mode: "singleton",
17763
+ mode: "collection",
17744
17764
  status: {
17745
17765
  schema: AdoptionStatusSchema,
17746
17766
  kind: "poll"
@@ -41923,6 +41943,9 @@ var NcSystemEventKindSchema = _enum([
41923
41943
  "server-updated",
41924
41944
  "export-completed",
41925
41945
  "backup-completed",
41946
+ "alert-critical",
41947
+ "alert-error",
41948
+ "alert-critical-resolved",
41926
41949
  "camera-online",
41927
41950
  "camera-offline",
41928
41951
  "camera-disabled",
@@ -50999,7 +51022,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
50999
51022
  }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
51000
51023
  kind: "mutation",
51001
51024
  auth: "admin"
51002
- }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
51025
+ }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
51026
+ clear: boolean(),
51027
+ repointLocationId: string().optional()
51028
+ }), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
51003
51029
  kind: "mutation",
51004
51030
  auth: "admin"
51005
51031
  }), method(StorageCleanupInputSchema, object({ jobId: string() }), {
@@ -55263,6 +55289,11 @@ onStatusChanged: { data: object({
55263
55289
  *
55264
55290
  * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
55265
55291
  * provider refreshes the slice on an interval and eagerly after commands.
55292
+ *
55293
+ * UNKNOWN IS NOT OFF. Every field the appliance reports separately is
55294
+ * nullable: `null` means "not known right now" (the appliance has not said,
55295
+ * the link is down, or the description does not carry it) and is never
55296
+ * rendered or exported as `false` / `0`. `availability` says why.
55266
55297
  */
55267
55298
  var DishwasherStateSchema = _enum([
55268
55299
  "idle",
@@ -55272,35 +55303,155 @@ var DishwasherStateSchema = _enum([
55272
55303
  "error",
55273
55304
  "unavailable"
55274
55305
  ]);
55306
+ /**
55307
+ * The appliance's own operation state, uncollapsed. `state` above is the coarse
55308
+ * view for compact surfaces; this is what the appliance said.
55309
+ */
55310
+ var DishwasherOperationStateSchema = _enum([
55311
+ "Inactive",
55312
+ "Ready",
55313
+ "DelayedStart",
55314
+ "Run",
55315
+ "Pause",
55316
+ "ActionRequired",
55317
+ "Finished",
55318
+ "Error",
55319
+ "Aborting"
55320
+ ]);
55321
+ /**
55322
+ * Why fields may be `null`:
55323
+ * - `available` — the link is up and the description is loaded;
55324
+ * - `offline` — the local link is down (values are unknown, not last-known);
55325
+ * - `description-missing` — the link is up but the appliance's description could not
55326
+ * be loaded, so its values cannot be decoded.
55327
+ */
55328
+ var DishwasherAvailabilitySchema = _enum([
55329
+ "available",
55330
+ "offline",
55331
+ "description-missing"
55332
+ ]);
55275
55333
  var DishwasherConsumableLevelSchema = _enum([
55276
55334
  "ok",
55277
55335
  "low",
55278
55336
  "empty"
55279
55337
  ]);
55280
55338
  var DishwasherStatusSchema = object({
55339
+ availability: DishwasherAvailabilitySchema,
55340
+ /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
55281
55341
  state: DishwasherStateSchema,
55282
- /** Active program id/name, or null when none selected / unknown. */
55342
+ /** The appliance's operation state as reported; null when not known. */
55343
+ operationState: DishwasherOperationStateSchema.nullable(),
55344
+ /** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
55283
55345
  program: string().nullable(),
55284
- /** Program tokens the hardware accepts — drives the UI selector. */
55346
+ /** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
55347
+ selectedProgram: string().nullable(),
55348
+ /** Feature keys of the programs the appliance currently offers — drives the UI selector. */
55285
55349
  availablePrograms: array(string()),
55286
- /** Minutes remaining on the active cycle, or null when not running. */
55287
- remainingMinutes: number().int().nonnegative().nullable(),
55350
+ /** Seconds remaining on the active cycle, or null when not running / not known. */
55351
+ remainingSeconds: number().int().nonnegative().nullable(),
55352
+ /** Seconds the delayed start is set to (time until the cycle starts), or null. */
55353
+ delayedStartSeconds: number().int().nonnegative().nullable(),
55288
55354
  /** Cycle completion 0..100, or null when not applicable. */
55289
55355
  progressPercent: number().min(0).max(100).nullable(),
55290
- /** True when the door is reported open. */
55291
- doorOpen: boolean(),
55292
- /** True when remote start is allowed (door closed, power on, etc.). */
55293
- remoteStartAllowed: boolean(),
55294
- /** Main power / switched-on state. */
55295
- powerOn: boolean(),
55356
+ /** True when the door is reported open; null when the door state is not known. */
55357
+ doorOpen: boolean().nullable(),
55358
+ /** True when the door is latched (locked) during a cycle; null when not reported. */
55359
+ doorLocked: boolean().nullable(),
55360
+ /** True when remote start is allowed (door closed, power on, etc.); null when not known. */
55361
+ remoteStartAllowed: boolean().nullable(),
55362
+ /** True when the appliance accepts remote control now; null when not known. */
55363
+ remoteControlActive: boolean().nullable(),
55364
+ /** True while somebody operates the appliance at its panel; null when not reported. */
55365
+ localControlActive: boolean().nullable(),
55366
+ /** Main power / switched-on state; null when not known. */
55367
+ powerOn: boolean().nullable(),
55368
+ /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
55369
+ powerState: string().nullable(),
55296
55370
  saltLevel: DishwasherConsumableLevelSchema.nullable(),
55297
55371
  rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
55298
- halfLoad: boolean(),
55299
- hygienePlus: boolean(),
55372
+ /** Option states: null when the appliance does not expose the option or has not said. */
55373
+ halfLoad: boolean().nullable(),
55374
+ hygienePlus: boolean().nullable(),
55375
+ /** Extra dry option when the appliance exposes it. */
55376
+ extraDry: boolean().nullable(),
55377
+ /** Intensive zone (lower basket) when the appliance exposes it. */
55378
+ intensiveZone: boolean().nullable(),
55379
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
55380
+ varioSpeedPlus: boolean().nullable(),
55381
+ /** Child lock (controls disabled on the appliance); null when not known. */
55382
+ childLock: boolean().nullable(),
55383
+ /** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
55384
+ activeEvents: array(string()),
55385
+ /** Numeric error code when the appliance reports one; null otherwise. */
55300
55386
  errorCode: number().nullable(),
55387
+ /** Name of the raised alert-level event while the appliance is in error; null otherwise. */
55301
55388
  errorLabel: string().nullable(),
55389
+ /** Ms epoch of the last value received from the appliance; 0 = never. */
55302
55390
  lastFetchedAt: number()
55303
55391
  });
55392
+ var DeviceIdSchema = number().int().nonnegative();
55393
+ /** A value a program option or setting can take. */
55394
+ var DishwasherValueSchema = union([
55395
+ boolean(),
55396
+ string(),
55397
+ number()
55398
+ ]);
55399
+ var DishwasherAccessSchema = _enum([
55400
+ "none",
55401
+ "read",
55402
+ "readWrite",
55403
+ "writeOnly",
55404
+ "readStatic"
55405
+ ]);
55406
+ /**
55407
+ * One option or setting the appliance declares, with the constraints its description
55408
+ * gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
55409
+ */
55410
+ var DishwasherOptionDescriptorSchema = object({
55411
+ /** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
55412
+ key: string(),
55413
+ /** Last segment of the key, for display. */
55414
+ name: string(),
55415
+ type: _enum([
55416
+ "boolean",
55417
+ "number",
55418
+ "enum",
55419
+ "string"
55420
+ ]),
55421
+ access: DishwasherAccessSchema,
55422
+ /** The appliance reports this entity as currently available. */
55423
+ available: boolean(),
55424
+ /** Unit the description declares for a number; null when it declares none. */
55425
+ unit: string().nullable(),
55426
+ min: number().nullable(),
55427
+ max: number().nullable(),
55428
+ step: number().nullable(),
55429
+ /** Allowed members of an enum; null for other types. */
55430
+ enumValues: array(string()).nullable(),
55431
+ defaultValue: DishwasherValueSchema.nullable()
55432
+ });
55433
+ var DishwasherProgramSchema = object({
55434
+ /** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
55435
+ key: string(),
55436
+ name: string(),
55437
+ /** The appliance currently offers this program. */
55438
+ available: boolean(),
55439
+ /** The options this program lists, with the program-level access / availability / default. */
55440
+ options: array(DishwasherOptionDescriptorSchema)
55441
+ });
55442
+ var DishwasherOptionsSchema = object({
55443
+ availability: DishwasherAvailabilitySchema,
55444
+ /** What the appliance can be told to do, from the commands its description declares. */
55445
+ supportsStart: boolean(),
55446
+ supportsPause: boolean(),
55447
+ supportsResume: boolean(),
55448
+ supportsStop: boolean(),
55449
+ supportsPower: boolean(),
55450
+ /** Every program the description lists, with its options. */
55451
+ programs: array(DishwasherProgramSchema),
55452
+ /** Every option and setting entity the description lists (programs reference these by key). */
55453
+ options: array(DishwasherOptionDescriptorSchema)
55454
+ });
55304
55455
  var dishwasherCapability = {
55305
55456
  name: "dishwasher",
55306
55457
  scope: "device",
@@ -55308,58 +55459,102 @@ var dishwasherCapability = {
55308
55459
  mode: "singleton",
55309
55460
  deviceTypes: [DeviceType.Dishwasher],
55310
55461
  methods: {
55311
- start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
55462
+ /**
55463
+ * Start a program. Without `program` the selected one starts. `options` are
55464
+ * option feature keys; each is checked against the program's constraints.
55465
+ */
55466
+ start: method(object({
55467
+ deviceId: DeviceIdSchema,
55468
+ program: string().min(1).optional(),
55469
+ options: record(string(), DishwasherValueSchema).optional()
55470
+ }), _void(), {
55312
55471
  kind: "mutation",
55313
55472
  auth: "protected"
55314
55473
  }),
55315
- pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
55474
+ pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
55316
55475
  kind: "mutation",
55317
55476
  auth: "protected"
55318
55477
  }),
55319
- stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
55478
+ resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
55320
55479
  kind: "mutation",
55321
55480
  auth: "protected"
55322
55481
  }),
55482
+ stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
55483
+ kind: "mutation",
55484
+ auth: "protected"
55485
+ }),
55486
+ /** Select (not start) a program; refused when the appliance does not offer it. */
55323
55487
  setProgram: method(object({
55324
- deviceId: number().int().nonnegative(),
55488
+ deviceId: DeviceIdSchema,
55325
55489
  program: string().min(1)
55326
55490
  }), _void(), {
55327
55491
  kind: "mutation",
55328
55492
  auth: "protected"
55329
55493
  }),
55330
55494
  setPower: method(object({
55331
- deviceId: number().int().nonnegative(),
55495
+ deviceId: DeviceIdSchema,
55332
55496
  on: boolean()
55333
55497
  }), _void(), {
55334
55498
  kind: "mutation",
55335
55499
  auth: "protected"
55336
55500
  }),
55337
55501
  setHalfLoad: method(object({
55338
- deviceId: number().int().nonnegative(),
55502
+ deviceId: DeviceIdSchema,
55339
55503
  on: boolean()
55340
55504
  }), _void(), {
55341
55505
  kind: "mutation",
55342
55506
  auth: "protected"
55343
55507
  }),
55344
55508
  setHygienePlus: method(object({
55345
- deviceId: number().int().nonnegative(),
55509
+ deviceId: DeviceIdSchema,
55346
55510
  on: boolean()
55347
55511
  }), _void(), {
55348
55512
  kind: "mutation",
55349
55513
  auth: "protected"
55350
55514
  }),
55515
+ setExtraDry: method(object({
55516
+ deviceId: DeviceIdSchema,
55517
+ on: boolean()
55518
+ }), _void(), {
55519
+ kind: "mutation",
55520
+ auth: "protected"
55521
+ }),
55522
+ setIntensiveZone: method(object({
55523
+ deviceId: DeviceIdSchema,
55524
+ on: boolean()
55525
+ }), _void(), {
55526
+ kind: "mutation",
55527
+ auth: "protected"
55528
+ }),
55529
+ setVarioSpeedPlus: method(object({
55530
+ deviceId: DeviceIdSchema,
55531
+ on: boolean()
55532
+ }), _void(), {
55533
+ kind: "mutation",
55534
+ auth: "protected"
55535
+ }),
55536
+ setChildLock: method(object({
55537
+ deviceId: DeviceIdSchema,
55538
+ on: boolean()
55539
+ }), _void(), {
55540
+ kind: "mutation",
55541
+ auth: "protected"
55542
+ }),
55543
+ /**
55544
+ * Write any option or setting by feature key. Refused when the description does
55545
+ * not list it, it is not writable or not available now, or the value is outside
55546
+ * its declared range / members.
55547
+ */
55351
55548
  setOption: method(object({
55352
- deviceId: number().int().nonnegative(),
55549
+ deviceId: DeviceIdSchema,
55353
55550
  key: string().min(1),
55354
- value: union([
55355
- boolean(),
55356
- string(),
55357
- number()
55358
- ])
55551
+ value: DishwasherValueSchema
55359
55552
  }), _void(), {
55360
55553
  kind: "mutation",
55361
55554
  auth: "protected"
55362
- })
55555
+ }),
55556
+ /** What this appliance can do, from its own description — the UI is derived from it. */
55557
+ getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
55363
55558
  },
55364
55559
  status: {
55365
55560
  schema: DishwasherStatusSchema,
@@ -69308,6 +69503,12 @@ Object.freeze({
69308
69503
  addonId: null,
69309
69504
  access: "view"
69310
69505
  },
69506
+ "dishwasher.getOptions": {
69507
+ capName: "dishwasher",
69508
+ capScope: "device",
69509
+ addonId: null,
69510
+ access: "view"
69511
+ },
69311
69512
  "dishwasher.getStatus": {
69312
69513
  capName: "dishwasher",
69313
69514
  capScope: "device",
@@ -69320,6 +69521,24 @@ Object.freeze({
69320
69521
  addonId: null,
69321
69522
  access: "create"
69322
69523
  },
69524
+ "dishwasher.resume": {
69525
+ capName: "dishwasher",
69526
+ capScope: "device",
69527
+ addonId: null,
69528
+ access: "create"
69529
+ },
69530
+ "dishwasher.setChildLock": {
69531
+ capName: "dishwasher",
69532
+ capScope: "device",
69533
+ addonId: null,
69534
+ access: "create"
69535
+ },
69536
+ "dishwasher.setExtraDry": {
69537
+ capName: "dishwasher",
69538
+ capScope: "device",
69539
+ addonId: null,
69540
+ access: "create"
69541
+ },
69323
69542
  "dishwasher.setHalfLoad": {
69324
69543
  capName: "dishwasher",
69325
69544
  capScope: "device",
@@ -69332,6 +69551,12 @@ Object.freeze({
69332
69551
  addonId: null,
69333
69552
  access: "create"
69334
69553
  },
69554
+ "dishwasher.setIntensiveZone": {
69555
+ capName: "dishwasher",
69556
+ capScope: "device",
69557
+ addonId: null,
69558
+ access: "create"
69559
+ },
69335
69560
  "dishwasher.setOption": {
69336
69561
  capName: "dishwasher",
69337
69562
  capScope: "device",
@@ -69350,6 +69575,12 @@ Object.freeze({
69350
69575
  addonId: null,
69351
69576
  access: "create"
69352
69577
  },
69578
+ "dishwasher.setVarioSpeedPlus": {
69579
+ capName: "dishwasher",
69580
+ capScope: "device",
69581
+ addonId: null,
69582
+ access: "create"
69583
+ },
69353
69584
  "dishwasher.start": {
69354
69585
  capName: "dishwasher",
69355
69586
  capScope: "device",
@@ -73796,6 +74027,12 @@ Object.freeze({
73796
74027
  addonId: null,
73797
74028
  access: "view"
73798
74029
  },
74030
+ "storageMigration.moverClearance": {
74031
+ capName: "storage-migration",
74032
+ capScope: "system",
74033
+ addonId: null,
74034
+ access: "view"
74035
+ },
73799
74036
  "storageMigration.movers": {
73800
74037
  capName: "storage-migration",
73801
74038
  capScope: "system",
@@ -75989,6 +76226,11 @@ Object.freeze({
75989
76226
  form: "single",
75990
76227
  optional: false
75991
76228
  }],
76229
+ "dishwasher.getOptions": [{
76230
+ name: "deviceId",
76231
+ form: "single",
76232
+ optional: false
76233
+ }],
75992
76234
  "dishwasher.getStatus": [{
75993
76235
  name: "deviceId",
75994
76236
  form: "single",
@@ -75999,6 +76241,21 @@ Object.freeze({
75999
76241
  form: "single",
76000
76242
  optional: false
76001
76243
  }],
76244
+ "dishwasher.resume": [{
76245
+ name: "deviceId",
76246
+ form: "single",
76247
+ optional: false
76248
+ }],
76249
+ "dishwasher.setChildLock": [{
76250
+ name: "deviceId",
76251
+ form: "single",
76252
+ optional: false
76253
+ }],
76254
+ "dishwasher.setExtraDry": [{
76255
+ name: "deviceId",
76256
+ form: "single",
76257
+ optional: false
76258
+ }],
76002
76259
  "dishwasher.setHalfLoad": [{
76003
76260
  name: "deviceId",
76004
76261
  form: "single",
@@ -76009,6 +76266,11 @@ Object.freeze({
76009
76266
  form: "single",
76010
76267
  optional: false
76011
76268
  }],
76269
+ "dishwasher.setIntensiveZone": [{
76270
+ name: "deviceId",
76271
+ form: "single",
76272
+ optional: false
76273
+ }],
76012
76274
  "dishwasher.setOption": [{
76013
76275
  name: "deviceId",
76014
76276
  form: "single",
@@ -76024,6 +76286,11 @@ Object.freeze({
76024
76286
  form: "single",
76025
76287
  optional: false
76026
76288
  }],
76289
+ "dishwasher.setVarioSpeedPlus": [{
76290
+ name: "deviceId",
76291
+ form: "single",
76292
+ optional: false
76293
+ }],
76027
76294
  "dishwasher.start": [{
76028
76295
  name: "deviceId",
76029
76296
  form: "single",
@@ -78065,6 +78332,9 @@ new Map(Object.entries({
78065
78332
  "wrapper-update-available": "system",
78066
78333
  "backup-completed": "system",
78067
78334
  "export-completed": "system",
78335
+ "alert-critical": "system",
78336
+ "alert-error": "system",
78337
+ "alert-critical-resolved": "system",
78068
78338
  "storage-location-low": "system",
78069
78339
  "storage-location-critical": "system",
78070
78340
  "storage-location-ok": "system",
@@ -78189,6 +78459,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
78189
78459
  "storage-location-ok"
78190
78460
  ]
78191
78461
  },
78462
+ {
78463
+ id: "alerts",
78464
+ family: "system",
78465
+ label: "Alerts",
78466
+ kinds: [
78467
+ "alert-critical",
78468
+ "alert-error",
78469
+ "alert-critical-resolved"
78470
+ ]
78471
+ },
78192
78472
  {
78193
78473
  id: "alarm",
78194
78474
  family: "alarm",
@@ -78233,6 +78513,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
78233
78513
  return [[descriptor.kind, field]];
78234
78514
  })));
78235
78515
  Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
78516
+ object({
78517
+ phase: _enum(["raised", "resolved"]),
78518
+ episodeId: string().min(1),
78519
+ alertId: string().min(1),
78520
+ severity: AlertSeveritySchema,
78521
+ category: string(),
78522
+ title: string(),
78523
+ message: string(),
78524
+ sourceType: string().optional(),
78525
+ sourceId: string().optional(),
78526
+ nodeId: string().optional(),
78527
+ /** The alert's own action link (where the operator acts on it), when it has one. */
78528
+ actionUrl: string().optional(),
78529
+ at: number()
78530
+ });
78236
78531
  var RULE_BODY_ONLY = ["body"];
78237
78532
  var RULE_TEXT = ["title", "body"];
78238
78533
  var BATTERY = ["device-battery-low", "device-battery-normal"];
@@ -78242,6 +78537,11 @@ var TANK = [
78242
78537
  "device-tank-full",
78243
78538
  "device-tank-normal"
78244
78539
  ];
78540
+ var ALERT_EPISODE = [
78541
+ "alert-critical",
78542
+ "alert-error",
78543
+ "alert-critical-resolved"
78544
+ ];
78245
78545
  var UPDATES = [
78246
78546
  "addon-update-available",
78247
78547
  "server-update-available",
@@ -78434,14 +78734,14 @@ var STATE_SUMMARY_VARS = [
78434
78734
  ([...RULE_TEXT], [...CONSUMABLE]),
78435
78735
  ([...RULE_TEXT], [...TANK]),
78436
78736
  [...RULE_TEXT],
78437
- ([...RULE_TEXT], [...UPDATES]),
78438
- ([...RULE_TEXT], [...UPDATES]),
78439
- [...RULE_TEXT],
78737
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
78738
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
78440
78739
  [...RULE_TEXT],
78441
78740
  [...RULE_TEXT],
78442
78741
  [...RULE_TEXT],
78443
78742
  [...RULE_TEXT],
78444
78743
  [...RULE_TEXT],
78744
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
78445
78745
  [...RULE_TEXT],
78446
78746
  [...RULE_TEXT],
78447
78747
  [...RULE_TEXT],
@@ -78459,7 +78759,11 @@ var STATE_SUMMARY_VARS = [
78459
78759
  [...RULE_TEXT],
78460
78760
  [...RULE_TEXT],
78461
78761
  [...RULE_TEXT],
78462
- [...RULE_TEXT],
78762
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
78763
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
78764
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
78765
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
78766
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
78463
78767
  [...RULE_TEXT],
78464
78768
  [...RULE_TEXT],
78465
78769
  [...RULE_TEXT],
@@ -79000,4 +79304,4 @@ DEFAULT_NATIVE_LEASE_SETTINGS.admission;
79000
79304
  var MB = 1024 * 1024;
79001
79305
  1024 * MB, 3072 * MB;
79002
79306
  //#endregion
79003
- export { record as C, EventCategory as D, unknown as E, object as S, union as T, isSecretMarkerLike as _, connectionTestCapability as a, literal as b, heatingValveCapability as c, waterHeaterCapability as d, DeviceType as f, isSecretMarker as g, defineCustomActions as h, climateControlCapability as i, switchCapability as l, customAction as m, BaseDeviceProvider as n, deviceAdoptionCapability as o, errMsg as p, batteryCapability as r, dishwasherCapability as s, BaseDevice as t, temperatureSensorCapability as u, _enum as v, string as w, number as x, array as y };
79307
+ export { object as A, defineCustomActions as C, array as D, _enum as E, EventCategory as F, string as M, union as N, literal as O, unknown as P, customAction as S, isSecretMarkerLike as T, waterHeaterCapability as _, binaryCapability as a, errMsg as b, deviceAdoptionCapability as c, eventEmitterCapability as d, heatingValveCapability as f, temperatureSensorCapability as g, switchCapability as h, batteryCapability as i, record as j, number as k, dishwasherCapability as l, powerMeterCapability as m, BaseDeviceProvider as n, climateControlCapability as o, numericSensorCapability as p, DishwasherOperationStateSchema as r, connectionTestCapability as s, BaseDevice as t, enumSensorCapability as u, DeviceRole as v, isSecretMarker as w, createEvent as x, DeviceType as y };