node-switchbot 2.5.0-beta.2 → 2.5.0-beta.21

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 (197) hide show
  1. package/dist/advertising.d.ts +31 -20
  2. package/dist/advertising.d.ts.map +1 -1
  3. package/dist/advertising.js +72 -75
  4. package/dist/advertising.js.map +1 -1
  5. package/dist/device/woblindtilt.d.ts +19 -50
  6. package/dist/device/woblindtilt.d.ts.map +1 -1
  7. package/dist/device/woblindtilt.js +39 -98
  8. package/dist/device/woblindtilt.js.map +1 -1
  9. package/dist/device/wobulb.d.ts +41 -15
  10. package/dist/device/wobulb.d.ts.map +1 -1
  11. package/dist/device/wobulb.js +71 -127
  12. package/dist/device/wobulb.js.map +1 -1
  13. package/dist/device/woceilinglight.d.ts +47 -21
  14. package/dist/device/woceilinglight.d.ts.map +1 -1
  15. package/dist/device/woceilinglight.js +94 -169
  16. package/dist/device/woceilinglight.js.map +1 -1
  17. package/dist/device/wocontact.d.ts +11 -1
  18. package/dist/device/wocontact.d.ts.map +1 -1
  19. package/dist/device/wocontact.js +22 -21
  20. package/dist/device/wocontact.js.map +1 -1
  21. package/dist/device/wocurtain.d.ts +39 -1
  22. package/dist/device/wocurtain.d.ts.map +1 -1
  23. package/dist/device/wocurtain.js +68 -102
  24. package/dist/device/wocurtain.js.map +1 -1
  25. package/dist/device/wohand.d.ts +37 -2
  26. package/dist/device/wohand.d.ts.map +1 -1
  27. package/dist/device/wohand.js +54 -88
  28. package/dist/device/wohand.js.map +1 -1
  29. package/dist/device/wohub2.d.ts +11 -1
  30. package/dist/device/wohub2.d.ts.map +1 -1
  31. package/dist/device/wohub2.js +20 -28
  32. package/dist/device/wohub2.js.map +1 -1
  33. package/dist/device/wohumi.d.ts +37 -2
  34. package/dist/device/wohumi.d.ts.map +1 -1
  35. package/dist/device/wohumi.js +51 -82
  36. package/dist/device/wohumi.js.map +1 -1
  37. package/dist/device/woiosensorth.d.ts +12 -1
  38. package/dist/device/woiosensorth.d.ts.map +1 -1
  39. package/dist/device/woiosensorth.js +24 -28
  40. package/dist/device/woiosensorth.js.map +1 -1
  41. package/dist/device/woplugmini.d.ts +45 -12
  42. package/dist/device/woplugmini.d.ts.map +1 -1
  43. package/dist/device/woplugmini.js +69 -75
  44. package/dist/device/woplugmini.js.map +1 -1
  45. package/dist/device/wopresence.d.ts +11 -1
  46. package/dist/device/wopresence.d.ts.map +1 -1
  47. package/dist/device/wopresence.js +20 -26
  48. package/dist/device/wopresence.js.map +1 -1
  49. package/dist/device/wosensorth.d.ts +18 -2
  50. package/dist/device/wosensorth.d.ts.map +1 -1
  51. package/dist/device/wosensorth.js +32 -48
  52. package/dist/device/wosensorth.js.map +1 -1
  53. package/dist/device/wosmartlock.d.ts +56 -13
  54. package/dist/device/wosmartlock.d.ts.map +1 -1
  55. package/dist/device/wosmartlock.js +106 -194
  56. package/dist/device/wosmartlock.js.map +1 -1
  57. package/dist/device/wosmartlockpro.d.ts +61 -18
  58. package/dist/device/wosmartlockpro.d.ts.map +1 -1
  59. package/dist/device/wosmartlockpro.js +114 -203
  60. package/dist/device/wosmartlockpro.js.map +1 -1
  61. package/dist/device/wostrip.d.ts +37 -18
  62. package/dist/device/wostrip.d.ts.map +1 -1
  63. package/dist/device/wostrip.js +78 -124
  64. package/dist/device/wostrip.js.map +1 -1
  65. package/dist/device.d.ts +87 -224
  66. package/dist/device.d.ts.map +1 -1
  67. package/dist/device.js +123 -407
  68. package/dist/device.js.map +1 -1
  69. package/dist/index.d.ts +8 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +8 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/parameter-checker.d.ts +78 -18
  74. package/dist/parameter-checker.d.ts.map +1 -1
  75. package/dist/parameter-checker.js +139 -334
  76. package/dist/parameter-checker.js.map +1 -1
  77. package/dist/settings.d.ts +46 -0
  78. package/dist/settings.d.ts.map +1 -1
  79. package/dist/settings.js +46 -2
  80. package/dist/settings.js.map +1 -1
  81. package/dist/switchbot-openapi.d.ts +56 -0
  82. package/dist/switchbot-openapi.d.ts.map +1 -0
  83. package/dist/switchbot-openapi.js +241 -0
  84. package/dist/switchbot-openapi.js.map +1 -0
  85. package/dist/switchbot.d.ts +41 -17
  86. package/dist/switchbot.d.ts.map +1 -1
  87. package/dist/switchbot.js +311 -176
  88. package/dist/switchbot.js.map +1 -1
  89. package/dist/test/woblindtilt.test.d.ts.map +1 -0
  90. package/dist/test/woblindtilt.test.js +97 -0
  91. package/dist/test/woblindtilt.test.js.map +1 -0
  92. package/dist/{device → test}/wobulb.test.d.ts.map +1 -1
  93. package/dist/test/wobulb.test.js +104 -0
  94. package/dist/test/wobulb.test.js.map +1 -0
  95. package/dist/test/woceilinglight.test.d.ts.map +1 -0
  96. package/dist/test/woceilinglight.test.js +95 -0
  97. package/dist/test/woceilinglight.test.js.map +1 -0
  98. package/dist/test/wocontact.test.d.ts.map +1 -0
  99. package/dist/test/wocontact.test.js +38 -0
  100. package/dist/test/wocontact.test.js.map +1 -0
  101. package/dist/test/wocurtain.test.d.ts.map +1 -0
  102. package/dist/test/wocurtain.test.js +76 -0
  103. package/dist/test/wocurtain.test.js.map +1 -0
  104. package/dist/{device → test}/wohand.test.d.ts.map +1 -1
  105. package/dist/test/wohand.test.js +76 -0
  106. package/dist/test/wohand.test.js.map +1 -0
  107. package/dist/test/wohub2.test.d.ts +2 -0
  108. package/dist/test/wohub2.test.d.ts.map +1 -0
  109. package/dist/{device/wohand2.test.js → test/wohub2.test.js} +10 -8
  110. package/dist/test/wohub2.test.js.map +1 -0
  111. package/dist/{device → test}/wohumi.test.d.ts.map +1 -1
  112. package/dist/{device → test}/wohumi.test.js +5 -2
  113. package/dist/test/wohumi.test.js.map +1 -0
  114. package/dist/test/woiosensorth.test.d.ts.map +1 -0
  115. package/dist/{device → test}/woiosensorth.test.js +11 -9
  116. package/dist/test/woiosensorth.test.js.map +1 -0
  117. package/dist/test/woplugmini.test.d.ts.map +1 -0
  118. package/dist/{device → test}/woplugmini.test.js +10 -5
  119. package/dist/test/woplugmini.test.js.map +1 -0
  120. package/dist/test/wopresence.test.d.ts.map +1 -0
  121. package/dist/{device → test}/wopresence.test.js +5 -1
  122. package/dist/test/wopresence.test.js.map +1 -0
  123. package/dist/test/wosensorth.test.d.ts.map +1 -0
  124. package/dist/{device → test}/wosensorth.test.js +5 -14
  125. package/dist/test/wosensorth.test.js.map +1 -0
  126. package/dist/test/wosmartlock.test.d.ts.map +1 -0
  127. package/dist/test/wosmartlock.test.js +147 -0
  128. package/dist/test/wosmartlock.test.js.map +1 -0
  129. package/dist/test/wosmartlockpro.test.d.ts.map +1 -0
  130. package/dist/{device → test}/wosmartlockpro.test.js +30 -26
  131. package/dist/test/wosmartlockpro.test.js.map +1 -0
  132. package/dist/{device → test}/wostrip.test.d.ts.map +1 -1
  133. package/dist/{device → test}/wostrip.test.js +18 -19
  134. package/dist/test/wostrip.test.js.map +1 -0
  135. package/dist/types/bledevicestatus.d.ts +4 -12
  136. package/dist/types/bledevicestatus.d.ts.map +1 -1
  137. package/dist/types/devicelist.d.ts.map +1 -1
  138. package/dist/types/devicelist.js +0 -4
  139. package/dist/types/devicelist.js.map +1 -1
  140. package/dist/types/deviceresponse.d.ts.map +1 -1
  141. package/dist/types/devicestatus.d.ts.map +1 -1
  142. package/dist/types/irdevicelist.d.ts.map +1 -1
  143. package/dist/types/pushbody.d.ts +1 -1
  144. package/dist/types/pushbody.d.ts.map +1 -1
  145. package/dist/types/types.d.ts +71 -120
  146. package/dist/types/types.d.ts.map +1 -1
  147. package/dist/types/types.js +10 -0
  148. package/dist/types/types.js.map +1 -1
  149. package/package.json +6 -4
  150. package/dist/device/woblindtilt.test.d.ts.map +0 -1
  151. package/dist/device/woblindtilt.test.js +0 -26
  152. package/dist/device/woblindtilt.test.js.map +0 -1
  153. package/dist/device/wobulb.test.js +0 -52
  154. package/dist/device/wobulb.test.js.map +0 -1
  155. package/dist/device/woceilinglight.test.d.ts.map +0 -1
  156. package/dist/device/woceilinglight.test.js +0 -63
  157. package/dist/device/woceilinglight.test.js.map +0 -1
  158. package/dist/device/wocontact.test.d.ts.map +0 -1
  159. package/dist/device/wocontact.test.js +0 -34
  160. package/dist/device/wocontact.test.js.map +0 -1
  161. package/dist/device/wocurtain.test.d.ts.map +0 -1
  162. package/dist/device/wocurtain.test.js +0 -33
  163. package/dist/device/wocurtain.test.js.map +0 -1
  164. package/dist/device/wohand.test.js +0 -62
  165. package/dist/device/wohand.test.js.map +0 -1
  166. package/dist/device/wohand2.test.d.ts +0 -2
  167. package/dist/device/wohand2.test.d.ts.map +0 -1
  168. package/dist/device/wohand2.test.js.map +0 -1
  169. package/dist/device/wohumi.test.js.map +0 -1
  170. package/dist/device/woiosensorth.test.d.ts.map +0 -1
  171. package/dist/device/woiosensorth.test.js.map +0 -1
  172. package/dist/device/woplugmini.test.d.ts.map +0 -1
  173. package/dist/device/woplugmini.test.js.map +0 -1
  174. package/dist/device/wopresence.test.d.ts.map +0 -1
  175. package/dist/device/wopresence.test.js.map +0 -1
  176. package/dist/device/wosensorth.test.d.ts.map +0 -1
  177. package/dist/device/wosensorth.test.js.map +0 -1
  178. package/dist/device/wosmartlock.test.d.ts.map +0 -1
  179. package/dist/device/wosmartlock.test.js +0 -84
  180. package/dist/device/wosmartlock.test.js.map +0 -1
  181. package/dist/device/wosmartlockpro.test.d.ts.map +0 -1
  182. package/dist/device/wosmartlockpro.test.js.map +0 -1
  183. package/dist/device/wostrip.test.js.map +0 -1
  184. /package/dist/{device → test}/woblindtilt.test.d.ts +0 -0
  185. /package/dist/{device → test}/wobulb.test.d.ts +0 -0
  186. /package/dist/{device → test}/woceilinglight.test.d.ts +0 -0
  187. /package/dist/{device → test}/wocontact.test.d.ts +0 -0
  188. /package/dist/{device → test}/wocurtain.test.d.ts +0 -0
  189. /package/dist/{device → test}/wohand.test.d.ts +0 -0
  190. /package/dist/{device → test}/wohumi.test.d.ts +0 -0
  191. /package/dist/{device → test}/woiosensorth.test.d.ts +0 -0
  192. /package/dist/{device → test}/woplugmini.test.d.ts +0 -0
  193. /package/dist/{device → test}/wopresence.test.d.ts +0 -0
  194. /package/dist/{device → test}/wosensorth.test.d.ts +0 -0
  195. /package/dist/{device → test}/wosmartlock.test.d.ts +0 -0
  196. /package/dist/{device → test}/wosmartlockpro.test.d.ts +0 -0
  197. /package/dist/{device → test}/wostrip.test.d.ts +0 -0
