@homebridge-plugins/homebridge-smarthq 0.4.2 → 0.4.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/.github/workflows/release.yml +0 -4
  2. package/CHANGELOG.md +124 -0
  3. package/dist/devices/clothesDryer.d.ts +10 -0
  4. package/dist/devices/clothesDryer.d.ts.map +1 -0
  5. package/dist/devices/clothesDryer.js +42 -0
  6. package/dist/devices/clothesDryer.js.map +1 -0
  7. package/dist/devices/clothesWasher.d.ts +10 -0
  8. package/dist/devices/clothesWasher.d.ts.map +1 -0
  9. package/dist/devices/clothesWasher.js +42 -0
  10. package/dist/devices/clothesWasher.js.map +1 -0
  11. package/dist/devices/dishwasher.d.ts.map +1 -1
  12. package/dist/devices/dishwasher.js +24 -9
  13. package/dist/devices/dishwasher.js.map +1 -1
  14. package/dist/devices/oven.d.ts.map +1 -1
  15. package/dist/devices/oven.js +45 -21
  16. package/dist/devices/oven.js.map +1 -1
  17. package/dist/devices/refrigerator.d.ts.map +1 -1
  18. package/dist/devices/refrigerator.js +11 -15
  19. package/dist/devices/refrigerator.js.map +1 -1
  20. package/dist/platform.d.ts +2 -0
  21. package/dist/platform.d.ts.map +1 -1
  22. package/dist/platform.js +76 -0
  23. package/dist/platform.js.map +1 -1
  24. package/docs/assets/style.css +3 -3
  25. package/docs/classes/SmartHQPlatform.html +8 -8
  26. package/docs/interfaces/DeviceOptions.html +2 -2
  27. package/docs/interfaces/SmartHQPlatformConfig.html +2 -2
  28. package/docs/interfaces/SmartHqContext.html +2 -2
  29. package/docs/interfaces/SmartHqERDResponse.html +2 -2
  30. package/docs/interfaces/credentials.html +2 -2
  31. package/docs/interfaces/devicesConfig.html +2 -2
  32. package/docs/interfaces/options.html +2 -2
  33. package/docs/variables/API_URL.html +1 -1
  34. package/docs/variables/ERD_CODES.html +1 -1
  35. package/docs/variables/ERD_TYPES.html +1 -1
  36. package/docs/variables/KEEPALIVE_TIMEOUT.html +1 -1
  37. package/docs/variables/LOGIN_URL.html +1 -1
  38. package/docs/variables/OAUTH2_CLIENT_ID.html +1 -1
  39. package/docs/variables/OAUTH2_CLIENT_SECRET.html +1 -1
  40. package/docs/variables/OAUTH2_REDIRECT_URI.html +1 -1
  41. package/docs/variables/PLATFORM_NAME.html +1 -1
  42. package/docs/variables/PLUGIN_NAME.html +1 -1
  43. package/docs/variables/SECURE_URL.html +1 -1
  44. package/docs/variables/default.html +1 -1
  45. package/package.json +7 -6
@@ -22,8 +22,6 @@ jobs:
22
22
  with:
23
23
  release_type: ${{ needs.determine-release-type.outputs.release_type }}
24
24
  is_esm: ${{ needs.determine-release-type.outputs.is_esm == 'true' }}
25
- secrets:
26
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
27
25
 
28
26
  # 3️⃣ Publish to NPM and create GitHub release
29
27
  publish-release:
@@ -48,8 +46,6 @@ jobs:
48
46
  branch_name: ${{ needs.determine-release-type.outputs.branch_name }}
49
47
  release_type: ${{ needs.determine-release-type.outputs.release_type }}
50
48
  is_esm: ${{ needs.determine-release-type.outputs.is_esm == 'true' }}
51
- secrets:
52
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
53
49
 
54
50
  # 5️⃣ Notify if any previous job fails
55
51
  workflow-failure:
package/CHANGELOG.md CHANGED
@@ -2,6 +2,130 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
4
4
 
