homey-lib 2.50.1 → 2.50.3

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 (45) hide show
  1. package/assets/capability/capabilities/alarm_bin_full.json +3 -3
  2. package/assets/capability/capabilities/alarm_bin_missing.json +4 -4
  3. package/assets/capability/capabilities/alarm_cleaning_pad_missing.json +5 -5
  4. package/assets/capability/capabilities/alarm_co.json +1 -1
  5. package/assets/capability/capabilities/alarm_cold.json +4 -4
  6. package/assets/capability/capabilities/alarm_connectivity.json +4 -4
  7. package/assets/capability/capabilities/alarm_contact.json +2 -2
  8. package/assets/capability/capabilities/alarm_door_fault.json +4 -4
  9. package/assets/capability/capabilities/alarm_fire.json +2 -2
  10. package/assets/capability/capabilities/alarm_generic.json +1 -1
  11. package/assets/capability/capabilities/alarm_light.json +1 -1
  12. package/assets/capability/capabilities/alarm_lost.json +6 -6
  13. package/assets/capability/capabilities/alarm_moisture.json +1 -1
  14. package/assets/capability/capabilities/alarm_motion.json +1 -1
  15. package/assets/capability/capabilities/alarm_night.json +3 -3
  16. package/assets/capability/capabilities/alarm_occupancy.json +3 -3
  17. package/assets/capability/capabilities/alarm_open.json +3 -3
  18. package/assets/capability/capabilities/alarm_pm01.json +4 -4
  19. package/assets/capability/capabilities/alarm_pm1.json +1 -1
  20. package/assets/capability/capabilities/alarm_pm10.json +1 -1
  21. package/assets/capability/capabilities/alarm_pm25.json +4 -4
  22. package/assets/capability/capabilities/alarm_power.json +4 -4
  23. package/assets/capability/capabilities/alarm_presence.json +1 -1
  24. package/assets/capability/capabilities/alarm_problem.json +2 -2
  25. package/assets/capability/capabilities/alarm_pump_device.json +7 -7
  26. package/assets/capability/capabilities/alarm_pump_supply.json +4 -4
  27. package/assets/capability/capabilities/alarm_rain.json +1 -1
  28. package/assets/capability/capabilities/alarm_running.json +6 -6
  29. package/assets/capability/capabilities/alarm_safety.json +2 -2
  30. package/assets/capability/capabilities/alarm_stuck.json +4 -4
  31. package/assets/capability/capabilities/alarm_tamper.json +3 -3
  32. package/assets/capability/capabilities/alarm_tank_empty.json +3 -3
  33. package/assets/capability/capabilities/alarm_tank_missing.json +6 -6
  34. package/assets/capability/capabilities/alarm_tank_open.json +2 -2
  35. package/assets/capability/capabilities/alarm_vibration.json +2 -2
  36. package/assets/capability/capabilities/alarm_water.json +2 -2
  37. package/assets/capability/capabilities/level_aqi.json +4 -4
  38. package/assets/capability/capabilities/target_power_mode.json +18 -18
  39. package/lib/App/index.js +22 -8
  40. package/lib/Util/index.js +5 -4
  41. package/package.json +1 -1
  42. package/types/lib/App/index.d.ts.map +1 -1
  43. package/types/lib/Util/index.d.ts +2 -1
  44. package/types/lib/Util/index.d.ts.map +1 -1
  45. package/webpack/index.js +1 -1
@@ -26,8 +26,8 @@
26
26
  "es": "Agua",
27
27
  "da": "Vand",
28
28
  "ru": "Вода",
29
- "pl": "Zalanie wodą",
30
- "ko": "누수",
29
+ "pl": "Woda",
30
+ "ko": "",
31
31
  "ar": "المياه"
32
32
  },