@@ -1,3 +1,31 @@
1
+ /**
2
+ * Switchbot BLE API registration settings.
3
+ *
4
+ * © 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
5
+ */
6
+ /**
7
+ * This is the main url used to access SwitchBot API
8
+ */
9
+ export declare const Devices = "https://api.switch-bot.com/v1.1/devices";
10
+ /**
11
+ * This is the updateWebhook url used to access SwitchBot API
12
+ */
13
+ export declare const setupWebhook = "https://api.switch-bot.com/v1.1/webhook/setupWebhook";
14
+ /**
15
+ * This is the updateWebhook url used to access SwitchBot API
16
+ */
17
+ export declare const queryWebhook = "https://api.switch-bot.com/v1.1/webhook/queryWebhook";
18
+ /**
19
+ * This is the updateWebhook url used to access SwitchBot API
20
+ */
21
+ export declare const updateWebhook = "https://api.switch-bot.com/v1.1/webhook/updateWebhook";
22
+ /**
23
+ * This is the deleteWebhook url used to access SwitchBot API
24
+ */
25
+ export declare const deleteWebhook = "https://api.switch-bot.com/v1.1/webhook/deleteWebhook";
26
+ /**
27
+ * constants used to access SwitchBot BLE API
28
+ */
1
29
  export declare const SERV_UUID_PRIMARY = "cba20d00224d11e69fb80002a5d5c51b";
