@camstack/addon-auth 1.2.149 → 1.2.151

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.
@@ -32,7 +32,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
32
32
  }) : target, mod));
33
33
  var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
34
  require("node:crypto");
35
- //#region ../types/dist/event-category-BvOFi6PY.mjs
35
+ //#region ../types/dist/event-category-DOl51-Ij.mjs
36
36
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
37
37
  EventCategory["SystemBoot"] = "system.boot";
38
38
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -111,9 +111,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
111
111
  /**
112
112
  * The node's one-shot runner boot check (D877): planned runners against the
113
113
  * process service, `degraded` when any is failed, refused or missing. The
114
- * alert centre turns it into one alert and a direct critical push.
114
+ * alert centre turns it into one critical alert.
115
115
  */
116
116
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
117
+ /**
118
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
119
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
120
+ * centre sends no notification of its own: Notification Center turns this
121
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
122
+ * system-event kinds, and reconciles from the alerts store because a bus
123
+ * event may be dropped (D8, D11).
124
+ */
125
+ EventCategory["AlertEpisode"] = "alert.episode";
117
126
  EventCategory["AddonError"] = "addon.error";
118
127
  EventCategory["AddonPageReady"] = "addon.page-ready";
119
128
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -5571,7 +5580,7 @@ var ZodIssueCode = {
5571
5580
  var ZodFirstPartyTypeKind;
5572
5581
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5573
5582
  //#endregion
5574
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5583
+ //#region ../types/dist/sleep-BxjU_fJM.mjs
5575
5584
  /**
5576
5585
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5577
5586
  * window to float samples (D455).
@@ -8771,7 +8780,7 @@ object({
8771
8780
  params: record(string(), union([string(), number()])).optional()
8772
8781
  });
8773
8782
  //#endregion
8774
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8783
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8775
8784
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8776
8785
  DeviceType["Camera"] = "camera";
8777
8786
  DeviceType["Hub"] = "hub";
@@ -8863,6 +8872,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8863
8872
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8864
8873
  * integrations sharing the same food/desiccant/hopper surface. */
8865
8874
  DeviceType["PetFeeder"] = "pet-feeder";
8875
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8876
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8877
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8878
+ DeviceType["Dishwasher"] = "dishwasher";
8866
8879
  return DeviceType;
8867
8880
  }({});
8868
8881
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9120,7 +9133,7 @@ function errMsg(err) {
9120
9133
  return String(err);
9121
9134
  }
9122
9135
  //#endregion
