@ovok/native 1.6.49 → 1.6.51

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 (474) hide show
  1. package/README.md +21 -0
  2. package/lib/commonjs/index.js +18 -7
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/modules/auth/default-translation.js +6 -1
  5. package/lib/commonjs/modules/auth/default-translation.js.map +1 -1
  6. package/lib/commonjs/modules/auth/delete-account-button/components/delete-account-button.js +9 -14
  7. package/lib/commonjs/modules/auth/delete-account-button/components/delete-account-button.js.map +1 -1
  8. package/lib/commonjs/modules/auth/hooks/use-auth-action.js +41 -0
  9. package/lib/commonjs/modules/auth/hooks/use-auth-action.js.map +1 -0
  10. package/lib/commonjs/modules/auth/hooks/use-delete-account.js +27 -0
  11. package/lib/commonjs/modules/auth/hooks/use-delete-account.js.map +1 -0
  12. package/lib/commonjs/modules/auth/hooks/use-session.js +14 -86
  13. package/lib/commonjs/modules/auth/hooks/use-session.js.map +1 -1
  14. package/lib/commonjs/modules/auth/hooks/use-sign-in.js +66 -0
  15. package/lib/commonjs/modules/auth/hooks/use-sign-in.js.map +1 -0
  16. package/lib/commonjs/modules/auth/hooks/use-sign-out.js +15 -0
  17. package/lib/commonjs/modules/auth/hooks/use-sign-out.js.map +1 -0
  18. package/lib/commonjs/modules/auth/hooks/use-social-sign-in.js +92 -0
  19. package/lib/commonjs/modules/auth/hooks/use-social-sign-in.js.map +1 -0
  20. package/lib/commonjs/modules/auth/index.js +55 -0
  21. package/lib/commonjs/modules/auth/index.js.map +1 -1
  22. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js +11 -16
  23. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js.map +1 -1
  24. package/lib/commonjs/modules/auth/profile/components/profile-form-provider.js +5 -3
  25. package/lib/commonjs/modules/auth/profile/components/profile-form-provider.js.map +1 -1
  26. package/lib/commonjs/modules/auth/profile/contexts/profile-form-context.js +1 -1
  27. package/lib/commonjs/modules/auth/profile/contexts/profile-form-context.js.map +1 -1
  28. package/lib/commonjs/modules/auth/profile/hooks/use-profile-form.js +1 -1
  29. package/lib/commonjs/modules/auth/profile/hooks/use-profile-form.js.map +1 -1
  30. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js +6 -4
  31. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  32. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js +2 -4
  33. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  34. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js +6 -4
  35. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  36. package/lib/commonjs/modules/auth/reset-password/contexts/reset-password-form-context.js +1 -1
  37. package/lib/commonjs/modules/auth/reset-password/contexts/reset-password-form-context.js.map +1 -1
  38. package/lib/commonjs/modules/auth/reset-password/hooks/use-reset-password-form.js +1 -1
  39. package/lib/commonjs/modules/auth/reset-password/hooks/use-reset-password-form.js.map +1 -1
  40. package/lib/commonjs/modules/auth/session/logout-session.js +29 -0
  41. package/lib/commonjs/modules/auth/session/logout-session.js.map +1 -0
  42. package/lib/commonjs/modules/auth/session/session-store.js +152 -0
  43. package/lib/commonjs/modules/auth/session/session-store.js.map +1 -0
  44. package/lib/commonjs/modules/auth/sign-in/components/form/login-form-provider.js +25 -41
  45. package/lib/commonjs/modules/auth/sign-in/components/form/login-form-provider.js.map +1 -1
  46. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login-button.js +13 -12
  47. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login-button.js.map +1 -1
  48. package/lib/commonjs/modules/auth/sign-in/components/social-logins/google-login-button.js +4 -4
  49. package/lib/commonjs/modules/auth/sign-in/components/social-logins/google-login-button.js.map +1 -1
  50. package/lib/commonjs/modules/auth/sign-in/contexts/login-form-context.js +1 -1
  51. package/lib/commonjs/modules/auth/sign-in/contexts/login-form-context.js.map +1 -1
  52. package/lib/commonjs/modules/auth/sign-in/hooks/use-login-form.js +1 -1
  53. package/lib/commonjs/modules/auth/sign-in/hooks/use-login-form.js.map +1 -1
  54. package/lib/commonjs/modules/bt-device/components/device-list-provider.js +5 -4
  55. package/lib/commonjs/modules/bt-device/components/device-list-provider.js.map +1 -1
  56. package/lib/commonjs/modules/bt-device/components/hooks/use-device-list.js +1 -1
  57. package/lib/commonjs/modules/bt-device/components/hooks/use-device-list.js.map +1 -1
  58. package/lib/commonjs/modules/bt-device/contexts/device-list-context.js +1 -4
  59. package/lib/commonjs/modules/bt-device/contexts/device-list-context.js.map +1 -1
  60. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +176 -84
  61. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  62. package/lib/commonjs/modules/bt-management/components/bt-provider.js +3 -2
  63. package/lib/commonjs/modules/bt-management/components/bt-provider.js.map +1 -1
  64. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js +146 -14
  65. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -1
  66. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js +17 -11
  67. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js.map +1 -1
  68. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-permission.js +100 -0
  69. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-permission.js.map +1 -0
  70. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-state.js +13 -26
  71. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-state.js.map +1 -1
  72. package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js +148 -0
  73. package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js.map +1 -0
  74. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js +10 -26
  75. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js.map +1 -1
  76. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js +7 -76
  77. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js.map +1 -1
  78. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js +43 -57
  79. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js.map +1 -1
  80. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js +12 -16
  81. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js.map +1 -1
  82. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js +31 -12
  83. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
  84. package/lib/commonjs/modules/bt-management/hooks/use-request-permissions.js +12 -55
  85. package/lib/commonjs/modules/bt-management/hooks/use-request-permissions.js.map +1 -1
  86. package/lib/commonjs/modules/bt-management/hooks/use-scan-control.js +6 -4
  87. package/lib/commonjs/modules/bt-management/hooks/use-scan-control.js.map +1 -1
  88. package/lib/commonjs/modules/bt-management/index.js +133 -11
  89. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  90. package/lib/commonjs/modules/cms/hooks/use-cms-content.js +50 -0
  91. package/lib/commonjs/modules/cms/hooks/use-cms-content.js.map +1 -0
  92. package/lib/commonjs/modules/cms/hooks/use-cms-locale.js +20 -0
  93. package/lib/commonjs/modules/cms/hooks/use-cms-locale.js.map +1 -0
  94. package/lib/commonjs/modules/cms/hooks/use-cms-translations.js +50 -0
  95. package/lib/commonjs/modules/cms/hooks/use-cms-translations.js.map +1 -0
  96. package/lib/commonjs/modules/cms/index.js +39 -0
  97. package/lib/commonjs/modules/cms/index.js.map +1 -0
  98. package/lib/commonjs/modules/cms/merge-cms-translations.js +49 -0
  99. package/lib/commonjs/modules/cms/merge-cms-translations.js.map +1 -0
  100. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +23 -18
  101. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  102. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js +19 -18
  103. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  104. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-utils.js +20 -0
  105. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-utils.js.map +1 -0
  106. package/lib/commonjs/modules/data-sync/contexts/health-authorization-context.js +18 -0
  107. package/lib/commonjs/modules/data-sync/contexts/health-authorization-context.js.map +1 -0
  108. package/lib/commonjs/modules/data-sync/hooks/use-health-import.js +81 -0
  109. package/lib/commonjs/modules/data-sync/hooks/use-health-import.js.map +1 -0
  110. package/lib/commonjs/modules/data-sync/index.js +37 -0
  111. package/lib/commonjs/modules/data-sync/index.js.map +1 -1
  112. package/lib/commonjs/modules/helpers/hooks/use-shallow-stable-value.js +20 -0
  113. package/lib/commonjs/modules/helpers/hooks/use-shallow-stable-value.js.map +1 -0
  114. package/lib/commonjs/modules/language-switcher/components/language-switcher.js +12 -4
  115. package/lib/commonjs/modules/language-switcher/components/language-switcher.js.map +1 -1
  116. package/lib/commonjs/modules/language-switcher/components/option/context/language-option-context.js +1 -1
  117. package/lib/commonjs/modules/language-switcher/components/option/context/language-option-context.js.map +1 -1
  118. package/lib/commonjs/modules/language-switcher/components/option/language-switcher-option.js +5 -4
  119. package/lib/commonjs/modules/language-switcher/components/option/language-switcher-option.js.map +1 -1
  120. package/lib/commonjs/modules/socket/components/socket-provider.js +78 -73
  121. package/lib/commonjs/modules/socket/components/socket-provider.js.map +1 -1
  122. package/lib/commonjs/modules/tab/components/tab-provider.js +12 -1
  123. package/lib/commonjs/modules/tab/components/tab-provider.js.map +1 -1
  124. package/lib/commonjs/modules/tab/contexts/tab-context.js +1 -1
  125. package/lib/commonjs/modules/tab/contexts/tab-context.js.map +1 -1
  126. package/lib/commonjs/modules/tab/hooks/use-tab.js +1 -1
  127. package/lib/commonjs/modules/tab/hooks/use-tab.js.map +1 -1
  128. package/lib/commonjs/modules/ui/components/health-import-card.js +2 -3
  129. package/lib/commonjs/modules/ui/components/health-import-card.js.map +1 -1
  130. package/lib/commonjs/modules/ui/components/pairing-flow.js.map +1 -1
  131. package/lib/module/index.js +1 -0
  132. package/lib/module/index.js.map +1 -1
  133. package/lib/module/modules/auth/default-translation.js +3 -1
  134. package/lib/module/modules/auth/default-translation.js.map +1 -1
  135. package/lib/module/modules/auth/delete-account-button/components/delete-account-button.js +9 -14
  136. package/lib/module/modules/auth/delete-account-button/components/delete-account-button.js.map +1 -1
  137. package/lib/module/modules/auth/hooks/use-auth-action.js +36 -0
  138. package/lib/module/modules/auth/hooks/use-auth-action.js.map +1 -0
  139. package/lib/module/modules/auth/hooks/use-delete-account.js +22 -0
  140. package/lib/module/modules/auth/hooks/use-delete-account.js.map +1 -0
  141. package/lib/module/modules/auth/hooks/use-session.js +17 -88
  142. package/lib/module/modules/auth/hooks/use-session.js.map +1 -1
  143. package/lib/module/modules/auth/hooks/use-sign-in.js +61 -0
  144. package/lib/module/modules/auth/hooks/use-sign-in.js.map +1 -0
  145. package/lib/module/modules/auth/hooks/use-sign-out.js +10 -0
  146. package/lib/module/modules/auth/hooks/use-sign-out.js.map +1 -0
  147. package/lib/module/modules/auth/hooks/use-social-sign-in.js +86 -0
  148. package/lib/module/modules/auth/hooks/use-social-sign-in.js.map +1 -0
  149. package/lib/module/modules/auth/index.js +5 -0
  150. package/lib/module/modules/auth/index.js.map +1 -1
  151. package/lib/module/modules/auth/logout-button/components/logout-button.js +11 -16
  152. package/lib/module/modules/auth/logout-button/components/logout-button.js.map +1 -1
  153. package/lib/module/modules/auth/profile/components/profile-form-provider.js +5 -3
  154. package/lib/module/modules/auth/profile/components/profile-form-provider.js.map +1 -1
  155. package/lib/module/modules/auth/profile/contexts/profile-form-context.js +1 -1
  156. package/lib/module/modules/auth/profile/contexts/profile-form-context.js.map +1 -1
  157. package/lib/module/modules/auth/profile/hooks/use-profile-form.js +1 -1
  158. package/lib/module/modules/auth/profile/hooks/use-profile-form.js.map +1 -1
  159. package/lib/module/modules/auth/register/components/form/register-form-provider.js +6 -4
  160. package/lib/module/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  161. package/lib/module/modules/auth/reset-password/components/form/inputs.js +2 -4
  162. package/lib/module/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  163. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js +6 -4
  164. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  165. package/lib/module/modules/auth/reset-password/contexts/reset-password-form-context.js +1 -1
  166. package/lib/module/modules/auth/reset-password/contexts/reset-password-form-context.js.map +1 -1
  167. package/lib/module/modules/auth/reset-password/hooks/use-reset-password-form.js +1 -1
  168. package/lib/module/modules/auth/reset-password/hooks/use-reset-password-form.js.map +1 -1
  169. package/lib/module/modules/auth/session/logout-session.js +24 -0
  170. package/lib/module/modules/auth/session/logout-session.js.map +1 -0
  171. package/lib/module/modules/auth/session/session-store.js +148 -0
  172. package/lib/module/modules/auth/session/session-store.js.map +1 -0
  173. package/lib/module/modules/auth/sign-in/components/form/login-form-provider.js +25 -41
  174. package/lib/module/modules/auth/sign-in/components/form/login-form-provider.js.map +1 -1
  175. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login-button.js +13 -12
  176. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login-button.js.map +1 -1
  177. package/lib/module/modules/auth/sign-in/components/social-logins/google-login-button.js +4 -4
  178. package/lib/module/modules/auth/sign-in/components/social-logins/google-login-button.js.map +1 -1
  179. package/lib/module/modules/auth/sign-in/contexts/login-form-context.js +1 -1
  180. package/lib/module/modules/auth/sign-in/contexts/login-form-context.js.map +1 -1
  181. package/lib/module/modules/auth/sign-in/hooks/use-login-form.js +1 -1
  182. package/lib/module/modules/auth/sign-in/hooks/use-login-form.js.map +1 -1
  183. package/lib/module/modules/bt-device/components/device-list-provider.js +5 -4
  184. package/lib/module/modules/bt-device/components/device-list-provider.js.map +1 -1
  185. package/lib/module/modules/bt-device/components/hooks/use-device-list.js +1 -1
  186. package/lib/module/modules/bt-device/components/hooks/use-device-list.js.map +1 -1
  187. package/lib/module/modules/bt-device/contexts/device-list-context.js +1 -4
  188. package/lib/module/modules/bt-device/contexts/device-list-context.js.map +1 -1
  189. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +175 -84
  190. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  191. package/lib/module/modules/bt-management/components/bt-provider.js +3 -2
  192. package/lib/module/modules/bt-management/components/bt-provider.js.map +1 -1
  193. package/lib/module/modules/bt-management/hooks/runtime-context.js +144 -13
  194. package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -1
  195. package/lib/module/modules/bt-management/hooks/use-background-sync.js +17 -11
  196. package/lib/module/modules/bt-management/hooks/use-background-sync.js.map +1 -1
  197. package/lib/module/modules/bt-management/hooks/use-bluetooth-permission.js +94 -0
  198. package/lib/module/modules/bt-management/hooks/use-bluetooth-permission.js.map +1 -0
  199. package/lib/module/modules/bt-management/hooks/use-bluetooth-state.js +13 -26
  200. package/lib/module/modules/bt-management/hooks/use-bluetooth-state.js.map +1 -1
  201. package/lib/module/modules/bt-management/hooks/use-bt-device.js +142 -0
  202. package/lib/module/modules/bt-management/hooks/use-bt-device.js.map +1 -0
  203. package/lib/module/modules/bt-management/hooks/use-device-connection.js +11 -26
  204. package/lib/module/modules/bt-management/hooks/use-device-connection.js.map +1 -1
  205. package/lib/module/modules/bt-management/hooks/use-health-import.js +2 -73
  206. package/lib/module/modules/bt-management/hooks/use-health-import.js.map +1 -1
  207. package/lib/module/modules/bt-management/hooks/use-measurements.js +44 -58
  208. package/lib/module/modules/bt-management/hooks/use-measurements.js.map +1 -1
  209. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js +13 -17
  210. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js.map +1 -1
  211. package/lib/module/modules/bt-management/hooks/use-paired-devices.js +31 -12
  212. package/lib/module/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
  213. package/lib/module/modules/bt-management/hooks/use-request-permissions.js +12 -54
  214. package/lib/module/modules/bt-management/hooks/use-request-permissions.js.map +1 -1
  215. package/lib/module/modules/bt-management/hooks/use-scan-control.js +6 -4
  216. package/lib/module/modules/bt-management/hooks/use-scan-control.js.map +1 -1
  217. package/lib/module/modules/bt-management/index.js +8 -1
  218. package/lib/module/modules/bt-management/index.js.map +1 -1
  219. package/lib/module/modules/cms/hooks/use-cms-content.js +44 -0
  220. package/lib/module/modules/cms/hooks/use-cms-content.js.map +1 -0
  221. package/lib/module/modules/cms/hooks/use-cms-locale.js +16 -0
  222. package/lib/module/modules/cms/hooks/use-cms-locale.js.map +1 -0
  223. package/lib/module/modules/cms/hooks/use-cms-translations.js +45 -0
  224. package/lib/module/modules/cms/hooks/use-cms-translations.js.map +1 -0
  225. package/lib/module/modules/cms/index.js +6 -0
  226. package/lib/module/modules/cms/index.js.map +1 -0
  227. package/lib/module/modules/cms/merge-cms-translations.js +46 -0
  228. package/lib/module/modules/cms/merge-cms-translations.js.map +1 -0
  229. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +23 -18
  230. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  231. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js +18 -17
  232. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  233. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-utils.js +16 -0
  234. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-utils.js.map +1 -0
  235. package/lib/module/modules/data-sync/contexts/health-authorization-context.js +13 -0
  236. package/lib/module/modules/data-sync/contexts/health-authorization-context.js.map +1 -0
  237. package/lib/module/modules/data-sync/hooks/use-health-import.js +76 -0
  238. package/lib/module/modules/data-sync/hooks/use-health-import.js.map +1 -0
  239. package/lib/module/modules/data-sync/index.js +2 -0
  240. package/lib/module/modules/data-sync/index.js.map +1 -1
  241. package/lib/module/modules/helpers/hooks/use-shallow-stable-value.js +14 -0
  242. package/lib/module/modules/helpers/hooks/use-shallow-stable-value.js.map +1 -0
  243. package/lib/module/modules/language-switcher/components/language-switcher.js +11 -4
  244. package/lib/module/modules/language-switcher/components/language-switcher.js.map +1 -1
  245. package/lib/module/modules/language-switcher/components/option/context/language-option-context.js +1 -1
  246. package/lib/module/modules/language-switcher/components/option/context/language-option-context.js.map +1 -1
  247. package/lib/module/modules/language-switcher/components/option/language-switcher-option.js +5 -4
  248. package/lib/module/modules/language-switcher/components/option/language-switcher-option.js.map +1 -1
  249. package/lib/module/modules/socket/components/socket-provider.js +78 -73
  250. package/lib/module/modules/socket/components/socket-provider.js.map +1 -1
  251. package/lib/module/modules/tab/components/tab-provider.js +11 -1
  252. package/lib/module/modules/tab/components/tab-provider.js.map +1 -1
  253. package/lib/module/modules/tab/contexts/tab-context.js +1 -1
  254. package/lib/module/modules/tab/contexts/tab-context.js.map +1 -1
  255. package/lib/module/modules/tab/hooks/use-tab.js +1 -1
  256. package/lib/module/modules/tab/hooks/use-tab.js.map +1 -1
  257. package/lib/module/modules/ui/components/health-import-card.js +1 -2
  258. package/lib/module/modules/ui/components/health-import-card.js.map +1 -1
  259. package/lib/module/modules/ui/components/pairing-flow.js.map +1 -1
  260. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  261. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts +53 -1
  263. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/src/modules/auth/delete-account-button/components/delete-account-button.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/src/modules/auth/hooks/use-auth-action.d.ts +13 -0
  266. package/lib/typescript/commonjs/src/modules/auth/hooks/use-auth-action.d.ts.map +1 -0
  267. package/lib/typescript/commonjs/src/modules/auth/hooks/use-delete-account.d.ts +8 -0
  268. package/lib/typescript/commonjs/src/modules/auth/hooks/use-delete-account.d.ts.map +1 -0
  269. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts +6 -4
  270. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/src/modules/auth/hooks/use-sign-in.d.ts +24 -0
  272. package/lib/typescript/commonjs/src/modules/auth/hooks/use-sign-in.d.ts.map +1 -0
  273. package/lib/typescript/commonjs/src/modules/auth/hooks/use-sign-out.d.ts +4 -0
  274. package/lib/typescript/commonjs/src/modules/auth/hooks/use-sign-out.d.ts.map +1 -0
  275. package/lib/typescript/commonjs/src/modules/auth/hooks/use-social-sign-in.d.ts +14 -0
  276. package/lib/typescript/commonjs/src/modules/auth/hooks/use-social-sign-in.d.ts.map +1 -0
  277. package/lib/typescript/commonjs/src/modules/auth/index.d.ts +5 -0
  278. package/lib/typescript/commonjs/src/modules/auth/index.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/src/modules/auth/profile/components/profile-form-provider.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/src/modules/auth/profile/contexts/profile-form-context.d.ts +1 -1
  282. package/lib/typescript/commonjs/src/modules/auth/profile/contexts/profile-form-context.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/src/modules/auth/profile/hooks/use-profile-form.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/inputs.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/src/modules/auth/reset-password/contexts/reset-password-form-context.d.ts +1 -1
  288. package/lib/typescript/commonjs/src/modules/auth/reset-password/contexts/reset-password-form-context.d.ts.map +1 -1
  289. package/lib/typescript/commonjs/src/modules/auth/session/logout-session.d.ts +6 -0
  290. package/lib/typescript/commonjs/src/modules/auth/session/logout-session.d.ts.map +1 -0
  291. package/lib/typescript/commonjs/src/modules/auth/session/session-store.d.ts +21 -0
  292. package/lib/typescript/commonjs/src/modules/auth/session/session-store.d.ts.map +1 -0
  293. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/login-form-provider.d.ts.map +1 -1
  294. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/apple-login-button.d.ts.map +1 -1
  295. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/social-logins/google-login-button.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/src/modules/auth/sign-in/contexts/login-form-context.d.ts +1 -1
  297. package/lib/typescript/commonjs/src/modules/auth/sign-in/contexts/login-form-context.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/src/modules/bt-device/components/device-list-provider.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/src/modules/bt-device/components/hooks/use-device-list.d.ts +1 -5
  300. package/lib/typescript/commonjs/src/modules/bt-device/components/hooks/use-device-list.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/src/modules/bt-device/contexts/device-list-context.d.ts +3 -2
  302. package/lib/typescript/commonjs/src/modules/bt-device/contexts/device-list-context.d.ts.map +1 -1
  303. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts +1 -1
  304. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  305. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider.d.ts +1 -1
  306. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +40 -9
  308. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bluetooth-permission.d.ts +17 -0
  311. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bluetooth-permission.d.ts.map +1 -0
  312. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bluetooth-state.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-device.d.ts +31 -0
  314. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-device.d.ts.map +1 -0
  315. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-device-connection.d.ts +2 -2
  316. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -1
  317. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-health-import.d.ts +2 -15
  318. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -1
  319. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
  320. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
  322. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-request-permissions.d.ts +1 -0
  323. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-request-permissions.d.ts.map +1 -1
  324. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-scan-control.d.ts.map +1 -1
  325. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +6 -1
  326. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-props.d.ts +2 -0
  328. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-props.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/src/modules/cms/hooks/use-cms-content.d.ts +9 -0
  330. package/lib/typescript/commonjs/src/modules/cms/hooks/use-cms-content.d.ts.map +1 -0
  331. package/lib/typescript/commonjs/src/modules/cms/hooks/use-cms-locale.d.ts +7 -0
  332. package/lib/typescript/commonjs/src/modules/cms/hooks/use-cms-locale.d.ts.map +1 -0
  333. package/lib/typescript/commonjs/src/modules/cms/hooks/use-cms-translations.d.ts +10 -0
  334. package/lib/typescript/commonjs/src/modules/cms/hooks/use-cms-translations.d.ts.map +1 -0
  335. package/lib/typescript/commonjs/src/modules/cms/index.d.ts +4 -0
  336. package/lib/typescript/commonjs/src/modules/cms/index.d.ts.map +1 -0
  337. package/lib/typescript/commonjs/src/modules/cms/merge-cms-translations.d.ts +13 -0
  338. package/lib/typescript/commonjs/src/modules/cms/merge-cms-translations.d.ts.map +1 -0
  339. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  340. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-utils.d.ts +4 -0
  343. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-utils.d.ts.map +1 -0
  344. package/lib/typescript/commonjs/src/modules/data-sync/components/data-sync.d.ts +1 -1
  345. package/lib/typescript/commonjs/src/modules/data-sync/contexts/health-authorization-context.d.ts +17 -0
  346. package/lib/typescript/commonjs/src/modules/data-sync/contexts/health-authorization-context.d.ts.map +1 -0
  347. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-health-import.d.ts +17 -0
  348. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-health-import.d.ts.map +1 -0
  349. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +3 -0
  350. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +1 -0
  352. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/src/modules/helpers/hooks/use-shallow-stable-value.d.ts +2 -0
  354. package/lib/typescript/commonjs/src/modules/helpers/hooks/use-shallow-stable-value.d.ts.map +1 -0
  355. package/lib/typescript/commonjs/src/modules/language-switcher/components/language-switcher.d.ts +6 -5
  356. package/lib/typescript/commonjs/src/modules/language-switcher/components/language-switcher.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/src/modules/language-switcher/components/option/context/language-option-context.d.ts +1 -1
  358. package/lib/typescript/commonjs/src/modules/language-switcher/components/option/context/language-option-context.d.ts.map +1 -1
  359. package/lib/typescript/commonjs/src/modules/socket/components/socket-provider.d.ts.map +1 -1
  360. package/lib/typescript/commonjs/src/modules/tab/components/tab-provider.d.ts +2 -1
  361. package/lib/typescript/commonjs/src/modules/tab/components/tab-provider.d.ts.map +1 -1
  362. package/lib/typescript/commonjs/src/modules/tab/contexts/tab-context.d.ts +1 -1
  363. package/lib/typescript/commonjs/src/modules/tab/contexts/tab-context.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/src/modules/ui/components/health-import-card.d.ts +1 -2
  365. package/lib/typescript/commonjs/src/modules/ui/components/health-import-card.d.ts.map +1 -1
  366. package/lib/typescript/commonjs/src/modules/ui/components/pairing-flow.d.ts.map +1 -1
  367. package/lib/typescript/module/src/index.d.ts +1 -0
  368. package/lib/typescript/module/src/index.d.ts.map +1 -1
  369. package/lib/typescript/module/src/modules/auth/default-translation.d.ts +53 -1
  370. package/lib/typescript/module/src/modules/auth/default-translation.d.ts.map +1 -1
  371. package/lib/typescript/module/src/modules/auth/delete-account-button/components/delete-account-button.d.ts.map +1 -1
  372. package/lib/typescript/module/src/modules/auth/hooks/use-auth-action.d.ts +13 -0
  373. package/lib/typescript/module/src/modules/auth/hooks/use-auth-action.d.ts.map +1 -0
  374. package/lib/typescript/module/src/modules/auth/hooks/use-delete-account.d.ts +8 -0
  375. package/lib/typescript/module/src/modules/auth/hooks/use-delete-account.d.ts.map +1 -0
  376. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts +6 -4
  377. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  378. package/lib/typescript/module/src/modules/auth/hooks/use-sign-in.d.ts +24 -0
  379. package/lib/typescript/module/src/modules/auth/hooks/use-sign-in.d.ts.map +1 -0
  380. package/lib/typescript/module/src/modules/auth/hooks/use-sign-out.d.ts +4 -0
  381. package/lib/typescript/module/src/modules/auth/hooks/use-sign-out.d.ts.map +1 -0
  382. package/lib/typescript/module/src/modules/auth/hooks/use-social-sign-in.d.ts +14 -0
  383. package/lib/typescript/module/src/modules/auth/hooks/use-social-sign-in.d.ts.map +1 -0
  384. package/lib/typescript/module/src/modules/auth/index.d.ts +5 -0
  385. package/lib/typescript/module/src/modules/auth/index.d.ts.map +1 -1
  386. package/lib/typescript/module/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  387. package/lib/typescript/module/src/modules/auth/profile/components/profile-form-provider.d.ts.map +1 -1
  388. package/lib/typescript/module/src/modules/auth/profile/contexts/profile-form-context.d.ts +1 -1
  389. package/lib/typescript/module/src/modules/auth/profile/contexts/profile-form-context.d.ts.map +1 -1
  390. package/lib/typescript/module/src/modules/auth/profile/hooks/use-profile-form.d.ts.map +1 -1
  391. package/lib/typescript/module/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  392. package/lib/typescript/module/src/modules/auth/reset-password/components/form/inputs.d.ts.map +1 -1
  393. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  394. package/lib/typescript/module/src/modules/auth/reset-password/contexts/reset-password-form-context.d.ts +1 -1
  395. package/lib/typescript/module/src/modules/auth/reset-password/contexts/reset-password-form-context.d.ts.map +1 -1
  396. package/lib/typescript/module/src/modules/auth/session/logout-session.d.ts +6 -0
  397. package/lib/typescript/module/src/modules/auth/session/logout-session.d.ts.map +1 -0
  398. package/lib/typescript/module/src/modules/auth/session/session-store.d.ts +21 -0
  399. package/lib/typescript/module/src/modules/auth/session/session-store.d.ts.map +1 -0
  400. package/lib/typescript/module/src/modules/auth/sign-in/components/form/login-form-provider.d.ts.map +1 -1
  401. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/apple-login-button.d.ts.map +1 -1
  402. package/lib/typescript/module/src/modules/auth/sign-in/components/social-logins/google-login-button.d.ts.map +1 -1
  403. package/lib/typescript/module/src/modules/auth/sign-in/contexts/login-form-context.d.ts +1 -1
  404. package/lib/typescript/module/src/modules/auth/sign-in/contexts/login-form-context.d.ts.map +1 -1
  405. package/lib/typescript/module/src/modules/bt-device/components/device-list-provider.d.ts.map +1 -1
  406. package/lib/typescript/module/src/modules/bt-device/components/hooks/use-device-list.d.ts +1 -5
  407. package/lib/typescript/module/src/modules/bt-device/components/hooks/use-device-list.d.ts.map +1 -1
  408. package/lib/typescript/module/src/modules/bt-device/contexts/device-list-context.d.ts +3 -2
  409. package/lib/typescript/module/src/modules/bt-device/contexts/device-list-context.d.ts.map +1 -1
  410. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts +1 -1
  411. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  412. package/lib/typescript/module/src/modules/bt-management/components/bt-provider.d.ts +1 -1
  413. package/lib/typescript/module/src/modules/bt-management/components/bt-provider.d.ts.map +1 -1
  414. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +40 -9
  415. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  416. package/lib/typescript/module/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -1
  417. package/lib/typescript/module/src/modules/bt-management/hooks/use-bluetooth-permission.d.ts +17 -0
  418. package/lib/typescript/module/src/modules/bt-management/hooks/use-bluetooth-permission.d.ts.map +1 -0
  419. package/lib/typescript/module/src/modules/bt-management/hooks/use-bluetooth-state.d.ts.map +1 -1
  420. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-device.d.ts +31 -0
  421. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-device.d.ts.map +1 -0
  422. package/lib/typescript/module/src/modules/bt-management/hooks/use-device-connection.d.ts +2 -2
  423. package/lib/typescript/module/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -1
  424. package/lib/typescript/module/src/modules/bt-management/hooks/use-health-import.d.ts +2 -15
  425. package/lib/typescript/module/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -1
  426. package/lib/typescript/module/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
  427. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -1
  428. package/lib/typescript/module/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
  429. package/lib/typescript/module/src/modules/bt-management/hooks/use-request-permissions.d.ts +1 -0
  430. package/lib/typescript/module/src/modules/bt-management/hooks/use-request-permissions.d.ts.map +1 -1
  431. package/lib/typescript/module/src/modules/bt-management/hooks/use-scan-control.d.ts.map +1 -1
  432. package/lib/typescript/module/src/modules/bt-management/index.d.ts +6 -1
  433. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  434. package/lib/typescript/module/src/modules/bt-management/types/btprovider-props.d.ts +2 -0
  435. package/lib/typescript/module/src/modules/bt-management/types/btprovider-props.d.ts.map +1 -1
  436. package/lib/typescript/module/src/modules/cms/hooks/use-cms-content.d.ts +9 -0
  437. package/lib/typescript/module/src/modules/cms/hooks/use-cms-content.d.ts.map +1 -0
  438. package/lib/typescript/module/src/modules/cms/hooks/use-cms-locale.d.ts +7 -0
  439. package/lib/typescript/module/src/modules/cms/hooks/use-cms-locale.d.ts.map +1 -0
  440. package/lib/typescript/module/src/modules/cms/hooks/use-cms-translations.d.ts +10 -0
  441. package/lib/typescript/module/src/modules/cms/hooks/use-cms-translations.d.ts.map +1 -0
  442. package/lib/typescript/module/src/modules/cms/index.d.ts +4 -0
  443. package/lib/typescript/module/src/modules/cms/index.d.ts.map +1 -0
  444. package/lib/typescript/module/src/modules/cms/merge-cms-translations.d.ts +13 -0
  445. package/lib/typescript/module/src/modules/cms/merge-cms-translations.d.ts.map +1 -0
  446. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  447. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  448. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  449. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-utils.d.ts +4 -0
  450. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-utils.d.ts.map +1 -0
  451. package/lib/typescript/module/src/modules/data-sync/components/data-sync.d.ts +1 -1
  452. package/lib/typescript/module/src/modules/data-sync/contexts/health-authorization-context.d.ts +17 -0
  453. package/lib/typescript/module/src/modules/data-sync/contexts/health-authorization-context.d.ts.map +1 -0
  454. package/lib/typescript/module/src/modules/data-sync/hooks/use-health-import.d.ts +17 -0
  455. package/lib/typescript/module/src/modules/data-sync/hooks/use-health-import.d.ts.map +1 -0
  456. package/lib/typescript/module/src/modules/data-sync/index.d.ts +3 -0
  457. package/lib/typescript/module/src/modules/data-sync/index.d.ts.map +1 -1
  458. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +1 -0
  459. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  460. package/lib/typescript/module/src/modules/helpers/hooks/use-shallow-stable-value.d.ts +2 -0
  461. package/lib/typescript/module/src/modules/helpers/hooks/use-shallow-stable-value.d.ts.map +1 -0
  462. package/lib/typescript/module/src/modules/language-switcher/components/language-switcher.d.ts +6 -5
  463. package/lib/typescript/module/src/modules/language-switcher/components/language-switcher.d.ts.map +1 -1
  464. package/lib/typescript/module/src/modules/language-switcher/components/option/context/language-option-context.d.ts +1 -1
  465. package/lib/typescript/module/src/modules/language-switcher/components/option/context/language-option-context.d.ts.map +1 -1
  466. package/lib/typescript/module/src/modules/socket/components/socket-provider.d.ts.map +1 -1
  467. package/lib/typescript/module/src/modules/tab/components/tab-provider.d.ts +2 -1
  468. package/lib/typescript/module/src/modules/tab/components/tab-provider.d.ts.map +1 -1
  469. package/lib/typescript/module/src/modules/tab/contexts/tab-context.d.ts +1 -1
  470. package/lib/typescript/module/src/modules/tab/contexts/tab-context.d.ts.map +1 -1
  471. package/lib/typescript/module/src/modules/ui/components/health-import-card.d.ts +1 -2
  472. package/lib/typescript/module/src/modules/ui/components/health-import-card.d.ts.map +1 -1
  473. package/lib/typescript/module/src/modules/ui/components/pairing-flow.d.ts.map +1 -1
  474. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useBluetoothRuntime","useBluetoothSelector","DeviceSelectionRequiredError","Error","constructor","model","ids","join","name","EMPTY_RESULTS","EMPTY_EVENTS","deviceQueues","WeakMap","serializeForDevice","runtime","deviceId","operation","queues","get","Map","set","previous","Promise","resolve","current","catch","undefined","then","finally","delete","getRawDevice","device","useBTDevice","id","autoConnect","allowRawAccess","selectedId","setSelectedId","useState","matches","snapshot","devices","filter","deviceData","next","length","every","item","index","candidate","selected","find","selectedIdRef","useRef","matchesRef","modelRef","autoConnectedRef","Set","useEffect","has","add","connect","select","useCallback","some","currentMatches","map","disconnect","raw","useMemo","resolveDevice","rawDevice","read","serviceUUID","characteristicUUID","readCharacteristicForService","write","base64Value","withResponse","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","requiresSelection","status","latestResult","results","events"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-bt-device.ts"],"mappings":"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","ignoreList":[]}
