@ray-js/lock-sdk 1.1.3-beta.9 → 1.2.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 (534) hide show
  1. package/lib/api/ble.d.ts +57 -0
  2. package/lib/api/ble.js +46 -0
  3. package/lib/api/fit.d.ts +203 -0
  4. package/lib/api/fit.js +158 -0
  5. package/lib/api/index.d.ts +1 -1
  6. package/lib/api/index.js +10 -0
  7. package/lib/api/linkage.js +6 -0
  8. package/lib/api/lock.d.ts +4 -2
  9. package/lib/api/lock.js +24 -0
  10. package/lib/api/log.d.ts +49 -22
  11. package/lib/api/log.js +21 -0
  12. package/lib/api/request.d.ts +5 -2
  13. package/lib/api/request.js +34 -2
  14. package/lib/api/screen.d.ts +110 -0
  15. package/lib/api/screen.js +52 -0
  16. package/lib/api/setting.js +2 -0
  17. package/lib/api/temp.d.ts +24 -3
  18. package/lib/api/temp.js +27 -0
  19. package/lib/api/user.d.ts +35 -1
  20. package/lib/api/user.js +24 -0
  21. package/lib/api/video.d.ts +27 -0
  22. package/lib/api/video.js +21 -0
  23. package/lib/api/voice-file.d.ts +14 -0
  24. package/lib/api/voice-file.js +18 -0
  25. package/lib/bootstrap/bootstrap-lock-instance.d.ts +7 -0
  26. package/lib/bootstrap/bootstrap-lock-instance.js +16 -0
  27. package/lib/bootstrap/bootstrap.d.ts +4 -0
  28. package/lib/bootstrap/bootstrap.js +53 -0
  29. package/lib/bootstrap/lock-instance-runtime-ref.d.ts +3 -0
  30. package/lib/bootstrap/lock-instance-runtime-ref.js +7 -0
  31. package/lib/bootstrap/primary-instance.d.ts +6 -0
  32. package/lib/bootstrap/primary-instance.js +24 -0
  33. package/lib/bootstrap/resolve-runtime-from-export-this.d.ts +5 -0
  34. package/lib/bootstrap/resolve-runtime-from-export-this.js +29 -0
  35. package/lib/bootstrap/top-level-runtime.d.ts +2 -0
  36. package/lib/bootstrap/top-level-runtime.js +9 -0
  37. package/lib/config/dp-code/index.d.ts +100 -67
  38. package/lib/config/dp-code/index.js +33 -1
  39. package/lib/config/dp-map/ble-check-code.d.ts +41 -0
  40. package/lib/config/dp-map/ble-check-code.js +55 -0
  41. package/lib/config/dp-map/ble-key-fit.d.ts +328 -0
  42. package/lib/config/dp-map/ble-key-fit.js +33 -0
  43. package/lib/config/dp-map/ble-sync.d.ts +2 -2
  44. package/lib/config/dp-map/ble-sync.js +2 -2
  45. package/lib/config/dp-map/ble-unlock-check.d.ts +42 -0
  46. package/lib/config/dp-map/ble-unlock-check.js +59 -0
  47. package/lib/config/dp-map/ble-voice-data.d.ts +16 -0
  48. package/lib/config/dp-map/ble-voice-data.js +7 -0
  49. package/lib/config/dp-map/bluetooth-unlock.d.ts +10 -0
  50. package/lib/config/dp-map/bluetooth-unlock.js +16 -0
  51. package/lib/config/dp-map/registry.d.ts +1137 -0
  52. package/lib/config/dp-map/registry.js +110 -0
  53. package/lib/config/dp-map/sync-method-fit.d.ts +3 -0
  54. package/lib/config/dp-map/sync-method-fit.js +36 -0
  55. package/lib/config/dp-map/temp-pwd-fit.d.ts +441 -0
  56. package/lib/config/dp-map/temp-pwd-fit.js +73 -0
  57. package/lib/config/dp-map/unlock-method-fit.d.ts +302 -0
  58. package/lib/config/dp-map/unlock-method-fit.js +62 -0
  59. package/lib/config/dp-map/unlock-method.d.ts +345 -1
  60. package/lib/config/dp-map/unlock-method.js +37 -1
  61. package/lib/constant.d.ts +5 -0
  62. package/lib/constant.js +6 -0
  63. package/lib/entries/ble/bootstrap/bootstrap-lock-instance.d.ts +7 -0
  64. package/lib/entries/ble/bootstrap/bootstrap-lock-instance.js +12 -0
  65. package/lib/entries/ble/bootstrap/bootstrap.d.ts +4 -0
  66. package/lib/entries/ble/bootstrap/bootstrap.js +53 -0
  67. package/lib/entries/ble/bootstrap/lock-instance-runtime-ref.d.ts +3 -0
  68. package/lib/entries/ble/bootstrap/lock-instance-runtime-ref.js +7 -0
  69. package/lib/entries/ble/bootstrap/primary-instance.d.ts +6 -0
  70. package/lib/entries/ble/bootstrap/primary-instance.js +24 -0
  71. package/lib/entries/ble/bootstrap/resolve-runtime-from-export-this.d.ts +5 -0
  72. package/lib/entries/ble/bootstrap/resolve-runtime-from-export-this.js +29 -0
  73. package/lib/entries/ble/bootstrap/top-level-runtime.d.ts +2 -0
  74. package/lib/entries/ble/bootstrap/top-level-runtime.js +9 -0
  75. package/lib/entries/ble/build-instance.d.ts +9 -0
  76. package/lib/entries/ble/build-instance.js +50 -0
  77. package/lib/entries/ble/exports/capability.d.ts +6 -0
  78. package/lib/entries/ble/exports/capability.js +17 -0
  79. package/lib/entries/ble/exports/config.d.ts +3 -0
  80. package/lib/entries/ble/exports/config.js +5 -0
  81. package/lib/entries/ble/exports/dp.d.ts +9 -0
  82. package/lib/entries/ble/exports/dp.js +13 -0
  83. package/lib/entries/ble/exports/index.d.ts +16 -0
  84. package/lib/entries/ble/exports/index.js +16 -0
  85. package/lib/entries/ble/exports/linkage.d.ts +5 -0
  86. package/lib/entries/ble/exports/linkage.js +15 -0
  87. package/lib/entries/ble/exports/log.d.ts +9 -0
  88. package/lib/entries/ble/exports/log.js +21 -0
  89. package/lib/entries/ble/exports/media.d.ts +4 -0
  90. package/lib/entries/ble/exports/media.js +12 -0
  91. package/lib/entries/ble/exports/misc.d.ts +19 -0
  92. package/lib/entries/ble/exports/misc.js +30 -0
  93. package/lib/entries/ble/exports/offline-dps.d.ts +8 -0
  94. package/lib/entries/ble/exports/offline-dps.js +24 -0
  95. package/lib/entries/ble/exports/open/do-open-close-action.d.ts +2 -0
  96. package/lib/entries/ble/exports/open/do-open-close-action.js +36 -0
  97. package/lib/entries/ble/exports/open/index.d.ts +18 -0
  98. package/lib/entries/ble/exports/open/index.js +45 -0
  99. package/lib/entries/ble/exports/signal.d.ts +6 -0
  100. package/lib/entries/ble/exports/signal.js +14 -0
  101. package/lib/entries/ble/exports/sleep.d.ts +13 -0
  102. package/lib/entries/ble/exports/sleep.js +31 -0
  103. package/lib/entries/ble/exports/state.d.ts +6 -0
  104. package/lib/entries/ble/exports/state.js +19 -0
  105. package/lib/entries/ble/exports/temporary.d.ts +31 -0
  106. package/lib/entries/ble/exports/temporary.js +91 -0
  107. package/lib/entries/ble/exports/unlock/sync.d.ts +1 -0
  108. package/lib/entries/ble/exports/unlock/sync.js +5 -0
  109. package/lib/entries/ble/exports/unlock-method.d.ts +19 -0
  110. package/lib/entries/ble/exports/unlock-method.js +58 -0
  111. package/lib/entries/ble/exports/user/index.d.ts +23 -0
  112. package/lib/entries/ble/exports/user/index.js +22 -0
  113. package/lib/entries/ble/exports/user/sync.d.ts +1 -0
  114. package/lib/entries/ble/exports/user/sync.js +5 -0
  115. package/lib/entries/ble/index.d.ts +8 -0
  116. package/lib/entries/ble/index.js +39 -0
  117. package/lib/entries/fit/bootstrap/bootstrap-lock-instance.d.ts +7 -0
  118. package/lib/entries/fit/bootstrap/bootstrap-lock-instance.js +12 -0
  119. package/lib/entries/fit/bootstrap/bootstrap.d.ts +4 -0
  120. package/lib/entries/fit/bootstrap/bootstrap.js +69 -0
  121. package/lib/entries/fit/bootstrap/lock-instance-runtime-ref.d.ts +3 -0
  122. package/lib/entries/fit/bootstrap/lock-instance-runtime-ref.js +7 -0
  123. package/lib/entries/fit/bootstrap/primary-instance.d.ts +6 -0
  124. package/lib/entries/fit/bootstrap/primary-instance.js +24 -0
  125. package/lib/entries/fit/bootstrap/resolve-runtime-from-export-this.d.ts +5 -0
  126. package/lib/entries/fit/bootstrap/resolve-runtime-from-export-this.js +29 -0
  127. package/lib/entries/fit/bootstrap/top-level-runtime.d.ts +2 -0
  128. package/lib/entries/fit/bootstrap/top-level-runtime.js +9 -0
  129. package/lib/entries/fit/build-instance.d.ts +9 -0
  130. package/lib/entries/fit/build-instance.js +57 -0
  131. package/lib/entries/fit/exports/binding.d.ts +8 -0
  132. package/lib/entries/fit/exports/binding.js +15 -0
  133. package/lib/entries/fit/exports/device.d.ts +26 -0
  134. package/lib/entries/fit/exports/device.js +64 -0
  135. package/lib/entries/fit/exports/index.d.ts +3 -0
  136. package/lib/entries/fit/exports/index.js +3 -0
  137. package/lib/entries/fit/exports/temp.d.ts +19 -0
  138. package/lib/entries/fit/exports/temp.js +18 -0
  139. package/lib/entries/fit/index.d.ts +8 -0
  140. package/lib/entries/fit/index.js +36 -0
  141. package/lib/entries/main/bootstrap/bootstrap-lock-instance.d.ts +7 -0
  142. package/lib/entries/main/bootstrap/bootstrap-lock-instance.js +12 -0
  143. package/lib/entries/main/bootstrap/bootstrap.d.ts +4 -0
  144. package/lib/entries/main/bootstrap/bootstrap.js +69 -0
  145. package/lib/entries/main/bootstrap/lock-instance-runtime-ref.d.ts +3 -0
  146. package/lib/entries/main/bootstrap/lock-instance-runtime-ref.js +7 -0
  147. package/lib/entries/main/bootstrap/primary-instance.d.ts +6 -0
  148. package/lib/entries/main/bootstrap/primary-instance.js +24 -0
  149. package/lib/entries/main/bootstrap/resolve-runtime-from-export-this.d.ts +5 -0
  150. package/lib/entries/main/bootstrap/resolve-runtime-from-export-this.js +29 -0
  151. package/lib/entries/main/bootstrap/top-level-runtime.d.ts +2 -0
  152. package/lib/entries/main/bootstrap/top-level-runtime.js +9 -0
  153. package/lib/entries/main/build-instance.d.ts +7 -0
  154. package/lib/entries/main/build-instance.js +49 -0
  155. package/lib/entries/main/exports/accessory-binding.d.ts +1 -0
  156. package/lib/entries/main/exports/accessory-binding.js +1 -0
  157. package/lib/entries/main/exports/capability.d.ts +6 -0
  158. package/lib/entries/main/exports/capability.js +17 -0
  159. package/lib/entries/main/exports/config.d.ts +3 -0
  160. package/lib/entries/main/exports/config.js +5 -0
  161. package/lib/entries/main/exports/dp.d.ts +11 -0
  162. package/lib/entries/main/exports/dp.js +13 -0
  163. package/lib/entries/main/exports/fit.d.ts +8 -0
  164. package/lib/entries/main/exports/fit.js +14 -0
  165. package/lib/entries/main/exports/index.d.ts +20 -0
  166. package/lib/entries/main/exports/index.js +20 -0
  167. package/lib/entries/main/exports/linkage.d.ts +5 -0
  168. package/lib/entries/main/exports/linkage.js +15 -0
  169. package/lib/entries/main/exports/log.d.ts +10 -0
  170. package/lib/entries/main/exports/log.js +24 -0
  171. package/lib/entries/main/exports/media.d.ts +6 -0
  172. package/lib/entries/main/exports/media.js +18 -0
  173. package/lib/entries/main/exports/misc.d.ts +18 -0
  174. package/lib/entries/main/exports/misc.js +30 -0
  175. package/lib/entries/main/exports/offline-dps.d.ts +8 -0
  176. package/lib/entries/main/exports/offline-dps.js +28 -0
  177. package/lib/entries/main/exports/open/do-open-close-action.d.ts +2 -0
  178. package/lib/entries/main/exports/open/do-open-close-action.js +68 -0
  179. package/lib/entries/main/exports/open/index.d.ts +16 -0
  180. package/lib/entries/main/exports/open/index.js +44 -0
  181. package/lib/entries/main/exports/open.d.ts +16 -0
  182. package/lib/entries/main/exports/open.js +44 -0
  183. package/lib/entries/main/exports/screen/bind.d.ts +4 -0
  184. package/lib/entries/main/exports/screen/bind.js +8 -0
  185. package/lib/entries/main/exports/screen/list.d.ts +5 -0
  186. package/lib/entries/main/exports/screen/list.js +13 -0
  187. package/lib/entries/main/exports/signal.d.ts +6 -0
  188. package/lib/entries/main/exports/signal.js +14 -0
  189. package/lib/entries/main/exports/sleep.d.ts +15 -0
  190. package/lib/entries/main/exports/sleep.js +31 -0
  191. package/lib/entries/main/exports/state.d.ts +6 -0
  192. package/lib/entries/main/exports/state.js +19 -0
  193. package/lib/entries/main/exports/temporary.d.ts +32 -0
  194. package/lib/entries/main/exports/temporary.js +86 -0
  195. package/lib/entries/main/exports/unlock/sync.d.ts +1 -0
  196. package/lib/entries/main/exports/unlock/sync.js +5 -0
  197. package/lib/entries/main/exports/unlock-method.d.ts +19 -0
  198. package/lib/entries/main/exports/unlock-method.js +58 -0
  199. package/lib/entries/main/exports/user/index.d.ts +33 -0
  200. package/lib/entries/main/exports/user/index.js +35 -0
  201. package/lib/entries/main/exports/user/sync.d.ts +1 -0
  202. package/lib/entries/main/exports/user/sync.js +5 -0
  203. package/lib/entries/main/exports/voice-file.d.ts +7 -0
  204. package/lib/entries/main/exports/voice-file.js +17 -0
  205. package/lib/entries/main/exports/yu-channel.d.ts +5 -0
  206. package/lib/entries/main/exports/yu-channel.js +17 -0
  207. package/lib/entries/main/index.d.ts +8 -0
  208. package/lib/entries/main/index.js +36 -0
  209. package/lib/entries/screen/bootstrap/bootstrap-lock-instance.d.ts +7 -0
  210. package/lib/entries/screen/bootstrap/bootstrap-lock-instance.js +12 -0
  211. package/lib/entries/screen/bootstrap/bootstrap.d.ts +4 -0
  212. package/lib/entries/screen/bootstrap/bootstrap.js +69 -0
  213. package/lib/entries/screen/bootstrap/lock-instance-runtime-ref.d.ts +3 -0
  214. package/lib/entries/screen/bootstrap/lock-instance-runtime-ref.js +7 -0
  215. package/lib/entries/screen/bootstrap/primary-instance.d.ts +6 -0
  216. package/lib/entries/screen/bootstrap/primary-instance.js +24 -0
  217. package/lib/entries/screen/bootstrap/resolve-runtime-from-export-this.d.ts +5 -0
  218. package/lib/entries/screen/bootstrap/resolve-runtime-from-export-this.js +29 -0
  219. package/lib/entries/screen/bootstrap/top-level-runtime.d.ts +2 -0
  220. package/lib/entries/screen/bootstrap/top-level-runtime.js +9 -0
  221. package/lib/entries/screen/build-instance.d.ts +9 -0
  222. package/lib/entries/screen/build-instance.js +57 -0
  223. package/lib/entries/screen/exports/binding.d.ts +6 -0
  224. package/lib/entries/screen/exports/binding.js +15 -0
  225. package/lib/entries/screen/exports/device.d.ts +16 -0
  226. package/lib/entries/screen/exports/device.js +41 -0
  227. package/lib/entries/screen/exports/event.d.ts +3 -0
  228. package/lib/entries/screen/exports/event.js +5 -0
  229. package/lib/entries/screen/exports/index.d.ts +4 -0
  230. package/lib/entries/screen/exports/index.js +4 -0
  231. package/lib/entries/screen/exports/user.d.ts +2 -0
  232. package/lib/entries/screen/exports/user.js +8 -0
  233. package/lib/entries/screen/index.d.ts +8 -0
  234. package/lib/entries/screen/index.js +36 -0
  235. package/lib/feature/dp/get-dp-value.d.ts +3 -0
  236. package/lib/feature/dp/get-dp-value.js +3 -0
  237. package/lib/feature/dp/has-dp.d.ts +2 -0
  238. package/lib/feature/dp/has-dp.js +1 -0
  239. package/lib/feature/dp/publish-dps.d.ts +7 -0
  240. package/lib/feature/dp/publish-dps.js +155 -0
  241. package/lib/feature/fit/bind-fit-to-lock.d.ts +6 -0
  242. package/lib/feature/fit/bind-fit-to-lock.js +222 -0
  243. package/lib/feature/fit/bind-lock-to-fit.d.ts +4 -0
  244. package/lib/feature/fit/bind-lock-to-fit.js +167 -0
  245. package/lib/feature/fit/ble-key.d.ts +16 -0
  246. package/lib/feature/fit/ble-key.js +99 -0
  247. package/lib/feature/fit/list.d.ts +3 -0
  248. package/lib/feature/fit/list.js +28 -0
  249. package/lib/feature/fit/method/add-flow.d.ts +7 -0
  250. package/lib/feature/fit/method/add-flow.js +380 -0
  251. package/lib/feature/fit/method/add-method-events.d.ts +5 -0
  252. package/lib/feature/fit/method/add-method-events.js +11 -0
  253. package/lib/feature/fit/method/add-password.d.ts +3 -0
  254. package/lib/feature/fit/method/add-password.js +99 -0
  255. package/lib/feature/fit/method/internal/base.d.ts +19 -0
  256. package/lib/feature/fit/method/internal/base.js +134 -0
  257. package/lib/feature/fit/method/list.d.ts +3 -0
  258. package/lib/feature/fit/method/list.js +64 -0
  259. package/lib/feature/fit/method/types.d.ts +68 -0
  260. package/lib/feature/fit/method/types.js +1 -0
  261. package/lib/feature/fit/method/update-remove.d.ts +4 -0
  262. package/lib/feature/fit/method/update-remove.js +159 -0
  263. package/lib/feature/fit/password-list.d.ts +24 -0
  264. package/lib/feature/fit/password-list.js +31 -0
  265. package/lib/feature/fit/resolve-slave-id.d.ts +2 -0
  266. package/lib/feature/fit/resolve-slave-id.js +38 -0
  267. package/lib/feature/fit/setting.d.ts +2 -0
  268. package/lib/feature/fit/setting.js +27 -0
  269. package/lib/feature/fit/shared.d.ts +27 -0
  270. package/lib/feature/fit/shared.js +118 -0
  271. package/lib/feature/fit/sync.d.ts +4 -0
  272. package/lib/feature/fit/sync.js +85 -0
  273. package/lib/feature/fit/temp-password.d.ts +27 -0
  274. package/lib/feature/fit/temp-password.js +428 -0
  275. package/lib/feature/fit/users.d.ts +12 -0
  276. package/lib/feature/fit/users.js +25 -0
  277. package/lib/feature/linkage/linkage.d.ts +10 -0
  278. package/lib/{linkage.js → feature/linkage/linkage.js} +30 -30
  279. package/lib/feature/log/log.d.ts +63 -0
  280. package/lib/feature/log/log.js +438 -0
  281. package/lib/feature/media/media.d.ts +31 -0
  282. package/lib/feature/media/media.js +66 -0
  283. package/lib/feature/media/rotate.d.ts +6 -0
  284. package/lib/feature/media/rotate.js +6 -0
  285. package/lib/feature/misc/ble-control.d.ts +2 -0
  286. package/lib/feature/misc/ble-control.js +38 -0
  287. package/lib/feature/misc/capability.d.ts +8 -0
  288. package/lib/{capability.js → feature/misc/capability.js} +39 -29
  289. package/lib/feature/misc/connect-device.d.ts +2 -0
  290. package/lib/feature/misc/connect-device.js +206 -0
  291. package/lib/feature/misc/dp-period.d.ts +18 -0
  292. package/lib/feature/misc/dp-period.js +75 -0
  293. package/lib/feature/misc/is-use-near-channel-for-runtime.d.ts +2 -0
  294. package/lib/feature/misc/is-use-near-channel-for-runtime.js +17 -0
  295. package/lib/feature/misc/open-scene.d.ts +3 -0
  296. package/lib/feature/misc/open-scene.js +63 -0
  297. package/lib/feature/misc/signal.d.ts +12 -0
  298. package/lib/feature/misc/signal.js +36 -0
  299. package/lib/feature/misc/sleep.d.ts +14 -0
  300. package/lib/feature/misc/sleep.js +66 -0
  301. package/lib/feature/misc/types.d.ts +7 -0
  302. package/lib/feature/misc/types.js +1 -0
  303. package/lib/feature/misc/update-config.d.ts +4 -0
  304. package/lib/feature/misc/update-config.js +9 -0
  305. package/lib/feature/misc/validate-pwd.d.ts +2 -0
  306. package/lib/feature/misc/validate-pwd.js +10 -0
  307. package/lib/feature/misc/yu-channel.d.ts +6 -0
  308. package/lib/feature/misc/yu-channel.js +26 -0
  309. package/lib/feature/offline-dps/index.d.ts +10 -0
  310. package/lib/feature/offline-dps/index.js +133 -0
  311. package/lib/feature/password/ble-temp-payload.d.ts +3 -0
  312. package/lib/{sync → feature/password}/ble-temp-payload.js +10 -10
  313. package/lib/feature/password/sync-temp.d.ts +4 -0
  314. package/lib/feature/password/sync-temp.js +91 -0
  315. package/lib/feature/password/temporary/custom-dp-ble.d.ts +6 -0
  316. package/lib/feature/password/temporary/custom-dp-ble.js +263 -0
  317. package/lib/feature/password/temporary/custom-dp-create-shared.d.ts +34 -0
  318. package/lib/feature/password/temporary/custom-dp-create-shared.js +64 -0
  319. package/lib/feature/password/temporary/custom-dp.d.ts +6 -0
  320. package/lib/feature/password/temporary/custom-dp.js +241 -0
  321. package/lib/feature/password/temporary/freeze-ble-key.d.ts +4 -0
  322. package/lib/feature/password/temporary/freeze-ble-key.js +7 -0
  323. package/lib/feature/password/temporary/freeze-rename.d.ts +5 -0
  324. package/lib/feature/password/temporary/freeze-rename.js +72 -0
  325. package/lib/feature/password/temporary/internal/change-password-phase.d.ts +2 -0
  326. package/lib/feature/password/temporary/internal/change-password-phase.js +48 -0
  327. package/lib/feature/password/temporary/internal/constants.d.ts +12 -0
  328. package/lib/feature/password/temporary/internal/constants.js +21 -0
  329. package/lib/feature/password/temporary/internal/password-helpers.d.ts +4 -0
  330. package/lib/feature/password/temporary/internal/password-helpers.js +18 -0
  331. package/lib/feature/password/temporary/internal/password-type-map.d.ts +2 -0
  332. package/lib/feature/password/temporary/internal/password-type-map.js +7 -0
  333. package/lib/feature/password/temporary/lists.d.ts +16 -0
  334. package/lib/feature/password/temporary/lists.js +157 -0
  335. package/lib/feature/password/temporary/offline-create.d.ts +7 -0
  336. package/lib/feature/password/temporary/offline-create.js +192 -0
  337. package/lib/feature/password/temporary/types.d.ts +107 -0
  338. package/lib/feature/password/temporary/types.js +1 -0
  339. package/lib/feature/password/temporary/wifi-offline.d.ts +5 -0
  340. package/lib/feature/password/temporary/wifi-offline.js +85 -0
  341. package/lib/feature/password/temporary/wifi-online.d.ts +28 -0
  342. package/lib/feature/password/temporary/wifi-online.js +153 -0
  343. package/lib/feature/screen/bind.d.ts +4 -0
  344. package/lib/feature/screen/bind.js +181 -0
  345. package/lib/feature/screen/error.d.ts +1 -0
  346. package/lib/feature/screen/error.js +34 -0
  347. package/lib/feature/screen/event.d.ts +3 -0
  348. package/lib/feature/screen/event.js +19 -0
  349. package/lib/feature/screen/list.d.ts +13 -0
  350. package/lib/feature/screen/list.js +56 -0
  351. package/lib/feature/service/goto-service.d.ts +5 -0
  352. package/lib/feature/service/goto-service.js +16 -0
  353. package/lib/feature/state/clear.d.ts +2 -0
  354. package/lib/feature/state/clear.js +17 -0
  355. package/lib/feature/state/device-status-events.d.ts +5 -0
  356. package/lib/feature/state/device-status-events.js +11 -0
  357. package/lib/feature/state/device-status.d.ts +5 -0
  358. package/lib/feature/state/device-status.js +130 -0
  359. package/lib/feature/state/dp-change.d.ts +3 -0
  360. package/lib/feature/state/dp-change.js +44 -0
  361. package/lib/feature/state/init-state.d.ts +2 -0
  362. package/lib/feature/state/init-state.js +167 -0
  363. package/lib/feature/state/internal/read-is-sleep.d.ts +2 -0
  364. package/lib/feature/state/internal/read-is-sleep.js +9 -0
  365. package/lib/feature/state/internal/share-thread-local.d.ts +2 -0
  366. package/lib/feature/state/internal/share-thread-local.js +4 -0
  367. package/lib/feature/state/platform-routing.d.ts +3 -0
  368. package/lib/feature/state/platform-routing.js +155 -0
  369. package/lib/feature/state/remote-permissions.d.ts +4 -0
  370. package/lib/feature/state/remote-permissions.js +30 -0
  371. package/lib/feature/state/sync/offline-dps.d.ts +2 -0
  372. package/lib/feature/state/sync/offline-dps.js +71 -0
  373. package/lib/feature/state/sync/remote-serect-key.d.ts +3 -0
  374. package/lib/feature/state/sync/remote-serect-key.js +74 -0
  375. package/lib/feature/state/sync/t0.d.ts +3 -0
  376. package/lib/feature/state/sync/t0.js +64 -0
  377. package/lib/feature/unlock/door/check-remote.d.ts +2 -0
  378. package/lib/feature/unlock/door/check-remote.js +40 -0
  379. package/lib/feature/unlock/door/check-user-valid.d.ts +2 -0
  380. package/lib/feature/unlock/door/check-user-valid.js +21 -0
  381. package/lib/feature/unlock/door/door-action.d.ts +2 -0
  382. package/lib/feature/unlock/door/door-action.js +32 -0
  383. package/lib/feature/unlock/door/door-ble-only.d.ts +2 -0
  384. package/lib/feature/unlock/door/door-ble-only.js +102 -0
  385. package/lib/feature/unlock/door/door-matter-lan.d.ts +2 -0
  386. package/lib/feature/unlock/door/door-matter-lan.js +15 -0
  387. package/lib/feature/unlock/door/door-near-dual-mode.d.ts +2 -0
  388. package/lib/feature/unlock/door/door-near-dual-mode.js +39 -0
  389. package/lib/feature/unlock/door/door-remote-cloud.d.ts +2 -0
  390. package/lib/feature/unlock/door/door-remote-cloud.js +69 -0
  391. package/lib/feature/unlock/door/door-report.d.ts +11 -0
  392. package/lib/feature/unlock/door/door-report.js +96 -0
  393. package/lib/feature/unlock/door/internal/report-error.d.ts +2 -0
  394. package/lib/feature/unlock/door/internal/report-error.js +46 -0
  395. package/lib/feature/unlock/door/open-close-path.d.ts +3 -0
  396. package/lib/feature/unlock/door/open-close-path.js +30 -0
  397. package/lib/feature/unlock/door/remote-permission.d.ts +5 -0
  398. package/lib/feature/unlock/door/remote-permission.js +67 -0
  399. package/lib/feature/unlock/door/remove-share-user-once.d.ts +2 -0
  400. package/lib/feature/unlock/door/remove-share-user-once.js +21 -0
  401. package/lib/feature/unlock/door/types.d.ts +4 -0
  402. package/lib/feature/unlock/door/types.js +1 -0
  403. package/lib/feature/unlock/door/voice-unlock-pwd.d.ts +4 -0
  404. package/lib/feature/unlock/door/voice-unlock-pwd.js +25 -0
  405. package/lib/feature/unlock/door/wifi-pro-confirm.d.ts +2 -0
  406. package/lib/feature/unlock/door/wifi-pro-confirm.js +69 -0
  407. package/lib/feature/unlock/method/add-flow.d.ts +7 -0
  408. package/lib/feature/unlock/method/add-flow.js +403 -0
  409. package/lib/feature/unlock/method/add-method-events.d.ts +5 -0
  410. package/lib/feature/unlock/method/add-method-events.js +11 -0
  411. package/lib/feature/unlock/method/add-password.d.ts +3 -0
  412. package/lib/feature/unlock/method/add-password.js +99 -0
  413. package/lib/feature/unlock/method/bind-unbind.d.ts +8 -0
  414. package/lib/feature/unlock/method/bind-unbind.js +113 -0
  415. package/lib/feature/unlock/method/detail.d.ts +3 -0
  416. package/lib/feature/unlock/method/detail.js +35 -0
  417. package/lib/feature/unlock/method/guide.d.ts +3 -0
  418. package/lib/feature/unlock/method/guide.js +48 -0
  419. package/lib/feature/unlock/method/internal/base.d.ts +109 -0
  420. package/lib/feature/unlock/method/internal/base.js +89 -0
  421. package/lib/feature/unlock/method/internal/errors.d.ts +5 -0
  422. package/lib/feature/unlock/method/internal/errors.js +13 -0
  423. package/lib/feature/unlock/method/internal/special-check.d.ts +13 -0
  424. package/lib/feature/unlock/method/internal/special-check.js +38 -0
  425. package/lib/feature/unlock/method/types.d.ts +70 -0
  426. package/lib/feature/unlock/method/types.js +1 -0
  427. package/lib/feature/unlock/method/update-remove.d.ts +4 -0
  428. package/lib/feature/unlock/method/update-remove.js +138 -0
  429. package/lib/feature/unlock/method/verify-code.d.ts +3 -0
  430. package/lib/feature/unlock/method/verify-code.js +7 -0
  431. package/lib/feature/unlock/sync/unlock-method.d.ts +3 -0
  432. package/lib/feature/unlock/sync/unlock-method.js +79 -0
  433. package/lib/feature/user/current-user.d.ts +3 -0
  434. package/lib/feature/user/current-user.js +33 -0
  435. package/lib/feature/user/delete-user-dp.d.ts +3 -0
  436. package/lib/{utils/user.js → feature/user/delete-user-dp.js} +13 -13
  437. package/lib/feature/user/share-user.d.ts +29 -0
  438. package/lib/feature/user/share-user.js +228 -0
  439. package/lib/feature/user/sync-user.d.ts +2 -0
  440. package/lib/feature/user/sync-user.js +151 -0
  441. package/lib/feature/user/user.d.ts +37 -0
  442. package/lib/feature/user/user.js +484 -0
  443. package/lib/feature/utils/index.d.ts +12 -0
  444. package/lib/feature/utils/index.js +165 -0
  445. package/lib/feature/voice-file/voice-file.d.ts +27 -0
  446. package/lib/feature/voice-file/voice-file.js +203 -0
  447. package/lib/fit.d.ts +4 -0
  448. package/lib/fit.js +3 -0
  449. package/lib/index.d.ts +2 -21
  450. package/lib/index.js +1 -74
  451. package/lib/interface.d.ts +50 -3
  452. package/lib/{utils → platform}/device.d.ts +48 -0
  453. package/lib/{utils → platform}/device.js +153 -2
  454. package/lib/platform/index.d.ts +2 -0
  455. package/lib/platform/index.js +2 -0
  456. package/lib/{utils → platform}/ipc.d.ts +3 -0
  457. package/lib/{utils → platform}/ipc.js +11 -0
  458. package/lib/platform/transport/index.d.ts +1 -0
  459. package/lib/platform/transport/index.js +1 -0
  460. package/lib/runtime/LockDeviceRuntime.d.ts +12 -0
  461. package/lib/runtime/LockDeviceRuntime.js +34 -0
  462. package/lib/runtime/device-status/compute-device-status.d.ts +25 -0
  463. package/lib/runtime/device-status/compute-device-status.js +94 -0
  464. package/lib/runtime/index.d.ts +5 -0
  465. package/lib/runtime/index.js +3 -0
  466. package/lib/runtime/lock-config.d.ts +28 -0
  467. package/lib/runtime/lock-config.js +37 -0
  468. package/lib/runtime/registry.d.ts +7 -0
  469. package/lib/runtime/registry.js +28 -0
  470. package/lib/runtime/runtime-state-types.d.ts +20 -0
  471. package/lib/runtime/runtime-state-types.js +1 -0
  472. package/lib/screen.d.ts +4 -0
  473. package/lib/screen.js +3 -0
  474. package/lib/utils/constant.d.ts +3 -0
  475. package/lib/utils/constant.js +3 -0
  476. package/lib/utils/errors.js +39 -4
  477. package/lib/utils/event.js +2 -1
  478. package/lib/utils/index.d.ts +22 -13
  479. package/lib/utils/index.js +39 -118
  480. package/lib/utils/sdk-log.d.ts +28 -0
  481. package/lib/utils/sdk-log.js +128 -0
  482. package/package.json +26 -7
  483. package/lib/capability.d.ts +0 -4
  484. package/lib/config/index.d.ts +0 -28
  485. package/lib/config/index.js +0 -41
  486. package/lib/event.d.ts +0 -2
  487. package/lib/event.js +0 -2
  488. package/lib/linkage.d.ts +0 -8
  489. package/lib/log.d.ts +0 -41
  490. package/lib/log.js +0 -311
  491. package/lib/media.d.ts +0 -14
  492. package/lib/media.js +0 -27
  493. package/lib/offline-dps.d.ts +0 -9
  494. package/lib/offline-dps.js +0 -76
  495. package/lib/open/ble-dedicated-dp.d.ts +0 -4
  496. package/lib/open/ble-dedicated-dp.js +0 -148
  497. package/lib/open/ble-remote-no-dp-key.d.ts +0 -4
  498. package/lib/open/ble-remote-no-dp-key.js +0 -69
  499. package/lib/open/report-status.d.ts +0 -1
  500. package/lib/open/report-status.js +0 -23
  501. package/lib/open.d.ts +0 -22
  502. package/lib/open.js +0 -262
  503. package/lib/other.d.ts +0 -31
  504. package/lib/other.js +0 -291
  505. package/lib/signal.d.ts +0 -14
  506. package/lib/signal.js +0 -31
  507. package/lib/sleep.d.ts +0 -19
  508. package/lib/sleep.js +0 -79
  509. package/lib/state.d.ts +0 -16
  510. package/lib/state.js +0 -351
  511. package/lib/sync/ble-temp-payload.d.ts +0 -2
  512. package/lib/sync/offline-dps.d.ts +0 -1
  513. package/lib/sync/offline-dps.js +0 -29
  514. package/lib/sync/remote-serect-key.d.ts +0 -2
  515. package/lib/sync/remote-serect-key.js +0 -43
  516. package/lib/sync/t0.d.ts +0 -2
  517. package/lib/sync/t0.js +0 -26
  518. package/lib/sync/temp.d.ts +0 -3
  519. package/lib/sync/temp.js +0 -70
  520. package/lib/sync/unlock-method.d.ts +0 -2
  521. package/lib/sync/unlock-method.js +0 -42
  522. package/lib/sync/user.d.ts +0 -2
  523. package/lib/sync/user.js +0 -68
  524. package/lib/temporary.d.ts +0 -171
  525. package/lib/temporary.js +0 -698
  526. package/lib/unlock-method.d.ts +0 -90
  527. package/lib/unlock-method.js +0 -701
  528. package/lib/user.d.ts +0 -30
  529. package/lib/user.js +0 -298
  530. package/lib/utils/publishDps.d.ts +0 -6
  531. package/lib/utils/publishDps.js +0 -78
  532. package/lib/utils/user.d.ts +0 -2
  533. /package/lib/{parse/index.d.ts → utils/parse.d.ts} +0 -0
  534. /package/lib/{parse/index.js → utils/parse.js} +0 -0