2
30
  export declare const CHAR_UUID_WRITE = "cba20002224d11e69fb80002a5d5c51b";
3
31
  export declare const CHAR_UUID_NOTIFY = "cba20003224d11e69fb80002a5d5c51b";
@@ -5,4 +33,22 @@ export declare const CHAR_UUID_DEVICE = "2a00";
5
33
  export declare const READ_TIMEOUT_MSEC = 3000;
6
34
  export declare const WRITE_TIMEOUT_MSEC = 3000;
7
35
  export declare const COMMAND_TIMEOUT_MSEC = 3000;
36
+ export declare enum WoSmartLockProCommands {
37
+ GET_CKIV = "570f2103",
38
+ LOCK_INFO = "570f4f8102",
39
+ UNLOCK = "570f4e0101000080",
40
+ UNLOCK_NO_UNLATCH = "570f4e01010000a0",
41
+ LOCK = "570f4e0101000000",
42
+ ENABLE_NOTIFICATIONS = "570e01001e00008101",
43
+ DISABLE_NOTIFICATIONS = "570e00"
44
+ }
45
+ export declare enum WoSmartLockCommands {
46
+ GET_CKIV = "570f2103",
47
+ LOCK_INFO = "570f4f8101",
48
+ UNLOCK = "570f4e01011080",
49
+ UNLOCK_NO_UNLATCH = "570f4e010110a0",
50
+ LOCK = "570f4e01011000",
51
+ ENABLE_NOTIFICATIONS = "570e01001e00008101",
52
+ DISABLE_NOTIFICATIONS = "570e00"
53
+ }
8
54
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,qCAAqC,CAAA;AACnE,eAAO,MAAM,eAAe,qCAAqC,CAAA;AACjE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAClE,eAAO,MAAM,gBAAgB,SAAS,CAAA;AACtC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,eAAO,MAAM,kBAAkB,OAAO,CAAA;AACtC,eAAO,MAAM,oBAAoB,OAAO,CAAA"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,OAAO,4CAA4C,CAAA;AAEhE;;GAEG;AACH,eAAO,MAAM,YAAY,yDAAyD,CAAA;AAElF;;GAEG;AACH,eAAO,MAAM,YAAY,yDAAyD,CAAA;AAElF;;GAEG;AACH,eAAO,MAAM,aAAa,0DAA0D,CAAA;AAEpF;;GAEG;AACH,eAAO,MAAM,aAAa,0DAA0D,CAAA;AAEpF;;GAEG;AACH,eAAO,MAAM,iBAAiB,qCAAqC,CAAA;AACnE,eAAO,MAAM,eAAe,qCAAqC,CAAA;AACjE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAClE,eAAO,MAAM,gBAAgB,SAAS,CAAA;AAEtC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,eAAO,MAAM,kBAAkB,OAAO,CAAA;AACtC,eAAO,MAAM,oBAAoB,OAAO,CAAA;AAExC,oBAAY,sBAAsB;IAChC,QAAQ,aAAa;IACrB,SAAS,eAAe;IACxB,MAAM,qBAAqB;IAC3B,iBAAiB,qBAAqB;IACtC,IAAI,qBAAqB;IACzB,oBAAoB,uBAAuB;IAC3C,qBAAqB,WAAW;CACjC;AAED,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,SAAS,eAAe;IACxB,MAAM,mBAAmB;IACzB,iBAAiB,mBAAmB;IACpC,IAAI,mBAAmB;IACvB,oBAAoB,uBAAuB;IAC3C,qBAAqB,WAAW;CACjC"}
package/dist/settings.js CHANGED
@@ -1,6 +1,30 @@
1
- /* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
1
+ /**
2
+ * Switchbot BLE API registration settings.
2
3
  *
3
- * settings.ts: Switchbot BLE API registration.
4
+ * © 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
5
+ */
6
+ /**
7
+ * This is the main url used to access SwitchBot API
8
+ */
9
+ export const Devices = 'https://api.switch-bot.com/v1.1/devices';
10
+ /**
11
+ * This is the updateWebhook url used to access SwitchBot API
12
+ */
13
+ export const setupWebhook = 'https://api.switch-bot.com/v1.1/webhook/setupWebhook';
14
+ /**
15
+ * This is the updateWebhook url used to access SwitchBot API
16
+ */
17
+ export const queryWebhook = 'https://api.switch-bot.com/v1.1/webhook/queryWebhook';
18
+ /**
19
+ * This is the updateWebhook url used to access SwitchBot API
20
+ */
21
+ export const updateWebhook = 'https://api.switch-bot.com/v1.1/webhook/updateWebhook';
22
+ /**
23
+ * This is the deleteWebhook url used to access SwitchBot API
24
+ */
25
+ export const deleteWebhook = 'https://api.switch-bot.com/v1.1/webhook/deleteWebhook';
26
+ /**
27
+ * constants used to access SwitchBot BLE API
4
28
  */