@@ -1,34 +1,19 @@
1
1
  "use strict";
2
2
 
3
- import * as React from "react";
4
- import { useBluetoothRuntime } from "./runtime-context.js";
3
+ import { useBluetoothSelector } from "./runtime-context.js";
4
+ const EMPTY_EVENTS = [];
5
5
  export const useDeviceConnection = id => {
6
- const runtime = useBluetoothRuntime();
7
- const [status, setStatus] = React.useState(() => runtime.devices.find(device => device.id === id)?.status);
8
- const [events, setEvents] = React.useState([]);
9
- React.useEffect(() => {
10
- setStatus(runtime.devices.find(device => device.id === id)?.status);
11
- setEvents([]);
12
- }, [id, runtime]);
13
- React.useEffect(() => {
14
- const unsubStatus = runtime.subscribe("status", value => {
15
- if (value.deviceData.id === id) {
16
- setStatus(value.status);
17
- }
18
- });
19
- const unsubEvent = runtime.subscribe("connection", event => {
20
- if (event.deviceData.id === id) {
21
- setEvents(current => [...current, event].slice(-100));
22
- }
23
- });
24
- return () => {
25
- unsubStatus();
26
- unsubEvent();
6
+ const connection = useBluetoothSelector(snapshot => {
7
+ const device = id ? snapshot.devices.find(candidate => candidate.id === id) : undefined;
8
+ const events = device?.events;
9
+ return {
10
+ status: device?.status,
11
+ events: events?.length ? events : EMPTY_EVENTS
27
12
  };
28
- }, [id, runtime]);
13
+ }, (previous, next) => previous.status === next.status && previous.events === next.events);
29
14
  return {
30
- status,
31
- events
15
+ status: connection.status,
16
+ events: connection.events
32
17
  };
33
18
  };
34
19
  //# sourceMappingURL=use-device-connection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useBluetoothRuntime","useDeviceConnection","id","runtime","status","setStatus","useState","devices","find","device","events","setEvents","useEffect","unsubStatus","subscribe","value","deviceData","unsubEvent","event","current","slice"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-device-connection.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAK9B,SAASC,mBAAmB,QAAQ,sBAAmB;AAEvD,OAAO,MAAMC,mBAAmB,GAC9BC,EAAW,IAC6D;EACxE,MAAMC,OAAO,GAAGH,mBAAmB,CAAC,CAAC;EAErC,MAAM,CAACI,MAAM,EAAEC,SAAS,CAAC,GAAGN,KAAK,CAACO,QAAQ,CACxC,MAAMH,OAAO,CAACI,OAAO,CAACC,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACP,EAAE,KAAKA,EAAE,CAAC,EAAEE,MAC5D,CAAC;EAED,MAAM,CAACM,MAAM,EAAEC,SAAS,CAAC,GAAGZ,KAAK,CAACO,QAAQ,CAAmC,EAAE,CAAC;EAEhFP,KAAK,CAACa,SAAS,CAAC,MAAM;IACpBP,SAAS,CAACF,OAAO,CAACI,OAAO,CAACC,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACP,EAAE,KAAKA,EAAE,CAAC,EAAEE,MAAM,CAAC;IACrEO,SAAS,CAAC,EAAE,CAAC;EACf,CAAC,EAAE,CAACT,EAAE,EAAEC,OAAO,CAAC,CAAC;EAEjBJ,KAAK,CAACa,SAAS,CAAC,MAAM;IACpB,MAAMC,WAAW,GAAGV,OAAO,CAACW,SAAS,CACnC,QAAQ,EACPC,KAAK,IAAK;MACT,IAAIA,KAAK,CAACC,UAAU,CAACd,EAAE,KAAKA,EAAE,EAAE;QAACG,SAAS,CAACU,KAAK,CAACX,MAAM,CAAC;MAAC;IAC3D,CACF,CAAC;IAED,MAAMa,UAAU,GAAGd,OAAO,CAACW,SAAS,CAAwB,YAAY,EAAGI,KAAK,IAAK;MACnF,IAAIA,KAAK,CAACF,UAAU,CAACd,EAAE,KAAKA,EAAE,EAAE;QAC9BS,SAAS,CAAEQ,OAAO,IAAK,CAAC,GAAGA,OAAO,EAAED,KAAK,CAAC,CAACE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;MACzD;IACF,CAAC,CAAC;IAEF,OAAO,MAAM;MACXP,WAAW,CAAC,CAAC;MACbI,UAAU,CAAC,CAAC;IACd,CAAC;EACH,CAAC,EAAE,CAACf,EAAE,EAAEC,OAAO,CAAC,CAAC;EAEjB,OAAO;IAAEC,MAAM;IAAEM;EAAO,CAAC;AAC3B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useBluetoothSelector","EMPTY_EVENTS","useDeviceConnection","id","connection","snapshot","device","devices","find","candidate","undefined","events","status","length","previous","next"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-device-connection.ts"],"mappings":";;AAEA,SAEEA,oBAAoB,QACf,sBAAmB;AAE1B,MAAMC,YAA+C,GAAG,EAAE;AAE1D,OAAO,MAAMC,mBAAmB,GAC9BC,EAAW,IAC8D;EACzE,MAAMC,UAAU,GAAGJ,oBAAoB,CACpCK,QAAQ,IAAK;IACZ,MAAMC,MAAM,GAAGH,EAAE,GACbE,QAAQ,CAACE,OAAO,CAACC,IAAI,CAAEC,SAAS,IAAKA,SAAS,CAACN,EAAE,KAAKA,EAAE,CAAC,GACzDO,SAAS;IAEb,MAAMC,MAAM,GAAGL,MAAM,EAAEK,MAAM;IAE7B,OAAO;MACLC,MAAM,EAAEN,MAAM,EAAEM,MAAM;MACtBD,MAAM,EAAEA,MAAM,EAAEE,MAAM,GAAGF,MAAM,GAAGV;IACpC,CAAC;EACH,CAAC,EACD,CAACa,QAAQ,EAAEC,IAAI,KACbD,QAAQ,CAACF,MAAM,KAAKG,IAAI,CAACH,MAAM,IAAIE,QAAQ,CAACH,MAAM,KAAKI,IAAI,CAACJ,MAChE,CAAC;EAED,OAAO;IACLC,MAAM,EAAER,UAAU,CAACQ,MAAM;IACzBD,MAAM,EAAEP,UAAU,CAACO;EACrB,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,76 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import * as React from "react";
4
- export const useHealthImport = ({
5
- types,
6
- background = false,
7
- adapter
8
- }) => {
9
- const [enabled, setEnabled] = React.useState(false);
10
- const [statusByType, setStatusByType] = React.useState({});
11
- const [error, setError] = React.useState();
12
- const typesKey = React.useMemo(() => types.join("\u0000"), [types]);
13
- const configRef = React.useRef({
14
- adapter,
15
- types,
16
- background
17
- });
18
- configRef.current = {
19
- adapter,
20
- types,
21
- background
22
- };
23
- const refresh = React.useCallback(async () => {
24
- void typesKey;
25
- const {
26
- adapter: currentAdapter,
27
- types: currentTypes
28
- } = configRef.current;
29
- const entries = await Promise.allSettled(currentTypes.map(async type => [type, await currentAdapter.getStatus(type)]));
30
- const rejected = entries.find(entry => entry.status === "rejected");
31
- setStatusByType(current => {
32
- const next = {
33
- ...current
34
- };
35
- entries.forEach(entry => {
36
- if (entry.status === "fulfilled") {
37
- next[entry.value[0]] = entry.value[1];
38
- }
39
- });
40
- return next;
41
- });
42
- setEnabled(currentTypes.length > 0 && entries.every(entry => entry.status === "fulfilled" && entry.value[1] === "authorized"));
43
- setError(rejected ? rejected.reason instanceof Error ? rejected.reason : new Error(String(rejected.reason)) : undefined);
44
- }, [typesKey]);
45
- React.useEffect(() => {
46
- void refresh();
47
- }, [refresh]);
48
- const setEnabledForTypes = React.useCallback(async next => {
49
- const {
50
- adapter: currentAdapter,
51
- types: currentTypes,
52
- background: currentBackground
53
- } = configRef.current;
54
- setError(undefined);
55
- try {
56
- if (next) {
57
- await currentAdapter.request(currentTypes, currentBackground);
58
- await refresh();
59
- }
60
- setEnabled(next);
61
- } catch (cause) {
62
- const nextError = cause instanceof Error ? cause : new Error(String(cause));
63
- setError(nextError);
64
- throw nextError;
65
- }
66
- }, [refresh]);
67
- const notShared = types.filter(type => statusByType[type] === "refused");
68
- return {
69
- enabled,
70
- setEnabled: setEnabledForTypes,
71
- statusByType: statusByType,
72
- notShared,
73
- error
74
- };
75
- };
3
+ /** @deprecated Import useHealthImport from the data-sync module instead. */
4
+ export { useHealthImport } from "../../data-sync/hooks/use-health-import.js";
76
5
  //# sourceMappingURL=use-health-import.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useHealthImport","types","background","adapter","enabled","setEnabled","useState","statusByType","setStatusByType","error","setError","typesKey","useMemo","join","configRef","useRef","current","refresh","useCallback","currentAdapter","currentTypes","entries","Promise","allSettled","map","type","getStatus","rejected","find","entry","status","next","forEach","value","length","every","reason","Error","String","undefined","useEffect","setEnabledForTypes","currentBackground","request","cause","nextError","notShared","filter"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-health-import.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useHealthImport"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-health-import.ts"],"mappings":";;AAAA;AACA,SACEA,eAAe,QAEV,4CAAyC","ignoreList":[]}
@@ -1,73 +1,59 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from "react";
4
- import { useBluetoothRuntime } from "./runtime-context.js";
4
+ import { useBluetoothRuntime, useBluetoothSelector } from "./runtime-context.js";
5
+ const sameResults = (previous, next) => previous.length === next.length && previous.every((result, index) => result === next[index]);
6
+ const getMeasurementType = result => String(result.data.measurementTypeKey);
7
+ const applyResultPolicy = (results, policy, getConnectionId) => {
8
+ if (policy === "all") {
9
+ return [...results];
10
+ }
11
+ const seen = new Set();
12
+ return results.filter(result => {
13
+ const type = getMeasurementType(result);
14
+ const connectionId = getConnectionId(result);
15
+ if (policy === "first-reading-per-kind-per-connection") {
16
+ const key = `${result.deviceData.id}:${connectionId}:${type}`;
17
+ if (seen.has(key)) {
18
+ return false;
19
+ }
20
+ seen.add(key);
21
+ return true;
22
+ }
23
+ const temporal = result.data;
24
+ const end = temporal.end instanceof Date ? temporal.end : undefined;
25
+ if (end && end.getTime() > Date.now()) {
26
+ return false;
27
+ }
28
+ const day = temporal.end ?? temporal.start ?? temporal.recordedAt;
29
+ if (!(day instanceof Date)) {
30
+ return true;
31
+ }
32
+ const key = `${result.deviceData.id}:${connectionId}:${type}:${day.toISOString().slice(0, 10)}`;
33
+ if (seen.has(key)) {
34
+ return false;
35
+ }
36
+ seen.add(key);
37
+ return true;
38
+ });
39
+ };
5
40
  export const useMeasurements = (onResult, {
6
41
  policy = "all",
7
42
  maxResults = 100
8
43
  } = {}) => {
9
44
  const runtime = useBluetoothRuntime();
10
- const [measurements, setMeasurements] = React.useState([]);
11
- const seen = React.useRef(new Set());
12
- const seenMeasurementKinds = React.useRef(new Set());
13
- const seenDailyTotals = React.useRef(new Set());
45
+ const results = useBluetoothSelector(snapshot => snapshot.devices.flatMap(device => device.results ?? []), sameResults);
14
46
  const onResultRef = React.useRef(onResult);
15
47
  onResultRef.current = onResult;
16
- const acceptsResult = React.useCallback(result => {
17
- const measurementTypeKey = String(result.data.measurementTypeKey);
18
- if (policy === "first-reading-per-kind-per-connection") {
19
- if (seenMeasurementKinds.current.has(measurementTypeKey)) {
20
- return false;
21
- }
22
- seenMeasurementKinds.current.add(measurementTypeKey);
23
- }
24
- if (policy === "daily-totals-only") {
25
- const temporal = result.data;
26
- const end = temporal.end instanceof Date ? temporal.end : undefined;
27
- if (end && end.getTime() > Date.now()) {
28
- return false;
29
- }
30
- const day = temporal.end ?? temporal.start ?? temporal.recordedAt;
31
- if (day instanceof Date) {
32
- const key = `${measurementTypeKey}:${day.toISOString().slice(0, 10)}`;
33
- if (seenDailyTotals.current.has(key)) {
34
- return false;
35
- }
36
- seenDailyTotals.current.add(key);
37
- }
38
- }
39
- return true;
40
- }, [policy]);
41
- React.useEffect(() => {
42
- return runtime.subscribe("result", result => {
43
- if (!acceptsResult(result)) {
44
- return;
45
- }
46
- if (seen.current.has(result.id)) {
47
- return;
48
- }
49
- seen.current.add(result.id);
50
- setMeasurements(current => [...current, result].slice(-maxResults));
51
- onResultRef.current?.(result);
52
- });
53
- }, [acceptsResult, maxResults, runtime]);
54
- React.useEffect(() => {
55
- const unsubscribe = runtime.subscribe("connection", event => {
56
- if (event.kind === "connected" || event.kind === "bonded") {
57
- seenMeasurementKinds.current.clear();
58
- seenDailyTotals.current.clear();
59
- }
60
- });
61
- return unsubscribe;
62
- }, [runtime]);
48
+ const measurements = React.useMemo(() => {
49
+ const accepted = applyResultPolicy(results, policy, runtime.getResultConnectionId);
50
+ return maxResults > 0 ? accepted.slice(-maxResults) : [];
51
+ }, [maxResults, policy, results, runtime]);
52
+ React.useEffect(() => runtime.subscribe("result", result => onResultRef.current?.(result)), [runtime]);
53
+ const clear = React.useCallback(() => runtime.clearResults(), [runtime]);
63
54
  return {
64
55
  measurements,
65
- clear: () => {
66
- seen.current.clear();
67
- seenMeasurementKinds.current.clear();
68
- seenDailyTotals.current.clear();
69
- setMeasurements([]);
70
- }
56
+ clear
71
57
  };
72
58
  };
73
59
  //# sourceMappingURL=use-measurements.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useBluetoothRuntime","useMeasurements","onResult","policy","maxResults","runtime","measurements","setMeasurements","useState","seen","useRef","Set","seenMeasurementKinds","seenDailyTotals","onResultRef","current","acceptsResult","useCallback","result","measurementTypeKey","String","data","has","add","temporal","end","Date","undefined","getTime","now","day","start","recordedAt","key","toISOString","slice","useEffect","subscribe","id","unsubscribe","event","kind","clear"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-measurements.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B,SAGEC,mBAAmB,QACd,sBAAmB;AAO1B,OAAO,MAAMC,eAAe,GAAGA,CAC7BC,QAA0C,EAC1C;EAAEC,MAAM,GAAG,KAAK;EAAEC,UAAU,GAAG;AAA4B,CAAC,GAAG,CAAC,CAAC,KACC;EAClE,MAAMC,OAAO,GAAGL,mBAAmB,CAAC,CAAC;EACrC,MAAM,CAACM,YAAY,EAAEC,eAAe,CAAC,GAAGR,KAAK,CAACS,QAAQ,CAA2B,EAAE,CAAC;EACpF,MAAMC,IAAI,GAAGV,KAAK,CAACW,MAAM,CAAC,IAAIC,GAAG,CAAS,CAAC,CAAC;EAC5C,MAAMC,oBAAoB,GAAGb,KAAK,CAACW,MAAM,CAAC,IAAIC,GAAG,CAAS,CAAC,CAAC;EAC5D,MAAME,eAAe,GAAGd,KAAK,CAACW,MAAM,CAAC,IAAIC,GAAG,CAAS,CAAC,CAAC;EACvD,MAAMG,WAAW,GAAGf,KAAK,CAACW,MAAM,CAACR,QAAQ,CAAC;EAE1CY,WAAW,CAACC,OAAO,GAAGb,QAAQ;EAE9B,MAAMc,aAAa,GAAGjB,KAAK,CAACkB,WAAW,CAAEC,MAAqB,IAAc;IAC1E,MAAMC,kBAAkB,GAAGC,MAAM,CAACF,MAAM,CAACG,IAAI,CAACF,kBAAkB,CAAC;IAEjE,IAAIhB,MAAM,KAAK,uCAAuC,EAAE;MACtD,IAAIS,oBAAoB,CAACG,OAAO,CAACO,GAAG,CAACH,kBAAkB,CAAC,EAAE;QACxD,OAAO,KAAK;MACd;MAEAP,oBAAoB,CAACG,OAAO,CAACQ,GAAG,CAACJ,kBAAkB,CAAC;IACtD;IAEA,IAAIhB,MAAM,KAAK,mBAAmB,EAAE;MAClC,MAAMqB,QAAQ,GAAGN,MAAM,CAACG,IAIvB;MAED,MAAMI,GAAG,GAAGD,QAAQ,CAACC,GAAG,YAAYC,IAAI,GAAGF,QAAQ,CAACC,GAAG,GAAGE,SAAS;MAEnE,IAAIF,GAAG,IAAIA,GAAG,CAACG,OAAO,CAAC,CAAC,GAAGF,IAAI,CAACG,GAAG,CAAC,CAAC,EAAE;QACrC,OAAO,KAAK;MACd;MAEA,MAAMC,GAAG,GAAGN,QAAQ,CAACC,GAAG,IAAID,QAAQ,CAACO,KAAK,IAAIP,QAAQ,CAACQ,UAAU;MAEjE,IAAIF,GAAG,YAAYJ,IAAI,EAAE;QACvB,MAAMO,GAAG,GAAG,GAAGd,kBAAkB,IAAIW,GAAG,CAACI,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QAErE,IAAItB,eAAe,CAACE,OAAO,CAACO,GAAG,CAACW,GAAG,CAAC,EAAE;UACpC,OAAO,KAAK;QACd;QAEApB,eAAe,CAACE,OAAO,CAACQ,GAAG,CAACU,GAAG,CAAC;MAClC;IACF;IAEA,OAAO,IAAI;EACb,CAAC,EAAE,CAAC9B,MAAM,CAAC,CAAC;EAEZJ,KAAK,CAACqC,SAAS,CAAC,MAAM;IACpB,OAAO/B,OAAO,CAACgC,SAAS,CAAgB,QAAQ,EAAGnB,MAAM,IAAK;MAC5D,IAAI,CAACF,aAAa,CAACE,MAAM,CAAC,EAAE;QAAC;MAAO;MACpC,IAAIT,IAAI,CAACM,OAAO,CAACO,GAAG,CAACJ,MAAM,CAACoB,EAAE,CAAC,EAAE;QAAC;MAAO;MACzC7B,IAAI,CAACM,OAAO,CAACQ,GAAG,CAACL,MAAM,CAACoB,EAAE,CAAC;MAC3B/B,eAAe,CAAEQ,OAAO,IAAK,CAAC,GAAGA,OAAO,EAAEG,MAAM,CAAC,CAACiB,KAAK,CAAC,CAAC/B,UAAU,CAAC,CAAC;MACrEU,WAAW,CAACC,OAAO,GAAGG,MAAM,CAAC;IAC/B,CAAC,CAAC;EACJ,CAAC,EAAE,CAACF,aAAa,EAAEZ,UAAU,EAAEC,OAAO,CAAC,CAAC;EAExCN,KAAK,CAACqC,SAAS,CAAC,MAAM;IACpB,MAAMG,WAAW,GAAGlC,OAAO,CAACgC,SAAS,CAAyB,YAAY,EAAGG,KAAK,IAAK;MACrF,IAAIA,KAAK,CAACC,IAAI,KAAK,WAAW,IAAID,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;QACzD7B,oBAAoB,CAACG,OAAO,CAAC2B,KAAK,CAAC,CAAC;QACpC7B,eAAe,CAACE,OAAO,CAAC2B,KAAK,CAAC,CAAC;MACjC;IACF,CAAC,CAAC;IAEF,OAAOH,WAAW;EACpB,CAAC,EAAE,CAAClC,OAAO,CAAC,CAAC;EAEb,OAAO;IACLC,YAAY;IACZoC,KAAK,EAAEA,CAAA,KAAM;MACXjC,IAAI,CAACM,OAAO,CAAC2B,KAAK,CAAC,CAAC;MACpB9B,oBAAoB,CAACG,OAAO,CAAC2B,KAAK,CAAC,CAAC;MACpC7B,eAAe,CAACE,OAAO,CAAC2B,KAAK,CAAC,CAAC;MAC/BnC,eAAe,CAAC,EAAE,CAAC;IACrB;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useBluetoothRuntime","useBluetoothSelector","sameResults","previous","next","length","every","result","index","getMeasurementType","String","data","measurementTypeKey","applyResultPolicy","results","policy","getConnectionId","seen","Set","filter","type","connectionId","key","deviceData","id","has","add","temporal","end","Date","undefined","getTime","now","day","start","recordedAt","toISOString","slice","useMeasurements","onResult","maxResults","runtime","snapshot","devices","flatMap","device","onResultRef","useRef","current","measurements","useMemo","accepted","getResultConnectionId","useEffect","subscribe","clear","useCallback","clearResults"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-measurements.ts"],"mappings":"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","ignoreList":[]}
@@ -1,27 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from "react";
4
- import { useBluetoothRuntime } from "./runtime-context.js";
4
+ import { useBluetoothRuntime, useBluetoothSelector } from "./runtime-context.js";
5
5
  export const useNearbyDevices = () => {
6
6
  const runtime = useBluetoothRuntime();
7
- const [, redraw] = React.useReducer(value => value + 1, 0);
8
- React.useEffect(() => {
9
- const unsubscribeFound = runtime.subscribe("deviceFound", redraw);
10
- const unsubscribeStatus = runtime.subscribe("status", redraw);
11
- return () => {
12
- unsubscribeFound();
13
- unsubscribeStatus();
14
- };
7
+ const devices = useBluetoothSelector(snapshot => snapshot.devices, (previous, next) => previous.length === next.length && previous.every((item, index) => {
8
+ const candidate = next[index];
9
+ return candidate?.id === item.id && candidate.deviceData === item.deviceData && candidate.status === item.status && candidate.device === item.device;
10
+ }));
11
+ const pair = React.useCallback(async id => {
12
+ const device = runtime.devices.find(item => item.id === id);
13
+ if (device) {
14
+ await device.device.connect();
15
+ }
16
+ return device;
15
17
  }, [runtime]);
16
18
  return {
17
- devices: runtime.devices,
18
- pair: async id => {
19
- const device = runtime.devices.find(item => item.id === id);
20
- if (device) {
21
- await device.device.connect();
22
- }
23
- return device;
24
- }
19
+ devices,
20
+ pair
25
21
  };
26
22
  };
27
23
  //# sourceMappingURL=use-nearby-devices.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useBluetoothRuntime","useNearbyDevices","runtime","redraw","useReducer","value","useEffect","unsubscribeFound","subscribe","unsubscribeStatus","devices","pair","id","device","find","item","connect"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-nearby-devices.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B,SAAwBC,mBAAmB,QAAQ,sBAAmB;AAEtE,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAG3B;EACH,MAAMC,OAAO,GAAGF,mBAAmB,CAAC,CAAC;EACrC,MAAM,GAAGG,MAAM,CAAC,GAAGJ,KAAK,CAACK,UAAU,CAAEC,KAAK,IAAKA,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;EAE5DN,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,MAAMC,gBAAgB,GAAGL,OAAO,CAACM,SAAS,CAAC,aAAa,EAAEL,MAAM,CAAC;IACjE,MAAMM,iBAAiB,GAAGP,OAAO,CAACM,SAAS,CAAC,QAAQ,EAAEL,MAAM,CAAC;IAE7D,OAAO,MAAM;MACXI,gBAAgB,CAAC,CAAC;MAClBE,iBAAiB,CAAC,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CAACP,OAAO,CAAC,CAAC;EAEb,OAAO;IACLQ,OAAO,EAAER,OAAO,CAACQ,OAAO;IACxBC,IAAI,EAAE,MAAOC,EAAE,IAAK;MAClB,MAAMC,MAAM,GAAGX,OAAO,CAACQ,OAAO,CAACI,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACH,EAAE,KAAKA,EAAE,CAAC;MAE7D,IAAIC,MAAM,EAAE;QAAC,MAAMA,MAAM,CAACA,MAAM,CAACG,OAAO,CAAC,CAAC;MAAC;MAE3C,OAAOH,MAAM;IACf;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useBluetoothRuntime","useBluetoothSelector","useNearbyDevices","runtime","devices","snapshot","previous","next","length","every","item","index","candidate","id","deviceData","status","device","pair","useCallback","find","connect"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-nearby-devices.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B,SAEEC,mBAAmB,EACnBC,oBAAoB,QACf,sBAAmB;AAE1B,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAG3B;EACH,MAAMC,OAAO,GAAGH,mBAAmB,CAAC,CAAC;EAErC,MAAMI,OAAO,GAAGH,oBAAoB,CACjCI,QAAQ,IAAKA,QAAQ,CAACD,OAAO,EAC9B,CAACE,QAAQ,EAAEC,IAAI,KAAKD,QAAQ,CAACE,MAAM,KAAKD,IAAI,CAACC,MAAM,IAAIF,QAAQ,CAACG,KAAK,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;IACrF,MAAMC,SAAS,GAAGL,IAAI,CAACI,KAAK,CAAC;IAE7B,OAAOC,SAAS,EAAEC,EAAE,KAAKH,IAAI,CAACG,EAAE,IAC9BD,SAAS,CAACE,UAAU,KAAKJ,IAAI,CAACI,UAAU,IACxCF,SAAS,CAACG,MAAM,KAAKL,IAAI,CAACK,MAAM,IAChCH,SAAS,CAACI,MAAM,KAAKN,IAAI,CAACM,MAAM;EACpC,CAAC,CACH,CAAC;EAED,MAAMC,IAAI,GAAGlB,KAAK,CAACmB,WAAW,CAAC,MAAOL,EAAU,IAAK;IACnD,MAAMG,MAAM,GAAGb,OAAO,CAACC,OAAO,CAACe,IAAI,CAAET,IAAI,IAAKA,IAAI,CAACG,EAAE,KAAKA,EAAE,CAAC;IAE7D,IAAIG,MAAM,EAAE;MACV,MAAMA,MAAM,CAACA,MAAM,CAACI,OAAO,CAAC,CAAC;IAC/B;IAEA,OAAOJ,MAAM;EACf,CAAC,EAAE,CAACb,OAAO,CAAC,CAAC;EAEb,OAAO;IACLC,OAAO;IACPa;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -12,12 +12,17 @@ export const usePairedDevices = ({
12
12
  const runtime = useBluetoothRuntime();
13
13
  const [paired, setPaired] = React.useState(() => runtime.getPairedDeviceIds(storageKey) ?? []);
14
14
  const pairedRef = React.useRef(paired);
15
+ const autoConnectedRef = React.useRef(new Set());
16
+ const storageRef = React.useRef(storage);
17
+ const autoPairRef = React.useRef(autoPair);
18
+ storageRef.current = storage;
19
+ autoPairRef.current = autoPair;
15
20
  const save = React.useCallback(async next => {
16
21
  pairedRef.current = next;
17
22
  setPaired(next);
18
23
  runtime.setPairedDeviceIds(storageKey, next);
19
- await storage.setItem(storageKey, JSON.stringify(next));
20
- }, [runtime, storage, storageKey]);
24
+ await storageRef.current.setItem(storageKey, JSON.stringify(next));
25
+ }, [runtime, storageKey]);
21
26
  React.useEffect(() => runtime.subscribe("pairedDevices", event => {
22
27
  if (event.storageKey !== storageKey) {
23
28
  return;
@@ -40,22 +45,36 @@ export const usePairedDevices = ({
40
45
  setPaired(next);
41
46
  });
42
47
  }, [runtime, storage, storageKey]);
48
+ const connectIfPaired = React.useCallback(device => {
49
+ if (!autoPairRef.current || !pairedRef.current.includes(device.id) || autoConnectedRef.current.has(device.id)) {
50
+ return;
51
+ }
52
+ autoConnectedRef.current.add(device.id);
53
+ void device.device.connect().catch(() => {
54
+ autoConnectedRef.current.delete(device.id);
55
+ });
56
+ }, []);
43
57
  React.useEffect(() => {
44
58
  if (!autoPair) {
59
+ autoConnectedRef.current.clear();
45
60
  return;
46
61
  }
47
- runtime.devices.filter(device => paired.includes(device.id)).forEach(device => void device.device.connect());
48
- }, [autoPair, paired, runtime, runtime.devices]);
62
+ runtime.devices.forEach(connectIfPaired);
63
+ return runtime.subscribe("deviceFound", connectIfPaired);
64
+ }, [autoPair, connectIfPaired, paired, runtime]);
65
+ const pair = React.useCallback(device => save([...new Set([...pairedRef.current, device.id])]), [save]);
66
+ const forget = React.useCallback(async id => {
67
+ if (!runtime.manager) {
68
+ throw new Error("Bluetooth manager is not ready; try forgetting the device again.");
69
+ }
70
+ await runtime.manager.forget(id);
71
+ autoConnectedRef.current.delete(id);
72
+ await save(pairedRef.current.filter(candidate => candidate !== id));
73
+ }, [runtime, save]);
49
74
  return {
50
75
  paired,
51
- pair: device => save([...new Set([...pairedRef.current, device.id])]),
52
- forget: async id => {
53
- if (!runtime.manager) {
54
- throw new Error("Bluetooth manager is not ready; try forgetting the device again.");
55
- }
56
- await runtime.manager.forget(id);
57
- await save(pairedRef.current.filter(candidate => candidate !== id));
58
- }
76
+ pair,
77
+ forget
59
78
  };
60
79
  };
