@camstack/addon-osd-manager 0.1.244 → 0.1.246

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.
Files changed (19) hide show
  1. package/dist/{MotionZonesSettings-Dx0QePDr.mjs → MotionZonesSettings-qtgrA0zs.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-Dpvj9Htf.mjs → PrivacyMaskSettings-CDjLk5w5.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-CInL6GVs.mjs → SceneMonitorEditor-BVdgxUfp.mjs} +3 -3
  4. package/dist/_stub.js +4684 -4053
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DkadILEV.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-2jdtfUGW.mjs} +4 -4
  6. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DJYNsHHl.mjs +26 -0
  7. package/dist/addon-osd-manager.css +1 -1
  8. package/dist/{hostInit-BZGn1YFH.mjs → hostInit-CGaNHoXk.mjs} +3 -3
  9. package/dist/index.js +344 -27
  10. package/dist/index.mjs +344 -27
  11. package/dist/{player-overlays-Ces1nEGQ.mjs → player-overlays-CWC5I8Gr.mjs} +1 -1
  12. package/dist/remoteEntry.js +1 -1
  13. package/dist/{responsive-xOj-SfJF.mjs → responsive-C0Yg2ySn.mjs} +1 -1
  14. package/dist/{scene-monitor-copy-BZMgBFaF.mjs → scene-monitor-copy-CUvGeueA.mjs} +1 -1
  15. package/dist/{square-CAeV_Co2.mjs → square-DM5YvAWs.mjs} +1 -1
  16. package/dist/{trash-2-LqYIxrzA.mjs → trash-2-DTlq25ib.mjs} +1 -1
  17. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-epKXdpkT.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-C1hKmoQ1.mjs} +1 -1
  18. package/package.json +1 -1
  19. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Dfue3rir.mjs +0 -26
