node-switchbot 2.3.1-beta.2 → 2.4.0-beta.0

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 (83) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/advertising.d.ts +137 -6
  3. package/dist/advertising.d.ts.map +1 -1
  4. package/dist/advertising.js +19 -17
  5. package/dist/advertising.js.map +1 -1
  6. package/dist/device/woblindtilt.d.ts +3 -25
  7. package/dist/device/woblindtilt.d.ts.map +1 -1
  8. package/dist/device/woblindtilt.js +31 -135
  9. package/dist/device/woblindtilt.js.map +1 -1
  10. package/dist/device/wobulb.d.ts +1 -0
  11. package/dist/device/wobulb.d.ts.map +1 -1
  12. package/dist/device/wobulb.js +31 -37
  13. package/dist/device/wobulb.js.map +1 -1
  14. package/dist/device/woceilinglight.d.ts +1 -0
  15. package/dist/device/woceilinglight.d.ts.map +1 -1
  16. package/dist/device/woceilinglight.js +51 -57
  17. package/dist/device/woceilinglight.js.map +1 -1
  18. package/dist/device/wocontact.d.ts +1 -0
  19. package/dist/device/wocontact.d.ts.map +1 -1
  20. package/dist/device/wocontact.js +7 -11
  21. package/dist/device/wocontact.js.map +1 -1
  22. package/dist/device/wocurtain.d.ts +13 -1
  23. package/dist/device/wocurtain.d.ts.map +1 -1
  24. package/dist/device/wocurtain.js +31 -46
  25. package/dist/device/wocurtain.js.map +1 -1
  26. package/dist/device/wohand.d.ts +1 -0
  27. package/dist/device/wohand.d.ts.map +1 -1
  28. package/dist/device/wohand.js +7 -6
  29. package/dist/device/wohand.js.map +1 -1
  30. package/dist/device/wohub2.d.ts +1 -0
  31. package/dist/device/wohub2.d.ts.map +1 -1
  32. package/dist/device/wohub2.js +1 -5
  33. package/dist/device/wohub2.js.map +1 -1
  34. package/dist/device/wohumi.d.ts +1 -0
  35. package/dist/device/wohumi.d.ts.map +1 -1
  36. package/dist/device/wohumi.js +7 -6
  37. package/dist/device/wohumi.js.map +1 -1
  38. package/dist/device/woiosensorth.d.ts +4 -1
  39. package/dist/device/woiosensorth.d.ts.map +1 -1
  40. package/dist/device/woiosensorth.js +3 -5
  41. package/dist/device/woiosensorth.js.map +1 -1
  42. package/dist/device/woplugmini.d.ts +1 -0
  43. package/dist/device/woplugmini.d.ts.map +1 -1
  44. package/dist/device/woplugmini.js +19 -19
  45. package/dist/device/woplugmini.js.map +1 -1
  46. package/dist/device/wopresence.d.ts +1 -0
  47. package/dist/device/wopresence.d.ts.map +1 -1
  48. package/dist/device/wopresence.js +10 -14
  49. package/dist/device/wopresence.js.map +1 -1
  50. package/dist/device/wosensorth.d.ts +7 -2
  51. package/dist/device/wosensorth.d.ts.map +1 -1
  52. package/dist/device/wosensorth.js +6 -6
  53. package/dist/device/wosensorth.js.map +1 -1
  54. package/dist/device/wosmartlock.d.ts +2 -1
  55. package/dist/device/wosmartlock.d.ts.map +1 -1
  56. package/dist/device/wosmartlock.js +42 -41
  57. package/dist/device/wosmartlock.js.map +1 -1
  58. package/dist/device/wosmartlockpro.d.ts +3 -2
  59. package/dist/device/wosmartlockpro.d.ts.map +1 -1
  60. package/dist/device/wosmartlockpro.js +41 -40
  61. package/dist/device/wosmartlockpro.js.map +1 -1
  62. package/dist/device/wostrip.d.ts +3 -2
  63. package/dist/device/wostrip.d.ts.map +1 -1
  64. package/dist/device/wostrip.js +29 -35
  65. package/dist/device/wostrip.js.map +1 -1
  66. package/dist/device.d.ts +12 -9
  67. package/dist/device.d.ts.map +1 -1
  68. package/dist/device.js +17 -14
  69. package/dist/device.js.map +1 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/parameter-checker.d.ts +3 -3
  73. package/dist/parameter-checker.d.ts.map +1 -1
  74. package/dist/parameter-checker.js +25 -67
  75. package/dist/parameter-checker.js.map +1 -1
  76. package/dist/switchbot.d.ts +4 -4
  77. package/dist/switchbot.d.ts.map +1 -1
  78. package/dist/switchbot.js +16 -18
  79. package/dist/switchbot.js.map +1 -1
  80. package/dist/types.d.ts +2 -2
  81. package/dist/types.d.ts.map +1 -1
  82. package/eslint.config.js +41 -76
  83. package/package.json +38 -38
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
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
+ ## [2.4.0](https://github.com/OpenWonderLabs/node-switchbot/releases/tag/v2.4.0) (2024-09-11)
6
+
7
+ ### What's Changed
8
+ - Added `celcius` and `fahrenheit` as based values sent for Sensors
9
+ - Housekeeping and update dependencies
10
+
11
+ **Full Changelog**: https://github.com/OpenWonderLabs/node-switchbot/compare/v2.3.0...v2.4.0
12
+
5
13
  ## [2.3.0](https://github.com/OpenWonderLabs/node-switchbot/releases/tag/v2.3.0) (2024-07-21)
