@camstack/addon-admin-ui 1.2.435 → 1.2.437
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/assets/{AddonAssetIcon-DwyvMm0j.js → AddonAssetIcon-C3Ltt0yX.js} +1 -1
- package/dist/assets/Addons-CkBmnKjV.js +4 -0
- package/dist/assets/{AdminPage-Dla2hgly.js → AdminPage-B7Z1OWO3.js} +1 -1
- package/dist/assets/{AdminSectionedPage-C6laWV2D.js → AdminSectionedPage-USP4OV_Y.js} +1 -1
- package/dist/assets/AiProfiles-QWD8PlMr.js +3 -0
- package/dist/assets/{BrokerForm-XPsm7VqN.js → BrokerForm-BxmxiIRw.js} +1 -1
- package/dist/assets/Build-CXn4HT3p.js +40 -0
- package/dist/assets/{Calendars-D9aQ6xfy.js → Calendars-DN9ln21d.js} +1 -1
- package/dist/assets/Cluster-tgWdVHND.js +1 -0
- package/dist/assets/ClusterStepModel-BizBdfIU.js +1 -0
- package/dist/assets/{CompositionEditor-Djw5jKF1.js → CompositionEditor-GiDCG4Aj.js} +1 -1
- package/dist/assets/CompositionEditorPage-wfYMLlvy.js +1 -0
- package/dist/assets/Data-CmT5GPx9.js +2 -0
- package/dist/assets/DeviceDetail-moNYFDGE.js +2 -0
- package/dist/assets/{DeviceDoActionFields-DLWA9-J9.js → DeviceDoActionFields-C1LG9nW0.js} +1 -1
- package/dist/assets/{Devices-C1k3PqRv.js → Devices-837Dt931.js} +1 -1
- package/dist/assets/{EmbedPlayerPage-Dz0lVYTn.js → EmbedPlayerPage-Crrh_6YT.js} +1 -1
- package/dist/assets/Identity-CNNb8wrU.js +1 -0
- package/dist/assets/IntegrationDetail-BER_0Zaz.js +1 -0
- package/dist/assets/IntegrationHub-BEu0isNR.js +1 -0
- package/dist/assets/Integrations-CuZucOyR.js +1 -0
- package/dist/assets/Integrations-Sjh868gF.js +1 -0
- package/dist/assets/Library-B4Nw3n28.js +1 -0
- package/dist/assets/Locations-B7dC2DyF.js +3 -0
- package/dist/assets/{Logs-C5wdcV2o.js → Logs-4XWMmfpD.js} +1 -1
- package/dist/assets/{MaskShapeCanvas-WPSz6MvT.js → MaskShapeCanvas-Bwqusno0.js} +1 -1
- package/dist/assets/{MotionZonesSettings-CxZucl1G.js → MotionZonesSettings-CZbGV_dv.js} +1 -1
- package/dist/assets/MyAccess-TAG05L5N.js +2 -0
- package/dist/assets/Network-ReY1qUoQ.js +1 -0
- package/dist/assets/{NodeAddonsSettingsPanel-CSyREPja.js → NodeAddonsSettingsPanel-DIKEaj5p.js} +1 -1
- package/dist/assets/Notifications-CqTEfaZ_.js +1 -0
- package/dist/assets/{PrivacyMaskSettings-DQ7Xe8cq.js → PrivacyMaskSettings-CTKUYU5o.js} +1 -1
- package/dist/assets/Recordings-EMQC9iqz.js +1 -0
- package/dist/assets/ScanNetworkModal-DK98Sjd4.js +1 -0
- package/dist/assets/SceneMonitorEditor-CG4pADlP.js +1 -0
- package/dist/assets/SessionsList-B1Ni2lo_.js +2 -0
- package/dist/assets/{Showroom-DZRq9gks.js → Showroom-BKLoHB4Z.js} +1 -1
- package/dist/assets/System-DEOHPmr3.js +1 -0
- package/dist/assets/{Terminal-Dt_ribAu.js → Terminal-dVu7TTAE.js} +3 -3
- package/dist/assets/{Viewer-DbBh61dj.js → Viewer-B9mEIKqz.js} +1 -1
- package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-CEvIRFB4.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-BX43JXOX.js} +1 -1
- package/dist/assets/{addon-icons-context-r49093mC.js → addon-icons-context-BjcmJD_J.js} +1 -1
- package/dist/assets/{archive-CgDcyTmT.js → archive-Bcg0gLgY.js} +1 -1
- package/dist/assets/{authed-media-CN55sP4S.js → authed-media-Cf82_ejX.js} +1 -1
- package/dist/assets/{bell-off-CdHPL528.js → bell-off-BnByNJjy.js} +1 -1
- package/dist/assets/{board-model-DXmUHcnO.js → board-model-D8m2YmcS.js} +1 -1
- package/dist/assets/{boxes-DJvrVSZy.js → boxes-V2c7jrxe.js} +1 -1
- package/dist/assets/circle-slash-B_FzZotu.js +1 -0
- package/dist/assets/client-CUuI767h.js +358 -0
- package/dist/assets/{cloud-upload-BkTrXwKr.js → cloud-upload-aziKggfg.js} +1 -1
- package/dist/assets/crop-DzZyuK_f.js +1 -0
- package/dist/assets/{device-integration-icon-CViPS882.js → device-integration-icon-3UfBj_i6.js} +1 -1
- package/dist/assets/device-picker-model-DJj6igTj.js +1 -0
- package/dist/assets/dist-DsAwO6-i.js +358 -0
- package/dist/assets/{dist-0P_zMe7Y.js → dist-t-gGaOd0.js} +1 -1
- package/dist/assets/{eraser-BCiOGK5K.js → eraser-CsYhDDbY.js} +1 -1
- package/dist/assets/{hard-drive-download-Df-zlQQG.js → hard-drive-download-CWqd_JKb.js} +1 -1
- package/dist/assets/{history-CWpQe6k9.js → history-DOf9zSG-.js} +1 -1
- package/dist/assets/{hostInit-Cnw529bc.js → hostInit-BCqJwB4Y.js} +1 -1
- package/dist/assets/i18n-RHwbGLC0.js +1 -0
- package/dist/assets/icons-BrAHwVJD.js +1 -0
- package/dist/assets/index-CeO2wVZi.js +4 -0
- package/dist/assets/index-M0Q7O5pF.css +2 -0
- package/dist/assets/{key-CZcpRn4A.js → key-D0VHbthb.js} +1 -1
- package/dist/assets/{key-round-BBPO5HDK.js → key-round-CasJ848Z.js} +1 -1
- package/dist/assets/{layers-DLOgDOBH.js → layers-CFb4zoU6.js} +1 -1
- package/dist/assets/{linked-devices-model-f_SAvOZs.js → linked-devices-model-DbkbB7KM.js} +1 -1
- package/dist/assets/{list-ordered-BaNkdvWk.js → list-ordered-B14sQnH2.js} +1 -1
- package/dist/assets/{location-owned-usage-BFxIuzRL.js → location-owned-usage-C21QUrwl.js} +1 -1
- package/dist/assets/{log-in-CL3_o1dD.js → log-in-UZRiT8Rq.js} +1 -1
- package/dist/assets/{memory-stick-CHkvUw7C.js → memory-stick-l6hXPEuG.js} +1 -1
- package/dist/assets/{message-square-plus-CIeWtcNn.js → message-square-plus-C3grB9GT.js} +1 -1
- package/dist/assets/{mf-entry-bootstrap-0-657dd3ff.js → mf-entry-bootstrap-0-5e54ea5d.js} +2 -2
- package/dist/assets/{mic-off-DS8OGDQW.js → mic-off-wol-RBiS.js} +1 -1
- package/dist/assets/{monitor-off-DC9Xug5Z.js → monitor-off-BUehkWHc.js} +1 -1
- package/dist/assets/{monitor-smartphone-CS_5BZqr.js → monitor-smartphone-CCDiXDn-.js} +1 -1
- package/dist/assets/mount-DJj6igTj.js +1 -0
- package/dist/assets/{notification-schedule-field-aMkV5LtX.js → notification-schedule-field-DiZ-TJBp.js} +1 -1
- package/dist/assets/player-overlays-Db_o1Zm2.js +1 -0
- package/dist/assets/{recycle-wY_-o-u0.js → recycle-BVxTT0po.js} +1 -1
- package/dist/assets/remoteEntry-DSZ__m0a.js +1 -0
- package/dist/assets/{scan-eye-A6IBODIs.js → scan-eye-C5EKCLMY.js} +1 -1
- package/dist/assets/{scissors-BzZpfzIa.js → scissors-DjP6Unuk.js} +1 -1
- package/dist/assets/{search-x-DqjVJK7_.js → search-x-gjRI7PKB.js} +1 -1
- package/dist/assets/{send-BDCQEx8-.js → send-CV6GWVOX.js} +1 -1
- package/dist/assets/{settings-2-BBgeb4tF.js → settings-2--KyzHb5N.js} +1 -1
- package/dist/assets/{speaker-Bw_8wVkA.js → speaker-CnmwOCLp.js} +1 -1
- package/dist/assets/src-CL0G8g2V.js +67 -0
- package/dist/assets/{timer-reset-CNH944ar.js → timer-reset-nORqwwje.js} +1 -1
- package/dist/assets/{ungroup-D4fdKtA6.js → ungroup-BQTGGbbf.js} +1 -1
- package/dist/assets/{unlink-BKDNubwr.js → unlink-669jprEf.js} +1 -1
- package/dist/assets/{usb-CU5DhEWn.js → usb-BT4hzhxS.js} +1 -1
- package/dist/assets/{use-scenes-feed-Bk660KRI.js → use-scenes-feed-DCExYbbk.js} +1 -1
- package/dist/assets/{use-stationary-objects-BVxOU14q.js → use-stationary-objects-DPwgtmOw.js} +1 -1
- package/dist/assets/useEventInvalidation-DJj6igTj.js +1 -0
- package/dist/assets/{useNodeUrlSelection-Bg0rHiIl.js → useNodeUrlSelection-ibxCoFYh.js} +1 -1
- package/dist/assets/user-round-NWWWc7PC.js +1 -0
- package/dist/assets/{user-x-DRzptq94.js → user-x-Drhirj9Y.js} +1 -1
- package/dist/assets/{video-CEzO-5-D.js → video-Dzs93Xor.js} +1 -1
- package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DzDhE-1_.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DVRZb8h3.js} +2 -2
- package/dist/index.html +11 -11
- package/dist/server/addon.js +269 -28
- package/package.json +1 -1
- package/dist/assets/Addons-N1hcMjwi.js +0 -4
- package/dist/assets/AiProfiles-CW5cr9nz.js +0 -3
- package/dist/assets/Build-Dg7gaee7.js +0 -40
- package/dist/assets/Cluster-NV3ZrTk7.js +0 -1
- package/dist/assets/ClusterStepModel-BUROhnKA.js +0 -1
- package/dist/assets/CompositionEditorPage-BNAhOgDE.js +0 -1
- package/dist/assets/Data-Bkq3Cr_h.js +0 -2
- package/dist/assets/DeviceDetail-BR_FSl-i.js +0 -2
- package/dist/assets/Identity-CJN1MNrJ.js +0 -1
- package/dist/assets/IntegrationDetail-DomJ4oV8.js +0 -1
- package/dist/assets/IntegrationHub-BTJM3uSD.js +0 -1
- package/dist/assets/Integrations-B3EhTwi-.js +0 -1
- package/dist/assets/Integrations-w1Zb-AYc.js +0 -1
- package/dist/assets/Library-BLUxFISX.js +0 -1
- package/dist/assets/Locations-5WWzr64x.js +0 -3
- package/dist/assets/MyAccess-2bAujGDI.js +0 -2
- package/dist/assets/Network-DFt5Vib8.js +0 -1
- package/dist/assets/Notifications-KG9O3i8q.js +0 -1
- package/dist/assets/Recordings-BbQTlUaN.js +0 -1
- package/dist/assets/ScanNetworkModal-Dw7_YiJk.js +0 -1
- package/dist/assets/SceneMonitorEditor-CQtUJ-Cg.js +0 -1
- package/dist/assets/SessionsList-BuiRHWv-.js +0 -2
- package/dist/assets/System-n6EeqhH2.js +0 -1
- package/dist/assets/circle-slash-BvkFL8F1.js +0 -1
- package/dist/assets/client-CVIfL49c.js +0 -358
- package/dist/assets/crop-DUVdBcFC.js +0 -1
- package/dist/assets/device-picker-model-mxypQ5EF.js +0 -1
- package/dist/assets/dist-U5_IP253.js +0 -358
- package/dist/assets/i18n-CmGpgquB.js +0 -1
- package/dist/assets/icons-aI8aLvw4.js +0 -1
- package/dist/assets/index-DKqvG7BE.css +0 -2
- package/dist/assets/index-DkNBNJNl.js +0 -4
- package/dist/assets/mount-mxypQ5EF.js +0 -1
- package/dist/assets/octagon-alert-Cdtac8l_.js +0 -1
- package/dist/assets/player-overlays-CZXV2ES3.js +0 -1
- package/dist/assets/remoteEntry-BFNP-i5_.js +0 -1
- package/dist/assets/src-DOs8Kg5s.js +0 -67
- package/dist/assets/useEventInvalidation-mxypQ5EF.js +0 -1
- package/dist/assets/user-round-CYlbEszq.js +0 -1
package/dist/server/addon.js
CHANGED
|
@@ -5406,7 +5406,7 @@ var ZodIssueCode = {
|
|
|
5406
5406
|
var ZodFirstPartyTypeKind;
|
|
5407
5407
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5408
5408
|
//#endregion
|
|
5409
|
-
//#region ../types/dist/sleep-
|
|
5409
|
+
//#region ../types/dist/sleep-BOjuyoPC.mjs
|
|
5410
5410
|
/**
|
|
5411
5411
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5412
5412
|
* window to float samples (D455).
|
|
@@ -5523,7 +5523,7 @@ function isKeychainStoredField(field) {
|
|
|
5523
5523
|
var SECRET_CLEAR = { $secretClear: true };
|
|
5524
5524
|
/** The `'***'` token D634 redaction writes for non-admins. */
|
|
5525
5525
|
var LEGACY_DEVICE_REDACTION = "***";
|
|
5526
|
-
function isRecord$
|
|
5526
|
+
function isRecord$5(value) {
|
|
5527
5527
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5528
5528
|
}
|
|
5529
5529
|
function makeSecretMarker(ref) {
|
|
@@ -5534,12 +5534,12 @@ function makeSecretMarker(ref) {
|
|
|
5534
5534
|
}
|
|
5535
5535
|
/** A stored marker: an object whose `$secret` is a non-empty string. */
|
|
5536
5536
|
function isSecretMarker(value) {
|
|
5537
|
-
if (!isRecord$
|
|
5537
|
+
if (!isRecord$5(value)) return false;
|
|
5538
5538
|
const ref = value["$secret"];
|
|
5539
5539
|
return typeof ref === "string" && ref.length > 0;
|
|
5540
5540
|
}
|
|
5541
5541
|
function isSecretClear(value) {
|
|
5542
|
-
return isRecord$
|
|
5542
|
+
return isRecord$5(value) && value["$secretClear"] === true;
|
|
5543
5543
|
}
|
|
5544
5544
|
/**
|
|
5545
5545
|
* The UI view of a stored secret field value: a marker becomes "set", inline
|
|
@@ -6149,7 +6149,7 @@ var KeychainWriteRefusedError = class extends Error {
|
|
|
6149
6149
|
}
|
|
6150
6150
|
};
|
|
6151
6151
|
var KEEP = { kind: "keep" };
|
|
6152
|
-
function isRecord$
|
|
6152
|
+
function isRecord$4(value) {
|
|
6153
6153
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6154
6154
|
}
|
|
6155
6155
|
function defaultMintId() {
|
|
@@ -6162,7 +6162,7 @@ function collectSecretMarkerRefs(value, out = []) {
|
|
|
6162
6162
|
return out;
|
|
6163
6163
|
}
|
|
6164
6164
|
if (Array.isArray(value)) for (const item of value) collectSecretMarkerRefs(item, out);
|
|
6165
|
-
else if (isRecord$
|
|
6165
|
+
else if (isRecord$4(value)) for (const child of Object.values(value)) collectSecretMarkerRefs(child, out);
|
|
6166
6166
|
return out;
|
|
6167
6167
|
}
|
|
6168
6168
|
async function storedValueEquals(secrets, marker, candidate) {
|
|
@@ -6217,7 +6217,7 @@ function rowId(row, idKey) {
|
|
|
6217
6217
|
return null;
|
|
6218
6218
|
}
|
|
6219
6219
|
async function writeArray(ctx, node, incoming, stored, fieldPath) {
|
|
6220
|
-
const storedRows = Array.isArray(stored) ? stored.filter(isRecord$
|
|
6220
|
+
const storedRows = Array.isArray(stored) ? stored.filter(isRecord$4) : [];
|
|
6221
6221
|
if (!Array.isArray(incoming)) {
|
|
6222
6222
|
ctx.deletes.push(...collectSecretMarkerRefs(storedRows));
|
|
6223
6223
|
return {
|
|
@@ -6233,7 +6233,7 @@ async function writeArray(ctx, node, incoming, stored, fieldPath) {
|
|
|
6233
6233
|
const kept = /* @__PURE__ */ new Set();
|
|
6234
6234
|
const rows = [];
|
|
6235
6235
|
for (const row of incoming) {
|
|
6236
|
-
if (!isRecord$
|
|
6236
|
+
if (!isRecord$4(row)) {
|
|
6237
6237
|
rows.push(row);
|
|
6238
6238
|
continue;
|
|
6239
6239
|
}
|
|
@@ -6258,7 +6258,7 @@ async function writeNode(ctx, node, incoming, stored, fieldPath) {
|
|
|
6258
6258
|
case "leaf": return writeLeaf(ctx, incoming, stored, fieldPath);
|
|
6259
6259
|
case "array": return writeArray(ctx, node, incoming, stored, fieldPath);
|
|
6260
6260
|
case "object": {
|
|
6261
|
-
if (!isRecord$
|
|
6261
|
+
if (!isRecord$4(incoming)) {
|
|
6262
6262
|
if (incoming === void 0) return KEEP;
|
|
6263
6263
|
ctx.deletes.push(...collectSecretMarkerRefs(stored));
|
|
6264
6264
|
return {
|
|
@@ -6266,7 +6266,7 @@ async function writeNode(ctx, node, incoming, stored, fieldPath) {
|
|
|
6266
6266
|
value: incoming
|
|
6267
6267
|
};
|
|
6268
6268
|
}
|
|
6269
|
-
const storedObj = isRecord$
|
|
6269
|
+
const storedObj = isRecord$4(stored) ? stored : {};
|
|
6270
6270
|
return {
|
|
6271
6271
|
kind: "value",
|
|
6272
6272
|
value: await writeMembers(ctx, node.children, incoming, storedObj, (m) => `${fieldPath}.${m}`)
|
|
@@ -6389,7 +6389,7 @@ async function resolveSecretMarkers(value, secrets, options = {}) {
|
|
|
6389
6389
|
value: items
|
|
6390
6390
|
};
|
|
6391
6391
|
}
|
|
6392
|
-
if (isRecord$
|
|
6392
|
+
if (isRecord$4(v)) {
|
|
6393
6393
|
const out = {};
|
|
6394
6394
|
for (const [k, child] of Object.entries(v)) {
|
|
6395
6395
|
const s = substitute(child);
|
|
@@ -6421,7 +6421,7 @@ var SecretOverwriteRefusedError = class extends Error {
|
|
|
6421
6421
|
this.name = "SecretOverwriteRefusedError";
|
|
6422
6422
|
}
|
|
6423
6423
|
};
|
|
6424
|
-
function isRecord$
|
|
6424
|
+
function isRecord$3(value) {
|
|
6425
6425
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6426
6426
|
}
|
|
6427
6427
|
function resolvedValue(pass, marker) {
|
|
@@ -6450,7 +6450,7 @@ function inArray(pass, incoming, stored) {
|
|
|
6450
6450
|
return incoming.map((item, index) => {
|
|
6451
6451
|
const twin = stored[index];
|
|
6452
6452
|
if (isSecretMarker(twin)) return typeof item === "string" && item === resolvedValue(pass, twin) ? twin : item;
|
|
6453
|
-
if (isRecord$
|
|
6453
|
+
if (isRecord$3(item) && isRecord$3(twin)) return inArrayRow(pass, item, twin);
|
|
6454
6454
|
if (Array.isArray(item) && Array.isArray(twin)) return inArray(pass, item, twin);
|
|
6455
6455
|
return item;
|
|
6456
6456
|
});
|
|
@@ -6461,7 +6461,7 @@ function inArrayRow(pass, incoming, stored) {
|
|
|
6461
6461
|
const twin = stored[key];
|
|
6462
6462
|
if (isSecretMarker(twin)) {
|
|
6463
6463
|
if (typeof value === "string" && value === resolvedValue(pass, twin)) out[key] = twin;
|
|
6464
|
-
} else if (isRecord$
|
|
6464
|
+
} else if (isRecord$3(value) && isRecord$3(twin)) out[key] = inArrayRow(pass, value, twin);
|
|
6465
6465
|
else if (Array.isArray(value) && Array.isArray(twin)) out[key] = inArray(pass, value, twin);
|
|
6466
6466
|
}
|
|
6467
6467
|
return out;
|
|
@@ -6469,7 +6469,7 @@ function inArrayRow(pass, incoming, stored) {
|
|
|
6469
6469
|
async function walk(pass, incoming, stored) {
|
|
6470
6470
|
if (isSecretMarker(stored)) return atMarker(pass, incoming, stored);
|
|
6471
6471
|
if (Array.isArray(incoming) && Array.isArray(stored)) return inArray(pass, incoming, stored);
|
|
6472
|
-
if (!isRecord$
|
|
6472
|
+
if (!isRecord$3(incoming) || !isRecord$3(stored)) return incoming;
|
|
6473
6473
|
const out = { ...incoming };
|
|
6474
6474
|
for (const [key, value] of Object.entries(incoming)) out[key] = await walk(pass, value, stored[key]);
|
|
6475
6475
|
return out;
|
|
@@ -6500,7 +6500,7 @@ async function restoreUnchangedSecrets(input) {
|
|
|
6500
6500
|
function isJsonEqual(a, b) {
|
|
6501
6501
|
if (Object.is(a, b)) return true;
|
|
6502
6502
|
if (Array.isArray(a)) return Array.isArray(b) && a.length === b.length && a.every((v, i) => isJsonEqual(v, b[i]));
|
|
6503
|
-
if (isRecord$
|
|
6503
|
+
if (isRecord$3(a) && isRecord$3(b)) {
|
|
6504
6504
|
const keys = Object.keys(a);
|
|
6505
6505
|
if (keys.length !== Object.keys(b).length) return false;
|
|
6506
6506
|
return keys.every((k) => Object.prototype.hasOwnProperty.call(b, k) && isJsonEqual(a[k], b[k]));
|
|
@@ -6524,7 +6524,7 @@ function markerKeysOf(blob, owner) {
|
|
|
6524
6524
|
}
|
|
6525
6525
|
function nodeFromStored(value, owner) {
|
|
6526
6526
|
if (isSecretMarker(value)) return isSecretRefOwnedBy(value.$secret, owner) ? { kind: "leaf" } : null;
|
|
6527
|
-
if (!isRecord$
|
|
6527
|
+
if (!isRecord$3(value)) return null;
|
|
6528
6528
|
const children = /* @__PURE__ */ new Map();
|
|
6529
6529
|
for (const [key, child] of Object.entries(value)) {
|
|
6530
6530
|
const node = nodeFromStored(child, owner);
|
|
@@ -7312,7 +7312,7 @@ var BaseAddon = class {
|
|
|
7312
7312
|
if (!ctx) return;
|
|
7313
7313
|
const addonId = ctx.id;
|
|
7314
7314
|
setImmediate(() => {
|
|
7315
|
-
ctx.api.addons
|
|
7315
|
+
ctx.api.addons.restartAddon.mutate({ addonId }).then(() => {
|
|
7316
7316
|
ctx.logger.info("addon auto-restart triggered by restart-required setting change", { meta: { changedFields: patchKeys.filter((k) => restartKeys.has(k)) } });
|
|
7317
7317
|
}).catch((err) => {
|
|
7318
7318
|
ctx.logger.error("addon auto-restart failed", { meta: { error: err instanceof Error ? err.message : String(err) } });
|
|
@@ -8372,7 +8372,7 @@ object({
|
|
|
8372
8372
|
params: record(string(), union([string(), number()])).optional()
|
|
8373
8373
|
});
|
|
8374
8374
|
//#endregion
|
|
8375
|
-
//#region ../types/dist/err-msg
|
|
8375
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8376
8376
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8377
8377
|
DeviceType["Camera"] = "camera";
|
|
8378
8378
|
DeviceType["Hub"] = "hub";
|
|
@@ -8464,6 +8464,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8464
8464
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8465
8465
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8466
8466
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8467
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8468
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8469
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8470
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8467
8471
|
return DeviceType;
|
|
8468
8472
|
}({});
|
|
8469
8473
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -8711,7 +8715,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8711
8715
|
return DeviceRole;
|
|
8712
8716
|
}({});
|
|
8713
8717
|
//#endregion
|
|
8714
|
-
//#region ../types/dist/composition-
|
|
8718
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
8715
8719
|
/**
|
|
8716
8720
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8717
8721
|
*
|
|
@@ -13097,8 +13101,13 @@ var AlertSeveritySchema = _enum([
|
|
|
13097
13101
|
"info",
|
|
13098
13102
|
"success",
|
|
13099
13103
|
"warning",
|
|
13100
|
-
"error"
|
|
13104
|
+
"error",
|
|
13105
|
+
"critical"
|
|
13101
13106
|
]);
|
|
13107
|
+
var AlertActionSchema = object({
|
|
13108
|
+
label: string(),
|
|
13109
|
+
href: string().optional()
|
|
13110
|
+
});
|
|
13102
13111
|
var AlertStatusSchema = _enum([
|
|
13103
13112
|
"active",
|
|
13104
13113
|
"in-progress",
|
|
@@ -13116,6 +13125,7 @@ var AlertSchema = object({
|
|
|
13116
13125
|
severity: AlertSeveritySchema,
|
|
13117
13126
|
title: string(),
|
|
13118
13127
|
message: string(),
|
|
13128
|
+
action: AlertActionSchema.optional(),
|
|
13119
13129
|
status: AlertStatusSchema,
|
|
13120
13130
|
progress: number().optional(),
|
|
13121
13131
|
read: boolean(),
|
|
@@ -16340,13 +16350,23 @@ method(object({ ownerPrefix: string().min(1).optional() }), object({ tables: arr
|
|
|
16340
16350
|
}), RecordQueryResultSchema, { auth: "admin" }), method(object({
|
|
16341
16351
|
owner: string().min(1),
|
|
16342
16352
|
kind: RecordKindNameSchema,
|
|
16343
|
-
records: array(RecordInputSchema).
|
|
16353
|
+
records: array(RecordInputSchema).max(RECORD_BATCH_MAX),
|
|
16344
16354
|
/** The LAST batch: the copy is complete, the boot guard stops asking. */
|
|
16345
16355
|
complete: boolean().optional()
|
|
16346
|
-
}), object({ adopted: number().int() }), {
|
|
16356
|
+
}).refine((input) => input.records.length > 0 || input.complete === true, { message: "records must be non-empty unless complete is true" }), object({ adopted: number().int() }), {
|
|
16347
16357
|
kind: "mutation",
|
|
16348
16358
|
auth: "admin"
|
|
16349
|
-
})
|
|
16359
|
+
}), method(object({
|
|
16360
|
+
collection: string().min(1),
|
|
16361
|
+
cursor: string().optional(),
|
|
16362
|
+
limit: number().int().min(1).max(1e3).optional()
|
|
16363
|
+
}), object({
|
|
16364
|
+
rows: array(object({
|
|
16365
|
+
id: string(),
|
|
16366
|
+
data: record(string(), unknown())
|
|
16367
|
+
})),
|
|
16368
|
+
nextCursor: string().nullable()
|
|
16369
|
+
}), { auth: "admin" }), method(object({ collection: string().min(1) }), object({ adopted: boolean() }), { auth: "admin" });
|
|
16350
16370
|
/**
|
|
16351
16371
|
* record-entries - the ONE admin surface for every list of user-created entries
|
|
16352
16372
|
* (D881): notification targets, brokers, LLM profiles, anything an addon
|
|
@@ -53040,7 +53060,7 @@ var BatteryStatusSchema = object({
|
|
|
53040
53060
|
*/
|
|
53041
53061
|
binary: boolean().optional()
|
|
53042
53062
|
});
|
|
53043
|
-
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
|
|
53063
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
|
|
53044
53064
|
deviceId: number(),
|
|
53045
53065
|
/** Bound on the wait. Sensible range 3000–10000ms. */
|
|
53046
53066
|
timeoutMs: number().int().min(500).max(3e4).default(8e3)
|
|
@@ -53916,6 +53936,98 @@ object({
|
|
|
53916
53936
|
deviceId: number(),
|
|
53917
53937
|
status: DeviceStatusSchema
|
|
53918
53938
|
});
|
|
53939
|
+
/**
|
|
53940
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
53941
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
53942
|
+
*
|
|
53943
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
53944
|
+
* by any integration that exposes the same program / option surface.
|
|
53945
|
+
*
|
|
53946
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
53947
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
53948
|
+
*/
|
|
53949
|
+
var DishwasherStateSchema = _enum([
|
|
53950
|
+
"idle",
|
|
53951
|
+
"running",
|
|
53952
|
+
"paused",
|
|
53953
|
+
"finished",
|
|
53954
|
+
"error",
|
|
53955
|
+
"unavailable"
|
|
53956
|
+
]);
|
|
53957
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
53958
|
+
"ok",
|
|
53959
|
+
"low",
|
|
53960
|
+
"empty"
|
|
53961
|
+
]);
|
|
53962
|
+
object({
|
|
53963
|
+
state: DishwasherStateSchema,
|
|
53964
|
+
/** Active program id/name, or null when none selected / unknown. */
|
|
53965
|
+
program: string().nullable(),
|
|
53966
|
+
/** Program tokens the hardware accepts — drives the UI selector. */
|
|
53967
|
+
availablePrograms: array(string()),
|
|
53968
|
+
/** Minutes remaining on the active cycle, or null when not running. */
|
|
53969
|
+
remainingMinutes: number().int().nonnegative().nullable(),
|
|
53970
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
53971
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
53972
|
+
/** True when the door is reported open. */
|
|
53973
|
+
doorOpen: boolean(),
|
|
53974
|
+
/** True when remote start is allowed (door closed, power on, etc.). */
|
|
53975
|
+
remoteStartAllowed: boolean(),
|
|
53976
|
+
/** Main power / switched-on state. */
|
|
53977
|
+
powerOn: boolean(),
|
|
53978
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
53979
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
53980
|
+
halfLoad: boolean(),
|
|
53981
|
+
hygienePlus: boolean(),
|
|
53982
|
+
errorCode: number().nullable(),
|
|
53983
|
+
errorLabel: string().nullable(),
|
|
53984
|
+
lastFetchedAt: number()
|
|
53985
|
+
});
|
|
53986
|
+
DeviceType.Dishwasher, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
53987
|
+
kind: "mutation",
|
|
53988
|
+
auth: "protected"
|
|
53989
|
+
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
53990
|
+
kind: "mutation",
|
|
53991
|
+
auth: "protected"
|
|
53992
|
+
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
53993
|
+
kind: "mutation",
|
|
53994
|
+
auth: "protected"
|
|
53995
|
+
}), method(object({
|
|
53996
|
+
deviceId: number().int().nonnegative(),
|
|
53997
|
+
program: string().min(1)
|
|
53998
|
+
}), _void(), {
|
|
53999
|
+
kind: "mutation",
|
|
54000
|
+
auth: "protected"
|
|
54001
|
+
}), method(object({
|
|
54002
|
+
deviceId: number().int().nonnegative(),
|
|
54003
|
+
on: boolean()
|
|
54004
|
+
}), _void(), {
|
|
54005
|
+
kind: "mutation",
|
|
54006
|
+
auth: "protected"
|
|
54007
|
+
}), method(object({
|
|
54008
|
+
deviceId: number().int().nonnegative(),
|
|
54009
|
+
on: boolean()
|
|
54010
|
+
}), _void(), {
|
|
54011
|
+
kind: "mutation",
|
|
54012
|
+
auth: "protected"
|
|
54013
|
+
}), method(object({
|
|
54014
|
+
deviceId: number().int().nonnegative(),
|
|
54015
|
+
on: boolean()
|
|
54016
|
+
}), _void(), {
|
|
54017
|
+
kind: "mutation",
|
|
54018
|
+
auth: "protected"
|
|
54019
|
+
}), method(object({
|
|
54020
|
+
deviceId: number().int().nonnegative(),
|
|
54021
|
+
key: string().min(1),
|
|
54022
|
+
value: union([
|
|
54023
|
+
boolean(),
|
|
54024
|
+
string(),
|
|
54025
|
+
number()
|
|
54026
|
+
])
|
|
54027
|
+
}), _void(), {
|
|
54028
|
+
kind: "mutation",
|
|
54029
|
+
auth: "protected"
|
|
54030
|
+
});
|
|
53919
54031
|
object({
|
|
53920
54032
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
53921
54033
|
lastPressedAt: number().nullable(),
|
|
@@ -54481,6 +54593,13 @@ object({
|
|
|
54481
54593
|
lastChangedAt: number()
|
|
54482
54594
|
});
|
|
54483
54595
|
DeviceType.Sensor;
|
|
54596
|
+
object({
|
|
54597
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
54598
|
+
position: number().min(0).max(100).nullable(),
|
|
54599
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
54600
|
+
lastFetchedAt: number()
|
|
54601
|
+
});
|
|
54602
|
+
DeviceType.Thermostat;
|
|
54484
54603
|
object({
|
|
54485
54604
|
/** Whether the humidifier is currently on. */
|
|
54486
54605
|
on: boolean(),
|
|
@@ -61547,7 +61666,7 @@ var AccessoryKind = {
|
|
|
61547
61666
|
PrivacyMask: DeviceRole.PrivacyMask
|
|
61548
61667
|
};
|
|
61549
61668
|
AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
|
|
61550
|
-
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;
|
|
61669
|
+
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;
|
|
61551
61670
|
new Set(Object.values(DeviceType));
|
|
61552
61671
|
Object.freeze({
|
|
61553
61672
|
"accessories.getStatus": {
|
|
@@ -63968,6 +64087,60 @@ Object.freeze({
|
|
|
63968
64087
|
addonId: null,
|
|
63969
64088
|
access: "view"
|
|
63970
64089
|
},
|
|
64090
|
+
"dishwasher.getStatus": {
|
|
64091
|
+
capName: "dishwasher",
|
|
64092
|
+
capScope: "device",
|
|
64093
|
+
addonId: null,
|
|
64094
|
+
access: "view"
|
|
64095
|
+
},
|
|
64096
|
+
"dishwasher.pause": {
|
|
64097
|
+
capName: "dishwasher",
|
|
64098
|
+
capScope: "device",
|
|
64099
|
+
addonId: null,
|
|
64100
|
+
access: "create"
|
|
64101
|
+
},
|
|
64102
|
+
"dishwasher.setHalfLoad": {
|
|
64103
|
+
capName: "dishwasher",
|
|
64104
|
+
capScope: "device",
|
|
64105
|
+
addonId: null,
|
|
64106
|
+
access: "create"
|
|
64107
|
+
},
|
|
64108
|
+
"dishwasher.setHygienePlus": {
|
|
64109
|
+
capName: "dishwasher",
|
|
64110
|
+
capScope: "device",
|
|
64111
|
+
addonId: null,
|
|
64112
|
+
access: "create"
|
|
64113
|
+
},
|
|
64114
|
+
"dishwasher.setOption": {
|
|
64115
|
+
capName: "dishwasher",
|
|
64116
|
+
capScope: "device",
|
|
64117
|
+
addonId: null,
|
|
64118
|
+
access: "create"
|
|
64119
|
+
},
|
|
64120
|
+
"dishwasher.setPower": {
|
|
64121
|
+
capName: "dishwasher",
|
|
64122
|
+
capScope: "device",
|
|
64123
|
+
addonId: null,
|
|
64124
|
+
access: "create"
|
|
64125
|
+
},
|
|
64126
|
+
"dishwasher.setProgram": {
|
|
64127
|
+
capName: "dishwasher",
|
|
64128
|
+
capScope: "device",
|
|
64129
|
+
addonId: null,
|
|
64130
|
+
access: "create"
|
|
64131
|
+
},
|
|
64132
|
+
"dishwasher.start": {
|
|
64133
|
+
capName: "dishwasher",
|
|
64134
|
+
capScope: "device",
|
|
64135
|
+
addonId: null,
|
|
64136
|
+
access: "create"
|
|
64137
|
+
},
|
|
64138
|
+
"dishwasher.stop": {
|
|
64139
|
+
capName: "dishwasher",
|
|
64140
|
+
capScope: "device",
|
|
64141
|
+
addonId: null,
|
|
64142
|
+
access: "create"
|
|
64143
|
+
},
|
|
63971
64144
|
"doorbell.getStatus": {
|
|
63972
64145
|
capName: "doorbell",
|
|
63973
64146
|
capScope: "device",
|
|
@@ -64178,6 +64351,12 @@ Object.freeze({
|
|
|
64178
64351
|
addonId: null,
|
|
64179
64352
|
access: "view"
|
|
64180
64353
|
},
|
|
64354
|
+
"heatingValve.getStatus": {
|
|
64355
|
+
capName: "heating-valve",
|
|
64356
|
+
capScope: "device",
|
|
64357
|
+
addonId: null,
|
|
64358
|
+
access: "view"
|
|
64359
|
+
},
|
|
64181
64360
|
"humidifier.getStatus": {
|
|
64182
64361
|
capName: "humidifier",
|
|
64183
64362
|
capScope: "device",
|
|
@@ -68318,6 +68497,12 @@ Object.freeze({
|
|
|
68318
68497
|
addonId: null,
|
|
68319
68498
|
access: "delete"
|
|
68320
68499
|
},
|
|
68500
|
+
"storageAdmin.isAdoptedLegacyTable": {
|
|
68501
|
+
capName: "storage-admin",
|
|
68502
|
+
capScope: "system",
|
|
68503
|
+
addonId: null,
|
|
68504
|
+
access: "view"
|
|
68505
|
+
},
|
|
68321
68506
|
"storageAdmin.listKinds": {
|
|
68322
68507
|
capName: "storage-admin",
|
|
68323
68508
|
capScope: "system",
|
|
@@ -68330,6 +68515,12 @@ Object.freeze({
|
|
|
68330
68515
|
addonId: null,
|
|
68331
68516
|
access: "view"
|
|
68332
68517
|
},
|
|
68518
|
+
"storageAdmin.readLegacyCollection": {
|
|
68519
|
+
capName: "storage-admin",
|
|
68520
|
+
capScope: "system",
|
|
68521
|
+
addonId: null,
|
|
68522
|
+
access: "view"
|
|
68523
|
+
},
|
|
68333
68524
|
"storageAdmin.readRecords": {
|
|
68334
68525
|
capName: "storage-admin",
|
|
68335
68526
|
capScope: "system",
|
|
@@ -69753,7 +69944,7 @@ Object.freeze({
|
|
|
69753
69944
|
access: "create"
|
|
69754
69945
|
}
|
|
69755
69946
|
});
|
|
69756
|
-
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;
|
|
69947
|
+
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;
|
|
69757
69948
|
DeviceFeature.BatteryOperated;
|
|
69758
69949
|
Object.freeze({
|
|
69759
69950
|
"accessories.getStatus": [{
|
|
@@ -70577,6 +70768,51 @@ Object.freeze({
|
|
|
70577
70768
|
form: "single",
|
|
70578
70769
|
optional: false
|
|
70579
70770
|
}],
|
|
70771
|
+
"dishwasher.getStatus": [{
|
|
70772
|
+
name: "deviceId",
|
|
70773
|
+
form: "single",
|
|
70774
|
+
optional: false
|
|
70775
|
+
}],
|
|
70776
|
+
"dishwasher.pause": [{
|
|
70777
|
+
name: "deviceId",
|
|
70778
|
+
form: "single",
|
|
70779
|
+
optional: false
|
|
70780
|
+
}],
|
|
70781
|
+
"dishwasher.setHalfLoad": [{
|
|
70782
|
+
name: "deviceId",
|
|
70783
|
+
form: "single",
|
|
70784
|
+
optional: false
|
|
70785
|
+
}],
|
|
70786
|
+
"dishwasher.setHygienePlus": [{
|
|
70787
|
+
name: "deviceId",
|
|
70788
|
+
form: "single",
|
|
70789
|
+
optional: false
|
|
70790
|
+
}],
|
|
70791
|
+
"dishwasher.setOption": [{
|
|
70792
|
+
name: "deviceId",
|
|
70793
|
+
form: "single",
|
|
70794
|
+
optional: false
|
|
70795
|
+
}],
|
|
70796
|
+
"dishwasher.setPower": [{
|
|
70797
|
+
name: "deviceId",
|
|
70798
|
+
form: "single",
|
|
70799
|
+
optional: false
|
|
70800
|
+
}],
|
|
70801
|
+
"dishwasher.setProgram": [{
|
|
70802
|
+
name: "deviceId",
|
|
70803
|
+
form: "single",
|
|
70804
|
+
optional: false
|
|
70805
|
+
}],
|
|
70806
|
+
"dishwasher.start": [{
|
|
70807
|
+
name: "deviceId",
|
|
70808
|
+
form: "single",
|
|
70809
|
+
optional: false
|
|
70810
|
+
}],
|
|
70811
|
+
"dishwasher.stop": [{
|
|
70812
|
+
name: "deviceId",
|
|
70813
|
+
form: "single",
|
|
70814
|
+
optional: false
|
|
70815
|
+
}],
|
|
70580
70816
|
"doorbell.getStatus": [{
|
|
70581
70817
|
name: "deviceId",
|
|
70582
70818
|
form: "single",
|
|
@@ -70646,6 +70882,11 @@ Object.freeze({
|
|
|
70646
70882
|
form: "single",
|
|
70647
70883
|
optional: false
|
|
70648
70884
|
}],
|
|
70885
|
+
"heatingValve.getStatus": [{
|
|
70886
|
+
name: "deviceId",
|
|
70887
|
+
form: "single",
|
|
70888
|
+
optional: false
|
|
70889
|
+
}],
|
|
70649
70890
|
"humidifier.getStatus": [{
|
|
70650
70891
|
name: "deviceId",
|
|
70651
70892
|
form: "single",
|
|
@@ -73556,7 +73797,7 @@ var AdminUIAddon = class extends BaseAddon {
|
|
|
73556
73797
|
capability: adminUiCapability,
|
|
73557
73798
|
provider: {
|
|
73558
73799
|
getStaticDir: async () => ({ staticDir: resolveAdminUiDistDir() }),
|
|
73559
|
-
getVersion: async () => ({ version: "1.2.
|
|
73800
|
+
getVersion: async () => ({ version: "1.2.437" })
|
|
73560
73801
|
}
|
|
73561
73802
|
}];
|
|
73562
73803
|
}
|