@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
@@ -3,7 +3,10 @@
3
3
  /* eslint-disable max-lines */
4
4
 
5
5
  import { sentryLogger } from "../../../helpers/utils/sentry-logger.js";
6
+ import { addOvokSpanEvent, recordOvokMetric } from "../../../helpers/utils/telemetry.js";
7
+ import { BluetoothError, toBluetoothError } from "../../types/bluetooth-error.js";
6
8
  import { DeviceStatus } from "../../types/device-status.js";
9
+ import { createStableResultId } from "../../utils/result-identity.js";
7
10
  import { summariseMeasurementForLog } from "../../utils/summarise-measurement-for-log.js";
8
11
  import { supportedMeasurementTypeKeys } from "../../utils/supported-measurement-type-keys.js";
9
12
  import { BTConnectionHandler } from "./bt-connection-handler.js";
@@ -11,6 +14,9 @@ import { BTDataProcessor } from "./bt-data-processor.js";
11
14
  import { pollingSequencerFor } from "./polling-command-sequencer.js";
12
15
  export class BTManagedDevice {
13
16
  resultReportedThisConnection = false;
17
+ reportedMeasurementKinds = new Set();
18
+ reportedDailyTotals = new Set();
19
+ historyResultCount = 0;
14
20
 
15
21
  /**
16
22
  * The timeout in milliseconds for the stuck data.
@@ -63,11 +69,14 @@ export class BTManagedDevice {
63
69
  onError: onErrorCallback,
64
70
  onDeviceStatusChanged: onDeviceStatusChangedCallback,
65
71
  onResult: onResultCallback,
72
+ onConnectionEvent: onConnectionEventCallback,
66
73
  onDeviceDisconnected: onDeviceDisconnectedCallback,
67
- oneReadingPerConnection
74
+ oneReadingPerConnection,
75
+ resultPolicy
68
76
  }) {
69
77
  this.device = device;
70
78
  this.oneReadingPerConnection = oneReadingPerConnection === true;
79
+ this.resultPolicy = resultPolicy;
71
80
  sentryLogger("info", "BT_MANAGER: Creating BTManagedDevice", {
72
81
  deviceId: device.id,
73
82
  deviceName: deviceName
@@ -89,6 +98,12 @@ export class BTManagedDevice {
89
98
  deviceData: this.deviceData,
90
99
  deviceName: this.deviceData.name
91
100
  });
101
+ addOvokSpanEvent("device.status_changed", {
102
+ deviceId: this.deviceData.id,
103
+ model: this.deviceData.name,
104
+ status,
105
+ measurementTypeKey: measurementTypeKey ?? "unknown"
106
+ });
92
107
  onDeviceStatusChangedCallback?.({
93
108
  deviceData: this.deviceData,
94
109
  status: status,
@@ -101,9 +116,21 @@ export class BTManagedDevice {
101
116
  deviceData: this.deviceData,
102
117
  deviceName: this.deviceData.name
103
118
  });
119
+ const normalized = toBluetoothError(error);
120
+ if (error && (typeof error === "object" || typeof error === "function")) {
121
+ try {
122
+ Object.defineProperty(error, "ovokCode", {
123
+ value: normalized.code,
124
+ configurable: true,
125
+ enumerable: false
126
+ });
127
+ } catch {
128
+ // Some native error objects are frozen; the original error is still delivered.
129
+ }
130
+ }
104
131
  onErrorCallback?.({
105
132
  deviceData: this.deviceData,
106
- error: error
133
+ error: error instanceof BluetoothError ? normalized : error
107
134
  });
108
135
  };
109
136
  this.onResult = ({
@@ -113,18 +140,73 @@ export class BTManagedDevice {
113
140
  if (this.oneReadingPerConnection && this.resultReportedThisConnection) {
114
141
  return;
115
142
  }
143
+ const measurementTypeKey = data.measurementTypeKey;
144
+ const policy = this.resultPolicy?.byMeasurement?.[measurementTypeKey] ?? this.resultPolicy?.default ?? "all";
145
+ if (policy === "first-reading-per-kind-per-connection") {
146
+ if (this.reportedMeasurementKinds.has(measurementTypeKey)) {
147
+ return;
148
+ }
149
+ this.reportedMeasurementKinds.add(measurementTypeKey);
150
+ }
151
+ if (policy === "daily-totals-only") {
152
+ const temporal = data;
153
+ const end = temporal.end instanceof Date ? temporal.end : undefined;
154
+ const now = new Date();
155
+
156
+ // Activity totals are useful only after their day has closed. Devices that
157
+ // do not expose an interval are not filtered by this policy.
158
+ if (end && end.getTime() > now.getTime()) {
159
+ return;
160
+ }
161
+ const day = temporal.end ?? temporal.start ?? temporal.recordedAt;
162
+ if (day instanceof Date) {
163
+ const key = `${measurementTypeKey}:${day.toISOString().slice(0, 10)}`;
164
+ if (this.reportedDailyTotals.has(key)) {
165
+ return;
166
+ }
167
+ this.reportedDailyTotals.add(key);
168
+ }
169
+ }
116
170
  this.resultReportedThisConnection = true;
171
+ this.historyResultCount += 1;
172
+ recordOvokMetric("ovok.readings.received", 1, {
173
+ deviceId: this.deviceData.id,
174
+ model: this.deviceData.name,
175
+ measurementTypeKey
176
+ });
177
+ addOvokSpanEvent("reading.received", {
178
+ deviceId: this.deviceData.id,
179
+ model: this.deviceData.name,
180
+ measurementTypeKey
181
+ });
117
182
  sentryLogger("info", "BT_MANAGER: Calling onResult callback", {
118
183
  data: summariseMeasurementForLog(data),
119
184
  deviceData: this.deviceData,
120
185
  deviceName: this.deviceData.name
121
186
  });
122
- onResultCallback?.({
187
+ onConnectionEventCallback?.({
188
+ deviceData: this.deviceData,
189
+ kind: "history-download",
190
+ progress: {
191
+ current: this.historyResultCount
192
+ }
193
+ });
194
+ const result = {
123
195
  deviceData: this.deviceData,
124
196
  data
197
+ };
198
+
199
+ // Keep the new identity available to consumers while preserving the enumerable
200
+ // callback shape used by 1.5 integrations. Queue adapters materialize it below.
201
+ Object.defineProperty(result, "id", {
202
+ value: createStableResultId(this.deviceData, data),
203
+ enumerable: false,
204
+ writable: false
125
205
  });
206
+ onResultCallback?.(result);
126
207
  };
127
208
  this.onDeviceDisconnected = onDeviceDisconnectedCallback;
209
+ this.onConnectionEvent = onConnectionEventCallback;
128
210
  }
129
211
  destroy = () => {
130
212
  sentryLogger("info", "BT_MANAGER: Destroying device", {
@@ -136,9 +218,25 @@ export class BTManagedDevice {
136
218
  this.onError = undefined;
137
219
  this.onDeviceStatusChanged = undefined;
138
220
  this.onResult = undefined;
221
+ this.onConnectionEvent = undefined;
222
+ };
223
+
224
+ /** Stops this device's subscriptions and closes its BLE connection. */
225
+ disconnect = async () => {
226
+ this.destroy();
227
+ try {
228
+ await this.device.cancelConnection();
229
+ } catch (error) {
230
+ sentryLogger("info", "BT_MANAGER: Device was already disconnected", {
231
+ deviceId: this.device.id,
232
+ error: error instanceof Error ? error.message : String(error)
233
+ });
234
+ }
139
235
  };
140
236
  connect = async () => {
141
237
  this.resultReportedThisConnection = false;
238
+ this.reportedMeasurementKinds.clear();
239
+ this.historyResultCount = 0;
142
240
 
143
241
  // To access the abstract property in the constructor, we need to set it here
144
242
  this.deviceData.measurementTypes = supportedMeasurementTypeKeys(this.mainServices);
@@ -146,12 +244,22 @@ export class BTManagedDevice {
146
244
  this.connectionHandler = new BTConnectionHandler(this.device, this.mainServices, {
147
245
  onStatusChanged: status => {
148
246
  this.onDeviceStatusChanged?.bind(this)(status);
247
+ if (status === DeviceStatus.CONNECTED) {
248
+ this.onConnectionEvent?.({
249
+ deviceData: this.deviceData,
250
+ kind: "bonded"
251
+ });
252
+ }
149
253
  if (status === DeviceStatus.DISCONNECTED) {
150
254
  this.onDeviceDisconnected?.();
151
255
  this.destroy();
152
256
  }
153
257
  },
154
258
  onError: error => this.onError?.bind(this)(error),
259
+ onConnectionEvent: event => this.onConnectionEvent?.({
260
+ deviceData: this.deviceData,
261
+ ...event
262
+ }),
155
263
  onDataReceived: (uuid, hexValue) => {
156
264
  this.dataProcessor?.processData(uuid, hexValue);
157
265
  },
@@ -1 +1 @@
1
- {"version":3,"names":["sentryLogger","DeviceStatus","summariseMeasurementForLog","supportedMeasurementTypeKeys","BTConnectionHandler","BTDataProcessor","pollingSequencerFor","BTManagedDevice","resultReportedThisConnection","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","oneReadingPerConnection","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","Error","message","caseType","_","data","destroy","connectionHandler","dataProcessor","undefined","connect","mainServices","sequencer","createCommandSequencer","onStatusChanged","bind","DISCONNECTED","onDataReceived","uuid","hexValue","processData","onDeviceInfo","info","manufacturerName","model","serialNumber","initialCommands","onCommandSent","armStuckTimeout","isNormalDisconnect","preferredMtu","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","nextCommand","frame","sendCommands","commands","handleDependentResult","frameReader"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":";;AAAA;;AAKA,SAASA,YAAY,QAAQ,yCAAsC;AAOnE,SAASC,YAAY,QAAQ,8BAA2B;AAMxD,SAASC,0BAA0B,QAAQ,8CAA2C;AACtF,SAASC,4BAA4B,QAAQ,gDAA6C;AAE1F,SAASC,mBAAmB,QAAQ,4BAAyB;AAC7D,SAASC,eAAe,QAAQ,wBAAqB;AACrD,SAASC,mBAAmB,QAAQ,gCAA6B;AAEjE,OAAO,MAAeC,eAAe,CAErC;EAQUC,4BAA4B,GAAG,KAAK;;EAG5C;AACF;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;;EAiBEC,WAAWA,CACOC,MAAc,EAE9B;IACEC,UAAU;IACVC,OAAO,EAAEC,eAAe;IACxBC,qBAAqB,EAAEC,6BAA6B;IACpDC,QAAQ,EAAEC,gBAAgB;IAC1BC,oBAAoB,EAAEC,4BAA4B;IAClDC;EACqB,CAAC,EACxB;IAAA,KAVgBV,MAAc,GAAdA,MAAc;IAW9B,IAAI,CAACU,uBAAuB,GAAGA,uBAAuB,KAAK,IAAI;IAC/DpB,YAAY,CAAC,MAAM,EAAE,sCAAsC,EAAE;MAC3DqB,QAAQ,EAAEX,MAAM,CAACY,EAAE;MACnBX,UAAU,EAAEA;IACd,CAAC,CAAC;IACF,IAAI,CAACY,UAAU,GAAG;MAChBD,EAAE,EAAEZ,MAAM,CAACY,EAAE;MACbE,IAAI,EAAEb,UAAU;MAChBc,SAAS,EAAEf,MAAM,CAACe,SAAS,IAAI,EAAE;MACjCC,gBAAgB,EAAEhB,MAAM,CAACgB,gBAAgB,IAAI,EAAE;MAC/CC,EAAE,EAAE,EAAE;MAEN;MACAC,gBAAgB,EAAE;IACpB,CAAC;IAED,IAAI,CAACN,EAAE,GAAGZ,MAAM,CAACY,EAAE;IAEnB,IAAI,CAACR,qBAAqB,GAAG,CAC3Be,MAAoB,EACpBC,kBAAuC,KACpC;MACH9B,YAAY,CACV,MAAM,EACN,oDAAoD,EACpD;QACE6B,MAAM;QACNC,kBAAkB;QAClBP,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3BZ,UAAU,EAAE,IAAI,CAACY,UAAU,CAACC;MAC9B,CACF,CAAC;MACDT,6BAA6B,GAAG;QAC9BQ,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3BM,MAAM,EAAEA,MAAM;QACdC;MACF,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAAClB,OAAO,GAAImB,KAAgC,IAAK;MACnD/B,YAAY,CAAC,OAAO,EAAE,sCAAsC,EAAE;QAC5D+B,KAAK,EAAEA,KAAK,YAAYC,KAAK,GAAGD,KAAK,CAACE,OAAO,GAAGF,KAAK;QACrDR,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3BZ,UAAU,EAAE,IAAI,CAACY,UAAU,CAACC;MAC9B,CAAC,CAAC;MACFX,eAAe,GAAG;QAChBU,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3BQ,KAAK,EAAEA;MACT,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAACf,QAAQ,GAAG,CAAC;MACfkB,QAAQ,EAAEC,CAAC;MACX,GAAGC;IAC2B,CAAC,KAAK;MACpC,IAAI,IAAI,CAAChB,uBAAuB,IAAI,IAAI,CAACZ,4BAA4B,EAAE;QACrE;MACF;MAEA,IAAI,CAACA,4BAA4B,GAAG,IAAI;MACxCR,YAAY,CAAC,MAAM,EAAE,uCAAuC,EAAE;QAC5DoC,IAAI,EAAElC,0BAA0B,CAACkC,IAAI,CAAC;QACtCb,UAAU,EAAE,IAAI,CAACA,UAAU;QAC3BZ,UAAU,EAAE,IAAI,CAACY,UAAU,CAACC;MAC9B,CAAC,CAAC;MACFP,gBAAgB,GAAG;QAAEM,UAAU,EAAE,IAAI,CAACA,UAAU;QAAEa;MAAK,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAClB,oBAAoB,GAAGC,4BAA4B;EAC1D;EAEOkB,OAAO,GAAGA,CAAA,KAAM;IACrBrC,YAAY,CAAC,MAAM,EAAE,+BAA+B,EAAE;MACpDuB,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3BZ,UAAU,EAAE,IAAI,CAACY,UAAU,CAACC;IAC9B,CAAC,CAAC;IACF,IAAI,CAACc,iBAAiB,EAAED,OAAO,CAAC,CAAC;IACjC,IAAI,CAACE,aAAa,EAAEF,OAAO,CAAC,CAAC;IAC7B,IAAI,CAACzB,OAAO,GAAG4B,SAAS;IACxB,IAAI,CAAC1B,qBAAqB,GAAG0B,SAAS;IACtC,IAAI,CAACxB,QAAQ,GAAGwB,SAAS;EAC3B,CAAC;EAEMC,OAAO,GAAG,MAAAA,CAAA,KAAY;IAC3B,IAAI,CAACjC,4BAA4B,GAAG,KAAK;;IAEzC;IACA,IAAI,CAACe,UAAU,CAACK,gBAAgB,GAAGzB,4BAA4B,CAC7D,IAAI,CAACuC,YACP,CAAC;IAED,MAAMC,SAA2B,GAC/B,IAAI,CAACC,sBAAsB,GAAG,CAAC,IAAItC,mBAAmB,CAAC,IAAI,CAACoC,YAAY,CAAC;IAE3E,IAAI,CAACJ,iBAAiB,GAAG,IAAIlC,mBAAmB,CAC9C,IAAI,CAACM,MAAM,EACX,IAAI,CAACgC,YAAY,EACjB;MACEG,eAAe,EAAGhB,MAAM,IAAK;QAC3B,IAAI,CAACf,qBAAqB,EAAEgC,IAAI,CAAC,IAAI,CAAC,CAACjB,MAAM,CAAC;QAC9C,IAAIA,MAAM,KAAK5B,YAAY,CAAC8C,YAAY,EAAE;UACxC,IAAI,CAAC7B,oBAAoB,GAAG,CAAC;UAC7B,IAAI,CAACmB,OAAO,CAAC,CAAC;QAChB;MACF,CAAC;MACDzB,OAAO,EAAGmB,KAAK,IAAK,IAAI,CAACnB,OAAO,EAAEkC,IAAI,CAAC,IAAI,CAAC,CAACf,KAAK,CAAC;MACnDiB,cAAc,EAAEA,CAACC,IAAI,EAAEC,QAAQ,KAAK;QAClC,IAAI,CAACX,aAAa,EAAEY,WAAW,CAACF,IAAI,EAAEC,QAAQ,CAAC;MACjD,CAAC;MACDE,YAAY,EAAGC,IAAI,IAAK;QACtB,IAAIA,IAAI,CAAC7B,IAAI,EAAE;UACb,IAAI,CAACD,UAAU,CAACE,SAAS,GAAG4B,IAAI,CAAC7B,IAAI;QACvC;QACA,IAAI6B,IAAI,CAACC,gBAAgB,EAAE;UACzB,IAAI,CAAC/B,UAAU,CAAC+B,gBAAgB,GAAGD,IAAI,CAACC,gBAAgB;QAC1D;QACA,IAAID,IAAI,CAACE,KAAK,EAAE;UACd,IAAI,CAAChC,UAAU,CAACgC,KAAK,GAAGF,IAAI,CAACE,KAAK;QACpC;QACA,IAAIF,IAAI,CAACG,YAAY,EAAE;UACrB,IAAI,CAACjC,UAAU,CAACI,EAAE,GAAG0B,IAAI,CAACG,YAAY;QACxC;MACF,CAAC;MACDC,eAAe,EAAEA,CAAA,KAAMd,SAAS,CAACc,eAAe,CAAC,CAAC;MAClDC,aAAa,EAAEA,CAAA,KAAM,IAAI,CAACnB,aAAa,EAAEoB,eAAe,CAAC,CAAC;MAC1DC,kBAAkB,EAAEA,CAAA,KAAMjB,SAAS,CAACiB,kBAAkB,GAAG,CAAC,IAAI;IAChE,CAAC,EACD,IAAI,CAACC,YACP,CAAC;IAED,IAAI,CAACtB,aAAa,GAAG,IAAIlC,eAAe,CACtC,IAAI,CAACK,MAAM,EACX,IAAI,CAACgC,YAAY,EACjB,IAAI,CAACoB,gBAAgB,EACrB;MACEjB,eAAe,EAAE,IAAI,CAAC/B,qBAAqB,EAAEgC,IAAI,CAAC,IAAI,CAAC;MACvDiB,aAAa,EAAE,IAAI,CAACA,aAAa,EAAEjB,IAAI,CAAC,IAAI,CAAC;MAC7CkB,eAAe,EAAE,IAAI,CAACA,eAAe,EAAElB,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,KAAK,CAAC;MAClE9B,QAAQ,EAAEA,CAACiD,UAAU,EAAEC,eAAe,KAAK;QACzC,IAAI;UACF,OAAO,IAAI,CAACC,mBAAmB,CAACrB,IAAI,CAAC,IAAI,CAAC,CACxCmB,UAAU,EACVC,eACF,CAAC;QACH,CAAC,CAAC,OAAOnC,KAAK,EAAE;UACd,IAAI,CAACnB,OAAO,EAAEkC,IAAI,CAAC,IAAI,CAAC,CAACf,KAAyB,CAAC;QACrD;MACF,CAAC;MACDqC,WAAW,EAAGC,KAAK,IAAK1B,SAAS,CAACyB,WAAW,CAACC,KAAK,CAAC;MACpDC,YAAY,EAAGC,QAAQ,IACrB,KAAK,IAAI,CAACjC,iBAAiB,EAAEgC,YAAY,CAACC,QAAQ,CAAC;MACrD3D,OAAO,EAAE,IAAI,CAACA,OAAO,EAAEkC,IAAI,CAAC,IAAI,CAAC;MACjC0B,qBAAqB,EAAE,IAAI,CAACA,qBAAqB,EAAE1B,IAAI,CAAC,IAAI;IAC9D,CAAC,EACD,IAAI,CAAC2B,WACP,CAAC;IAED,MAAM,IAAI,CAACnC,iBAAiB,CAACG,OAAO,CAAC,CAAC;EACxC,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["sentryLogger","addOvokSpanEvent","recordOvokMetric","BluetoothError","toBluetoothError","DeviceStatus","createStableResultId","summariseMeasurementForLog","supportedMeasurementTypeKeys","BTConnectionHandler","BTDataProcessor","pollingSequencerFor","BTManagedDevice","resultReportedThisConnection","reportedMeasurementKinds","Set","reportedDailyTotals","historyResultCount","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onConnectionEvent","onConnectionEventCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","oneReadingPerConnection","resultPolicy","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","model","error","Error","message","normalized","Object","defineProperty","value","code","configurable","enumerable","caseType","_","data","policy","byMeasurement","default","has","add","temporal","end","Date","undefined","now","getTime","day","start","recordedAt","key","toISOString","slice","kind","progress","current","result","writable","destroy","connectionHandler","dataProcessor","disconnect","cancelConnection","String","connect","clear","mainServices","sequencer","createCommandSequencer","onStatusChanged","bind","CONNECTED","DISCONNECTED","event","onDataReceived","uuid","hexValue","processData","onDeviceInfo","info","manufacturerName","serialNumber","initialCommands","onCommandSent","armStuckTimeout","isNormalDisconnect","preferredMtu","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","nextCommand","frame","sendCommands","commands","handleDependentResult","frameReader"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,8 @@ import { DeviceStatus } from "../../types/device-status.js";
8
8
  *
9
9
  * A result is reported whether or not a stream preceded it, because a device already
10
10
  * holding a finished measurement when the app connects has a real reading to hand over.
11
- * Repeats are suppressed on the case transition rather than on the values, so a second
12
- * measurement that happens to read the same as the first is still reported.
11
+ * Identical result frames are suppressed, while a changed frame in the same case is still
12
+ * reported as a new measurement.
13
13
  */
14
14
  export class MeasurementStateMachine {
15
15
  isMeasuring = false;
@@ -19,6 +19,7 @@ export class MeasurementStateMachine {
19
19
  reset = () => {
20
20
  this.isMeasuring = false;
21
21
  this.lastCaseValue = undefined;
22
+ this.lastFrame = undefined;
22
23
  };
23
24
  advance = ({
24
25
  parsingCase,
@@ -26,8 +27,9 @@ export class MeasurementStateMachine {
26
27
  parsedData
27
28
  }, frame) => {
28
29
  const isResult = parsingCase.caseType === CaseType.RESULT;
29
- const isRepeatedResult = isResult && parsingCase.caseValue === this.lastCaseValue;
30
+ const isRepeatedResult = isResult && parsingCase.caseValue === this.lastCaseValue && this.lastFrame?.join("").toLowerCase() === frame.join("").toLowerCase();
30
31
  this.lastCaseValue = parsingCase.caseValue;
32
+ this.lastFrame = [...frame];
31
33
  if (parsingCase.caseType === CaseType.STREAM && !this.isMeasuring) {
32
34
  this.startMeasuring(measurementTypeKey);
33
35
  }
@@ -1 +1 @@
1
- {"version":3,"names":["CaseType","DeviceStatus","MeasurementStateMachine","isMeasuring","constructor","callbacks","reset","lastCaseValue","undefined","advance","parsingCase","measurementTypeKey","parsedData","frame","isResult","caseType","RESULT","isRepeatedResult","caseValue","STREAM","startMeasuring","OTHER","stopMeasuring","keepMeasuring","onResult","onStreamStart","onStatusChanged","MEASURING","CONNECTED"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/measurement-state-machine.ts"],"mappings":";;AAEA,SAASA,QAAQ,QAAQ,0BAAuB;AAEhD,SAASC,YAAY,QAAQ,8BAA2B;AAexD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,CAAwB;EAClDC,WAAW,GAAY,KAAK;EAGpCC,WAAWA,CAAkBC,SAAoC,EAAE;IAAA,KAAtCA,SAAoC,GAApCA,SAAoC;EAAG;EAE7DC,KAAK,GAAGA,CAAA,KAAY;IACzB,IAAI,CAACH,WAAW,GAAG,KAAK;IACxB,IAAI,CAACI,aAAa,GAAGC,SAAS;EAChC,CAAC;EAEMC,OAAO,GAAGA,CACf;IACEC,WAAW;IACXC,kBAAkB;IAClBC;EAC+B,CAAC,EAClCC,KAAe,KACN;IACT,MAAMC,QAAQ,GAAGJ,WAAW,CAACK,QAAQ,KAAKf,QAAQ,CAACgB,MAAM;IAEzD,MAAMC,gBAAgB,GACpBH,QAAQ,IAAIJ,WAAW,CAACQ,SAAS,KAAK,IAAI,CAACX,aAAa;IAE1D,IAAI,CAACA,aAAa,GAAGG,WAAW,CAACQ,SAAS;IAE1C,IAAIR,WAAW,CAACK,QAAQ,KAAKf,QAAQ,CAACmB,MAAM,IAAI,CAAC,IAAI,CAAChB,WAAW,EAAE;MACjE,IAAI,CAACiB,cAAc,CAACT,kBAAkB,CAAC;IACzC;IAEA,IAAI,IAAI,CAACR,WAAW,IAAIO,WAAW,CAACK,QAAQ,KAAKf,QAAQ,CAACqB,KAAK,EAAE;MAC/D,IAAI,CAACC,aAAa,CAACX,kBAAkB,CAAC;IACxC;IAEA,IAAIM,gBAAgB,EAAE;MACpB;IACF;IAEA,IAAIM,aAAa,GAAG,KAAK;IAEzB,IAAI,IAAI,CAACpB,WAAW,IAAIW,QAAQ,EAAE;MAChCS,aAAa,GAAG,IAAI,CAAClB,SAAS,CAACmB,QAAQ,GAAGZ,UAAU,EAAEC,KAAK,CAAC,IAAI,KAAK;IACvE;IAEA,IAAIC,QAAQ,IAAI,CAACS,aAAa,EAAE;MAC9B,IAAI,CAACD,aAAa,CAACX,kBAAkB,CAAC;IACxC;EACF,CAAC;EAEOS,cAAc,GAAIT,kBAAuC,IAAW;IAC1E,IAAI,CAACN,SAAS,CAACoB,aAAa,GAAG,CAAC;IAChC,IAAI,CAACpB,SAAS,CAACqB,eAAe,GAAGzB,YAAY,CAAC0B,SAAS,EAAEhB,kBAAkB,CAAC;IAC5E,IAAI,CAACR,WAAW,GAAG,IAAI;EACzB,CAAC;EAEOmB,aAAa,GAAIX,kBAAuC,IAAW;IACzE,IAAI,CAACR,WAAW,GAAG,KAAK;IACxB,IAAI,CAACE,SAAS,CAACqB,eAAe,GAC5BzB,YAAY,CAAC2B,SAAS,EACtBjB,kBACF,CAAC;EACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["CaseType","DeviceStatus","MeasurementStateMachine","isMeasuring","constructor","callbacks","reset","lastCaseValue","undefined","lastFrame","advance","parsingCase","measurementTypeKey","parsedData","frame","isResult","caseType","RESULT","isRepeatedResult","caseValue","join","toLowerCase","STREAM","startMeasuring","OTHER","stopMeasuring","keepMeasuring","onResult","onStreamStart","onStatusChanged","MEASURING","CONNECTED"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/measurement-state-machine.ts"],"mappings":";;AAEA,SAASA,QAAQ,QAAQ,0BAAuB;AAEhD,SAASC,YAAY,QAAQ,8BAA2B;AAexD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,CAAwB;EAClDC,WAAW,GAAY,KAAK;EAIpCC,WAAWA,CAAkBC,SAAoC,EAAE;IAAA,KAAtCA,SAAoC,GAApCA,SAAoC;EAAG;EAE7DC,KAAK,GAAGA,CAAA,KAAY;IACzB,IAAI,CAACH,WAAW,GAAG,KAAK;IACxB,IAAI,CAACI,aAAa,GAAGC,SAAS;IAC9B,IAAI,CAACC,SAAS,GAAGD,SAAS;EAC5B,CAAC;EAEME,OAAO,GAAGA,CACf;IACEC,WAAW;IACXC,kBAAkB;IAClBC;EAC+B,CAAC,EAClCC,KAAe,KACN;IACT,MAAMC,QAAQ,GAAGJ,WAAW,CAACK,QAAQ,KAAKhB,QAAQ,CAACiB,MAAM;IAEzD,MAAMC,gBAAgB,GACpBH,QAAQ,IACRJ,WAAW,CAACQ,SAAS,KAAK,IAAI,CAACZ,aAAa,IAC5C,IAAI,CAACE,SAAS,EAAEW,IAAI,CAAC,EAAE,CAAC,CAACC,WAAW,CAAC,CAAC,KAAKP,KAAK,CAACM,IAAI,CAAC,EAAE,CAAC,CAACC,WAAW,CAAC,CAAC;IAEzE,IAAI,CAACd,aAAa,GAAGI,WAAW,CAACQ,SAAS;IAC1C,IAAI,CAACV,SAAS,GAAG,CAAC,GAAGK,KAAK,CAAC;IAE3B,IAAIH,WAAW,CAACK,QAAQ,KAAKhB,QAAQ,CAACsB,MAAM,IAAI,CAAC,IAAI,CAACnB,WAAW,EAAE;MACjE,IAAI,CAACoB,cAAc,CAACX,kBAAkB,CAAC;IACzC;IAEA,IAAI,IAAI,CAACT,WAAW,IAAIQ,WAAW,CAACK,QAAQ,KAAKhB,QAAQ,CAACwB,KAAK,EAAE;MAC/D,IAAI,CAACC,aAAa,CAACb,kBAAkB,CAAC;IACxC;IAEA,IAAIM,gBAAgB,EAAE;MACpB;IACF;IAEA,IAAIQ,aAAa,GAAG,KAAK;IAEzB,IAAI,IAAI,CAACvB,WAAW,IAAIY,QAAQ,EAAE;MAChCW,aAAa,GAAG,IAAI,CAACrB,SAAS,CAACsB,QAAQ,GAAGd,UAAU,EAAEC,KAAK,CAAC,IAAI,KAAK;IACvE;IAEA,IAAIC,QAAQ,IAAI,CAACW,aAAa,EAAE;MAC9B,IAAI,CAACD,aAAa,CAACb,kBAAkB,CAAC;IACxC;EACF,CAAC;EAEOW,cAAc,GAAIX,kBAAuC,IAAW;IAC1E,IAAI,CAACP,SAAS,CAACuB,aAAa,GAAG,CAAC;IAChC,IAAI,CAACvB,SAAS,CAACwB,eAAe,GAAG5B,YAAY,CAAC6B,SAAS,EAAElB,kBAAkB,CAAC;IAC5E,IAAI,CAACT,WAAW,GAAG,IAAI;EACzB,CAAC;EAEOsB,aAAa,GAAIb,kBAAuC,IAAW;IACzE,IAAI,CAACT,WAAW,GAAG,KAAK;IACxB,IAAI,CAACE,SAAS,CAACwB,eAAe,GAC5B5B,YAAY,CAAC8B,SAAS,EACtBnB,kBACF,CAAC;EACH,CAAC;AACH","ignoreList":[]}
@@ -9,6 +9,18 @@ export const spo2MainServices = [{
9
9
  parsingModel: {
10
10
  caseValuePosition: [0, 2, 3, 4],
11
11
  cases: [{
12
+ measurementTypeKey: MeasurementTypeKey.bloodOxygenPulseRate,
13
+ caseType: CaseType.STREAM,
14
+ caseValue: "aa0f0621",
15
+ parseDefinitions: [],
16
+ description: "OxySmart measurement status"
17
+ }, {
18
+ measurementTypeKey: MeasurementTypeKey.bloodOxygenPulseRate,
19
+ caseType: CaseType.STREAM,
20
+ caseValue: "aaf003??",
21
+ parseDefinitions: [],
22
+ description: "OxySmart measurement status"
23
+ }, {
12
24
  measurementTypeKey: MeasurementTypeKey.bloodOxygenPulseRate,
13
25
  caseType: CaseType.STREAM,
14
26
  caseValue: "aa0f0702",
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","CaseType","spo2MainServices","uuid","monitorUuids","parsingModel","caseValuePosition","cases","measurementTypeKey","bloodOxygenPulseRate","caseType","STREAM","caseValue","parseDefinitions","RESULT","name","parseType","byteIndexes","parseReference"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/spo2.main-services.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,6BAA0B;AAGnD,OAAO,MAAMC,gBAA4B,GAAG,CAC1C;EACEC,IAAI,EAAE,sCAAsC;EAC5CC,YAAY,EAAE,CACZ;IACED,IAAI,EAAE,sCAAsC;IAC5CE,YAAY,EAAE;MACZC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC/BC,KAAK,EAAE,CACL;QACEC,kBAAkB,EAAER,kBAAkB,CAACS,oBAAoB;QAC3DC,QAAQ,EAAET,QAAQ,CAACU,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE;MACpB,CAAC,EAED;QACEL,kBAAkB,EAAER,kBAAkB,CAACS,oBAAoB;QAC3DC,QAAQ,EAAET,QAAQ,CAACa,MAAM;QACzBF,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,CAChB;UACEE,IAAI,EAAE,aAAa;UACnBC,SAAS,EAAE,QAAQ;UACnBC,WAAW,EAAE,CAAC,CAAC,CAAC;UAChBC,cAAc,EAAE;QAClB,CAAC,EACD;UACEH,IAAI,EAAE,WAAW;UACjBC,SAAS,EAAE,QAAQ;UACnBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UACnBC,cAAc,EAAE;QAClB,CAAC;MAEL,CAAC;IAEL;EACF,CAAC;AAEL,CAAC,CACF","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","CaseType","spo2MainServices","uuid","monitorUuids","parsingModel","caseValuePosition","cases","measurementTypeKey","bloodOxygenPulseRate","caseType","STREAM","caseValue","parseDefinitions","description","RESULT","name","parseType","byteIndexes","parseReference"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/spo/spo2.main-services.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,6BAA0B;AAGnD,OAAO,MAAMC,gBAA4B,GAAG,CAC1C;EACEC,IAAI,EAAE,sCAAsC;EAC5CC,YAAY,EAAE,CACZ;IACED,IAAI,EAAE,sCAAsC;IAC5CE,YAAY,EAAE;MACZC,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC/BC,KAAK,EAAE,CACL;QACEC,kBAAkB,EAAER,kBAAkB,CAACS,oBAAoB;QAC3DC,QAAQ,EAAET,QAAQ,CAACU,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,EAAE;QACpBC,WAAW,EAAE;MACf,CAAC,EAED;QACEN,kBAAkB,EAAER,kBAAkB,CAACS,oBAAoB;QAC3DC,QAAQ,EAAET,QAAQ,CAACU,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,EAAE;QACpBC,WAAW,EAAE;MACf,CAAC,EAED;QACEN,kBAAkB,EAAER,kBAAkB,CAACS,oBAAoB;QAC3DC,QAAQ,EAAET,QAAQ,CAACU,MAAM;QACzBC,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE;MACpB,CAAC,EAED;QACEL,kBAAkB,EAAER,kBAAkB,CAACS,oBAAoB;QAC3DC,QAAQ,EAAET,QAAQ,CAACc,MAAM;QACzBH,SAAS,EAAE,UAAU;QACrBC,gBAAgB,EAAE,CAChB;UACEG,IAAI,EAAE,aAAa;UACnBC,SAAS,EAAE,QAAQ;UACnBC,WAAW,EAAE,CAAC,CAAC,CAAC;UAChBC,cAAc,EAAE;QAClB,CAAC,EACD;UACEH,IAAI,EAAE,WAAW;UACjBC,SAAS,EAAE,QAAQ;UACnBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UACnBC,cAAc,EAAE;QAClB,CAAC;MAEL,CAAC;IAEL;EACF,CAAC;AAEL,CAAC,CACF","ignoreList":[]}
@@ -141,13 +141,17 @@ class VerovalActivitySequencer {
141
141
  if (stepCount <= 0) {
142
142
  continue;
143
143
  }
144
- const recordedAt = new Date(Date.UTC(2000 + record[0], (record[1] ?? 1) - 1, record[2] ?? 1));
144
+ const year = 2000 + record[0];
145
+ const month = (record[1] ?? 1) - 1;
146
+ const day = record[2] ?? 1;
147
+ const recordedAt = new Date(year, month, day);
148
+ const nextMidnight = new Date(year, month, day + 1);
145
149
  this.params.onResult({
146
150
  measurementTypeKey: MeasurementTypeKey.stepCount,
147
151
  caseType: CaseType.RESULT,
148
152
  stepCount,
149
153
  start: recordedAt,
150
- end: new Date(recordedAt.getTime() + 86_400_000)
154
+ end: nextMidnight
151
155
  });
152
156
  }
153
157
  };
@@ -182,7 +186,9 @@ class VerovalActivitySequencer {
182
186
  this.params.onResult({
183
187
  measurementTypeKey: MeasurementTypeKey.heartRate,
184
188
  caseType: CaseType.RESULT,
185
- heartRate
189
+ heartRate,
190
+ start,
191
+ end
186
192
  });
187
193
  }
188
194
  minute += 1;
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","CaseType","hexToByte","SERVICE","WRITE","TOKEN","BOND","GET_MINUTE","GET_DAILY","TERMINATOR","MAX_MINUTES","bytes","frame","map","hex","value","toString","padStart","command","write","values","encrypted","key","index","Math","floor","bit","bits","from","to","result","uint32","isTerminator","length","every","VerovalActivitySequencer","phase","summary","daily","minute","dailyCount","minuteCount","chunkCount","constructor","params","initialCommands","n","random","checksum","nextCommand","undefined","response","stop","serviceUuid","characteristicUuid","finishReply","appendChunk","raw","decrypted","slice","push","parseSummary","startMinuteReply","parseDaily","parseMinute","year","month","day","latestAt","Date","UTC","max","min","recordBytes","offset","record","stepCount","recordedAt","onResult","measurementTypeKey","caseType","RESULT","start","end","getTime","heartRate","reason","onError","VEROVAL_ACTIVITY_SERVICE","VEROVAL_ACTIVITY_WRITE"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval-activity-sequencer.ts"],"mappings":";;AAAA;;AAEA,SAASA,kBAAkB,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,6BAA0B;AAGnD,SAASC,SAAS,QAAQ,+BAA4B;AAEtD,MAAMC,OAAO,GAAG,sCAAsC;AACtD,MAAMC,KAAK,GAAG,sCAAsC;AAEpD,MAAMC,KAAK,GAAG,IAAI;AAClB,MAAMC,IAAI,GAAG,IAAI;AACjB,MAAMC,UAAU,GAAG,IAAI;AACvB,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/B,MAAMC,WAAW,GAAG,MAAM;AAwB1B,MAAMC,KAAK,GAAIC,KAAwB,IAAeA,KAAK,CAACC,GAAG,CAACX,SAAS,CAAC;AAE1E,MAAMY,GAAG,GAAIC,KAAa,IACxB,CAACA,KAAK,GAAG,IAAI,EAAEC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAE9C,MAAMC,OAAO,GAAGA,CACdC,KAAmC,EACnCC,MAAyB,MACN;EACnB,GAAGD,KAAK;EACRP,KAAK,EAAEQ,MAAM,CAACP,GAAG,CAACC,GAAG;AACvB,CAAC,CAAC;AAEF,MAAMO,SAAS,GAAGA,CAChBD,MAAyB,EACzBE,GAAsB,KAEtBF,MAAM,CAACP,GAAG,CAAC,CAACE,KAAK,EAAEQ,KAAK,KACtBR,KAAK,GAAI,CAACO,GAAG,CAACC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAKC,IAAI,CAACC,KAAK,CAACF,KAAK,GAAG,CAAC,CACxD,CAAC;AAEH,MAAMG,GAAG,GAAGA,CAACN,MAAyB,EAAEG,KAAa,KAClD,CAACH,MAAM,CAACI,IAAI,CAACC,KAAK,CAACF,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAMA,KAAK,GAAG,CAAE,GAAI,CAAC;AAE3D,MAAMI,IAAI,GAAGA,CAACP,MAAyB,EAAEQ,IAAY,EAAEC,EAAU,KAAa;EAC5E,IAAIC,MAAM,GAAG,CAAC;EAEd,KAAK,IAAIP,KAAK,GAAGK,IAAI,EAAEL,KAAK,IAAIM,EAAE,EAAEN,KAAK,EAAE,EAAE;IAC3CO,MAAM,IAAIJ,GAAG,CAACN,MAAM,EAAEG,KAAK,CAAC,IAAKA,KAAK,GAAGK,IAAK;EAChD;EAEA,OAAOE,MAAM;AACf,CAAC;AAED,MAAMC,MAAM,GAAGA,CAACX,MAAyB,EAAEQ,IAAY,KACpD,CAACR,MAAM,CAACQ,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAC7B,CAACR,MAAM,CAACQ,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAG,GAC9B,CAACR,MAAM,CAACQ,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAE,IAC7BR,MAAM,CAACQ,IAAI,CAAC,IAAI,CAAC,CAAC;AAErB,MAAMI,YAAY,GAAIpB,KAAwB,IAAc;EAC1D,MAAMQ,MAAM,GAAGT,KAAK,CAACC,KAAK,CAAC;EAE3B,OAAOQ,MAAM,CAACa,MAAM,KAAK,CAAC,IAAIb,MAAM,CAACc,KAAK,CAAC,CAACnB,KAAK,EAAEQ,KAAK,KAAKR,KAAK,KAAKN,UAAU,CAACc,KAAK,CAAC,CAAC;AAC3F,CAAC;;AAED;AACA,MAAMY,wBAAwB,CAA6B;EACjDC,KAAK,GAAU,OAAO;EACtBd,GAAG,GAAa,EAAE;EAClBe,OAAO,GAAa,EAAE;EACtBC,KAAK,GAAa,EAAE;EACpBC,MAAM,GAAa,EAAE;EACrBC,UAAU,GAAG,CAAC;EACdC,WAAW,GAAG,CAAC;EAEfC,UAAU,GAAG,CAAC;EAEfC,WAAWA,CAAkBC,MAAsC,EAAE;IAAA,KAAxCA,MAAsC,GAAtCA,MAAsC;EAAG;EAEtEC,eAAe,GAAGA,CAAA,KAAgC;IACvD,MAAMC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACjC,GAAG,CAAC,MAAMW,IAAI,CAACC,KAAK,CAACD,IAAI,CAACuB,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACrE,MAAMC,QAAQ,GAAGF,CAAC,CAAC,CAAC,CAAC,GAAI,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAI,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAI,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAI,CAAC;IAE9D,OAAO,CACL5B,OAAO,CAAC,IAAI,CAAC0B,MAAM,CAACzB,KAAK,EAAE,CACzBd,KAAK,EACL,GAAGyC,CAAC,EACJE,QAAQ,GAAG,IAAI,EACdA,QAAQ,IAAI,CAAC,GAAI,IAAI,EACtBF,CAAC,CAAC,CAAC,CAAC,GAAIA,CAAC,CAAC,CAAC,CAAE,EACbA,CAAC,CAAC,CAAC,CAAC,GAAIA,CAAC,CAAC,CAAC,CAAE,CACd,CAAC,CACH;EACH,CAAC;EAEMG,WAAW,GAChBrC,KAAwB,IACiB;IACzC,IAAI,IAAI,CAACwB,KAAK,KAAK,MAAM,EAAE;MACzB,OAAOc,SAAS;IAClB;IAEA,IAAI,IAAI,CAACd,KAAK,KAAK,OAAO,EAAE;MAC1B,MAAMe,QAAQ,GAAGxC,KAAK,CAACC,KAAK,CAAC;MAE7B,IAAIuC,QAAQ,CAAClB,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,IAAI,CAACmB,IAAI,CAAC,+BAA+B,CAAC;MACnD;MAEA,IAAI,CAAC9B,GAAG,GAAG,CAAC6B,QAAQ,CAAC,CAAC,CAAC,EAAGA,QAAQ,CAAC,CAAC,CAAC,EAAGA,QAAQ,CAAC,CAAC,CAAC,EAAGA,QAAQ,CAAC,CAAC,CAAC,CAAE;MACnE,IAAI,CAACf,KAAK,GAAG,MAAM;MAEnB,OAAO,CACLlB,OAAO,CACL;QAAEmC,WAAW,EAAElD,OAAO;QAAEmD,kBAAkB,EAAElD;MAAM,CAAC,EACnDiB,SAAS,CAAC,CAACf,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAACgB,GAAG,CAClC,CAAC,CACF;IACH;IAEA,IAAI,IAAI,CAACc,KAAK,KAAK,MAAM,EAAE;MACzB,IAAI,CAACA,KAAK,GAAG,SAAS;MAEtB,OAAO,CAAClB,OAAO,CAAC,IAAI,CAAC0B,MAAM,CAACzB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C;IAEA,IAAIa,YAAY,CAACpB,KAAK,CAAC,EAAE;MACvB,OAAO,IAAI,CAAC2C,WAAW,CAAC,CAAC;IAC3B;IAEA,IAAI,CAACC,WAAW,CAAC5C,KAAK,CAAC;IAEvB,OAAOsC,SAAS;EAClB,CAAC;EAEOM,WAAW,GAAI5C,KAAwB,IAAW;IACxD,MAAM6C,GAAG,GAAG9C,KAAK,CAACC,KAAK,CAAC;IAExB,MAAM8C,SAAS,GAAGrC,SAAS,CACzBoC,GAAG,CAACE,KAAK,CAAC,IAAI,CAACjB,UAAU,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EACxC,IAAI,CAACpB,GACP,CAAC;IAED,IAAI,CAACoB,UAAU,IAAI,CAAC;IAEpB,IAAI,IAAI,CAACN,KAAK,KAAK,SAAS,EAAE;MAC5B,IAAI,CAACC,OAAO,CAACuB,IAAI,CAAC,GAAGF,SAAS,CAAC;IACjC,CAAC,MAAM,IAAI,IAAI,CAACtB,KAAK,KAAK,OAAO,EAAE;MACjC,IAAI,CAACE,KAAK,CAACsB,IAAI,CAAC,GAAGF,SAAS,CAAC;IAC/B,CAAC,MAAM,IAAI,IAAI,CAACtB,KAAK,KAAK,QAAQ,EAAE;MAClC,IAAI,CAACG,MAAM,CAACqB,IAAI,CAAC,GAAGF,SAAS,CAAC;IAChC;EACF,CAAC;EAEOH,WAAW,GAAGA,CAAA,KAA4C;IAChE,IAAI,IAAI,CAACnB,KAAK,KAAK,SAAS,EAAE;MAC5B,IAAI,CAACyB,YAAY,CAAC,CAAC;MACnB,IAAI,CAACvB,KAAK,GAAG,EAAE;MACf,IAAI,CAACI,UAAU,GAAG,CAAC;MAEnB,IAAI,IAAI,CAACF,UAAU,GAAG,CAAC,EAAE;QACvB,IAAI,CAACJ,KAAK,GAAG,OAAO;QAEpB,OAAO,CAAClB,OAAO,CAAC,IAAI,CAAC0B,MAAM,CAACzB,KAAK,EAAE,CAACX,SAAS,EAAE,IAAI,CAACgC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;MACtE;MAEA,OAAO,IAAI,CAACsB,gBAAgB,CAAC,CAAC;IAChC;IAEA,IAAI,IAAI,CAAC1B,KAAK,KAAK,OAAO,EAAE;MAC1B,IAAI,CAAC2B,UAAU,CAAC,CAAC;MACjB,IAAI,CAACxB,MAAM,GAAG,EAAE;MAChB,IAAI,CAACG,UAAU,GAAG,CAAC;MAEnB,OAAO,IAAI,CAACoB,gBAAgB,CAAC,CAAC;IAChC;IAEA,IAAI,IAAI,CAAC1B,KAAK,KAAK,QAAQ,EAAE;MAC3B,IAAI,CAAC4B,WAAW,CAAC,CAAC;MAClB,IAAI,CAAC5B,KAAK,GAAG,MAAM;IACrB;IAEA,OAAOc,SAAS;EAClB,CAAC;EAEOY,gBAAgB,GAAGA,CAAA,KAA4C;IACrE,IAAI,IAAI,CAACrB,WAAW,IAAI,CAAC,EAAE;MACzB,IAAI,CAACL,KAAK,GAAG,MAAM;MAEnB,OAAOc,SAAS;IAClB;IAEA,IAAI,CAACd,KAAK,GAAG,QAAQ;IAErB,OAAO,CACLlB,OAAO,CAAC,IAAI,CAAC0B,MAAM,CAACzB,KAAK,EAAE,CACzBZ,UAAU,EACV,IAAI,CAACkC,WAAW,GAAG,IAAI,EACtB,IAAI,CAACA,WAAW,IAAI,CAAC,GAAI,IAAI,CAC/B,CAAC,CACH;EACH,CAAC;EAEOoB,YAAY,GAAGA,CAAA,KAAY;IACjC,IAAI,IAAI,CAACxB,OAAO,CAACJ,MAAM,GAAG,EAAE,EAAE;MAC5B,IAAI,CAACmB,IAAI,CAAC,iCAAiC,CAAC;MAE5C;IACF;IAEA,MAAMa,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC5B,OAAO,CAAC,CAAC,CAAE;IACpC,MAAM6B,KAAK,GAAG,IAAI,CAAC7B,OAAO,CAAC,CAAC,CAAC,GAAI,CAAC;IAClC,MAAM8B,GAAG,GAAG,IAAI,CAAC9B,OAAO,CAAC,CAAC,CAAE;IAE5B,IAAI,CAAC+B,QAAQ,GAAG,IAAIC,IAAI,CACtBA,IAAI,CAACC,GAAG,CACNL,IAAI,EACJC,KAAK,EACLC,GAAG,EACH,IAAI,CAAC9B,OAAO,CAAC,CAAC,CAAC,EACf,IAAI,CAACA,OAAO,CAAC,CAAC,CAAC,EACf,IAAI,CAACA,OAAO,CAAC,CAAC,CAChB,CACF,CAAC;IACD,IAAI,CAACG,UAAU,GAAGhB,IAAI,CAAC+C,GAAG,CAAC,CAAC,EAAE,IAAI,CAAClC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAACI,WAAW,GAAGjB,IAAI,CAACgD,GAAG,CACzB9D,WAAW,EACV,CAAC,IAAI,CAAC2B,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAK,IAAI,CAACA,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CACzD,CAAC;EACH,CAAC;EAEO0B,UAAU,GAAGA,CAAA,KAAY;IAC/B,MAAMU,WAAW,GAAG,EAAE;IAEtB,KAAK,IAAIC,MAAM,GAAG,CAAC,EAAEA,MAAM,GAAGD,WAAW,IAAI,IAAI,CAACnC,KAAK,CAACL,MAAM,EAAEyC,MAAM,IAAID,WAAW,EAAE;MACrF,MAAME,MAAM,GAAG,IAAI,CAACrC,KAAK,CAACqB,KAAK,CAACe,MAAM,EAAEA,MAAM,GAAGD,WAAW,CAAC;MAC7D,MAAMG,SAAS,GAAG7C,MAAM,CAAC4C,MAAM,EAAE,CAAC,CAAC;MAEnC,IAAIC,SAAS,IAAI,CAAC,EAAE;QAClB;MACF;MAEA,MAAMC,UAAU,GAAG,IAAIR,IAAI,CACzBA,IAAI,CAACC,GAAG,CAAC,IAAI,GAAGK,MAAM,CAAC,CAAC,CAAE,EAAE,CAACA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAClE,CAAC;MAED,IAAI,CAAC/B,MAAM,CAACkC,QAAQ,CAAC;QACnBC,kBAAkB,EAAE/E,kBAAkB,CAAC4E,SAAS;QAChDI,QAAQ,EAAE/E,QAAQ,CAACgF,MAAM;QACzBL,SAAS;QACTM,KAAK,EAAEL,UAAU;QACjBM,GAAG,EAAE,IAAId,IAAI,CAACQ,UAAU,CAACO,OAAO,CAAC,CAAC,GAAG,UAAU;MACjD,CAAC,CAAC;IACJ;EACF,CAAC;EAEOpB,WAAW,GAAGA,CAAA,KAAY;IAChC,IAAI,CAAC,IAAI,CAACI,QAAQ,EAAE;MAClB;IACF;IAEA,MAAMK,WAAW,GAAG,CAAC;IACrB,IAAIlC,MAAM,GAAG,CAAC;IAEd,KAAK,IAAImC,MAAM,GAAG,CAAC,EAAEA,MAAM,GAAGD,WAAW,IAAI,IAAI,CAAClC,MAAM,CAACN,MAAM,EAAEyC,MAAM,IAAID,WAAW,EAAE;MACtF,MAAME,MAAM,GAAG,IAAI,CAACpC,MAAM,CAACoB,KAAK,CAACe,MAAM,EAAEA,MAAM,GAAGD,WAAW,CAAC;;MAE9D;MACA,IAAI/C,GAAG,CAACiD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;QACxBpC,MAAM,IAAIZ,IAAI,CAACgD,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B;MACF;MAEA,MAAMC,SAAS,GAAGjD,IAAI,CAACgD,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;MACtC,MAAMU,SAAS,GAAG1D,IAAI,CAACgD,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;MACtC,MAAMQ,GAAG,GAAG,IAAId,IAAI,CAAC,IAAI,CAACD,QAAQ,CAACgB,OAAO,CAAC,CAAC,GAAG7C,MAAM,GAAG,MAAM,CAAC;MAC/D,MAAM2C,KAAK,GAAG,IAAIb,IAAI,CAACc,GAAG,CAACC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC;MAE9C,IAAIR,SAAS,GAAG,CAAC,EAAE;QACjB,IAAI,CAAChC,MAAM,CAACkC,QAAQ,CAAC;UACnBC,kBAAkB,EAAE/E,kBAAkB,CAAC4E,SAAS;UAChDI,QAAQ,EAAE/E,QAAQ,CAACgF,MAAM;UACzBL,SAAS;UACTM,KAAK;UACLC;QACF,CAAC,CAAC;MACJ;MAEA,IAAIE,SAAS,GAAG,CAAC,EAAE;QACjB,IAAI,CAACzC,MAAM,CAACkC,QAAQ,CAAC;UACnBC,kBAAkB,EAAE/E,kBAAkB,CAACqF,SAAS;UAChDL,QAAQ,EAAE/E,QAAQ,CAACgF,MAAM;UACzBI;QACF,CAAC,CAAC;MACJ;MAEA9C,MAAM,IAAI,CAAC;IACb;EACF,CAAC;EAEOa,IAAI,GAAIkC,MAAc,IAAgB;IAC5C,IAAI,CAAClD,KAAK,GAAG,MAAM;IACnB,IAAI,CAACQ,MAAM,CAAC2C,OAAO,CAACD,MAAM,CAAC;IAE3B,OAAOpC,SAAS;EAClB,CAAC;AACH;AAEA,SACE/C,OAAO,IAAIqF,wBAAwB,EACnCpF,KAAK,IAAIqF,sBAAsB,EAC/BtD,wBAAwB","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","CaseType","hexToByte","SERVICE","WRITE","TOKEN","BOND","GET_MINUTE","GET_DAILY","TERMINATOR","MAX_MINUTES","bytes","frame","map","hex","value","toString","padStart","command","write","values","encrypted","key","index","Math","floor","bit","bits","from","to","result","uint32","isTerminator","length","every","VerovalActivitySequencer","phase","summary","daily","minute","dailyCount","minuteCount","chunkCount","constructor","params","initialCommands","n","random","checksum","nextCommand","undefined","response","stop","serviceUuid","characteristicUuid","finishReply","appendChunk","raw","decrypted","slice","push","parseSummary","startMinuteReply","parseDaily","parseMinute","year","month","day","latestAt","Date","UTC","max","min","recordBytes","offset","record","stepCount","recordedAt","nextMidnight","onResult","measurementTypeKey","caseType","RESULT","start","end","heartRate","getTime","reason","onError","VEROVAL_ACTIVITY_SERVICE","VEROVAL_ACTIVITY_WRITE"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval-activity-sequencer.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable import/group-exports */
4
+
5
+ import { State } from "react-native-ble-plx";
6
+
7
+ /** A deterministic BLE manager for hook and scan integration tests. No hardware is used. */
8
+
9
+ export const createFakeBleManager = ({
10
+ state = State.PoweredOn,
11
+ devices = []
12
+ } = {}) => {
13
+ let currentState = state;
14
+ let scanCallback;
15
+ const stateCallbacks = new Set();
16
+ let scannedServiceUUIDs = null;
17
+ const manager = {
18
+ onStateChange: (callback, emitCurrentState) => {
19
+ stateCallbacks.add(callback);
20
+ if (emitCurrentState) {
21
+ callback(currentState);
22
+ }
23
+ return {
24
+ remove: () => stateCallbacks.delete(callback)
25
+ };
26
+ },
27
+ startDeviceScan: (serviceUUIDs, _options, callback) => {
28
+ scannedServiceUUIDs = serviceUUIDs;
29
+ scanCallback = callback;
30
+ devices.forEach(device => callback(null, device));
31
+ },
32
+ stopDeviceScan: () => {
33
+ scanCallback = undefined;
34
+ }
35
+ };
36
+ return {
37
+ manager,
38
+ emitDevice: device => scanCallback?.(null, device),
39
+ emitError: error => scanCallback?.(error, null),
40
+ setState: nextState => {
41
+ currentState = nextState;
42
+ stateCallbacks.forEach(callback => callback(nextState));
43
+ },
44
+ getScannedServiceUUIDs: () => scannedServiceUUIDs,
45
+ stopDeviceScan: () => manager.stopDeviceScan()
46
+ };
47
+ };
48
+ //# sourceMappingURL=fake-ble-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["State","createFakeBleManager","state","PoweredOn","devices","currentState","scanCallback","stateCallbacks","Set","scannedServiceUUIDs","manager","onStateChange","callback","emitCurrentState","add","remove","delete","startDeviceScan","serviceUUIDs","_options","forEach","device","stopDeviceScan","undefined","emitDevice","emitError","error","setState","nextState","getScannedServiceUUIDs"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/testing/fake-ble-manager.ts"],"mappings":";;AAAA;;AAEA,SAA6BA,KAAK,QAAsB,sBAAsB;;AAO9E;;AAUA,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EACnCC,KAAK,GAAGF,KAAK,CAACG,SAAS;EACvBC,OAAO,GAAG;AACW,CAAC,GAAG,CAAC,CAAC,KAAqB;EAChD,IAAIC,YAAY,GAAGH,KAAK;EACxB,IAAII,YAES;EACb,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAA6B,CAAC;EAC5D,IAAIC,mBAA6C,GAAG,IAAI;EAExD,MAAMC,OAAO,GAAG;IACdC,aAAa,EAAEA,CAACC,QAAoC,EAAEC,gBAA0B,KAAK;MACnFN,cAAc,CAACO,GAAG,CAACF,QAAQ,CAAC;MAC5B,IAAIC,gBAAgB,EAAE;QACpBD,QAAQ,CAACP,YAAY,CAAC;MACxB;MAEA,OAAO;QACLU,MAAM,EAAEA,CAAA,KAAMR,cAAc,CAACS,MAAM,CAACJ,QAAQ;MAC9C,CAAC;IACH,CAAC;IACDK,eAAe,EAAEA,CACfC,YAAsC,EACtCC,QAAiB,EACjBP,QAAsD,KACnD;MACHH,mBAAmB,GAAGS,YAAY;MAClCZ,YAAY,GAAGM,QAAQ;MACvBR,OAAO,CAACgB,OAAO,CAAEC,MAAM,IAAKT,QAAQ,CAAC,IAAI,EAAES,MAAM,CAAC,CAAC;IACrD,CAAC;IACDC,cAAc,EAAEA,CAAA,KAAM;MACpBhB,YAAY,GAAGiB,SAAS;IAC1B;EACF,CAA0B;EAE1B,OAAO;IACLb,OAAO;IACPc,UAAU,EAAGH,MAAM,IAAKf,YAAY,GAAG,IAAI,EAAEe,MAAM,CAAC;IACpDI,SAAS,EAAGC,KAAK,IACfpB,YAAY,GAAGoB,KAAK,EAAW,IAAI,CAAC;IACtCC,QAAQ,EAAGC,SAAS,IAAK;MACvBvB,YAAY,GAAGuB,SAAS;MACxBrB,cAAc,CAACa,OAAO,CAAER,QAAQ,IAAKA,QAAQ,CAACgB,SAAS,CAAC,CAAC;IAC3D,CAAC;IACDC,sBAAsB,EAAEA,CAAA,KAAMpB,mBAAmB;IACjDa,cAAc,EAAEA,CAAA,KAAMZ,OAAO,CAACY,cAAc,CAAC;EAC/C,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from "./fake-ble-manager.js";
4
+ export * from "./recorded-frames.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/testing/index.ts"],"mappings":";;AAAA,cAAc,uBAAoB;AAClC,cAAc,sBAAmB","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable import/group-exports */
4
+
5
+ /** Replays captured characteristic frames through an app-provided test sink. */
6
+ export const replayRecordedFrames = async (frames, sink) => {
7
+ for (const frame of frames) {
8
+ if (frame.delayMs) {
9
+ await new Promise(resolve => setTimeout(resolve, frame.delayMs));
10
+ }
11
+ await sink(frame);
12
+ }
13
+ };
14
+
15
+ /** A registry helper lets an app keep fixtures for every device it supports. */
16
+ export const defineRecordedDeviceFrames = fixtures => fixtures;
17
+ //# sourceMappingURL=recorded-frames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["replayRecordedFrames","frames","sink","frame","delayMs","Promise","resolve","setTimeout","defineRecordedDeviceFrames","fixtures"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/testing/recorded-frames.ts"],"mappings":";;AAAA;;AAYA;AACA,OAAO,MAAMA,oBAAoB,GAAG,MAAAA,CAClCC,MAAmC,EACnCC,IAAuB,KACL;EAClB,KAAK,MAAMC,KAAK,IAAIF,MAAM,EAAE;IAC1B,IAAIE,KAAK,CAACC,OAAO,EAAE;MACjB,MAAM,IAAIC,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAEH,KAAK,CAACC,OAAO,CAAC,CAAC;IACpE;IACA,MAAMF,IAAI,CAACC,KAAK,CAAC;EACnB;AACF,CAAC;;AAED;AACA,OAAO,MAAMK,0BAA0B,GACrCC,QAAgD,IACKA,QAAQ","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable import/group-exports */
4
+
5
+ export let BluetoothErrorCode = /*#__PURE__*/function (BluetoothErrorCode) {
6
+ BluetoothErrorCode["UNKNOWN"] = "bluetooth.unknown";
7
+ BluetoothErrorCode["PERMISSION_DENIED"] = "bluetooth.permission-denied";
8
+ BluetoothErrorCode["UNSUPPORTED"] = "bluetooth.unsupported";
9
+ BluetoothErrorCode["SCAN_FAILED"] = "bluetooth.scan-failed";
10
+ BluetoothErrorCode["CONNECTION_FAILED"] = "bluetooth.connection-failed";
11
+ BluetoothErrorCode["PAIRING_REQUIRED"] = "bluetooth.pairing-required";
12
+ BluetoothErrorCode["DISCOVERY_FAILED"] = "bluetooth.discovery-failed";
13
+ BluetoothErrorCode["DEVICE_ERROR"] = "bluetooth.device-error";
14
+ BluetoothErrorCode["FRAME_INVALID"] = "bluetooth.frame-invalid";
15
+ BluetoothErrorCode["MEASUREMENT_FAILED"] = "bluetooth.measurement-failed";
16
+ BluetoothErrorCode["BACKGROUND_SYNC"] = "bluetooth.background-sync";
17
+ return BluetoothErrorCode;
18
+ }({});
19
+ export class BluetoothError extends Error {
20
+ name = "BluetoothError";
21
+ constructor(code, message, translationKey, originalError) {
22
+ super(message);
23
+ this.code = code;
24
+ this.translationKey = translationKey;
25
+ this.originalError = originalError;
26
+ }
27
+ }
28
+ const translationKeyFor = message => /^([\w-]+\.)+[\w-]+$/.test(message) ? message : undefined;
29
+ const messageFor = error => {
30
+ if (error instanceof Error) {
31
+ return error.message;
32
+ }
33
+ if (typeof error === "string") {
34
+ return error;
35
+ }
36
+ return String(error);
37
+ };
38
+ export const bluetoothErrorCodeFor = error => {
39
+ if (error instanceof BluetoothError) {
40
+ return error.code;
41
+ }
42
+ const message = messageFor(error);
43
+ const errorCode = error?.errorCode;
44
+ if (/permission|unauthori[sz]ed|denied/i.test(message)) {
45
+ return BluetoothErrorCode.PERMISSION_DENIED;
46
+ }
47
+ if (/unsupported/i.test(message)) {
48
+ return BluetoothErrorCode.UNSUPPORTED;
49
+ }
50
+ if (/scan/i.test(message) || errorCode === "ScanStartFailed") {
51
+ return BluetoothErrorCode.SCAN_FAILED;
52
+ }
53
+ if (/pair|bond|authentication/i.test(message)) {
54
+ return BluetoothErrorCode.PAIRING_REQUIRED;
55
+ }
56
+ if (/connect|disconnect/i.test(message)) {
57
+ return BluetoothErrorCode.CONNECTION_FAILED;
58
+ }
59
+ if (/frame|parse|checksum|corrupt/i.test(message)) {
60
+ return BluetoothErrorCode.FRAME_INVALID;
61
+ }
62
+ if (/measurement|reading|result/i.test(message)) {
63
+ return BluetoothErrorCode.MEASUREMENT_FAILED;
64
+ }
65
+ return BluetoothErrorCode.UNKNOWN;
66
+ };
67
+ export const toBluetoothError = error => {
68
+ if (error instanceof BluetoothError) {
69
+ return error;
70
+ }
71
+ const message = messageFor(error);
72
+ return new BluetoothError(bluetoothErrorCodeFor(error), message, translationKeyFor(message), error);
73
+ };
74
+ //# sourceMappingURL=bluetooth-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BluetoothErrorCode","BluetoothError","Error","name","constructor","code","message","translationKey","originalError","translationKeyFor","test","undefined","messageFor","error","String","bluetoothErrorCodeFor","errorCode","PERMISSION_DENIED","UNSUPPORTED","SCAN_FAILED","PAIRING_REQUIRED","CONNECTION_FAILED","FRAME_INVALID","MEASUREMENT_FAILED","UNKNOWN","toBluetoothError"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/bluetooth-error.ts"],"mappings":";;AAAA;;AAIA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAc9B,OAAO,MAAMC,cAAc,SAASC,KAAK,CAAC;EACxBC,IAAI,GAAG,gBAAgB;EAEhCC,WAAWA,CACAC,IAAwB,EACxCC,OAAe,EACCC,cAAuB,EACvBC,aAAuB,EACvC;IACA,KAAK,CAACF,OAAO,CAAC;IAAC,KALCD,IAAwB,GAAxBA,IAAwB;IAAA,KAExBE,cAAuB,GAAvBA,cAAuB;IAAA,KACvBC,aAAuB,GAAvBA,aAAuB;EAGzC;AACF;AAEA,MAAMC,iBAAiB,GAAIH,OAAe,IACxC,qBAAqB,CAACI,IAAI,CAACJ,OAAO,CAAC,GAAGA,OAAO,GAAGK,SAAS;AAE3D,MAAMC,UAAU,GAAIC,KAAc,IAAa;EAC7C,IAAIA,KAAK,YAAYX,KAAK,EAAE;IAC1B,OAAOW,KAAK,CAACP,OAAO;EACtB;EAEA,IAAI,OAAOO,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EAEA,OAAOC,MAAM,CAACD,KAAK,CAAC;AACtB,CAAC;AAED,OAAO,MAAME,qBAAqB,GAChCF,KAAc,IACS;EACvB,IAAIA,KAAK,YAAYZ,cAAc,EAAE;IACnC,OAAOY,KAAK,CAACR,IAAI;EACnB;EAEA,MAAMC,OAAO,GAAGM,UAAU,CAACC,KAAK,CAAC;EACjC,MAAMG,SAAS,GAAIH,KAAK,EAAoCG,SAAS;EAErE,IAAI,oCAAoC,CAACN,IAAI,CAACJ,OAAO,CAAC,EAAE;IACtD,OAAON,kBAAkB,CAACiB,iBAAiB;EAC7C;EAEA,IAAI,cAAc,CAACP,IAAI,CAACJ,OAAO,CAAC,EAAE;IAChC,OAAON,kBAAkB,CAACkB,WAAW;EACvC;EAEA,IACE,OAAO,CAACR,IAAI,CAACJ,OAAO,CAAC,IACpBU,SAAS,KAA4B,iBAAiB,EACvD;IACA,OAAOhB,kBAAkB,CAACmB,WAAW;EACvC;EAEA,IAAI,2BAA2B,CAACT,IAAI,CAACJ,OAAO,CAAC,EAAE;IAC7C,OAAON,kBAAkB,CAACoB,gBAAgB;EAC5C;EAEA,IAAI,qBAAqB,CAACV,IAAI,CAACJ,OAAO,CAAC,EAAE;IACvC,OAAON,kBAAkB,CAACqB,iBAAiB;EAC7C;EAEA,IAAI,+BAA+B,CAACX,IAAI,CAACJ,OAAO,CAAC,EAAE;IACjD,OAAON,kBAAkB,CAACsB,aAAa;EACzC;EAEA,IAAI,6BAA6B,CAACZ,IAAI,CAACJ,OAAO,CAAC,EAAE;IAC/C,OAAON,kBAAkB,CAACuB,kBAAkB;EAC9C;EAEA,OAAOvB,kBAAkB,CAACwB,OAAO;AACnC,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIZ,KAAc,IAAqB;EAClE,IAAIA,KAAK,YAAYZ,cAAc,EAAE;IACnC,OAAOY,KAAK;EACd;EAEA,MAAMP,OAAO,GAAGM,UAAU,CAACC,KAAK,CAAC;EAEjC,OAAO,IAAIZ,cAAc,CACvBc,qBAAqB,CAACF,KAAK,CAAC,EAC5BP,OAAO,EACPG,iBAAiB,CAACH,OAAO,CAAC,EAC1BO,KACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=device-connection-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-connection-event.ts"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-measurement-map.ts"],"mappings":";;AAYA,SAASA,iBAAiB,QAAQ,yBAAsB;;AA0CxD;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-measurement-map.ts"],"mappings":";;AAYA,SAASA,iBAAiB,QAAQ,yBAAsB;;AA4CxD;AACA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=result-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/result-policy.ts"],"mappings":"","ignoreList":[]}