5
29
  export const SERV_UUID_PRIMARY = 'cba20d00224d11e69fb80002a5d5c51b';
6
30
  export const CHAR_UUID_WRITE = 'cba20002224d11e69fb80002a5d5c51b';
@@ -9,4 +33,24 @@ export const CHAR_UUID_DEVICE = '2a00';
9
33
  export const READ_TIMEOUT_MSEC = 3000;
10
34
  export const WRITE_TIMEOUT_MSEC = 3000;
11
35
  export const COMMAND_TIMEOUT_MSEC = 3000;
36
+ export var WoSmartLockProCommands;
37
+ (function (WoSmartLockProCommands) {
38
+ WoSmartLockProCommands["GET_CKIV"] = "570f2103";
39
+ WoSmartLockProCommands["LOCK_INFO"] = "570f4f8102";
40
+ WoSmartLockProCommands["UNLOCK"] = "570f4e0101000080";
41
+ WoSmartLockProCommands["UNLOCK_NO_UNLATCH"] = "570f4e01010000a0";
42
+ WoSmartLockProCommands["LOCK"] = "570f4e0101000000";
43
+ WoSmartLockProCommands["ENABLE_NOTIFICATIONS"] = "570e01001e00008101";
44
+ WoSmartLockProCommands["DISABLE_NOTIFICATIONS"] = "570e00";
45
+ })(WoSmartLockProCommands || (WoSmartLockProCommands = {}));
46
+ export var WoSmartLockCommands;
47
+ (function (WoSmartLockCommands) {
48
+ WoSmartLockCommands["GET_CKIV"] = "570f2103";
49
+ WoSmartLockCommands["LOCK_INFO"] = "570f4f8101";
50
+ WoSmartLockCommands["UNLOCK"] = "570f4e01011080";
51
+ WoSmartLockCommands["UNLOCK_NO_UNLATCH"] = "570f4e010110a0";
52
+ WoSmartLockCommands["LOCK"] = "570f4e01011000";
53
+ WoSmartLockCommands["ENABLE_NOTIFICATIONS"] = "570e01001e00008101";
54
+ WoSmartLockCommands["DISABLE_NOTIFICATIONS"] = "570e00";
55
+ })(WoSmartLockCommands || (WoSmartLockCommands = {}));
12
56
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kCAAkC,CAAA;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,kCAAkC,CAAA;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,kCAAkC,CAAA;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,yCAAyC,CAAA;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,sDAAsD,CAAA;AAElF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uDAAuD,CAAA;AAEpF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,kCAAkC,CAAA;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,kCAAkC,CAAA;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,kCAAkC,CAAA;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAExC,MAAM,CAAN,IAAY,sBAQX;AARD,WAAY,sBAAsB;IAChC,+CAAqB,CAAA;IACrB,kDAAwB,CAAA;IACxB,qDAA2B,CAAA;IAC3B,gEAAsC,CAAA;IACtC,mDAAyB,CAAA;IACzB,qEAA2C,CAAA;IAC3C,0DAAgC,CAAA;AAClC,CAAC,EARW,sBAAsB,KAAtB,sBAAsB,QAQjC;AAED,MAAM,CAAN,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC7B,4CAAqB,CAAA;IACrB,+CAAwB,CAAA;IACxB,gDAAyB,CAAA;IACzB,2DAAoC,CAAA;IACpC,8CAAuB,CAAA;IACvB,kEAA2C,CAAA;IAC3C,uDAAgC,CAAA;AAClC,CAAC,EARW,mBAAmB,KAAnB,mBAAmB,QAQ9B"}
@@ -0,0 +1,56 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { createServer } from 'node:http';
3
+ /**
4
+ * SwitchBotOpenAPI class to interact with SwitchBot devices via OpenAPI.
5
+ */
6
+ export declare class SwitchBotOpenAPI extends EventEmitter {
7
+ private token;
8
+ private secret;
9
+ private baseURL;
10
+ webhookEventListener?: ReturnType<typeof createServer>;
11
+ constructor(token: string, secret: string);
12
+ /**
13
+ * Emit a log event.
14
+ * @param level The log level.
15
+ * @param message The log message.
16
+ */
17
+ private emitLog;
18
+ /**
19
+ * Get a list of devices.
20
+ */
21
+ getDevices(): Promise<any>;
22
+ private generateHeaders;
23
+ /**
24
+ * Control a device.
25
+ * @param deviceId The ID of the device to control.
26
+ * @param command The command to send to the device.
27
+ * @param parameter The parameter for the command.
28
+ * @param commandType The type of command (e.g., "command", "customize").
29
+ */
30
+ controlDevice(deviceId: string, command: string, parameter: string, commandType?: string): Promise<any>;
31
+ /**
32
+ * Get the status of a device.
33
+ * @param deviceId The ID of the device.
34
+ */
35
+ getDeviceStatus(deviceId: string): Promise<any>;
36
+ /**
37
+ * Setup webhook for receiving events.
38
+ * @param url The webhook URL.
39
+ */
40
+ setupWebhook(url: string): Promise<void>;
41
+ /**
42
+ * Update webhook configuration.
43
+ * @param url The webhook URL.
44
+ */
45
+ updateWebhook(url: string): Promise<void>;
46
+ /**
47
+ * Query webhook configuration.
48
+ */
49
+ queryWebhook(): Promise<void>;
50
+ /**
51
+ * Delete webhook configuration.
52
+ * @param url The webhook URL.
53
+ */
54
+ deleteWebhook(url: string): Promise<void>;
55
+ }
56
+ //# sourceMappingURL=switchbot-openapi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switchbot-openapi.d.ts","sourceRoot":"","sources":["../src/switchbot-openapi.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAMxC;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IAEvB,oBAAoB,CAAC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;gBAE1C,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOzC;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAIf;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAYhC,OAAO,CAAC,eAAe,CAiBtB;IAED;;;;;;OAMG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;IAmBxH;;;OAGG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAcrD;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuD9C;;;OAGG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB/C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBnC;;;OAGG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBhD"}
@@ -0,0 +1,241 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import crypto, { randomUUID } from 'node:crypto';
3
+ import { EventEmitter } from 'node:events';
4
+ import { createServer } from 'node:http';
5
+ import { request } from 'undici';
6
+ import { deleteWebhook, Devices, queryWebhook, setupWebhook, updateWebhook } from './settings.js';
7
+ /**
8
+ * SwitchBotOpenAPI class to interact with SwitchBot devices via OpenAPI.
9
+ */
10
+ export class SwitchBotOpenAPI extends EventEmitter {
11
+ token;
12
+ secret;
13
+ baseURL;
14
+ webhookEventListener;
15
+ constructor(token, secret) {
16
+ super();
17
+ this.token = token;
18
+ this.secret = secret;
19
+ this.baseURL = 'https://api.switch-bot.com/v1.0';
20
+ }
21
+ /**
22
+ * Emit a log event.
23
+ * @param level The log level.
24
+ * @param message The log message.
25
+ */
26
+ emitLog(level, message) {
27
+ this.emit('log', { level, message });
28
+ }
29
+ /**
30
+ * Get a list of devices.
31
+ */
32
+ async getDevices() {
33
+ try {
34
+ const { body, statusCode } = await request(Devices, { headers: this.generateHeaders() });
35
+ const responseBody = await body.json();
36
+ this.emitLog('info', `Got devices: ${JSON.stringify(responseBody)}`);
37
+ return { responseBody, statusCode };
38
+ }
39
+ catch (error) {
40
+ this.emitLog('error', `Failed to get devices: ${error.message}`);
41
+ throw new Error(`Failed to get devices: ${error.message}`);
42
+ }
43
+ }
44
+ generateHeaders = () => {
45
+ const t = `${Date.now()}`;
46
+ const nonce = randomUUID();
47
+ const data = this.token + t + nonce;
48
+ const signTerm = crypto
49
+ .createHmac('sha256', this.secret)
50
+ .update(Buffer.from(data, 'utf-8'))
51
+ .digest();
52
+ const sign = signTerm.toString('base64');
53
+ return {
54
+ 'Authorization': this.token,
55
+ 'sign': sign,
56
+ 'nonce': nonce,
57
+ 't': t,
58
+ 'Content-Type': 'application/json',
59
+ };
60
+ };
61
+ /**
62
+ * Control a device.
63
+ * @param deviceId The ID of the device to control.
64
+ * @param command The command to send to the device.
65
+ * @param parameter The parameter for the command.
66
+ * @param commandType The type of command (e.g., "command", "customize").
67
+ */
68
+ async controlDevice(deviceId, command, parameter, commandType = 'command') {
69
+ try {
70
+ const { body } = await request(`${this.baseURL}/devices/${deviceId}/commands`, {
71
+ method: 'POST',
72
+ headers: this.generateHeaders(),
73
+ body: JSON.stringify({
74
+ command,
75
+ parameter,
76
+ commandType,
77
+ }),
78
+ });
79
+ this.emitLog('info', `Controlled device: ${deviceId} with command: ${command} and parameter: ${parameter}`);
80
+ return body.json();
81
+ }
82
+ catch (error) {
83
+ this.emitLog('error', `Failed to control device: ${error.message}`);
84
+ throw new Error(`Failed to control device: ${error.message}`);
85
+ }
86
+ }
87
+ /**
88
+ * Get the status of a device.
89
+ * @param deviceId The ID of the device.
90
+ */
91
+ async getDeviceStatus(deviceId) {
92
+ try {
93
+ const { body } = await request(`${this.baseURL}/devices/${deviceId}/status`, {
94
+ method: 'GET',
95
+ headers: this.generateHeaders(),
96
+ });
97
+ this.emitLog('info', `Got device status: ${deviceId}`);
98
+ return body.json();
99
+ }
100
+ catch (error) {
101
+ this.emitLog('error', `Failed to get device status: ${error.message}`);
102
+ throw new Error(`Failed to get device status: ${error.message}`);
103
+ }
104
+ }
105
+ /**
106
+ * Setup webhook for receiving events.
107
+ * @param url The webhook URL.
108
+ */
109
+ async setupWebhook(url) {
110
+ try {
111
+ const xurl = new URL(url);
112
+ const port = Number(xurl.port) || 80;
113
+ const path = xurl.pathname;
114
+ this.webhookEventListener = createServer((request, response) => {
115
+ if (request.url === path && request.method === 'POST') {
116
+ let data = '';
117
+ request.on('data', (chunk) => {
118
+ data += chunk;
119
+ });
120
+ request.on('end', async () => {
121
+ try {
122
+ const body = JSON.parse(data);
123
+ this.emitLog('debug', `Received Webhook: ${JSON.stringify(body)}`);
124
+ // Emit the webhook event
125
+ this.emit('webhookEvent', body);
126
+ response.writeHead(200, { 'Content-Type': 'text/plain' });
127
+ response.end('OK');
128
+ }
129
+ catch (e) {
130
+ this.emitLog('error', `Failed to handle webhook event. Error: ${e.message}`);
131
+ response.writeHead(500, { 'Content-Type': 'text/plain' });
132
+ response.end('Internal Server Error');
133
+ }
134
+ });
135
+ }
136
+ else {
137
+ response.writeHead(403, { 'Content-Type': 'text/plain' });
138
+ response.end('NG');
139
+ }
140
+ }).listen(port);
141
+ const { body, statusCode } = await request(setupWebhook, {
142
+ method: 'POST',
143
+ headers: this.generateHeaders(),
144
+ body: JSON.stringify({
145
+ action: 'setupWebhook',
146
+ url,
147
+ deviceList: 'ALL',
148
+ }),
149
+ });
150
+ const response = await body.json();
151
+ this.emitLog('info', `setupWebhook: url:${url}, body:${JSON.stringify(response)}, statusCode:${statusCode}`);
152
+ if (statusCode !== 200 || response?.statusCode !== 100) {
153
+ this.emitLog('error', `Failed to configure webhook. HTTP:${statusCode} API:${response?.statusCode} message:${response?.message}`);
154
+ }
155
+ }
156
+ catch (e) {
157
+ this.emitLog('error', `Failed to configure webhook. Error: ${e.message}`);
158
+ }
159
+ }
160
+ /**
161
+ * Update webhook configuration.
162
+ * @param url The webhook URL.
163
+ */
164
+ async updateWebhook(url) {
165
+ try {
166
+ const { body, statusCode } = await request(updateWebhook, {
167
+ method: 'POST',
168
+ headers: this.generateHeaders(),
169
+ body: JSON.stringify({
170
+ action: 'updateWebhook',
171
+ config: {
172
+ url,
173
+ enable: true,
174
+ },
175
+ }),
176
+ });
177
+ const response = await body.json();
178
+ this.emitLog('info', `updateWebhook: url:${url}, body:${JSON.stringify(response)}, statusCode:${statusCode}`);
179
+ if (statusCode !== 200 || response?.statusCode !== 100) {
180
+ this.emitLog('error', `Failed to update webhook. HTTP:${statusCode} API:${response?.statusCode} message:${response?.message}`);
181
+ }
182
+ }
183
+ catch (e) {
184
+ this.emitLog('error', `Failed to update webhook. Error: ${e.message}`);
185
+ }
186
+ }
187
+ /**
188
+ * Query webhook configuration.
189
+ */
190
+ async queryWebhook() {
191
+ try {
192
+ const { body, statusCode } = await request(queryWebhook, {
193
+ method: 'POST',
194
+ headers: this.generateHeaders(),
195
+ body: JSON.stringify({
196
+ action: 'queryUrl',
197
+ }),
198
+ });
199
+ const response = await body.json();
200
+ this.emitLog('info', `queryWebhook: body:${JSON.stringify(response)}`);
201
+ this.emitLog('info', `queryWebhook: statusCode:${statusCode}`);
202
+ if (statusCode !== 200 || response?.statusCode !== 100) {
203
+ this.emitLog('error', `Failed to query webhook. HTTP:${statusCode} API:${response?.statusCode} message:${response?.message}`);
204
+ }
205
+ else {
206
+ this.emitLog('info', `Listening webhook on ${response?.body?.urls?.[0]}`);
207
+ }
208
+ }
209
+ catch (e) {
210
+ this.emitLog('error', `Failed to query webhook. Error: ${e.message}`);
211
+ }
212
+ }
213
+ /**
214
+ * Delete webhook configuration.
215
+ * @param url The webhook URL.
216
+ */
217
+ async deleteWebhook(url) {
218
+ try {
219
+ const { body, statusCode } = await request(deleteWebhook, {
220
+ method: 'POST',
221
+ headers: this.generateHeaders(),
222
+ body: JSON.stringify({
223
+ action: 'deleteWebhook',
224
+ url,
225
+ }),
226
+ });
227
+ const response = await body.json();
228
+ this.emitLog('info', `deleteWebhook: url:${url}, body:${JSON.stringify(response)}, statusCode:${statusCode}`);
229
+ if (statusCode !== 200 || response?.statusCode !== 100) {
230
+ this.emitLog('error', `Failed to delete webhook. HTTP:${statusCode} API:${response?.statusCode} message:${response?.message}`);
231
+ }
232
+ else {
233
+ this.emitLog('info', 'Unregistered webhook to close listening.');
234
+ }
235
+ }
236
+ catch (e) {
237
+ this.emitLog('error', `Failed to delete webhook. Error: ${e.message}`);
238
+ }
239
+ }
240
+ }
241
+ //# sourceMappingURL=switchbot-openapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switchbot-openapi.js","sourceRoot":"","sources":["../src/switchbot-openapi.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
- import type { Ad } from './advertising.js';
2
- import type { Params } from './types/types.js';
3
- import * as Noble from '@stoprocent/noble';
1
+ import type * as Noble from '@stoprocent/noble';
2
+ import type { Ad, Params } from './types/types.js';
4
3
  import { SwitchbotDevice } from './device.js';