61
80
  //# sourceMappingURL=use-paired-devices.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useBluetoothRuntime","usePairedDevices","storage","storageKey","autoPair","runtime","paired","setPaired","useState","getPairedDeviceIds","pairedRef","useRef","save","useCallback","next","current","setPairedDeviceIds","setItem","JSON","stringify","useEffect","subscribe","event","loadPairedDeviceIds","value","getItem","parsed","parse","Array","isArray","filter","id","then","devices","device","includes","forEach","connect","pair","Set","forget","manager","Error","candidate"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-paired-devices.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useBluetoothRuntime","usePairedDevices","storage","storageKey","autoPair","runtime","paired","setPaired","useState","getPairedDeviceIds","pairedRef","useRef","autoConnectedRef","Set","storageRef","autoPairRef","current","save","useCallback","next","setPairedDeviceIds","setItem","JSON","stringify","useEffect","subscribe","event","loadPairedDeviceIds","value","getItem","parsed","parse","Array","isArray","filter","id","then","connectIfPaired","device","includes","has","add","connect","catch","delete","clear","devices","forEach","pair","forget","manager","Error","candidate"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-paired-devices.ts"],"mappings":";;AAAA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAAwBC,mBAAmB,QAAQ,sBAAmB;AAatE,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC,OAAO;EACPC,UAAU,GAAG,6BAA6B;EAC1CC,QAAQ,GAAG;AACY,CAAC,KAIrB;EACH,MAAMC,OAAO,GAAGL,mBAAmB,CAAC,CAAC;EAErC,MAAM,CAACM,MAAM,EAAEC,SAAS,CAAC,GAAGR,KAAK,CAACS,QAAQ,CACxC,MAAMH,OAAO,CAACI,kBAAkB,CAACN,UAAU,CAAC,IAAI,EAClD,CAAC;EAED,MAAMO,SAAS,GAAGX,KAAK,CAACY,MAAM,CAAoBL,MAAM,CAAC;EACzD,MAAMM,gBAAgB,GAAGb,KAAK,CAACY,MAAM,CAAC,IAAIE,GAAG,CAAS,CAAC,CAAC;EACxD,MAAMC,UAAU,GAAGf,KAAK,CAACY,MAAM,CAACT,OAAO,CAAC;EACxC,MAAMa,WAAW,GAAGhB,KAAK,CAACY,MAAM,CAACP,QAAQ,CAAC;EAE1CU,UAAU,CAACE,OAAO,GAAGd,OAAO;EAC5Ba,WAAW,CAACC,OAAO,GAAGZ,QAAQ;EAE9B,MAAMa,IAAI,GAAGlB,KAAK,CAACmB,WAAW,CAAC,MAAOC,IAAuB,IAAK;IAChET,SAAS,CAACM,OAAO,GAAGG,IAAI;IACxBZ,SAAS,CAACY,IAAI,CAAC;IACfd,OAAO,CAACe,kBAAkB,CAACjB,UAAU,EAAEgB,IAAI,CAAC;IAC5C,MAAML,UAAU,CAACE,OAAO,CAACK,OAAO,CAAClB,UAAU,EAAEmB,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC,CAAC;EACpE,CAAC,EAAE,CAACd,OAAO,EAAEF,UAAU,CAAC,CAAC;EAEzBJ,KAAK,CAACyB,SAAS,CAAC,MAAMnB,OAAO,CAACoB,SAAS,CACrC,eAAe,EACdC,KAAK,IAAK;IACT,IAAIA,KAAK,CAACvB,UAAU,KAAKA,UAAU,EAAE;MACnC;IACF;IAEA,MAAMgB,IAAI,GAAGd,OAAO,CAACI,kBAAkB,CAACN,UAAU,CAAC,IAAI,EAAE;IAEzDO,SAAS,CAACM,OAAO,GAAGG,IAAI;IACxBZ,SAAS,CAACY,IAAI,CAAC;EACjB,CACF,CAAC,EAAE,CAACd,OAAO,EAAEF,UAAU,CAAC,CAAC;EAEzBJ,KAAK,CAACyB,SAAS,CAAC,MAAM;IACpB,KAAKnB,OAAO,CAACsB,mBAAmB,CAACxB,UAAU,EAAE,YAAY;MACvD,MAAMyB,KAAK,GAAG,MAAM1B,OAAO,CAAC2B,OAAO,CAAC1B,UAAU,CAAC;MAE/C,IAAI;QACF,MAAM2B,MAAe,GAAGF,KAAK,GAAGN,IAAI,CAACS,KAAK,CAACH,KAAK,CAAC,GAAG,EAAE;QAEtD,OAAOI,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GACxBA,MAAM,CAACI,MAAM,CAAEC,EAAE,IAAmB,OAAOA,EAAE,KAAK,QAAQ,CAAC,GAC3D,EAAE;MACR,CAAC,CAAC,MAAM;QACN,OAAO,EAAE;MACX;IACF,CAAC,CAAC,CAACC,IAAI,CAAEjB,IAAI,IAAK;MAChBT,SAAS,CAACM,OAAO,GAAGG,IAAI;MACxBZ,SAAS,CAACY,IAAI,CAAC;IACjB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACd,OAAO,EAAEH,OAAO,EAAEC,UAAU,CAAC,CAAC;EAElC,MAAMkC,eAAe,GAAGtC,KAAK,CAACmB,WAAW,CAAEoB,MAAqB,IAAK;IACnE,IACE,CAACvB,WAAW,CAACC,OAAO,IACpB,CAACN,SAAS,CAACM,OAAO,CAACuB,QAAQ,CAACD,MAAM,CAACH,EAAE,CAAC,IACtCvB,gBAAgB,CAACI,OAAO,CAACwB,GAAG,CAACF,MAAM,CAACH,EAAE,CAAC,EACvC;MACA;IACF;IAEAvB,gBAAgB,CAACI,OAAO,CAACyB,GAAG,CAACH,MAAM,CAACH,EAAE,CAAC;IACvC,KAAKG,MAAM,CAACA,MAAM,CAACI,OAAO,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM;MACvC/B,gBAAgB,CAACI,OAAO,CAAC4B,MAAM,CAACN,MAAM,CAACH,EAAE,CAAC;IAC5C,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAENpC,KAAK,CAACyB,SAAS,CAAC,MAAM;IACpB,IAAI,CAACpB,QAAQ,EAAE;MACbQ,gBAAgB,CAACI,OAAO,CAAC6B,KAAK,CAAC,CAAC;MAEhC;IACF;IAEAxC,OAAO,CAACyC,OAAO,CAACC,OAAO,CAACV,eAAe,CAAC;IAExC,OAAOhC,OAAO,CAACoB,SAAS,CAAC,aAAa,EAAEY,eAAe,CAAC;EAC1D,CAAC,EAAE,CAACjC,QAAQ,EAAEiC,eAAe,EAAE/B,MAAM,EAAED,OAAO,CAAC,CAAC;EAEhD,MAAM2C,IAAI,GAAGjD,KAAK,CAACmB,WAAW,CAC3BoB,MAAqB,IAAKrB,IAAI,CAAC,CAAC,GAAG,IAAIJ,GAAG,CAAC,CAAC,GAAGH,SAAS,CAACM,OAAO,EAAEsB,MAAM,CAACH,EAAE,CAAC,CAAC,CAAC,CAAC,EAChF,CAAClB,IAAI,CACP,CAAC;EAED,MAAMgC,MAAM,GAAGlD,KAAK,CAACmB,WAAW,CAAC,MAAOiB,EAAU,IAAK;IACrD,IAAI,CAAC9B,OAAO,CAAC6C,OAAO,EAAE;MACpB,MAAM,IAAIC,KAAK,CAAC,kEAAkE,CAAC;IACrF;IAEA,MAAM9C,OAAO,CAAC6C,OAAO,CAACD,MAAM,CAACd,EAAE,CAAC;IAChCvB,gBAAgB,CAACI,OAAO,CAAC4B,MAAM,CAACT,EAAE,CAAC;IACnC,MAAMlB,IAAI,CAACP,SAAS,CAACM,OAAO,CAACkB,MAAM,CAAEkB,SAAS,IAAKA,SAAS,KAAKjB,EAAE,CAAC,CAAC;EACvE,CAAC,EAAE,CAAC9B,OAAO,EAAEY,IAAI,CAAC,CAAC;EAEnB,OAAO;IACLX,MAAM;IACN0C,IAAI;IACJC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,67 +1,25 @@
