node-switchbot 2.5.0-beta.3 → 2.5.0-beta.31

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 (405) hide show
  1. package/.github/workflows/beta-release.yml +25 -2
  2. package/.github/workflows/release.yml +13 -0
  3. package/BLE.md +1109 -0
  4. package/CHANGELOG.md +14 -0
  5. package/OpenAPI.md +172 -0
  6. package/README.md +20 -1189
  7. package/branding/Node_x_SwitchBot.svg +9 -0
  8. package/branding/icon.png +0 -0
  9. package/branding/switchbot.png +0 -0
  10. package/dist/advertising.d.ts +32 -21
  11. package/dist/advertising.d.ts.map +1 -1
  12. package/dist/advertising.js +72 -76
  13. package/dist/advertising.js.map +1 -1
  14. package/dist/device/woblindtilt.d.ts +21 -51
  15. package/dist/device/woblindtilt.d.ts.map +1 -1
  16. package/dist/device/woblindtilt.js +40 -103
  17. package/dist/device/woblindtilt.js.map +1 -1
  18. package/dist/device/wobulb.d.ts +42 -15
  19. package/dist/device/wobulb.d.ts.map +1 -1
  20. package/dist/device/wobulb.js +71 -131
  21. package/dist/device/wobulb.js.map +1 -1
  22. package/dist/device/woceilinglight.d.ts +47 -21
  23. package/dist/device/woceilinglight.d.ts.map +1 -1
  24. package/dist/device/woceilinglight.js +94 -174
  25. package/dist/device/woceilinglight.js.map +1 -1
  26. package/dist/device/wocontact.d.ts +12 -1
  27. package/dist/device/wocontact.d.ts.map +1 -1
  28. package/dist/device/wocontact.js +23 -22
  29. package/dist/device/wocontact.js.map +1 -1
  30. package/dist/device/wocurtain.d.ts +40 -1
  31. package/dist/device/wocurtain.d.ts.map +1 -1
  32. package/dist/device/wocurtain.js +68 -106
  33. package/dist/device/wocurtain.js.map +1 -1
  34. package/dist/device/wohand.d.ts +38 -2
  35. package/dist/device/wohand.d.ts.map +1 -1
  36. package/dist/device/wohand.js +54 -92
  37. package/dist/device/wohand.js.map +1 -1
  38. package/dist/device/wohub2.d.ts +12 -1
  39. package/dist/device/wohub2.d.ts.map +1 -1
  40. package/dist/device/wohub2.js +21 -29
  41. package/dist/device/wohub2.js.map +1 -1
  42. package/dist/device/wohumi.d.ts +38 -2
  43. package/dist/device/wohumi.d.ts.map +1 -1
  44. package/dist/device/wohumi.js +51 -86
  45. package/dist/device/wohumi.js.map +1 -1
  46. package/dist/device/woiosensorth.d.ts +13 -1
  47. package/dist/device/woiosensorth.d.ts.map +1 -1
  48. package/dist/device/woiosensorth.js +25 -29
  49. package/dist/device/woiosensorth.js.map +1 -1
  50. package/dist/device/woplugmini.d.ts +44 -12
  51. package/dist/device/woplugmini.d.ts.map +1 -1
  52. package/dist/device/woplugmini.js +68 -80
  53. package/dist/device/woplugmini.js.map +1 -1
  54. package/dist/device/wopresence.d.ts +12 -1
  55. package/dist/device/wopresence.d.ts.map +1 -1
  56. package/dist/device/wopresence.js +21 -27
  57. package/dist/device/wopresence.js.map +1 -1
  58. package/dist/device/wosensorth.d.ts +18 -2
  59. package/dist/device/wosensorth.d.ts.map +1 -1
  60. package/dist/device/wosensorth.js +33 -50
  61. package/dist/device/wosensorth.js.map +1 -1
  62. package/dist/device/wosmartlock.d.ts +58 -13
  63. package/dist/device/wosmartlock.d.ts.map +1 -1
  64. package/dist/device/wosmartlock.js +108 -195
  65. package/dist/device/wosmartlock.js.map +1 -1
  66. package/dist/device/wosmartlockpro.d.ts +63 -18
  67. package/dist/device/wosmartlockpro.d.ts.map +1 -1
  68. package/dist/device/wosmartlockpro.js +116 -204
  69. package/dist/device/wosmartlockpro.js.map +1 -1
  70. package/dist/device/wostrip.d.ts +38 -18
  71. package/dist/device/wostrip.d.ts.map +1 -1
  72. package/dist/device/wostrip.js +79 -125
  73. package/dist/device/wostrip.js.map +1 -1
  74. package/dist/device.d.ts +85 -222
  75. package/dist/device.d.ts.map +1 -1
  76. package/dist/device.js +123 -407
  77. package/dist/device.js.map +1 -1
  78. package/dist/index.d.ts +9 -1
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +9 -1
  81. package/dist/index.js.map +1 -1
  82. package/dist/parameter-checker.d.ts +79 -19
  83. package/dist/parameter-checker.d.ts.map +1 -1
  84. package/dist/parameter-checker.js +140 -335
  85. package/dist/parameter-checker.js.map +1 -1
  86. package/dist/settings.d.ts +46 -0
  87. package/dist/settings.d.ts.map +1 -1
  88. package/dist/settings.js +46 -2
  89. package/dist/settings.js.map +1 -1
  90. package/dist/{switchbot.d.ts → switchbot-ble.d.ts} +14 -8
  91. package/dist/switchbot-ble.d.ts.map +1 -0
  92. package/dist/switchbot-ble.js +428 -0
  93. package/dist/switchbot-ble.js.map +1 -0
  94. package/dist/switchbot-openapi.d.ts +131 -0
  95. package/dist/switchbot-openapi.d.ts.map +1 -0
  96. package/dist/switchbot-openapi.js +311 -0
  97. package/dist/switchbot-openapi.js.map +1 -0
  98. package/dist/test/advertising.test.d.ts +2 -0
  99. package/dist/test/advertising.test.d.ts.map +1 -0
  100. package/dist/test/advertising.test.js +96 -0
  101. package/dist/test/advertising.test.js.map +1 -0
  102. package/dist/test/device.test.d.ts +2 -0
  103. package/dist/test/device.test.d.ts.map +1 -0
  104. package/dist/test/device.test.js +38 -0
  105. package/dist/test/device.test.js.map +1 -0
  106. package/dist/test/index.test.d.ts +2 -0
  107. package/dist/test/index.test.d.ts.map +1 -0
  108. package/dist/test/index.test.js +35 -0
  109. package/dist/test/index.test.js.map +1 -0
  110. package/dist/test/parameter-checker.test.d.ts +2 -0
  111. package/dist/test/parameter-checker.test.d.ts.map +1 -0
  112. package/dist/test/parameter-checker.test.js +108 -0
  113. package/dist/test/parameter-checker.test.js.map +1 -0
  114. package/dist/test/settings.test.d.ts +2 -0
  115. package/dist/test/settings.test.d.ts.map +1 -0
  116. package/dist/test/settings.test.js +49 -0
  117. package/dist/test/settings.test.js.map +1 -0
  118. package/dist/test/switchbot-openapi.test.d.ts +2 -0
  119. package/dist/test/switchbot-openapi.test.d.ts.map +1 -0
  120. package/dist/test/switchbot-openapi.test.js +96 -0
  121. package/dist/test/switchbot-openapi.test.js.map +1 -0
  122. package/dist/test/switchbot.test.d.ts +2 -0
  123. package/dist/test/switchbot.test.d.ts.map +1 -0
  124. package/dist/test/switchbot.test.js +106 -0
  125. package/dist/test/switchbot.test.js.map +1 -0
  126. package/dist/test/woblindtilt.test.d.ts.map +1 -0
  127. package/dist/test/woblindtilt.test.js +2 -0
  128. package/dist/test/woblindtilt.test.js.map +1 -0
  129. package/dist/{device → test}/wobulb.test.d.ts.map +1 -1
  130. package/dist/test/wobulb.test.js +2 -0
  131. package/dist/test/wobulb.test.js.map +1 -0
  132. package/dist/test/woceilinglight.test.d.ts.map +1 -0
  133. package/dist/test/woceilinglight.test.js +2 -0
  134. package/dist/test/woceilinglight.test.js.map +1 -0
  135. package/dist/test/wocontact.test.d.ts.map +1 -0
  136. package/dist/test/wocontact.test.js +2 -0
  137. package/dist/test/wocontact.test.js.map +1 -0
  138. package/dist/test/wocurtain.test.d.ts.map +1 -0
  139. package/dist/test/wocurtain.test.js +2 -0
  140. package/dist/test/wocurtain.test.js.map +1 -0
  141. package/dist/{device → test}/wohand.test.d.ts.map +1 -1
  142. package/dist/test/wohand.test.js +2 -0
  143. package/dist/test/wohand.test.js.map +1 -0
  144. package/dist/test/wohub2.test.d.ts +2 -0
  145. package/dist/test/wohub2.test.d.ts.map +1 -0
  146. package/dist/test/wohub2.test.js +2 -0
  147. package/dist/test/wohub2.test.js.map +1 -0
  148. package/dist/{device → test}/wohumi.test.d.ts.map +1 -1
  149. package/dist/test/wohumi.test.js +2 -0
  150. package/dist/test/wohumi.test.js.map +1 -0
  151. package/dist/test/woiosensorth.test.d.ts.map +1 -0
  152. package/dist/test/woiosensorth.test.js +2 -0
  153. package/dist/test/woiosensorth.test.js.map +1 -0
  154. package/dist/test/woplugmini.test.d.ts.map +1 -0
  155. package/dist/test/woplugmini.test.js +2 -0
  156. package/dist/test/woplugmini.test.js.map +1 -0
  157. package/dist/test/wopresence.test.d.ts.map +1 -0
  158. package/dist/test/wopresence.test.js +2 -0
  159. package/dist/test/wopresence.test.js.map +1 -0
  160. package/dist/test/wosensorth.test.d.ts.map +1 -0
  161. package/dist/test/wosensorth.test.js +2 -0
  162. package/dist/test/wosensorth.test.js.map +1 -0
  163. package/dist/test/wosmartlock.test.d.ts.map +1 -0
  164. package/dist/test/wosmartlock.test.js +2 -0
  165. package/dist/test/wosmartlock.test.js.map +1 -0
  166. package/dist/test/wosmartlockpro.test.d.ts.map +1 -0
  167. package/dist/test/wosmartlockpro.test.js +2 -0
  168. package/dist/test/wosmartlockpro.test.js.map +1 -0
  169. package/dist/{device → test}/wostrip.test.d.ts.map +1 -1
  170. package/dist/test/wostrip.test.js +2 -0
  171. package/dist/test/wostrip.test.js.map +1 -0
  172. package/dist/types/bledevicestatus.d.ts +4 -12
  173. package/dist/types/bledevicestatus.d.ts.map +1 -1
  174. package/dist/types/devicelist.d.ts.map +1 -1
  175. package/dist/types/devicelist.js +0 -4
  176. package/dist/types/devicelist.js.map +1 -1
  177. package/dist/types/devicepush.d.ts +13 -0
  178. package/dist/types/devicepush.d.ts.map +1 -0
  179. package/dist/types/devicepush.js +2 -0
  180. package/dist/types/devicepush.js.map +1 -0
  181. package/dist/types/deviceresponse.d.ts +2 -3
  182. package/dist/types/deviceresponse.d.ts.map +1 -1
  183. package/dist/types/devicestatus.d.ts.map +1 -1
  184. package/dist/types/devicewebhookstatus.d.ts +32 -0
  185. package/dist/types/devicewebhookstatus.d.ts.map +1 -1
  186. package/dist/types/irdevicelist.d.ts.map +1 -1
  187. package/dist/types/types.d.ts +61 -120
  188. package/dist/types/types.d.ts.map +1 -1
  189. package/dist/types/types.js +10 -0
  190. package/dist/types/types.js.map +1 -1
  191. package/docs/assets/highlight.css +12 -47
  192. package/docs/assets/main.js +1 -1
  193. package/docs/assets/navigation.js +1 -1
  194. package/docs/assets/search.js +1 -1
  195. package/docs/classes/SwitchBotBLE.html +61 -0
  196. package/docs/classes/SwitchBotOpenAPI.html +47 -0
  197. package/docs/classes/SwitchbotDevice.html +28 -33
  198. package/docs/enums/LogLevel.html +6 -0
  199. package/docs/enums/SwitchBotBLEModel.html +2 -2
  200. package/docs/enums/SwitchBotBLEModelFriendlyName.html +2 -2
  201. package/docs/enums/SwitchBotBLEModelName.html +2 -2
  202. package/docs/enums/SwitchBotModel.html +2 -2
  203. package/docs/hierarchy.html +1 -0
  204. package/docs/index.html +16 -993
  205. package/docs/interfaces/Ad-1.html +5 -0
  206. package/docs/interfaces/AdvertisementData.html +3 -0
  207. package/docs/interfaces/Chars.html +4 -0
  208. package/docs/interfaces/ErrorObject.html +3 -0
  209. package/docs/interfaces/Params.html +6 -0
  210. package/docs/interfaces/ServiceData.html +2 -0
  211. package/docs/interfaces/SwitchBotBLEDevice.html +21 -0
  212. package/docs/interfaces/WebhookDetail.html +6 -0
  213. package/docs/interfaces/ad.html +5 -0
  214. package/docs/interfaces/body.html +3 -0
  215. package/docs/interfaces/bodyChange.html +4 -0
  216. package/docs/interfaces/deleteWebhookResponse.html +4 -0
  217. package/docs/interfaces/device.html +7 -0
  218. package/docs/interfaces/deviceList.html +2 -0
  219. package/docs/interfaces/deviceStatus.html +7 -0
  220. package/docs/interfaces/deviceStatusRequest.html +4 -0
  221. package/docs/interfaces/deviceWebhook.html +4 -0
  222. package/docs/interfaces/deviceWebhookContext.html +4 -0
  223. package/docs/interfaces/devices.html +4 -0
  224. package/docs/interfaces/infraredRemoteList.html +2 -0
  225. package/docs/interfaces/irdevice.html +5 -0
  226. package/docs/interfaces/pushResponse.html +4 -0
  227. package/docs/interfaces/queryWebhookResponse.html +4 -0
  228. package/docs/interfaces/setupWebhookResponse.html +4 -0
  229. package/docs/interfaces/switchbot.html +3 -0
  230. package/docs/interfaces/updateWebhookResponse.html +4 -0
  231. package/docs/interfaces/webhookRequest.html +4 -0
  232. package/docs/media/BLE.md +1109 -0
  233. package/docs/media/OpenAPI.md +172 -0
  234. package/docs/modules.html +136 -3
  235. package/docs/types/MacAddress.html +1 -0
  236. package/docs/types/batteryCirculatorFan.html +1 -0
  237. package/docs/types/batteryCirculatorFanServiceData.html +1 -0
  238. package/docs/types/batteryCirculatorFanStatus.html +1 -0
  239. package/docs/types/batteryCirculatorFanWebhookContext.html +1 -0
  240. package/docs/types/blindTilt.html +1 -0
  241. package/docs/types/blindTiltServiceData.html +1 -0
  242. package/docs/types/blindTiltStatus.html +1 -0
  243. package/docs/types/blindTiltWebhookContext.html +1 -0
  244. package/docs/types/bot.html +1 -0
  245. package/docs/types/botServiceData.html +1 -0
  246. package/docs/types/botStatus.html +1 -0
  247. package/docs/types/botWebhookContext.html +1 -0
  248. package/docs/types/ceilingLight.html +1 -0
  249. package/docs/types/ceilingLightPro.html +1 -0
  250. package/docs/types/ceilingLightProServiceData.html +1 -0
  251. package/docs/types/ceilingLightProStatus.html +1 -0
  252. package/docs/types/ceilingLightProWebhookContext.html +1 -0
  253. package/docs/types/ceilingLightServiceData.html +1 -0
  254. package/docs/types/ceilingLightStatus.html +1 -0
  255. package/docs/types/ceilingLightWebhookContext.html +1 -0
  256. package/docs/types/colorBulb.html +1 -0
  257. package/docs/types/colorBulbServiceData.html +1 -0
  258. package/docs/types/colorBulbStatus.html +1 -0
  259. package/docs/types/colorBulbWebhookContext.html +1 -0
  260. package/docs/types/contactSensor.html +1 -0
  261. package/docs/types/contactSensorServiceData.html +1 -0
  262. package/docs/types/contactSensorStatus.html +1 -0
  263. package/docs/types/contactSensorWebhookContext.html +1 -0
  264. package/docs/types/curtain.html +1 -0
  265. package/docs/types/curtain3.html +1 -0
  266. package/docs/types/curtain3ServiceData.html +1 -0
  267. package/docs/types/curtain3WebhookContext.html +1 -0
  268. package/docs/types/curtainServiceData.html +1 -0
  269. package/docs/types/curtainStatus.html +1 -0
  270. package/docs/types/curtainWebhookContext.html +1 -0
  271. package/docs/types/floorCleaningRobotS10.html +1 -0
  272. package/docs/types/floorCleaningRobotS10Status.html +1 -0
  273. package/docs/types/floorCleaningRobotS10WebhookContext.html +1 -0
  274. package/docs/types/hub2.html +1 -0
  275. package/docs/types/hub2ServiceData.html +1 -0
  276. package/docs/types/hub2Status.html +1 -0
  277. package/docs/types/hub2WebhookContext.html +1 -0
  278. package/docs/types/humidifier.html +1 -0
  279. package/docs/types/humidifierServiceData.html +1 -0
  280. package/docs/types/humidifierStatus.html +1 -0
  281. package/docs/types/humidifierWebhookContext.html +1 -0
  282. package/docs/types/indoorCam.html +1 -0
  283. package/docs/types/indoorCameraWebhookContext.html +1 -0
  284. package/docs/types/keypad.html +1 -0
  285. package/docs/types/keypadTouch.html +1 -0
  286. package/docs/types/keypadTouchWebhookContext.html +1 -0
  287. package/docs/types/keypadWebhookContext.html +1 -0
  288. package/docs/types/lock.html +1 -0
  289. package/docs/types/lockPro.html +1 -0
  290. package/docs/types/lockProServiceData.html +1 -0
  291. package/docs/types/lockProStatus.html +1 -0
  292. package/docs/types/lockProWebhookContext.html +1 -0
  293. package/docs/types/lockServiceData.html +1 -0
  294. package/docs/types/lockStatus.html +1 -0
  295. package/docs/types/lockWebhookContext.html +1 -0
  296. package/docs/types/meter.html +1 -0
  297. package/docs/types/meterPlus.html +1 -0
  298. package/docs/types/meterPlusServiceData.html +1 -0
  299. package/docs/types/meterPlusStatus.html +1 -0
  300. package/docs/types/meterPlusWebhookContext.html +1 -0
  301. package/docs/types/meterServiceData.html +1 -0
  302. package/docs/types/meterStatus.html +1 -0
  303. package/docs/types/meterWebhookContext.html +1 -0
  304. package/docs/types/motionSensor.html +1 -0
  305. package/docs/types/motionSensorServiceData.html +1 -0
  306. package/docs/types/motionSensorStatus.html +1 -0
  307. package/docs/types/motionSensorWebhookContext.html +1 -0
  308. package/docs/types/outdoorMeter.html +1 -0
  309. package/docs/types/outdoorMeterServiceData.html +1 -0
  310. package/docs/types/outdoorMeterStatus.html +1 -0
  311. package/docs/types/outdoorMeterWebhookContext.html +1 -0
  312. package/docs/types/panTiltCamWebhookContext.html +1 -0
  313. package/docs/types/pantiltCam.html +1 -0
  314. package/docs/types/pantiltCam2k.html +1 -0
  315. package/docs/types/plug.html +1 -0
  316. package/docs/types/plugMini.html +1 -0
  317. package/docs/types/plugMiniJPServiceData.html +1 -0
  318. package/docs/types/plugMiniJPWebhookContext.html +1 -0
  319. package/docs/types/plugMiniStatus.html +1 -0
  320. package/docs/types/plugMiniUSServiceData.html +1 -0
  321. package/docs/types/plugMiniUSWebhookContext.html +1 -0
  322. package/docs/types/plugStatus.html +1 -0
  323. package/docs/types/plugWebhookContext.html +1 -0
  324. package/docs/types/remote.html +1 -0
  325. package/docs/types/robotVacuumCleanerS1.html +1 -0
  326. package/docs/types/robotVacuumCleanerS1Plus.html +1 -0
  327. package/docs/types/robotVacuumCleanerS1PlusStatus.html +1 -0
  328. package/docs/types/robotVacuumCleanerS1PlusWebhookContext.html +1 -0
  329. package/docs/types/robotVacuumCleanerS1Status.html +1 -0
  330. package/docs/types/robotVacuumCleanerS1WebhookContext.html +1 -0
  331. package/docs/types/robotVacuumCleanerServiceData.html +1 -0
  332. package/docs/types/stripLight.html +1 -0
  333. package/docs/types/stripLightServiceData.html +1 -0
  334. package/docs/types/stripLightStatus.html +1 -0
  335. package/docs/types/stripLightWebhookContext.html +1 -0
  336. package/docs/types/waterLeakDetector.html +1 -0
  337. package/docs/types/waterLeakDetectorServiceData.html +1 -0
  338. package/docs/types/waterLeakDetectorStatus.html +1 -0
  339. package/docs/types/waterLeakDetectorWebhookContext.html +1 -0
  340. package/package.json +12 -10
  341. package/dist/device/woblindtilt.test.d.ts.map +0 -1
  342. package/dist/device/woblindtilt.test.js +0 -26
  343. package/dist/device/woblindtilt.test.js.map +0 -1
  344. package/dist/device/wobulb.test.js +0 -52
  345. package/dist/device/wobulb.test.js.map +0 -1
  346. package/dist/device/woceilinglight.test.d.ts.map +0 -1
  347. package/dist/device/woceilinglight.test.js +0 -63
  348. package/dist/device/woceilinglight.test.js.map +0 -1
  349. package/dist/device/wocontact.test.d.ts.map +0 -1
  350. package/dist/device/wocontact.test.js +0 -34
  351. package/dist/device/wocontact.test.js.map +0 -1
  352. package/dist/device/wocurtain.test.d.ts.map +0 -1
  353. package/dist/device/wocurtain.test.js +0 -33
  354. package/dist/device/wocurtain.test.js.map +0 -1
  355. package/dist/device/wohand.test.js +0 -62
  356. package/dist/device/wohand.test.js.map +0 -1
  357. package/dist/device/wohand2.test.d.ts +0 -2
  358. package/dist/device/wohand2.test.d.ts.map +0 -1
  359. package/dist/device/wohand2.test.js +0 -50
  360. package/dist/device/wohand2.test.js.map +0 -1
  361. package/dist/device/wohumi.test.js +0 -61
  362. package/dist/device/wohumi.test.js.map +0 -1
  363. package/dist/device/woiosensorth.test.d.ts.map +0 -1
  364. package/dist/device/woiosensorth.test.js +0 -39
  365. package/dist/device/woiosensorth.test.js.map +0 -1
  366. package/dist/device/woplugmini.test.d.ts.map +0 -1
  367. package/dist/device/woplugmini.test.js +0 -91
  368. package/dist/device/woplugmini.test.js.map +0 -1
  369. package/dist/device/wopresence.test.d.ts.map +0 -1
  370. package/dist/device/wopresence.test.js +0 -42
  371. package/dist/device/wopresence.test.js.map +0 -1
  372. package/dist/device/wosensorth.test.d.ts.map +0 -1
  373. package/dist/device/wosensorth.test.js +0 -59
  374. package/dist/device/wosensorth.test.js.map +0 -1
  375. package/dist/device/wosmartlock.test.d.ts.map +0 -1
  376. package/dist/device/wosmartlock.test.js +0 -84
  377. package/dist/device/wosmartlock.test.js.map +0 -1
  378. package/dist/device/wosmartlockpro.test.d.ts.map +0 -1
  379. package/dist/device/wosmartlockpro.test.js +0 -124
  380. package/dist/device/wosmartlockpro.test.js.map +0 -1
  381. package/dist/device/wostrip.test.js +0 -115
  382. package/dist/device/wostrip.test.js.map +0 -1
  383. package/dist/switchbot.d.ts.map +0 -1
  384. package/dist/switchbot.js +0 -259
  385. package/dist/switchbot.js.map +0 -1
  386. package/dist/types/pushbody.d.ts +0 -6
  387. package/dist/types/pushbody.d.ts.map +0 -1
  388. package/dist/types/pushbody.js +0 -2
  389. package/dist/types/pushbody.js.map +0 -1
  390. package/docs/classes/SwitchBot.html +0 -16
  391. package/docs/types/SwitchBotBLEDevice.html +0 -1
  392. /package/dist/{device → test}/woblindtilt.test.d.ts +0 -0
  393. /package/dist/{device → test}/wobulb.test.d.ts +0 -0
  394. /package/dist/{device → test}/woceilinglight.test.d.ts +0 -0
  395. /package/dist/{device → test}/wocontact.test.d.ts +0 -0
  396. /package/dist/{device → test}/wocurtain.test.d.ts +0 -0
  397. /package/dist/{device → test}/wohand.test.d.ts +0 -0
  398. /package/dist/{device → test}/wohumi.test.d.ts +0 -0
  399. /package/dist/{device → test}/woiosensorth.test.d.ts +0 -0
  400. /package/dist/{device → test}/woplugmini.test.d.ts +0 -0
  401. /package/dist/{device → test}/wopresence.test.d.ts +0 -0
  402. /package/dist/{device → test}/wosensorth.test.d.ts +0 -0
  403. /package/dist/{device → test}/wosmartlock.test.d.ts +0 -0
  404. /package/dist/{device → test}/wosmartlockpro.test.d.ts +0 -0
  405. /package/dist/{device → test}/wostrip.test.d.ts +0 -0