package/dist/index.mjs CHANGED
@@ -5404,7 +5404,7 @@ var ZodIssueCode = {
5404
5404
  var ZodFirstPartyTypeKind;
5405
5405
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5406
5406
  //#endregion
5407
- //#region ../types/dist/sleep-WsrozGDL.mjs
5407
+ //#region ../types/dist/sleep-BOjuyoPC.mjs
5408
5408
  /**
5409
5409
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5410
5410
  * window to float samples (D455).
@@ -5521,7 +5521,7 @@ function isKeychainStoredField(field) {
5521
5521
  var SECRET_CLEAR = { $secretClear: true };
5522
5522
  /** The `'***'` token D634 redaction writes for non-admins. */
5523
5523
  var LEGACY_DEVICE_REDACTION = "***";
5524
- function isRecord$4(value) {
5524
+ function isRecord$5(value) {
5525
5525
  return typeof value === "object" && value !== null && !Array.isArray(value);
5526
5526
  }
5527
5527
  function makeSecretMarker(ref) {
@@ -5532,12 +5532,12 @@ function makeSecretMarker(ref) {
5532
5532
  }
5533
5533
  /** A stored marker: an object whose `$secret` is a non-empty string. */
5534
5534
  function isSecretMarker(value) {
5535
- if (!isRecord$4(value)) return false;
5535
+ if (!isRecord$5(value)) return false;
5536
5536
  const ref = value["$secret"];
5537
5537
  return typeof ref === "string" && ref.length > 0;
5538
5538
  }
5539
5539
  function isSecretClear(value) {
5540
- return isRecord$4(value) && value["$secretClear"] === true;
5540
+ return isRecord$5(value) && value["$secretClear"] === true;
5541
5541
  }
5542
5542
  /**
5543
5543
  * The UI view of a stored secret field value: a marker becomes "set", inline
@@ -6147,7 +6147,7 @@ var KeychainWriteRefusedError = class extends Error {
6147
6147
  }
6148
6148
  };
6149
6149
  var KEEP = { kind: "keep" };
6150
- function isRecord$3(value) {
6150
+ function isRecord$4(value) {
6151
6151
  return typeof value === "object" && value !== null && !Array.isArray(value);
6152
6152
  }
6153
6153
  function defaultMintId() {
@@ -6160,7 +6160,7 @@ function collectSecretMarkerRefs(value, out = []) {
6160
6160
  return out;
6161
6161
  }
6162
6162
  if (Array.isArray(value)) for (const item of value) collectSecretMarkerRefs(item, out);
6163
- else if (isRecord$3(value)) for (const child of Object.values(value)) collectSecretMarkerRefs(child, out);
6163
+ else if (isRecord$4(value)) for (const child of Object.values(value)) collectSecretMarkerRefs(child, out);
6164
6164
  return out;
6165
6165
  }
6166
6166
  async function storedValueEquals(secrets, marker, candidate) {
@@ -6215,7 +6215,7 @@ function rowId(row, idKey) {
6215
6215
  return null;
6216
6216
  }
6217
6217
  async function writeArray(ctx, node, incoming, stored, fieldPath) {
6218
- const storedRows = Array.isArray(stored) ? stored.filter(isRecord$3) : [];
6218
+ const storedRows = Array.isArray(stored) ? stored.filter(isRecord$4) : [];
6219
6219
  if (!Array.isArray(incoming)) {
6220
6220
  ctx.deletes.push(...collectSecretMarkerRefs(storedRows));
6221
6221
  return {
@@ -6231,7 +6231,7 @@ async function writeArray(ctx, node, incoming, stored, fieldPath) {
6231
6231
  const kept = /* @__PURE__ */ new Set();
6232
6232
  const rows = [];
6233
6233
  for (const row of incoming) {
6234
- if (!isRecord$3(row)) {
6234
+ if (!isRecord$4(row)) {
6235
6235
  rows.push(row);
6236
6236
  continue;
6237
6237
  }
@@ -6256,7 +6256,7 @@ async function writeNode(ctx, node, incoming, stored, fieldPath) {
6256
6256
  case "leaf": return writeLeaf(ctx, incoming, stored, fieldPath);
6257
6257
  case "array": return writeArray(ctx, node, incoming, stored, fieldPath);
6258
6258
  case "object": {
6259
- if (!isRecord$3(incoming)) {
6259
+ if (!isRecord$4(incoming)) {
6260
6260
  if (incoming === void 0) return KEEP;
6261
6261
  ctx.deletes.push(...collectSecretMarkerRefs(stored));
6262
6262
  return {
@@ -6264,7 +6264,7 @@ async function writeNode(ctx, node, incoming, stored, fieldPath) {
6264
6264
  value: incoming
6265
6265
  };
6266
6266
  }
6267
- const storedObj = isRecord$3(stored) ? stored : {};
6267
+ const storedObj = isRecord$4(stored) ? stored : {};
6268
6268
  return {
6269
6269
  kind: "value",
6270
6270
  value: await writeMembers(ctx, node.children, incoming, storedObj, (m) => `${fieldPath}.${m}`)
@@ -6387,7 +6387,7 @@ async function resolveSecretMarkers(value, secrets, options = {}) {
6387
6387
  value: items
6388
6388
  };
6389
6389
  }
6390
- if (isRecord$3(v)) {
6390
+ if (isRecord$4(v)) {
6391
6391
  const out = {};
6392
6392
  for (const [k, child] of Object.entries(v)) {
6393
6393
  const s = substitute(child);
@@ -6419,7 +6419,7 @@ var SecretOverwriteRefusedError = class extends Error {
6419
6419
  this.name = "SecretOverwriteRefusedError";
6420
6420
  }
6421
6421
  };
6422
- function isRecord$2(value) {
6422
+ function isRecord$3(value) {
6423
6423
  return typeof value === "object" && value !== null && !Array.isArray(value);
6424
6424
  }
6425
6425
  function resolvedValue(pass, marker) {
@@ -6448,7 +6448,7 @@ function inArray(pass, incoming, stored) {
6448
6448
  return incoming.map((item, index) => {
6449
6449
  const twin = stored[index];
6450
6450
  if (isSecretMarker(twin)) return typeof item === "string" && item === resolvedValue(pass, twin) ? twin : item;
6451
- if (isRecord$2(item) && isRecord$2(twin)) return inArrayRow(pass, item, twin);
6451
+ if (isRecord$3(item) && isRecord$3(twin)) return inArrayRow(pass, item, twin);
6452
6452
  if (Array.isArray(item) && Array.isArray(twin)) return inArray(pass, item, twin);
6453
6453
  return item;
6454
6454
  });
@@ -6459,7 +6459,7 @@ function inArrayRow(pass, incoming, stored) {
6459
6459
  const twin = stored[key];
6460
6460
  if (isSecretMarker(twin)) {
6461
6461
  if (typeof value === "string" && value === resolvedValue(pass, twin)) out[key] = twin;
6462
- } else if (isRecord$2(value) && isRecord$2(twin)) out[key] = inArrayRow(pass, value, twin);
6462
+ } else if (isRecord$3(value) && isRecord$3(twin)) out[key] = inArrayRow(pass, value, twin);
6463
6463
  else if (Array.isArray(value) && Array.isArray(twin)) out[key] = inArray(pass, value, twin);
6464
6464
  }
6465
6465
  return out;
@@ -6467,7 +6467,7 @@ function inArrayRow(pass, incoming, stored) {
6467
6467
  async function walk$1(pass, incoming, stored) {
6468
6468
  if (isSecretMarker(stored)) return atMarker(pass, incoming, stored);
6469
6469
  if (Array.isArray(incoming) && Array.isArray(stored)) return inArray(pass, incoming, stored);
6470
- if (!isRecord$2(incoming) || !isRecord$2(stored)) return incoming;
6470
+ if (!isRecord$3(incoming) || !isRecord$3(stored)) return incoming;
6471
6471
  const out = { ...incoming };
6472
6472
  for (const [key, value] of Object.entries(incoming)) out[key] = await walk$1(pass, value, stored[key]);
6473
6473
  return out;
@@ -6498,7 +6498,7 @@ async function restoreUnchangedSecrets(input) {
6498
6498
  function isJsonEqual(a, b) {
6499
6499
  if (Object.is(a, b)) return true;
6500
6500
  if (Array.isArray(a)) return Array.isArray(b) && a.length === b.length && a.every((v, i) => isJsonEqual(v, b[i]));
6501
- if (isRecord$2(a) && isRecord$2(b)) {
6501
+ if (isRecord$3(a) && isRecord$3(b)) {
6502
6502
  const keys = Object.keys(a);
6503
6503
  if (keys.length !== Object.keys(b).length) return false;
6504
6504
  return keys.every((k) => Object.prototype.hasOwnProperty.call(b, k) && isJsonEqual(a[k], b[k]));
@@ -6522,7 +6522,7 @@ function markerKeysOf(blob, owner) {
6522
6522
  }
6523
6523
  function nodeFromStored(value, owner) {
6524
6524
  if (isSecretMarker(value)) return isSecretRefOwnedBy(value.$secret, owner) ? { kind: "leaf" } : null;
6525
- if (!isRecord$2(value)) return null;
6525
+ if (!isRecord$3(value)) return null;
6526
6526
  const children = /* @__PURE__ */ new Map();
6527
6527
  for (const [key, child] of Object.entries(value)) {
6528
6528
  const node = nodeFromStored(child, owner);
@@ -7310,7 +7310,7 @@ var BaseAddon = class {
7310
7310
  if (!ctx) return;
7311
7311
  const addonId = ctx.id;
7312
7312
  setImmediate(() => {
7313
- ctx.api.addons?.restartAddon?.mutate({ addonId }).then(() => {
7313
+ ctx.api.addons.restartAddon.mutate({ addonId }).then(() => {
7314
7314
  ctx.logger.info("addon auto-restart triggered by restart-required setting change", { meta: { changedFields: patchKeys.filter((k) => restartKeys.has(k)) } });
7315
7315
  }).catch((err) => {
7316
7316
  ctx.logger.error("addon auto-restart failed", { meta: { error: err instanceof Error ? err.message : String(err) } });
@@ -8352,7 +8352,7 @@ object({
8352
8352
  params: record(string(), union([string(), number()])).optional()
8353
8353
  });
8354
8354
  //#endregion
8355
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8355
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8356
8356
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8357
8357
  DeviceType["Camera"] = "camera";
8358
8358
  DeviceType["Hub"] = "hub";
@@ -8444,6 +8444,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8444
8444
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8445
8445
  * integrations sharing the same food/desiccant/hopper surface. */
8446
8446
  DeviceType["PetFeeder"] = "pet-feeder";
8447
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8448
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8449
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8450
+ DeviceType["Dishwasher"] = "dishwasher";
8447
8451
  return DeviceType;
8448
8452
  }({});
8449
8453
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -8691,7 +8695,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
8691
8695
  return DeviceRole;
8692
8696
  }({});
8693
8697
  //#endregion
8694
- //#region ../types/dist/composition-DOwQB_Ua.mjs
8698
+ //#region ../types/dist/composition-CB6PMT9p.mjs
8695
8699
  /**
8696
8700
  * The ffmpeg build every CamStack node downloads, per platform and arch.
8697
8701
  *
@@ -13094,8 +13098,13 @@ var AlertSeveritySchema = _enum([
13094
13098
  "info",
13095
13099
  "success",
13096
13100
  "warning",
13097
- "error"
13101
+ "error",
13102
+ "critical"
13098
13103
  ]);
13104
+ var AlertActionSchema = object({
13105
+ label: string(),
13106
+ href: string().optional()
13107
+ });
13099
13108
  var AlertStatusSchema = _enum([
13100
13109
  "active",
13101
13110
  "in-progress",
@@ -13113,6 +13122,7 @@ var AlertSchema = object({
13113
13122
  severity: AlertSeveritySchema,
13114
13123
  title: string(),
13115
13124
  message: string(),
13125
+ action: AlertActionSchema.optional(),
13116
13126
  status: AlertStatusSchema,
13117
13127
  progress: number().optional(),
13118
13128
  read: boolean(),
@@ -16337,13 +16347,23 @@ method(object({ ownerPrefix: string().min(1).optional() }), object({ tables: arr
16337
16347
  }), RecordQueryResultSchema, { auth: "admin" }), method(object({
16338
16348
  owner: string().min(1),
16339
16349
  kind: RecordKindNameSchema,
16340
- records: array(RecordInputSchema).min(1).max(RECORD_BATCH_MAX),
16350
+ records: array(RecordInputSchema).max(RECORD_BATCH_MAX),
16341
16351
  /** The LAST batch: the copy is complete, the boot guard stops asking. */
16342
16352
  complete: boolean().optional()
16343
- }), object({ adopted: number().int() }), {
16353
+ }).refine((input) => input.records.length > 0 || input.complete === true, { message: "records must be non-empty unless complete is true" }), object({ adopted: number().int() }), {
16344
16354
  kind: "mutation",
16345
16355
  auth: "admin"
16346
- });
16356
+ }), method(object({
16357
+ collection: string().min(1),
16358
+ cursor: string().optional(),
16359
+ limit: number().int().min(1).max(1e3).optional()
16360
+ }), object({
16361
+ rows: array(object({
16362
+ id: string(),
16363
+ data: record(string(), unknown())
16364
+ })),
16365
+ nextCursor: string().nullable()
16366
+ }), { auth: "admin" }), method(object({ collection: string().min(1) }), object({ adopted: boolean() }), { auth: "admin" });
16347
16367
  /**
16348
16368
  * record-entries - the ONE admin surface for every list of user-created entries
16349
16369
  * (D881): notification targets, brokers, LLM profiles, anything an addon
@@ -53650,7 +53670,7 @@ var BatteryStatusSchema = object({
53650
53670
  */
53651
53671
  binary: boolean().optional()
53652
53672
  });
53653
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
53673
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
53654
53674
  deviceId: number(),
53655
53675
  /** Bound on the wait. Sensible range 3000–10000ms. */
53656
53676
  timeoutMs: number().int().min(500).max(3e4).default(8e3)
@@ -54526,6 +54546,98 @@ object({
54526
54546
  deviceId: number(),
54527
54547
  status: DeviceStatusSchema
54528
54548
  });
54549
+ /**
54550
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
54551
+ * consumable levels (salt, rinse aid) and common program options.
54552
+ *
54553
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
54554
+ * by any integration that exposes the same program / option surface.
54555
+ *
54556
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
54557
+ * provider refreshes the slice on an interval and eagerly after commands.
54558
+ */
54559
+ var DishwasherStateSchema = _enum([
54560
+ "idle",
54561
+ "running",
54562
+ "paused",
54563
+ "finished",
54564
+ "error",
54565
+ "unavailable"
54566
+ ]);
54567
+ var DishwasherConsumableLevelSchema = _enum([
54568
+ "ok",
54569
+ "low",
54570
+ "empty"
54571
+ ]);
54572
+ object({
54573
+ state: DishwasherStateSchema,
54574
+ /** Active program id/name, or null when none selected / unknown. */
54575
+ program: string().nullable(),
54576
+ /** Program tokens the hardware accepts — drives the UI selector. */
54577
+ availablePrograms: array(string()),
54578
+ /** Minutes remaining on the active cycle, or null when not running. */
54579
+ remainingMinutes: number().int().nonnegative().nullable(),
54580
+ /** Cycle completion 0..100, or null when not applicable. */
54581
+ progressPercent: number().min(0).max(100).nullable(),
54582
+ /** True when the door is reported open. */
54583
+ doorOpen: boolean(),
54584
+ /** True when remote start is allowed (door closed, power on, etc.). */
54585
+ remoteStartAllowed: boolean(),
54586
+ /** Main power / switched-on state. */
54587
+ powerOn: boolean(),
54588
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
54589
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54590
+ halfLoad: boolean(),
54591
+ hygienePlus: boolean(),
54592
+ errorCode: number().nullable(),
54593
+ errorLabel: string().nullable(),
54594
+ lastFetchedAt: number()
54595
+ });
54596
+ DeviceType.Dishwasher, method(object({ deviceId: number().int().nonnegative() }), _void(), {
54597
+ kind: "mutation",
54598
+ auth: "protected"
54599
+ }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
54600
+ kind: "mutation",
54601
+ auth: "protected"
54602
+ }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
54603
+ kind: "mutation",
54604
+ auth: "protected"
54605
+ }), method(object({
54606
+ deviceId: number().int().nonnegative(),
54607
+ program: string().min(1)
54608
+ }), _void(), {
54609
+ kind: "mutation",
54610
+ auth: "protected"
54611
+ }), method(object({
54612
+ deviceId: number().int().nonnegative(),
54613
+ on: boolean()
54614
+ }), _void(), {
54615
+ kind: "mutation",
54616
+ auth: "protected"
54617
+ }), method(object({
54618
+ deviceId: number().int().nonnegative(),
54619
+ on: boolean()
54620
+ }), _void(), {
54621
+ kind: "mutation",
54622
+ auth: "protected"
54623
+ }), method(object({
54624
+ deviceId: number().int().nonnegative(),
54625
+ on: boolean()
54626
+ }), _void(), {
54627
+ kind: "mutation",
54628
+ auth: "protected"
54629
+ }), method(object({
54630
+ deviceId: number().int().nonnegative(),
54631
+ key: string().min(1),
54632
+ value: union([
54633
+ boolean(),
54634
+ string(),
54635
+ number()
54636
+ ])
54637
+ }), _void(), {
54638
+ kind: "mutation",
54639
+ auth: "protected"
54640
+ });
54529
54641
  object({
54530
54642
  /** Ms epoch of the last press. null = never observed since this provider started. */
54531
54643
  lastPressedAt: number().nullable(),
@@ -55091,6 +55203,13 @@ object({
55091
55203
  lastChangedAt: number()
55092
55204
  });
55093
55205
  DeviceType.Sensor;
55206
+ object({
55207
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
55208
+ position: number().min(0).max(100).nullable(),
55209
+ /** Ms epoch when the slice was last updated (push or poll). */
55210
+ lastFetchedAt: number()
55211
+ });
55212
+ DeviceType.Thermostat;
55094
55213
  object({
55095
55214
  /** Whether the humidifier is currently on. */
55096
55215
  on: boolean(),
@@ -62535,7 +62654,7 @@ var AccessoryKind = {
62535
62654
  PrivacyMask: DeviceRole.PrivacyMask
62536
62655
  };
62537
62656
  AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
62538
- 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;
62657
+ 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;
62539
62658
  new Set(Object.values(DeviceType));
62540
62659
  Object.freeze({
62541
62660
  "accessories.getStatus": {
@@ -64956,6 +65075,60 @@ Object.freeze({
64956
65075
  addonId: null,
64957
65076
  access: "view"
64958
65077
  },
65078
+ "dishwasher.getStatus": {
65079
+ capName: "dishwasher",
65080
+ capScope: "device",
65081
+ addonId: null,
65082
+ access: "view"
65083
+ },
65084
+ "dishwasher.pause": {
65085
+ capName: "dishwasher",
65086
+ capScope: "device",
65087
+ addonId: null,
65088
+ access: "create"
65089
+ },
65090
+ "dishwasher.setHalfLoad": {
65091
+ capName: "dishwasher",
65092
+ capScope: "device",
65093
+ addonId: null,
65094
+ access: "create"
65095
+ },
65096
+ "dishwasher.setHygienePlus": {
65097
+ capName: "dishwasher",
65098
+ capScope: "device",
65099
+ addonId: null,
65100
+ access: "create"
65101
+ },
65102
+ "dishwasher.setOption": {
65103
+ capName: "dishwasher",
65104
+ capScope: "device",
65105
+ addonId: null,
65106
+ access: "create"
65107
+ },
65108
+ "dishwasher.setPower": {
65109
+ capName: "dishwasher",
65110
+ capScope: "device",
65111
+ addonId: null,
65112
+ access: "create"
65113
+ },
65114
+ "dishwasher.setProgram": {
65115
+ capName: "dishwasher",
65116
+ capScope: "device",
65117
+ addonId: null,
65118
+ access: "create"
65119
+ },
65120
+ "dishwasher.start": {
65121
+ capName: "dishwasher",
65122
+ capScope: "device",
65123
+ addonId: null,
65124
+ access: "create"
65125
+ },
65126
+ "dishwasher.stop": {
65127
+ capName: "dishwasher",
65128
+ capScope: "device",
65129
+ addonId: null,
65130
+ access: "create"
65131
+ },
64959
65132
  "doorbell.getStatus": {
64960
65133
  capName: "doorbell",
64961
65134
  capScope: "device",
@@ -65166,6 +65339,12 @@ Object.freeze({
65166
65339
  addonId: null,
65167
65340
  access: "view"
65168
65341
  },
65342
+ "heatingValve.getStatus": {
65343
+ capName: "heating-valve",
65344
+ capScope: "device",
65345
+ addonId: null,
65346
+ access: "view"
65347
+ },
65169
65348
  "humidifier.getStatus": {
65170
65349
  capName: "humidifier",
65171
65350
  capScope: "device",
@@ -69306,6 +69485,12 @@ Object.freeze({
69306
69485
  addonId: null,
69307
69486
  access: "delete"
69308
69487
  },
69488
+ "storageAdmin.isAdoptedLegacyTable": {
69489
+ capName: "storage-admin",
69490
+ capScope: "system",
69491
+ addonId: null,
69492
+ access: "view"
69493
+ },
69309
69494
  "storageAdmin.listKinds": {
69310
69495
  capName: "storage-admin",
69311
69496
  capScope: "system",
@@ -69318,6 +69503,12 @@ Object.freeze({
69318
69503
  addonId: null,
69319
69504
  access: "view"
69320
69505
  },
69506
+ "storageAdmin.readLegacyCollection": {
69507
+ capName: "storage-admin",
69508
+ capScope: "system",
69509
+ addonId: null,
69510
+ access: "view"
69511
+ },
69321
69512
  "storageAdmin.readRecords": {
69322
69513
  capName: "storage-admin",
69323
69514
  capScope: "system",
@@ -70741,7 +70932,7 @@ Object.freeze({
70741
70932
  access: "create"
70742
70933
  }
70743
70934
  });
70744
- 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;
70935
+ 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;
70745
70936
  DeviceFeature.BatteryOperated;
70746
70937
  Object.freeze({
70747
70938
  "accessories.getStatus": [{
@@ -71565,6 +71756,51 @@ Object.freeze({
71565
71756
  form: "single",
71566
71757
  optional: false
71567
71758
  }],
71759
+ "dishwasher.getStatus": [{
71760
+ name: "deviceId",
71761
+ form: "single",
71762
+ optional: false
71763
+ }],
71764
+ "dishwasher.pause": [{
71765
+ name: "deviceId",
71766
+ form: "single",
71767
+ optional: false
71768
+ }],
71769
+ "dishwasher.setHalfLoad": [{
71770
+ name: "deviceId",
71771
+ form: "single",
71772
+ optional: false
71773
+ }],
71774
+ "dishwasher.setHygienePlus": [{
71775
+ name: "deviceId",
71776
+ form: "single",
71777
+ optional: false
71778
+ }],
71779
+ "dishwasher.setOption": [{
71780
+ name: "deviceId",
71781
+ form: "single",
71782
+ optional: false
71783
+ }],
71784
+ "dishwasher.setPower": [{
71785
+ name: "deviceId",
71786
+ form: "single",
71787
+ optional: false
71788
+ }],
71789
+ "dishwasher.setProgram": [{
71790
+ name: "deviceId",
71791
+ form: "single",
71792
+ optional: false
71793
+ }],
71794
+ "dishwasher.start": [{
71795
+ name: "deviceId",
71796
+ form: "single",
71797
+ optional: false
71798
+ }],
71799
+ "dishwasher.stop": [{
71800
+ name: "deviceId",
71801
+ form: "single",
71802
+ optional: false
71803
+ }],
71568
71804
  "doorbell.getStatus": [{
71569
71805
  name: "deviceId",
71570
71806
  form: "single",
@@ -71634,6 +71870,11 @@ Object.freeze({
71634
71870
  form: "single",
71635
71871
  optional: false
71636
71872
  }],
71873
+ "heatingValve.getStatus": [{
71874
+ name: "deviceId",
71875
+ form: "single",
71876
+ optional: false
71877
+ }],
71637
71878
  "humidifier.getStatus": [{
71638
71879
  name: "deviceId",
71639
71880
  form: "single",
@@ -76138,6 +76379,78 @@ var CAP_STATE_LEAVES = Object.freeze({
76138
76379
  "path": "online",
76139
76380
  "valueType": "boolean"
76140
76381
  }],
76382
+ "dishwasher": [
76383
+ {
76384
+ "path": "state",
76385
+ "valueType": "enum",
76386
+ "enumValues": [
76387
+ "idle",
76388
+ "running",
76389
+ "paused",
76390
+ "finished",
76391
+ "error",
76392
+ "unavailable"
76393
+ ]
76394
+ },
76395
+ {
76396
+ "path": "program",
76397
+ "valueType": "string"
76398
+ },
76399
+ {
76400
+ "path": "remainingMinutes",
76401
+ "valueType": "number"
76402
+ },
76403
+ {
76404
+ "path": "progressPercent",
76405
+ "valueType": "number"
76406
+ },
76407
+ {
76408
+ "path": "doorOpen",
76409
+ "valueType": "boolean"
76410
+ },
76411
+ {
76412
+ "path": "remoteStartAllowed",
76413
+ "valueType": "boolean"
76414
+ },
76415
+ {
76416
+ "path": "powerOn",
76417
+ "valueType": "boolean"
76418
+ },
76419
+ {
76420
+ "path": "saltLevel",
76421
+ "valueType": "enum",
76422
+ "enumValues": [
76423
+ "ok",
76424
+ "low",
76425
+ "empty"
76426
+ ]
76427
+ },
76428
+ {
76429
+ "path": "rinseAidLevel",
76430
+ "valueType": "enum",
76431
+ "enumValues": [
76432
+ "ok",
76433
+ "low",
76434
+ "empty"
76435
+ ]
76436
+ },
76437
+ {
76438
+ "path": "halfLoad",
76439
+ "valueType": "boolean"
76440
+ },
76441
+ {
76442
+ "path": "hygienePlus",
76443
+ "valueType": "boolean"
76444
+ },
76445
+ {
76446
+ "path": "errorCode",
76447
+ "valueType": "number"
76448
+ },
76449
+ {
76450
+ "path": "errorLabel",
76451
+ "valueType": "string"
76452
+ }
76453
+ ],
76141
76454
  "doorbell": [{
76142
76455
  "path": "lastPressedAt",
76143
76456
  "valueType": "number"
@@ -76228,6 +76541,10 @@ var CAP_STATE_LEAVES = Object.freeze({
76228
76541
  "path": "detected",
76229
76542
  "valueType": "boolean"
76230
76543
  }],
76544
+ "heating-valve": [{
76545
+ "path": "position",
76546
+ "valueType": "number"
76547
+ }],
76231
76548
  "humidifier": [
76232
76549
  {
76233
76550
  "path": "on",
@@ -1,6 +1,6 @@
1
1
  import { S as e, d as t, u as n, v as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C-pbjC7c.mjs";
2
2
  import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
3
- import { c as s, l as c } from "./responsive-xOj-SfJF.mjs";
3
+ import { c as s, l as c } from "./responsive-C0Yg2ySn.mjs";
4
4
  var l = c("chevron-down", [["path", {
5
5
  d: "m6 9 6 6 6-6",
6
6
  key: "qrunsl"
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-epKXdpkT.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-C1hKmoQ1.mjs";
2
2
  export { t as get, e as init };
@@ -1,6 +1,6 @@
1
1
  import { S as e, d as t, g as n, i as r, l as i, n as a, r as o, u as s, v as c, y as l } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C-pbjC7c.mjs";
2
2
  import "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
3
- import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Dfue3rir.mjs";
3
+ import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DJYNsHHl.mjs";
4
4
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5
5
  e();
6
6
  var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
@@ -1,6 +1,6 @@
1
1
  import { S as e, g as t, l as n, v as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C-pbjC7c.mjs";
2
2
  import { n as i } from "./ui-text-BitwQ50T.mjs";
3
- import { l as a } from "./responsive-xOj-SfJF.mjs";
3
+ import { l as a } from "./responsive-C0Yg2ySn.mjs";
4
4
  var o = a("camera", [["path", {
5
5
  d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
6
6
  key: "18u6gg"
@@ -1,4 +1,4 @@
1
- import { l as e } from "./responsive-xOj-SfJF.mjs";
1
+ import { l as e } from "./responsive-C0Yg2ySn.mjs";
2
2
  var t = e("eye-off", [
3
3
  ["path", {
4
4
  d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
@@ -1,4 +1,4 @@
1
- import { l as e } from "./responsive-xOj-SfJF.mjs";
1
+ import { l as e } from "./responsive-C0Yg2ySn.mjs";
2
2
  var t = e("trash-2", [
3
3
  ["path", {
4
4
  d: "M10 11v6",
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DkadILEV.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-2jdtfUGW.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-osd-manager",
3
- "version": "0.1.244",
3
+ "version": "0.1.246",
4
4
  "description": "Binds camera on-screen-display slots to live state and recognitions",
5
5
  "keywords": [
6
6
  "camstack",