node-switchbot 3.5.0-beta.0 → 3.5.0-beta.1

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 (452) hide show
  1. package/.github/npm-version-script-esm.js +97 -0
  2. package/.github/workflows/beta-release.yml +1 -1
  3. package/.github/workflows/release.yml +1 -1
  4. package/BLE.md +14 -13
  5. package/CHANGELOG.md +68 -1
  6. package/OpenAPI.md +13 -12
  7. package/branding/Node_x_SwitchBot.svg +2 -3
  8. package/dist/device.d.ts +1193 -3
  9. package/dist/device.d.ts.map +1 -1
  10. package/dist/device.js +2478 -2
  11. package/dist/device.js.map +1 -1
  12. package/dist/index.d.ts +0 -17
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +0 -17
  15. package/dist/index.js.map +1 -1
  16. package/dist/{test/index.test.d.ts.map → index.test.d.ts.map} +1 -1
  17. package/dist/{test/index.test.js → index.test.js} +1 -1
  18. package/dist/index.test.js.map +1 -0
  19. package/dist/parameter-checker.d.ts +1 -1
  20. package/dist/parameter-checker.d.ts.map +1 -1
  21. package/dist/settings.d.ts +12 -28
  22. package/dist/settings.d.ts.map +1 -1
  23. package/dist/settings.js +24 -22
  24. package/dist/settings.js.map +1 -1
  25. package/dist/{test/settings.test.d.ts.map → settings.test.d.ts.map} +1 -1
  26. package/dist/{test/settings.test.js → settings.test.js} +6 -6
  27. package/dist/{test/settings.test.js.map → settings.test.js.map} +1 -1
  28. package/dist/switchbot-ble.d.ts +1 -1
  29. package/dist/switchbot-ble.d.ts.map +1 -1
  30. package/dist/switchbot-ble.js +8 -27
  31. package/dist/switchbot-ble.js.map +1 -1
  32. package/dist/switchbot-openapi.d.ts +33 -22
  33. package/dist/switchbot-openapi.d.ts.map +1 -1
  34. package/dist/switchbot-openapi.js +104 -64
  35. package/dist/switchbot-openapi.js.map +1 -1
  36. package/dist/types/bledevicestatus.d.ts +32 -8
  37. package/dist/types/bledevicestatus.d.ts.map +1 -1
  38. package/dist/types/devicestatus.d.ts +35 -1
  39. package/dist/types/devicestatus.d.ts.map +1 -1
  40. package/dist/types/devicewebhookstatus.d.ts +38 -1
  41. package/dist/types/devicewebhookstatus.d.ts.map +1 -1
  42. package/dist/types/types.d.ts +0 -223
  43. package/dist/types/types.d.ts.map +1 -1
  44. package/dist/types/types.js +1 -144
  45. package/dist/types/types.js.map +1 -1
  46. package/docs/assets/hierarchy.js +1 -0
  47. package/docs/assets/icons.js +1 -1
  48. package/docs/assets/icons.svg +1 -1
  49. package/docs/assets/main.js +5 -5
  50. package/docs/assets/navigation.js +1 -1
  51. package/docs/assets/search.js +1 -1
  52. package/docs/assets/style.css +1405 -1288
  53. package/docs/classes/Advertising.html +10 -10
  54. package/docs/classes/SwitchBotBLE.html +13 -13
  55. package/docs/classes/SwitchBotOpenAPI.html +38 -28
  56. package/docs/classes/SwitchbotDevice.html +26 -23
  57. package/docs/classes/WoBlindTilt.html +45 -42
  58. package/docs/classes/WoBulb.html +42 -39
  59. package/docs/classes/WoCeilingLight.html +50 -47
  60. package/docs/classes/WoContact.html +30 -27
  61. package/docs/classes/WoCurtain.html +40 -37
  62. package/docs/classes/WoHand.html +37 -34
  63. package/docs/classes/WoHub2.html +30 -27
  64. package/docs/classes/WoHumi.html +45 -40
  65. package/docs/classes/WoHumi2.html +67 -0
  66. package/docs/classes/WoIOSensorTH.html +30 -27
  67. package/docs/classes/WoKeypad.html +52 -0
  68. package/docs/classes/WoLeak.html +53 -0
  69. package/docs/classes/WoPlugMiniJP.html +78 -0
  70. package/docs/classes/WoPlugMiniUS.html +39 -36
  71. package/docs/classes/WoPresence.html +30 -27
  72. package/docs/classes/WoRelaySwitch1.html +57 -0
  73. package/docs/classes/WoRelaySwitch1PM.html +57 -0
  74. package/docs/classes/WoRemote.html +52 -0
  75. package/docs/classes/WoSensorTH.html +27 -24
  76. package/docs/classes/WoSensorTHPlus.html +46 -0
  77. package/docs/classes/WoSensorTHPro.html +46 -0
  78. package/docs/classes/WoSensorTHProCO2.html +46 -0
  79. package/docs/classes/WoSmartLock.html +49 -46
  80. package/docs/classes/WoSmartLockPro.html +49 -46
  81. package/docs/classes/WoStrip.html +44 -41
  82. package/docs/enums/LogLevel.html +10 -10
  83. package/docs/enums/SwitchBotBLEModel.html +29 -27
  84. package/docs/enums/SwitchBotBLEModelFriendlyName.html +30 -26
  85. package/docs/enums/SwitchBotBLEModelName.html +28 -26
  86. package/docs/enums/SwitchBotModel.html +47 -43
  87. package/docs/hierarchy.html +1 -1
  88. package/docs/index.html +13 -13
  89. package/docs/interfaces/AdvertisementData.html +3 -3
  90. package/docs/interfaces/Chars.html +2 -2
  91. package/docs/interfaces/ErrorObject.html +2 -2
  92. package/docs/interfaces/NobleTypes.html +2 -2
  93. package/docs/interfaces/Params.html +2 -2
  94. package/docs/interfaces/Rule.html +4 -4
  95. package/docs/interfaces/ServiceData.html +2 -2
  96. package/docs/interfaces/SwitchBotBLEDevice.html +23 -23
  97. package/docs/interfaces/WebhookDetail.html +4 -4
  98. package/docs/interfaces/ad.html +3 -3
  99. package/docs/interfaces/body.html +3 -3
  100. package/docs/interfaces/bodyChange.html +3 -3
  101. package/docs/interfaces/deleteWebhookResponse.html +3 -3
  102. package/docs/interfaces/device.html +6 -6
  103. package/docs/interfaces/deviceList.html +2 -2
  104. package/docs/interfaces/deviceStatus.html +6 -6
  105. package/docs/interfaces/deviceStatusRequest.html +3 -3
  106. package/docs/interfaces/deviceWebhook.html +4 -4
  107. package/docs/interfaces/deviceWebhookContext.html +4 -4
  108. package/docs/interfaces/devices.html +3 -3
  109. package/docs/interfaces/infraredRemoteList.html +2 -2
  110. package/docs/interfaces/irdevice.html +5 -5
  111. package/docs/interfaces/pushResponse.html +3 -3
  112. package/docs/interfaces/queryWebhookResponse.html +3 -3
  113. package/docs/interfaces/setupWebhookResponse.html +3 -3
  114. package/docs/interfaces/switchbot.html +2 -2
  115. package/docs/interfaces/updateWebhookResponse.html +3 -3
  116. package/docs/interfaces/webhookRequest.html +3 -3
  117. package/docs/media/BLE.md +14 -13
  118. package/docs/media/OpenAPI.md +13 -12
  119. package/docs/modules.html +1 -170
  120. package/docs/types/MacAddress.html +1 -1
  121. package/docs/types/batteryCirculatorFan.html +1 -1
  122. package/docs/types/batteryCirculatorFanServiceData.html +1 -1
  123. package/docs/types/batteryCirculatorFanStatus.html +1 -1
  124. package/docs/types/batteryCirculatorFanWebhookContext.html +1 -1
  125. package/docs/types/blindTilt.html +1 -1
  126. package/docs/types/blindTiltServiceData.html +1 -1
  127. package/docs/types/blindTiltStatus.html +1 -1
  128. package/docs/types/blindTiltWebhookContext.html +1 -1
  129. package/docs/types/bot.html +1 -1
  130. package/docs/types/botServiceData.html +1 -1
  131. package/docs/types/botStatus.html +1 -1
  132. package/docs/types/botWebhookContext.html +1 -1
  133. package/docs/types/ceilingLight.html +1 -1
  134. package/docs/types/ceilingLightPro.html +1 -1
  135. package/docs/types/ceilingLightProServiceData.html +1 -1
  136. package/docs/types/ceilingLightProStatus.html +1 -1
  137. package/docs/types/ceilingLightProWebhookContext.html +1 -1
  138. package/docs/types/ceilingLightServiceData.html +1 -1
  139. package/docs/types/ceilingLightStatus.html +1 -1
  140. package/docs/types/ceilingLightWebhookContext.html +1 -1
  141. package/docs/types/circulatorFanStatus.html +1 -0
  142. package/docs/types/circulatorFanWebhookContext.html +1 -0
  143. package/docs/types/colorBulb.html +1 -1
  144. package/docs/types/colorBulbServiceData.html +1 -1
  145. package/docs/types/colorBulbStatus.html +1 -1
  146. package/docs/types/colorBulbWebhookContext.html +1 -1
  147. package/docs/types/contactSensor.html +1 -1
  148. package/docs/types/contactSensorServiceData.html +1 -1
  149. package/docs/types/contactSensorStatus.html +1 -1
  150. package/docs/types/contactSensorWebhookContext.html +1 -1
  151. package/docs/types/curtain.html +1 -1
  152. package/docs/types/curtain3.html +1 -1
  153. package/docs/types/curtain3ServiceData.html +1 -1
  154. package/docs/types/curtain3WebhookContext.html +1 -1
  155. package/docs/types/curtainServiceData.html +1 -1
  156. package/docs/types/curtainStatus.html +1 -1
  157. package/docs/types/curtainWebhookContext.html +1 -1
  158. package/docs/types/floorCleaningRobotS10.html +1 -1
  159. package/docs/types/floorCleaningRobotS10Status.html +1 -1
  160. package/docs/types/floorCleaningRobotS10WebhookContext.html +1 -1
  161. package/docs/types/hub2.html +1 -1
  162. package/docs/types/hub2ServiceData.html +1 -1
  163. package/docs/types/hub2Status.html +1 -1
  164. package/docs/types/hub2WebhookContext.html +1 -1
  165. package/docs/types/humidifier.html +1 -1
  166. package/docs/types/humidifier2ServiceData.html +1 -0
  167. package/docs/types/humidifier2Status.html +1 -0
  168. package/docs/types/humidifier2WebhookContext.html +1 -0
  169. package/docs/types/humidifierServiceData.html +1 -1
  170. package/docs/types/humidifierStatus.html +1 -1
  171. package/docs/types/humidifierWebhookContext.html +1 -1
  172. package/docs/types/indoorCam.html +1 -1
  173. package/docs/types/indoorCameraWebhookContext.html +1 -1
  174. package/docs/types/keypad.html +1 -1
  175. package/docs/types/keypadDetectorServiceData.html +1 -1
  176. package/docs/types/keypadTouch.html +1 -1
  177. package/docs/types/keypadTouchWebhookContext.html +1 -1
  178. package/docs/types/keypadWebhookContext.html +1 -1
  179. package/docs/types/lock.html +1 -1
  180. package/docs/types/lockPro.html +1 -1
  181. package/docs/types/lockProServiceData.html +1 -1
  182. package/docs/types/lockProStatus.html +1 -1
  183. package/docs/types/lockProWebhookContext.html +1 -1
  184. package/docs/types/lockServiceData.html +1 -1
  185. package/docs/types/lockStatus.html +1 -1
  186. package/docs/types/lockWebhookContext.html +1 -1
  187. package/docs/types/meter.html +1 -1
  188. package/docs/types/meterPlus.html +1 -1
  189. package/docs/types/meterPlusServiceData.html +1 -1
  190. package/docs/types/meterPlusStatus.html +1 -1
  191. package/docs/types/meterPlusWebhookContext.html +1 -1
  192. package/docs/types/meterPro.html +1 -1
  193. package/docs/types/meterProCO2ServiceData.html +1 -1
  194. package/docs/types/meterProCO2Status.html +1 -1
  195. package/docs/types/meterProCO2WebhookContext.html +1 -1
  196. package/docs/types/meterProServiceData.html +1 -1
  197. package/docs/types/meterProStatus.html +1 -1
  198. package/docs/types/meterProWebhookContext.html +1 -1
  199. package/docs/types/meterServiceData.html +1 -1
  200. package/docs/types/meterStatus.html +1 -1
  201. package/docs/types/meterWebhookContext.html +1 -1
  202. package/docs/types/motionSensor.html +1 -1
  203. package/docs/types/motionSensorServiceData.html +1 -1
  204. package/docs/types/motionSensorStatus.html +1 -1
  205. package/docs/types/motionSensorWebhookContext.html +1 -1
  206. package/docs/types/onadvertisement.html +1 -1
  207. package/docs/types/ondiscover.html +1 -1
  208. package/docs/types/outdoorMeter.html +1 -1
  209. package/docs/types/outdoorMeterServiceData.html +1 -1
  210. package/docs/types/outdoorMeterStatus.html +1 -1
  211. package/docs/types/outdoorMeterWebhookContext.html +1 -1
  212. package/docs/types/panTiltCamWebhookContext.html +1 -1
  213. package/docs/types/pantiltCam.html +1 -1
  214. package/docs/types/pantiltCam2k.html +1 -1
  215. package/docs/types/plug.html +1 -1
  216. package/docs/types/plugMini.html +1 -1
  217. package/docs/types/plugMiniJPServiceData.html +1 -1
  218. package/docs/types/plugMiniJPWebhookContext.html +1 -1
  219. package/docs/types/plugMiniStatus.html +1 -1
  220. package/docs/types/plugMiniUSServiceData.html +1 -1
  221. package/docs/types/plugMiniUSWebhookContext.html +1 -1
  222. package/docs/types/plugStatus.html +1 -1
  223. package/docs/types/plugWebhookContext.html +1 -1
  224. package/docs/types/relaySwitch1Context.html +1 -0
  225. package/docs/types/relaySwitch1PMContext.html +1 -0
  226. package/docs/types/relaySwitch1PMServiceData.html +1 -1
  227. package/docs/types/relaySwitch1PMStatus.html +1 -0
  228. package/docs/types/relaySwitch1ServiceData.html +1 -0
  229. package/docs/types/relaySwitch1Status.html +1 -0
  230. package/docs/types/remote.html +1 -1
  231. package/docs/types/remoteServiceData.html +1 -0
  232. package/docs/types/robotVacuumCleanerS1.html +1 -1
  233. package/docs/types/robotVacuumCleanerS1Plus.html +1 -1
  234. package/docs/types/robotVacuumCleanerS1PlusStatus.html +1 -1
  235. package/docs/types/robotVacuumCleanerS1PlusWebhookContext.html +1 -1
  236. package/docs/types/robotVacuumCleanerS1Status.html +1 -1
  237. package/docs/types/robotVacuumCleanerS1WebhookContext.html +1 -1
  238. package/docs/types/robotVacuumCleanerServiceData.html +1 -1
  239. package/docs/types/stripLight.html +1 -1
  240. package/docs/types/stripLightServiceData.html +1 -1
  241. package/docs/types/stripLightStatus.html +1 -1
  242. package/docs/types/stripLightWebhookContext.html +1 -1
  243. package/docs/types/waterLeakDetector.html +1 -1
  244. package/docs/types/waterLeakDetectorServiceData.html +1 -1
  245. package/docs/types/waterLeakDetectorStatus.html +1 -1
  246. package/docs/types/waterLeakDetectorWebhookContext.html +1 -1
  247. package/package.json +16 -19
  248. package/.github/npm-version-script.cjs +0 -81
  249. package/dist/advertising.d.ts +0 -44
  250. package/dist/advertising.d.ts.map +0 -1
  251. package/dist/advertising.js +0 -163
  252. package/dist/advertising.js.map +0 -1
  253. package/dist/device/woblindtilt.d.ts +0 -78
  254. package/dist/device/woblindtilt.d.ts.map +0 -1
  255. package/dist/device/woblindtilt.js +0 -181
  256. package/dist/device/woblindtilt.js.map +0 -1
  257. package/dist/device/wobulb.d.ts +0 -70
  258. package/dist/device/wobulb.d.ts.map +0 -1
  259. package/dist/device/wobulb.js +0 -136
  260. package/dist/device/wobulb.js.map +0 -1
  261. package/dist/device/woceilinglight.d.ts +0 -74
  262. package/dist/device/woceilinglight.d.ts.map +0 -1
  263. package/dist/device/woceilinglight.js +0 -161
  264. package/dist/device/woceilinglight.js.map +0 -1
  265. package/dist/device/wocontact.d.ts +0 -19
  266. package/dist/device/wocontact.d.ts.map +0 -1
  267. package/dist/device/wocontact.js +0 -48
  268. package/dist/device/wocontact.js.map +0 -1
  269. package/dist/device/wocurtain.d.ts +0 -52
  270. package/dist/device/wocurtain.d.ts.map +0 -1
  271. package/dist/device/wocurtain.js +0 -135
  272. package/dist/device/wocurtain.js.map +0 -1
  273. package/dist/device/wohand.d.ts +0 -50
  274. package/dist/device/wohand.d.ts.map +0 -1
  275. package/dist/device/wohand.js +0 -82
  276. package/dist/device/wohand.js.map +0 -1
  277. package/dist/device/wohub2.d.ts +0 -19
  278. package/dist/device/wohub2.d.ts.map +0 -1
  279. package/dist/device/wohub2.js +0 -40
  280. package/dist/device/wohub2.js.map +0 -1
  281. package/dist/device/wohumi.d.ts +0 -50
  282. package/dist/device/wohumi.d.ts.map +0 -1
  283. package/dist/device/wohumi.js +0 -89
  284. package/dist/device/wohumi.js.map +0 -1
  285. package/dist/device/woiosensorth.d.ts +0 -20
  286. package/dist/device/woiosensorth.d.ts.map +0 -1
  287. package/dist/device/woiosensorth.js +0 -49
  288. package/dist/device/woiosensorth.js.map +0 -1
  289. package/dist/device/wokeypad.d.ts +0 -19
  290. package/dist/device/wokeypad.d.ts.map +0 -1
  291. package/dist/device/wokeypad.js +0 -51
  292. package/dist/device/wokeypad.js.map +0 -1
  293. package/dist/device/woleak.d.ts +0 -20
  294. package/dist/device/woleak.d.ts.map +0 -1
  295. package/dist/device/woleak.js +0 -52
  296. package/dist/device/woleak.js.map +0 -1
  297. package/dist/device/woplugmini.d.ts +0 -52
  298. package/dist/device/woplugmini.d.ts.map +0 -1
  299. package/dist/device/woplugmini.js +0 -110
  300. package/dist/device/woplugmini.js.map +0 -1
  301. package/dist/device/woplugmini_jp.d.ts +0 -52
  302. package/dist/device/woplugmini_jp.d.ts.map +0 -1
  303. package/dist/device/woplugmini_jp.js +0 -110
  304. package/dist/device/woplugmini_jp.js.map +0 -1
  305. package/dist/device/wopresence.d.ts +0 -19
  306. package/dist/device/wopresence.d.ts.map +0 -1
  307. package/dist/device/wopresence.js +0 -39
  308. package/dist/device/wopresence.js.map +0 -1
  309. package/dist/device/worelayswitch1plus.d.ts +0 -36
  310. package/dist/device/worelayswitch1plus.d.ts.map +0 -1
  311. package/dist/device/worelayswitch1plus.js +0 -141
  312. package/dist/device/worelayswitch1plus.js.map +0 -1
  313. package/dist/device/worelayswitch1pm.d.ts +0 -36
  314. package/dist/device/worelayswitch1pm.d.ts.map +0 -1
  315. package/dist/device/worelayswitch1pm.js +0 -144
  316. package/dist/device/worelayswitch1pm.js.map +0 -1
  317. package/dist/device/wosensorth.d.ts +0 -13
  318. package/dist/device/wosensorth.d.ts.map +0 -1
  319. package/dist/device/wosensorth.js +0 -38
  320. package/dist/device/wosensorth.js.map +0 -1
  321. package/dist/device/wosensorthplus.d.ts +0 -13
  322. package/dist/device/wosensorthplus.d.ts.map +0 -1
  323. package/dist/device/wosensorthplus.js +0 -38
  324. package/dist/device/wosensorthplus.js.map +0 -1
  325. package/dist/device/wosensorthpro.d.ts +0 -13
  326. package/dist/device/wosensorthpro.d.ts.map +0 -1
  327. package/dist/device/wosensorthpro.js +0 -38
  328. package/dist/device/wosensorthpro.js.map +0 -1
  329. package/dist/device/wosensorthproco2.d.ts +0 -13
  330. package/dist/device/wosensorthproco2.d.ts.map +0 -1
  331. package/dist/device/wosensorthproco2.js +0 -40
  332. package/dist/device/wosensorthproco2.js.map +0 -1
  333. package/dist/device/wosmartlock.d.ts +0 -86
  334. package/dist/device/wosmartlock.d.ts.map +0 -1
  335. package/dist/device/wosmartlock.js +0 -198
  336. package/dist/device/wosmartlock.js.map +0 -1
  337. package/dist/device/wosmartlockpro.d.ts +0 -86
  338. package/dist/device/wosmartlockpro.d.ts.map +0 -1
  339. package/dist/device/wosmartlockpro.js +0 -200
  340. package/dist/device/wosmartlockpro.js.map +0 -1
  341. package/dist/device/wostrip.d.ts +0 -63
  342. package/dist/device/wostrip.d.ts.map +0 -1
  343. package/dist/device/wostrip.js +0 -131
  344. package/dist/device/wostrip.js.map +0 -1
  345. package/dist/test/advertising.test.d.ts +0 -2
  346. package/dist/test/advertising.test.d.ts.map +0 -1
  347. package/dist/test/advertising.test.js +0 -99
  348. package/dist/test/advertising.test.js.map +0 -1
  349. package/dist/test/device.test.d.ts +0 -2
  350. package/dist/test/device.test.d.ts.map +0 -1
  351. package/dist/test/device.test.js +0 -38
  352. package/dist/test/device.test.js.map +0 -1
  353. package/dist/test/index.test.js.map +0 -1
  354. package/dist/test/parameter-checker.test.d.ts +0 -2
  355. package/dist/test/parameter-checker.test.d.ts.map +0 -1
  356. package/dist/test/parameter-checker.test.js +0 -108
  357. package/dist/test/parameter-checker.test.js.map +0 -1
  358. package/dist/test/switchbot-ble.test.d.ts +0 -2
  359. package/dist/test/switchbot-ble.test.d.ts.map +0 -1
  360. package/dist/test/switchbot-ble.test.js +0 -45
  361. package/dist/test/switchbot-ble.test.js.map +0 -1
  362. package/dist/test/switchbot-openapi.test.d.ts +0 -2
  363. package/dist/test/switchbot-openapi.test.d.ts.map +0 -1
  364. package/dist/test/switchbot-openapi.test.js +0 -96
  365. package/dist/test/switchbot-openapi.test.js.map +0 -1
  366. package/dist/test/woblindtilt.test.d.ts +0 -2
  367. package/dist/test/woblindtilt.test.d.ts.map +0 -1
  368. package/dist/test/woblindtilt.test.js +0 -76
  369. package/dist/test/woblindtilt.test.js.map +0 -1
  370. package/dist/test/wobulb.test.d.ts +0 -2
  371. package/dist/test/wobulb.test.d.ts.map +0 -1
  372. package/dist/test/wobulb.test.js +0 -95
  373. package/dist/test/wobulb.test.js.map +0 -1
  374. package/dist/test/woceilinglight.test.d.ts +0 -2
  375. package/dist/test/woceilinglight.test.d.ts.map +0 -1
  376. package/dist/test/woceilinglight.test.js +0 -81
  377. package/dist/test/woceilinglight.test.js.map +0 -1
  378. package/dist/test/wocontact.test.d.ts +0 -2
  379. package/dist/test/wocontact.test.d.ts.map +0 -1
  380. package/dist/test/wocontact.test.js +0 -65
  381. package/dist/test/wocontact.test.js.map +0 -1
  382. package/dist/test/wocurtain.test.d.ts +0 -2
  383. package/dist/test/wocurtain.test.d.ts.map +0 -1
  384. package/dist/test/wocurtain.test.js +0 -75
  385. package/dist/test/wocurtain.test.js.map +0 -1
  386. package/dist/test/wohand.test.d.ts +0 -2
  387. package/dist/test/wohand.test.d.ts.map +0 -1
  388. package/dist/test/wohand.test.js +0 -56
  389. package/dist/test/wohand.test.js.map +0 -1
  390. package/dist/test/wohub2.test.d.ts +0 -2
  391. package/dist/test/wohub2.test.d.ts.map +0 -1
  392. package/dist/test/wohub2.test.js +0 -80
  393. package/dist/test/wohub2.test.js.map +0 -1
  394. package/dist/test/wohumi.test.d.ts +0 -2
  395. package/dist/test/wohumi.test.d.ts.map +0 -1
  396. package/dist/test/wohumi.test.js +0 -82
  397. package/dist/test/wohumi.test.js.map +0 -1
  398. package/dist/test/woiosensorth.test.d.ts +0 -2
  399. package/dist/test/woiosensorth.test.d.ts.map +0 -1
  400. package/dist/test/woiosensorth.test.js +0 -40
  401. package/dist/test/woiosensorth.test.js.map +0 -1
  402. package/dist/test/wokeypad.test.d.ts +0 -2
  403. package/dist/test/wokeypad.test.d.ts.map +0 -1
  404. package/dist/test/wokeypad.test.js +0 -46
  405. package/dist/test/wokeypad.test.js.map +0 -1
  406. package/dist/test/woleak.test.d.ts +0 -2
  407. package/dist/test/woleak.test.d.ts.map +0 -1
  408. package/dist/test/woleak.test.js +0 -51
  409. package/dist/test/woleak.test.js.map +0 -1
  410. package/dist/test/woplugmini.test.d.ts +0 -2
  411. package/dist/test/woplugmini.test.d.ts.map +0 -1
  412. package/dist/test/woplugmini.test.js +0 -90
  413. package/dist/test/woplugmini.test.js.map +0 -1
  414. package/dist/test/woplugmini_jp.test.d.ts +0 -2
  415. package/dist/test/woplugmini_jp.test.d.ts.map +0 -1
  416. package/dist/test/woplugmini_jp.test.js +0 -90
  417. package/dist/test/woplugmini_jp.test.js.map +0 -1
  418. package/dist/test/wopresence.test.d.ts +0 -2
  419. package/dist/test/wopresence.test.d.ts.map +0 -1
  420. package/dist/test/wopresence.test.js +0 -68
  421. package/dist/test/wopresence.test.js.map +0 -1
  422. package/dist/test/wosensorth.test.d.ts +0 -2
  423. package/dist/test/wosensorth.test.d.ts.map +0 -1
  424. package/dist/test/wosensorth.test.js +0 -29
  425. package/dist/test/wosensorth.test.js.map +0 -1
  426. package/dist/test/wosensorthplus.test.d.ts +0 -2
  427. package/dist/test/wosensorthplus.test.d.ts.map +0 -1
  428. package/dist/test/wosensorthplus.test.js +0 -29
  429. package/dist/test/wosensorthplus.test.js.map +0 -1
  430. package/dist/test/wosensorthpro.test.d.ts +0 -2
  431. package/dist/test/wosensorthpro.test.d.ts.map +0 -1
  432. package/dist/test/wosensorthpro.test.js +0 -29
  433. package/dist/test/wosensorthpro.test.js.map +0 -1
  434. package/dist/test/wosensorthproco2.test.d.ts +0 -2
  435. package/dist/test/wosensorthproco2.test.d.ts.map +0 -1
  436. package/dist/test/wosensorthproco2.test.js +0 -32
  437. package/dist/test/wosensorthproco2.test.js.map +0 -1
  438. package/dist/test/wosmartlock.test.d.ts +0 -2
  439. package/dist/test/wosmartlock.test.d.ts.map +0 -1
  440. package/dist/test/wosmartlock.test.js +0 -151
  441. package/dist/test/wosmartlock.test.js.map +0 -1
  442. package/dist/test/wosmartlockpro.test.d.ts +0 -2
  443. package/dist/test/wosmartlockpro.test.d.ts.map +0 -1
  444. package/dist/test/wosmartlockpro.test.js +0 -150
  445. package/dist/test/wosmartlockpro.test.js.map +0 -1
  446. package/dist/test/wostrip.test.d.ts +0 -2
  447. package/dist/test/wostrip.test.d.ts.map +0 -1
  448. package/dist/test/wostrip.test.js +0 -102
  449. package/dist/test/wostrip.test.js.map +0 -1
  450. package/docs/types/relaySwitch1PlusServiceData.html +0 -1
  451. /package/dist/{test/index.test.d.ts → index.test.d.ts} +0 -0
  452. /package/dist/{test/settings.test.d.ts → settings.test.d.ts} +0 -0