1
1
  "use strict";
2
2
 
3
- import * as React from "react";
4
- import { AppState, Linking, Platform } from "react-native";
5
- import { PERMISSIONS, requestMultiple } from "react-native-permissions";
6
3
  import { slog } from "../../helpers/index.js";
7
- import { sentryLogger } from "../../helpers/utils/sentry-logger.js";
4
+ import { useBluetoothPermission } from "./use-bluetooth-permission.js";
8
5
  export const useRequestPermissions = ({
9
6
  onAccessPermissionChanged
10
7
  }) => {
11
- const onChangeRef = React.useRef(onAccessPermissionChanged);
12
- const [accessPermission, setAccessPermission] = React.useState(undefined);
13
- const requestInFlightRef = React.useRef(false);
14
- const requestOnResumeRef = React.useRef(false);
15
- const openBleSetting = React.useCallback(() => {
16
- requestOnResumeRef.current = true;
17
- void Linking.openSettings();
18
- }, []);
19
- const requestPermissions = React.useCallback(async () => {
20
- if (requestInFlightRef.current) {
21
- return;
22
- }
23
- requestInFlightRef.current = true;
24
- const requestedPermissions = Platform.OS === "android" ? Number(Platform.Version) >= 31 ? [PERMISSIONS.ANDROID.BLUETOOTH_CONNECT, PERMISSIONS.ANDROID.BLUETOOTH_SCAN] : [PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION] : [PERMISSIONS.IOS.BLUETOOTH];
25
- sentryLogger("info", "BT_PROVIDER: Permissions requesting", {
26
- permissions: requestedPermissions
27
- });
28
- try {
29
- const grantedPermissions = await requestMultiple(requestedPermissions);
30
- const allGranted = requestedPermissions.every(permission => grantedPermissions[permission] === "granted");
31
- sentryLogger("info", "BT_PROVIDER: Permissions requested", {
32
- permissions: grantedPermissions,
33
- allGranted
34
- });
35
- onChangeRef.current?.(allGranted);
36
- setAccessPermission(allGranted);
37
- } catch (error) {
8
+ const {
9
+ accessPermission,
10
+ openSettings,
11
+ requestPermission
12
+ } = useBluetoothPermission({
13
+ requestOnMount: true,
14
+ onPermissionChanged: onAccessPermissionChanged,
15
+ onRequestError: error => {
38
16
  slog(error, "bt permission request error");
39
- } finally {
40
- requestInFlightRef.current = false;
41
17
  }
42
- }, []);
43
- React.useEffect(() => {
44
- let wasActive = AppState.currentState === "active";
45
- const listener = AppState.addEventListener("change", state => {
46
- const becameActive = state === "active" && !wasActive;
47
- wasActive = state === "active";
48
- if (!becameActive || !requestOnResumeRef.current) {
49
- return;
50
- }
51
- requestOnResumeRef.current = false;
52
- void requestPermissions();
53
- });
54
- void requestPermissions();
55
- return () => {
56
- listener.remove();
57
- };
58
- }, [requestPermissions]);
59
- React.useEffect(() => {
60
- onChangeRef.current = onAccessPermissionChanged;
61
- }, [onAccessPermissionChanged]);
18
+ });
62
19
  return {
63
20
  accessPermission,
64
- openBleSetting
21
+ openBleSetting: openSettings,
22
+ requestPermission
65
23
  };
66
24
  };
67
25
  //# sourceMappingURL=use-request-permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","AppState","Linking","Platform","PERMISSIONS","requestMultiple","slog","sentryLogger","useRequestPermissions","onAccessPermissionChanged","onChangeRef","useRef","accessPermission","setAccessPermission","useState","undefined","requestInFlightRef","requestOnResumeRef","openBleSetting","useCallback","current","openSettings","requestPermissions","requestedPermissions","OS","Number","Version","ANDROID","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","IOS","BLUETOOTH","permissions","grantedPermissions","allGranted","every","permission","error","useEffect","wasActive","currentState","listener","addEventListener","state","becameActive","remove"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-request-permissions.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["slog","useBluetoothPermission","useRequestPermissions","onAccessPermissionChanged","accessPermission","openSettings","requestPermission","requestOnMount","onPermissionChanged","onRequestError","error","openBleSetting"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-request-permissions.ts"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,wBAAe;AAIpC,SAASC,sBAAsB,QAAQ,+BAA4B;AAEnE,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACpCC;AACuE,CAAC,KAAK;EAC7E,MAAM;IAAEC,gBAAgB;IAAEC,YAAY;IAAEC;EAAkB,CAAC,GACzDL,sBAAsB,CAAC;IACrBM,cAAc,EAAE,IAAI;IACpBC,mBAAmB,EAAEL,yBAAyB;IAC9CM,cAAc,EAAGC,KAAK,IAAK;MACzBV,IAAI,CAACU,KAAK,EAAE,6BAA6B,CAAC;IAC5C;EACF,CAAC,CAAC;EAEJ,OAAO;IACLN,gBAAgB;IAChBO,cAAc,EAAEN,YAAY;IAC5BC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -6,11 +6,13 @@ import { useBluetoothRuntime } from "./runtime-context.js";
6
6
  /** Exposes scan pause/resume to apps using BTProvider. */
7
7
  export const useScanControl = () => {
8
8
  const runtime = useBluetoothRuntime();
9
- React.useSyncExternalStore(runtime.subscribeState, () => runtime.manager, () => undefined);
9
+ const manager = React.useSyncExternalStore(runtime.subscribeState, () => runtime.manager, () => undefined);
10
+ const pauseScan = React.useCallback(() => manager?.pauseScan(), [manager]);
11
+ const resumeScan = React.useCallback(() => manager?.resumeScan(), [manager]);
10
12
  return {
11
- canControl: Boolean(runtime.manager),
12
- pauseScan: () => runtime.manager?.pauseScan(),
13
- resumeScan: () => runtime.manager?.resumeScan()
13
+ canControl: Boolean(manager),
14
+ pauseScan,
15
+ resumeScan
14
16
  };
15
17
  };
16
18
  //# sourceMappingURL=use-scan-control.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useBluetoothRuntime","useScanControl","runtime","useSyncExternalStore","subscribeState","manager","undefined","canControl","Boolean","pauseScan","resumeScan"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-scan-control.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,mBAAmB,QAAQ,sBAAmB;;AAEvD;AACA,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAIzB;EACH,MAAMC,OAAO,GAAGF,mBAAmB,CAAC,CAAC;EAErCD,KAAK,CAACI,oBAAoB,CACxBD,OAAO,CAACE,cAAc,EACtB,MAAMF,OAAO,CAACG,OAAO,EACrB,MAAMC,SACR,CAAC;EAED,OAAO;IACLC,UAAU,EAAEC,OAAO,CAACN,OAAO,CAACG,OAAO,CAAC;IACpCI,SAAS,EAAEA,CAAA,KAAMP,OAAO,CAACG,OAAO,EAAEI,SAAS,CAAC,CAAC;IAC7CC,UAAU,EAAEA,CAAA,KAAMR,OAAO,CAACG,OAAO,EAAEK,UAAU,CAAC;EAChD,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useBluetoothRuntime","useScanControl","runtime","manager","useSyncExternalStore","subscribeState","undefined","pauseScan","useCallback","resumeScan","canControl","Boolean"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-scan-control.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,mBAAmB,QAAQ,sBAAmB;;AAEvD;AACA,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAIzB;EACH,MAAMC,OAAO,GAAGF,mBAAmB,CAAC,CAAC;EAErC,MAAMG,OAAO,GAAGJ,KAAK,CAACK,oBAAoB,CACxCF,OAAO,CAACG,cAAc,EACtB,MAAMH,OAAO,CAACC,OAAO,EACrB,MAAMG,SACR,CAAC;EAED,MAAMC,SAAS,GAAGR,KAAK,CAACS,WAAW,CAAC,MAAML,OAAO,EAAEI,SAAS,CAAC,CAAC,EAAE,CAACJ,OAAO,CAAC,CAAC;EAC1E,MAAMM,UAAU,GAAGV,KAAK,CAACS,WAAW,CAAC,MAAML,OAAO,EAAEM,UAAU,CAAC,CAAC,EAAE,CAACN,OAAO,CAAC,CAAC;EAE5E,OAAO;IACLO,UAAU,EAAEC,OAAO,CAACR,OAAO,CAAC;IAC5BI,SAAS;IACTE;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -92,13 +92,20 @@ export * from "./components/bt-provider.js";
92
92
  export * from "./components/bluetooth-device-picker.js";
93
93
  export * from "./components/default-permission-fallback.js";
94
94
  export * from "./hooks/use-request-permissions.js";
95
+ export * from "./hooks/use-bluetooth-permission.js";
95
96
  export * from "./hooks/runtime-context.js";
96
97
  export * from "./hooks/use-bluetooth-state.js";
97
98
  export * from "./hooks/use-nearby-devices.js";
98
99
  export * from "./hooks/use-paired-devices.js";
99
100
  export * from "./hooks/use-device-connection.js";
101
+ export * from "./hooks/use-bt-device.js";
100
102
  export * from "./hooks/use-measurements.js";
101
103
  export * from "./hooks/use-background-sync.js";
102
- export * from "./hooks/use-health-import.js";
104
+
105
+ /** @deprecated Import useHealthImport from @ovok/native/data-sync instead. */
106
+ export { useHealthImport } from "../data-sync/hooks/use-health-import.js";
107
+
108
+ /** @deprecated Import HealthImportAdapter from @ovok/native/data-sync instead. */
109
+
103
110
  export * from "./hooks/use-scan-control.js";
104
111
  //# sourceMappingURL=index.js.map