@@ -1,282 +1,194 @@
1
1
  import { Buffer } from 'node:buffer';
2
2
  import * as Crypto from 'node:crypto';
3
- /*
4
- * wosmartlock.ts: Switchbot BLE API registration.
5
- * adapted off the work done by [pySwitchbot](https://github.com/Danielhiversen/pySwitchbot)
6
- */
7
3
  import { SwitchbotDevice } from '../device.js';
4
+ import { WoSmartLockProCommands } from '../settings.js';
8
5
  import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
6
+ /**
7
+ * Class representing a WoSmartLockPro device.
8
+ * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/lock.md
9
+ */
9
10
  export class WoSmartLockPro extends SwitchbotDevice {
10
- _iv = null;
11
- _key_id;
12
- _encryption_key;
13
- static COMMAND_GET_CK_IV = '570f2103';
14
- static COMMAND_LOCK_INFO = '570f4f8102';
15
- static COMMAND_UNLOCK = '570f4e0101000080';
16
- static COMMAND_UNLOCK_NO_UNLATCH = '570f4e01010000a0';
17
- static COMMAND_LOCK = '570f4e0101000000';
18
- static COMMAND_ENABLE_NOTIFICATIONS = '570e01001e00008101';
19
- static COMMAND_DISABLE_NOTIFICATIONS = '570e00';
11
+ static switchBotBLE;
12
+ iv = null;
13
+ key_id = '';
14
+ encryption_key = null;
20
15
  static Result = {
21
16
  ERROR: 0x00,
22
17
  SUCCESS: 0x01,
23
18
  SUCCESS_LOW_BATTERY: 0x06,
24
19
  };
25
- static validateResponse(res) {
20
+ static async validateResponse(res) {
26
21
  if (res.length >= 3) {
27
- switch (res.readUInt8(0)) {
28
- case WoSmartLockPro.Result.SUCCESS:
29
- return WoSmartLockPro.Result.SUCCESS;
30
- case WoSmartLockPro.Result.SUCCESS_LOW_BATTERY:
31
- return WoSmartLockPro.Result.SUCCESS_LOW_BATTERY;
22
+ const result = res.readUInt8(0);
23
+ if (result === WoSmartLockPro.Result.SUCCESS || result === WoSmartLockPro.Result.SUCCESS_LOW_BATTERY) {
24
+ return result;
32
25
  }
33
26
  }
34
27
  return WoSmartLockPro.Result.ERROR;
35
28
  }
36
29
  static getLockStatus(code) {
37
- switch (code) {
38
- case 0b0000000:
39
- return 'LOCKED';
40
- case 0b0010000:
41
- return 'UNLOCKED';
42
- case 0b0100000:
43
- return 'LOCKING';
44
- case 0b0110000:
45
- return 'UNLOCKING';
46
- case 0b1000000:
47
- return 'LOCKING_STOP';
48
- case 0b1010000:
49
- return 'UNLOCKING_STOP';
50
- case 0b01100000: // Only EU lock type
51
- return 'NOT_FULLY_LOCKED';
52
- default:
53
- return 'UNKNOWN';
54
- }
30
+ const statusMap = {
31
+ 0b0000000: 'LOCKED',
32
+ 0b0010000: 'UNLOCKED',
33
+ 0b0100000: 'LOCKING',
34
+ 0b0110000: 'UNLOCKING',
35
+ 0b1000000: 'LOCKING_STOP',
36
+ 0b1010000: 'UNLOCKING_STOP',
37
+ 0b01100000: 'NOT_FULLY_LOCKED', // Only EU lock type
38
+ };
39
+ return statusMap[code] || 'UNKNOWN';
55
40
  }
56
- static async parseServiceData(serviceData, manufacturerData, onlog) {
41
+ static async parseServiceData(serviceData, manufacturerData) {
57
42
  if (manufacturerData.length < 11) {
58
- if (onlog && typeof onlog === 'function') {
59
- onlog(`[parseServiceDataForWoSmartLockPro] Buffer length ${manufacturerData.length} is too short!`);
60
- }
43
+ this.switchBotBLE.emitLog('error', `[parseServiceDataForWoSmartLockPro] Buffer length ${manufacturerData.length} is too short!`);
61
44
  return null;
62
45
  }
63
- // adv data needs both service data and manufacturer data
64
- // byte var names based on documentation
65
46
  const byte2 = serviceData.readUInt8(2);
66
47
  const byte7 = manufacturerData.readUInt8(7);
67
48
  const byte8 = manufacturerData.readUInt8(8);
68
49
  const byte9 = manufacturerData.readUInt8(9);
69
50
  const byte11 = manufacturerData.readUInt8(11);
70
- const battery = byte2 & 0b01111111; // %
71
- const calibration = !!(byte7 & 0b10000000);
72
- const status = WoSmartLockPro.getLockStatus((byte7 & 0b00111000) >> 3);
73
- const door_open = !!(byte8 & 0b01100000);
74
- // Double lock mode is not supported on Lock Pro
75
- const update_from_secondary_lock = false; // !!(byte7 & 0b00001000)
76
- const double_lock_mode = false; // !!(byte8 & 0b10000000)
77
- const unclosed_alarm = !!(byte11 & 0b10000000);
78
- const unlocked_alarm = !!(byte11 & 0b01000000);
79
- const auto_lock_paused = !!(byte8 & 0b100000);
80
- const night_latch = !!(byte9 & 0b00000001);
81
- // const manual = byte7 & 0b100000;
82
51
  const data = {
83
52
  model: SwitchBotBLEModel.LockPro,
84
53
  modelName: SwitchBotBLEModelName.LockPro,
85
54
  modelFriendlyName: SwitchBotBLEModelFriendlyName.LockPro,
86
- battery,
87
- calibration,
88
- status,
89
- update_from_secondary_lock,
90
- door_open,
91
- double_lock_mode,
92
- unclosed_alarm,
93
- unlocked_alarm,
94
- auto_lock_paused,
95
- night_latch,
55
+ battery: byte2 & 0b01111111,
56
+ calibration: !!(byte7 & 0b10000000),
57
+ status: WoSmartLockPro.getLockStatus((byte7 & 0b00111000) >> 3),
58
+ door_open: !!(byte8 & 0b01100000),
59
+ update_from_secondary_lock: false,
60
+ double_lock_mode: false,
61
+ unclosed_alarm: !!(byte11 & 0b10000000),
62
+ unlocked_alarm: !!(byte11 & 0b01000000),
63
+ auto_lock_paused: !!(byte8 & 0b100000),
64
+ night_latch: !!(byte9 & 0b00000001),
96
65
  };
97
66
  return data;
98
67
  }
99
68
  constructor(peripheral, noble) {
100
69
  super(peripheral, noble);
101
- this._iv = null;
102
- this._key_id = '';
103
- this._encryption_key = null;
104
70
  }
105
- /* ------------------------------------------------------------------
106
- * setKey()
107
- * - initialise the encryption key info for valid lock communication, this currently must be retrived externally
108
- *
109
- * [Arguments]
110
- * - keyId, encryptionKey
111
- *
112
- * [Return value]
113
- * - void
114
- * ---------------------------------------------------------------- */
71
+ /**
72
+ * Initializes the encryption key info for valid lock communication.
73
+ * @param {string} keyId - The key ID.
74
+ * @param {string} encryptionKey - The encryption key.
75
+ */
115
76
  async setKey(keyId, encryptionKey) {
116
- this._iv = null;
117
- this._key_id = keyId;
118
- this._encryption_key = Buffer.from(encryptionKey, 'hex');
77
+ this.iv = null;
78
+ this.key_id = keyId;
79
+ this.encryption_key = Buffer.from(encryptionKey, 'hex');
119
80
  }
120
- /* ------------------------------------------------------------------
121
- * unlock()
122
- * - Unlock the Smart Lock
123
- *
124
- * [Arguments]
125
- * - none
126
- *
127
- * [Return value]
128
- * - Promise object
129
- * WoSmartLockPro.LockResult will be passed to the `resolve()`.
130
- * ---------------------------------------------------------------- */
81
+ /**
82
+ * Unlocks the Smart Lock.
83
+ * @returns {Promise<number>} - The result of the unlock operation.
84
+ */
131
85
  async unlock() {
132
- await this.operateLockPro(WoSmartLockPro.COMMAND_UNLOCK)
133
- .then((resBuf) => {
134
- if (resBuf) {
135
- return WoSmartLockPro.validateResponse(resBuf);
136
- }
137
- else {
138
- return WoSmartLockPro.Result.ERROR;
139
- }
140
- })
141
- .catch((error) => {
142
- throw error;
143
- });
86
+ const resBuf = await this.operateLockPro(WoSmartLockProCommands.UNLOCK);
87
+ return resBuf ? WoSmartLockPro.validateResponse(resBuf) : WoSmartLockPro.Result.ERROR;
144
88
  }
145
- /* ------------------------------------------------------------------
146
- * unlockNoUnlatch()
147
- * - Unlock the Smart Lock without unlatching door
148
- *
149
- * [Arguments]
150
- * - none
151
- *
152
- * [Return value]
153
- * - Promise object
154
- * WoSmartLockPro.LockResult will be passed to the `resolve()`.
155
- * ---------------------------------------------------------------- */
89
+ /**
90
+ * Unlocks the Smart Lock without unlatching the door.
91
+ * @returns {Promise<number>} - The result of the unlock operation.
92
+ */
156
93
  async unlockNoUnlatch() {
157
- await this.operateLockPro(WoSmartLockPro.COMMAND_UNLOCK_NO_UNLATCH)
158
- .then((resBuf) => {
159
- if (resBuf) {
160
- return WoSmartLockPro.validateResponse(resBuf);
161
- }
162
- else {
163
- return WoSmartLockPro.Result.ERROR;
164
- }
165
- })
166
- .catch((error) => {
167
- throw error;
168
- });
94
+ const resBuf = await this.operateLockPro(WoSmartLockProCommands.UNLOCK_NO_UNLATCH);
95
+ return resBuf ? WoSmartLockPro.validateResponse(resBuf) : WoSmartLockPro.Result.ERROR;
169
96
  }
170
- /* ------------------------------------------------------------------
171
- * lock()
172
- * - Lock the Smart Lock
173
- *
174
- * [Arguments]
175
- * - none
176
- *
177
- * [Return value]
178
- * - Promise object
179
- * WoSmartLockPro.LockResult will be passed to the `resolve()`.
180
- * ---------------------------------------------------------------- */
97
+ /**
98
+ * Locks the Smart Lock.
99
+ * @returns {Promise<number>} - The result of the lock operation.
100
+ */
181
101
  async lock() {
182
- this.operateLockPro(WoSmartLockPro.COMMAND_LOCK)
183
- .then((resBuf) => {
184
- if (resBuf) {
185
- return WoSmartLockPro.validateResponse(resBuf);
186
- }
187
- else {
188
- return WoSmartLockPro.Result.ERROR;
189
- }
190
- })
191
- .catch((error) => {
192
- throw error;
193
- });
102
+ const resBuf = await this.operateLockPro(WoSmartLockProCommands.LOCK);
103
+ return resBuf ? WoSmartLockPro.validateResponse(resBuf) : WoSmartLockPro.Result.ERROR;
194
104
  }
195
- /* ------------------------------------------------------------------
196
- * info()
197
- * - Get general state info from the Smart Lock
198
- *
199
- * [Arguments]
200
- * - none
201
- *
202
- * [Return value]
203
- * - Promise object
204
- * state object will be passed to the `resolve()`
205
- * ---------------------------------------------------------------- */
105
+ /**
106
+ * Gets general state info from the Smart Lock.
107
+ * @returns {Promise<object | null>} - The state object or null if an error occurred.
108
+ */
206
109
  async info() {
207
- await this.operateLockPro(WoSmartLockPro.COMMAND_LOCK_INFO)
208
- .then((resBuf) => {
209
- if (resBuf) {
210
- const data = {
211
- calibration: Boolean(resBuf[0] & 0b10000000),
212
- status: WoSmartLockPro.getLockStatus((resBuf[0] & 0b01110000) >> 4),
213
- door_open: Boolean(resBuf[0] & 0b00000100),
214
- unclosed_alarm: Boolean(resBuf[1] & 0b00100000),
215
- unlocked_alarm: Boolean(resBuf[1] & 0b00010000),
216
- };
217
- return data;
218
- }
219
- else {
220
- return null;
221
- }
222
- })
223
- .catch((error) => {
224
- throw error;
225
- });
110
+ const resBuf = await this.operateLockPro(WoSmartLockProCommands.LOCK_INFO);
111
+ if (resBuf) {
112
+ return {
113
+ calibration: Boolean(resBuf[0] & 0b10000000),
114
+ status: WoSmartLockPro.getLockStatus((resBuf[0] & 0b01110000) >> 4),
115
+ door_open: Boolean(resBuf[0] & 0b00000100),
116
+ unclosed_alarm: Boolean(resBuf[1] & 0b00100000),
117
+ unlocked_alarm: Boolean(resBuf[1] & 0b00010000),
118
+ };
119
+ }
120
+ return null;
226
121
  }
122
+ /**
123
+ * Encrypts a string using AES-128-CTR.
124
+ * @param {string} str - The string to encrypt.
125
+ * @returns {Promise<string>} - The encrypted string in hex format.
126
+ */
227
127
  async encrypt(str) {
228
- const cipher = Crypto.createCipheriv('aes-128-ctr', this._encryption_key, this._iv);
128
+ const cipher = Crypto.createCipheriv('aes-128-ctr', this.encryption_key, this.iv);
229
129
  return Buffer.concat([cipher.update(str, 'hex'), cipher.final()]).toString('hex');
230
130
  }
131
+ /**
132
+ * Decrypts a buffer using AES-128-CTR.
133
+ * @param {Buffer} data - The data to decrypt.
134
+ * @returns {Promise<Buffer>} - The decrypted data.
135
+ */
231
136
  async decrypt(data) {
232
- const decipher = Crypto.createDecipheriv('aes-128-ctr', this._encryption_key, this._iv);
137
+ const decipher = Crypto.createDecipheriv('aes-128-ctr', this.encryption_key, this.iv);
233
138
  return Buffer.concat([decipher.update(data), decipher.final()]);
234
139
  }
140
+ /**
141
+ * Retrieves the IV from the device.
142
+ * @returns {Promise<Buffer>} - The IV buffer.
143
+ */
235
144
  async getIv() {
236
- if (this._iv === null) {
237
- const res = await this.operateLockPro(WoSmartLockPro.COMMAND_GET_CK_IV + this._key_id, false);
145
+ if (!this.iv) {
146
+ const res = await this.operateLockPro(WoSmartLockProCommands.GET_CKIV + this.key_id, false);
238
147
  if (res) {
239
- this._iv = res.subarray(4);
148
+ this.iv = res.subarray(4);
240
149
  }
241
150
  else {
242
151
  throw new Error('Failed to retrieve IV from the device.');
243
152
  }
244
153
  }
245
- return this._iv;
154
+ return this.iv;
246
155
  }
156
+ /**
157
+ * Sends an encrypted command to the device.
158
+ * @param {string} key - The command key.
159
+ * @returns {Promise<Buffer>} - The response buffer.
160
+ */
247
161
  async encryptedCommand(key) {
248
162
  const iv = await this.getIv();
249
- const req = Buffer.from(key.substring(0, 2) + this._key_id + Buffer.from(iv.subarray(0, 2)).toString('hex') + await this.encrypt(key.substring(2)), 'hex');
163
+ const req = Buffer.from(key.substring(0, 2) + this.key_id + Buffer.from(iv.subarray(0, 2)).toString('hex') + await this.encrypt(key.substring(2)), 'hex');
250
164
  const bytes = await this.command(req);
251
165
  const buf = Buffer.from(bytes);
252
166
  const code = WoSmartLockPro.validateResponse(buf);
253
- if (code !== WoSmartLockPro.Result.ERROR) {
167
+ if (await code !== WoSmartLockPro.Result.ERROR) {
254
168
  return Buffer.concat([buf.subarray(0, 1), await this.decrypt(buf.subarray(4))]);
255
169
  }
256
170
  else {
257
171
  throw new Error(`The device returned an error: 0x${buf.toString('hex')}`);
258
172
  }
259
173
  }
174
+ /**
175
+ * Operates the lock with the given command.
176
+ * @param {string} key - The command key.
177
+ * @param {boolean} [encrypt] - Whether to encrypt the command.
178
+ * @returns {Promise<Buffer>} - The response buffer.
179
+ */
260
180
  async operateLockPro(key, encrypt = true) {
261
- // encrypted command
262
181
  if (encrypt) {
263
182
  return this.encryptedCommand(key);
264
183
  }
265
184
  const req = Buffer.from(`${key.substring(0, 2)}000000${key.substring(2)}`, 'hex');
266
- await this.command(req)
267
- .then((bytes) => {
268
- const buf = Buffer.from(bytes);
269
- const code = WoSmartLockPro.validateResponse(buf);
270
- if (code === WoSmartLockPro.Result.ERROR) {
271
- throw new Error(`The device returned an error: 0x${buf.toString('hex')}`);
272
- }
273
- else {
274
- return buf;
275
- }
276
- })
277
- .catch((error) => {
278
- throw error;
279
- });
185
+ const bytes = await this.command(req);
186
+ const buf = Buffer.from(bytes);
187
+ const code = WoSmartLockPro.validateResponse(buf);
188
+ if (await code === WoSmartLockPro.Result.ERROR) {
189
+ throw new Error(`The device returned an error: 0x${buf.toString('hex')}`);
190
+ }
191
+ return buf;
280
192
  }
281
193
  }
282
194
  //# sourceMappingURL=wosmartlockpro.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wosmartlockpro.js","sourceRoot":"","sources":["../../src/device/wosmartlockpro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wosmartlockpro.js","sourceRoot":"","sources":["../../src/device/wosmartlockpro.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,62 @@
1
+ import type { SwitchBotBLE } from '../switchbot-ble.js';
1
2
  import type { stripLightServiceData } from '../types/bledevicestatus.js';
2
3
  import { Buffer } from 'node:buffer';
3
4
  import { SwitchbotDevice } from '../device.js';
4
5
  /**
5
- * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/colorbulb.md
6
+ * Class representing a WoStrip device.
7
+ * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/ledstriplight.md
6
8
  */
7
9
  export declare class WoStrip extends SwitchbotDevice {
8
- static parseServiceData(serviceData: Buffer, onlog: ((message: string) => void) | undefined): Promise<stripLightServiceData | null>;
10
+ static switchBotBLE: SwitchBotBLE;
9
11
  /**
10
- * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
12
+ * Parses the service data from the SwitchBot Strip Light.
13
+ * @param {Buffer} serviceData - The service data buffer.
14
+ * @returns {Promise<stripLightServiceData | null>} - Parsed service data or null if invalid.
11
15
  */
12
- readState(): Promise<void>;
16
+ static parseServiceData(serviceData: Buffer): Promise<stripLightServiceData | null>;
13
17
  /**
14
- * @private
18
+ * Reads the state of the strip light.
19
+ * @returns {Promise<boolean>} - Resolves with true if the strip light is ON, false otherwise.
15
20
  */
16
- setState(reqByteArray: number[]): Promise<void>;
21
+ readState(): Promise<boolean>;
17
22
  /**
18
- * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
23
+ * Sets the state of the strip light.
24
+ * @public
25
+ * @param {number[]} reqByteArray - The request byte array.
26
+ * @returns {Promise<boolean>} - Resolves with true if the operation was successful.
19
27
  */
20
- turnOn(): Promise<void>;
28
+ setState(reqByteArray: number[]): Promise<boolean>;
21
29
  /**
22
- * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
30
+ * Turns the strip light on.
31
+ * @returns {Promise<boolean>} - Resolves with true if the strip light is ON.
23
32
  */
24
- turnOff(): Promise<void>;
33
+ turnOn(): Promise<boolean>;
25
34
  /**
26
- * @returns resolves with brightness percent
35
+ * Turns the strip light off.
36
+ * @returns {Promise<boolean>} - Resolves with true if the strip light is OFF.
27
37
  */
28
- setBrightness(brightness: number): Promise<void>;
38
+ turnOff(): Promise<boolean>;
29
39
  /**
30
- * @returns resolves with color temperature
40
+ * Sets the brightness of the strip light.
41
+ * @param {number} brightness - The brightness percentage (0-100).
42
+ * @returns {Promise<boolean>} - Resolves with true if the operation was successful.
31
43
  */
32
- setColorTemperature(color_temperature: unknown): Promise<void>;
44
+ setBrightness(brightness: number): Promise<boolean>;
33
45
  /**
34
- * @returns resolves with brightness + rgb
46
+ * Sets the RGB values of the strip light.
47
+ * @param {number} brightness - The brightness percentage (0-100).
48
+ * @param {number} red - The red value (0-255).
49
+ * @param {number} green - The green value (0-255).
50
+ * @param {number} blue - The blue value (0-255).
51
+ * @returns {Promise<boolean>} - Resolves with true if the operation was successful.
35
52
  */
36
- setRGB(brightness: number, red: number, green: number, blue: number): Promise<void>;
53
+ setRGB(brightness: number, red: number, green: number, blue: number): Promise<boolean>;
37
54
  /**
38
- * @private
55
+ * Operates the strip light with the given byte array.
56
+ * @public
57
+ * @param {number[]} bytes - The byte array to send.
58
+ * @returns {Promise<boolean>} - Resolves with true if the operation was successful.
39
59
  */
40
- operateStripLight(bytes: number[]): Promise<void>;
60
+ operateStripLight(bytes: number[]): Promise<boolean>;
41
61
  }
42
62
  //# sourceMappingURL=wostrip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wostrip.d.ts","sourceRoot":"","sources":["../../src/device/wostrip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;GAEG;AACH,qBAAa,OAAQ,SAAQ,eAAe;WAC7B,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAkDxC;;OAEG;IACG,SAAS;IAIf;;OAEG;IACG,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE;IAKrC;;OAEG;IACG,MAAM;IAIZ;;OAEG;IACG,OAAO;IAIb;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM;IAYtC;;OAEG;IACG,mBAAmB,CAAC,iBAAiB,EAAE,OAAO;IAMpD;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAoCzE;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE;CAqBxC"}
1
+ {"version":3,"file":"wostrip.d.ts","sourceRoot":"","sources":["../../src/device/wostrip.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,eAAe;IAC1C,MAAM,CAAC,YAAY,EAAE,YAAY,CAAA;IACjC;;;;OAIG;WACU,gBAAgB,CAC3B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAoCxC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;;;;OAKG;IACU,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/D;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;;;OAIG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzD;;;;;;;OAOG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa5F;;;;;OAKG;IACU,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAelE"}