33
33
  "desc": {
@@ -54,12 +54,12 @@
54
54
  "title": {
55
55
  "en": "Fair",
56
56
  "da": "Rimelig",
57
- "es": "Aceptable",
58
- "fr": "Acceptable",
57
+ "es": "Razonable",
58
+ "fr": "Moyen",
59
59
  "it": "Accettabile",
60
60
  "ko": "적당",
61
61
  "nl": "Redelijk",
62
- "no": "Rimelig",
62
+ "no": "God",
63
63
  "pl": "Zadowalający",
64
64
  "ru": "Удовлетворительный",
65
65
  "sv": "Rimlig",
@@ -73,7 +73,7 @@
73
73
  "en": "Moderate",
74
74
  "da": "Moderat",
75
75
  "es": "Moderado",
76
- "fr": "Modéré",
76
+ "fr": "Dégradé",
77
77
  "it": "Moderato",
78
78
  "ko": "보통",
79
79
  "nl": "Matig",
@@ -95,17 +95,17 @@
95
95
  "hint": {
96
96
  "en": "\"Homey\" means Homey controls the device’s target power. Other modes are determined by the device.",
97
97
  "nl": "'Homey' betekent dat Homey het doelvermogen van het apparaat regelt. Andere modi worden bepaald door het apparaat.",
98
- "de": "„Homey“ bedeutet, dass Homey die Zielleistung des Geräts steuert. Andere Modi werden vom Gerät bestimmt.",
99
- "fr": "« Homey » signifie que Homey contrôle la puissance cible de lappareil. Les autres modes sont déterminés par lappareil.",
98
+ "de": "„Homey“ bedeutet, dass Homey die Sollleistung des Geräts steuert. Andere Modi werden vom Gerät selbst festgelegt.",
99
+ "fr": "« Homey » signifie que Homey contrôle la puissance cible de l'appareil. Les autres modes sont déterminés par l'appareil.",
100
100
  "it": "\"Homey\" significa che Homey controlla la potenza target del dispositivo. Le altre modalità sono determinate dal dispositivo.",
101
101
  "sv": "\"Homey\" innebär att Homey styr enhetens måleffekt. Andra lägen bestäms av enheten.",
102
- "no": "«Homey» betyr at Homey styrer ønsket effekt for enheten. Andre modi bestemmes av enheten.",
102
+ "no": "«Homey» betyr at Homey styrer ønsket effekt for enheten. Andre moduser bestemmes av enheten.",
103
103
  "es": "\"Homey\" significa que Homey controla la potencia objetivo del dispositivo. Los demás modos los determina el dispositivo.",
104
104
  "da": "\"Homey\" betyder, at Homey styrer enhedens måleffekt. Andre tilstande bestemmes af enheden.",
105
105
  "ru": "Режим «Homey» означает, что Homey управляет целевой мощностью устройства. Другие режимы определяются устройством.",
106
106
  "pl": "„Homey“ oznacza, że Homey steruje mocą docelową urządzenia. Pozostałe tryby są określane przez urządzenie.",
107
- "ko": "\"Homey\"는 Homey가 제품의 충전전력 제한을 제어한다는 의미예요. 다른 모드는 제품에 의해 결정돼요.",
108
- "ar": "\"Homey\" يعني أن Homey يتحكم في الطاقة المستهدفة للجهاز. الأوضاع الأخرى يحددها الجهاز."
107
+ "ko": "\"Homey\"는 Homey가 제품의 충전전력 제한을 제어한다는 의미예요. 다른 모드는 제품에 의해 결정됩니다.",
108
+ "ar": "\"Homey\" يعني أن Homey يتحكم في الطاقة المستهدفة للجهاز. والأوضاع الأخرى يحددها الجهاز."
109
109
  },
110
110
  "args": [
111
111
  {
@@ -137,17 +137,17 @@
137
137
  "hint": {
138
138
  "en": "\"Homey\" means Homey controls the device’s target power. Other modes are determined by the device.",
139
139
  "nl": "'Homey' betekent dat Homey het doelvermogen van het apparaat regelt. Andere modi worden bepaald door het apparaat.",
140
- "de": "„Homey“ bedeutet, dass Homey die Zielleistung des Geräts steuert. Andere Modi werden vom Gerät bestimmt.",
141
- "fr": "« Homey » signifie que Homey contrôle la puissance cible de lappareil. Les autres modes sont déterminés par lappareil.",
140
+ "de": "„Homey“ bedeutet, dass Homey die Sollleistung des Geräts steuert. Andere Modi werden vom Gerät selbst festgelegt.",
141
+ "fr": "« Homey » signifie que Homey contrôle la puissance cible de l'appareil. Les autres modes sont déterminés par l'appareil.",
142
142
  "it": "\"Homey\" significa che Homey controlla la potenza target del dispositivo. Le altre modalità sono determinate dal dispositivo.",
143
143
  "sv": "\"Homey\" innebär att Homey styr enhetens måleffekt. Andra lägen bestäms av enheten.",
144
- "no": "«Homey» betyr at Homey styrer ønsket effekt for enheten. Andre modi bestemmes av enheten.",
144
+ "no": "«Homey» betyr at Homey styrer ønsket effekt for enheten. Andre moduser bestemmes av enheten.",
145
145
  "es": "\"Homey\" significa que Homey controla la potencia objetivo del dispositivo. Los demás modos los determina el dispositivo.",
146
146
  "da": "\"Homey\" betyder, at Homey styrer enhedens måleffekt. Andre tilstande bestemmes af enheden.",
147
147
  "ru": "Режим «Homey» означает, что Homey управляет целевой мощностью устройства. Другие режимы определяются устройством.",
148
148
  "pl": "„Homey“ oznacza, że Homey steruje mocą docelową urządzenia. Pozostałe tryby są określane przez urządzenie.",
149
- "ko": "\"Homey\"는 Homey가 제품의 충전전력 제한을 제어한다는 의미예요. 다른 모드는 제품에 의해 결정돼요.",
150
- "ar": "\"Homey\" يعني أن Homey يتحكم في الطاقة المستهدفة للجهاز. الأوضاع الأخرى يحددها الجهاز."
149
+ "ko": "\"Homey\"는 Homey가 제품의 충전전력 제한을 제어한다는 의미예요. 다른 모드는 제품에 의해 결정됩니다.",
150
+ "ar": "\"Homey\" يعني أن Homey يتحكم في الطاقة المستهدفة للجهاز. والأوضاع الأخرى يحددها الجهاز."
151
151
  },
152
152
  "args": [
153
153
  {
@@ -179,17 +179,17 @@
179
179
  "hint": {
180
180
  "en": "To control the target power of this device via Homey, select \"Homey\". Other modes are determined by the device.",
181
181
  "nl": "Selecteer 'Homey' om het doelvermogen van dit apparaat via Homey te regelen. Andere modi worden bepaald door het apparaat.",
182
- "de": "Um die Zielleistung dieses Geräts über Homey zu steuern, wähle „Homey“ aus. Andere Modi werden vom Gerät bestimmt.",
183
- "fr": "Pour contrôler la puissance cible de cet appareil via Homey, sélectionnez « Homey ». Les autres modes sont déterminés par lappareil.",
182
+ "de": "Um die Sollleistung dieses Geräts über Homey zu steuern, wählen Sie „Homey“ aus. Andere Modi werden vom Gerät selbst festgelegt.",
183
+ "fr": "Pour contrôler la puissance cible de cet appareil via Homey, sélectionnez « Homey ». Les autres modes sont déterminés par l'appareil.",
184
184
  "it": "Per controllare la potenza target di questo dispositivo tramite Homey, seleziona \"Homey\". Le altre modalità sono determinate dal dispositivo.",
185
185
  "sv": "För att styra måleffekten för denna enhet via Homey, välj \"Homey\". Andra lägen bestäms av enheten.",
186
- "no": "For å styre ønsket effekt for denne enheten via Homey, velg «Homey». Andre modi bestemmes av enheten.",
187
- "es": "Para controlar la potencia objetivo de este dispositivo a través de Homey, selecciona \"Homey\". Los demás modos los determina el dispositivo.",
188
- "da": "For at styre måleffekten for denne enhed via Homey skal du vælge \"Homey\". Andre tilstande bestemmes af enheden.",
189
- "ru": "Чтобы управлять целевой мощностью этого устройства через Homey, выберите «Homey». Другие режимы определяются устройством.",
186
+ "no": "For å styre ønsket effekt for denne enheten med Homey, velg «Homey». Andre moduser bestemmes av enheten.",
187
+ "es": "Selecciona \"Homey\" para controlar la potencia objetivo de este dispositivo a través de Homey. Los demás modos los determina el dispositivo.",
188
+ "da": "For at styre denne enheds måleffekt via Homey skal du vælge \"Homey\". Andre tilstande bestemmes af enheden.",
189
+ "ru": "Чтобы управлять целевой мощностью этого устройства через Homey, выберите режим «Homey». Другие режимы определяются устройством.",
190
190
  "pl": "Aby sterować mocą docelową tego urządzenia przez Homey, wybierz „Homey“. Pozostałe tryby są określane przez urządzenie.",
191
- "ko": "이 제품의 충전전력 제한을 Homey를 통해 제어하려면 \"Homey\"를 선택하세요. 다른 모드는 제품에 의해 결정돼요.",
192
- "ar": "للتحكم في الطاقة المستهدفة لهذا الجهاز عبر Homey، اختر \"Homey\". الأوضاع الأخرى يحددها الجهاز."
191
+ "ko": "이 제품의 충전전력 제한을 Homey를 통해 제어하려면 \"Homey\"를 선택하세요. 다른 모드는 제품에 의해 결정됩니다.",
192
+ "ar": "للتحكم في الطاقة المستهدفة لهذا الجهاز عبر Homey، اختر \"Homey\". والأوضاع الأخرى يحددها الجهاز."
193
193
  },
194
194
  "args": [
195
195
  {
package/lib/App/index.js CHANGED
@@ -149,6 +149,8 @@ class App {
149
149
  throw new Error('Invalid compatibility');
150
150
  }
151
151
 
152
+ const appCompatibilityMinVersion = semver.minVersion(appJson.compatibility);
153
+
152
154
  if (appJson.esm === true && semver.lt(semver.coerce(appJson.compatibility), '12.0.1')) {
153
155
  throw new Error('ESM apps require a compatibility of at least >=12.0.1');
154
156
  }
@@ -220,19 +222,15 @@ class App {
220
222
 
221
223
  // validate sdk v3 apps have compatibility of at least >=5.0.0
222
224
  if (appJson.sdk === 3) {
223
- // lowest version that satisfies the compatibility
224
- const minVersion = semver.minVersion(appJson.compatibility);
225
-
226
225
  // lowest version must be greater than or equal to 5.0.0 for sdk v3 apps
227
- if (!semver.gt(minVersion, '4.2.0')) {
226
+ if (!semver.gt(appCompatibilityMinVersion, '4.2.0')) {
228
227
  throw new Error(`Invalid compatibility (${appJson.compatibility}), SDK version 3 apps must have a compatibility of at least >=5.0.0`);
229
228
  }
230
229
  }
231
230
 
232
231
  // validate that Python apps target compatibility of at least >=13.0.0
233
232
  if (appJson.runtime === 'python') {
234
- const minVersion = semver.minVersion(appJson.compatibility);
235
- if (!semver.gte(minVersion, '13.0.0')) {
233
+ if (!semver.gte(appCompatibilityMinVersion, '13.0.0')) {
236
234
  throw new Error(`Invalid compatibility (${appJson.compatibility}), Python apps must have a compatibility of at least >=13.0.0`);
237
235
  }
238
236
  }
@@ -242,6 +240,14 @@ class App {
242
240
  throw new Error(`Invalid sdk (${appJson.sdk}), Python apps must use sdk version 3`);
243
241
  }
244
242
 
243
+ if (appJson.capabilities) {
244
+ for (const [capabilityId, capability] of Object.entries(appJson.capabilities)) {
245
+ if (capability.titleShort !== undefined && semver.lt(appCompatibilityMinVersion, '13.2.1')) {
246
+ throw new Error(`capabilities.${capabilityId}.titleShort requires a compatibility of at least >=13.2.1`);
247
+ }
248
+ }
249
+ }
250
+
245
251
  App.validatePythonVersion(appJson);
246
252
 
247
253
  // Validate that Python apps have cross-platform venvs
@@ -353,7 +359,7 @@ class App {
353
359
  throw new Error(`drivers.${driver.id} invalid driver class: ${driver.class}`);
354
360
  }
355
361
 
356
- if (allowedClasses[driver.class].minCompatibility && semver.lt(semver.minVersion(appJson.compatibility), allowedClasses[driver.class].minCompatibility)) {
362
+ if (allowedClasses[driver.class].minCompatibility && semver.lt(appCompatibilityMinVersion, allowedClasses[driver.class].minCompatibility)) {
357
363
  // Compatibility must be greater than or equal to the minimum required compatibility
358
364
  throw new Error(`drivers.${driver.id} driver class: ${driver.class} is not available for compatibility ${appJson.compatibility}, requires minimum: ${allowedClasses[driver.class].minCompatibility}`);
359
365
  }
@@ -368,7 +374,7 @@ class App {
368
374
  throw new Error(`drivers.${driver.id} invalid capability: ${capability}`);
369
375
  }
370
376
 
371
- if (isSystemCapability && !isAppCapability && allowedCapabilities[capabilityId].minCompatibility && semver.lt(semver.minVersion(appJson.compatibility), allowedCapabilities[capabilityId].minCompatibility)) {
377
+ if (isSystemCapability && !isAppCapability && allowedCapabilities[capabilityId].minCompatibility && semver.lt(appCompatibilityMinVersion, allowedCapabilities[capabilityId].minCompatibility)) {
372
378
  // Compatibility must be greater than or equal to the minimum required compatibility
373
379
  throw new Error(`drivers.${driver.id} capability: ${capabilityId} is not available for compatibility ${appJson.compatibility}, requires minimum: ${allowedCapabilities[capabilityId].minCompatibility}`);
374
380
  }
@@ -386,6 +392,14 @@ class App {
386
392
  // validate `appJson.drivers[].capabilitiesOptions`
387
393
  if (driver.capabilitiesOptions) {
388
394
  for (const [capabilityId, capabilityOptions] of Object.entries(driver.capabilitiesOptions)) {
395
+ if (capabilityOptions === null || typeof capabilityOptions !== 'object' || Array.isArray(capabilityOptions)) {
396
+ throw new Error(`drivers.${driver.id}.capabilitiesOptions.${capabilityId} must be an object`);
397
+ }
398
+
399
+ if (capabilityOptions.titleShort !== undefined && semver.lt(appCompatibilityMinVersion, '13.2.1')) {
400
+ throw new Error(`drivers.${driver.id}.capabilitiesOptions.${capabilityId}.titleShort requires a compatibility of at least >=13.2.1`);
401
+ }
402
+
389
403
  // Validate target_power_mode values - require homey, at least one non-homey, no reserved prefixes
390
404
  if (Capability.isInstanceOfId(capabilityId, 'target_power_mode') && Array.isArray(capabilityOptions.values)) {
391
405
  const hasHomey = capabilityOptions.values.some(v => v && typeof v === 'object' && v.id === 'homey');
package/lib/Util/index.js CHANGED
@@ -148,6 +148,7 @@ Util.FEATURE_LED_RING = 'ledring';
148
148
  Util.FEATURE_NFC = 'nfc';
149
149
  Util.FEATURE_MATTER = 'matter';
150
150
  Util.FEATURE_CAMERA_STREAMING = 'camera-streaming';
151
+ Util.FEATURE_BLE_ADVERTISEMENTS = 'ble-advertisements';
151
152
  /** @type {Record<string, string[]>} */
152
153
  Util._platformLocalFeatures = {
153
154
  homey1s: [Util.FEATURE_SPEAKER, Util.FEATURE_LED_RING, Util.FEATURE_NFC],
@@ -159,10 +160,10 @@ Util._platformLocalFeatures = {
159
160
  homey3s: [Util.FEATURE_SPEAKER, Util.FEATURE_LED_RING],
160
161
  homey3d: [Util.FEATURE_SPEAKER, Util.FEATURE_LED_RING],
161
162
  homey4d: [Util.FEATURE_SPEAKER, Util.FEATURE_LED_RING],
162
- homey5q: [Util.FEATURE_MATTER, Util.FEATURE_CAMERA_STREAMING],
163
- homey6q: [Util.FEATURE_MATTER, Util.FEATURE_CAMERA_STREAMING],
164
- homey7q: [Util.FEATURE_MATTER, Util.FEATURE_CAMERA_STREAMING],
165
- shs: [Util.FEATURE_MATTER, Util.FEATURE_CAMERA_STREAMING],
163
+ homey5q: [Util.FEATURE_MATTER, Util.FEATURE_CAMERA_STREAMING, Util.FEATURE_BLE_ADVERTISEMENTS],
164
+ homey6q: [Util.FEATURE_MATTER, Util.FEATURE_CAMERA_STREAMING, Util.FEATURE_BLE_ADVERTISEMENTS],
165
+ homey7q: [Util.FEATURE_MATTER, Util.FEATURE_CAMERA_STREAMING, Util.FEATURE_BLE_ADVERTISEMENTS],
166
+ shs: [Util.FEATURE_MATTER, Util.FEATURE_CAMERA_STREAMING, Util.FEATURE_BLE_ADVERTISEMENTS],
166
167
  };
167
168
 
168
169
  module.exports = Util;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homey-lib",
3
- "version": "2.50.1",
3
+ "version": "2.50.3",
4
4
  "description": "Shared Library for Homey",
5
5
  "types": "types/index.d.ts",
6
6
  "main": "index.js",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/App/index.js"],"names":[],"mappings":";AA8EA;IACE,2CAAqD;IACrD,2CAAmD;IA21BnD;;;OAGG;IACH,sCAHW,WAAW,GACT,IAAI,CAOhB;IA4PD;;;;;OAKG;IACH,4CALW,MAAM,QACN;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,aAClB,MAAM,GACJ,IAAI,CAkChB;IAiBD;;;OAGG;IACH,wBAHW,MAAM,GACJ,OAAO,CAQnB;IAED;;;OAGG;IACH,gCAHW,MAAM,GACJ,OAAO,CAInB;IAED;;OAEG;IACH,wBAFa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMnC;IAED;;OAEG;IACH,yBAFa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAcnD;IAED;;OAEG;IACH,wBAFa,MAAM,EAAE,CAIpB;IAED;;OAEG;IACH,qBAFa,MAAM,EAAE,CAKpB;IAED;;;OAGG;IACH,4BAHW,MAAM,GACJ,MAAM,CAuBlB;IAED;;;;OAIG;IACH,0BAJW,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,WAC1C,WAAW,GACT,MAAM,GAAG,IAAI,CAyDzB;IAzyCD;;OAEG;IACH,kBAFW,MAAM,EAQhB;IALC,cAAiB;IAOnB;;;OAGG;IACH,eAHc,OAAO,EAAA,GACR,IAAI,CAKhB;IAED;;;OAGG;IACH,6BAHW;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3D,OAAO,CAAC,IAAI,CAAC,CAi0BzB;IA3zBC,gBAAmB;IAw0BrB;;;;OAIG;IACH,uCAJW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UACvB;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACZ,IAAI,CAwBhB;IAED;;;;OAIG;IACH,8BAJW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,WAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACxC,IAAI,CAuBhB;IAED;;;OAGG;IACH,gCAHW,MAAM,GACJ,OAAO,CAAC,MAAM,EAAE,CAAC,CAY7B;IAED;;;OAGG;IACH,yCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACH,mCAHW,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAe5B;IAED;;;;;OAKG;IACH,2BALW;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,QAChC,KAAK,GAAG,QAAQ,cAChB,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CA6BzB;IAED;;OAEG;IACH,oBAFa,OAAO,CAAC,IAAI,CAAC,CAuBzB;IAED;;;;;;OAMG;IACH,wBANW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aACvB,MAAM,WACN,WAAW,mCACX;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,GAC/C,IAAI,CA+EhB;IA0CD;;;;OAIG;IACH,qBAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAU3B;CAwJF;;;;mBA31Ca,OAAO,yBAAyB,EAAE,GAAG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/App/index.js"],"names":[],"mappings":";AA8EA;IACE,2CAAqD;IACrD,2CAAmD;IAy2BnD;;;OAGG;IACH,sCAHW,WAAW,GACT,IAAI,CAOhB;IA4PD;;;;;OAKG;IACH,4CALW,MAAM,QACN;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,aAClB,MAAM,GACJ,IAAI,CAkChB;IAiBD;;;OAGG;IACH,wBAHW,MAAM,GACJ,OAAO,CAQnB;IAED;;;OAGG;IACH,gCAHW,MAAM,GACJ,OAAO,CAInB;IAED;;OAEG;IACH,wBAFa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMnC;IAED;;OAEG;IACH,yBAFa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAcnD;IAED;;OAEG;IACH,wBAFa,MAAM,EAAE,CAIpB;IAED;;OAEG;IACH,qBAFa,MAAM,EAAE,CAKpB;IAED;;;OAGG;IACH,4BAHW,MAAM,GACJ,MAAM,CAuBlB;IAED;;;;OAIG;IACH,0BAJW,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,WAC1C,WAAW,GACT,MAAM,GAAG,IAAI,CAyDzB;IAvzCD;;OAEG;IACH,kBAFW,MAAM,EAQhB;IALC,cAAiB;IAOnB;;;OAGG;IACH,eAHc,OAAO,EAAA,GACR,IAAI,CAKhB;IAED;;;OAGG;IACH,6BAHW;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3D,OAAO,CAAC,IAAI,CAAC,CA+0BzB;IAz0BC,gBAAmB;IAs1BrB;;;;OAIG;IACH,uCAJW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UACvB;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACZ,IAAI,CAwBhB;IAED;;;;OAIG;IACH,8BAJW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,WAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACxC,IAAI,CAuBhB;IAED;;;OAGG;IACH,gCAHW,MAAM,GACJ,OAAO,CAAC,MAAM,EAAE,CAAC,CAY7B;IAED;;;OAGG;IACH,yCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACH,mCAHW,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAe5B;IAED;;;;;OAKG;IACH,2BALW;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,QAChC,KAAK,GAAG,QAAQ,cAChB,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CA6BzB;IAED;;OAEG;IACH,oBAFa,OAAO,CAAC,IAAI,CAAC,CAuBzB;IAED;;;;;;OAMG;IACH,wBANW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aACvB,MAAM,WACN,WAAW,mCACX;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,GAC/C,IAAI,CA+EhB;IA0CD;;;;OAIG;IACH,qBAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAU3B;CAwJF;;;;mBAz2Ca,OAAO,yBAAyB,EAAE,GAAG"}
@@ -100,13 +100,14 @@ declare class Util {
100
100
  static isZwaveFirmwareUpdates(driverFirmwareUpdates: ZigbeeFirmwareUpdates | ZwaveFirmwareUpdates): driverFirmwareUpdates is ZwaveFirmwareUpdates;
101
101
  }
102
102
  declare namespace Util {
103
- export { FEATURE_SPEAKER, FEATURE_LED_RING, FEATURE_NFC, FEATURE_MATTER, FEATURE_CAMERA_STREAMING, _platformLocalFeatures, ZigbeeFirmwareUpdates, ZwaveFirmwareUpdates, ZigbeeFirmwareUpdateFile, ZwaveFirmwareUpdateFile };
103
+ export { FEATURE_SPEAKER, FEATURE_LED_RING, FEATURE_NFC, FEATURE_MATTER, FEATURE_CAMERA_STREAMING, FEATURE_BLE_ADVERTISEMENTS, _platformLocalFeatures, ZigbeeFirmwareUpdates, ZwaveFirmwareUpdates, ZigbeeFirmwareUpdateFile, ZwaveFirmwareUpdateFile };
104
104
  }
105
105
  declare var FEATURE_SPEAKER: string;
106
106
  declare var FEATURE_LED_RING: string;
107
107
  declare var FEATURE_NFC: string;
108
108
  declare var FEATURE_MATTER: string;
109
109
  declare var FEATURE_CAMERA_STREAMING: string;
110
+ declare var FEATURE_BLE_ADVERTISEMENTS: string;
110
111
  declare var _platformLocalFeatures: Record<string, string[]>;
111
112
  type ZigbeeFirmwareUpdates = import("../../assets/app/schema").ZigbeeFirmwareUpdates;
112
113
  type ZwaveFirmwareUpdates = import("../../assets/app/schema").ZwaveFirmwareUpdates;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/Util/index.js"],"names":[],"mappings":";AAKA,+FAA+F;AAC/F,6FAA6F;AAC7F,qGAAqG;AACrG,mGAAmG;AAEnG;IAEE;;;OAGG;IACH,yCAHW,MAAM,GACJ,MAAM,EAAE,CAIpB;IAED;;;;OAIG;IACH,gDAJW,MAAM,kBACN,MAAM,EAAE,GACN,MAAM,EAAE,CAKpB;IAED;;;;;;OAMG;IACH,8BAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAI3B;IAED;;;;;;OAMG;IACH,mCAJW,MAAM,aACN,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAI5B;IAED;;;;;OAKG;IACH,sCAHW,MAAM,GACJ,OAAO,CAAC,OAAO,UAAU,EAAE,eAAe,CAAC,CAIvD;IAED;;;;;;;;;OASG;IACH,wCANG;QAAwB,QAAQ,EAAxB,MAAM;QACW,gBAAgB,GAAjC,MAAM;QACW,WAAW,GAA5B,MAAM;QACW,SAAS,GAA1B,MAAM;KACd,GAAU,OAAO,CAAC,OAAO,UAAU,EAAE,eAAe,CAAC,CAIvD;IAED;;;;;;;;OAQG;IACH,uDALG;QAAyB,OAAO,GAAxB,MAAM;QACU,QAAQ,EAAxB,MAAM;QACU,QAAQ,EAAxB,MAAM;KACd,GAAU,MAAM,CAIlB;IAED;;;OAGG;IACH,gDAHW,wBAAwB,GAAG,uBAAuB,GACjD,YAAY,IAAI,wBAAwB,CAInD;IAED;;;OAGG;IACH,+CAHW,wBAAwB,GAAG,uBAAuB,GACjD,YAAY,IAAI,uBAAuB,CAIlD;IAED;;;OAGG;IACH,2DAHW,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GACjF,2BAA2B,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAKlF;IAED;;;OAGG;IACH,0DAHW,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GACjF,2BAA2B,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAKjF;IAED;;;OAGG;IACH,sDAHW,qBAAqB,GAAG,oBAAoB,GAC1C,qBAAqB,IAAI,qBAAqB,CAM1D;IAED;;;OAGG;IACH,qDAHW,qBAAqB,GAAG,oBAAoB,GAC1C,qBAAqB,IAAI,oBAAoB,CAMzD;CAEF;;;;;;;;;oCAOU,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;6BAjJrB,OAAO,yBAAyB,EAAE,qBAAqB;4BACvD,OAAO,yBAAyB,EAAE,oBAAoB;gCACtD,OAAO,yBAAyB,EAAE,wBAAwB;+BAC1D,OAAO,yBAAyB,EAAE,uBAAuB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/Util/index.js"],"names":[],"mappings":";AAKA,+FAA+F;AAC/F,6FAA6F;AAC7F,qGAAqG;AACrG,mGAAmG;AAEnG;IAEE;;;OAGG;IACH,yCAHW,MAAM,GACJ,MAAM,EAAE,CAIpB;IAED;;;;OAIG;IACH,gDAJW,MAAM,kBACN,MAAM,EAAE,GACN,MAAM,EAAE,CAKpB;IAED;;;;;;OAMG;IACH,8BAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAI3B;IAED;;;;;;OAMG;IACH,mCAJW,MAAM,aACN,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAI5B;IAED;;;;;OAKG;IACH,sCAHW,MAAM,GACJ,OAAO,CAAC,OAAO,UAAU,EAAE,eAAe,CAAC,CAIvD;IAED;;;;;;;;;OASG;IACH,wCANG;QAAwB,QAAQ,EAAxB,MAAM;QACW,gBAAgB,GAAjC,MAAM;QACW,WAAW,GAA5B,MAAM;QACW,SAAS,GAA1B,MAAM;KACd,GAAU,OAAO,CAAC,OAAO,UAAU,EAAE,eAAe,CAAC,CAIvD;IAED;;;;;;;;OAQG;IACH,uDALG;QAAyB,OAAO,GAAxB,MAAM;QACU,QAAQ,EAAxB,MAAM;QACU,QAAQ,EAAxB,MAAM;KACd,GAAU,MAAM,CAIlB;IAED;;;OAGG;IACH,gDAHW,wBAAwB,GAAG,uBAAuB,GACjD,YAAY,IAAI,wBAAwB,CAInD;IAED;;;OAGG;IACH,+CAHW,wBAAwB,GAAG,uBAAuB,GACjD,YAAY,IAAI,uBAAuB,CAIlD;IAED;;;OAGG;IACH,2DAHW,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GACjF,2BAA2B,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAKlF;IAED;;;OAGG;IACH,0DAHW,qBAAqB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GACjF,2BAA2B,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAKjF;IAED;;;OAGG;IACH,sDAHW,qBAAqB,GAAG,oBAAoB,GAC1C,qBAAqB,IAAI,qBAAqB,CAM1D;IAED;;;OAGG;IACH,qDAHW,qBAAqB,GAAG,oBAAoB,GAC1C,qBAAqB,IAAI,oBAAoB,CAMzD;CAEF;;;;;;;;;;oCAQU,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;6BAlJrB,OAAO,yBAAyB,EAAE,qBAAqB;4BACvD,OAAO,yBAAyB,EAAE,oBAAoB;gCACtD,OAAO,yBAAyB,EAAE,wBAAwB;+BAC1D,OAAO,yBAAyB,EAAE,uBAAuB"}