@@ -0,0 +1,36 @@
1
+ import { sendMqttMessage } from "../../platform/device";
2
+ import { getError } from "../../utils/errors";
3
+ import emitter from "../../utils/event";
4
+ const lastWiFiSignalByDevId = new Map();
5
+ const WIFI_SIGNAL_EVENT = "onWiFiSignalChange";
6
+ export function getWiFiSignalChangeEvent(runtime) {
7
+ return `${WIFI_SIGNAL_EVENT}_${runtime.devId}`;
8
+ }
9
+ export async function getWiFiSignalForRuntime(rt) {
10
+ const { devInfo } = rt.config;
11
+ if (devInfo.isCloudOnline) {
12
+ await sendMqttMessage({
13
+ deviceId: devInfo.devId,
14
+ protocol: 22,
15
+ message: {
16
+ reqType: "sigQry",
17
+ },
18
+ });
19
+ return;
20
+ }
21
+ throw getError(1001);
22
+ }
23
+ export function getCurrentWiFiSignalForRuntime(rt) {
24
+ return lastWiFiSignalByDevId.get(rt.devId) ?? "unknown";
25
+ }
26
+ export const onWiFiSignalChangeForRuntime = (runtime, cb) => {
27
+ emitter.on(getWiFiSignalChangeEvent(runtime), cb);
28
+ };
29
+ export const offWiFiSignalChangeForRuntime = (runtime, cb) => {
30
+ emitter.off(getWiFiSignalChangeEvent(runtime), cb);
31
+ };
32
+ emitter.on(WIFI_SIGNAL_EVENT, ({ signal, devId }) => {
33
+ if (devId) {
34
+ lastWiFiSignalByDevId.set(devId, signal);
35
+ }
36
+ });
@@ -0,0 +1,14 @@
1
+ import type { LockDeviceRuntime } from "../../runtime/LockDeviceRuntime";
2
+ export declare function isSleepForRuntime(rt: LockDeviceRuntime): boolean;
3
+ export declare function hasSleepAbilityForRuntime(rt: LockDeviceRuntime): boolean;
4
+ export declare const setSleepStatusForRuntime: (rt: LockDeviceRuntime, status: boolean, option?: {
5
+ offlineDp?: boolean;
6
+ }) => Promise<void>;
7
+ export declare const getSwitchStatusForRuntime: (rt: LockDeviceRuntime) => boolean;
8
+ export interface SleepStatusChangeEvent {
9
+ sleep: boolean;
10
+ }
11
+ export type SleepStatusListener = (args: SleepStatusChangeEvent) => void;
12
+ export declare function getSleepStatusEvent(runtime: LockDeviceRuntime): string;
13
+ export declare const onSleepStatusChangeForRuntime: (rt: LockDeviceRuntime, callback: SleepStatusListener) => void;
14
+ export declare const offSleepStatusChangeForRuntime: (rt: LockDeviceRuntime, callback: SleepStatusListener) => void;
@@ -0,0 +1,66 @@
1
+ import { getDpValueForRuntime } from "../dp/get-dp-value";
2
+ import { hasDpForRuntime } from "../dp/has-dp";
3
+ import { getDeviceStatusForRuntime } from "../state/device-status";
4
+ import { getError } from "../../utils/errors";
5
+ import { publishDpsForRuntime } from "../dp/publish-dps";
6
+ import emitter from "../../utils/event";
7
+ import { SLEEP_EVENT } from "../../utils/constant";
8
+ import dpCodes from "../../config/dp-code";
9
+ import { getOfflineDpCacheForRuntime, publishOfflineDpsForRuntime, } from "../offline-dps";
10
+ export function isSleepForRuntime(rt) {
11
+ if (!hasDpForRuntime(rt, dpCodes.linkMode)) {
12
+ return false;
13
+ }
14
+ const linkMode = getDpValueForRuntime(rt, dpCodes.linkMode);
15
+ return linkMode === "sleep" || linkMode === "lock_sleep";
16
+ }
17
+ export function hasSleepAbilityForRuntime(rt) {
18
+ return (hasDpForRuntime(rt, dpCodes.dormantSwitch) ||
19
+ hasDpForRuntime(rt, dpCodes.onlineSwitch));
20
+ }
21
+ export const setSleepStatusForRuntime = async (rt, status, option) => {
22
+ const { supportOfflineDps } = rt.config;
23
+ if (hasSleepAbilityForRuntime(rt)) {
24
+ const dpCode = hasDpForRuntime(rt, dpCodes.onlineSwitch)
25
+ ? dpCodes.onlineSwitch
26
+ : dpCodes.dormantSwitch;
27
+ if (supportOfflineDps) {
28
+ const deviceStatus = getDeviceStatusForRuntime(rt);
29
+ if (deviceStatus.type !== "online" && option?.offlineDp) {
30
+ return publishOfflineDpsForRuntime(rt, {
31
+ [dpCode]: status,
32
+ });
33
+ }
34
+ }
35
+ await publishDpsForRuntime(rt, {
36
+ [dpCode]: status,
37
+ });
38
+ return;
39
+ }
40
+ throw getError(1014);
41
+ };
42
+ export const getSwitchStatusForRuntime = (rt) => {
43
+ const { supportOfflineDps } = rt.config;
44
+ const hasOnlineSwitch = hasDpForRuntime(rt, dpCodes.onlineSwitch);
45
+ const hasDormantSwitch = hasDpForRuntime(rt, dpCodes.dormantSwitch);
46
+ if (!hasOnlineSwitch && !hasDormantSwitch) {
47
+ return false;
48
+ }
49
+ const dpCode = hasOnlineSwitch ? dpCodes.onlineSwitch : dpCodes.dormantSwitch;
50
+ if (supportOfflineDps) {
51
+ const cache = getOfflineDpCacheForRuntime(rt, dpCode);
52
+ if (cache && cache.pushStatus === false) {
53
+ return cache.value;
54
+ }
55
+ }
56
+ return getDpValueForRuntime(rt, dpCode);
57
+ };
58
+ export function getSleepStatusEvent(runtime) {
59
+ return `${SLEEP_EVENT}_${runtime.devId}`;
60
+ }
61
+ export const onSleepStatusChangeForRuntime = (rt, callback) => {
62
+ emitter.on(getSleepStatusEvent(rt), callback);
63
+ };
64
+ export const offSleepStatusChangeForRuntime = (rt, callback) => {
65
+ emitter.off(getSleepStatusEvent(rt), callback);
66
+ };
@@ -0,0 +1,7 @@
1
+ export type ExecutorRange = "unlock" | "lock";
2
+ export type Ability = "backHome" | "alarm" | "geographyArrive" | "geographyLeave" | "bleGeofence" | "siriUnlock" | "siriLock";
3
+ export interface OpenSceneOptions {
4
+ themeColor?: string;
5
+ executorRange?: Array<ExecutorRange>;
6
+ abilities?: Array<Ability>;
7
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { LockSDKOption } from "../../interface";
2
+ import type { LockDeviceRuntime } from "../../runtime/LockDeviceRuntime";
3
+ export type UpdateConfigParams = Omit<LockSDKOption, "devInfo" | "deviceId" | "preFetch">;
4
+ export declare function updateConfigForRuntime(runtime: LockDeviceRuntime, options: UpdateConfigParams): void;
@@ -0,0 +1,9 @@
1
+ export function updateConfigForRuntime(runtime, options) {
2
+ const cfg = runtime.config;
3
+ Object.keys(options).forEach((key) => {
4
+ const value = options[key];
5
+ if (value !== undefined) {
6
+ cfg[key] = value;
7
+ }
8
+ });
9
+ }
@@ -0,0 +1,2 @@
1
+ import type { LockDeviceRuntime } from "../../runtime/LockDeviceRuntime";
2
+ export declare function validatePwdComplexityForRuntime(rt: LockDeviceRuntime, password: string): Promise<boolean>;
@@ -0,0 +1,10 @@
1
+ import { encrypt } from "../../platform/device";
2
+ import { validatePasswordComplexity } from "../../api/lock";
3
+ export async function validatePwdComplexityForRuntime(rt, password) {
4
+ const devId = rt.config.devInfo.devId;
5
+ const encryptedPassword = await encrypt(devId, password);
6
+ return validatePasswordComplexity({
7
+ devId,
8
+ password: encryptedPassword,
9
+ });
10
+ }
@@ -0,0 +1,6 @@
1
+ import { LockDeviceRuntime } from "../../runtime";
2
+ export declare const isSupportYuChannelForRuntime: (rt: LockDeviceRuntime) => 0 | 1 | 2;
3
+ export declare const isYuChannelOnlineForRuntime: (rt: LockDeviceRuntime) => boolean;
4
+ export declare const updateYuChannelStateForRuntime: (rt: LockDeviceRuntime, enabled: boolean) => Promise<void>;
5
+ export declare const getYuChannelStateForRuntime: (rt: LockDeviceRuntime) => boolean;
6
+ export declare const getYuChannelNodesForRuntime: (rt: LockDeviceRuntime) => Promise<string[]>;
@@ -0,0 +1,26 @@
1
+ import { isYuDeviceOnlineSync, yuChannelQueryNodes, yuChannelSaveState, } from "../../platform";
2
+ export const isSupportYuChannelForRuntime = (rt) => {
3
+ if (rt.cache.deviceAdvanceAbilityCache?.yuChannel.support) {
4
+ return rt.cache.deviceAdvanceAbilityCache?.yuChannel.value;
5
+ }
6
+ return 0;
7
+ };
8
+ export const isYuChannelOnlineForRuntime = (rt) => {
9
+ return isYuDeviceOnlineSync(rt.config.devInfo.devId);
10
+ };
11
+ export const updateYuChannelStateForRuntime = async (rt, enabled) => {
12
+ await yuChannelSaveState(rt.config.devInfo.devId, enabled);
13
+ rt.config.devInfo.yuNetState = enabled ? 1 : 0;
14
+ };
15
+ export const getYuChannelStateForRuntime = (rt) => {
16
+ if (rt.cache.deviceAdvanceAbilityCache?.yuChannel.support) {
17
+ if (rt.cache.deviceAdvanceAbilityCache?.yuChannel.value === 1) {
18
+ return true;
19
+ }
20
+ return rt.config.devInfo.yuNetState === 1;
21
+ }
22
+ return false;
23
+ };
24
+ export const getYuChannelNodesForRuntime = (rt) => {
25
+ return yuChannelQueryNodes(rt.config.devInfo.devId);
26
+ };
@@ -0,0 +1,10 @@
1
+ import type { LockDeviceRuntime } from "../../runtime/LockDeviceRuntime";
2
+ import { DpValue, OfflineDps } from "../../interface";
3
+ export declare function getOfflineDpsUpdateEvent(runtime: LockDeviceRuntime): string;
4
+ export declare const getOfflineDpsForRuntime: (runtime: LockDeviceRuntime, isForce?: boolean) => Promise<OfflineDps>;
5
+ export declare const checkOfflineDpUpdateForRuntime: (runtime: LockDeviceRuntime, dps: Record<string, DpValue> | undefined, isForce?: boolean) => Promise<void>;
6
+ export declare const getOfflineDpCacheForRuntime: (runtime: LockDeviceRuntime, code: string) => import("../../interface").OfflineDpInfo | undefined;
7
+ export declare const publishOfflineDpsForRuntime: (runtime: LockDeviceRuntime, dps: Record<string, DpValue>) => Promise<void>;
8
+ export declare const clearOfflineDpsForRuntime: (runtime: LockDeviceRuntime) => Promise<void>;
9
+ export declare const onOfflineDpsUpdateForRuntime: (runtime: LockDeviceRuntime, callback: (dps: OfflineDps) => void) => void;
10
+ export declare const offOfflineDpsUpdateForRuntime: (runtime: LockDeviceRuntime, callback: (dps: OfflineDps) => void) => void;
@@ -0,0 +1,133 @@
1
+ import { clearOfflineDpData, fetchOfflineDpData, publishOfflineDpData, } from "../../api";
2
+ import base64ToHex from "../../utils/base64-to-hex";
3
+ import hexToBase64 from "../../utils/hex-to-base64";
4
+ import emitter from "../../utils/event";
5
+ import { sdkLog } from "../../utils/sdk-log";
6
+ const OFFLINE_DPS_UPDATE = "offline_dps_update";
7
+ export function getOfflineDpsUpdateEvent(runtime) {
8
+ return `${OFFLINE_DPS_UPDATE}_${runtime.devId}`;
9
+ }
10
+ export const getOfflineDpsForRuntime = async (runtime, isForce) => {
11
+ if (!isForce && runtime.cache.offlineDpCache) {
12
+ sdkLog("debug", "offlineDps", "cacheHit", {
13
+ devId: runtime.devId,
14
+ data: { count: Object.keys(runtime.cache.offlineDpCache).length },
15
+ });
16
+ return runtime.cache.offlineDpCache;
17
+ }
18
+ const { devInfo, dpSchema } = runtime.config;
19
+ const startedAt = Date.now();
20
+ sdkLog("info", "offlineDps", "fetchStart", {
21
+ devId: runtime.devId,
22
+ data: { force: !!isForce },
23
+ });
24
+ const res = await fetchOfflineDpData(devInfo.devId);
25
+ const result = res.reduce((acc, item) => {
26
+ const dps = JSON.parse(item.dps);
27
+ Object.keys(dps).forEach((code) => {
28
+ const schema = dpSchema[code];
29
+ let value = dps[code];
30
+ if (schema?.type === "raw") {
31
+ value = base64ToHex(value);
32
+ }
33
+ acc[code] = { value, pushStatus: item.pushStatus };
34
+ });
35
+ return acc;
36
+ }, {});
37
+ runtime.cache.offlineDpCache = result;
38
+ sdkLog("info", "offlineDps", "fetchSuccess", {
39
+ devId: runtime.devId,
40
+ duration: Date.now() - startedAt,
41
+ data: {
42
+ count: Object.keys(result).length,
43
+ cloudCount: res.length,
44
+ force: !!isForce,
45
+ },
46
+ });
47
+ return result;
48
+ };
49
+ export const checkOfflineDpUpdateForRuntime = async (runtime, dps, isForce) => {
50
+ const dpMap = dps ?? {};
51
+ if (!runtime.config.supportOfflineDps) {
52
+ return;
53
+ }
54
+ const cache = runtime.cache.offlineDpCache;
55
+ const hasOne = Object.keys(dpMap).some((code) => cache?.[code]?.pushStatus === false);
56
+ if (hasOne || isForce) {
57
+ const res = await getOfflineDpsForRuntime(runtime, true);
58
+ sdkLog("debug", "offlineDps", "emitUpdate", {
59
+ devId: runtime.devId,
60
+ data: { count: Object.keys(res).length, force: !!isForce },
61
+ });
62
+ emitter.emit(getOfflineDpsUpdateEvent(runtime), res);
63
+ }
64
+ };
65
+ export const getOfflineDpCacheForRuntime = (runtime, code) => {
66
+ return runtime.cache.offlineDpCache?.[code];
67
+ };
68
+ export const publishOfflineDpsForRuntime = async (runtime, dps) => {
69
+ const { devInfo, dpSchema } = runtime.config;
70
+ const startedAt = Date.now();
71
+ const dpData = Object.keys(dps).reduce((acc, code) => {
72
+ const schema = dpSchema[code];
73
+ if (schema) {
74
+ let value = dps[code];
75
+ if (schema.type === "raw") {
76
+ value = hexToBase64(value);
77
+ }
78
+ acc[schema.id] = value;
79
+ }
80
+ return acc;
81
+ }, {});
82
+ sdkLog("info", "offlineDps", "publishStart", {
83
+ devId: runtime.devId,
84
+ data: { codes: Object.keys(dps), count: Object.keys(dpData).length },
85
+ });
86
+ try {
87
+ await publishOfflineDpData(devInfo.devId, dpData);
88
+ await checkOfflineDpUpdateForRuntime(runtime, {}, true);
89
+ sdkLog("info", "offlineDps", "publishSuccess", {
90
+ devId: runtime.devId,
91
+ duration: Date.now() - startedAt,
92
+ data: { codes: Object.keys(dps), count: Object.keys(dpData).length },
93
+ });
94
+ }
95
+ catch (error) {
96
+ sdkLog("error", "offlineDps", "publishFail", {
97
+ devId: runtime.devId,
98
+ duration: Date.now() - startedAt,
99
+ data: { codes: Object.keys(dps), count: Object.keys(dpData).length },
100
+ error,
101
+ });
102
+ throw error;
103
+ }
104
+ };
105
+ export const clearOfflineDpsForRuntime = async (runtime) => {
106
+ const { devInfo } = runtime.config;
107
+ const startedAt = Date.now();
108
+ sdkLog("info", "offlineDps", "clearStart", {
109
+ devId: runtime.devId,
110
+ });
111
+ try {
112
+ await clearOfflineDpData(devInfo.devId);
113
+ await checkOfflineDpUpdateForRuntime(runtime, {}, true);
114
+ sdkLog("info", "offlineDps", "clearSuccess", {
115
+ devId: runtime.devId,
116
+ duration: Date.now() - startedAt,
117
+ });
118
+ }
119
+ catch (error) {
120
+ sdkLog("error", "offlineDps", "clearFail", {
121
+ devId: runtime.devId,
122
+ duration: Date.now() - startedAt,
123
+ error,
124
+ });
125
+ throw error;
126
+ }
127
+ };
128
+ export const onOfflineDpsUpdateForRuntime = (runtime, callback) => {
129
+ emitter.on(getOfflineDpsUpdateEvent(runtime), callback);
130
+ };
131
+ export const offOfflineDpsUpdateForRuntime = (runtime, callback) => {
132
+ emitter.off(getOfflineDpsUpdateEvent(runtime), callback);
133
+ };
@@ -0,0 +1,3 @@
1
+ import { SyncTempPwdItem } from "../../api/temp";
2
+ import type { LockDeviceRuntime } from "../../runtime/LockDeviceRuntime";
3
+ export declare function buildBleTempPwdSyncPayload(runtime: LockDeviceRuntime, pwdList: SyncTempPwdItem[]): Promise<string>;
@@ -1,7 +1,6 @@
1
- import config from "../config";
2
- import { formatWeek, parseWeek } from "../utils";
3
- import { bytesToHex, concatBytes, uintToBytesBE } from "../utils/byte";
4
- import { decrypt } from "../utils/device";
1
+ import { formatWeek, parseWeek } from "../../utils";
2
+ import { bytesToHex, concatBytes, uintToBytesBE } from "../../utils/byte";
3
+ import { decrypt } from "../../platform/device";
5
4
  const SUB_CMD = 0x2003;
6
5
  const PROTO_VERSION = 0x01;
7
6
  const DATA_TYPE_TEMP_PWD = 0x01;
@@ -41,18 +40,18 @@ function mapState(phase) {
41
40
  }
42
41
  return 0x01;
43
42
  }