4
+ /**
5
+ * SwitchBot class to interact with SwitchBot devices.
6
+ */
5
7
  export declare class SwitchBot {
6
8
  private ready;
7
9
  noble: typeof Noble;
@@ -10,6 +12,12 @@ export declare class SwitchBot {
10
12
  onlog: ((message: string) => void) | undefined;
11
13
  DEFAULT_DISCOVERY_DURATION: number;
12
14
  PRIMARY_SERVICE_UUID_LIST: never[];
15
+ /**
16
+ * Constructor
17
+ *
18
+ * @param {Params} [params] - Optional parameters
19
+ * @param {typeof Noble} [params.noble] - Optional noble instance
20
+ */
13
21
  constructor(params?: Params);
14
22
  /**
15
23
  * Initializes the noble object.
@@ -26,32 +34,48 @@ export declare class SwitchBot {
26
34
  * @returns {Promise<SwitchbotDevice[]>} - A promise that resolves with a list of discovered devices.
27
35
  */
28
36
  discover(params?: Params): Promise<SwitchbotDevice[]>;
37
+ /**
38
+ * Initializes the noble object and waits for it to be powered on.
39
+ *
40
+ * @returns {Promise<void>} - Resolves when the noble object is powered on.
41
+ */
29
42
  _init(): Promise<void>;
43
+ /**
44
+ * Gets the device object based on the peripheral, id, and model.
45
+ *
46
+ * @param {Noble.Peripheral} peripheral - The peripheral object.
47
+ * @param {string} id - The device id.
48
+ * @param {string} model - The device model.
49
+ * @returns {Promise<SwitchbotDevice | null>} - The device object or null.
50
+ */
30
51
  getDeviceObject(peripheral: Noble.Peripheral, id: string, model: string): Promise<SwitchbotDevice | null>;
31
- filterAdvertising(ad: Ad, id: string, model: string): boolean;
32
52
  /**
33
- * startScan([params])
34
- * - Start to monitor advertising packets coming from switchbot devices
53
+ * Filters advertising data based on id and model.
54
+ *
55
+ * @param {Ad} ad - The advertising data.
56
+ * @param {string} id - The device id.
57
+ * @param {string} model - The device model.
58
+ * @returns {boolean} - True if the advertising data matches the id and model, false otherwise.
59
+ */
60
+ filterAdvertising(ad: Ad, id: string, model: string): Promise<boolean>;
61
+ /**
62
+ * Starts scanning for SwitchBot devices.
35
63
  *
36
- * @param {object} params - Optional parameters
37
- * @param {string} [params.model] - Optional model filter ("H", "T", "e", "s", "d", "c", "{", "u", "g", "o", "i", "x", "r")
38
- * @param {string} [params.id] - Optional ID filter (MAC address, case-insensitive, colons ignored)
39
- * @returns {Promise<void>} - Resolves when scanning starts successfully
64
+ * @param {Params} [params] - Optional parameters.
65
+ * @returns {Promise<void>} - Resolves when scanning starts successfully.
40
66
  */
41
67
  startScan(params?: Params): Promise<void>;
42
68
  /**
43
- * stopScan()
44
- * - Stop monitoring advertising packets from SwitchBot devices
69
+ * Stops scanning for SwitchBot devices.
45
70
  *
46
- * @returns {Promise<void>} - Resolves when scanning stops successfully
71
+ * @returns {Promise<void>} - Resolves when scanning stops successfully.
47
72
  */
48
73
  stopScan(): Promise<void>;
49
74
  /**
50
- * wait
51
- * - Wait for the specified time (msec)
75
+ * Waits for the specified time.
52
76
  *
53
- * @param {number} msec - The time to wait in milliseconds
54
- * @returns {Promise<void>} - Resolves after the specified time
77
+ * @param {number} msec - The time to wait in milliseconds.
78
+ * @returns {Promise<void>} - Resolves after the specified time.
55
79
  */
56
80
  wait(msec: number): Promise<void>;
57
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"switchbot.d.ts","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAmB7C,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAe;IAC5B,KAAK,EAAG,OAAO,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;IAC9C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAC9C,0BAA0B,SAAO;IACjC,yBAAyB,UAAK;gBAYlB,MAAM,CAAC,EAAE,MAAM;IAI3B;;;;;;OAMG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C;;;;;OAKG;IACG,QAAQ,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA+DzD,KAAK;IAsBL,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAoC/G,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAoB7D;;;;;;;;OAQG;IACG,SAAS,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDnD;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBxC;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"switchbot.d.ts","sourceRoot":"","sources":["../src/switchbot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAmB7C;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAe;IAC5B,KAAK,EAAG,OAAO,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;IAC9C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAC9C,0BAA0B,SAAO;IACjC,yBAAyB,UAAK;IAE9B;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,MAAM;IAI3B;;;;;;OAMG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1C;;;;;OAKG;IACG,QAAQ,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAmH/D;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC5B;;;;;;;OAOG;IACG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAqE/G;;;;;;;OAOG;IACG,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB5E;;;;;OAKG;IACG,SAAS,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFnD;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B;;;;;OAKG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBxC;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}