9123
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9136
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9124
9137
  /**
9125
9138
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9126
9139
  *
@@ -13869,8 +13882,20 @@ var AlertSeveritySchema = _enum([
13869
13882
  "info",
13870
13883
  "success",
13871
13884
  "warning",
13872
- "error"
13885
+ "error",
13886
+ "critical"
13873
13887
  ]);
13888
+ var AlertActionSchema = object({
13889
+ label: string(),
13890
+ href: string().optional(),
13891
+ /**
13892
+ * How `href` is followed. Absent / `app`: an admin-ui route (client-side).
13893
+ * `server`: a route the HUB serves (an addon HTTP route such as an OAuth
13894
+ * start) — the browser must leave the SPA with a full navigation, because
13895
+ * the SPA has no such route and would bounce to the home page.
13896
+ */
13897
+ navigation: _enum(["app", "server"]).optional()
13898
+ });
13874
13899
  var AlertStatusSchema = _enum([
13875
13900
  "active",
13876
13901
  "in-progress",
@@ -13888,6 +13913,7 @@ var AlertSchema = object({
13888
13913
  severity: AlertSeveritySchema,
13889
13914
  title: string(),
13890
13915
  message: string(),
13916
+ action: AlertActionSchema.optional(),
13891
13917
  status: AlertStatusSchema,
13892
13918
  progress: number().optional(),
13893
13919
  read: boolean(),
@@ -18045,7 +18071,11 @@ DeviceType.Hub, DeviceDiscoveryStatusSchema.extend({ lastFetchedAt: number().int
18045
18071
  });
18046
18072
  /**
18047
18073
  * `device-adoption` — generic discovery + adoption surface,
18048
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
18074
+ * system-scoped collection (one provider per integration addon), routed
18075
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
18076
+ * pin model as `connection-test`. The admin UI keeps using
18077
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
18078
+ * successor to `ha-discovery`:
18049
18079
  * keyed by `integrationId` (the addon resolves integrationId → broker
18050
18080
  * internally) rather than a connection-specific `brokerId`, and it
18051
18081
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -42279,6 +42309,9 @@ var NcSystemEventKindSchema = _enum([
42279
42309
  "server-updated",
42280
42310
  "export-completed",
42281
42311
  "backup-completed",
42312
+ "alert-critical",
42313
+ "alert-error",
42314
+ "alert-critical-resolved",
42282
42315
  "camera-online",
42283
42316
  "camera-offline",
42284
42317
  "camera-disabled",
@@ -51327,7 +51360,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
51327
51360
  }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
51328
51361
  kind: "mutation",
51329
51362
  auth: "admin"
51330
- }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
51363
+ }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
51364
+ clear: boolean(),
51365
+ repointLocationId: string().optional()
51366
+ }), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
51331
51367
  kind: "mutation",
51332
51368
  auth: "admin"
51333
51369
  }), method(StorageCleanupInputSchema, object({ jobId: string() }), {
@@ -53912,7 +53948,7 @@ var BatteryStatusSchema = object({
53912
53948
  */
53913
53949
  binary: boolean().optional()
53914
53950
  });
53915
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
53951
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
53916
53952
  deviceId: number(),
53917
53953
  /** Bound on the wait. Sensible range 3000–10000ms. */
53918
53954
  timeoutMs: number().int().min(500).max(3e4).default(8e3)
@@ -54788,6 +54824,250 @@ object({
54788
54824
  deviceId: number(),
54789
54825
  status: DeviceStatusSchema
54790
54826
  });
54827
+ /**
54828
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
54829
+ * consumable levels (salt, rinse aid) and common program options.
54830
+ *
54831
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
54832
+ * by any integration that exposes the same program / option surface.
54833
+ *
54834
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
54835
+ * provider refreshes the slice on an interval and eagerly after commands.
54836
+ *
54837
+ * UNKNOWN IS NOT OFF. Every field the appliance reports separately is
54838
+ * nullable: `null` means "not known right now" (the appliance has not said,
54839
+ * the link is down, or the description does not carry it) and is never
54840
+ * rendered or exported as `false` / `0`. `availability` says why.
54841
+ */
54842
+ var DishwasherStateSchema = _enum([
54843
+ "idle",
54844
+ "running",
54845
+ "paused",
54846
+ "finished",
54847
+ "error",
54848
+ "unavailable"
54849
+ ]);
54850
+ /**
54851
+ * The appliance's own operation state, uncollapsed. `state` above is the coarse
54852
+ * view for compact surfaces; this is what the appliance said.
54853
+ */
54854
+ var DishwasherOperationStateSchema = _enum([
54855
+ "Inactive",
54856
+ "Ready",
54857
+ "DelayedStart",
54858
+ "Run",
54859
+ "Pause",
54860
+ "ActionRequired",
54861
+ "Finished",
54862
+ "Error",
54863
+ "Aborting"
54864
+ ]);
54865
+ /**
54866
+ * Why fields may be `null`:
54867
+ * - `available` — the link is up and the description is loaded;
54868
+ * - `offline` — the local link is down (values are unknown, not last-known);
54869
+ * - `description-missing` — the link is up but the appliance's description could not
54870
+ * be loaded, so its values cannot be decoded.
54871
+ */
54872
+ var DishwasherAvailabilitySchema = _enum([
54873
+ "available",
54874
+ "offline",
54875
+ "description-missing"
54876
+ ]);
54877
+ var DishwasherConsumableLevelSchema = _enum([
54878
+ "ok",
54879
+ "low",
54880
+ "empty"
54881
+ ]);
54882
+ object({
54883
+ availability: DishwasherAvailabilitySchema,
54884
+ /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
54885
+ state: DishwasherStateSchema,
54886
+ /** The appliance's operation state as reported; null when not known. */
54887
+ operationState: DishwasherOperationStateSchema.nullable(),
54888
+ /** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
54889
+ program: string().nullable(),
54890
+ /** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
54891
+ selectedProgram: string().nullable(),
54892
+ /** Feature keys of the programs the appliance currently offers — drives the UI selector. */
54893
+ availablePrograms: array(string()),
54894
+ /** Seconds remaining on the active cycle, or null when not running / not known. */
54895
+ remainingSeconds: number().int().nonnegative().nullable(),
54896
+ /** Seconds the delayed start is set to (time until the cycle starts), or null. */
54897
+ delayedStartSeconds: number().int().nonnegative().nullable(),
54898
+ /** Cycle completion 0..100, or null when not applicable. */
54899
+ progressPercent: number().min(0).max(100).nullable(),
54900
+ /** True when the door is reported open; null when the door state is not known. */
54901
+ doorOpen: boolean().nullable(),
54902
+ /** True when the door is latched (locked) during a cycle; null when not reported. */
54903
+ doorLocked: boolean().nullable(),
54904
+ /** True when remote start is allowed (door closed, power on, etc.); null when not known. */
54905
+ remoteStartAllowed: boolean().nullable(),
54906
+ /** True when the appliance accepts remote control now; null when not known. */
54907
+ remoteControlActive: boolean().nullable(),
54908
+ /** True while somebody operates the appliance at its panel; null when not reported. */
54909
+ localControlActive: boolean().nullable(),
54910
+ /** Main power / switched-on state; null when not known. */
54911
+ powerOn: boolean().nullable(),
54912
+ /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
54913
+ powerState: string().nullable(),
54914
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
54915
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54916
+ /** Option states: null when the appliance does not expose the option or has not said. */
54917
+ halfLoad: boolean().nullable(),
54918
+ hygienePlus: boolean().nullable(),
54919
+ /** Extra dry option when the appliance exposes it. */
54920
+ extraDry: boolean().nullable(),
54921
+ /** Intensive zone (lower basket) when the appliance exposes it. */
54922
+ intensiveZone: boolean().nullable(),
54923
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
54924
+ varioSpeedPlus: boolean().nullable(),
54925
+ /** Child lock (controls disabled on the appliance); null when not known. */
54926
+ childLock: boolean().nullable(),
54927
+ /** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
54928
+ activeEvents: array(string()),
54929
+ /** Numeric error code when the appliance reports one; null otherwise. */
54930
+ errorCode: number().nullable(),
54931
+ /** Name of the raised alert-level event while the appliance is in error; null otherwise. */
54932
+ errorLabel: string().nullable(),
54933
+ /** Ms epoch of the last value received from the appliance; 0 = never. */
54934
+ lastFetchedAt: number()
54935
+ });
54936
+ var DeviceIdSchema = number().int().nonnegative();
54937
+ /** A value a program option or setting can take. */
54938
+ var DishwasherValueSchema = union([
54939
+ boolean(),
54940
+ string(),
54941
+ number()
54942
+ ]);
54943
+ var DishwasherAccessSchema = _enum([
54944
+ "none",
54945
+ "read",
54946
+ "readWrite",
54947
+ "writeOnly",
54948
+ "readStatic"
54949
+ ]);
54950
+ /**
54951
+ * One option or setting the appliance declares, with the constraints its description
54952
+ * gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
54953
+ */
54954
+ var DishwasherOptionDescriptorSchema = object({
54955
+ /** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
54956
+ key: string(),
54957
+ /** Last segment of the key, for display. */
54958
+ name: string(),
54959
+ type: _enum([
54960
+ "boolean",
54961
+ "number",
54962
+ "enum",
54963
+ "string"
54964
+ ]),
54965
+ access: DishwasherAccessSchema,
54966
+ /** The appliance reports this entity as currently available. */
54967
+ available: boolean(),
54968
+ /** Unit the description declares for a number; null when it declares none. */
54969
+ unit: string().nullable(),
54970
+ min: number().nullable(),
54971
+ max: number().nullable(),
54972
+ step: number().nullable(),
54973
+ /** Allowed members of an enum; null for other types. */
54974
+ enumValues: array(string()).nullable(),
54975
+ defaultValue: DishwasherValueSchema.nullable()
54976
+ });
54977
+ var DishwasherProgramSchema = object({
54978
+ /** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
54979
+ key: string(),
54980
+ name: string(),
54981
+ /** The appliance currently offers this program. */
54982
+ available: boolean(),
54983
+ /** The options this program lists, with the program-level access / availability / default. */
54984
+ options: array(DishwasherOptionDescriptorSchema)
54985
+ });
54986
+ var DishwasherOptionsSchema = object({
54987
+ availability: DishwasherAvailabilitySchema,
54988
+ /** What the appliance can be told to do, from the commands its description declares. */
54989
+ supportsStart: boolean(),
54990
+ supportsPause: boolean(),
54991
+ supportsResume: boolean(),
54992
+ supportsStop: boolean(),
54993
+ supportsPower: boolean(),
54994
+ /** Every program the description lists, with its options. */
54995
+ programs: array(DishwasherProgramSchema),
54996
+ /** Every option and setting entity the description lists (programs reference these by key). */
54997
+ options: array(DishwasherOptionDescriptorSchema)
54998
+ });
54999
+ DeviceType.Dishwasher, method(object({
55000
+ deviceId: DeviceIdSchema,
55001
+ program: string().min(1).optional(),
55002
+ options: record(string(), DishwasherValueSchema).optional()
55003
+ }), _void(), {
55004
+ kind: "mutation",
55005
+ auth: "protected"
55006
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
55007
+ kind: "mutation",
55008
+ auth: "protected"
55009
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
55010
+ kind: "mutation",
55011
+ auth: "protected"
55012
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
55013
+ kind: "mutation",
55014
+ auth: "protected"
55015
+ }), method(object({
55016
+ deviceId: DeviceIdSchema,
55017
+ program: string().min(1)
55018
+ }), _void(), {
55019
+ kind: "mutation",
55020
+ auth: "protected"
55021
+ }), method(object({
55022
+ deviceId: DeviceIdSchema,
55023
+ on: boolean()
55024
+ }), _void(), {
55025
+ kind: "mutation",
55026
+ auth: "protected"
55027
+ }), method(object({
55028
+ deviceId: DeviceIdSchema,
55029
+ on: boolean()
55030
+ }), _void(), {
55031
+ kind: "mutation",
55032
+ auth: "protected"
55033
+ }), method(object({
55034
+ deviceId: DeviceIdSchema,
55035
+ on: boolean()
55036
+ }), _void(), {
55037
+ kind: "mutation",
55038
+ auth: "protected"
55039
+ }), method(object({
55040
+ deviceId: DeviceIdSchema,
55041
+ on: boolean()
55042
+ }), _void(), {
55043
+ kind: "mutation",
55044
+ auth: "protected"
55045
+ }), method(object({
55046
+ deviceId: DeviceIdSchema,
55047
+ on: boolean()
55048
+ }), _void(), {
55049
+ kind: "mutation",
55050
+ auth: "protected"
55051
+ }), method(object({
55052
+ deviceId: DeviceIdSchema,
55053
+ on: boolean()
55054
+ }), _void(), {
55055
+ kind: "mutation",
55056
+ auth: "protected"
55057
+ }), method(object({
55058
+ deviceId: DeviceIdSchema,
55059
+ on: boolean()
55060
+ }), _void(), {
55061
+ kind: "mutation",
55062
+ auth: "protected"
55063
+ }), method(object({
55064
+ deviceId: DeviceIdSchema,
55065
+ key: string().min(1),
55066
+ value: DishwasherValueSchema
55067
+ }), _void(), {
55068
+ kind: "mutation",
55069
+ auth: "protected"
55070
+ }), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
54791
55071
  object({
54792
55072
  /** Ms epoch of the last press. null = never observed since this provider started. */
54793
55073
  lastPressedAt: number().nullable(),
@@ -55353,6 +55633,13 @@ object({
55353
55633
  lastChangedAt: number()
55354
55634
  });
55355
55635
  DeviceType.Sensor;
55636
+ object({
55637
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
55638
+ position: number().min(0).max(100).nullable(),
55639
+ /** Ms epoch when the slice was last updated (push or poll). */
55640
+ lastFetchedAt: number()
55641
+ });
55642
+ DeviceType.Thermostat;
55356
55643
  object({
55357
55644
  /** Whether the humidifier is currently on. */
55358
55645
  on: boolean(),
@@ -62419,7 +62706,7 @@ var AccessoryKind = {
62419
62706
  PrivacyMask: DeviceRole.PrivacyMask
62420
62707
  };
62421
62708
  AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
62422
- 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;
62709
+ 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;
62423
62710
  new Set(Object.values(DeviceType));
62424
62711
  Object.freeze({
62425
62712
  "accessories.getStatus": {
@@ -64840,6 +65127,96 @@ Object.freeze({
64840
65127
  addonId: null,
64841
65128
  access: "view"
64842
65129
  },
65130
+ "dishwasher.getOptions": {
65131
+ capName: "dishwasher",
65132
+ capScope: "device",
65133
+ addonId: null,
65134
+ access: "view"
65135
+ },
65136
+ "dishwasher.getStatus": {
65137
+ capName: "dishwasher",
65138
+ capScope: "device",
65139
+ addonId: null,
65140
+ access: "view"
65141
+ },
65142
+ "dishwasher.pause": {
65143
+ capName: "dishwasher",
65144
+ capScope: "device",
65145
+ addonId: null,
65146
+ access: "create"
65147
+ },
65148
+ "dishwasher.resume": {
65149
+ capName: "dishwasher",
65150
+ capScope: "device",
65151
+ addonId: null,
65152
+ access: "create"
65153
+ },
65154
+ "dishwasher.setChildLock": {
65155
+ capName: "dishwasher",
65156
+ capScope: "device",
65157
+ addonId: null,
65158
+ access: "create"
65159
+ },
65160
+ "dishwasher.setExtraDry": {
65161
+ capName: "dishwasher",
65162
+ capScope: "device",
65163
+ addonId: null,
65164
+ access: "create"
65165
+ },
65166
+ "dishwasher.setHalfLoad": {
65167
+ capName: "dishwasher",
65168
+ capScope: "device",
65169
+ addonId: null,
65170
+ access: "create"
65171
+ },
65172
+ "dishwasher.setHygienePlus": {
65173
+ capName: "dishwasher",
65174
+ capScope: "device",
65175
+ addonId: null,
65176
+ access: "create"
65177
+ },
65178
+ "dishwasher.setIntensiveZone": {
65179
+ capName: "dishwasher",
65180
+ capScope: "device",
65181
+ addonId: null,
65182
+ access: "create"
65183
+ },
65184
+ "dishwasher.setOption": {
65185
+ capName: "dishwasher",
65186
+ capScope: "device",
65187
+ addonId: null,
65188
+ access: "create"
65189
+ },
65190
+ "dishwasher.setPower": {
65191
+ capName: "dishwasher",
65192
+ capScope: "device",
65193
+ addonId: null,
65194
+ access: "create"
65195
+ },
65196
+ "dishwasher.setProgram": {
65197
+ capName: "dishwasher",
65198
+ capScope: "device",
65199
+ addonId: null,
65200
+ access: "create"
65201
+ },
65202
+ "dishwasher.setVarioSpeedPlus": {
65203
+ capName: "dishwasher",
65204
+ capScope: "device",
65205
+ addonId: null,
65206
+ access: "create"
65207
+ },
65208
+ "dishwasher.start": {
65209
+ capName: "dishwasher",
65210
+ capScope: "device",
65211
+ addonId: null,
65212
+ access: "create"
65213
+ },
65214
+ "dishwasher.stop": {
65215
+ capName: "dishwasher",
65216
+ capScope: "device",
65217
+ addonId: null,
65218
+ access: "create"
65219
+ },
64843
65220
  "doorbell.getStatus": {
64844
65221
  capName: "doorbell",
64845
65222
  capScope: "device",
@@ -65050,6 +65427,12 @@ Object.freeze({
65050
65427
  addonId: null,
65051
65428
  access: "view"
65052
65429
  },
65430
+ "heatingValve.getStatus": {
65431
+ capName: "heating-valve",
65432
+ capScope: "device",
65433
+ addonId: null,
65434
+ access: "view"
65435
+ },
65053
65436
  "humidifier.getStatus": {
65054
65437
  capName: "humidifier",
65055
65438
  capScope: "device",
@@ -69268,6 +69651,12 @@ Object.freeze({
69268
69651
  addonId: null,
69269
69652
  access: "view"
69270
69653
  },
69654
+ "storageMigration.moverClearance": {
69655
+ capName: "storage-migration",
69656
+ capScope: "system",
69657
+ addonId: null,
69658
+ access: "view"
69659
+ },
69271
69660
  "storageMigration.movers": {
69272
69661
  capName: "storage-migration",
69273
69662
  capScope: "system",
@@ -70637,7 +71026,7 @@ Object.freeze({
70637
71026
  access: "create"
70638
71027
  }
70639
71028
  });
70640
- 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;
71029
+ 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;
70641
71030
  DeviceFeature.BatteryOperated;
70642
71031
  Object.freeze({
70643
71032
  "accessories.getStatus": [{
@@ -71461,6 +71850,81 @@ Object.freeze({
71461
71850
  form: "single",
71462
71851
  optional: false
71463
71852
  }],
71853
+ "dishwasher.getOptions": [{
71854
+ name: "deviceId",
71855
+ form: "single",
71856
+ optional: false
71857
+ }],
71858
+ "dishwasher.getStatus": [{
71859
+ name: "deviceId",
71860
+ form: "single",
71861
+ optional: false
71862
+ }],
71863
+ "dishwasher.pause": [{
71864
+ name: "deviceId",
71865
+ form: "single",
71866
+ optional: false
71867
+ }],
71868
+ "dishwasher.resume": [{
71869
+ name: "deviceId",
71870
+ form: "single",
71871
+ optional: false
71872
+ }],
71873
+ "dishwasher.setChildLock": [{
71874
+ name: "deviceId",
71875
+ form: "single",
71876
+ optional: false
71877
+ }],
71878
+ "dishwasher.setExtraDry": [{
71879
+ name: "deviceId",
71880
+ form: "single",
71881
+ optional: false
71882
+ }],
71883
+ "dishwasher.setHalfLoad": [{
71884
+ name: "deviceId",
71885
+ form: "single",
71886
+ optional: false
71887
+ }],
71888
+ "dishwasher.setHygienePlus": [{
71889
+ name: "deviceId",
71890
+ form: "single",
71891
+ optional: false
71892
+ }],
71893
+ "dishwasher.setIntensiveZone": [{
71894
+ name: "deviceId",
71895
+ form: "single",
71896
+ optional: false
71897
+ }],
71898
+ "dishwasher.setOption": [{
71899
+ name: "deviceId",
71900
+ form: "single",
71901
+ optional: false
71902
+ }],
71903
+ "dishwasher.setPower": [{
71904
+ name: "deviceId",
71905
+ form: "single",
71906
+ optional: false
71907
+ }],
71908
+ "dishwasher.setProgram": [{
71909
+ name: "deviceId",
71910
+ form: "single",
71911
+ optional: false
71912
+ }],
71913
+ "dishwasher.setVarioSpeedPlus": [{
71914
+ name: "deviceId",
71915
+ form: "single",
71916
+ optional: false
71917
+ }],
71918
+ "dishwasher.start": [{
71919
+ name: "deviceId",
71920
+ form: "single",
71921
+ optional: false
71922
+ }],
71923
+ "dishwasher.stop": [{
71924
+ name: "deviceId",
71925
+ form: "single",
71926
+ optional: false
71927
+ }],
71464
71928
  "doorbell.getStatus": [{
71465
71929
  name: "deviceId",
71466
71930
  form: "single",
@@ -71530,6 +71994,11 @@ Object.freeze({
71530
71994
  form: "single",
71531
71995
  optional: false
71532
71996
  }],
71997
+ "heatingValve.getStatus": [{
71998
+ name: "deviceId",
71999
+ form: "single",
72000
+ optional: false
72001
+ }],
71533
72002
  "humidifier.getStatus": [{
71534
72003
  name: "deviceId",
71535
72004
  form: "single",
@@ -73487,6 +73956,9 @@ new Map(Object.entries({
73487
73956
  "wrapper-update-available": "system",
73488
73957
  "backup-completed": "system",
73489
73958
  "export-completed": "system",
73959
+ "alert-critical": "system",
73960
+ "alert-error": "system",
73961
+ "alert-critical-resolved": "system",
73490
73962
  "storage-location-low": "system",
73491
73963
  "storage-location-critical": "system",
73492
73964
  "storage-location-ok": "system",
@@ -73611,6 +74083,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73611
74083
  "storage-location-ok"
73612
74084
  ]
73613
74085
  },
74086
+ {
74087
+ id: "alerts",
74088
+ family: "system",
74089
+ label: "Alerts",
74090
+ kinds: [
74091
+ "alert-critical",
74092
+ "alert-error",
74093
+ "alert-critical-resolved"
74094
+ ]
74095
+ },
73614
74096
  {
73615
74097
  id: "alarm",
73616
74098
  family: "alarm",
@@ -73655,6 +74137,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
73655
74137
  return [[descriptor.kind, field]];
73656
74138
  })));
73657
74139
  Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
74140
+ object({
74141
+ phase: _enum(["raised", "resolved"]),
74142
+ episodeId: string().min(1),
74143
+ alertId: string().min(1),
74144
+ severity: AlertSeveritySchema,
74145
+ category: string(),
74146
+ title: string(),
74147
+ message: string(),
74148
+ sourceType: string().optional(),
74149
+ sourceId: string().optional(),
74150
+ nodeId: string().optional(),
74151
+ /** The alert's own action link (where the operator acts on it), when it has one. */
74152
+ actionUrl: string().optional(),
74153
+ at: number()
74154
+ });
73658
74155
  var RULE_BODY_ONLY = ["body"];
73659
74156
  var RULE_TEXT = ["title", "body"];
73660
74157
  var BATTERY = ["device-battery-low", "device-battery-normal"];
@@ -73664,6 +74161,11 @@ var TANK = [
73664
74161
  "device-tank-full",
73665
74162
  "device-tank-normal"
73666
74163
  ];
74164
+ var ALERT_EPISODE = [
74165
+ "alert-critical",
74166
+ "alert-error",
74167
+ "alert-critical-resolved"
74168
+ ];
73667
74169
  var UPDATES = [
73668
74170
  "addon-update-available",
73669
74171
  "server-update-available",
@@ -73856,14 +74358,14 @@ var STATE_SUMMARY_VARS = [
73856
74358
  ([...RULE_TEXT], [...CONSUMABLE]),
73857
74359
  ([...RULE_TEXT], [...TANK]),
73858
74360
  [...RULE_TEXT],
73859
- ([...RULE_TEXT], [...UPDATES]),
73860
- ([...RULE_TEXT], [...UPDATES]),
73861
- [...RULE_TEXT],
74361
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
74362
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
73862
74363
  [...RULE_TEXT],
73863
74364
  [...RULE_TEXT],
73864
74365
  [...RULE_TEXT],
73865
74366
  [...RULE_TEXT],
73866
74367
  [...RULE_TEXT],
74368
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73867
74369
  [...RULE_TEXT],
73868
74370
  [...RULE_TEXT],
73869
74371
  [...RULE_TEXT],
@@ -73881,7 +74383,11 @@ var STATE_SUMMARY_VARS = [
73881
74383
  [...RULE_TEXT],
73882
74384
  [...RULE_TEXT],
73883
74385
  [...RULE_TEXT],
73884
- [...RULE_TEXT],
74386
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74387
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74388
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74389
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74390
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73885
74391
  [...RULE_TEXT],
73886
74392
  [...RULE_TEXT],
73887
74393
  [...RULE_TEXT],