5
+ ## [0.4.3](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.4.1...v0.4.3) (2025-12-22)
6
+
7
+
8
+ ### Features
9
+
10
+ * support hood ([#57](https://github.com/homebridge-plugins/homebridge-smarthq/issues/57)) ([2659b21](https://github.com/homebridge-plugins/homebridge-smarthq/commit/2659b21a0a483cb15e0622733f58d75603d99cab))
11
+
12
+
13
+
14
+ ## [0.4.1](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.4.0...v0.4.1) (2025-09-18)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **air conditioner:** fix temperature setting and update switch display names ([#38](https://github.com/homebridge-plugins/homebridge-smarthq/issues/38)) ([1675205](https://github.com/homebridge-plugins/homebridge-smarthq/commit/16752059c93d6a5b26b782f2b42246e622b4b830))
20
+ * **air conditioner:** preserve decimal precision when converting Celsius to Fahrenheit ([#40](https://github.com/homebridge-plugins/homebridge-smarthq/issues/40)) ([38c8285](https://github.com/homebridge-plugins/homebridge-smarthq/commit/38c82852015d8ea0ceb0f4dd4b9ddf0622f57963))
21
+ * **air conditioner:** report all operating modes off when unit is off ([#42](https://github.com/homebridge-plugins/homebridge-smarthq/issues/42)) ([d44ebe3](https://github.com/homebridge-plugins/homebridge-smarthq/commit/d44ebe34590a2da6645e30db0db269e1dbbe4f3b))
22
+
23
+
24
+ ### Features
25
+
26
+ * add Portable AC as supported device ([#45](https://github.com/homebridge-plugins/homebridge-smarthq/issues/45)) ([50d83b1](https://github.com/homebridge-plugins/homebridge-smarthq/commit/50d83b1e003d8d238485459a5c882f357e1c61fb))
27
+
28
+
29
+
30
+ # [0.4.0](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.2.0...v0.4.0) (2025-06-27)
31
+
32
+
33
+
34
+ # 0.2.0 (2025-02-23)
35
+
36
+ ## [0.4.3](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.4.1...v0.4.3) (2025-12-22)
37
+
38
+
39
+ ### Features
40
+
41
+ * support hood ([#57](https://github.com/homebridge-plugins/homebridge-smarthq/issues/57)) ([2659b21](https://github.com/homebridge-plugins/homebridge-smarthq/commit/2659b21a0a483cb15e0622733f58d75603d99cab))
42
+
43
+
44
+
45
+ ## [0.4.1](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.4.0...v0.4.1) (2025-09-18)
46
+
47
+
48
+ ### Bug Fixes
49
+
50
+ * **air conditioner:** fix temperature setting and update switch display names ([#38](https://github.com/homebridge-plugins/homebridge-smarthq/issues/38)) ([1675205](https://github.com/homebridge-plugins/homebridge-smarthq/commit/16752059c93d6a5b26b782f2b42246e622b4b830))
51
+ * **air conditioner:** preserve decimal precision when converting Celsius to Fahrenheit ([#40](https://github.com/homebridge-plugins/homebridge-smarthq/issues/40)) ([38c8285](https://github.com/homebridge-plugins/homebridge-smarthq/commit/38c82852015d8ea0ceb0f4dd4b9ddf0622f57963))
52
+ * **air conditioner:** report all operating modes off when unit is off ([#42](https://github.com/homebridge-plugins/homebridge-smarthq/issues/42)) ([d44ebe3](https://github.com/homebridge-plugins/homebridge-smarthq/commit/d44ebe34590a2da6645e30db0db269e1dbbe4f3b))
53
+
54
+
55
+ ### Features
56
+
57
+ * add Portable AC as supported device ([#45](https://github.com/homebridge-plugins/homebridge-smarthq/issues/45)) ([50d83b1](https://github.com/homebridge-plugins/homebridge-smarthq/commit/50d83b1e003d8d238485459a5c882f357e1c61fb))
58
+
59
+
60
+
61
+ # [0.4.0](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.2.0...v0.4.0) (2025-06-27)
62
+
63
+
64
+
65
+ # 0.2.0 (2025-02-23)
66
+
67
+ ## [0.4.3](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.4.1...v0.4.3) (2025-12-22)
68
+
69
+
70
+ ### Features
71
+
72
+ * support hood ([#57](https://github.com/homebridge-plugins/homebridge-smarthq/issues/57)) ([2659b21](https://github.com/homebridge-plugins/homebridge-smarthq/commit/2659b21a0a483cb15e0622733f58d75603d99cab))
73
+
74
+
75
+
76
+ ## [0.4.1](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.4.0...v0.4.1) (2025-09-18)
77
+
78
+
79
+ ### Bug Fixes
80
+
81
+ * **air conditioner:** fix temperature setting and update switch display names ([#38](https://github.com/homebridge-plugins/homebridge-smarthq/issues/38)) ([1675205](https://github.com/homebridge-plugins/homebridge-smarthq/commit/16752059c93d6a5b26b782f2b42246e622b4b830))
82
+ * **air conditioner:** preserve decimal precision when converting Celsius to Fahrenheit ([#40](https://github.com/homebridge-plugins/homebridge-smarthq/issues/40)) ([38c8285](https://github.com/homebridge-plugins/homebridge-smarthq/commit/38c82852015d8ea0ceb0f4dd4b9ddf0622f57963))
83
+ * **air conditioner:** report all operating modes off when unit is off ([#42](https://github.com/homebridge-plugins/homebridge-smarthq/issues/42)) ([d44ebe3](https://github.com/homebridge-plugins/homebridge-smarthq/commit/d44ebe34590a2da6645e30db0db269e1dbbe4f3b))
84
+
85
+
86
+ ### Features
87
+
88
+ * add Portable AC as supported device ([#45](https://github.com/homebridge-plugins/homebridge-smarthq/issues/45)) ([50d83b1](https://github.com/homebridge-plugins/homebridge-smarthq/commit/50d83b1e003d8d238485459a5c882f357e1c61fb))
89
+
90
+
91
+
92
+ # [0.4.0](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.2.0...v0.4.0) (2025-06-27)
93
+
94
+
95
+
96
+ # 0.2.0 (2025-02-23)
97
+
98
+ ## [0.4.2](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.4.1...v0.4.2) (2025-11-21)
99
+
100
+
101
+ ### Features
102
+
103
+ * support hood ([#57](https://github.com/homebridge-plugins/homebridge-smarthq/issues/57)) ([2659b21](https://github.com/homebridge-plugins/homebridge-smarthq/commit/2659b21a0a483cb15e0622733f58d75603d99cab))
104
+
105
+
106
+
107
+ ## [0.4.1](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.4.0...v0.4.1) (2025-09-18)
108
+
109
+
110
+ ### Bug Fixes
111
+
112
+ * **air conditioner:** fix temperature setting and update switch display names ([#38](https://github.com/homebridge-plugins/homebridge-smarthq/issues/38)) ([1675205](https://github.com/homebridge-plugins/homebridge-smarthq/commit/16752059c93d6a5b26b782f2b42246e622b4b830))
113
+ * **air conditioner:** preserve decimal precision when converting Celsius to Fahrenheit ([#40](https://github.com/homebridge-plugins/homebridge-smarthq/issues/40)) ([38c8285](https://github.com/homebridge-plugins/homebridge-smarthq/commit/38c82852015d8ea0ceb0f4dd4b9ddf0622f57963))
114
+ * **air conditioner:** report all operating modes off when unit is off ([#42](https://github.com/homebridge-plugins/homebridge-smarthq/issues/42)) ([d44ebe3](https://github.com/homebridge-plugins/homebridge-smarthq/commit/d44ebe34590a2da6645e30db0db269e1dbbe4f3b))
115
+
116
+
117
+ ### Features
118
+
119
+ * add Portable AC as supported device ([#45](https://github.com/homebridge-plugins/homebridge-smarthq/issues/45)) ([50d83b1](https://github.com/homebridge-plugins/homebridge-smarthq/commit/50d83b1e003d8d238485459a5c882f357e1c61fb))
120
+
121
+
122
+
123
+ # [0.4.0](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.2.0...v0.4.0) (2025-06-27)
124
+
125
+
126
+
127
+ # 0.2.0 (2025-02-23)
128
+
5
129
  ## [0.4.2](https://github.com/homebridge-plugins/homebridge-smarthq/compare/v0.4.1...v0.4.2) (2025-11-21)
6
130
 
7
131
 
@@ -0,0 +1,10 @@
1
+ import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
2
+ import type { SmartHqContext } from '../settings.js';
3
+ import { deviceBase } from './device';
4
+ export declare class SmartHQClothesDryer extends deviceBase {
5
+ private ClothesDryer;
6
+ constructor(platform: any, accessory: PlatformAccessory<SmartHqContext>, device: any);
7
+ handleGetOn(): Promise<CharacteristicValue>;
8
+ handleSetOn(value: CharacteristicValue): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=clothesDryer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clothesDryer.d.ts","sourceRoot":"","sources":["../../src/devices/clothesDryer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,OAAO,CAAC,YAAY,CAEnB;gBAGC,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,MAAM,EAAE,GAAG;IAgBP,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAY3C,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAS7D"}
@@ -0,0 +1,42 @@
1
+ import { deviceBase } from './device';
2
+ export class SmartHQClothesDryer extends deviceBase {
3
+ ClothesDryer;
4
+ constructor(platform, accessory, device) {
5
+ super(platform, accessory, device);
6
+ this.debugLog(`Clothes Dryer Features: ${JSON.stringify(accessory.context.device.features)}`);
7
+ accessory.context.device.features.forEach((feature) => {
8
+ if (feature === 'CLOTHES_DRYER_V1_FOUNDATION') {
9
+ const dryer = this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.Switch, accessory.displayName, 'Clothes Dryer');
10
+ dryer.getCharacteristic(this.platform.Characteristic.On)
11
+ .onGet(this.handleGetOn.bind(this))
12
+ .onSet(this.handleSetOn.bind(this));
13
+ }
14
+ else {
15
+ this.debugLog(`Feature not supported: ${feature}`);
16
+ }
17
+ });
18
+ }
19
+ async handleGetOn() {
20
+ try {
21
+ // TODO: Replace with actual ERD code for dryer On state if available
22
+ // const erdValue = await this.readErd(ERD_TYPES.CLOTHES_DRYER_ON)
23
+ // return Number.parseInt(erdValue) !== 0
24
+ return this.ClothesDryer?.On ?? false;
25
+ }
26
+ catch (error) {
27
+ this.warnLog?.(`ClothesDryer handleGetOn error: ${error?.message ?? error}`);
28
+ return false;
29
+ }
30
+ }
31
+ async handleSetOn(value) {
32
+ try {
33
+ // TODO: Replace with actual ERD code for dryer On state if available
34
+ // await this.writeErd(ERD_TYPES.CLOTHES_DRYER_ON, value as boolean)
35
+ this.ClothesDryer.On = value;
36
+ }
37
+ catch (error) {
38
+ this.warnLog?.(`ClothesDryer handleSetOn error: ${error?.message ?? error}`);
39
+ }
40
+ }
41
+ }
42
+ //# sourceMappingURL=clothesDryer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clothesDryer.js","sourceRoot":"","sources":["../../src/devices/clothesDryer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IACzC,YAAY,CAEnB;IAED,YACE,QAAa,EACb,SAA4C,EAC5C,MAAW;QAEX,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC7F,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE;YAC5D,IAAI,OAAO,KAAK,6BAA6B,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;gBACjK,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;qBACrD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAClC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACvC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAA;YACpD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,qEAAqE;YACrE,kEAAkE;YAClE,yCAAyC;YACzC,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,KAAK,CAAA;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,EAAE,CAAC,mCAAmC,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAA;YAC5E,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA0B;QAC1C,IAAI,CAAC;YACH,qEAAqE;YACrE,oEAAoE;YACpE,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,EAAE,CAAC,mCAAmC,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
2
+ import type { SmartHqContext } from '../settings.js';
3
+ import { deviceBase } from './device';
4
+ export declare class SmartHQClothesWasher extends deviceBase {
5
+ private ClothesWasher;
6
+ constructor(platform: any, accessory: PlatformAccessory<SmartHqContext>, device: any);
7
+ handleGetOn(): Promise<CharacteristicValue>;
8
+ handleSetOn(value: CharacteristicValue): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=clothesWasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clothesWasher.d.ts","sourceRoot":"","sources":["../../src/devices/clothesWasher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,OAAO,CAAC,aAAa,CAEpB;gBAGC,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,MAAM,EAAE,GAAG;IAgBP,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAY3C,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAS7D"}
@@ -0,0 +1,42 @@
1
+ import { deviceBase } from './device';
2
+ export class SmartHQClothesWasher extends deviceBase {
3
+ ClothesWasher;
4
+ constructor(platform, accessory, device) {
5
+ super(platform, accessory, device);
6
+ this.debugLog(`Clothes Washer Features: ${JSON.stringify(accessory.context.device.features)}`);
7
+ accessory.context.device.features.forEach((feature) => {
8
+ if (feature === 'CLOTHES_WASHER_V1_FOUNDATION') {
9
+ const washer = this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.Switch, accessory.displayName, 'Clothes Washer');
10
+ washer.getCharacteristic(this.platform.Characteristic.On)
11
+ .onGet(this.handleGetOn.bind(this))
12
+ .onSet(this.handleSetOn.bind(this));
13
+ }
14
+ else {
15
+ this.debugLog(`Feature not supported: ${feature}`);
16
+ }
17
+ });
18
+ }
19
+ async handleGetOn() {
20
+ try {
21
+ // TODO: Replace with actual ERD code for washer On state if available
22
+ // const erdValue = await this.readErd(ERD_TYPES.CLOTHES_WASHER_ON)
23
+ // return Number.parseInt(erdValue) !== 0
24
+ return this.ClothesWasher?.On ?? false;
25
+ }
26
+ catch (error) {
27
+ this.warnLog(`ClothesWasher handleGetOn error: ${error?.message ?? error}`);
28
+ return false;
29
+ }
30
+ }
31
+ async handleSetOn(value) {
32
+ try {
33
+ // TODO: Replace with actual ERD code for washer On state if available
34
+ // await this.writeErd(ERD_TYPES.CLOTHES_WASHER_ON, value as boolean)
35
+ this.ClothesWasher.On = value;
36
+ }
37
+ catch (error) {
38
+ this.warnLog(`ClothesWasher handleSetOn error: ${error?.message ?? error}`);
39
+ }
40
+ }
41
+ }
42
+ //# sourceMappingURL=clothesWasher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clothesWasher.js","sourceRoot":"","sources":["../../src/devices/clothesWasher.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,MAAM,OAAO,oBAAqB,SAAQ,UAAU;IAC1C,aAAa,CAEpB;IAED,YACE,QAAa,EACb,SAA4C,EAC5C,MAAW;QAEX,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC9F,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,EAAE;YAC5D,IAAI,OAAO,KAAK,8BAA8B,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;gBACnK,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;qBACtD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAClC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACvC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAA;YACpD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,sEAAsE;YACtE,mEAAmE;YACnE,yCAAyC;YACzC,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,KAAK,CAAA;QACxC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,oCAAoC,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAA;YAC3E,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA0B;QAC1C,IAAI,CAAC;YACH,sEAAsE;YACtE,qEAAqE;YACrE,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,KAAK,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,oCAAoC,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"dishwasher.d.ts","sourceRoot":"","sources":["../../src/devices/dishwasher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAA;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,iBAAkB,SAAQ,UAAU;IAa7C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAb3D,OAAO,CAAC,UAAU,CAIjB;IAGD,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAiCrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAWpD"}
1
+ {"version":3,"file":"dishwasher.d.ts","sourceRoot":"","sources":["../../src/devices/dishwasher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAA;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,iBAAkB,SAAQ,UAAU;IAa7C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAb3D,OAAO,CAAC,UAAU,CAIjB;IAGD,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IA4CrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAWpD"}
@@ -16,15 +16,30 @@ export class SmartHQDishWasher extends deviceBase {
16
16
  this.device = device;
17
17
  this.debugLog(`Dishwasher Features: ${JSON.stringify(accessory.context.device.features)}`);
18
18
  accessory.context.device.features.forEach((feature) => {
19
- switch (feature) {
20
- case 'DISHWASHER_V1_FOUNDATION': {
21
- const dishwasher = this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.Lightbulb, accessory.displayName, 'Dishwasher');
22
- dishwasher
23
- .getCharacteristic(this.platform.Characteristic.On)
24
- .onGet(() => this.readErd(ERD_TYPES.DISHWASHER_CYCLE).then(r => Number.parseInt(r) !== 0))
25
- .onSet(value => this.writeErd(ERD_TYPES.DISHWASHER_CYCLE, value));
26
- break;
27
- }
19
+ if (feature === 'DISHWASHER_V1_FOUNDATION') {
20
+ const dishwasher = this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.Lightbulb, accessory.displayName, 'Dishwasher');
21
+ dishwasher
22
+ .getCharacteristic(this.platform.Characteristic.On)
23
+ .onGet(async () => {
24
+ try {
25
+ return await this.readErd(ERD_TYPES.DISHWASHER_CYCLE).then(r => Number.parseInt(r) !== 0);
26
+ }
27
+ catch (error) {
28
+ this.warnLog?.(`Dishwasher handleGetOn error: ${error?.message ?? error}`);
29
+ return false;
30
+ }
31
+ })
32
+ .onSet(async (value) => {
33
+ try {
34
+ await this.writeErd(ERD_TYPES.DISHWASHER_CYCLE, value);
35
+ }
36
+ catch (error) {
37
+ this.warnLog?.(`Dishwasher handleSetOn error: ${error?.message ?? error}`);
38
+ }
39
+ });
40
+ }
41
+ else {
42
+ this.debugLog(`Feature not supported: ${feature}`);
28
43
  }
29
44
  });
30
45
  // this is subject we use to track when we need to POST changes to the SmartHQ API
@@ -1 +1 @@
1
- {"version":3,"file":"dishwasher.js","sourceRoot":"","sources":["../../src/devices/dishwasher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dishwasher.js","sourceRoot":"","sources":["../../src/devices/dishwasher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oven.d.ts","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAOnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,WAAY,SAAQ,UAAU;IAEvC,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;gBAFhD,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAuCrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAWpD"}
1
+ {"version":3,"file":"oven.d.ts","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAOnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,WAAY,SAAQ,UAAU;IAEvC,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;gBAFhD,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAuDrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAUpD"}
@@ -11,42 +11,66 @@ export class SmartHQOven extends deviceBase {
11
11
  this.device = device;
12
12
  this.debugLog(`Oven Features: ${JSON.stringify(accessory.context.device.features)}`);
13
13
  accessory.context.device.features.forEach((feature) => {
14
- switch (feature) {
15
- case 'COOKING_V1_UPPER_OVEN_FOUNDATION': {
16
- const ovenLight = this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.Lightbulb, accessory.displayName, 'Oven');
17
- ovenLight
18
- .getCharacteristic(this.platform.Characteristic.On)
19
- .onGet(() => this.readErd(ERD_TYPES.UPPER_OVEN_LIGHT).then(r => Number.parseInt(r) !== 0))
20
- .onSet(value => this.writeErd(ERD_TYPES.UPPER_OVEN_LIGHT, value));
21
- break;
22
- }
23
- case 'COOKING_V1_EXTENDED_COOKTOP_FOUNDATION': {
24
- this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.StatefulProgrammableSwitch, accessory.displayName, 'Oven')
25
- .getCharacteristic(this.platform.Characteristic.TargetTemperature)
26
- .onGet(async () => {
14
+ if (feature === 'COOKING_V1_UPPER_OVEN_FOUNDATION') {
15
+ const ovenLight = this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.Lightbulb, accessory.displayName, 'Oven');
16
+ ovenLight
17
+ .getCharacteristic(this.platform.Characteristic.On)
18
+ .onGet(async () => {
19
+ try {
20
+ return await this.readErd(ERD_TYPES.UPPER_OVEN_LIGHT).then(r => Number.parseInt(r) !== 0);
21
+ }
22
+ catch (error) {
23
+ this.warnLog?.(`Oven handleGetOn error: ${error?.message ?? error}`);
24
+ return false;
25
+ }
26
+ })
27
+ .onSet(async (value) => {
28
+ try {
29
+ await this.writeErd(ERD_TYPES.UPPER_OVEN_LIGHT, value);
30
+ }
31
+ catch (error) {
32
+ this.warnLog?.(`Oven handleSetOn error: ${error?.message ?? error}`);
33
+ }
34
+ });
35
+ }
36
+ else if (feature === 'COOKING_V1_EXTENDED_COOKTOP_FOUNDATION') {
37
+ this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.StatefulProgrammableSwitch, accessory.displayName, 'Oven')
38
+ .getCharacteristic(this.platform.Characteristic.TargetTemperature)
39
+ .onGet(async () => {
40
+ try {
27
41
  const erdVal = await this.readErd(ERD_TYPES.UPPER_OVEN_COOK_MODE);
28
42
  const b = Buffer.from(erdVal, 'hex');
29
43
  return fToC(b.readUint16BE(1));
30
- })
31
- .onSet(async (value) => {
44
+ }
45
+ catch (error) {
46
+ this.warnLog?.(`Oven handleGetTargetTemperature error: ${error?.message ?? error}`);
47
+ return 0;
48
+ }
49
+ })
50
+ .onSet(async (value) => {
51
+ try {
32
52
  const fTarget = cToF(value);
33
53
  const erdVal = await this.readErd(ERD_TYPES.UPPER_OVEN_COOK_MODE);
34
54
  const b = Buffer.from(erdVal, 'hex');
35
55
  b.writeUint16BE(fTarget, 1);
36
56
  return this.writeErd(ERD_TYPES.UPPER_OVEN_COOK_MODE, b.toString('hex'));
37
- });
38
- }
57
+ }
58
+ catch (error) {
59
+ this.warnLog?.(`Oven handleSetTargetTemperature error: ${error?.message ?? error}`);
60
+ }
61
+ });
62
+ }
63
+ else {
64
+ this.debugLog(`Feature not supported: ${feature}`);
39
65
  }
40
66
  });
41
67
  }
42
68
  async readErd(erd) {
43
- const d = await axios
44
- .get(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`);
69
+ const d = await axios.get(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`);
45
70
  return String(d.data.value);
46
71
  }
47
72
  async writeErd(erd, value) {
48
- await axios
49
- .post(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`, {
73
+ await axios.post(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`, {
50
74
  kind: 'appliance#erdListEntry',
51
75
  userId: this.accessory.context.userId,
52
76
  applianceId: this.accessory.context.device.applianceId,
@@ -1 +1 @@
1
- {"version":3,"file":"oven.js","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oven.js","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refrigerator.d.ts","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,mBAAoB,SAAQ,UAAU;IAM/C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAN3D,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAoCrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAWpD"}
1
+ {"version":3,"file":"refrigerator.d.ts","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,mBAAoB,SAAQ,UAAU;IAM/C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAN3D,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;gBAGN,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAgCrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAWpD"}
@@ -13,21 +13,17 @@ export class SmartHQRefrigerator extends deviceBase {
13
13
  this.platform = platform;
14
14
  this.device = device;
15
15
  this.debugLog(`Refrigerator Features: ${JSON.stringify(accessory.context.device.features)}`);
16
- accessory.context.device.features.forEach((feature) => {
17
- /* [
18
- "DOOR_STATUS"
19
- ] */
20
- switch (feature) {
21
- case 'DOOR_STATUS': {
22
- const refrigerator = this.accessory.getService(accessory.displayName) ?? this.accessory.addService(this.platform.Service.ContactSensor, accessory.displayName, 'Refrigerator');
23
- refrigerator
24
- .getCharacteristic(this.platform.Characteristic.ContactSensorState)
25
- .onGet(() => this.readErd(ERD_TYPES.DOOR_STATUS).then(r => Number.parseInt(r) !== 0))
26
- .onSet(value => this.writeErd(ERD_TYPES.DOOR_STATUS, value));
27
- break;
28
- }
29
- }
30
- });
16
+ // Add separate contact sensors for refrigerator and door status
17
+ // Refrigerator Door Sensor
18
+ const doorSensorService = this.accessory.getService('Refrigerator Door') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Refrigerator Door', 'RefrigeratorDoor');
19
+ doorSensorService
20
+ .getCharacteristic(this.platform.Characteristic.ContactSensorState)
21
+ .onGet(() => this.readErd(ERD_TYPES.DOOR_STATUS).then(r => Number.parseInt(r) !== 0));
22
+ // Refrigerator Main Sensor (if you want a separate one, e.g. for overall status)
23
+ const fridgeSensorService = this.accessory.getService('Refrigerator') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Refrigerator', 'RefrigeratorMain');
24
+ fridgeSensorService
25
+ .getCharacteristic(this.platform.Characteristic.ContactSensorState)
26
+ .onGet(() => this.readErd(ERD_TYPES.FRIDGE_MODEL_INFO).then(r => Number.parseInt(r) !== 0));
31
27
  // this is subject we use to track when we need to POST changes to the SmartHQ API
32
28
  this.SensorUpdateInProgress = false;
33
29
  // Retrieve initial values and updateHomekit
@@ -1 +1 @@
1
- {"version":3,"file":"refrigerator.js","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refrigerator.js","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,8 @@ export declare class SmartHQPlatform implements DynamicPlatformPlugin {
43
43
  private createSmartHQRefrigerator;
44
44
  private createSmartHQAirConditioner;
45
45
  private createSmartHQHood;
46
+ private createSmartHQClothesWasher;
47
+ private createSmartHQClothesDryer;
46
48
  unregisterPlatformAccessories(existingAccessory: PlatformAccessory): Promise<void>;
47
49
  getPlatformLogSettings(): Promise<void>;
48
50
  getPlatformRateSettings(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG7F,OAAO,KAAK,EAA8B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAsB/G;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,qBAAqB;IACpD,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAA;IACvD,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,SAAgB,GAAG,EAAE,OAAO,CAAA;IAC5B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACpB,MAAM,EAAG,qBAAqB,CAAA;IAE9B,OAAO,EAAG,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;IACrC,cAAc,EAAG,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAA;IAC1D,OAAO,CAAC,QAAQ,CAAW;IAE3B,cAAc,EAAG,qBAAqB,CAAA;IACtC,eAAe,EAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACpC,mBAAmB,EAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5C,gBAAgB,EAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACtC,kBAAkB,EAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1C,SAAS,EAAG,OAAO,CAAA;IACnB,OAAO,EAAG,MAAM,CAAA;gBAGd,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,qBAAqB,EAC7B,GAAG,EAAE,GAAG;IA0DV;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;OAEG;IACG,YAAY;IAaZ,sBAAsB;IA+B5B;;;OAGG;IACG,eAAe;YA6HP,uBAAuB;YAiDvB,iBAAiB;YAiDjB,qBAAqB;YAgDrB,yBAAyB;YAiDzB,2BAA2B;YAiD3B,iBAAiB;IAoClB,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB;IAMzE,sBAAsB;IAUtB,uBAAuB;IAevB,yBAAyB;IAgB/B;;;;;;;;OAQG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;;;OAMG;IACG,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCpG;;;OAGG;IACG,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,eAAe,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,YAAY,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,aAAa,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;CAGlD"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAG7F,OAAO,KAAK,EAA8B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAsB/G;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,qBAAqB;IACpD,WAAW,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAA;IACvD,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,SAAgB,GAAG,EAAE,OAAO,CAAA;IAC5B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACpB,MAAM,EAAG,qBAAqB,CAAA;IAE9B,OAAO,EAAG,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;IACrC,cAAc,EAAG,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAA;IAC1D,OAAO,CAAC,QAAQ,CAAW;IAE3B,cAAc,EAAG,qBAAqB,CAAA;IACtC,eAAe,EAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACpC,mBAAmB,EAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5C,gBAAgB,EAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACtC,kBAAkB,EAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1C,SAAS,EAAG,OAAO,CAAA;IACnB,OAAO,EAAG,MAAM,CAAA;gBAGd,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,qBAAqB,EAC7B,GAAG,EAAE,GAAG;IA0DV;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAO/C;;OAEG;IACG,YAAY;IAaZ,sBAAsB;IA+B5B;;;OAGG;IACG,eAAe;YAmIP,uBAAuB;YAiDvB,iBAAiB;YAiDjB,qBAAqB;YAgDrB,yBAAyB;YAiDzB,2BAA2B;YAiD3B,iBAAiB;YAoCjB,0BAA0B;YAmC1B,yBAAyB;IAmC1B,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB;IAMzE,sBAAsB;IAUtB,uBAAuB;IAevB,yBAAyB;IAgB/B;;;;;;;;OAQG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;;;OAMG;IACG,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCpG;;;OAGG;IACG,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,eAAe,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,YAAY,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,aAAa,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;CAGlD"}