6
14
 
7
15
  ### What's Changed
@@ -1,14 +1,11 @@
1
- import { Peripheral } from '@stoprocent/noble';
1
+ import type { Peripheral } from '@stoprocent/noble';
2
+ import { SwitchBotBLEModel } from './types.js';
2
3
  export type Ad = {
3
4
  id: string;
4
5
  address: string;
5
6
  rssi: number;
6
7
  serviceData: Record<string, unknown>;
7
8
  } | null;
8
- export type AdvertisementData = {
9
- serviceData: Buffer | null;
10
- manufacturerData: Buffer | null;
11
- };
12
9
  export declare class Advertising {
13
10
  constructor();
14
11
  /**
@@ -22,7 +19,141 @@ export declare class Advertising {
22
19
  id: string;
23
20
  address: string;
24
21
  rssi: number;
25
- serviceData: {};
22
+ serviceData: {
23
+ model: SwitchBotBLEModel;
24
+ modelName: import("./types.js").SwitchBotBLEModelName;
25
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
26
+ mode: boolean;
27
+ state: boolean;
28
+ battery: number;
29
+ } | {
30
+ model: string;
31
+ modelName: import("./types.js").SwitchBotBLEModelName;
32
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
33
+ calibration: boolean;
34
+ battery: number;
35
+ inMotion: boolean;
36
+ position: number;
37
+ lightLevel: number;
38
+ deviceChain: number;
39
+ } | {
40
+ model: SwitchBotBLEModel;
41
+ modelName: import("./types.js").SwitchBotBLEModelName;
42
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
43
+ onState: boolean;
44
+ autoMode: boolean;
45
+ percentage: number;
46
+ humidity: number;
47
+ } | {
48
+ model: SwitchBotBLEModel;
49
+ modelName: import("./types.js").SwitchBotBLEModelName;
50
+ modelFriendlyName: string;
51
+ temperature: {
52
+ c: number;
53
+ f: number;
54
+ };
55
+ celsius: number;
56
+ fahrenheit: number;
57
+ fahrenheit_mode: boolean;
58
+ humidity: number;
59
+ battery: number;
60
+ } | {
61
+ model: SwitchBotBLEModel;
62
+ modelName: import("./types.js").SwitchBotBLEModelName;
63
+ modelfriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
64
+ temperature: {
65
+ c: number;
66
+ f: number;
67
+ };
68
+ celsius: number;
69
+ fahrenheit: number;
70
+ fahrenheit_mode: boolean;
71
+ humidity: number;
72
+ battery: number;
73
+ } | {
74
+ model: SwitchBotBLEModel;
75
+ modelName: import("./types.js").SwitchBotBLEModelName;
76
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
77
+ temperature: {
78
+ c: number;
79
+ f: number;
80
+ };
81
+ fahrenheit: boolean;
82
+ humidity: number;
83
+ lightLevel: number;
84
+ } | {
85
+ model: SwitchBotBLEModel;
86
+ modelName: import("./types.js").SwitchBotBLEModelName;
87
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
88
+ tested: boolean;
89
+ movement: boolean;
90
+ battery: number;
91
+ led: number;
92
+ iot: number;
93
+ sense_distance: number;
94
+ lightLevel: string;
95
+ is_light: boolean;
96
+ } | {
97
+ model: SwitchBotBLEModel;
98
+ modelName: import("./types.js").SwitchBotBLEModelName;
99
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
100
+ movement: boolean;
101
+ tested: number;
102
+ battery: number;
103
+ contact_open: boolean;
104
+ contact_timeout: boolean;
105
+ lightLevel: string;
106
+ button_count: number;
107
+ doorState: string;
108
+ } | {
109
+ model: SwitchBotBLEModel;
110
+ modelName: import("./types.js").SwitchBotBLEModelName;
111
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
112
+ state: boolean;
113
+ brightness: number;
114
+ red: number;
115
+ green: number;
116
+ blue: number;
117
+ delay: number;
118
+ preset: number;
119
+ color_mode: number;
120
+ speed: number;
121
+ loop_index: number;
122
+ } | {
123
+ model: SwitchBotBLEModel;
124
+ modelName: import("./types.js").SwitchBotBLEModelName;
125
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
126
+ state: string | null;
127
+ delay: boolean;
128
+ timer: boolean;
129
+ syncUtcTime: boolean;
130
+ wifiRssi: number;
131
+ overload: boolean;
132
+ currentPower: number;
133
+ } | {
134
+ model: SwitchBotBLEModel;
135
+ modelName: import("./types.js").SwitchBotBLEModelName;
136
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
137
+ battery: number;
138
+ calibration: boolean;
139
+ status: string;
140
+ update_from_secondary_lock: boolean;
141
+ door_open: boolean;
142
+ double_lock_mode: boolean;
143
+ unclosed_alarm: boolean;
144
+ unlocked_alarm: boolean;
145
+ auto_lock_paused: boolean;
146
+ night_latch: boolean;
147
+ } | {
148
+ model: SwitchBotBLEModel;
149
+ modelName: import("./types.js").SwitchBotBLEModelName;
150
+ modelFriendlyName: import("./types.js").SwitchBotBLEModelFriendlyName;
151
+ calibration: boolean;
152
+ battery: number;
153
+ inMotion: boolean;
154
+ tilt: number;
155
+ lightLevel: number;
156
+ };
26
157
  } | null;
27
158
  }
28
159
  //# sourceMappingURL=advertising.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAmB/C,MAAM,MAAM,EAAE,GAAG;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAA;AAED,qBAAa,WAAW;;IA6DtB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;;;;;;CAiHvE"}
1
+ {"version":3,"file":"advertising.d.ts","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAmBnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,MAAM,EAAE,GAAG;IACf,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,GAAG,IAAI,CAAA;AAER,qBAAa,WAAW;;IA4DtB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2HvE"}
@@ -1,18 +1,19 @@
1
- import { WoHand } from './device/wohand.js';
2
- import { WoCurtain } from './device/wocurtain.js';
1
+ import { Buffer } from 'node:buffer';
3
2
  import { WoBlindTilt } from './device/woblindtilt.js';
4
- import { WoPresence } from './device/wopresence.js';
3
+ import { WoBulb } from './device/wobulb.js';
4
+ import { WoCeilingLight } from './device/woceilinglight.js';
5
5
  import { WoContact } from './device/wocontact.js';
6
- import { WoSensorTH } from './device/wosensorth.js';
7
- import { WoIOSensorTH } from './device/woiosensorth.js';
6
+ import { WoCurtain } from './device/wocurtain.js';
7
+ import { WoHand } from './device/wohand.js';
8
8
  import { WoHub2 } from './device/wohub2.js';
9
9
  import { WoHumi } from './device/wohumi.js';
10
+ import { WoIOSensorTH } from './device/woiosensorth.js';
10
11
  import { WoPlugMini } from './device/woplugmini.js';
11
- import { WoBulb } from './device/wobulb.js';
12
- import { WoCeilingLight } from './device/woceilinglight.js';
13
- import { WoStrip } from './device/wostrip.js';
12
+ import { WoPresence } from './device/wopresence.js';
13
+ import { WoSensorTH } from './device/wosensorth.js';
14
14
  import { WoSmartLock } from './device/wosmartlock.js';
15
15
  import { WoSmartLockPro } from './device/wosmartlockpro.js';
16
+ import { WoStrip } from './device/wostrip.js';
16
17
  import { SwitchBotBLEModel } from './types.js';
17
18
  export class Advertising {
18
19
  constructor() { }
@@ -88,10 +89,11 @@ export class Advertising {
88
89
  const serviceData = ad.serviceData[0] || ad.serviceData;
89
90
  const manufacturerData = ad.manufacturerData;
90
91
  const buf = serviceData.data;
91
- function validateBuffer(buffer) {
92
- return buffer && Buffer.isBuffer(buffer) && buffer.length >= 3;
93
- }
94
- if (!validateBuffer(buf) || !validateBuffer(manufacturerData)) {
92
+ const bufIsInvalid = !buf || !Buffer.isBuffer(buf) || buf.length < 3;
93
+ const manufacturerDataIsInvalid = !manufacturerData
94
+ || !Buffer.isBuffer(manufacturerData)
95
+ || manufacturerData.length < 3;
96
+ if (bufIsInvalid || manufacturerDataIsInvalid) {
95
97
  return null;
96
98
  }
97
99
  const model = buf.subarray(0, 1).toString('utf8');
@@ -102,7 +104,7 @@ export class Advertising {
102
104
  break;
103
105
  case SwitchBotBLEModel.Curtain:
104
106
  case SwitchBotBLEModel.Curtain3:
105
- sd = WoCurtain.parseServiceData(buf, manufacturerData, onlog);
107
+ sd = WoCurtain.parseServiceData(buf, onlog);
106
108
  break;
107
109
  case SwitchBotBLEModel.Humidifier:
108
110
  sd = WoHumi.parseServiceData(buf, onlog);
@@ -150,7 +152,7 @@ export class Advertising {
150
152
  sd = WoSmartLockPro.parseServiceData(buf, manufacturerData, onlog);
151
153
  break;
152
154
  case SwitchBotBLEModel.BlindTilt:
153
- sd = WoBlindTilt.parseServiceData(buf, manufacturerData, onlog);
155
+ sd = WoBlindTilt.parseServiceData(buf, onlog);
154
156
  break;
155
157
  default:
156
158
  if (onlog && typeof onlog === 'function') {
@@ -170,9 +172,9 @@ export class Advertising {
170
172
  .toString('hex')
171
173
  .slice(4, 16);
172
174
  if (str !== '') {
173
- address = str.substring(0, 2);
175
+ address = str.substr(0, 2);
174
176
  for (let i = 2; i < str.length; i += 2) {
175
- address = address + ':' + str.substring(i, i + 2);
177
+ address = `${address}:${str.substr(i, 2)}`;
176
178
  }
177
179
  }
178
180
  }
@@ -181,7 +183,7 @@ export class Advertising {
181
183
  }
182
184
  const data = {
183
185
  id: peripheral.id,
184
- address: address,
186
+ address,
185
187
  rssi: peripheral.rssi,
186
188
  serviceData: sd,
187
189
  };
@@ -1 +1 @@
1
- {"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advertising.js","sourceRoot":"","sources":["../src/advertising.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAS9C,MAAM,OAAO,WAAW;IACtB,gBAAgB,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0EAwDsE;IACtE;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,UAAsB,EAAE,KAAiC;QACpE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAA;QACnC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,CAAA;QACvD,MAAM,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAA;QAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAA;QAE5B,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;QACpE,MAAM,yBAAyB,GAC3B,CAAC,gBAAgB;eAChB,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;eAClC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAA;QAEhC,IAAI,YAAY,IAAI,yBAAyB,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACjD,IAAI,EAAE,CAAA;QACN,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,iBAAiB,CAAC,GAAG;gBACxB,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACxC,MAAK;YACP,KAAK,iBAAiB,CAAC,OAAO,CAAC;YAC/B,KAAK,iBAAiB,CAAC,QAAQ;gBAC7B,EAAE,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC3C,MAAK;YACP,KAAK,iBAAiB,CAAC,UAAU;gBAC/B,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACxC,MAAK;YACP,KAAK,iBAAiB,CAAC,KAAK;gBAC1B,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC5C,MAAK;YACP,KAAK,iBAAiB,CAAC,SAAS;gBAC9B,EAAE,GAAG,UAAU,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACjD,MAAK;YACP,KAAK,iBAAiB,CAAC,IAAI;gBACzB,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;gBACrD,MAAK;YACP,KAAK,iBAAiB,CAAC,YAAY;gBACjC,EAAE,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;gBAChE,MAAK;YACP,KAAK,iBAAiB,CAAC,YAAY;gBACjC,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC5C,MAAK;YACP,KAAK,iBAAiB,CAAC,aAAa;gBAClC,EAAE,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC3C,MAAK;YACP,KAAK,iBAAiB,CAAC,SAAS;gBAC9B,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;gBACrD,MAAK;YACP,KAAK,iBAAiB,CAAC,YAAY;gBACjC,EAAE,GAAG,cAAc,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;gBAC7D,MAAK;YACP,KAAK,iBAAiB,CAAC,eAAe;gBACpC,EAAE,GAAG,cAAc,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;gBACjE,MAAK;YACP,KAAK,iBAAiB,CAAC,UAAU;gBAC/B,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACzC,MAAK;YACP,KAAK,iBAAiB,CAAC,UAAU;gBAC/B,EAAE,GAAG,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;gBAC5D,MAAK;YACP,KAAK,iBAAiB,CAAC,UAAU;gBAC/B,EAAE,GAAG,UAAU,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;gBAC5D,MAAK;YACP,KAAK,iBAAiB,CAAC,IAAI;gBACzB,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;gBAC/D,MAAK;YACP,KAAK,iBAAiB,CAAC,OAAO;gBAC5B,EAAE,GAAG,cAAc,CAAC,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;gBAClE,MAAK;YACP,KAAK,iBAAiB,CAAC,SAAS;gBAC9B,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC7C,MAAK;YACP;gBACE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;oBACzC,KAAK,CACH,qBAAqB,UAAU,CAAC,EAAE,yBAAyB,KAAK,kBAAkB,CACnF,CAAA;gBACH,CAAC;gBACD,OAAO,IAAI,CAAA;QACf,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,qBAAqB,UAAU,CAAC,EAAE,IAAI,KAAK,0CAA0C,CACtF,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAA;QACtC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,gBAAgB;iBAClD,QAAQ,CAAC,KAAK,CAAC;iBACf,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACf,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;gBACf,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,OAAO,GAAG,GAAG,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACtC,CAAC;QACD,MAAM,IAAI,GAAG;YACX,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,OAAO;YACP,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,WAAW,EAAE,EAAE;SAChB,CAAA;QAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YACzC,KAAK,CACH,qBAAqB,UAAU,CAAC,EAAE,IAAI,KAAK,YAAY,IAAI,CAAC,SAAS,CACnE,IAAI,CACL,EAAE,CACJ,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -1,41 +1,19 @@
1
+ import { Buffer } from 'node:buffer';
1
2
  import { SwitchbotDevice } from '../device.js';
2
3
  import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
3
4
  export declare class WoBlindTilt extends SwitchbotDevice {
4
- [x: string]: any;
5
- static parseServiceData(serviceData: Buffer, manufacturerData: Buffer, onlog: ((message: string) => void) | undefined, reverse?: boolean): {
5
+ static parseServiceData(buf: Buffer, onlog: ((message: string) => void) | undefined): {
6
6
  model: SwitchBotBLEModel;
7
7
  modelName: SwitchBotBLEModelName;
8
8
  modelFriendlyName: SwitchBotBLEModelFriendlyName;
9
9
  calibration: boolean;
10
- battery: number | null;
10
+ battery: number;
11
11
  inMotion: boolean;
12
12
  tilt: number;
13
13
  lightLevel: number;
14
- sequenceNumber: number;
15
14
  } | null;
16
15
  open(): Promise<void>;
17
- closeUp(): Promise<void>;
18
- closeDown(): Promise<void>;
19
16
  close(): Promise<void>;
20
- getPosition(): number;
21
- getBasicInfo(): Promise<{
22
- battery: any;
23
- firmware: number;
24
- light: boolean;
25
- fault: boolean;
26
- solarPanel: boolean;
27
- calibration: boolean;
28
- calibrated: boolean;
29
- inMotion: boolean;
30
- motionDirection: {
31
- opening: boolean;
32
- closing: boolean;
33
- up: boolean;
34
- down: boolean;
35
- };
36
- tilt: number;
37
- timers: any;
38
- } | null>;
39
17
  pause(): Promise<void>;
40
18
  runToPos(percent: number, mode: number): Promise<unknown>;
41
19
  _operateBlindTilt(bytes: number[]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"woblindtilt.d.ts","sourceRoot":"","sources":["../../src/device/woblindtilt.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtG,qBAAa,WAAY,SAAQ,eAAe;IAC9C,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACjB,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,OAAO,GAAE,OAAe;;;;;;;;;;;IA6C/I,IAAI;IAeJ,OAAO;IAeP,SAAS;IAeT,KAAK;IAoBL,WAAW;IAmBL,YAAY;;;;;;;;;;;;;;;;;;IAsDlB,KAAK;IAeL,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAiCtC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE;CAqBlC"}
1
+ {"version":3,"file":"woblindtilt.d.ts","sourceRoot":"","sources":["../../src/device/woblindtilt.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErG,qBAAa,WAAY,SAAQ,eAAe;IAC9C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;IA2CnF,IAAI;IAeJ,KAAK;IAeL,KAAK;IAeL,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAgCtC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE;CAqBlC"}
@@ -2,68 +2,39 @@
2
2
  *
3
3
  * woblindtilt.ts: Switchbot BLE API registration.
4
4
  */
5
+ import { Buffer } from 'node:buffer';
5
6
  import { SwitchbotDevice } from '../device.js';
6
7
  import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
7
8
  export class WoBlindTilt extends SwitchbotDevice {
8
- static parseServiceData(serviceData, manufacturerData, onlog, reverse = false) {
9
- if (manufacturerData.length !== 5 && manufacturerData.length !== 6) {
9
+ static parseServiceData(buf, onlog) {
10
+ if (buf.length !== 5 && buf.length !== 6) {
10
11
  if (onlog && typeof onlog === 'function') {
11
- onlog(`[parseServiceDataForWoBlindTilt] Buffer length ${manufacturerData.length} !== 5 or 6!`);
12
+ onlog(`[parseServiceDataForWoBlindTilt] Buffer length ${buf.length} !== 5 or 6!`);
12
13
  }
13
14
  return null;
14
15
  }
15
- const byte2 = serviceData.readUInt8(2);
16
- const byte6 = manufacturerData.subarray(6);
17
- const tilt = Math.max(Math.min(byte6.readUInt8(2) & 0b01111111, 100), 0); // current tilt % (100 - _tilt) if reverse else _tilt,
18
- const inMotion = byte6.readUInt8(2) & 0b10000000 ? true : false;
19
- const lightLevel = (byte6.readUInt8(1) >> 4) & 0b00001111; // light sensor level (1-10)
20
- const calibration = byte6.readUInt8(1) & 0b00000001 ? true : false; // Whether the calibration is completed
21
- const sequenceNumber = byte6.readUInt8(0);
22
- const battery = serviceData.length > 2 ? byte2 & 0b01111111 : null;
16
+ const byte1 = buf.readUInt8(1);
17
+ const byte2 = buf.readUInt8(2);
18
+ const calibration = !!(byte1 & 0b00000001); // Whether the calibration is completed
19
+ const battery = byte2 & 0b01111111; // %
20
+ const inMotion = !!(byte2 & 0b10000000);
21
+ const tilt = byte2 & 0b01111111; // current tilt % (100 - _tilt) if reverse else _tilt,
22
+ const lightLevel = (byte1 >> 4) & 0b00001111; // light sensor level (1-10)
23
23
  const data = {
24
24
  model: SwitchBotBLEModel.BlindTilt,
25
25
  modelName: SwitchBotBLEModelName.BlindTilt,
26
26
  modelFriendlyName: SwitchBotBLEModelFriendlyName.BlindTilt,
27
- calibration: calibration,
28
- battery: battery,
29
- inMotion: inMotion,
30
- tilt: reverse ? (100 - tilt) : tilt,
31
- lightLevel: lightLevel,
32
- sequenceNumber: sequenceNumber,
27
+ calibration,
28
+ battery,
29
+ inMotion,
30
+ tilt,
31
+ lightLevel,
33
32
  };
34
33
  return data;
35
34
  }
36
35
  /* ------------------------------------------------------------------
37
- * open()
38
- * - open the blindtilt
39
- *
40
- * [Arguments]
41
- * - none
42
- *
43
- * [Return value]
44
- * - Promise object
45
- * Nothing will be passed to the `resolve()`.
46
- * ---------------------------------------------------------------- */
47
- open() {
48
- return this._operateBlindTilt([0x57, 0x0f, 0x45, 0x01, 0x05, 0xff, 0x32]);
49
- }
50
- /* ------------------------------------------------------------------
51
- * closeUp()
52
- * - close the blindtilt up
53
- *
54
- * [Arguments]
55
- * - none
56
- *
57
- * [Return value]
58
- * - Promise object
59
- * Nothing will be passed to the `resolve()`.
60
- * ---------------------------------------------------------------- */
61
- closeUp() {
62
- return this._operateBlindTilt([0x57, 0x0f, 0x45, 0x01, 0x05, 0xff, 0x64]);
63
- }
64
- /* ------------------------------------------------------------------
65
- * closeDown()
66
- * - close the blindtilt down
36
+ * open()
37
+ * - Open the blindtilt
67
38
  *
68
39
  * [Arguments]
69
40
  * - none
@@ -72,12 +43,12 @@ export class WoBlindTilt extends SwitchbotDevice {
72
43
  * - Promise object
73
44
  * Nothing will be passed to the `resolve()`.
74
45
  * ---------------------------------------------------------------- */
75
- closeDown() {
76
- return this._operateBlindTilt([0x57, 0x0f, 0x45, 0x01, 0x05, 0xff, 0x00]);
46
+ open() {
47
+ return this._operateBlindTilt([0x57, 0x0F, 0x45, 0x01, 0x05, 0xFF, 0x00]);
77
48
  }
78
49
  /* ------------------------------------------------------------------
79
50
  * close()
80
- * - close the blindtilt to the nearest endpoint
51
+ * - close the blindtilt
81
52
  *
82
53
  * [Arguments]
83
54
  * - none
@@ -87,81 +58,7 @@ export class WoBlindTilt extends SwitchbotDevice {
87
58
  * Nothing will be passed to the `resolve()`.
88
59
  * ---------------------------------------------------------------- */
89
60
  close() {
90
- const position = this.getPosition();
91
- if (position > 50) {
92
- return this.closeUp();
93
- }
94
- else {
95
- return this.closeDown();
96
- }
97
- }
98
- /* ------------------------------------------------------------------
99
- * getPosition()
100
- * - get the current position of the blindtilt
101
- *
102
- * [Arguments]
103
- * - none
104
- *
105
- * [Return value]
106
- * - number
107
- * The current position of the blindtilt (0-100).
108
- * ---------------------------------------------------------------- */
109
- getPosition() {
110
- // Retrieve the current tilt position using the _getAdvValue method
111
- const tiltPosition = this._getAdvValue('tilt');
112
- // Ensure the tilt position is within the valid range (0-100)
113
- return Math.max(0, Math.min(tiltPosition, 100));
114
- }
115
- /* ------------------------------------------------------------------
116
- * getBasicInfo()
117
- * - get the basic information of the blindtilt
118
- *
119
- * [Arguments]
120
- * - none
121
- *
122
- * [Return value]
123
- * - Promise object
124
- * The basic information of the blindtilt.
125
- * ---------------------------------------------------------------- */
126
- async getBasicInfo() {
127
- const data = await this._getBasicInfo();
128
- if (!data) {
129
- return null;
130
- }
131
- const tilt = Math.max(Math.min(data[6], 100), 0);
132
- const moving = Boolean(data[5] & 0b00000011);
133
- let opening = false;
134
- let closing = false;
135
- let up = false;
136
- if (moving) {
137
- opening = Boolean(data[5] & 0b00000010);
138
- closing = !opening && Boolean(data[5] & 0b00000001);
139
- if (opening) {
140
- const flag = Boolean(data[5] & 0b00000001);
141
- up = flag ? this._reverse : !flag;
142
- }
143
- else {
144
- up = tilt < 50 ? this._reverse : tilt > 50;
145
- }
146
- }
147
- return {
148
- battery: data[1],
149
- firmware: data[2] / 10.0,
150
- light: Boolean(data[4] & 0b00100000),
151
- fault: Boolean(data[4] & 0b00001000),
152
- solarPanel: Boolean(data[5] & 0b00001000),
153
- calibration: Boolean(data[5] & 0b00000100),
154
- calibrated: Boolean(data[5] & 0b00000100),
155
- inMotion: moving,
156
- motionDirection: {
157
- opening: moving && opening,
158
- closing: moving && closing,
159
- up: moving && up,
160
- down: moving && !up,
161
- },
162
- tilt: this._reverse ? 100 - tilt : tilt,
163
- timers: data[7],
164
- };
61
+ return this._operateBlindTilt([0x57, 0x0F, 0x45, 0x01, 0x05, 0xFF, 0x64]);
165
62
  }
166
63
  /* ------------------------------------------------------------------
167
64
  * pause()
@@ -175,7 +72,7 @@ export class WoBlindTilt extends SwitchbotDevice {
175
72
  * Nothing will be passed to the `resolve()`.
176
73
  * ---------------------------------------------------------------- */
177
74
  pause() {
178
- return this._operateBlindTilt([0x57, 0x0f, 0x45, 0x01, 0x00, 0xff]);
75
+ return this._operateBlindTilt([0x57, 0x0F, 0x45, 0x01, 0x00, 0xFF]);
179
76
  }
180
77
  /* ------------------------------------------------------------------
181
78
  * runToPos()
@@ -190,22 +87,21 @@ export class WoBlindTilt extends SwitchbotDevice {
190
87
  * ---------------------------------------------------------------- */
191
88
  runToPos(percent, mode) {
192
89
  if (typeof percent !== 'number') {
193
- return new Promise((_resolve, reject) => {
194
- reject(new Error('The type of target position percentage is incorrect: ' +
195
- typeof percent));
90
+ return new Promise((resolve, reject) => {
91
+ reject(new Error(`The type of target position percentage is incorrect: ${typeof percent}`));
196
92
  });
197
93
  }
198
94
  if (mode === null) {
199
- mode = 0xff;
95
+ mode = 0xFF;
200
96
  }
201
97
  else {
202
98
  if (typeof mode !== 'number') {
203
- return new Promise((_resolve, reject) => {
204
- reject(new Error('The type of running mode is incorrect: ' + typeof mode));
99
+ return new Promise((resolve, reject) => {
100
+ reject(new Error(`The type of running mode is incorrect: ${typeof mode}`));
205
101
  });
206
102
  }
207
103
  if (mode > 1) {
208
- mode = 0xff;
104
+ mode = 0xFF;
209
105
  }
210
106
  }
211
107
  if (percent > 100) {
@@ -214,7 +110,7 @@ export class WoBlindTilt extends SwitchbotDevice {
214
110
  else if (percent < 0) {
215
111
  percent = 0;
216
112
  }
217
- return this._operateBlindTilt([0x57, 0x0f, 0x45, 0x01, 0x05, mode, percent]);
113
+ return this._operateBlindTilt([0x57, 0x0F, 0x45, 0x01, 0x05, mode, percent]);
218
114
  }
219
115
  _operateBlindTilt(bytes) {
220
116
  return new Promise((resolve, reject) => {
@@ -226,7 +122,7 @@ export class WoBlindTilt extends SwitchbotDevice {
226
122
  resolve();
227
123
  }
228
124
  else {
229
- reject(new Error('The device returned an error: 0x' + res_buf.toString('hex')));
125
+ reject(new Error(`The device returned an error: 0x${res_buf.toString('hex')}`));
230
126
  }
231
127
  })
232
128
  .catch((error) => {
@@ -1 +1 @@
1
- {"version":3,"file":"woblindtilt.js","sourceRoot":"","sources":["../../src/device/woblindtilt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"woblindtilt.js","sourceRoot":"","sources":["../../src/device/woblindtilt.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Buffer } from 'node:buffer';
1
2
  import { SwitchbotDevice } from '../device.js';
2
3
  import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types.js';
3
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"wobulb.d.ts","sourceRoot":"","sources":["../../src/device/wobulb.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEtG;;GAEG;AACH,qBAAa,MAAO,SAAQ,eAAe;IACzC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;IAsDhG;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE;IAKhC;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM;IAmBhC;;OAEG;IACH,mBAAmB,CAAC,iBAAiB,EAAE,MAAM;IAmB7C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAgEnE;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;CAgC5B"}
1
+ {"version":3,"file":"wobulb.d.ts","sourceRoot":"","sources":["../../src/device/wobulb.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAErG;;GAEG;AACH,qBAAa,MAAO,SAAQ,eAAe;IACzC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;IAsDhG;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE;IAKhC;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM;IAkBhC;;OAEG;IACH,mBAAmB,CAAC,iBAAiB,EAAE,MAAM;IAkB7C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA4DnE;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;CA+B5B"}