homey-lib 2.35.3 → 2.35.4
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/lib/App/index.js +34 -39
- package/package.json +1 -1
- package/webpack/index.js +1 -1
package/lib/App/index.js
CHANGED
|
@@ -60,6 +60,18 @@ const BATTERY_CAPABILITIES = [
|
|
|
60
60
|
'alarm_battery',
|
|
61
61
|
];
|
|
62
62
|
|
|
63
|
+
const RESERVED_SETTING_PREFIXES = new Set([
|
|
64
|
+
'homey:',
|
|
65
|
+
'zw_',
|
|
66
|
+
'zb_',
|
|
67
|
+
'mtr_',
|
|
68
|
+
'thread_',
|
|
69
|
+
'zone_',
|
|
70
|
+
'energy_',
|
|
71
|
+
'satellite_mode_',
|
|
72
|
+
'homekit_',
|
|
73
|
+
])
|
|
74
|
+
|
|
63
75
|
class App {
|
|
64
76
|
|
|
65
77
|
constructor(path) {
|
|
@@ -355,47 +367,9 @@ class App {
|
|
|
355
367
|
}
|
|
356
368
|
}
|
|
357
369
|
|
|
358
|
-
|
|
359
|
-
const reservedPrefixes = new Set([
|
|
360
|
-
'homey:',
|
|
361
|
-
'zw_',
|
|
362
|
-
'zb_',
|
|
363
|
-
'mtr_',
|
|
364
|
-
'thread_',
|
|
365
|
-
'zone_',
|
|
366
|
-
'energy_',
|
|
367
|
-
'satellite_mode_',
|
|
368
|
-
'homekit_',
|
|
369
|
-
])
|
|
370
|
-
|
|
371
370
|
if (Array.isArray(driver.settings)) {
|
|
372
371
|
for (const setting of driver.settings) {
|
|
373
|
-
|
|
374
|
-
setting.type &&
|
|
375
|
-
setting.type === "group" &&
|
|
376
|
-
setting.children &&
|
|
377
|
-
Array.isArray(setting.children)
|
|
378
|
-
) {
|
|
379
|
-
for (const childSettings of setting.children) {
|
|
380
|
-
for (const prefix of reservedPrefixes) {
|
|
381
|
-
if (childSettings.id.startsWith(prefix)) {
|
|
382
|
-
console.warn(
|
|
383
|
-
`drivers.${driver.id} invalid setting id: ${setting.id}, cannot start with reserved prefix: ${prefix}`
|
|
384
|
-
);
|
|
385
|
-
// throw new Error(`drivers.${driver.id} invalid setting id: ${setting.id}, cannot start with reserved prefix: ${prefix}`);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
} else {
|
|
390
|
-
for (const prefix of reservedPrefixes) {
|
|
391
|
-
if (setting.id.startsWith(prefix)) {
|
|
392
|
-
console.warn(
|
|
393
|
-
`drivers.${driver.id} invalid setting id: ${setting.id}, cannot start with reserved prefix: ${prefix}`
|
|
394
|
-
);
|
|
395
|
-
// throw new Error(`drivers.${driver.id} invalid setting id: ${setting.id}, cannot start with reserved prefix: ${prefix}`);
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
}
|
|
372
|
+
this._checkPrivateSettingPrefixUse(setting, driver);
|
|
399
373
|
}
|
|
400
374
|
}
|
|
401
375
|
|
|
@@ -727,6 +701,27 @@ class App {
|
|
|
727
701
|
this.debug('Validated successfully');
|
|
728
702
|
}
|
|
729
703
|
|
|
704
|
+
_checkPrivateSettingPrefixUse(setting, driver) {
|
|
705
|
+
if (
|
|
706
|
+
setting.type &&
|
|
707
|
+
setting.type === "group" &&
|
|
708
|
+
setting.children &&
|
|
709
|
+
Array.isArray(setting.children)
|
|
710
|
+
) {
|
|
711
|
+
for (const childSetting of setting.children) {
|
|
712
|
+
this._checkPrivateSettingPrefixUse(childSetting, driver);
|
|
713
|
+
}
|
|
714
|
+
} else {
|
|
715
|
+
for (const prefix of RESERVED_SETTING_PREFIXES) {
|
|
716
|
+
if (setting.id.startsWith(prefix)) {
|
|
717
|
+
console.warn(
|
|
718
|
+
`drivers.${driver.id} invalid setting id: ${setting.id}, cannot start with reserved prefix: ${prefix}`
|
|
719
|
+
);
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
|
|
730
725
|
_checkZwaveForSetting(driver, setting) {
|
|
731
726
|
if (!driver || !setting || !setting.zwave) return;
|
|
732
727
|
if (typeof setting.zwave.index !== 'number' || typeof setting.zwave.size !== 'number') throw new Error(`Missing property in "zwave" at ${driver.id}, ${setting.id}`);
|