@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.
- package/dist/{MotionZonesSettings-Dx0QePDr.mjs → MotionZonesSettings-qtgrA0zs.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-Dpvj9Htf.mjs → PrivacyMaskSettings-CDjLk5w5.mjs} +4 -4
- package/dist/{SceneMonitorEditor-CInL6GVs.mjs → SceneMonitorEditor-BVdgxUfp.mjs} +3 -3
- package/dist/_stub.js +4684 -4053
- 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
- package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DJYNsHHl.mjs +26 -0
- package/dist/addon-osd-manager.css +1 -1
- package/dist/{hostInit-BZGn1YFH.mjs → hostInit-CGaNHoXk.mjs} +3 -3
- package/dist/index.js +344 -27
- package/dist/index.mjs +344 -27
- package/dist/{player-overlays-Ces1nEGQ.mjs → player-overlays-CWC5I8Gr.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-xOj-SfJF.mjs → responsive-C0Yg2ySn.mjs} +1 -1
- package/dist/{scene-monitor-copy-BZMgBFaF.mjs → scene-monitor-copy-CUvGeueA.mjs} +1 -1
- package/dist/{square-CAeV_Co2.mjs → square-DM5YvAWs.mjs} +1 -1
- package/dist/{trash-2-LqYIxrzA.mjs → trash-2-DTlq25ib.mjs} +1 -1
- 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
- package/package.json +1 -1
- 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-
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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
|
|
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-
|
|
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).
|
|
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-
|
|
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"
|
package/dist/remoteEntry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-
|
|
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-
|
|
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-
|
|
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"
|
|
@@ -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-
|
|
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
|
}
|