@ovok/native 1.5.5 → 1.6.0

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 (656) hide show
  1. package/README.md +27 -17
  2. package/app.plugin.js +104 -0
  3. package/lib/commonjs/index.js +11 -0
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/modules/auth/delete-account-button/components/delete-account-button.js +2 -0
  6. package/lib/commonjs/modules/auth/delete-account-button/components/delete-account-button.js.map +1 -1
  7. package/lib/commonjs/modules/auth/hooks/use-rate-limit-cooldown.js +23 -0
  8. package/lib/commonjs/modules/auth/hooks/use-rate-limit-cooldown.js.map +1 -0
  9. package/lib/commonjs/modules/auth/hooks/use-session.js +91 -0
  10. package/lib/commonjs/modules/auth/hooks/use-session.js.map +1 -0
  11. package/lib/commonjs/modules/auth/index.js +44 -0
  12. package/lib/commonjs/modules/auth/index.js.map +1 -1
  13. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js +3 -1
  14. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js.map +1 -1
  15. package/lib/commonjs/modules/auth/register/components/form/inputs.js +48 -1
  16. package/lib/commonjs/modules/auth/register/components/form/inputs.js.map +1 -1
  17. package/lib/commonjs/modules/auth/register/components/form/register-button.js +4 -0
  18. package/lib/commonjs/modules/auth/register/components/form/register-button.js.map +1 -1
  19. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js +6 -0
  20. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  21. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js +12 -0
  22. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  23. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-button.js +4 -0
  24. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-button.js.map +1 -1
  25. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js +7 -1
  26. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  27. package/lib/commonjs/modules/auth/session/components/session-list.js +82 -0
  28. package/lib/commonjs/modules/auth/session/components/session-list.js.map +1 -0
  29. package/lib/commonjs/modules/auth/session/events.js +19 -0
  30. package/lib/commonjs/modules/auth/session/events.js.map +1 -0
  31. package/lib/commonjs/modules/auth/session/index.js +13 -0
  32. package/lib/commonjs/modules/auth/session/index.js.map +1 -0
  33. package/lib/commonjs/modules/auth/session/types/session-list-props.js +6 -0
  34. package/lib/commonjs/modules/auth/session/types/session-list-props.js.map +1 -0
  35. package/lib/commonjs/modules/auth/sign-in/components/form/inputs.js +25 -0
  36. package/lib/commonjs/modules/auth/sign-in/components/form/inputs.js.map +1 -1
  37. package/lib/commonjs/modules/auth/sign-in/components/form/login-form-provider.js +48 -1
  38. package/lib/commonjs/modules/auth/sign-in/components/form/login-form-provider.js.map +1 -1
  39. package/lib/commonjs/modules/auth/sign-in/components/form/mfa-code-input.js +58 -0
  40. package/lib/commonjs/modules/auth/sign-in/components/form/mfa-code-input.js.map +1 -0
  41. package/lib/commonjs/modules/auth/sign-in/components/form/sign-in-with-email.js +2 -0
  42. package/lib/commonjs/modules/auth/sign-in/components/form/sign-in-with-email.js.map +1 -1
  43. package/lib/commonjs/modules/auth/sign-in/components/form/signin-button.js +13 -5
  44. package/lib/commonjs/modules/auth/sign-in/components/form/signin-button.js.map +1 -1
  45. package/lib/commonjs/modules/auth/types/session.js +2 -0
  46. package/lib/commonjs/modules/auth/types/session.js.map +1 -0
  47. package/lib/commonjs/modules/auth/utils/rate-limit.js +37 -0
  48. package/lib/commonjs/modules/auth/utils/rate-limit.js.map +1 -0
  49. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +3 -2
  50. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  51. package/lib/commonjs/modules/background-sync/background-safe-storage.js +79 -0
  52. package/lib/commonjs/modules/background-sync/background-safe-storage.js.map +1 -0
  53. package/lib/commonjs/modules/background-sync/index.js +11 -0
  54. package/lib/commonjs/modules/background-sync/index.js.map +1 -1
  55. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +123 -21
  56. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  57. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js +91 -0
  58. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -0
  59. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js +47 -0
  60. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js.map +1 -0
  61. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-state.js +51 -0
  62. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-state.js.map +1 -0
  63. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js +36 -0
  64. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js.map +1 -0
  65. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js +46 -0
  66. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js.map +1 -0
  67. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js +57 -0
  68. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js.map +1 -0
  69. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js +26 -0
  70. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js.map +1 -0
  71. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js +49 -0
  72. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js.map +1 -0
  73. package/lib/commonjs/modules/bt-management/index.js +143 -0
  74. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  75. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +41 -4
  76. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  77. package/lib/commonjs/modules/bt-management/services/bt-manager.js +75 -4
  78. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  79. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +57 -0
  80. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  81. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +111 -3
  82. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  83. package/lib/commonjs/modules/bt-management/services/devices/measurement-state-machine.js +5 -3
  84. package/lib/commonjs/modules/bt-management/services/devices/measurement-state-machine.js.map +1 -1
  85. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.main-services.js +12 -0
  86. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.main-services.js.map +1 -1
  87. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js +9 -3
  88. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js.map +1 -1
  89. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js +52 -0
  90. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js.map +1 -0
  91. package/lib/commonjs/modules/bt-management/testing/index.js +28 -0
  92. package/lib/commonjs/modules/bt-management/testing/index.js.map +1 -0
  93. package/lib/commonjs/modules/bt-management/testing/recorded-frames.js +23 -0
  94. package/lib/commonjs/modules/bt-management/testing/recorded-frames.js.map +1 -0
  95. package/lib/commonjs/modules/bt-management/types/bluetooth-error.js +80 -0
  96. package/lib/commonjs/modules/bt-management/types/bluetooth-error.js.map +1 -0
  97. package/lib/commonjs/modules/bt-management/types/device-connection-event.js +6 -0
  98. package/lib/commonjs/modules/bt-management/types/device-connection-event.js.map +1 -0
  99. package/lib/commonjs/modules/bt-management/types/result-policy.js +6 -0
  100. package/lib/commonjs/modules/bt-management/types/result-policy.js.map +1 -0
  101. package/lib/commonjs/modules/bt-management/utils/result-identity.js +63 -0
  102. package/lib/commonjs/modules/bt-management/utils/result-identity.js.map +1 -0
  103. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +8 -2
  104. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  105. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +23 -4
  106. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  107. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +2 -2
  108. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  109. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js +1 -1
  110. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  111. package/lib/commonjs/modules/data-sync/utils/retry-save.js +65 -0
  112. package/lib/commonjs/modules/data-sync/utils/retry-save.js.map +1 -0
  113. package/lib/commonjs/modules/helpers/form-items/form-field.js +2 -0
  114. package/lib/commonjs/modules/helpers/form-items/form-field.js.map +1 -1
  115. package/lib/commonjs/modules/helpers/index.js +12 -0
  116. package/lib/commonjs/modules/helpers/index.js.map +1 -1
  117. package/lib/commonjs/modules/helpers/utils/s-log.js +4 -13
  118. package/lib/commonjs/modules/helpers/utils/s-log.js.map +1 -1
  119. package/lib/commonjs/modules/helpers/utils/sentry-logger.js +28 -17
  120. package/lib/commonjs/modules/helpers/utils/sentry-logger.js.map +1 -1
  121. package/lib/commonjs/modules/helpers/utils/telemetry.js +143 -0
  122. package/lib/commonjs/modules/helpers/utils/telemetry.js.map +1 -0
  123. package/lib/commonjs/modules/image/components/optimized-image.js +24 -2
  124. package/lib/commonjs/modules/image/components/optimized-image.js.map +1 -1
  125. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-error.js +18 -9
  126. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-error.js.map +1 -1
  127. package/lib/commonjs/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.js +3 -2
  128. package/lib/commonjs/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.js.map +1 -1
  129. package/lib/commonjs/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.js +4 -2
  130. package/lib/commonjs/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.js.map +1 -1
  131. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js +42 -17
  132. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  133. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +2 -1
  134. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  135. package/lib/commonjs/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.js.map +1 -1
  136. package/lib/commonjs/modules/tile/components/task-icon.js +2 -1
  137. package/lib/commonjs/modules/tile/components/task-icon.js.map +1 -1
  138. package/lib/commonjs/modules/ui/components/background-sync-setting.js +113 -0
  139. package/lib/commonjs/modules/ui/components/background-sync-setting.js.map +1 -0
  140. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js +105 -0
  141. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js.map +1 -0
  142. package/lib/commonjs/modules/ui/components/ecg-strip-viewer.js +165 -0
  143. package/lib/commonjs/modules/ui/components/ecg-strip-viewer.js.map +1 -0
  144. package/lib/commonjs/modules/ui/components/health-import-card.js +130 -0
  145. package/lib/commonjs/modules/ui/components/health-import-card.js.map +1 -0
  146. package/lib/commonjs/modules/ui/components/manual-entry-form.js +123 -0
  147. package/lib/commonjs/modules/ui/components/manual-entry-form.js.map +1 -0
  148. package/lib/commonjs/modules/ui/components/pairing-flow.js +222 -0
  149. package/lib/commonjs/modules/ui/components/pairing-flow.js.map +1 -0
  150. package/lib/commonjs/modules/ui/components/supported-devices-catalog-list.js +99 -0
  151. package/lib/commonjs/modules/ui/components/supported-devices-catalog-list.js.map +1 -0
  152. package/lib/commonjs/modules/ui/components/urine-test-result.js +94 -0
  153. package/lib/commonjs/modules/ui/components/urine-test-result.js.map +1 -0
  154. package/lib/commonjs/modules/ui/index.js +116 -0
  155. package/lib/commonjs/modules/ui/index.js.map +1 -0
  156. package/lib/commonjs/modules/ui/types.js +6 -0
  157. package/lib/commonjs/modules/ui/types.js.map +1 -0
  158. package/lib/commonjs/modules/ui/use-ovok-ui.js +51 -0
  159. package/lib/commonjs/modules/ui/use-ovok-ui.js.map +1 -0
  160. package/lib/module/index.js +1 -0
  161. package/lib/module/index.js.map +1 -1
  162. package/lib/module/modules/auth/delete-account-button/components/delete-account-button.js +2 -0
  163. package/lib/module/modules/auth/delete-account-button/components/delete-account-button.js.map +1 -1
  164. package/lib/module/modules/auth/hooks/use-rate-limit-cooldown.js +17 -0
  165. package/lib/module/modules/auth/hooks/use-rate-limit-cooldown.js.map +1 -0
  166. package/lib/module/modules/auth/hooks/use-session.js +85 -0
  167. package/lib/module/modules/auth/hooks/use-session.js.map +1 -0
  168. package/lib/module/modules/auth/index.js +4 -0
  169. package/lib/module/modules/auth/index.js.map +1 -1
  170. package/lib/module/modules/auth/logout-button/components/logout-button.js +3 -1
  171. package/lib/module/modules/auth/logout-button/components/logout-button.js.map +1 -1
  172. package/lib/module/modules/auth/register/components/form/inputs.js +48 -1
  173. package/lib/module/modules/auth/register/components/form/inputs.js.map +1 -1
  174. package/lib/module/modules/auth/register/components/form/register-button.js +4 -0
  175. package/lib/module/modules/auth/register/components/form/register-button.js.map +1 -1
  176. package/lib/module/modules/auth/register/components/form/register-form-provider.js +6 -0
  177. package/lib/module/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  178. package/lib/module/modules/auth/reset-password/components/form/inputs.js +12 -0
  179. package/lib/module/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  180. package/lib/module/modules/auth/reset-password/components/form/reset-password-button.js +4 -0
  181. package/lib/module/modules/auth/reset-password/components/form/reset-password-button.js.map +1 -1
  182. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js +7 -1
  183. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  184. package/lib/module/modules/auth/session/components/session-list.js +76 -0
  185. package/lib/module/modules/auth/session/components/session-list.js.map +1 -0
  186. package/lib/module/modules/auth/session/events.js +13 -0
  187. package/lib/module/modules/auth/session/events.js.map +1 -0
  188. package/lib/module/modules/auth/session/index.js +4 -0
  189. package/lib/module/modules/auth/session/index.js.map +1 -0
  190. package/lib/module/modules/auth/session/types/session-list-props.js +4 -0
  191. package/lib/module/modules/auth/session/types/session-list-props.js.map +1 -0
  192. package/lib/module/modules/auth/sign-in/components/form/inputs.js +25 -0
  193. package/lib/module/modules/auth/sign-in/components/form/inputs.js.map +1 -1
  194. package/lib/module/modules/auth/sign-in/components/form/login-form-provider.js +48 -1
  195. package/lib/module/modules/auth/sign-in/components/form/login-form-provider.js.map +1 -1
  196. package/lib/module/modules/auth/sign-in/components/form/mfa-code-input.js +52 -0
  197. package/lib/module/modules/auth/sign-in/components/form/mfa-code-input.js.map +1 -0
  198. package/lib/module/modules/auth/sign-in/components/form/sign-in-with-email.js +2 -0
  199. package/lib/module/modules/auth/sign-in/components/form/sign-in-with-email.js.map +1 -1
  200. package/lib/module/modules/auth/sign-in/components/form/signin-button.js +13 -5
  201. package/lib/module/modules/auth/sign-in/components/form/signin-button.js.map +1 -1
  202. package/lib/module/modules/auth/types/session.js +2 -0
  203. package/lib/module/modules/auth/types/session.js.map +1 -0
  204. package/lib/module/modules/auth/utils/rate-limit.js +31 -0
  205. package/lib/module/modules/auth/utils/rate-limit.js.map +1 -0
  206. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +3 -2
  207. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  208. package/lib/module/modules/background-sync/background-safe-storage.js +74 -0
  209. package/lib/module/modules/background-sync/background-safe-storage.js.map +1 -0
  210. package/lib/module/modules/background-sync/index.js +1 -0
  211. package/lib/module/modules/background-sync/index.js.map +1 -1
  212. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +123 -21
  213. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  214. package/lib/module/modules/bt-management/hooks/runtime-context.js +82 -0
  215. package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -0
  216. package/lib/module/modules/bt-management/hooks/use-background-sync.js +41 -0
  217. package/lib/module/modules/bt-management/hooks/use-background-sync.js.map +1 -0
  218. package/lib/module/modules/bt-management/hooks/use-bluetooth-state.js +45 -0
  219. package/lib/module/modules/bt-management/hooks/use-bluetooth-state.js.map +1 -0
  220. package/lib/module/modules/bt-management/hooks/use-device-connection.js +30 -0
  221. package/lib/module/modules/bt-management/hooks/use-device-connection.js.map +1 -0
  222. package/lib/module/modules/bt-management/hooks/use-health-import.js +40 -0
  223. package/lib/module/modules/bt-management/hooks/use-health-import.js.map +1 -0
  224. package/lib/module/modules/bt-management/hooks/use-measurements.js +51 -0
  225. package/lib/module/modules/bt-management/hooks/use-measurements.js.map +1 -0
  226. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js +20 -0
  227. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js.map +1 -0
  228. package/lib/module/modules/bt-management/hooks/use-paired-devices.js +43 -0
  229. package/lib/module/modules/bt-management/hooks/use-paired-devices.js.map +1 -0
  230. package/lib/module/modules/bt-management/index.js +13 -0
  231. package/lib/module/modules/bt-management/index.js.map +1 -1
  232. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +41 -4
  233. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  234. package/lib/module/modules/bt-management/services/bt-manager.js +75 -4
  235. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  236. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +57 -0
  237. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  238. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +111 -3
  239. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  240. package/lib/module/modules/bt-management/services/devices/measurement-state-machine.js +5 -3
  241. package/lib/module/modules/bt-management/services/devices/measurement-state-machine.js.map +1 -1
  242. package/lib/module/modules/bt-management/services/devices/spo/spo2.main-services.js +12 -0
  243. package/lib/module/modules/bt-management/services/devices/spo/spo2.main-services.js.map +1 -1
  244. package/lib/module/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js +9 -3
  245. package/lib/module/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js.map +1 -1
  246. package/lib/module/modules/bt-management/testing/fake-ble-manager.js +48 -0
  247. package/lib/module/modules/bt-management/testing/fake-ble-manager.js.map +1 -0
  248. package/lib/module/modules/bt-management/testing/index.js +5 -0
  249. package/lib/module/modules/bt-management/testing/index.js.map +1 -0
  250. package/lib/module/modules/bt-management/testing/recorded-frames.js +17 -0
  251. package/lib/module/modules/bt-management/testing/recorded-frames.js.map +1 -0
  252. package/lib/module/modules/bt-management/types/bluetooth-error.js +74 -0
  253. package/lib/module/modules/bt-management/types/bluetooth-error.js.map +1 -0
  254. package/lib/module/modules/bt-management/types/device-connection-event.js +4 -0
  255. package/lib/module/modules/bt-management/types/device-connection-event.js.map +1 -0
  256. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  257. package/lib/module/modules/bt-management/types/result-policy.js +4 -0
  258. package/lib/module/modules/bt-management/types/result-policy.js.map +1 -0
  259. package/lib/module/modules/bt-management/utils/result-identity.js +57 -0
  260. package/lib/module/modules/bt-management/utils/result-identity.js.map +1 -0
  261. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +8 -2
  262. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  263. package/lib/module/modules/data-sync/services/base-health-sync-service.js +23 -4
  264. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  265. package/lib/module/modules/data-sync/services/managers/data-processor.js +2 -2
  266. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  267. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +1 -1
  268. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  269. package/lib/module/modules/data-sync/utils/retry-save.js +60 -0
  270. package/lib/module/modules/data-sync/utils/retry-save.js.map +1 -0
  271. package/lib/module/modules/helpers/form-items/form-field.js +2 -0
  272. package/lib/module/modules/helpers/form-items/form-field.js.map +1 -1
  273. package/lib/module/modules/helpers/index.js +1 -0
  274. package/lib/module/modules/helpers/index.js.map +1 -1
  275. package/lib/module/modules/helpers/utils/s-log.js +4 -12
  276. package/lib/module/modules/helpers/utils/s-log.js.map +1 -1
  277. package/lib/module/modules/helpers/utils/sentry-logger.js +26 -14
  278. package/lib/module/modules/helpers/utils/sentry-logger.js.map +1 -1
  279. package/lib/module/modules/helpers/utils/telemetry.js +131 -0
  280. package/lib/module/modules/helpers/utils/telemetry.js.map +1 -0
  281. package/lib/module/modules/image/components/optimized-image.js +25 -3
  282. package/lib/module/modules/image/components/optimized-image.js.map +1 -1
  283. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-error.js +20 -11
  284. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-error.js.map +1 -1
  285. package/lib/module/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.js +3 -2
  286. package/lib/module/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.js.map +1 -1
  287. package/lib/module/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.js +4 -2
  288. package/lib/module/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.js.map +1 -1
  289. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js +42 -17
  290. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  291. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +2 -1
  292. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  293. package/lib/module/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.js.map +1 -1
  294. package/lib/module/modules/tile/components/task-icon.js +2 -1
  295. package/lib/module/modules/tile/components/task-icon.js.map +1 -1
  296. package/lib/module/modules/ui/components/background-sync-setting.js +107 -0
  297. package/lib/module/modules/ui/components/background-sync-setting.js.map +1 -0
  298. package/lib/module/modules/ui/components/bluetooth-state-notice.js +99 -0
  299. package/lib/module/modules/ui/components/bluetooth-state-notice.js.map +1 -0
  300. package/lib/module/modules/ui/components/ecg-strip-viewer.js +159 -0
  301. package/lib/module/modules/ui/components/ecg-strip-viewer.js.map +1 -0
  302. package/lib/module/modules/ui/components/health-import-card.js +124 -0
  303. package/lib/module/modules/ui/components/health-import-card.js.map +1 -0
  304. package/lib/module/modules/ui/components/manual-entry-form.js +117 -0
  305. package/lib/module/modules/ui/components/manual-entry-form.js.map +1 -0
  306. package/lib/module/modules/ui/components/pairing-flow.js +216 -0
  307. package/lib/module/modules/ui/components/pairing-flow.js.map +1 -0
  308. package/lib/module/modules/ui/components/supported-devices-catalog-list.js +93 -0
  309. package/lib/module/modules/ui/components/supported-devices-catalog-list.js.map +1 -0
  310. package/lib/module/modules/ui/components/urine-test-result.js +89 -0
  311. package/lib/module/modules/ui/components/urine-test-result.js.map +1 -0
  312. package/lib/module/modules/ui/index.js +13 -0
  313. package/lib/module/modules/ui/index.js.map +1 -0
  314. package/lib/module/modules/ui/types.js +4 -0
  315. package/lib/module/modules/ui/types.js.map +1 -0
  316. package/lib/module/modules/ui/use-ovok-ui.js +45 -0
  317. package/lib/module/modules/ui/use-ovok-ui.js.map +1 -0
  318. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  319. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  320. package/lib/typescript/commonjs/src/modules/auth/delete-account-button/components/delete-account-button.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/src/modules/auth/hooks/use-rate-limit-cooldown.d.ts +2 -0
  322. package/lib/typescript/commonjs/src/modules/auth/hooks/use-rate-limit-cooldown.d.ts.map +1 -0
  323. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts +16 -0
  324. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/src/modules/auth/index.d.ts +4 -0
  326. package/lib/typescript/commonjs/src/modules/auth/index.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  328. package/lib/typescript/commonjs/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-button.d.ts.map +1 -1
  330. package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/inputs.d.ts.map +1 -1
  332. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-button.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/src/modules/auth/session/components/session-list.d.ts +4 -0
  335. package/lib/typescript/commonjs/src/modules/auth/session/components/session-list.d.ts.map +1 -0
  336. package/lib/typescript/commonjs/src/modules/auth/session/events.d.ts +5 -0
  337. package/lib/typescript/commonjs/src/modules/auth/session/events.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/src/modules/auth/session/index.d.ts +3 -0
  339. package/lib/typescript/commonjs/src/modules/auth/session/index.d.ts.map +1 -0
  340. package/lib/typescript/commonjs/src/modules/auth/session/types/session-list-props.d.ts +5 -0
  341. package/lib/typescript/commonjs/src/modules/auth/session/types/session-list-props.d.ts.map +1 -0
  342. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/inputs.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/login-form-provider.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/mfa-code-input.d.ts +9 -0
  345. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/mfa-code-input.d.ts.map +1 -0
  346. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/sign-in-with-email.d.ts +4 -0
  347. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/sign-in-with-email.d.ts.map +1 -1
  348. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/signin-button.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/sign-in.d.ts +4 -0
  350. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/sign-in.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/src/modules/auth/sign-in/contexts/login-form-context.d.ts +2 -46
  352. package/lib/typescript/commonjs/src/modules/auth/sign-in/contexts/login-form-context.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/src/modules/auth/sign-in/hooks/use-login-form.d.ts +1 -47
  354. package/lib/typescript/commonjs/src/modules/auth/sign-in/hooks/use-login-form.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/src/modules/auth/sign-in/types/login-form-context-type.d.ts +11 -1
  356. package/lib/typescript/commonjs/src/modules/auth/sign-in/types/login-form-context-type.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/src/modules/auth/types/session.d.ts +13 -0
  358. package/lib/typescript/commonjs/src/modules/auth/types/session.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/src/modules/auth/utils/rate-limit.d.ts +11 -0
  360. package/lib/typescript/commonjs/src/modules/auth/utils/rate-limit.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  362. package/lib/typescript/commonjs/src/modules/background-sync/background-safe-storage.d.ts +29 -0
  363. package/lib/typescript/commonjs/src/modules/background-sync/background-safe-storage.d.ts.map +1 -0
  364. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts +1 -0
  365. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts.map +1 -1
  366. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  367. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +46 -0
  368. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -0
  369. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-background-sync.d.ts +14 -0
  370. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bluetooth-state.d.ts +11 -0
  372. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bluetooth-state.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-device-connection.d.ts +7 -0
  374. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -0
  375. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-health-import.d.ts +16 -0
  376. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-measurements.d.ts +11 -0
  378. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -0
  379. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-devices.d.ts +8 -0
  380. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-paired-devices.d.ts +16 -0
  382. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +13 -0
  384. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  385. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  386. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +22 -0
  387. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  388. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +4 -0
  389. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  390. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +9 -1
  391. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  392. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/measurement-state-machine.d.ts +3 -2
  393. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/measurement-state-machine.d.ts.map +1 -1
  394. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.main-services.d.ts.map +1 -1
  395. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts +2 -0
  396. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts.map +1 -1
  397. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts +16 -0
  398. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/src/modules/bt-management/testing/index.d.ts +3 -0
  400. package/lib/typescript/commonjs/src/modules/bt-management/testing/index.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/src/modules/bt-management/testing/recorded-frames.d.ts +12 -0
  402. package/lib/typescript/commonjs/src/modules/bt-management/testing/recorded-frames.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +3 -1
  404. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  405. package/lib/typescript/commonjs/src/modules/bt-management/types/bluetooth-error.d.ts +23 -0
  406. package/lib/typescript/commonjs/src/modules/bt-management/types/bluetooth-error.d.ts.map +1 -0
  407. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts +4 -0
  408. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  409. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +4 -0
  410. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/src/modules/bt-management/types/device-connection-event.d.ts +16 -0
  412. package/lib/typescript/commonjs/src/modules/bt-management/types/device-connection-event.d.ts.map +1 -0
  413. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +2 -0
  414. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/src/modules/bt-management/types/error-callback.d.ts +5 -2
  416. package/lib/typescript/commonjs/src/modules/bt-management/types/error-callback.d.ts.map +1 -1
  417. package/lib/typescript/commonjs/src/modules/bt-management/types/i-bt-managed-device.d.ts +1 -0
  418. package/lib/typescript/commonjs/src/modules/bt-management/types/i-bt-managed-device.d.ts.map +1 -1
  419. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts +2 -0
  420. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  421. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts +8 -0
  422. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts.map +1 -0
  423. package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts +10 -0
  424. package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts.map +1 -0
  425. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  426. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  427. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +4 -0
  428. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  429. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  430. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +2 -0
  431. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  432. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +1 -1
  433. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  434. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts +5 -0
  435. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts.map +1 -0
  436. package/lib/typescript/commonjs/src/modules/helpers/form-items/form-field.d.ts +4 -1
  437. package/lib/typescript/commonjs/src/modules/helpers/form-items/form-field.d.ts.map +1 -1
  438. package/lib/typescript/commonjs/src/modules/helpers/index.d.ts +1 -0
  439. package/lib/typescript/commonjs/src/modules/helpers/index.d.ts.map +1 -1
  440. package/lib/typescript/commonjs/src/modules/helpers/utils/s-log.d.ts.map +1 -1
  441. package/lib/typescript/commonjs/src/modules/helpers/utils/sentry-logger.d.ts +7 -1
  442. package/lib/typescript/commonjs/src/modules/helpers/utils/sentry-logger.d.ts.map +1 -1
  443. package/lib/typescript/commonjs/src/modules/helpers/utils/telemetry.d.ts +68 -0
  444. package/lib/typescript/commonjs/src/modules/helpers/utils/telemetry.d.ts.map +1 -0
  445. package/lib/typescript/commonjs/src/modules/image/components/optimized-image.d.ts +1 -1
  446. package/lib/typescript/commonjs/src/modules/image/components/optimized-image.d.ts.map +1 -1
  447. package/lib/typescript/commonjs/src/modules/image/types/optimized-image-props.d.ts +4 -0
  448. package/lib/typescript/commonjs/src/modules/image/types/optimized-image-props.d.ts.map +1 -1
  449. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/content/questionnaire-content-error.d.ts.map +1 -1
  450. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.d.ts.map +1 -1
  451. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.d.ts.map +1 -1
  452. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  453. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  454. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.d.ts +1 -0
  455. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.d.ts.map +1 -1
  456. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +1 -0
  457. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  458. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation.d.ts +1 -0
  459. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation.d.ts.map +1 -1
  460. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +2 -0
  461. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  462. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +1 -0
  463. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  464. package/lib/typescript/commonjs/src/modules/tile/components/task-icon.d.ts.map +1 -1
  465. package/lib/typescript/commonjs/src/modules/ui/components/background-sync-setting.d.ts +9 -0
  466. package/lib/typescript/commonjs/src/modules/ui/components/background-sync-setting.d.ts.map +1 -0
  467. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts +12 -0
  468. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -0
  469. package/lib/typescript/commonjs/src/modules/ui/components/ecg-strip-viewer.d.ts +17 -0
  470. package/lib/typescript/commonjs/src/modules/ui/components/ecg-strip-viewer.d.ts.map +1 -0
  471. package/lib/typescript/commonjs/src/modules/ui/components/health-import-card.d.ts +13 -0
  472. package/lib/typescript/commonjs/src/modules/ui/components/health-import-card.d.ts.map +1 -0
  473. package/lib/typescript/commonjs/src/modules/ui/components/manual-entry-form.d.ts +20 -0
  474. package/lib/typescript/commonjs/src/modules/ui/components/manual-entry-form.d.ts.map +1 -0
  475. package/lib/typescript/commonjs/src/modules/ui/components/pairing-flow.d.ts +15 -0
  476. package/lib/typescript/commonjs/src/modules/ui/components/pairing-flow.d.ts.map +1 -0
  477. package/lib/typescript/commonjs/src/modules/ui/components/supported-devices-catalog-list.d.ts +16 -0
  478. package/lib/typescript/commonjs/src/modules/ui/components/supported-devices-catalog-list.d.ts.map +1 -0
  479. package/lib/typescript/commonjs/src/modules/ui/components/urine-test-result.d.ts +10 -0
  480. package/lib/typescript/commonjs/src/modules/ui/components/urine-test-result.d.ts.map +1 -0
  481. package/lib/typescript/commonjs/src/modules/ui/index.d.ts +11 -0
  482. package/lib/typescript/commonjs/src/modules/ui/index.d.ts.map +1 -0
  483. package/lib/typescript/commonjs/src/modules/ui/types.d.ts +24 -0
  484. package/lib/typescript/commonjs/src/modules/ui/types.d.ts.map +1 -0
  485. package/lib/typescript/commonjs/src/modules/ui/use-ovok-ui.d.ts +7 -0
  486. package/lib/typescript/commonjs/src/modules/ui/use-ovok-ui.d.ts.map +1 -0
  487. package/lib/typescript/module/src/index.d.ts +1 -0
  488. package/lib/typescript/module/src/index.d.ts.map +1 -1
  489. package/lib/typescript/module/src/modules/auth/delete-account-button/components/delete-account-button.d.ts.map +1 -1
  490. package/lib/typescript/module/src/modules/auth/hooks/use-rate-limit-cooldown.d.ts +2 -0
  491. package/lib/typescript/module/src/modules/auth/hooks/use-rate-limit-cooldown.d.ts.map +1 -0
  492. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts +16 -0
  493. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts.map +1 -0
  494. package/lib/typescript/module/src/modules/auth/index.d.ts +4 -0
  495. package/lib/typescript/module/src/modules/auth/index.d.ts.map +1 -1
  496. package/lib/typescript/module/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  497. package/lib/typescript/module/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
  498. package/lib/typescript/module/src/modules/auth/register/components/form/register-button.d.ts.map +1 -1
  499. package/lib/typescript/module/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  500. package/lib/typescript/module/src/modules/auth/reset-password/components/form/inputs.d.ts.map +1 -1
  501. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-button.d.ts.map +1 -1
  502. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  503. package/lib/typescript/module/src/modules/auth/session/components/session-list.d.ts +4 -0
  504. package/lib/typescript/module/src/modules/auth/session/components/session-list.d.ts.map +1 -0
  505. package/lib/typescript/module/src/modules/auth/session/events.d.ts +5 -0
  506. package/lib/typescript/module/src/modules/auth/session/events.d.ts.map +1 -0
  507. package/lib/typescript/module/src/modules/auth/session/index.d.ts +3 -0
  508. package/lib/typescript/module/src/modules/auth/session/index.d.ts.map +1 -0
  509. package/lib/typescript/module/src/modules/auth/session/types/session-list-props.d.ts +5 -0
  510. package/lib/typescript/module/src/modules/auth/session/types/session-list-props.d.ts.map +1 -0
  511. package/lib/typescript/module/src/modules/auth/sign-in/components/form/inputs.d.ts.map +1 -1
  512. package/lib/typescript/module/src/modules/auth/sign-in/components/form/login-form-provider.d.ts.map +1 -1
  513. package/lib/typescript/module/src/modules/auth/sign-in/components/form/mfa-code-input.d.ts +9 -0
  514. package/lib/typescript/module/src/modules/auth/sign-in/components/form/mfa-code-input.d.ts.map +1 -0
  515. package/lib/typescript/module/src/modules/auth/sign-in/components/form/sign-in-with-email.d.ts +4 -0
  516. package/lib/typescript/module/src/modules/auth/sign-in/components/form/sign-in-with-email.d.ts.map +1 -1
  517. package/lib/typescript/module/src/modules/auth/sign-in/components/form/signin-button.d.ts.map +1 -1
  518. package/lib/typescript/module/src/modules/auth/sign-in/components/sign-in.d.ts +4 -0
  519. package/lib/typescript/module/src/modules/auth/sign-in/components/sign-in.d.ts.map +1 -1
  520. package/lib/typescript/module/src/modules/auth/sign-in/contexts/login-form-context.d.ts +2 -46
  521. package/lib/typescript/module/src/modules/auth/sign-in/contexts/login-form-context.d.ts.map +1 -1
  522. package/lib/typescript/module/src/modules/auth/sign-in/hooks/use-login-form.d.ts +1 -47
  523. package/lib/typescript/module/src/modules/auth/sign-in/hooks/use-login-form.d.ts.map +1 -1
  524. package/lib/typescript/module/src/modules/auth/sign-in/types/login-form-context-type.d.ts +11 -1
  525. package/lib/typescript/module/src/modules/auth/sign-in/types/login-form-context-type.d.ts.map +1 -1
  526. package/lib/typescript/module/src/modules/auth/types/session.d.ts +13 -0
  527. package/lib/typescript/module/src/modules/auth/types/session.d.ts.map +1 -0
  528. package/lib/typescript/module/src/modules/auth/utils/rate-limit.d.ts +11 -0
  529. package/lib/typescript/module/src/modules/auth/utils/rate-limit.d.ts.map +1 -0
  530. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  531. package/lib/typescript/module/src/modules/background-sync/background-safe-storage.d.ts +29 -0
  532. package/lib/typescript/module/src/modules/background-sync/background-safe-storage.d.ts.map +1 -0
  533. package/lib/typescript/module/src/modules/background-sync/index.d.ts +1 -0
  534. package/lib/typescript/module/src/modules/background-sync/index.d.ts.map +1 -1
  535. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  536. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +46 -0
  537. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -0
  538. package/lib/typescript/module/src/modules/bt-management/hooks/use-background-sync.d.ts +14 -0
  539. package/lib/typescript/module/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -0
  540. package/lib/typescript/module/src/modules/bt-management/hooks/use-bluetooth-state.d.ts +11 -0
  541. package/lib/typescript/module/src/modules/bt-management/hooks/use-bluetooth-state.d.ts.map +1 -0
  542. package/lib/typescript/module/src/modules/bt-management/hooks/use-device-connection.d.ts +7 -0
  543. package/lib/typescript/module/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -0
  544. package/lib/typescript/module/src/modules/bt-management/hooks/use-health-import.d.ts +16 -0
  545. package/lib/typescript/module/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -0
  546. package/lib/typescript/module/src/modules/bt-management/hooks/use-measurements.d.ts +11 -0
  547. package/lib/typescript/module/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -0
  548. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-devices.d.ts +8 -0
  549. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -0
  550. package/lib/typescript/module/src/modules/bt-management/hooks/use-paired-devices.d.ts +16 -0
  551. package/lib/typescript/module/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -0
  552. package/lib/typescript/module/src/modules/bt-management/index.d.ts +13 -0
  553. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  554. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  555. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +22 -0
  556. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  557. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +4 -0
  558. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  559. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +9 -1
  560. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  561. package/lib/typescript/module/src/modules/bt-management/services/devices/measurement-state-machine.d.ts +3 -2
  562. package/lib/typescript/module/src/modules/bt-management/services/devices/measurement-state-machine.d.ts.map +1 -1
  563. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.main-services.d.ts.map +1 -1
  564. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts +2 -0
  565. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts.map +1 -1
  566. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts +16 -0
  567. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -0
  568. package/lib/typescript/module/src/modules/bt-management/testing/index.d.ts +3 -0
  569. package/lib/typescript/module/src/modules/bt-management/testing/index.d.ts.map +1 -0
  570. package/lib/typescript/module/src/modules/bt-management/testing/recorded-frames.d.ts +12 -0
  571. package/lib/typescript/module/src/modules/bt-management/testing/recorded-frames.d.ts.map +1 -0
  572. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +3 -1
  573. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  574. package/lib/typescript/module/src/modules/bt-management/types/bluetooth-error.d.ts +23 -0
  575. package/lib/typescript/module/src/modules/bt-management/types/bluetooth-error.d.ts.map +1 -0
  576. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts +4 -0
  577. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  578. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +4 -0
  579. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  580. package/lib/typescript/module/src/modules/bt-management/types/device-connection-event.d.ts +16 -0
  581. package/lib/typescript/module/src/modules/bt-management/types/device-connection-event.d.ts.map +1 -0
  582. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +2 -0
  583. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  584. package/lib/typescript/module/src/modules/bt-management/types/error-callback.d.ts +5 -2
  585. package/lib/typescript/module/src/modules/bt-management/types/error-callback.d.ts.map +1 -1
  586. package/lib/typescript/module/src/modules/bt-management/types/i-bt-managed-device.d.ts +1 -0
  587. package/lib/typescript/module/src/modules/bt-management/types/i-bt-managed-device.d.ts.map +1 -1
  588. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts +2 -0
  589. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  590. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts +8 -0
  591. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts.map +1 -0
  592. package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts +10 -0
  593. package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts.map +1 -0
  594. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  595. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  596. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +4 -0
  597. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  598. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  599. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +2 -0
  600. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  601. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +1 -1
  602. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  603. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts +5 -0
  604. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts.map +1 -0
  605. package/lib/typescript/module/src/modules/helpers/form-items/form-field.d.ts +4 -1
  606. package/lib/typescript/module/src/modules/helpers/form-items/form-field.d.ts.map +1 -1
  607. package/lib/typescript/module/src/modules/helpers/index.d.ts +1 -0
  608. package/lib/typescript/module/src/modules/helpers/index.d.ts.map +1 -1
  609. package/lib/typescript/module/src/modules/helpers/utils/s-log.d.ts.map +1 -1
  610. package/lib/typescript/module/src/modules/helpers/utils/sentry-logger.d.ts +7 -1
  611. package/lib/typescript/module/src/modules/helpers/utils/sentry-logger.d.ts.map +1 -1
  612. package/lib/typescript/module/src/modules/helpers/utils/telemetry.d.ts +68 -0
  613. package/lib/typescript/module/src/modules/helpers/utils/telemetry.d.ts.map +1 -0
  614. package/lib/typescript/module/src/modules/image/components/optimized-image.d.ts +1 -1
  615. package/lib/typescript/module/src/modules/image/components/optimized-image.d.ts.map +1 -1
  616. package/lib/typescript/module/src/modules/image/types/optimized-image-props.d.ts +4 -0
  617. package/lib/typescript/module/src/modules/image/types/optimized-image-props.d.ts.map +1 -1
  618. package/lib/typescript/module/src/modules/questionnaire-response-form/components/content/questionnaire-content-error.d.ts.map +1 -1
  619. package/lib/typescript/module/src/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.d.ts.map +1 -1
  620. package/lib/typescript/module/src/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.d.ts.map +1 -1
  621. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  622. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  623. package/lib/typescript/module/src/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.d.ts +1 -0
  624. package/lib/typescript/module/src/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.d.ts.map +1 -1
  625. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +1 -0
  626. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  627. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation.d.ts +1 -0
  628. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation.d.ts.map +1 -1
  629. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +2 -0
  630. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  631. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +1 -0
  632. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  633. package/lib/typescript/module/src/modules/tile/components/task-icon.d.ts.map +1 -1
  634. package/lib/typescript/module/src/modules/ui/components/background-sync-setting.d.ts +9 -0
  635. package/lib/typescript/module/src/modules/ui/components/background-sync-setting.d.ts.map +1 -0
  636. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts +12 -0
  637. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -0
  638. package/lib/typescript/module/src/modules/ui/components/ecg-strip-viewer.d.ts +17 -0
  639. package/lib/typescript/module/src/modules/ui/components/ecg-strip-viewer.d.ts.map +1 -0
  640. package/lib/typescript/module/src/modules/ui/components/health-import-card.d.ts +13 -0
  641. package/lib/typescript/module/src/modules/ui/components/health-import-card.d.ts.map +1 -0
  642. package/lib/typescript/module/src/modules/ui/components/manual-entry-form.d.ts +20 -0
  643. package/lib/typescript/module/src/modules/ui/components/manual-entry-form.d.ts.map +1 -0
  644. package/lib/typescript/module/src/modules/ui/components/pairing-flow.d.ts +15 -0
  645. package/lib/typescript/module/src/modules/ui/components/pairing-flow.d.ts.map +1 -0
  646. package/lib/typescript/module/src/modules/ui/components/supported-devices-catalog-list.d.ts +16 -0
  647. package/lib/typescript/module/src/modules/ui/components/supported-devices-catalog-list.d.ts.map +1 -0
  648. package/lib/typescript/module/src/modules/ui/components/urine-test-result.d.ts +10 -0
  649. package/lib/typescript/module/src/modules/ui/components/urine-test-result.d.ts.map +1 -0
  650. package/lib/typescript/module/src/modules/ui/index.d.ts +11 -0
  651. package/lib/typescript/module/src/modules/ui/index.d.ts.map +1 -0
  652. package/lib/typescript/module/src/modules/ui/types.d.ts +24 -0
  653. package/lib/typescript/module/src/modules/ui/types.d.ts.map +1 -0
  654. package/lib/typescript/module/src/modules/ui/use-ovok-ui.d.ts +7 -0
  655. package/lib/typescript/module/src/modules/ui/use-ovok-ui.d.ts.map +1 -0
  656. package/package.json +145 -6