44
- async function resolvePwdBytes(password) {
43
+ async function resolvePwdBytes(devId, password) {
45
44
  if (!password) {
46
45
  return [];
47
46
  }
48
- const plainPwd = await decrypt(config.devInfo.devId, password);
47
+ const plainPwd = await decrypt(devId, password);
49
48
  return plainPwd.split("").map((char) => Number(char));
50
49
  }
51
- async function buildItemBody(item, opCode) {
50
+ async function buildItemBody(devId, item, opCode) {
52
51
  if (opCode === OP_DEL) {
53
52
  return uintToBytesBE(item.sn, 2);
54
53
  }
55
- const pwdBytes = await resolvePwdBytes(item.password);
54
+ const pwdBytes = await resolvePwdBytes(devId, item.password);
56
55
  const state = mapState(item.phase);
57
56
  const timeSet = buildTimeSet(item);
58
57
  const availTime = mapAvailTime(item.availTime);
@@ -74,14 +73,15 @@ function cloudOptToOpCode(opt) {
74
73
  return null;
75
74
  }
76
75
  }
77
- export async function buildBleTempPwdSyncPayload(pwdList) {
76
+ export async function buildBleTempPwdSyncPayload(runtime, pwdList) {
77
+ const devId = runtime.config.devInfo.devId;
78
78
  const items = [];
79
79
  for (const item of pwdList) {
80
80
  const opCode = cloudOptToOpCode(item.opt);
81
81
  if (opCode === null) {
82
82
  continue;
83
83
  }
84
- const body = await buildItemBody(item, opCode);
84
+ const body = await buildItemBody(devId, item, opCode);
85
85
  items.push(concatBytes(new Uint8Array([opCode]), uintToBytesBE(body.length, 2), body));
86
86
  }
87
87
  const itemsBuf = concatBytes(...items);
@@ -0,0 +1,4 @@
1
+ import type { LockDeviceRuntime } from "../../runtime/LockDeviceRuntime";
2
+ export declare const notifyBleSyncRequest: (runtime: LockDeviceRuntime) => Promise<void>;
3
+ export declare const autoSyncTemp: (runtime: LockDeviceRuntime) => void;
4
+ export declare const handleBleSyncRequestReport: (runtime: LockDeviceRuntime, rawValue: string) => Promise<void>;
@@ -0,0 +1,91 @@
1
+ import { getSyncTempPasswords } from "../../api/temp";
2
+ import dpCodes from "../../config/dp-code";
3
+ import { bleSyncRequestPublish as bleSyncRequestPublishMap, bleSyncRequestReport as bleSyncRequestReportMap, } from "../../config/dp-map/ble-sync";
4
+ import { isUseNearChannelForRuntime } from "../misc/is-use-near-channel-for-runtime";
5
+ import { hasDpForRuntime } from "../dp/has-dp";
6
+ import { publishDpsOnlyWithRuntime } from "../dp/publish-dps";
7
+ import { publishBLETransparentData } from "../../platform/device";
8
+ import { buildBleTempPwdSyncPayload } from "./ble-temp-payload";
9
+ import dpUtils from "@ray-js/tuya-dp-transform";
10
+ import { sdkLog } from "../../utils/sdk-log";
11
+ const NOTIFY_DEBOUNCE_MS = 2000;
12
+ const CMD_REQUEST_SYNC = 0x01;
13
+ const DATA_TYPE_TEMP_PWD = 0x01;
14
+ const isBleSyncEligible = (runtime) => isUseNearChannelForRuntime(runtime) &&
15
+ hasDpForRuntime(runtime, dpCodes.bleSyncRequest);
16
+ export const notifyBleSyncRequest = async (runtime) => {
17
+ if (!isBleSyncEligible(runtime)) {
18
+ return;
19
+ }
20
+ const { count } = await getSyncTempPasswords({
21
+ devId: runtime.config.devInfo.devId,
22
+ isUpt: false,
23
+ });
24
+ await publishDpsOnlyWithRuntime(runtime, {
25
+ [dpCodes.bleSyncRequest]: dpUtils.format({ cmd: count > 0 ? 0x01 : 0x00 }, bleSyncRequestPublishMap),
26
+ });
27
+ sdkLog("info", "tempPassword", "bleSyncNotify", {
28
+ devId: runtime.devId,
29
+ data: { hasPending: count > 0 },
30
+ });
31
+ };
32
+ export const autoSyncTemp = (runtime) => {
33
+ if (!isBleSyncEligible(runtime) || !runtime.sync.tempAutoSyncEnabled) {
34
+ sdkLog("debug", "tempPassword", "autoSyncSkipped", {
35
+ devId: runtime.devId,
36
+ data: {
37
+ nearChannel: isUseNearChannelForRuntime(runtime),
38
+ hasDp: hasDpForRuntime(runtime, dpCodes.bleSyncRequest),
39
+ enabled: runtime.sync.tempAutoSyncEnabled,
40
+ },
41
+ });
42
+ return;
43
+ }
44
+ clearTimeout(runtime.infra.tempSyncNotifyTimer);
45
+ runtime.infra.tempSyncNotifyTimer = setTimeout(() => {
46
+ runtime.infra.tempSyncNotifyTimer = 0;
47
+ notifyBleSyncRequest(runtime).catch((e) => {
48
+ sdkLog("warn", "tempPassword", "bleSyncNotifyFail", {
49
+ devId: runtime.devId,
50
+ error: e,
51
+ });
52
+ });
53
+ }, NOTIFY_DEBOUNCE_MS);
54
+ };
55
+ export const handleBleSyncRequestReport = async (runtime, rawValue) => {
56
+ if (!isBleSyncEligible(runtime) || runtime.sync.tempPayloadSyncing) {
57
+ return;
58
+ }
59
+ const report = dpUtils.parse(rawValue, bleSyncRequestReportMap);
60
+ if (report.cmd !== CMD_REQUEST_SYNC ||
61
+ report.dataType !== DATA_TYPE_TEMP_PWD) {
62
+ return;
63
+ }
64
+ runtime.sync.tempPayloadSyncing = true;
65
+ const startedAt = Date.now();
66
+ try {
67
+ const { count, pwdList } = await getSyncTempPasswords({
68
+ devId: runtime.config.devInfo.devId,
69
+ isUpt: false,
70
+ });
71
+ if (count > 0 && pwdList?.length) {
72
+ const payload = await buildBleTempPwdSyncPayload(runtime, pwdList);
73
+ await publishBLETransparentData(runtime.config.devInfo.devId, payload);
74
+ sdkLog("info", "tempPassword", "bleSyncPayloadSent", {
75
+ devId: runtime.devId,
76
+ duration: Date.now() - startedAt,
77
+ data: { count },
78
+ });
79
+ }
80
+ }
81
+ catch (e) {
82
+ sdkLog("warn", "tempPassword", "bleSyncPayloadFail", {
83
+ devId: runtime.devId,
84
+ duration: Date.now() - startedAt,
85
+ error: e,
86
+ });
87
+ }
88
+ finally {
89
+ runtime.sync.tempPayloadSyncing = false;
90
+ }
91
+ };
@@ -0,0 +1,6 @@
1
+ import type { TempPasswordResult } from "../../../interface";
2
+ import type { LockDeviceRuntime } from "../../../runtime/LockDeviceRuntime";
3
+ import type { CreateCustomParams, RemoveCustomProps, UpdateTempPasswordParams } from "./types";
4
+ export declare const createTempCustomForRuntime: (this: unknown, rt: LockDeviceRuntime, params: CreateCustomParams) => Promise<TempPasswordResult>;
5
+ export declare const updateTempCustomForRuntime: (this: unknown, rt: LockDeviceRuntime, params: UpdateTempPasswordParams) => Promise<boolean>;
6
+ export declare const removeTempCustomForRuntime: (this: unknown, rt: LockDeviceRuntime, params: RemoveCustomProps) => Promise<boolean>;