@@ -1,141 +0,0 @@
1
- import { Buffer } from 'node:buffer';
2
- import { createCipheriv } from 'node:crypto';
3
- import { SwitchbotDevice } from '../device.js';
4
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
5
- const COMMAND_HEADER = '57';
6
- const COMMAND_GET_CK_IV = `${COMMAND_HEADER}0f2103`;
7
- const COMMAND_TURN_OFF = `${COMMAND_HEADER}0f70010000`;
8
- const COMMAND_TURN_ON = `${COMMAND_HEADER}0f70010100`;
9
- const COMMAND_TOGGLE = `${COMMAND_HEADER}0f70010200`;
10
- const COMMAND_GET_VOLTAGE_AND_CURRENT = `${COMMAND_HEADER}0f7106000000`;
11
- // const PASSIVE_POLL_INTERVAL = 1 * 60
12
- /**
13
- * Class representing a WoRelaySwitch1Plus device.
14
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/
15
- */
16
- export class WoRelaySwitch1Plus extends SwitchbotDevice {
17
- _iv = null;
18
- _cipher = null;
19
- _keyId;
20
- _encryptionKey;
21
- constructor(peripheral, noble) {
22
- super(peripheral, noble);
23
- const keyId = peripheral.advertisement.localName?.slice(-2) || '';
24
- const encryptionKey = peripheral.advertisement.localName?.slice(0, 32) || '';
25
- if (keyId.length === 0) {
26
- throw new Error('key_id is missing');
27
- }
28
- else if (keyId.length !== 2) {
29
- throw new Error('key_id is invalid');
30
- }
31
- if (encryptionKey.length === 0) {
32
- throw new Error('encryption_key is missing');
33
- }
34
- else if (encryptionKey.length !== 32) {
35
- throw new Error('encryption_key is invalid');
36
- }
37
- this._keyId = keyId;
38
- this._encryptionKey = Buffer.from(encryptionKey, 'hex');
39
- }
40
- /**
41
- * Parses the service data for WoRelaySwitch1Plus.
42
- * @param {Buffer} serviceData - The service data buffer.
43
- * @param {Buffer} manufacturerData - The manufacturer data buffer.
44
- * @param {Function} emitLog - The function to emit log messages.
45
- * @returns {Promise<relaySwitch1PlusServiceData | null>} - Parsed service data or null if invalid.
46
- */
47
- static async parseServiceData(serviceData, manufacturerData, emitLog) {
48
- if (serviceData.length < 8 || manufacturerData.length === null) {
49
- emitLog('debugerror', `[parseServiceDataForWoRelaySwitch1Plus] Buffer length ${serviceData.length} < 8!`);
50
- return null;
51
- }
52
- const data = {
53
- model: SwitchBotBLEModel.RelaySwitch1Plus,
54
- modelName: SwitchBotBLEModelName.RelaySwitch1Plus,
55
- modelFriendlyName: SwitchBotBLEModelFriendlyName.RelaySwitch1Plus,
56
- mode: true, // for compatibility, useless
57
- state: !!(manufacturerData[7] & 0b10000000),
58
- sequence_number: manufacturerData[6],
59
- };
60
- return data;
61
- }
62
- async turnOn() {
63
- const result = await this._sendCommand(COMMAND_TURN_ON);
64
- const ok = this._checkCommandResult(result, 0, new Set([1]));
65
- if (ok) {
66
- this._overrideState({ isOn: true });
67
- this._fireCallbacks();
68
- }
69
- return ok;
70
- }
71
- async turnOff() {
72
- const result = await this._sendCommand(COMMAND_TURN_OFF);
73
- const ok = this._checkCommandResult(result, 0, new Set([1]));
74
- if (ok) {
75
- this._overrideState({ isOn: false });
76
- this._fireCallbacks();
77
- }
78
- return ok;
79
- }
80
- async toggle() {
81
- const result = await this._sendCommand(COMMAND_TOGGLE);
82
- return this._checkCommandResult(result, 0, new Set([1]));
83
- }
84
- async getVoltageAndCurrent() {
85
- const result = await this._sendCommand(COMMAND_GET_VOLTAGE_AND_CURRENT);
86
- const ok = this._checkCommandResult(result, 0, new Set([1]));
87
- if (ok) {
88
- return {
89
- voltage: result ? (result[9] << 8) + result[10] : 0,
90
- current: result ? (result[11] << 8) + result[12] : 0,
91
- };
92
- }
93
- return null;
94
- }
95
- async _sendCommand(key, retry = null, encrypt = true) {
96
- if (!encrypt) {
97
- return await super._sendCommand(`${key.slice(0, 2)}000000${key.slice(2)}`, retry);
98
- }
99
- const result = await this._ensureEncryptionInitialized();
100
- if (!result) {
101
- return null;
102
- }
103
- const encrypted = key.slice(0, 2) + this._keyId + this._iv.slice(0, 2).toString('hex') + this._encrypt(key.slice(2));
104
- const response = await super._sendCommand(encrypted, retry);
105
- return response ? Buffer.concat([response.slice(0, 1), this._decrypt(response.slice(4))]) : null;
106
- }
107
- async _ensureEncryptionInitialized() {
108
- if (this._iv !== null) {
109
- return true;
110
- }
111
- const result = await this._sendCommand(COMMAND_GET_CK_IV + this._keyId, null, false);
112
- const ok = this._checkCommandResult(result, 0, new Set([1]));
113
- if (ok) {
114
- this._iv = result.slice(4);
115
- }
116
- return ok;
117
- }
118
- _getCipher() {
119
- if (this._cipher === null) {
120
- this._cipher = createCipheriv('aes-128-ctr', this._encryptionKey, this._iv);
121
- }
122
- return this._cipher;
123
- }
124
- _encrypt(data) {
125
- if (data.length === 0) {
126
- return '';
127
- }
128
- const cipher = this._getCipher();
129
- const encrypted = Buffer.concat([cipher.update(Buffer.from(data, 'hex')), cipher.final()]);
130
- return encrypted.toString('hex');
131
- }
132
- _decrypt(data) {
133
- if (data.length === 0) {
134
- return Buffer.alloc(0);
135
- }
136
- const decipher = createCipheriv('aes-128-ctr', this._encryptionKey, this._iv);
137
- const decrypted = Buffer.concat([decipher.update(data), decipher.final()]);
138
- return decrypted;
139
- }
140
- }
141
- //# sourceMappingURL=worelayswitch1plus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worelayswitch1plus.js","sourceRoot":"","sources":["../../src/device/worelayswitch1plus.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- import type { relaySwitch1PMServiceData } from '../types/bledevicestatus.js';
2
- import type { NobleTypes } from '../types/types.js';
3
- import { Buffer } from 'node:buffer';
4
- import { SwitchbotDevice } from '../device.js';
5
- /**
6
- * Class representing a WoRelaySwitch1PM device.
7
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/
8
- */
9
- export declare class WoRelaySwitch1PM extends SwitchbotDevice {
10
- private _iv;
11
- private _cipher;
12
- private _keyId;
13
- private _encryptionKey;
14
- constructor(peripheral: NobleTypes['peripheral'], noble: NobleTypes['noble']);
15
- /**
16
- * Parses the service data for WoRelaySwitch1PM.
17
- * @param {Buffer} serviceData - The service data buffer.
18
- * @param {Buffer} manufacturerData - The manufacturer data buffer.
19
- * @param {Function} emitLog - The function to emit log messages.
20
- * @returns {Promise<relaySwitch1PMServiceData | null>} - Parsed service data or null if invalid.
21
- */
22
- static parseServiceData(serviceData: Buffer, manufacturerData: Buffer, emitLog: (level: string, message: string) => void): Promise<relaySwitch1PMServiceData | null>;
23
- turnOn(): Promise<boolean>;
24
- turnOff(): Promise<boolean>;
25
- toggle(): Promise<boolean>;
26
- getVoltageAndCurrent(): Promise<{
27
- voltage: number;
28
- current: number;
29
- } | null>;
30
- private _sendCommand;
31
- private _ensureEncryptionInitialized;
32
- private _getCipher;
33
- private _encrypt;
34
- private _decrypt;
35
- }
36
- //# sourceMappingURL=worelayswitch1pm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worelayswitch1pm.d.ts","sourceRoot":"","sources":["../../src/device/worelayswitch1pm.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAW9C;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,cAAc,CAAQ;gBAElB,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;IAkB5E;;;;;;OAMG;WACU,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAChD,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IAqBtC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAU1B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAU3B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAK1B,oBAAoB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;YAYpE,YAAY;YAeZ,4BAA4B;IAa1C,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,QAAQ;CAQjB"}
@@ -1,144 +0,0 @@
1
- import { Buffer } from 'node:buffer';
2
- import { createCipheriv } from 'node:crypto';
3
- import { SwitchbotDevice } from '../device.js';
4
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
5
- const COMMAND_HEADER = '57';
6
- const COMMAND_GET_CK_IV = `${COMMAND_HEADER}0f2103`;
7
- const COMMAND_TURN_OFF = `${COMMAND_HEADER}0f70010000`;
8
- const COMMAND_TURN_ON = `${COMMAND_HEADER}0f70010100`;
9
- const COMMAND_TOGGLE = `${COMMAND_HEADER}0f70010200`;
10
- const COMMAND_GET_VOLTAGE_AND_CURRENT = `${COMMAND_HEADER}0f7106000000`;
11
- // const PASSIVE_POLL_INTERVAL = 1 * 60
12
- /**
13
- * Class representing a WoRelaySwitch1PM device.
14
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/
15
- */
16
- export class WoRelaySwitch1PM extends SwitchbotDevice {
17
- _iv = null;
18
- _cipher = null;
19
- _keyId;
20
- _encryptionKey;
21
- constructor(peripheral, noble) {
22
- super(peripheral, noble);
23
- const keyId = peripheral.advertisement.localName?.slice(-2) || '';
24
- const encryptionKey = peripheral.advertisement.localName?.slice(0, 32) || '';
25
- if (keyId.length === 0) {
26
- throw new Error('key_id is missing');
27
- }
28
- else if (keyId.length !== 2) {
29
- throw new Error('key_id is invalid');
30
- }
31
- if (encryptionKey.length === 0) {
32
- throw new Error('encryption_key is missing');
33
- }
34
- else if (encryptionKey.length !== 32) {
35
- throw new Error('encryption_key is invalid');
36
- }
37
- this._keyId = keyId;
38
- this._encryptionKey = Buffer.from(encryptionKey, 'hex');
39
- }
40
- /**
41
- * Parses the service data for WoRelaySwitch1PM.
42
- * @param {Buffer} serviceData - The service data buffer.
43
- * @param {Buffer} manufacturerData - The manufacturer data buffer.
44
- * @param {Function} emitLog - The function to emit log messages.
45
- * @returns {Promise<relaySwitch1PMServiceData | null>} - Parsed service data or null if invalid.
46
- */
47
- static async parseServiceData(serviceData, manufacturerData, emitLog) {
48
- if (serviceData.length < 8 || manufacturerData.length === null) {
49
- emitLog('debugerror', `[parseServiceDataForWoRelaySwitch1PM] Buffer length ${serviceData.length} < 8!`);
50
- return null;
51
- }
52
- const data = {
53
- model: SwitchBotBLEModel.RelaySwitch1PM,
54
- modelName: SwitchBotBLEModelName.RelaySwitch1PM,
55
- modelFriendlyName: SwitchBotBLEModelFriendlyName.RelaySwitch1PM,
56
- mode: true, // for compatibility, useless
57
- state: !!(manufacturerData[7] & 0b10000000),
58
- sequence_number: manufacturerData[6],
59
- power: ((manufacturerData[10] << 8) + manufacturerData[11]) / 10,
60
- voltage: 0,
61
- current: 0,
62
- };
63
- return data;
64
- }
65
- async turnOn() {
66
- const result = await this._sendCommand(COMMAND_TURN_ON);
67
- const ok = this._checkCommandResult(result, 0, new Set([1]));
68
- if (ok) {
69
- this._overrideState({ isOn: true });
70
- this._fireCallbacks();
71
- }
72
- return ok;
73
- }
74
- async turnOff() {
75
- const result = await this._sendCommand(COMMAND_TURN_OFF);
76
- const ok = this._checkCommandResult(result, 0, new Set([1]));
77
- if (ok) {
78
- this._overrideState({ isOn: false });
79
- this._fireCallbacks();
80
- }
81
- return ok;
82
- }
83
- async toggle() {
84
- const result = await this._sendCommand(COMMAND_TOGGLE);
85
- return this._checkCommandResult(result, 0, new Set([1]));
86
- }
87
- async getVoltageAndCurrent() {
88
- const result = await this._sendCommand(COMMAND_GET_VOLTAGE_AND_CURRENT);
89
- const ok = this._checkCommandResult(result, 0, new Set([1]));
90
- if (ok) {
91
- return {
92
- voltage: result ? (result[9] << 8) + result[10] : 0,
93
- current: result ? (result[11] << 8) + result[12] : 0,
94
- };
95
- }
96
- return null;
97
- }
98
- async _sendCommand(key, retry = null, encrypt = true) {
99
- if (!encrypt) {
100
- return await super._sendCommand(`${key.slice(0, 2)}000000${key.slice(2)}`, retry);
101
- }
102
- const result = await this._ensureEncryptionInitialized();
103
- if (!result) {
104
- return null;
105
- }
106
- const encrypted = key.slice(0, 2) + this._keyId + this._iv.slice(0, 2).toString('hex') + this._encrypt(key.slice(2));
107
- const response = await super._sendCommand(encrypted, retry);
108
- return response ? Buffer.concat([response.slice(0, 1), this._decrypt(response.slice(4))]) : null;
109
- }
110
- async _ensureEncryptionInitialized() {
111
- if (this._iv !== null) {
112
- return true;
113
- }
114
- const result = await this._sendCommand(COMMAND_GET_CK_IV + this._keyId, null, false);
115
- const ok = this._checkCommandResult(result, 0, new Set([1]));
116
- if (ok) {
117
- this._iv = result.slice(4);
118
- }
119
- return ok;
120
- }
121
- _getCipher() {
122
- if (this._cipher === null) {
123
- this._cipher = createCipheriv('aes-128-ctr', this._encryptionKey, this._iv);
124
- }
125
- return this._cipher;
126
- }
127
- _encrypt(data) {
128
- if (data.length === 0) {
129
- return '';
130
- }
131
- const cipher = this._getCipher();
132
- const encrypted = Buffer.concat([cipher.update(Buffer.from(data, 'hex')), cipher.final()]);
133
- return encrypted.toString('hex');
134
- }
135
- _decrypt(data) {
136
- if (data.length === 0) {
137
- return Buffer.alloc(0);
138
- }
139
- const decipher = createCipheriv('aes-128-ctr', this._encryptionKey, this._iv);
140
- const decrypted = Buffer.concat([decipher.update(data), decipher.final()]);
141
- return decrypted;
142
- }
143
- }
144
- //# sourceMappingURL=worelayswitch1pm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worelayswitch1pm.js","sourceRoot":"","sources":["../../src/device/worelayswitch1pm.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { Buffer } from 'node:buffer';
2
- import type { meterServiceData } from '../types/bledevicestatus.js';
3
- import type { NobleTypes } from '../types/types.js';
4
- import { SwitchbotDevice } from '../device.js';
5
- /**
6
- * Class representing a WoSensorTH device.
7
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
8
- */
9
- export declare class WoSensorTH extends SwitchbotDevice {
10
- constructor(peripheral: NobleTypes['peripheral'], noble: NobleTypes['noble']);
11
- static parseServiceData(serviceData: Buffer, emitLog: (level: string, message: string) => void): Promise<meterServiceData | null>;
12
- }
13
- //# sourceMappingURL=wosensorth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wosensorth.d.ts","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAAe;gBACjC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;WAI/D,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAChD,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CA4BpC"}
@@ -1,38 +0,0 @@
1
- import { SwitchbotDevice } from '../device.js';
2
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
3
- /**
4
- * Class representing a WoSensorTH device.
5
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
6
- */
7
- export class WoSensorTH extends SwitchbotDevice {
8
- constructor(peripheral, noble) {
9
- super(peripheral, noble);
10
- }
11
- static async parseServiceData(serviceData, emitLog) {
12
- if (serviceData.length !== 6) {
13
- emitLog('debugerror', `[parseServiceData] Buffer length ${serviceData.length} !== 6!`);
14
- return null;
15
- }
16
- const [byte2, byte3, byte4, byte5] = [
17
- serviceData.readUInt8(2),
18
- serviceData.readUInt8(3),
19
- serviceData.readUInt8(4),
20
- serviceData.readUInt8(5),
21
- ];
22
- const tempSign = byte4 & 0b10000000 ? 1 : -1;
23
- const tempC = tempSign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
24
- const tempF = Math.round(((tempC * 9) / 5 + 32) * 10) / 10;
25
- const data = {
26
- model: SwitchBotBLEModel.Meter,
27
- modelName: SwitchBotBLEModelName.Meter,
28
- modelFriendlyName: SwitchBotBLEModelFriendlyName.Meter,
29
- celsius: tempC,
30
- fahrenheit: tempF,
31
- fahrenheit_mode: !!(byte5 & 0b10000000),
32
- humidity: byte5 & 0b01111111,
33
- battery: byte2 & 0b01111111,
34
- };
35
- return data;
36
- }
37
- }
38
- //# sourceMappingURL=wosensorth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wosensorth.js","sourceRoot":"","sources":["../../src/device/wosensorth.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C,YAAY,UAAoC,EAAE,KAA0B;QAC1E,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,OAAiD;QAEjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,EAAE,oCAAoC,WAAW,CAAC,MAAM,SAAS,CAAC,CAAA;YACtF,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG;YACnC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;SACzB,CAAA;QACD,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;QAE1D,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,KAAK;YAC9B,SAAS,EAAE,qBAAqB,CAAC,KAAK;YACtC,iBAAiB,EAAE,6BAA6B,CAAC,KAAK;YACtD,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;YACvC,QAAQ,EAAE,KAAK,GAAG,UAAU;YAC5B,OAAO,EAAE,KAAK,GAAG,UAAU;SAC5B,CAAA;QACD,OAAO,IAAwB,CAAA;IACjC,CAAC;CACF"}
@@ -1,13 +0,0 @@
1
- import type { Buffer } from 'node:buffer';
2
- import type { meterPlusServiceData } from '../types/bledevicestatus.js';
3
- import type { NobleTypes } from '../types/types.js';
4
- import { SwitchbotDevice } from '../device.js';
5
- /**
6
- * Class representing a WoSensorTH device.
7
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
8
- */
9
- export declare class WoSensorTHPlus extends SwitchbotDevice {
10
- constructor(peripheral: NobleTypes['peripheral'], noble: NobleTypes['noble']);
11
- static parseServiceData(serviceData: Buffer, emitLog: (level: string, message: string) => void): Promise<meterPlusServiceData | null>;
12
- }
13
- //# sourceMappingURL=wosensorthplus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wosensorthplus.d.ts","sourceRoot":"","sources":["../../src/device/wosensorthplus.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,cAAe,SAAQ,eAAe;gBACrC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;WAI/D,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAChD,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;CA4BxC"}
@@ -1,38 +0,0 @@
1
- import { SwitchbotDevice } from '../device.js';
2
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
3
- /**
4
- * Class representing a WoSensorTH device.
5
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
6
- */
7
- export class WoSensorTHPlus extends SwitchbotDevice {
8
- constructor(peripheral, noble) {
9
- super(peripheral, noble);
10
- }
11
- static async parseServiceData(serviceData, emitLog) {
12
- if (serviceData.length !== 6) {
13
- emitLog('debugerror', `[parseServiceData] Buffer length ${serviceData.length} !== 6 or 7!`);
14
- return null;
15
- }
16
- const [byte2, byte3, byte4, byte5] = [
17
- serviceData.readUInt8(2),
18
- serviceData.readUInt8(3),
19
- serviceData.readUInt8(4),
20
- serviceData.readUInt8(5),
21
- ];
22
- const tempSign = byte4 & 0b10000000 ? 1 : -1;
23
- const tempC = tempSign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
24
- const tempF = Math.round(((tempC * 9) / 5 + 32) * 10) / 10;
25
- const data = {
26
- model: SwitchBotBLEModel.MeterPlus,
27
- modelName: SwitchBotBLEModelName.MeterPlus,
28
- modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterPlus,
29
- celsius: tempC,
30
- fahrenheit: tempF,
31
- fahrenheit_mode: !!(byte5 & 0b10000000),
32
- humidity: byte5 & 0b01111111,
33
- battery: byte2 & 0b01111111,
34
- };
35
- return data;
36
- }
37
- }
38
- //# sourceMappingURL=wosensorthplus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wosensorthplus.js","sourceRoot":"","sources":["../../src/device/wosensorthplus.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,eAAe;IACjD,YAAY,UAAoC,EAAE,KAA0B;QAC1E,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,OAAiD;QAEjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,EAAE,oCAAoC,WAAW,CAAC,MAAM,cAAc,CAAC,CAAA;YAC3F,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG;YACnC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;SACzB,CAAA;QACD,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;QAE1D,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,SAAS;YAClC,SAAS,EAAE,qBAAqB,CAAC,SAAS;YAC1C,iBAAiB,EAAE,6BAA6B,CAAC,SAAS;YAC1D,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;YACvC,QAAQ,EAAE,KAAK,GAAG,UAAU;YAC5B,OAAO,EAAE,KAAK,GAAG,UAAU;SAC5B,CAAA;QACD,OAAO,IAA4B,CAAA;IACrC,CAAC;CACF"}
@@ -1,13 +0,0 @@
1
- import type { Buffer } from 'node:buffer';
2
- import type { meterProServiceData } from '../types/bledevicestatus.js';
3
- import type { NobleTypes } from '../types/types.js';
4
- import { SwitchbotDevice } from '../device.js';
5
- /**
6
- * Class representing a WoSensorTH device.
7
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
8
- */
9
- export declare class WoSensorTHPro extends SwitchbotDevice {
10
- constructor(peripheral: NobleTypes['peripheral'], noble: NobleTypes['noble']);
11
- static parseServiceData(serviceData: Buffer, emitLog: (level: string, message: string) => void): Promise<meterProServiceData | null>;
12
- }
13
- //# sourceMappingURL=wosensorthpro.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wosensorthpro.d.ts","sourceRoot":"","sources":["../../src/device/wosensorthpro.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,aAAc,SAAQ,eAAe;gBACpC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;WAI/D,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAChD,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;CA4BvC"}
@@ -1,38 +0,0 @@
1
- import { SwitchbotDevice } from '../device.js';
2
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
3
- /**
4
- * Class representing a WoSensorTH device.
5
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
6
- */
7
- export class WoSensorTHPro extends SwitchbotDevice {
8
- constructor(peripheral, noble) {
9
- super(peripheral, noble);
10
- }
11
- static async parseServiceData(serviceData, emitLog) {
12
- if (serviceData.length !== 6) {
13
- emitLog('debugerror', `[parseServiceData] Buffer length ${serviceData.length} !== 6 or 7!`);
14
- return null;
15
- }
16
- const [byte2, byte3, byte4, byte5] = [
17
- serviceData.readUInt8(2),
18
- serviceData.readUInt8(3),
19
- serviceData.readUInt8(4),
20
- serviceData.readUInt8(5),
21
- ];
22
- const tempSign = byte4 & 0b10000000 ? 1 : -1;
23
- const tempC = tempSign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
24
- const tempF = Math.round(((tempC * 9) / 5 + 32) * 10) / 10;
25
- const data = {
26
- model: SwitchBotBLEModel.MeterPro,
27
- modelName: SwitchBotBLEModelName.MeterPro,
28
- modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterPro,
29
- celsius: tempC,
30
- fahrenheit: tempF,
31
- fahrenheit_mode: !!(byte5 & 0b10000000),
32
- humidity: byte5 & 0b01111111,
33
- battery: byte2 & 0b01111111,
34
- };
35
- return data;
36
- }
37
- }
38
- //# sourceMappingURL=wosensorthpro.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wosensorthpro.js","sourceRoot":"","sources":["../../src/device/wosensorthpro.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,YAAY,UAAoC,EAAE,KAA0B;QAC1E,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,OAAiD;QAEjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,EAAE,oCAAoC,WAAW,CAAC,MAAM,cAAc,CAAC,CAAA;YAC3F,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG;YACnC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;SACzB,CAAA;QACD,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;QAE1D,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,QAAQ;YACjC,SAAS,EAAE,qBAAqB,CAAC,QAAQ;YACzC,iBAAiB,EAAE,6BAA6B,CAAC,QAAQ;YACzD,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;YACvC,QAAQ,EAAE,KAAK,GAAG,UAAU;YAC5B,OAAO,EAAE,KAAK,GAAG,UAAU;SAC5B,CAAA;QACD,OAAO,IAA2B,CAAA;IACpC,CAAC;CACF"}
@@ -1,13 +0,0 @@
1
- import type { Buffer } from 'node:buffer';
2
- import type { meterProCO2ServiceData } from '../types/bledevicestatus.js';
3
- import type { NobleTypes } from '../types/types.js';
4
- import { SwitchbotDevice } from '../device.js';
5
- /**
6
- * Class representing a WoSensorTH device.
7
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
8
- */
9
- export declare class WoSensorTHProCO2 extends SwitchbotDevice {
10
- constructor(peripheral: NobleTypes['peripheral'], noble: NobleTypes['noble']);
11
- static parseServiceData(serviceData: Buffer, manufacturerData: Buffer, emitLog: (level: string, message: string) => void): Promise<meterProCO2ServiceData | null>;
12
- }
13
- //# sourceMappingURL=wosensorthproco2.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wosensorthproco2.d.ts","sourceRoot":"","sources":["../../src/device/wosensorthproco2.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;gBACvC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;WAI/D,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAChD,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;CA8B1C"}
@@ -1,40 +0,0 @@
1
- import { SwitchbotDevice } from '../device.js';
2
- import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
3
- /**
4
- * Class representing a WoSensorTH device.
5
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/meter.md
6
- */
7
- export class WoSensorTHProCO2 extends SwitchbotDevice {
8
- constructor(peripheral, noble) {
9
- super(peripheral, noble);
10
- }
11
- static async parseServiceData(serviceData, manufacturerData, emitLog) {
12
- if (serviceData.length !== 7) {
13
- emitLog('debugerror', `[parseServiceData] Buffer length ${serviceData.length} !== 7!`);
14
- return null;
15
- }
16
- const [byte2, byte3, byte4, byte5, byte6] = [
17
- serviceData.readUInt8(2),
18
- serviceData.readUInt8(3),
19
- serviceData.readUInt8(4),
20
- serviceData.readUInt8(5),
21
- manufacturerData.readUInt16BE(6),
22
- ];
23
- const tempSign = byte4 & 0b10000000 ? 1 : -1;
24
- const tempC = tempSign * ((byte4 & 0b01111111) + (byte3 & 0b00001111) / 10);
25
- const tempF = Math.round(((tempC * 9) / 5 + 32) * 10) / 10;
26
- const data = {
27
- model: SwitchBotBLEModel.MeterProCO2,
28
- modelName: SwitchBotBLEModelName.MeterProCO2,
29
- modelFriendlyName: SwitchBotBLEModelFriendlyName.MeterProCO2,
30
- celsius: tempC,
31
- fahrenheit: tempF,
32
- fahrenheit_mode: !!(byte5 & 0b10000000),
33
- humidity: byte5 & 0b01111111,
34
- battery: byte2 & 0b01111111,
35
- co2: byte6,
36
- };
37
- return data;
38
- }
39
- }
40
- //# sourceMappingURL=wosensorthproco2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wosensorthproco2.js","sourceRoot":"","sources":["../../src/device/wosensorthproco2.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACnD,YAAY,UAAoC,EAAE,KAA0B;QAC1E,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,gBAAwB,EACxB,OAAiD;QAEjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,EAAE,oCAAoC,WAAW,CAAC,MAAM,SAAS,CAAC,CAAA;YACtF,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG;YAC1C,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;SACjC,CAAA;QACD,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;QAE1D,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,WAAW;YACpC,SAAS,EAAE,qBAAqB,CAAC,WAAW;YAC5C,iBAAiB,EAAE,6BAA6B,CAAC,WAAW;YAC5D,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;YACvC,QAAQ,EAAE,KAAK,GAAG,UAAU;YAC5B,OAAO,EAAE,KAAK,GAAG,UAAU;YAC3B,GAAG,EAAE,KAAK;SACX,CAAA;QACD,OAAO,IAA8B,CAAA;IACvC,CAAC;CACF"}