@@ -8,12 +8,15 @@ var _reactNative = require("react-native");
8
8
  var _reactNativeBlePlx = require("react-native-ble-plx");
9
9
  var _index = require("../../helpers/index.js");
10
10
  var _sentryLogger = require("../../helpers/utils/sentry-logger.js");
11
+ var _telemetry = require("../../helpers/utils/telemetry.js");
12
+ var _bluetoothError = require("../types/bluetooth-error.js");
11
13
  var _deviceCreator = require("./device-creator.js");
12
14
  /* eslint-disable max-lines */
13
15
 
14
16
  class BTManager {
15
17
  static MAX_DEVICES = 15; // Safety limit to prevent unbounded growth
16
18
  devices = new Map();
19
+ forgottenDeviceIds = new Set();
17
20
  eventSubscriptions = [];
18
21
  scanGeneration = 0;
19
22
  scanActive = false;
@@ -41,10 +44,12 @@ class BTManager {
41
44
  this.onDeviceFoundCallback = undefined;
42
45
  this.onResultCallback = undefined;
43
46
  this.onDeviceStatusChangedCallback = undefined;
47
+ this.onConnectionEventCallback = undefined;
44
48
  this.devices.forEach(device => {
45
49
  device.destroy();
46
50
  });
47
51
  this.devices.clear();
52
+ this.forgottenDeviceIds.clear();
48
53
  this.deviceCreator.destroy();
49
54
  };
50
55
  startScan = () => {
@@ -82,7 +87,7 @@ class BTManager {
82
87
  subscription = this.bleManager.onStateChange(onStateChange, true);
83
88
  } catch (error) {
84
89
  this.onErrorCallback?.({
85
- error: error instanceof Error ? error : String(error)
90
+ error: (0, _bluetoothError.toBluetoothError)(error)
86
91
  });
87
92
  return;
88
93
  }
@@ -121,11 +126,44 @@ class BTManager {
121
126
  this.onDeviceFoundCallback = undefined;
122
127
  this.onResultCallback = undefined;
123
128
  this.onDeviceStatusChangedCallback = undefined;
129
+ this.onConnectionEventCallback = undefined;
124
130
  this.devices.forEach(device => {
125
131
  device.destroy();
126
132
  });
127
133
  this.devices.clear();
128
134
  };
135
+
136
+ /**
137
+ * Pauses discovery without tearing down devices or their callbacks.
138
+ *
139
+ * Use this when an app temporarily stops scanning, for example while it is in the
140
+ * background but an already-connected device may still deliver a measurement.
141
+ */
142
+ pauseScan = () => {
143
+ if (this.destroyed) {
144
+ return;
145
+ }
146
+ (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Pausing scan");
147
+ this.scanGeneration += 1;
148
+ this.scanActive = false;
149
+ this.scanStarting = false;
150
+ this.removeStateChangeListener();
151
+ this.bleManager.stopDeviceScan();
152
+ };
153
+
154
+ /**
155
+ * Resumes discovery without clearing devices or callbacks.
156
+ *
157
+ * Restarting unconditionally also recovers when an app stopped the underlying BLE scan
158
+ * directly while BTManager still believed it was active.
159
+ */
160
+ resumeScan = () => {
161
+ if (this.destroyed) {
162
+ return;
163
+ }
164
+ (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Resuming scan");
165
+ this.restartScan();
166
+ };
129
167
  restartScan = () => {
130
168
  if (this.destroyed) {
131
169
  return;
@@ -176,16 +214,35 @@ class BTManager {
176
214
  });
177
215
  this.scanActive = true;
178
216
  (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Scan started (continuous mode)");
217
+ (0, _telemetry.addOvokSpanEvent)("bluetooth.scan.started", {
218
+ platform: _reactNative.Platform.OS,
219
+ background: this.backgroundScanEnabled
220
+ });
179
221
  } catch (error) {
180
222
  this.onErrorCallback?.({
181
- error: error instanceof Error ? error : String(error)
223
+ error: (0, _bluetoothError.toBluetoothError)(error)
182
224
  });
183
225
  } finally {
184
226
  this.scanStarting = false;
185
227
  }
186
228
  };
187
229
  restoreDevices = devices => {
188
- devices.forEach(device => this.onScanResult(null, device));
230
+ devices.forEach(device => {
231
+ this.forgottenDeviceIds.delete(device.id);
232
+ this.onScanResult(null, device);
233
+ });
234
+ };
235
+
236
+ /** Disconnects one device and prevents it from being re-created by later advertisements. */
237
+ forget = async deviceId => {
238
+ this.forgottenDeviceIds.add(deviceId);
239
+ this.autoConnectCandidates.delete(deviceId);
240
+ const device = this.devices.get(deviceId);
241
+ if (!device) {
242
+ return;
243
+ }
244
+ this.devices.delete(deviceId);
245
+ await device.disconnect();
189
246
  };
190
247
  onDeviceFound = callback => {
191
248
  (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Setting onDeviceFound callback");
@@ -199,6 +256,10 @@ class BTManager {
199
256
  (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Setting onDeviceStatusChanged callback");
200
257
  this.onDeviceStatusChangedCallback = callback;
201
258
  };
259
+ onConnectionEvent = callback => {
260
+ (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Setting onConnectionEvent callback");
261
+ this.onConnectionEventCallback = callback;
262
+ };
202
263
  onResult = callback => {
203
264
  (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Setting onResult callback");
204
265
  this.onResultCallback = callback;
@@ -210,7 +271,7 @@ class BTManager {
210
271
  try {
211
272
  if (error) {
212
273
  this.onErrorCallback?.({
213
- error: error
274
+ error: (0, _bluetoothError.toBluetoothError)(error)
214
275
  });
215
276
  (0, _sentryLogger.sentryLogger)("error", "BT_MANAGER: Scan result error", {
216
277
  error: error instanceof Error ? error.message : error
@@ -231,6 +292,9 @@ class BTManager {
231
292
  if (!device) {
232
293
  return;
233
294
  }
295
+ if (this.forgottenDeviceIds.has(device.id)) {
296
+ return;
297
+ }
234
298
  if (this.devices.has(device.id)) {
235
299
  return;
236
300
  }
@@ -253,14 +317,21 @@ class BTManager {
253
317
  deviceName,
254
318
  onError: this.onErrorCallback?.bind(this),
255
319
  onDeviceStatusChanged: this.onDeviceStatusChangedCallback?.bind(this),
320
+ onConnectionEvent: this.onConnectionEventCallback?.bind(this),
256
321
  onResult: this.onResultCallback?.bind(this),
257
322
  oneReadingPerConnection: this.options.oneReadingPerConnection,
258
323
  deliveredEcgFileNames: this.options.deliveredEcgFileNames,
324
+ resultPolicy: this.options.resultPolicies?.[deviceName],
259
325
  onDeviceDisconnected: () => {
260
326
  this.removeDeviceFromFoundedDevices?.bind(this)(device.id);
261
327
  }
262
328
  });
263
329
  this.devices.set(device.id, deviceClass);
330
+ (0, _telemetry.recordOvokMetric)("ovok.devices.found", 1, {
331
+ deviceId: device.id,
332
+ model: deviceName,
333
+ platform: _reactNative.Platform.OS
334
+ });
264
335
  this.onDeviceFoundCallback?.(deviceClass, this);
265
336
  this.queueAutoConnect(deviceClass);
266
337
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeBlePlx","_index","_sentryLogger","_deviceCreator","BTManager","MAX_DEVICES","devices","Map","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","constructor","bleManager","acceptedDevices","options","deviceCreator","DeviceCreator","backgroundScanEnabled","backgroundEnabled","destroy","sentryLogger","stopScan","autoConnectTimer","clearTimeout","undefined","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","forEach","device","clear","startScan","stateChangeListener","generation","subscription","poweredOnBeforeSubscription","onStateChange","state","State","PoweredOn","removeStateChangeListener","startDeviceScan","Platform","OS","Linking","sendIntent","error","Error","String","push","setBackgroundScanEnabled","enabled","restartScan","stopDeviceScan","sub","remove","index","indexOf","splice","serviceUUIDs","length","scanMode","ScanMode","LowPower","Balanced","onScanResult","restoreDevices","onDeviceFound","callback","onError","onDeviceStatusChanged","onResult","message","slog","advertisedName","name","trim","localName","has","id","deviceName","getDeviceName","size","deviceId","currentSize","deviceClass","createDevice","bind","oneReadingPerConnection","deliveredEcgFileNames","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","queueAutoConnect","autoConnect","setTimeout","values","connect","onDeviceSelectionRequired","select","selected","Math","max","autoConnectDelayMs","get","delete","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeBlePlx","_index","_sentryLogger","_telemetry","_bluetoothError","_deviceCreator","BTManager","MAX_DEVICES","devices","Map","forgottenDeviceIds","Set","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","constructor","bleManager","acceptedDevices","options","deviceCreator","DeviceCreator","backgroundScanEnabled","backgroundEnabled","destroy","sentryLogger","stopScan","autoConnectTimer","clearTimeout","undefined","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","onConnectionEventCallback","forEach","device","clear","startScan","stateChangeListener","generation","subscription","poweredOnBeforeSubscription","onStateChange","state","State","PoweredOn","removeStateChangeListener","startDeviceScan","Platform","OS","Linking","sendIntent","error","toBluetoothError","push","setBackgroundScanEnabled","enabled","restartScan","stopDeviceScan","sub","remove","pauseScan","resumeScan","index","indexOf","splice","serviceUUIDs","length","scanMode","ScanMode","LowPower","Balanced","onScanResult","addOvokSpanEvent","platform","background","restoreDevices","delete","id","forget","deviceId","add","get","disconnect","onDeviceFound","callback","onError","onDeviceStatusChanged","onConnectionEvent","onResult","Error","message","slog","advertisedName","name","trim","localName","has","deviceName","getDeviceName","size","currentSize","deviceClass","createDevice","bind","oneReadingPerConnection","deliveredEcgFileNames","resultPolicy","resultPolicies","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","recordOvokMetric","model","queueAutoConnect","autoConnect","setTimeout","values","connect","onDeviceSelectionRequired","select","selected","Math","max","autoConnectDelayMs","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AASA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAEA,IAAAK,eAAA,GAAAL,OAAA;AAQA,IAAAM,cAAA,GAAAN,OAAA;AAvBA;;AAiDA,MAAMO,SAAS,CAAsC;EACnD,OAAwBC,WAAW,GAAG,EAAE,CAAC,CAAC;EAClCC,OAAO,GAAG,IAAIC,GAAG,CAA0C,CAAC;EAC5DC,kBAAkB,GAAG,IAAIC,GAAG,CAAS,CAAC;EAGtCC,kBAAkB,GAAmB,EAAE;EACvCC,cAAc,GAAG,CAAC;EAClBC,UAAU,GAAG,KAAK;EAClBC,YAAY,GAAG,KAAK;EACpBC,SAAS,GAAG,KAAK;EAIjBC,qBAAqB,GAAG,IAAIR,GAAG,CAA0C,CAAC;EAGlFS,WAAWA,CACQC,UAAsB,EACtBC,eAAkB,EAClBC,OAAyB,GAAG,CAAC,CAAC,EAC/C;IAAA,KAHiBF,UAAsB,GAAtBA,UAAsB;IAAA,KACtBC,eAAkB,GAAlBA,eAAkB;IAAA,KAClBC,OAAyB,GAAzBA,OAAyB;IAE1C,IAAI,CAACC,aAAa,GAAG,IAAIC,4BAAa,CAAC,IAAI,CAACH,eAAe,CAAC;IAC5D,IAAI,CAACI,qBAAqB,GAAGH,OAAO,CAACI,iBAAiB,KAAK,IAAI;EACjE;EAEOC,OAAO,GAAGA,CAAA,KAAM;IACrB,IAAAC,0BAAY,EAAC,MAAM,EAAE,kCAAkC,CAAC;IAExD,IAAI,CAACX,SAAS,GAAG,IAAI;IACrB,IAAI,CAACY,QAAQ,CAAC,CAAC;IACf,IAAI,IAAI,CAACC,gBAAgB,EAAE;MACzBC,YAAY,CAAC,IAAI,CAACD,gBAAgB,CAAC;MACnC,IAAI,CAACA,gBAAgB,GAAGE,SAAS;IACnC;;IAEA;IACA,IAAI,CAACC,eAAe,GAAGD,SAAS;IAChC,IAAI,CAACE,qBAAqB,GAAGF,SAAS;IACtC,IAAI,CAACG,gBAAgB,GAAGH,SAAS;IACjC,IAAI,CAACI,6BAA6B,GAAGJ,SAAS;IAC9C,IAAI,CAACK,yBAAyB,GAAGL,SAAS;IAE1C,IAAI,CAACvB,OAAO,CAAC6B,OAAO,CAAEC,MAAM,IAAK;MAC/BA,MAAM,CAACZ,OAAO,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,IAAI,CAAClB,OAAO,CAAC+B,KAAK,CAAC,CAAC;IACpB,IAAI,CAAC7B,kBAAkB,CAAC6B,KAAK,CAAC,CAAC;IAE/B,IAAI,CAACjB,aAAa,CAACI,OAAO,CAAC,CAAC;EAC9B,CAAC;EAEMc,SAAS,GAAGA,CAAA,KAAM;IACvB,IACE,IAAI,CAACxB,SAAS,IACd,IAAI,CAACF,UAAU,IACf,IAAI,CAACC,YAAY,IACjB,IAAI,CAAC0B,mBAAmB,EACxB;MACA;IACF;IAEA,MAAMC,UAAU,GAAG,EAAE,IAAI,CAAC7B,cAAc;IACxC,IAAI8B,YAAsC;IAC1C,IAAIC,2BAA2B,GAAG,KAAK;IAEvC,MAAMC,aAAa,GAAIC,KAAY,IAAK;MACtC,IAAI,IAAI,CAAC9B,SAAS,IAAI0B,UAAU,KAAK,IAAI,CAAC7B,cAAc,EAAE;QACxD;MACF;MAEA,IAAIiC,KAAK,KAAKC,wBAAK,CAACC,SAAS,EAAE;QAC7B,IAAIL,YAAY,EAAE;UAChB,IAAI,CAACM,yBAAyB,CAACN,YAAY,CAAC;QAC9C,CAAC,MAAM;UACLC,2BAA2B,GAAG,IAAI;QACpC;QAEA,IAAI,CAACM,eAAe,CAACR,UAAU,CAAC;QAEhC;MACF;MAEA,IAAAf,0BAAY,EACV,SAAS,EACT,wEACF,CAAC;;MAED;MACA;MACA;MACA,IAAIwB,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;QAC7BC,oBAAO,CAACC,UAAU,CAAC,iDAAiD,CAAC;QAErE;MACF;MAEA,IAAA3B,0BAAY,EACV,SAAS,EACT,4EACF,CAAC;IACH,CAAC;IAED,IAAI;MACFgB,YAAY,GAAG,IAAI,CAACxB,UAAU,CAAC0B,aAAa,CAACA,aAAa,EAAE,IAAI,CAAC;IACnE,CAAC,CAAC,OAAOU,KAAK,EAAE;MACd,IAAI,CAACvB,eAAe,GAAG;QACrBuB,KAAK,EAAE,IAAAC,gCAAgB,EAACD,KAAK;MAC/B,CAAC,CAAC;MAEF;IACF;IAEA,IAAIX,2BAA2B,EAAE;MAC/B,IAAI,CAACK,yBAAyB,CAACN,YAAY,CAAC;IAC9C,CAAC,MAAM;MACL,IAAI,CAACF,mBAAmB,GAAGE,YAAY;MACvC,IAAI,CAAC/B,kBAAkB,CAAC6C,IAAI,CAACd,YAAY,CAAC;IAC5C;EACF,CAAC;;EAED;EACOe,wBAAwB,GAAIC,OAAgB,IAAW;IAC5D,IAAI,IAAI,CAACnC,qBAAqB,KAAKmC,OAAO,EAAE;MAC1C;IACF;IAEA,IAAI,CAACnC,qBAAqB,GAAGmC,OAAO;IAEpC,IAAI,IAAI,CAAC7C,UAAU,IAAI,IAAI,CAAC2B,mBAAmB,EAAE;MAC/C,IAAI,CAACmB,WAAW,CAAC,CAAC;IACpB;EACF,CAAC;EAEMhC,QAAQ,GAAGA,CAAA,KAAM;IACtB,IAAAD,0BAAY,EAAC,MAAM,EAAE,2BAA2B,CAAC;IAEjD,IAAI,CAACd,cAAc,IAAI,CAAC;IACxB,IAAI,CAACC,UAAU,GAAG,KAAK;IACvB,IAAI,CAACC,YAAY,GAAG,KAAK;IACzB,IAAI,CAACkC,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAAC9B,UAAU,CAAC0C,cAAc,CAAC,CAAC;;IAEhC;IACA,IAAI,CAACjD,kBAAkB,CAACyB,OAAO,CAAEyB,GAAG,IAAKA,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC;IACtD,IAAI,CAACnD,kBAAkB,GAAG,EAAE;;IAE5B;IACA,IAAI,CAACoB,eAAe,GAAGD,SAAS;IAChC,IAAI,CAACE,qBAAqB,GAAGF,SAAS;IACtC,IAAI,CAACG,gBAAgB,GAAGH,SAAS;IACjC,IAAI,CAACI,6BAA6B,GAAGJ,SAAS;IAC9C,IAAI,CAACK,yBAAyB,GAAGL,SAAS;IAE1C,IAAI,CAACvB,OAAO,CAAC6B,OAAO,CAAEC,MAAM,IAAK;MAC/BA,MAAM,CAACZ,OAAO,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,IAAI,CAAClB,OAAO,CAAC+B,KAAK,CAAC,CAAC;EACtB,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACSyB,SAAS,GAAGA,CAAA,KAAM;IACvB,IAAI,IAAI,CAAChD,SAAS,EAAE;MAClB;IACF;IAEA,IAAAW,0BAAY,EAAC,MAAM,EAAE,0BAA0B,CAAC;IAEhD,IAAI,CAACd,cAAc,IAAI,CAAC;IACxB,IAAI,CAACC,UAAU,GAAG,KAAK;IACvB,IAAI,CAACC,YAAY,GAAG,KAAK;IACzB,IAAI,CAACkC,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAAC9B,UAAU,CAAC0C,cAAc,CAAC,CAAC;EAClC,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACSI,UAAU,GAAGA,CAAA,KAAM;IACxB,IAAI,IAAI,CAACjD,SAAS,EAAE;MAClB;IACF;IAEA,IAAAW,0BAAY,EAAC,MAAM,EAAE,2BAA2B,CAAC;IACjD,IAAI,CAACiC,WAAW,CAAC,CAAC;EACpB,CAAC;EAEOA,WAAW,GAAGA,CAAA,KAAM;IAC1B,IAAI,IAAI,CAAC5C,SAAS,EAAE;MAClB;IACF;IAEA,IAAI,CAACH,cAAc,IAAI,CAAC;IACxB,IAAI,CAACC,UAAU,GAAG,KAAK;IACvB,IAAI,CAACC,YAAY,GAAG,KAAK;IACzB,IAAI,CAACkC,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAAC9B,UAAU,CAAC0C,cAAc,CAAC,CAAC;IAChC,IAAI,CAACrB,SAAS,CAAC,CAAC;EAClB,CAAC;EAEOS,yBAAyB,GAAGA,CAACN,YAAY,GAAG,IAAI,CAACF,mBAAmB,KAAK;IAC/E,IAAI,CAACE,YAAY,EAAE;MACjB;IACF;IAEAA,YAAY,CAACoB,MAAM,CAAC,CAAC;IAErB,IAAI,IAAI,CAACtB,mBAAmB,KAAKE,YAAY,EAAE;MAC7C,IAAI,CAACF,mBAAmB,GAAGV,SAAS;IACtC;IAEA,MAAMmC,KAAK,GAAG,IAAI,CAACtD,kBAAkB,CAACuD,OAAO,CAACxB,YAAY,CAAC;IAE3D,IAAIuB,KAAK,GAAG,CAAC,CAAC,EAAE;MACd,IAAI,CAACtD,kBAAkB,CAACwD,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;IAC1C;EACF,CAAC;EAEOhB,eAAe,GAAIR,UAAkB,IAAK;IAChD,IACE,IAAI,CAAC1B,SAAS,IACd0B,UAAU,KAAK,IAAI,CAAC7B,cAAc,IAClC,IAAI,CAACC,UAAU,IACf,IAAI,CAACC,YAAY,EACjB;MACA;IACF;IAEA,MAAMsD,YAAY,GAAG,IAAI,CAAChD,OAAO,CAACgD,YAAY,IAAI,EAAE;IAEpD,IAAIlB,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC5B,qBAAqB,IAAI,CAAC6C,YAAY,CAACC,MAAM,EAAE;MAC/E,IAAI,CAACtC,eAAe,GAAG;QACrBuB,KAAK,EACH;MACJ,CAAC,CAAC;MAEF;IACF;IAEA,IAAI,CAACxC,YAAY,GAAG,IAAI;IAExB,IAAI;MACF,IAAI,CAACI,UAAU,CAAC+B,eAAe,CAC7B,IAAI,CAAC1B,qBAAqB,GAAG,CAAC,GAAG6C,YAAY,CAAC,GAAG,IAAI,EACrD;QACEE,QAAQ,EAAE,IAAI,CAAC/C,qBAAqB,GAChCgD,2BAAQ,CAACC,QAAQ,GACjBD,2BAAQ,CAACE;MACf,CAAC,EACD,CAACnB,KAAK,EAAEjB,MAAM,KAAK;QACjB,IAAII,UAAU,KAAK,IAAI,CAAC7B,cAAc,EAAE;UACtC;QACF;QAEA,IAAI0C,KAAK,EAAE;UACT,IAAI,CAACzC,UAAU,GAAG,KAAK;QACzB;QAEA,IAAI,CAAC6D,YAAY,CAACpB,KAAK,EAAEjB,MAAM,CAAC;MAClC,CACF,CAAC;MACD,IAAI,CAACxB,UAAU,GAAG,IAAI;MACtB,IAAAa,0BAAY,EAAC,MAAM,EAAE,4CAA4C,CAAC;MAClE,IAAAiD,2BAAgB,EAAC,wBAAwB,EAAE;QACzCC,QAAQ,EAAE1B,qBAAQ,CAACC,EAAE;QACrB0B,UAAU,EAAE,IAAI,CAACtD;MACnB,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO+B,KAAK,EAAE;MACd,IAAI,CAACvB,eAAe,GAAG;QACrBuB,KAAK,EAAE,IAAAC,gCAAgB,EAACD,KAAK;MAC/B,CAAC,CAAC;IACJ,CAAC,SAAS;MACR,IAAI,CAACxC,YAAY,GAAG,KAAK;IAC3B;EACF,CAAC;EAEMgE,cAAc,GAAIvE,OAA0B,IAAK;IACtDA,OAAO,CAAC6B,OAAO,CAAEC,MAAM,IAAK;MAC1B,IAAI,CAAC5B,kBAAkB,CAACsE,MAAM,CAAC1C,MAAM,CAAC2C,EAAE,CAAC;MACzC,IAAI,CAACN,YAAY,CAAC,IAAI,EAAErC,MAAM,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC;;EAED;EACO4C,MAAM,GAAG,MAAOC,QAAgB,IAAoB;IACzD,IAAI,CAACzE,kBAAkB,CAAC0E,GAAG,CAACD,QAAQ,CAAC;IACrC,IAAI,CAAClE,qBAAqB,CAAC+D,MAAM,CAACG,QAAQ,CAAC;IAE3C,MAAM7C,MAAM,GAAG,IAAI,CAAC9B,OAAO,CAAC6E,GAAG,CAACF,QAAQ,CAAC;IAEzC,IAAI,CAAC7C,MAAM,EAAE;MACX;IACF;IAEA,IAAI,CAAC9B,OAAO,CAACwE,MAAM,CAACG,QAAQ,CAAC;IAC7B,MAAM7C,MAAM,CAACgD,UAAU,CAAC,CAAC;EAC3B,CAAC;EAEMC,aAAa,GAClBC,QAGkB,IACf;IACH,IAAA7D,0BAAY,EAAC,MAAM,EAAE,4CAA4C,CAAC;IAClE,IAAI,CAACM,qBAAqB,GAAGuD,QAAQ;EACvC,CAAC;EAEMC,OAAO,GAAID,QAAwC,IAAK;IAC7D,IAAA7D,0BAAY,EAAC,MAAM,EAAE,sCAAsC,CAAC;IAC5D,IAAI,CAACK,eAAe,GAAGwD,QAAQ;EACjC,CAAC;EAEME,qBAAqB,GAC1BF,QAAqD,IAClD;IACH,IAAA7D,0BAAY,EAAC,MAAM,EAAE,oDAAoD,CAAC;IAC1E,IAAI,CAACQ,6BAA6B,GAAGqD,QAAQ;EAC/C,CAAC;EAEMG,iBAAiB,GACtBH,QAAgD,IAC7C;IACH,IAAA7D,0BAAY,EAAC,MAAM,EAAE,gDAAgD,CAAC;IACtE,IAAI,CAACS,yBAAyB,GAAGoD,QAAQ;EAC3C,CAAC;EAEMI,QAAQ,GACbJ,QAAyD,IACtD;IACH,IAAA7D,0BAAY,EAAC,MAAM,EAAE,uCAAuC,CAAC;IAC7D,IAAI,CAACO,gBAAgB,GAAGsD,QAAQ;EAClC,CAAC;;EAED;;EAYQb,YAAY,GAAGA,CAACpB,KAAsB,EAAEjB,MAAqB,KAAK;IACxE,IAAI;MACF,IAAIiB,KAAK,EAAE;QACX,IAAI,CAACvB,eAAe,GAAG;UACrBuB,KAAK,EAAE,IAAAC,gCAAgB,EAACD,KAAK;QAC/B,CAAC,CAAC;QACA,IAAA5B,0BAAY,EAAC,OAAO,EAAE,+BAA+B,EAAE;UACrD4B,KAAK,EAAEA,KAAK,YAAYsC,KAAK,GAAGtC,KAAK,CAACuC,OAAO,GAAGvC;QAClD,CAAC,CAAC;QACF,IAAAwC,WAAI,EAACxC,KAAK,EAAE,+BAA+B,EAAE;UAAEA;QAAM,CAAC,CAAC;QAEvD;MACF;;MAEA;AACN;AACA;AACA;AACA;AACA;MACM,MAAMyC,cAAc,GAClB1D,MAAM,EAAE2D,IAAI,EAAEC,IAAI,CAAC,CAAC,IAAI5D,MAAM,EAAE6D,SAAS,EAAED,IAAI,CAAC,CAAC,IAAI,EAAE;MAEzD,IAAI,CAAC5D,MAAM,EAAE;QACX;MACF;MAEA,IAAI,IAAI,CAAC5B,kBAAkB,CAAC0F,GAAG,CAAC9D,MAAM,CAAC2C,EAAE,CAAC,EAAE;QAC1C;MACF;MAEA,IAAI,IAAI,CAACzE,OAAO,CAAC4F,GAAG,CAAC9D,MAAM,CAAC2C,EAAE,CAAC,EAAE;QAC/B;MACF;MAEA,MAAMoB,UAAU,GAAG,IAAI,CAAC/E,aAAa,CAACgF,aAAa,CACjDN,cAAc,EACd1D,MAAM,CAAC+B,YAAY,IAAI,EACzB,CAAC;MAED,IAAI,CAACgC,UAAU,EAAE;QACf;MACF;;MAEA;MACA,IAAI,IAAI,CAAC7F,OAAO,CAAC+F,IAAI,IAAIjG,SAAS,CAACC,WAAW,EAAE;QAC9C,IAAAoB,0BAAY,EACV,SAAS,EACT,4DAA4D,EAC5D;UACEwD,QAAQ,EAAE7C,MAAM,CAAC2C,EAAE;UACnBoB,UAAU,EAAE/D,MAAM,CAAC2D,IAAI;UACvBO,WAAW,EAAE,IAAI,CAAChG,OAAO,CAAC+F;QAC5B,CACF,CAAC;QAED;MACF;MAEA,MAAME,WAAW,GAAG,IAAI,CAACnF,aAAa,CAACoF,YAAY,CAAC;QAClDpE,MAAM;QACN+D,UAAU;QACVZ,OAAO,EAAE,IAAI,CAACzD,eAAe,EAAE2E,IAAI,CAAC,IAAI,CAAC;QACzCjB,qBAAqB,EAAE,IAAI,CAACvD,6BAA6B,EAAEwE,IAAI,CAAC,IAAI,CAAC;QACrEhB,iBAAiB,EAAE,IAAI,CAACvD,yBAAyB,EAAEuE,IAAI,CAAC,IAAI,CAAC;QAC7Df,QAAQ,EAAE,IAAI,CAAC1D,gBAAgB,EAAEyE,IAAI,CAAC,IAAI,CAAC;QAC3CC,uBAAuB,EAAE,IAAI,CAACvF,OAAO,CAACuF,uBAAuB;QAC7DC,qBAAqB,EAAE,IAAI,CAACxF,OAAO,CAACwF,qBAAqB;QACzDC,YAAY,EAAE,IAAI,CAACzF,OAAO,CAAC0F,cAAc,GAAGV,UAAU,CAAC;QACvDW,oBAAoB,EAAEA,CAAA,KAAM;UAC1B,IAAI,CAACC,8BAA8B,EAAEN,IAAI,CAAC,IAAI,CAAC,CAACrE,MAAM,CAAC2C,EAAE,CAAC;QAC5D;MACF,CAAC,CAAC;MAEF,IAAI,CAACzE,OAAO,CAAC0G,GAAG,CAAC5E,MAAM,CAAC2C,EAAE,EAAEwB,WAAW,CAAC;MACxC,IAAAU,2BAAgB,EAAC,oBAAoB,EAAE,CAAC,EAAE;QACxChC,QAAQ,EAAE7C,MAAM,CAAC2C,EAAE;QACnBmC,KAAK,EAAEf,UAAU;QACjBxB,QAAQ,EAAE1B,qBAAQ,CAACC;MACrB,CAAC,CAAC;MAEF,IAAI,CAACnB,qBAAqB,GAAGwE,WAAW,EAAE,IAAI,CAAC;MAC/C,IAAI,CAACY,gBAAgB,CAACZ,WAAW,CAAC;IACpC,CAAC,CAAC,OAAOlD,KAAK,EAAE;MACd,IAAA5B,0BAAY,EAAC,OAAO,EAAE,mCAAmC,EAAE;QACzD4B,KAAK,EAAEA,KAAK,YAAYsC,KAAK,GAAGtC,KAAK,CAACuC,OAAO,GAAGvC,KAAK;QACrD4B,QAAQ,EAAE7C,MAAM,EAAE2C,EAAE;QACpBoB,UAAU,EAAE/D,MAAM,EAAE2D;MACtB,CAAC,CAAC;MACF,IAAAF,WAAI,EAACxC,KAAK,EAAE,mCAAmC,EAAE;QAC/CA,KAAK;QACL4B,QAAQ,EAAE7C,MAAM,EAAE2C,EAAE;QACpBoB,UAAU,EAAE/D,MAAM,EAAE2D;MACtB,CAAC,CAAC;IACJ;EACF,CAAC;EAEOoB,gBAAgB,GAAI/E,MAAuC,IAAW;IAC5E,IAAI,CAAC,IAAI,CAACjB,OAAO,CAACiG,WAAW,EAAE;MAC7B;IACF;IAEA,IAAI,CAACrG,qBAAqB,CAACiG,GAAG,CAAC5E,MAAM,CAAC2C,EAAE,EAAE3C,MAAM,CAAC;IAEjD,IAAI,IAAI,CAACT,gBAAgB,EAAE;MACzBC,YAAY,CAAC,IAAI,CAACD,gBAAgB,CAAC;IACrC;IAEA,IAAI,CAACA,gBAAgB,GAAG0F,UAAU,CAAC,MAAM;MACvC,IAAI,CAAC1F,gBAAgB,GAAGE,SAAS;MACjC,MAAMvB,OAAO,GAAG,CAAC,GAAG,IAAI,CAACS,qBAAqB,CAACuG,MAAM,CAAC,CAAC,CAAC;MAExD,IAAI,CAACvG,qBAAqB,CAACsB,KAAK,CAAC,CAAC;MAElC,IAAI/B,OAAO,CAAC8D,MAAM,KAAK,CAAC,EAAE;QACxB,KAAK9D,OAAO,CAAC,CAAC,CAAC,EAAEiH,OAAO,CAAC,CAAC;QAE1B;MACF;MAEA,IAAIjH,OAAO,CAAC8D,MAAM,GAAG,CAAC,EAAE;QACtB,IAAI,CAACjD,OAAO,CAACqG,yBAAyB,GAAG;UACvClH,OAAO,EAAEA,OAAuC;UAChDmH,MAAM,EAAE,MAAOC,QAAQ,IAAK;YAC1B,MAAMA,QAAQ,CAACH,OAAO,CAAC,CAAC;UAC1B;QACF,CAAC,CAAC;MACJ;IACF,CAAC,EAAEI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAACzG,OAAO,CAAC0G,kBAAkB,IAAI,GAAG,CAAC,CAAC;EACzD,CAAC;EAEOd,8BAA8B,GAAI9B,QAAgB,IAAK;IAC7D,IAAAxD,0BAAY,EACV,MAAM,EACN,2EAA2E,EAC3E;MACEwD,QAAQ;MACRkB,UAAU,EAAE,IAAI,CAAC7F,OAAO,CAAC6E,GAAG,CAACF,QAAQ,CAAC,EAAE7C,MAAM,EAAE2D;IAClD,CACF,CAAC;IACD,IAAI,CAACzF,OAAO,CAACwE,MAAM,CAACG,QAAQ,CAAC;EAC/B,CAAC;AACH;AAAC6C,OAAA,CAAA1H,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -5,10 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.BTConnectionHandler = void 0;
7
7
  var _sentryLogger = require("../../../helpers/utils/sentry-logger.js");
8
+ var _telemetry = require("../../../helpers/utils/telemetry.js");
8
9
  var _deviceStatus = require("../../types/device-status.js");
9
10
  var _base64ToHex = require("../../utils/base-64-to-hex.js");
10
11
  var _btCommandWriter = require("./bt-command-writer.js");
11
12
  var _btDeviceInformation = require("./bt-device-information.js");
13
+ /* eslint-disable max-lines */
14
+
12
15
  class BTConnectionHandler {
13
16
  characteristicSubscriptions = [];
14
17
  constructor(device, mainServices, callbacks, preferredMtu) {
@@ -19,21 +22,55 @@ class BTConnectionHandler {
19
22
  this.writer = new _btCommandWriter.BTCommandWriter(device, callbacks.onError);
20
23
  }
21
24
  connect = async () => {
25
+ const startedAt = Date.now();
26
+ const span = (0, _telemetry.startOvokSpan)("bluetooth.connect", {
27
+ deviceId: this.device.id,
28
+ deviceName: this.device.name ?? "unknown"
29
+ });
22
30
  try {
23
31
  await this.connectWithRetries();
24
32
  await this.requestPreferredMtu();
25
33
  await this.device.discoverAllServicesAndCharacteristics();
26
34
  await (0, _btDeviceInformation.readDeviceInformation)(this.device, this.callbacks.onDeviceInfo);
35
+ await this.readBatteryLevel();
27
36
  this.callbacks.onStatusChanged?.(_deviceStatus.DeviceStatus.CONNECTED);
28
37
  this.onDisconnectSubscription = this.device.onDisconnected(this.onDeviceDisconnected);
29
38
  await this.subscribeToAllCharacteristics();
39
+ span?.setStatus?.({
40
+ code: 1
41
+ });
30
42
  } catch (error) {
31
43
  (0, _sentryLogger.sentryLogger)("error", "BT_MANAGER: Error connecting to device", {
32
44
  error: error instanceof Error ? error.message : error,
33
45
  deviceName: this.device.name
34
46
  });
35
47
  this.callbacks.onError?.(error);
48
+ if (/pair|bond|authentication|passkey|pin/i.test(String(error))) {
49
+ (0, _telemetry.recordOvokMetric)("ovok.pairing.failures", 1, {
50
+ deviceId: this.device.id,
51
+ deviceName: this.device.name ?? "unknown"
52
+ });
53
+ (0, _telemetry.addOvokSpanEvent)("pairing.failed", {
54
+ deviceId: this.device.id,
55
+ deviceName: this.device.name ?? "unknown"
56
+ });
57
+ this.callbacks.onConnectionEvent?.({
58
+ kind: "pairing",
59
+ pairingCodeRequired: true
60
+ });
61
+ }
36
62
  this.callbacks.onStatusChanged?.(_deviceStatus.DeviceStatus.DISCONNECTED);
63
+ span?.recordException?.(error instanceof Error ? error : String(error));
64
+ span?.setStatus?.({
65
+ code: 2,
66
+ message: error instanceof Error ? error.message : String(error)
67
+ });
68
+ } finally {
69
+ (0, _telemetry.recordOvokDuration)("ovok.device.connection.duration", Date.now() - startedAt, {
70
+ deviceId: this.device.id,
71
+ deviceName: this.device.name ?? "unknown"
72
+ });
73
+ span?.end();
37
74
  }
38
75
  };
39
76
  destroy = () => {
@@ -68,6 +105,26 @@ class BTConnectionHandler {
68
105
  });
69
106
  }
70
107
  };
108
+
109
+ /** Reads the standard Battery Service when a peripheral exposes it. */
110
+ readBatteryLevel = async () => {
111
+ try {
112
+ const characteristic = await this.device.readCharacteristicForService("180F", "2A19");
113
+ if (!characteristic.value) {
114
+ return;
115
+ }
116
+ const value = Number.parseInt((0, _base64ToHex.base64ToHex)(characteristic.value)[0] ?? "", 16);
117
+ if (value === undefined || value > 100) {
118
+ return;
119
+ }
120
+ this.callbacks.onConnectionEvent?.({
121
+ kind: "battery",
122
+ batteryLevel: value
123
+ });
124
+ } catch {
125
+ // Battery is optional. A device without the standard service must still connect.
126
+ }
127
+ };
71
128
  connectWithRetries = async () => {
72
129
  const maxRetries = 5;
73
130
  const retryDelay = 1000;
@@ -1 +1 @@
1
- {"version":3,"names":["_sentryLogger","require","_deviceStatus","_base64ToHex","_btCommandWriter","_btDeviceInformation","BTConnectionHandler","characteristicSubscriptions","constructor","device","mainServices","callbacks","preferredMtu","writer","BTCommandWriter","onError","connect","connectWithRetries","requestPreferredMtu","discoverAllServicesAndCharacteristics","readDeviceInformation","onDeviceInfo","onStatusChanged","DeviceStatus","CONNECTED","onDisconnectSubscription","onDisconnected","onDeviceDisconnected","subscribeToAllCharacteristics","error","sentryLogger","Error","message","deviceName","name","DISCONNECTED","destroy","forEach","sub","remove","reset","sendCommands","commands","send","negotiated","requestMTU","useNegotiatedMtu","mtu","deviceId","id","requestedMtu","String","maxRetries","retryDelay","maxDelay","connected","retryCount","isConnected","errorCode","willRetry","Promise","resolve","setTimeout","Math","min","pow","isNormalDisconnect","mainService","monitorUuid","monitorUuids","subscription","monitorCharacteristicForService","uuid","result","value","hexValue","base64ToHex","onDataReceived","push","initialCommands","length","onCommandSent","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-connection-handler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_sentryLogger","require","_telemetry","_deviceStatus","_base64ToHex","_btCommandWriter","_btDeviceInformation","BTConnectionHandler","characteristicSubscriptions","constructor","device","mainServices","callbacks","preferredMtu","writer","BTCommandWriter","onError","connect","startedAt","Date","now","span","startOvokSpan","deviceId","id","deviceName","name","connectWithRetries","requestPreferredMtu","discoverAllServicesAndCharacteristics","readDeviceInformation","onDeviceInfo","readBatteryLevel","onStatusChanged","DeviceStatus","CONNECTED","onDisconnectSubscription","onDisconnected","onDeviceDisconnected","subscribeToAllCharacteristics","setStatus","code","error","sentryLogger","Error","message","test","String","recordOvokMetric","addOvokSpanEvent","onConnectionEvent","kind","pairingCodeRequired","DISCONNECTED","recordException","recordOvokDuration","end","destroy","forEach","sub","remove","reset","sendCommands","commands","send","negotiated","requestMTU","useNegotiatedMtu","mtu","requestedMtu","characteristic","readCharacteristicForService","value","Number","parseInt","base64ToHex","undefined","batteryLevel","maxRetries","retryDelay","maxDelay","connected","retryCount","isConnected","errorCode","willRetry","Promise","resolve","setTimeout","Math","min","pow","isNormalDisconnect","mainService","monitorUuid","monitorUuids","subscription","monitorCharacteristicForService","uuid","result","hexValue","onDataReceived","push","initialCommands","length","onCommandSent","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-connection-handler.ts"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.BTManagedDevice = void 0;
7
7
  var _sentryLogger = require("../../../helpers/utils/sentry-logger.js");
8
+ var _telemetry = require("../../../helpers/utils/telemetry.js");
9
+ var _bluetoothError = require("../../types/bluetooth-error.js");
8
10
  var _deviceStatus = require("../../types/device-status.js");
11
+ var _resultIdentity = require("../../utils/result-identity.js");
9
12
  var _summariseMeasurementForLog = require("../../utils/summarise-measurement-for-log.js");
10
13
  var _supportedMeasurementTypeKeys = require("../../utils/supported-measurement-type-keys.js");
11
14
  var _btConnectionHandler = require("./bt-connection-handler.js");
@@ -15,6 +18,9 @@ var _pollingCommandSequencer = require("./polling-command-sequencer.js");
15
18
 
16
19
  class BTManagedDevice {
17
20
  resultReportedThisConnection = false;
21
+ reportedMeasurementKinds = new Set();
22
+ reportedDailyTotals = new Set();
23
+ historyResultCount = 0;
18
24
 
19
25
  /**
20
26
  * The timeout in milliseconds for the stuck data.
@@ -67,11 +73,14 @@ class BTManagedDevice {
67
73
  onError: onErrorCallback,
68
74
  onDeviceStatusChanged: onDeviceStatusChangedCallback,
69
75
  onResult: onResultCallback,
76
+ onConnectionEvent: onConnectionEventCallback,
70
77
  onDeviceDisconnected: onDeviceDisconnectedCallback,
71
- oneReadingPerConnection
78
+ oneReadingPerConnection,
79
+ resultPolicy
72
80
  }) {
73
81
  this.device = device;
74
82
  this.oneReadingPerConnection = oneReadingPerConnection === true;
83
+ this.resultPolicy = resultPolicy;
75
84
  (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Creating BTManagedDevice", {
76
85
  deviceId: device.id,
77
86
  deviceName: deviceName
@@ -93,6 +102,12 @@ class BTManagedDevice {
93
102
  deviceData: this.deviceData,
94
103
  deviceName: this.deviceData.name
95
104
  });
105
+ (0, _telemetry.addOvokSpanEvent)("device.status_changed", {
106
+ deviceId: this.deviceData.id,
107
+ model: this.deviceData.name,
108
+ status,
109
+ measurementTypeKey: measurementTypeKey ?? "unknown"
110
+ });
96
111
  onDeviceStatusChangedCallback?.({
97
112
  deviceData: this.deviceData,
98
113
  status: status,
@@ -105,9 +120,21 @@ class BTManagedDevice {
105
120
  deviceData: this.deviceData,
106
121
  deviceName: this.deviceData.name
107
122
  });
123
+ const normalized = (0, _bluetoothError.toBluetoothError)(error);
124
+ if (error && (typeof error === "object" || typeof error === "function")) {
125
+ try {
126
+ Object.defineProperty(error, "ovokCode", {
127
+ value: normalized.code,
128
+ configurable: true,
129
+ enumerable: false
130
+ });
131
+ } catch {
132
+ // Some native error objects are frozen; the original error is still delivered.
133
+ }
134
+ }
108
135
  onErrorCallback?.({
109
136
  deviceData: this.deviceData,
110
- error: error
137
+ error: error instanceof _bluetoothError.BluetoothError ? normalized : error
111
138
  });
112
139
  };
113
140
  this.onResult = ({
@@ -117,18 +144,73 @@ class BTManagedDevice {
117
144
  if (this.oneReadingPerConnection && this.resultReportedThisConnection) {
118
145
  return;
119
146
  }
147
+ const measurementTypeKey = data.measurementTypeKey;
148
+ const policy = this.resultPolicy?.byMeasurement?.[measurementTypeKey] ?? this.resultPolicy?.default ?? "all";
149
+ if (policy === "first-reading-per-kind-per-connection") {
150
+ if (this.reportedMeasurementKinds.has(measurementTypeKey)) {
151
+ return;
152
+ }
153
+ this.reportedMeasurementKinds.add(measurementTypeKey);
154
+ }
155
+ if (policy === "daily-totals-only") {
156
+ const temporal = data;
157
+ const end = temporal.end instanceof Date ? temporal.end : undefined;
158
+ const now = new Date();
159
+
160
+ // Activity totals are useful only after their day has closed. Devices that
161
+ // do not expose an interval are not filtered by this policy.
162
+ if (end && end.getTime() > now.getTime()) {
163
+ return;
164
+ }
165
+ const day = temporal.end ?? temporal.start ?? temporal.recordedAt;
166
+ if (day instanceof Date) {
167
+ const key = `${measurementTypeKey}:${day.toISOString().slice(0, 10)}`;
168
+ if (this.reportedDailyTotals.has(key)) {
169
+ return;
170
+ }
171
+ this.reportedDailyTotals.add(key);
172
+ }
173
+ }
120
174
  this.resultReportedThisConnection = true;
175
+ this.historyResultCount += 1;
176
+ (0, _telemetry.recordOvokMetric)("ovok.readings.received", 1, {
177
+ deviceId: this.deviceData.id,
178
+ model: this.deviceData.name,
179
+ measurementTypeKey
180
+ });
181
+ (0, _telemetry.addOvokSpanEvent)("reading.received", {
182
+ deviceId: this.deviceData.id,
183
+ model: this.deviceData.name,
184
+ measurementTypeKey
185
+ });
121
186
  (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Calling onResult callback", {
122
187
  data: (0, _summariseMeasurementForLog.summariseMeasurementForLog)(data),
123
188
  deviceData: this.deviceData,
124
189
  deviceName: this.deviceData.name
125
190
  });
126
- onResultCallback?.({
191
+ onConnectionEventCallback?.({
192
+ deviceData: this.deviceData,
193
+ kind: "history-download",
194
+ progress: {
195
+ current: this.historyResultCount
196
+ }
197
+ });
198
+ const result = {
127
199
  deviceData: this.deviceData,
128
200
  data
201
+ };
202
+
203
+ // Keep the new identity available to consumers while preserving the enumerable
204
+ // callback shape used by 1.5 integrations. Queue adapters materialize it below.
205
+ Object.defineProperty(result, "id", {
206
+ value: (0, _resultIdentity.createStableResultId)(this.deviceData, data),
207
+ enumerable: false,
208
+ writable: false
129
209
  });
210
+ onResultCallback?.(result);
130
211
  };
131
212
  this.onDeviceDisconnected = onDeviceDisconnectedCallback;
213
+ this.onConnectionEvent = onConnectionEventCallback;
132
214
  }
133
215
  destroy = () => {
134
216
  (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Destroying device", {
@@ -140,9 +222,25 @@ class BTManagedDevice {
140
222
  this.onError = undefined;
141
223
  this.onDeviceStatusChanged = undefined;
142
224
  this.onResult = undefined;
225
+ this.onConnectionEvent = undefined;
226
+ };
227
+
228
+ /** Stops this device's subscriptions and closes its BLE connection. */
229
+ disconnect = async () => {
230
+ this.destroy();
231
+ try {
232
+ await this.device.cancelConnection();
233
+ } catch (error) {
234
+ (0, _sentryLogger.sentryLogger)("info", "BT_MANAGER: Device was already disconnected", {
235
+ deviceId: this.device.id,
236
+ error: error instanceof Error ? error.message : String(error)
237
+ });
238
+ }
143
239
  };
144
240
  connect = async () => {
145
241
  this.resultReportedThisConnection = false;
242
+ this.reportedMeasurementKinds.clear();
243
+ this.historyResultCount = 0;
146
244
 
147
245
  // To access the abstract property in the constructor, we need to set it here
148
246
  this.deviceData.measurementTypes = (0, _supportedMeasurementTypeKeys.supportedMeasurementTypeKeys)(this.mainServices);
@@ -150,12 +248,22 @@ class BTManagedDevice {
150
248
  this.connectionHandler = new _btConnectionHandler.BTConnectionHandler(this.device, this.mainServices, {
151
249
  onStatusChanged: status => {
152
250
  this.onDeviceStatusChanged?.bind(this)(status);
251
+ if (status === _deviceStatus.DeviceStatus.CONNECTED) {
252
+ this.onConnectionEvent?.({
253
+ deviceData: this.deviceData,
254
+ kind: "bonded"
255
+ });
256
+ }
153
257
  if (status === _deviceStatus.DeviceStatus.DISCONNECTED) {
154
258
  this.onDeviceDisconnected?.();
155
259
  this.destroy();
156
260
  }
157
261
  },
158
262
  onError: error => this.onError?.bind(this)(error),
263
+ onConnectionEvent: event => this.onConnectionEvent?.({
264
+ deviceData: this.deviceData,
265
+ ...event
266
+ }),
159
267
  onDataReceived: (uuid, hexValue) => {
160
268
  this.dataProcessor?.processData(uuid, hexValue);
161
269
  },
@@ -1 +1 @@
1
- {"version":3,"names":["_sentryLogger","require","_deviceStatus","_summariseMeasurementForLog","_supportedMeasurementTypeKeys","_btConnectionHandler","_btDataProcessor","_pollingCommandSequencer","BTManagedDevice","resultReportedThisConnection","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","oneReadingPerConnection","sentryLogger","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","Error","message","caseType","_","data","summariseMeasurementForLog","destroy","connectionHandler","dataProcessor","undefined","connect","supportedMeasurementTypeKeys","mainServices","sequencer","createCommandSequencer","pollingSequencerFor","BTConnectionHandler","onStatusChanged","bind","DeviceStatus","DISCONNECTED","onDataReceived","uuid","hexValue","processData","onDeviceInfo","info","manufacturerName","model","serialNumber","initialCommands","onCommandSent","armStuckTimeout","isNormalDisconnect","preferredMtu","BTDataProcessor","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","nextCommand","frame","sendCommands","commands","handleDependentResult","frameReader","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_sentryLogger","require","_telemetry","_bluetoothError","_deviceStatus","_resultIdentity","_summariseMeasurementForLog","_supportedMeasurementTypeKeys","_btConnectionHandler","_btDataProcessor","_pollingCommandSequencer","BTManagedDevice","resultReportedThisConnection","reportedMeasurementKinds","Set","reportedDailyTotals","historyResultCount","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onConnectionEvent","onConnectionEventCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","oneReadingPerConnection","resultPolicy","sentryLogger","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","addOvokSpanEvent","model","error","Error","message","normalized","toBluetoothError","Object","defineProperty","value","code","configurable","enumerable","BluetoothError","caseType","_","data","policy","byMeasurement","default","has","add","temporal","end","Date","undefined","now","getTime","day","start","recordedAt","key","toISOString","slice","recordOvokMetric","summariseMeasurementForLog","kind","progress","current","result","createStableResultId","writable","destroy","connectionHandler","dataProcessor","disconnect","cancelConnection","String","connect","clear","supportedMeasurementTypeKeys","mainServices","sequencer","createCommandSequencer","pollingSequencerFor","BTConnectionHandler","onStatusChanged","bind","DeviceStatus","CONNECTED","DISCONNECTED","event","onDataReceived","uuid","hexValue","processData","onDeviceInfo","info","manufacturerName","serialNumber","initialCommands","onCommandSent","armStuckTimeout","isNormalDisconnect","preferredMtu","BTDataProcessor","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","nextCommand","frame","sendCommands","commands","handleDependentResult","frameReader","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
@@ -12,8 +12,8 @@ var _deviceStatus = require("../../types/device-status.js");
12
12
  *
13
13
  * A result is reported whether or not a stream preceded it, because a device already
14
14
  * holding a finished measurement when the app connects has a real reading to hand over.
15
- * Repeats are suppressed on the case transition rather than on the values, so a second
16
- * measurement that happens to read the same as the first is still reported.
15
+ * Identical result frames are suppressed, while a changed frame in the same case is still
16
+ * reported as a new measurement.
17
17
  */
18
18
  class MeasurementStateMachine {
19
19
  isMeasuring = false;
@@ -23,6 +23,7 @@ class MeasurementStateMachine {
23
23
  reset = () => {
24
24
  this.isMeasuring = false;
25
25
  this.lastCaseValue = undefined;
26
+ this.lastFrame = undefined;
26
27
  };
27
28
  advance = ({
28
29
  parsingCase,
@@ -30,8 +31,9 @@ class MeasurementStateMachine {
30
31
  parsedData
31
32
  }, frame) => {
32
33
  const isResult = parsingCase.caseType === _caseType.CaseType.RESULT;
33
- const isRepeatedResult = isResult && parsingCase.caseValue === this.lastCaseValue;
34
+ const isRepeatedResult = isResult && parsingCase.caseValue === this.lastCaseValue && this.lastFrame?.join("").toLowerCase() === frame.join("").toLowerCase();
34
35
  this.lastCaseValue = parsingCase.caseValue;
36
+ this.lastFrame = [...frame];
35
37
  if (parsingCase.caseType === _caseType.CaseType.STREAM && !this.isMeasuring) {
36
38
  this.startMeasuring(measurementTypeKey);
37
39
  }