@ovok/native 1.6.0 → 1.6.2

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 (758) hide show
  1. package/README.md +8 -2
  2. package/android/src/main/AndroidManifest.xml +1 -20
  3. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncModule.java +25 -3
  4. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectWorker.java +6 -2
  5. package/app.plugin.js +86 -7
  6. package/lib/commonjs/index.js +5 -115
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/modules/auth/default-translation.js +69 -0
  9. package/lib/commonjs/modules/auth/default-translation.js.map +1 -0
  10. package/lib/commonjs/modules/auth/delete-account-button/components/delete-account-button.js +2 -0
  11. package/lib/commonjs/modules/auth/delete-account-button/components/delete-account-button.js.map +1 -1
  12. package/lib/commonjs/modules/auth/hooks/use-session.js +47 -17
  13. package/lib/commonjs/modules/auth/hooks/use-session.js.map +1 -1
  14. package/lib/commonjs/modules/auth/index.js +1 -0
  15. package/lib/commonjs/modules/auth/index.js.map +1 -1
  16. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js +30 -3
  17. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js.map +1 -1
  18. package/lib/commonjs/modules/auth/profile/components/profile-form.js +0 -1
  19. package/lib/commonjs/modules/auth/profile/components/profile-form.js.map +1 -1
  20. package/lib/commonjs/modules/auth/register/components/form/inputs.js +10 -8
  21. package/lib/commonjs/modules/auth/register/components/form/inputs.js.map +1 -1
  22. package/lib/commonjs/modules/auth/register/components/form/register-button.js +2 -2
  23. package/lib/commonjs/modules/auth/register/components/form/register-button.js.map +1 -1
  24. package/lib/commonjs/modules/auth/register/components/header/description.js +0 -1
  25. package/lib/commonjs/modules/auth/register/components/header/description.js.map +1 -1
  26. package/lib/commonjs/modules/auth/register/components/header/title.js +5 -2
  27. package/lib/commonjs/modules/auth/register/components/header/title.js.map +1 -1
  28. package/lib/commonjs/modules/auth/register/components/login-link.js +4 -3
  29. package/lib/commonjs/modules/auth/register/components/login-link.js.map +1 -1
  30. package/lib/commonjs/modules/auth/register/components/register-with-separator.js +1 -2
  31. package/lib/commonjs/modules/auth/register/components/register-with-separator.js.map +1 -1
  32. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js +6 -3
  33. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  34. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-button.js +2 -2
  35. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-button.js.map +1 -1
  36. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js +6 -2
  37. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  38. package/lib/commonjs/modules/auth/reset-password/components/header/description.js +0 -1
  39. package/lib/commonjs/modules/auth/reset-password/components/header/description.js.map +1 -1
  40. package/lib/commonjs/modules/auth/reset-password/components/header/title.js +5 -2
  41. package/lib/commonjs/modules/auth/reset-password/components/header/title.js.map +1 -1
  42. package/lib/commonjs/modules/auth/session/components/session-list.js +8 -6
  43. package/lib/commonjs/modules/auth/session/components/session-list.js.map +1 -1
  44. package/lib/commonjs/modules/auth/sign-in/components/footer.js +0 -1
  45. package/lib/commonjs/modules/auth/sign-in/components/footer.js.map +1 -1
  46. package/lib/commonjs/modules/auth/sign-in/components/form/inputs.js +4 -3
  47. package/lib/commonjs/modules/auth/sign-in/components/form/inputs.js.map +1 -1
  48. package/lib/commonjs/modules/auth/sign-in/components/form/signin-button.js +2 -2
  49. package/lib/commonjs/modules/auth/sign-in/components/form/signin-button.js.map +1 -1
  50. package/lib/commonjs/modules/auth/sign-in/components/header/description.js +0 -1
  51. package/lib/commonjs/modules/auth/sign-in/components/header/description.js.map +1 -1
  52. package/lib/commonjs/modules/auth/sign-in/components/header/title.js +5 -2
  53. package/lib/commonjs/modules/auth/sign-in/components/header/title.js.map +1 -1
  54. package/lib/commonjs/modules/auth/sign-in/components/login-with-separator.js +1 -2
  55. package/lib/commonjs/modules/auth/sign-in/components/login-with-separator.js.map +1 -1
  56. package/lib/commonjs/modules/auth/sign-in/components/register-link.js +4 -3
  57. package/lib/commonjs/modules/auth/sign-in/components/register-link.js.map +1 -1
  58. package/lib/commonjs/modules/auth/sign-in/components/site-url.js +1 -3
  59. package/lib/commonjs/modules/auth/sign-in/components/site-url.js.map +1 -1
  60. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login-text.js +1 -3
  61. package/lib/commonjs/modules/auth/sign-in/components/social-logins/apple-login-text.js.map +1 -1
  62. package/lib/commonjs/modules/auth/sign-in/components/social-logins/google-login-text.js +1 -3
  63. package/lib/commonjs/modules/auth/sign-in/components/social-logins/google-login-text.js.map +1 -1
  64. package/lib/commonjs/modules/auth/utils/sign-out-google.js +16 -0
  65. package/lib/commonjs/modules/auth/utils/sign-out-google.js.map +1 -0
  66. package/lib/commonjs/modules/background-sync/background-safe-storage.js +3 -6
  67. package/lib/commonjs/modules/background-sync/background-safe-storage.js.map +1 -1
  68. package/lib/commonjs/modules/breathing-exercise/components/method-name.js +0 -1
  69. package/lib/commonjs/modules/breathing-exercise/components/method-name.js.map +1 -1
  70. package/lib/commonjs/modules/breathing-exercise/components/remaining-time.js +0 -1
  71. package/lib/commonjs/modules/breathing-exercise/components/remaining-time.js.map +1 -1
  72. package/lib/commonjs/modules/bt-device/components/item/status.js +1 -2
  73. package/lib/commonjs/modules/bt-device/components/item/status.js.map +1 -1
  74. package/lib/commonjs/modules/bt-device/components/item/sub-title.js +1 -2
  75. package/lib/commonjs/modules/bt-device/components/item/sub-title.js.map +1 -1
  76. package/lib/commonjs/modules/bt-device/components/item/title.js +1 -2
  77. package/lib/commonjs/modules/bt-device/components/item/title.js.map +1 -1
  78. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +4 -2
  79. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  80. package/lib/commonjs/modules/bt-device/index.js +0 -22
  81. package/lib/commonjs/modules/bt-device/index.js.map +1 -1
  82. package/lib/commonjs/modules/bt-device-instructions/index.js +39 -0
  83. package/lib/commonjs/modules/bt-device-instructions/index.js.map +1 -0
  84. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js +64 -0
  85. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -0
  86. package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js +2 -1
  87. package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js.map +1 -1
  88. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +43 -54
  89. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  90. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js +18 -1
  91. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  92. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js +56 -1
  93. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -1
  94. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js +8 -4
  95. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js.map +1 -1
  96. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js +5 -1
  97. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js.map +1 -1
  98. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js +48 -12
  99. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js.map +1 -1
  100. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js +40 -18
  101. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js.map +1 -1
  102. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js +8 -1
  103. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js.map +1 -1
  104. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js +27 -9
  105. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
  106. package/lib/commonjs/modules/bt-management/hooks/use-request-permissions.js +5 -8
  107. package/lib/commonjs/modules/bt-management/hooks/use-request-permissions.js.map +1 -1
  108. package/lib/commonjs/modules/bt-management/hooks/use-scan-control.js +21 -0
  109. package/lib/commonjs/modules/bt-management/hooks/use-scan-control.js.map +1 -0
  110. package/lib/commonjs/modules/bt-management/index.js +22 -0
  111. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  112. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +4 -1
  113. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  114. package/lib/commonjs/modules/bt-management/services/bt-manager.js +75 -37
  115. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  116. package/lib/commonjs/modules/bt-management/services/devices/boso/boso.medicus.js +9 -6
  117. package/lib/commonjs/modules/bt-management/services/devices/boso/boso.medicus.js.map +1 -1
  118. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +97 -2
  119. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  120. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.files.js +74 -0
  121. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.files.js.map +1 -0
  122. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +52 -0
  123. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -0
  124. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +4 -3
  125. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  126. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +43 -28
  127. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  128. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +10 -1
  129. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  130. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +2 -1
  131. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
  132. package/lib/commonjs/modules/bt-management/services/push-notification.js +39 -0
  133. package/lib/commonjs/modules/bt-management/services/push-notification.js.map +1 -0
  134. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js +81 -1
  135. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
  136. package/lib/commonjs/modules/bt-management/types/bluetooth-error.js +8 -2
  137. package/lib/commonjs/modules/bt-management/types/bluetooth-error.js.map +1 -1
  138. package/lib/commonjs/modules/bt-management/utils/device-title.js +17 -0
  139. package/lib/commonjs/modules/bt-management/utils/device-title.js.map +1 -0
  140. package/lib/commonjs/modules/bt-management/utils/result-identity.js +1 -1
  141. package/lib/commonjs/modules/bt-management/utils/result-identity.js.map +1 -1
  142. package/lib/commonjs/modules/content/content-card/components/cover-badge.js +1 -3
  143. package/lib/commonjs/modules/content/content-card/components/cover-badge.js.map +1 -1
  144. package/lib/commonjs/modules/content/content-card/components/title.js +1 -3
  145. package/lib/commonjs/modules/content/content-card/components/title.js.map +1 -1
  146. package/lib/commonjs/modules/content/content-detail/components/content-detail-rich-content.js +1 -1
  147. package/lib/commonjs/modules/content/content-detail/components/content-detail-rich-content.js.map +1 -1
  148. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +12 -3
  149. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  150. package/lib/commonjs/modules/data-sync/components/manually-request-sheet/description.js +2 -2
  151. package/lib/commonjs/modules/data-sync/components/manually-request-sheet/description.js.map +1 -1
  152. package/lib/commonjs/modules/data-sync/components/manually-request-sheet/title.js +0 -1
  153. package/lib/commonjs/modules/data-sync/components/manually-request-sheet/title.js.map +1 -1
  154. package/lib/commonjs/modules/data-sync/components/sync-progress-list/sync-progress-list.js +30 -21
  155. package/lib/commonjs/modules/data-sync/components/sync-progress-list/sync-progress-list.js.map +1 -1
  156. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +7 -1
  157. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  158. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js +13 -0
  159. package/lib/commonjs/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  160. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js +19 -4
  161. package/lib/commonjs/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  162. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +30 -21
  163. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  164. package/lib/commonjs/modules/data-sync/utils/health-observation-device.js +55 -0
  165. package/lib/commonjs/modules/data-sync/utils/health-observation-device.js.map +1 -0
  166. package/lib/commonjs/modules/data-sync/utils/retry-save.js +40 -6
  167. package/lib/commonjs/modules/data-sync/utils/retry-save.js.map +1 -1
  168. package/lib/commonjs/modules/diary/components/no-data.js +1 -2
  169. package/lib/commonjs/modules/diary/components/no-data.js.map +1 -1
  170. package/lib/commonjs/modules/helpers/form-items/form-date-field.js +1 -1
  171. package/lib/commonjs/modules/helpers/form-items/form-date-field.js.map +1 -1
  172. package/lib/commonjs/modules/helpers/form-items/form-select.js +13 -13
  173. package/lib/commonjs/modules/helpers/form-items/form-select.js.map +1 -1
  174. package/lib/commonjs/modules/helpers/index.js +11 -4
  175. package/lib/commonjs/modules/helpers/index.js.map +1 -1
  176. package/lib/commonjs/modules/helpers/utils/sentry-logger.js +2 -3
  177. package/lib/commonjs/modules/helpers/utils/sentry-logger.js.map +1 -1
  178. package/lib/commonjs/modules/helpers/utils/telemetry.js +133 -46
  179. package/lib/commonjs/modules/helpers/utils/telemetry.js.map +1 -1
  180. package/lib/commonjs/modules/image/components/optimized-image.js +29 -8
  181. package/lib/commonjs/modules/image/components/optimized-image.js.map +1 -1
  182. package/lib/commonjs/modules/journal/past-journal/components/title.js +0 -1
  183. package/lib/commonjs/modules/journal/past-journal/components/title.js.map +1 -1
  184. package/lib/commonjs/modules/language-switcher/components/option/label.js +0 -1
  185. package/lib/commonjs/modules/language-switcher/components/option/label.js.map +1 -1
  186. package/lib/commonjs/modules/measurement/components/date-range.js +4 -3
  187. package/lib/commonjs/modules/measurement/components/date-range.js.map +1 -1
  188. package/lib/commonjs/modules/measurement/components/measurement-list-item.js +10 -10
  189. package/lib/commonjs/modules/measurement/components/measurement-list-item.js.map +1 -1
  190. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js +1 -1
  191. package/lib/commonjs/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js.map +1 -1
  192. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js +3 -1
  193. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  194. package/lib/commonjs/modules/setting/components/list-header.js +1 -2
  195. package/lib/commonjs/modules/setting/components/list-header.js.map +1 -1
  196. package/lib/commonjs/modules/setting/components/setting-list-item.js +0 -1
  197. package/lib/commonjs/modules/setting/components/setting-list-item.js.map +1 -1
  198. package/lib/commonjs/modules/tab/components/tab-item.js +0 -1
  199. package/lib/commonjs/modules/tab/components/tab-item.js.map +1 -1
  200. package/lib/commonjs/modules/theme/utils/generate-theme.js +35 -4
  201. package/lib/commonjs/modules/theme/utils/generate-theme.js.map +1 -1
  202. package/lib/commonjs/modules/tile/components/measured-value.js +0 -3
  203. package/lib/commonjs/modules/tile/components/measured-value.js.map +1 -1
  204. package/lib/commonjs/modules/tile/components/title.js +0 -1
  205. package/lib/commonjs/modules/tile/components/title.js.map +1 -1
  206. package/lib/commonjs/modules/tile/constants/measurement-icon-svg.js +4 -1
  207. package/lib/commonjs/modules/tile/constants/measurement-icon-svg.js.map +1 -1
  208. package/lib/commonjs/modules/ui/components/background-sync-setting.js +20 -4
  209. package/lib/commonjs/modules/ui/components/background-sync-setting.js.map +1 -1
  210. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js +33 -6
  211. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js.map +1 -1
  212. package/lib/commonjs/modules/ui/components/ecg-strip-viewer.js +10 -0
  213. package/lib/commonjs/modules/ui/components/ecg-strip-viewer.js.map +1 -1
  214. package/lib/commonjs/modules/ui/components/health-import-card.js +25 -2
  215. package/lib/commonjs/modules/ui/components/health-import-card.js.map +1 -1
  216. package/lib/commonjs/modules/ui/components/manual-entry-form.js +14 -1
  217. package/lib/commonjs/modules/ui/components/manual-entry-form.js.map +1 -1
  218. package/lib/commonjs/modules/ui/components/measurement-trend-chart.js +95 -0
  219. package/lib/commonjs/modules/ui/components/measurement-trend-chart.js.map +1 -0
  220. package/lib/commonjs/modules/ui/components/pairing-flow.js +103 -34
  221. package/lib/commonjs/modules/ui/components/pairing-flow.js.map +1 -1
  222. package/lib/commonjs/modules/ui/components/supported-devices-catalog-list.js +11 -4
  223. package/lib/commonjs/modules/ui/components/supported-devices-catalog-list.js.map +1 -1
  224. package/lib/commonjs/modules/ui/components/urine-test-result.js +7 -2
  225. package/lib/commonjs/modules/ui/components/urine-test-result.js.map +1 -1
  226. package/lib/commonjs/modules/ui/index.js +11 -0
  227. package/lib/commonjs/modules/ui/index.js.map +1 -1
  228. package/lib/commonjs/modules/ui/use-ovok-ui.js +5 -2
  229. package/lib/commonjs/modules/ui/use-ovok-ui.js.map +1 -1
  230. package/lib/module/index.js +3 -10
  231. package/lib/module/index.js.map +1 -1
  232. package/lib/module/modules/auth/default-translation.js +68 -0
  233. package/lib/module/modules/auth/default-translation.js.map +1 -0
  234. package/lib/module/modules/auth/delete-account-button/components/delete-account-button.js +2 -0
  235. package/lib/module/modules/auth/delete-account-button/components/delete-account-button.js.map +1 -1
  236. package/lib/module/modules/auth/hooks/use-session.js +47 -17
  237. package/lib/module/modules/auth/hooks/use-session.js.map +1 -1
  238. package/lib/module/modules/auth/index.js +1 -0
  239. package/lib/module/modules/auth/index.js.map +1 -1
  240. package/lib/module/modules/auth/logout-button/components/logout-button.js +30 -3
  241. package/lib/module/modules/auth/logout-button/components/logout-button.js.map +1 -1
  242. package/lib/module/modules/auth/profile/components/profile-form.js +0 -1
  243. package/lib/module/modules/auth/profile/components/profile-form.js.map +1 -1
  244. package/lib/module/modules/auth/register/components/form/inputs.js +10 -8
  245. package/lib/module/modules/auth/register/components/form/inputs.js.map +1 -1
  246. package/lib/module/modules/auth/register/components/form/register-button.js +2 -2
  247. package/lib/module/modules/auth/register/components/form/register-button.js.map +1 -1
  248. package/lib/module/modules/auth/register/components/header/description.js +0 -1
  249. package/lib/module/modules/auth/register/components/header/description.js.map +1 -1
  250. package/lib/module/modules/auth/register/components/header/title.js +5 -2
  251. package/lib/module/modules/auth/register/components/header/title.js.map +1 -1
  252. package/lib/module/modules/auth/register/components/login-link.js +4 -3
  253. package/lib/module/modules/auth/register/components/login-link.js.map +1 -1
  254. package/lib/module/modules/auth/register/components/register-with-separator.js +1 -2
  255. package/lib/module/modules/auth/register/components/register-with-separator.js.map +1 -1
  256. package/lib/module/modules/auth/reset-password/components/form/inputs.js +6 -3
  257. package/lib/module/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  258. package/lib/module/modules/auth/reset-password/components/form/reset-password-button.js +2 -2
  259. package/lib/module/modules/auth/reset-password/components/form/reset-password-button.js.map +1 -1
  260. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js +6 -2
  261. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  262. package/lib/module/modules/auth/reset-password/components/header/description.js +0 -1
  263. package/lib/module/modules/auth/reset-password/components/header/description.js.map +1 -1
  264. package/lib/module/modules/auth/reset-password/components/header/title.js +5 -2
  265. package/lib/module/modules/auth/reset-password/components/header/title.js.map +1 -1
  266. package/lib/module/modules/auth/session/components/session-list.js +8 -6
  267. package/lib/module/modules/auth/session/components/session-list.js.map +1 -1
  268. package/lib/module/modules/auth/sign-in/components/footer.js +0 -1
  269. package/lib/module/modules/auth/sign-in/components/footer.js.map +1 -1
  270. package/lib/module/modules/auth/sign-in/components/form/inputs.js +4 -3
  271. package/lib/module/modules/auth/sign-in/components/form/inputs.js.map +1 -1
  272. package/lib/module/modules/auth/sign-in/components/form/signin-button.js +2 -2
  273. package/lib/module/modules/auth/sign-in/components/form/signin-button.js.map +1 -1
  274. package/lib/module/modules/auth/sign-in/components/header/description.js +0 -1
  275. package/lib/module/modules/auth/sign-in/components/header/description.js.map +1 -1
  276. package/lib/module/modules/auth/sign-in/components/header/title.js +5 -2
  277. package/lib/module/modules/auth/sign-in/components/header/title.js.map +1 -1
  278. package/lib/module/modules/auth/sign-in/components/login-with-separator.js +1 -2
  279. package/lib/module/modules/auth/sign-in/components/login-with-separator.js.map +1 -1
  280. package/lib/module/modules/auth/sign-in/components/register-link.js +4 -3
  281. package/lib/module/modules/auth/sign-in/components/register-link.js.map +1 -1
  282. package/lib/module/modules/auth/sign-in/components/site-url.js +1 -3
  283. package/lib/module/modules/auth/sign-in/components/site-url.js.map +1 -1
  284. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login-text.js +1 -3
  285. package/lib/module/modules/auth/sign-in/components/social-logins/apple-login-text.js.map +1 -1
  286. package/lib/module/modules/auth/sign-in/components/social-logins/google-login-text.js +1 -3
  287. package/lib/module/modules/auth/sign-in/components/social-logins/google-login-text.js.map +1 -1
  288. package/lib/module/modules/auth/utils/sign-out-google.js +12 -0
  289. package/lib/module/modules/auth/utils/sign-out-google.js.map +1 -0
  290. package/lib/module/modules/background-sync/background-safe-storage.js +3 -6
  291. package/lib/module/modules/background-sync/background-safe-storage.js.map +1 -1
  292. package/lib/module/modules/breathing-exercise/components/method-name.js +0 -1
  293. package/lib/module/modules/breathing-exercise/components/method-name.js.map +1 -1
  294. package/lib/module/modules/breathing-exercise/components/remaining-time.js +0 -1
  295. package/lib/module/modules/breathing-exercise/components/remaining-time.js.map +1 -1
  296. package/lib/module/modules/bt-device/components/item/status.js +1 -2
  297. package/lib/module/modules/bt-device/components/item/status.js.map +1 -1
  298. package/lib/module/modules/bt-device/components/item/sub-title.js +1 -2
  299. package/lib/module/modules/bt-device/components/item/sub-title.js.map +1 -1
  300. package/lib/module/modules/bt-device/components/item/title.js +1 -2
  301. package/lib/module/modules/bt-device/components/item/title.js.map +1 -1
  302. package/lib/module/modules/bt-device/constants/supported-devices.js +4 -2
  303. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  304. package/lib/module/modules/bt-device/index.js +0 -2
  305. package/lib/module/modules/bt-device/index.js.map +1 -1
  306. package/lib/module/modules/bt-device-instructions/index.js +6 -0
  307. package/lib/module/modules/bt-device-instructions/index.js.map +1 -0
  308. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js +58 -0
  309. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -0
  310. package/lib/module/modules/bt-management/components/bluetooth-device-picker.js +2 -1
  311. package/lib/module/modules/bt-management/components/bluetooth-device-picker.js.map +1 -1
  312. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +42 -53
  313. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  314. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +18 -1
  315. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  316. package/lib/module/modules/bt-management/hooks/runtime-context.js +56 -1
  317. package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -1
  318. package/lib/module/modules/bt-management/hooks/use-background-sync.js +8 -4
  319. package/lib/module/modules/bt-management/hooks/use-background-sync.js.map +1 -1
  320. package/lib/module/modules/bt-management/hooks/use-device-connection.js +5 -1
  321. package/lib/module/modules/bt-management/hooks/use-device-connection.js.map +1 -1
  322. package/lib/module/modules/bt-management/hooks/use-health-import.js +48 -12
  323. package/lib/module/modules/bt-management/hooks/use-health-import.js.map +1 -1
  324. package/lib/module/modules/bt-management/hooks/use-measurements.js +40 -18
  325. package/lib/module/modules/bt-management/hooks/use-measurements.js.map +1 -1
  326. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js +8 -1
  327. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js.map +1 -1
  328. package/lib/module/modules/bt-management/hooks/use-paired-devices.js +27 -9
  329. package/lib/module/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
  330. package/lib/module/modules/bt-management/hooks/use-request-permissions.js +5 -8
  331. package/lib/module/modules/bt-management/hooks/use-request-permissions.js.map +1 -1
  332. package/lib/module/modules/bt-management/hooks/use-scan-control.js +16 -0
  333. package/lib/module/modules/bt-management/hooks/use-scan-control.js.map +1 -0
  334. package/lib/module/modules/bt-management/index.js +2 -0
  335. package/lib/module/modules/bt-management/index.js.map +1 -1
  336. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +4 -1
  337. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  338. package/lib/module/modules/bt-management/services/bt-manager.js +75 -37
  339. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  340. package/lib/module/modules/bt-management/services/devices/boso/boso.medicus.js +9 -6
  341. package/lib/module/modules/bt-management/services/devices/boso/boso.medicus.js.map +1 -1
  342. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +98 -2
  343. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  344. package/lib/module/modules/bt-management/services/devices/bp2/bp2.files.js +68 -0
  345. package/lib/module/modules/bt-management/services/devices/bp2/bp2.files.js.map +1 -0
  346. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +48 -0
  347. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -0
  348. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +4 -3
  349. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  350. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +44 -29
  351. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  352. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +10 -1
  353. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  354. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +2 -1
  355. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
  356. package/lib/module/modules/bt-management/services/push-notification.js +34 -0
  357. package/lib/module/modules/bt-management/services/push-notification.js.map +1 -0
  358. package/lib/module/modules/bt-management/testing/fake-ble-manager.js +79 -0
  359. package/lib/module/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
  360. package/lib/module/modules/bt-management/types/bluetooth-error.js +8 -2
  361. package/lib/module/modules/bt-management/types/bluetooth-error.js.map +1 -1
  362. package/lib/module/modules/bt-management/utils/device-title.js +12 -0
  363. package/lib/module/modules/bt-management/utils/device-title.js.map +1 -0
  364. package/lib/module/modules/bt-management/utils/result-identity.js +1 -1
  365. package/lib/module/modules/bt-management/utils/result-identity.js.map +1 -1
  366. package/lib/module/modules/content/content-card/components/cover-badge.js +1 -3
  367. package/lib/module/modules/content/content-card/components/cover-badge.js.map +1 -1
  368. package/lib/module/modules/content/content-card/components/title.js +1 -3
  369. package/lib/module/modules/content/content-card/components/title.js.map +1 -1
  370. package/lib/module/modules/content/content-detail/components/content-detail-rich-content.js +1 -1
  371. package/lib/module/modules/content/content-detail/components/content-detail-rich-content.js.map +1 -1
  372. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +12 -3
  373. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  374. package/lib/module/modules/data-sync/components/manually-request-sheet/description.js +2 -2
  375. package/lib/module/modules/data-sync/components/manually-request-sheet/description.js.map +1 -1
  376. package/lib/module/modules/data-sync/components/manually-request-sheet/title.js +0 -1
  377. package/lib/module/modules/data-sync/components/manually-request-sheet/title.js.map +1 -1
  378. package/lib/module/modules/data-sync/components/sync-progress-list/sync-progress-list.js +30 -21
  379. package/lib/module/modules/data-sync/components/sync-progress-list/sync-progress-list.js.map +1 -1
  380. package/lib/module/modules/data-sync/services/base-health-sync-service.js +8 -2
  381. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  382. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js +13 -0
  383. package/lib/module/modules/data-sync/utils/convert-records-to-observation.js.map +1 -1
  384. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js +19 -4
  385. package/lib/module/modules/data-sync/utils/convert-samples-to-observation.js.map +1 -1
  386. package/lib/module/modules/data-sync/utils/generate-observation-entry.js +30 -21
  387. package/lib/module/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  388. package/lib/module/modules/data-sync/utils/health-observation-device.js +50 -0
  389. package/lib/module/modules/data-sync/utils/health-observation-device.js.map +1 -0
  390. package/lib/module/modules/data-sync/utils/retry-save.js +39 -7
  391. package/lib/module/modules/data-sync/utils/retry-save.js.map +1 -1
  392. package/lib/module/modules/diary/components/no-data.js +1 -2
  393. package/lib/module/modules/diary/components/no-data.js.map +1 -1
  394. package/lib/module/modules/helpers/form-items/form-date-field.js +1 -1
  395. package/lib/module/modules/helpers/form-items/form-date-field.js.map +1 -1
  396. package/lib/module/modules/helpers/form-items/form-select.js +13 -13
  397. package/lib/module/modules/helpers/form-items/form-select.js.map +1 -1
  398. package/lib/module/modules/helpers/index.js +1 -1
  399. package/lib/module/modules/helpers/index.js.map +1 -1
  400. package/lib/module/modules/helpers/utils/sentry-logger.js +3 -4
  401. package/lib/module/modules/helpers/utils/sentry-logger.js.map +1 -1
  402. package/lib/module/modules/helpers/utils/telemetry.js +133 -46
  403. package/lib/module/modules/helpers/utils/telemetry.js.map +1 -1
  404. package/lib/module/modules/image/components/optimized-image.js +29 -8
  405. package/lib/module/modules/image/components/optimized-image.js.map +1 -1
  406. package/lib/module/modules/journal/past-journal/components/title.js +0 -1
  407. package/lib/module/modules/journal/past-journal/components/title.js.map +1 -1
  408. package/lib/module/modules/language-switcher/components/option/label.js +0 -1
  409. package/lib/module/modules/language-switcher/components/option/label.js.map +1 -1
  410. package/lib/module/modules/measurement/components/date-range.js +4 -3
  411. package/lib/module/modules/measurement/components/date-range.js.map +1 -1
  412. package/lib/module/modules/measurement/components/measurement-list-item.js +10 -10
  413. package/lib/module/modules/measurement/components/measurement-list-item.js.map +1 -1
  414. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js +1 -1
  415. package/lib/module/modules/questionnaire-response-form/components/fields/questionnaire-date-field.js.map +1 -1
  416. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js +3 -1
  417. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  418. package/lib/module/modules/setting/components/list-header.js +1 -2
  419. package/lib/module/modules/setting/components/list-header.js.map +1 -1
  420. package/lib/module/modules/setting/components/setting-list-item.js +0 -1
  421. package/lib/module/modules/setting/components/setting-list-item.js.map +1 -1
  422. package/lib/module/modules/tab/components/tab-item.js +0 -1
  423. package/lib/module/modules/tab/components/tab-item.js.map +1 -1
  424. package/lib/module/modules/theme/utils/generate-theme.js +35 -4
  425. package/lib/module/modules/theme/utils/generate-theme.js.map +1 -1
  426. package/lib/module/modules/tile/components/measured-value.js +0 -3
  427. package/lib/module/modules/tile/components/measured-value.js.map +1 -1
  428. package/lib/module/modules/tile/components/title.js +0 -1
  429. package/lib/module/modules/tile/components/title.js.map +1 -1
  430. package/lib/module/modules/tile/constants/measurement-icon-svg.js +4 -1
  431. package/lib/module/modules/tile/constants/measurement-icon-svg.js.map +1 -1
  432. package/lib/module/modules/ui/components/background-sync-setting.js +20 -4
  433. package/lib/module/modules/ui/components/background-sync-setting.js.map +1 -1
  434. package/lib/module/modules/ui/components/bluetooth-state-notice.js +33 -6
  435. package/lib/module/modules/ui/components/bluetooth-state-notice.js.map +1 -1
  436. package/lib/module/modules/ui/components/ecg-strip-viewer.js +10 -0
  437. package/lib/module/modules/ui/components/ecg-strip-viewer.js.map +1 -1
  438. package/lib/module/modules/ui/components/health-import-card.js +25 -2
  439. package/lib/module/modules/ui/components/health-import-card.js.map +1 -1
  440. package/lib/module/modules/ui/components/manual-entry-form.js +14 -1
  441. package/lib/module/modules/ui/components/manual-entry-form.js.map +1 -1
  442. package/lib/module/modules/ui/components/measurement-trend-chart.js +91 -0
  443. package/lib/module/modules/ui/components/measurement-trend-chart.js.map +1 -0
  444. package/lib/module/modules/ui/components/pairing-flow.js +106 -37
  445. package/lib/module/modules/ui/components/pairing-flow.js.map +1 -1
  446. package/lib/module/modules/ui/components/supported-devices-catalog-list.js +12 -5
  447. package/lib/module/modules/ui/components/supported-devices-catalog-list.js.map +1 -1
  448. package/lib/module/modules/ui/components/urine-test-result.js +7 -2
  449. package/lib/module/modules/ui/components/urine-test-result.js.map +1 -1
  450. package/lib/module/modules/ui/index.js +1 -0
  451. package/lib/module/modules/ui/index.js.map +1 -1
  452. package/lib/module/modules/ui/use-ovok-ui.js +6 -3
  453. package/lib/module/modules/ui/use-ovok-ui.js.map +1 -1
  454. package/lib/typescript/commonjs/src/index.d.ts +0 -10
  455. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  456. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts +2 -0
  457. package/lib/typescript/commonjs/src/modules/auth/default-translation.d.ts.map +1 -0
  458. package/lib/typescript/commonjs/src/modules/auth/delete-account-button/components/delete-account-button.d.ts.map +1 -1
  459. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts +8 -2
  460. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  461. package/lib/typescript/commonjs/src/modules/auth/index.d.ts +1 -0
  462. package/lib/typescript/commonjs/src/modules/auth/index.d.ts.map +1 -1
  463. package/lib/typescript/commonjs/src/modules/auth/logout-button/components/logout-button.d.ts +1 -1
  464. package/lib/typescript/commonjs/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  465. package/lib/typescript/commonjs/src/modules/auth/logout-button/types/logout-button-props.d.ts +6 -1
  466. package/lib/typescript/commonjs/src/modules/auth/logout-button/types/logout-button-props.d.ts.map +1 -1
  467. package/lib/typescript/commonjs/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
  468. package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-button.d.ts.map +1 -1
  469. package/lib/typescript/commonjs/src/modules/auth/register/components/header/title.d.ts.map +1 -1
  470. package/lib/typescript/commonjs/src/modules/auth/register/components/login-link.d.ts.map +1 -1
  471. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/inputs.d.ts.map +1 -1
  472. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-button.d.ts.map +1 -1
  473. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts +1 -1
  474. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  475. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/header/title.d.ts.map +1 -1
  476. package/lib/typescript/commonjs/src/modules/auth/reset-password/contexts/reset-password-form-context.d.ts +2 -46
  477. package/lib/typescript/commonjs/src/modules/auth/reset-password/contexts/reset-password-form-context.d.ts.map +1 -1
  478. package/lib/typescript/commonjs/src/modules/auth/reset-password/hooks/use-reset-password-form.d.ts +1 -47
  479. package/lib/typescript/commonjs/src/modules/auth/reset-password/hooks/use-reset-password-form.d.ts.map +1 -1
  480. package/lib/typescript/commonjs/src/modules/auth/reset-password/types/reset-password-context-type.d.ts +3 -1
  481. package/lib/typescript/commonjs/src/modules/auth/reset-password/types/reset-password-context-type.d.ts.map +1 -1
  482. package/lib/typescript/commonjs/src/modules/auth/reset-password/types/reset-password-form-provider-props.d.ts +1 -0
  483. package/lib/typescript/commonjs/src/modules/auth/reset-password/types/reset-password-form-provider-props.d.ts.map +1 -1
  484. package/lib/typescript/commonjs/src/modules/auth/session/components/session-list.d.ts.map +1 -1
  485. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/inputs.d.ts.map +1 -1
  486. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/signin-button.d.ts.map +1 -1
  487. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/header/title.d.ts.map +1 -1
  488. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/register-link.d.ts.map +1 -1
  489. package/lib/typescript/commonjs/src/modules/auth/types/session.d.ts +2 -5
  490. package/lib/typescript/commonjs/src/modules/auth/types/session.d.ts.map +1 -1
  491. package/lib/typescript/commonjs/src/modules/auth/utils/sign-out-google.d.ts +3 -0
  492. package/lib/typescript/commonjs/src/modules/auth/utils/sign-out-google.d.ts.map +1 -0
  493. package/lib/typescript/commonjs/src/modules/background-sync/background-safe-storage.d.ts +3 -1
  494. package/lib/typescript/commonjs/src/modules/background-sync/background-safe-storage.d.ts.map +1 -1
  495. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  496. package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts +0 -2
  497. package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts.map +1 -1
  498. package/lib/typescript/commonjs/src/modules/bt-device-instructions/index.d.ts +4 -0
  499. package/lib/typescript/commonjs/src/modules/bt-device-instructions/index.d.ts.map +1 -0
  500. package/lib/typescript/commonjs/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts +14 -0
  501. package/lib/typescript/commonjs/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -0
  502. package/lib/typescript/commonjs/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -1
  503. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  504. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  505. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +9 -3
  506. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  507. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -1
  508. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -1
  509. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -1
  510. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
  511. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -1
  512. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
  513. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-request-permissions.d.ts.map +1 -1
  514. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-scan-control.d.ts +7 -0
  515. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-scan-control.d.ts.map +1 -0
  516. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +2 -0
  517. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  518. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  519. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +9 -0
  520. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  521. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts.map +1 -1
  522. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts +17 -1
  523. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  524. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.files.d.ts +17 -0
  525. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.files.d.ts.map +1 -0
  526. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts +28 -0
  527. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -0
  528. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  529. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +7 -0
  530. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  531. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  532. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +1 -0
  533. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  534. package/lib/typescript/commonjs/src/modules/bt-management/services/push-notification.d.ts +8 -0
  535. package/lib/typescript/commonjs/src/modules/bt-management/services/push-notification.d.ts.map +1 -0
  536. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts +17 -0
  537. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
  538. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +2 -0
  539. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  540. package/lib/typescript/commonjs/src/modules/bt-management/types/bluetooth-error.d.ts +1 -0
  541. package/lib/typescript/commonjs/src/modules/bt-management/types/bluetooth-error.d.ts.map +1 -1
  542. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts +7 -1
  543. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  544. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +2 -0
  545. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  546. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +2 -0
  547. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  548. package/lib/typescript/commonjs/src/modules/bt-management/utils/device-title.d.ts +8 -0
  549. package/lib/typescript/commonjs/src/modules/bt-management/utils/device-title.d.ts.map +1 -0
  550. package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts.map +1 -1
  551. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  552. package/lib/typescript/commonjs/src/modules/data-sync/components/manually-request-sheet/description.d.ts.map +1 -1
  553. package/lib/typescript/commonjs/src/modules/data-sync/components/sync-progress-list/sync-progress-list.d.ts +8 -5
  554. package/lib/typescript/commonjs/src/modules/data-sync/components/sync-progress-list/sync-progress-list.d.ts.map +1 -1
  555. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  556. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  557. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  558. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  559. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-observation-device.d.ts +9 -0
  560. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-observation-device.d.ts.map +1 -0
  561. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts +3 -2
  562. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
  563. package/lib/typescript/commonjs/src/modules/helpers/form-items/form-date-field.d.ts.map +1 -1
  564. package/lib/typescript/commonjs/src/modules/helpers/form-items/form-select.d.ts.map +1 -1
  565. package/lib/typescript/commonjs/src/modules/helpers/index.d.ts +1 -1
  566. package/lib/typescript/commonjs/src/modules/helpers/index.d.ts.map +1 -1
  567. package/lib/typescript/commonjs/src/modules/helpers/utils/sentry-logger.d.ts.map +1 -1
  568. package/lib/typescript/commonjs/src/modules/helpers/utils/telemetry.d.ts +3 -2
  569. package/lib/typescript/commonjs/src/modules/helpers/utils/telemetry.d.ts.map +1 -1
  570. package/lib/typescript/commonjs/src/modules/image/components/optimized-image.d.ts.map +1 -1
  571. package/lib/typescript/commonjs/src/modules/measurement/components/date-range.d.ts.map +1 -1
  572. package/lib/typescript/commonjs/src/modules/measurement/components/measurement-list-item.d.ts.map +1 -1
  573. package/lib/typescript/commonjs/src/modules/measurement/types/measurement-list-item-props.d.ts +2 -0
  574. package/lib/typescript/commonjs/src/modules/measurement/types/measurement-list-item-props.d.ts.map +1 -1
  575. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  576. package/lib/typescript/commonjs/src/modules/theme/hooks/use-app-theme.d.ts +3 -1
  577. package/lib/typescript/commonjs/src/modules/theme/hooks/use-app-theme.d.ts.map +1 -1
  578. package/lib/typescript/commonjs/src/modules/theme/index.d.ts +1 -1
  579. package/lib/typescript/commonjs/src/modules/theme/index.d.ts.map +1 -1
  580. package/lib/typescript/commonjs/src/modules/theme/types/theme-provider-props.d.ts +12 -3
  581. package/lib/typescript/commonjs/src/modules/theme/types/theme-provider-props.d.ts.map +1 -1
  582. package/lib/typescript/commonjs/src/modules/theme/utils/generate-theme.d.ts +3 -1
  583. package/lib/typescript/commonjs/src/modules/theme/utils/generate-theme.d.ts.map +1 -1
  584. package/lib/typescript/commonjs/src/modules/tile/constants/measurement-icon-svg.d.ts +1 -0
  585. package/lib/typescript/commonjs/src/modules/tile/constants/measurement-icon-svg.d.ts.map +1 -1
  586. package/lib/typescript/commonjs/src/modules/ui/components/background-sync-setting.d.ts +4 -1
  587. package/lib/typescript/commonjs/src/modules/ui/components/background-sync-setting.d.ts.map +1 -1
  588. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts +7 -1
  589. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -1
  590. package/lib/typescript/commonjs/src/modules/ui/components/ecg-strip-viewer.d.ts.map +1 -1
  591. package/lib/typescript/commonjs/src/modules/ui/components/health-import-card.d.ts +5 -1
  592. package/lib/typescript/commonjs/src/modules/ui/components/health-import-card.d.ts.map +1 -1
  593. package/lib/typescript/commonjs/src/modules/ui/components/manual-entry-form.d.ts +2 -1
  594. package/lib/typescript/commonjs/src/modules/ui/components/manual-entry-form.d.ts.map +1 -1
  595. package/lib/typescript/commonjs/src/modules/ui/components/measurement-trend-chart.d.ts +19 -0
  596. package/lib/typescript/commonjs/src/modules/ui/components/measurement-trend-chart.d.ts.map +1 -0
  597. package/lib/typescript/commonjs/src/modules/ui/components/pairing-flow.d.ts +16 -1
  598. package/lib/typescript/commonjs/src/modules/ui/components/pairing-flow.d.ts.map +1 -1
  599. package/lib/typescript/commonjs/src/modules/ui/components/supported-devices-catalog-list.d.ts.map +1 -1
  600. package/lib/typescript/commonjs/src/modules/ui/components/urine-test-result.d.ts.map +1 -1
  601. package/lib/typescript/commonjs/src/modules/ui/index.d.ts +1 -0
  602. package/lib/typescript/commonjs/src/modules/ui/index.d.ts.map +1 -1
  603. package/lib/typescript/commonjs/src/modules/ui/types.d.ts +4 -1
  604. package/lib/typescript/commonjs/src/modules/ui/types.d.ts.map +1 -1
  605. package/lib/typescript/commonjs/src/modules/ui/use-ovok-ui.d.ts.map +1 -1
  606. package/lib/typescript/module/src/index.d.ts +0 -10
  607. package/lib/typescript/module/src/index.d.ts.map +1 -1
  608. package/lib/typescript/module/src/modules/auth/default-translation.d.ts +2 -0
  609. package/lib/typescript/module/src/modules/auth/default-translation.d.ts.map +1 -0
  610. package/lib/typescript/module/src/modules/auth/delete-account-button/components/delete-account-button.d.ts.map +1 -1
  611. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts +8 -2
  612. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  613. package/lib/typescript/module/src/modules/auth/index.d.ts +1 -0
  614. package/lib/typescript/module/src/modules/auth/index.d.ts.map +1 -1
  615. package/lib/typescript/module/src/modules/auth/logout-button/components/logout-button.d.ts +1 -1
  616. package/lib/typescript/module/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  617. package/lib/typescript/module/src/modules/auth/logout-button/types/logout-button-props.d.ts +6 -1
  618. package/lib/typescript/module/src/modules/auth/logout-button/types/logout-button-props.d.ts.map +1 -1
  619. package/lib/typescript/module/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
  620. package/lib/typescript/module/src/modules/auth/register/components/form/register-button.d.ts.map +1 -1
  621. package/lib/typescript/module/src/modules/auth/register/components/header/title.d.ts.map +1 -1
  622. package/lib/typescript/module/src/modules/auth/register/components/login-link.d.ts.map +1 -1
  623. package/lib/typescript/module/src/modules/auth/reset-password/components/form/inputs.d.ts.map +1 -1
  624. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-button.d.ts.map +1 -1
  625. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts +1 -1
  626. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  627. package/lib/typescript/module/src/modules/auth/reset-password/components/header/title.d.ts.map +1 -1
  628. package/lib/typescript/module/src/modules/auth/reset-password/contexts/reset-password-form-context.d.ts +2 -46
  629. package/lib/typescript/module/src/modules/auth/reset-password/contexts/reset-password-form-context.d.ts.map +1 -1
  630. package/lib/typescript/module/src/modules/auth/reset-password/hooks/use-reset-password-form.d.ts +1 -47
  631. package/lib/typescript/module/src/modules/auth/reset-password/hooks/use-reset-password-form.d.ts.map +1 -1
  632. package/lib/typescript/module/src/modules/auth/reset-password/types/reset-password-context-type.d.ts +3 -1
  633. package/lib/typescript/module/src/modules/auth/reset-password/types/reset-password-context-type.d.ts.map +1 -1
  634. package/lib/typescript/module/src/modules/auth/reset-password/types/reset-password-form-provider-props.d.ts +1 -0
  635. package/lib/typescript/module/src/modules/auth/reset-password/types/reset-password-form-provider-props.d.ts.map +1 -1
  636. package/lib/typescript/module/src/modules/auth/session/components/session-list.d.ts.map +1 -1
  637. package/lib/typescript/module/src/modules/auth/sign-in/components/form/inputs.d.ts.map +1 -1
  638. package/lib/typescript/module/src/modules/auth/sign-in/components/form/signin-button.d.ts.map +1 -1
  639. package/lib/typescript/module/src/modules/auth/sign-in/components/header/title.d.ts.map +1 -1
  640. package/lib/typescript/module/src/modules/auth/sign-in/components/register-link.d.ts.map +1 -1
  641. package/lib/typescript/module/src/modules/auth/types/session.d.ts +2 -5
  642. package/lib/typescript/module/src/modules/auth/types/session.d.ts.map +1 -1
  643. package/lib/typescript/module/src/modules/auth/utils/sign-out-google.d.ts +3 -0
  644. package/lib/typescript/module/src/modules/auth/utils/sign-out-google.d.ts.map +1 -0
  645. package/lib/typescript/module/src/modules/background-sync/background-safe-storage.d.ts +3 -1
  646. package/lib/typescript/module/src/modules/background-sync/background-safe-storage.d.ts.map +1 -1
  647. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  648. package/lib/typescript/module/src/modules/bt-device/index.d.ts +0 -2
  649. package/lib/typescript/module/src/modules/bt-device/index.d.ts.map +1 -1
  650. package/lib/typescript/module/src/modules/bt-device-instructions/index.d.ts +4 -0
  651. package/lib/typescript/module/src/modules/bt-device-instructions/index.d.ts.map +1 -0
  652. package/lib/typescript/module/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts +14 -0
  653. package/lib/typescript/module/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -0
  654. package/lib/typescript/module/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -1
  655. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  656. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  657. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +9 -3
  658. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  659. package/lib/typescript/module/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -1
  660. package/lib/typescript/module/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -1
  661. package/lib/typescript/module/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -1
  662. package/lib/typescript/module/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
  663. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -1
  664. package/lib/typescript/module/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
  665. package/lib/typescript/module/src/modules/bt-management/hooks/use-request-permissions.d.ts.map +1 -1
  666. package/lib/typescript/module/src/modules/bt-management/hooks/use-scan-control.d.ts +7 -0
  667. package/lib/typescript/module/src/modules/bt-management/hooks/use-scan-control.d.ts.map +1 -0
  668. package/lib/typescript/module/src/modules/bt-management/index.d.ts +2 -0
  669. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  670. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  671. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +9 -0
  672. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  673. package/lib/typescript/module/src/modules/bt-management/services/devices/boso/boso.medicus.d.ts.map +1 -1
  674. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts +17 -1
  675. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  676. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.files.d.ts +17 -0
  677. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.files.d.ts.map +1 -0
  678. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts +28 -0
  679. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -0
  680. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  681. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +7 -0
  682. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  683. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  684. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +1 -0
  685. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  686. package/lib/typescript/module/src/modules/bt-management/services/push-notification.d.ts +8 -0
  687. package/lib/typescript/module/src/modules/bt-management/services/push-notification.d.ts.map +1 -0
  688. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts +17 -0
  689. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
  690. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +2 -0
  691. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  692. package/lib/typescript/module/src/modules/bt-management/types/bluetooth-error.d.ts +1 -0
  693. package/lib/typescript/module/src/modules/bt-management/types/bluetooth-error.d.ts.map +1 -1
  694. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts +7 -1
  695. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  696. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +2 -0
  697. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  698. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +2 -0
  699. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  700. package/lib/typescript/module/src/modules/bt-management/utils/device-title.d.ts +8 -0
  701. package/lib/typescript/module/src/modules/bt-management/utils/device-title.d.ts.map +1 -0
  702. package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts.map +1 -1
  703. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  704. package/lib/typescript/module/src/modules/data-sync/components/manually-request-sheet/description.d.ts.map +1 -1
  705. package/lib/typescript/module/src/modules/data-sync/components/sync-progress-list/sync-progress-list.d.ts +8 -5
  706. package/lib/typescript/module/src/modules/data-sync/components/sync-progress-list/sync-progress-list.d.ts.map +1 -1
  707. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  708. package/lib/typescript/module/src/modules/data-sync/utils/convert-records-to-observation.d.ts.map +1 -1
  709. package/lib/typescript/module/src/modules/data-sync/utils/convert-samples-to-observation.d.ts.map +1 -1
  710. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  711. package/lib/typescript/module/src/modules/data-sync/utils/health-observation-device.d.ts +9 -0
  712. package/lib/typescript/module/src/modules/data-sync/utils/health-observation-device.d.ts.map +1 -0
  713. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts +3 -2
  714. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
  715. package/lib/typescript/module/src/modules/helpers/form-items/form-date-field.d.ts.map +1 -1
  716. package/lib/typescript/module/src/modules/helpers/form-items/form-select.d.ts.map +1 -1
  717. package/lib/typescript/module/src/modules/helpers/index.d.ts +1 -1
  718. package/lib/typescript/module/src/modules/helpers/index.d.ts.map +1 -1
  719. package/lib/typescript/module/src/modules/helpers/utils/sentry-logger.d.ts.map +1 -1
  720. package/lib/typescript/module/src/modules/helpers/utils/telemetry.d.ts +3 -2
  721. package/lib/typescript/module/src/modules/helpers/utils/telemetry.d.ts.map +1 -1
  722. package/lib/typescript/module/src/modules/image/components/optimized-image.d.ts.map +1 -1
  723. package/lib/typescript/module/src/modules/measurement/components/date-range.d.ts.map +1 -1
  724. package/lib/typescript/module/src/modules/measurement/components/measurement-list-item.d.ts.map +1 -1
  725. package/lib/typescript/module/src/modules/measurement/types/measurement-list-item-props.d.ts +2 -0
  726. package/lib/typescript/module/src/modules/measurement/types/measurement-list-item-props.d.ts.map +1 -1
  727. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  728. package/lib/typescript/module/src/modules/theme/hooks/use-app-theme.d.ts +3 -1
  729. package/lib/typescript/module/src/modules/theme/hooks/use-app-theme.d.ts.map +1 -1
  730. package/lib/typescript/module/src/modules/theme/index.d.ts +1 -1
  731. package/lib/typescript/module/src/modules/theme/index.d.ts.map +1 -1
  732. package/lib/typescript/module/src/modules/theme/types/theme-provider-props.d.ts +12 -3
  733. package/lib/typescript/module/src/modules/theme/types/theme-provider-props.d.ts.map +1 -1
  734. package/lib/typescript/module/src/modules/theme/utils/generate-theme.d.ts +3 -1
  735. package/lib/typescript/module/src/modules/theme/utils/generate-theme.d.ts.map +1 -1
  736. package/lib/typescript/module/src/modules/tile/constants/measurement-icon-svg.d.ts +1 -0
  737. package/lib/typescript/module/src/modules/tile/constants/measurement-icon-svg.d.ts.map +1 -1
  738. package/lib/typescript/module/src/modules/ui/components/background-sync-setting.d.ts +4 -1
  739. package/lib/typescript/module/src/modules/ui/components/background-sync-setting.d.ts.map +1 -1
  740. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts +7 -1
  741. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -1
  742. package/lib/typescript/module/src/modules/ui/components/ecg-strip-viewer.d.ts.map +1 -1
  743. package/lib/typescript/module/src/modules/ui/components/health-import-card.d.ts +5 -1
  744. package/lib/typescript/module/src/modules/ui/components/health-import-card.d.ts.map +1 -1
  745. package/lib/typescript/module/src/modules/ui/components/manual-entry-form.d.ts +2 -1
  746. package/lib/typescript/module/src/modules/ui/components/manual-entry-form.d.ts.map +1 -1
  747. package/lib/typescript/module/src/modules/ui/components/measurement-trend-chart.d.ts +19 -0
  748. package/lib/typescript/module/src/modules/ui/components/measurement-trend-chart.d.ts.map +1 -0
  749. package/lib/typescript/module/src/modules/ui/components/pairing-flow.d.ts +16 -1
  750. package/lib/typescript/module/src/modules/ui/components/pairing-flow.d.ts.map +1 -1
  751. package/lib/typescript/module/src/modules/ui/components/supported-devices-catalog-list.d.ts.map +1 -1
  752. package/lib/typescript/module/src/modules/ui/components/urine-test-result.d.ts.map +1 -1
  753. package/lib/typescript/module/src/modules/ui/index.d.ts +1 -0
  754. package/lib/typescript/module/src/modules/ui/index.d.ts.map +1 -1
  755. package/lib/typescript/module/src/modules/ui/types.d.ts +4 -1
  756. package/lib/typescript/module/src/modules/ui/types.d.ts.map +1 -1
  757. package/lib/typescript/module/src/modules/ui/use-ovok-ui.d.ts.map +1 -1
  758. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["React","AppState","Linking","Platform","PERMISSIONS","requestMultiple","slog","sentryLogger","useRequestPermissions","onAccessPermissionChanged","onChangeRef","useRef","accessPermission","setAccessPermission","useState","undefined","openBleSetting","useCallback","openSettings","useEffect","requestPermissions","permissions","select","android","ANDROID","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","ios","IOS","BLUETOOTH","then","allGranted","Object","values","some","permission","current","catch","error","listener","addEventListener","state","remove"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-request-permissions.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,cAAc;AAC1D,SAEEC,WAAW,EACXC,eAAe,QACV,0BAA0B;AAEjC,SAASC,IAAI,QAAQ,wBAAe;AACpC,SAASC,YAAY,QAAQ,sCAAmC;AAIhE,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACpCC;AACuE,CAAC,KAAK;EAC7E,MAAMC,WAAW,GAAGV,KAAK,CAACW,MAAM,CAC9BF,yBACF,CAAC;EAED,MAAM,CAACG,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGb,KAAK,CAACc,QAAQ,CAE5DC,SAAS,CAAC;EAEZ,MAAMC,cAAc,GAAGhB,KAAK,CAACiB,WAAW,CAAC,MAAM;IAC7Cf,OAAO,CAACgB,YAAY,CAAC,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAENlB,KAAK,CAACmB,SAAS,CAAC,MAAM;IACpB,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;MACrC,MAAMC,WAAW,GAAGlB,QAAQ,CAACmB,MAAM,CAAC;QAClCC,OAAO,EAAE,CACPnB,WAAW,CAACoB,OAAO,CAACC,iBAAiB,EACrCrB,WAAW,CAACoB,OAAO,CAACE,cAAc,EAClCtB,WAAW,CAACoB,OAAO,CAACG,oBAAoB,CACzC;QACDC,GAAG,EAAE,CAACxB,WAAW,CAACyB,GAAG,CAACC,SAAS;MACjC,CAAC,CAAiB;MAElBvB,YAAY,CAAC,MAAM,EAAE,qCAAqC,EAAE;QAC1Dc;MACF,CAAC,CAAC;MAEFhB,eAAe,CAACgB,WAAW,CAAC,CACzBU,IAAI,CAAEV,WAAW,IAAK;QACrB,MAAMW,UAAU,GAAGC,MAAM,CAACC,MAAM,CAACb,WAAW,CAAC,CAACc,IAAI,CAC/CC,UAAU,IAAKA,UAAU,KAAK,SACjC,CAAC;QAED7B,YAAY,CAAC,MAAM,EAAE,oCAAoC,EAAE;UACzDc,WAAW;UACXW;QACF,CAAC,CAAC;QACFtB,WAAW,CAAC2B,OAAO,GAAGL,UAAU,CAAC;QACjCnB,mBAAmB,CAACmB,UAAU,CAAC;MACjC,CAAC,CAAC,CACDM,KAAK,CAAEC,KAAK,IAAKjC,IAAI,CAACiC,KAAK,EAAE,6BAA6B,CAAC,CAAC;IACjE,CAAC;IAED,MAAMC,QAAQ,GAAGvC,QAAQ,CAACwC,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MAC9D,IAAIA,KAAK,KAAK,QAAQ,EAAE;QACtB;MACF;MACAtB,kBAAkB,CAAC,CAAC;IACtB,CAAC,CAAC;IAEFA,kBAAkB,CAAC,CAAC;IAEpB,OAAO,MAAM;MACXoB,QAAQ,CAACG,MAAM,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN3C,KAAK,CAACmB,SAAS,CAAC,MAAM;IACpBT,WAAW,CAAC2B,OAAO,GAAG5B,yBAAyB;EACjD,CAAC,EAAE,CAACA,yBAAyB,CAAC,CAAC;EAE/B,OAAO;IACLG,gBAAgB;IAChBI;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","AppState","Linking","Platform","PERMISSIONS","requestMultiple","slog","sentryLogger","useRequestPermissions","onAccessPermissionChanged","onChangeRef","useRef","accessPermission","setAccessPermission","useState","undefined","openBleSetting","useCallback","openSettings","useEffect","requestPermissions","requestedPermissions","OS","Number","Version","ANDROID","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","IOS","BLUETOOTH","permissions","then","grantedPermissions","allGranted","every","permission","current","catch","error","listener","addEventListener","state","remove"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-request-permissions.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,cAAc;AAC1D,SAASC,WAAW,EAAEC,eAAe,QAAQ,0BAA0B;AAEvE,SAASC,IAAI,QAAQ,wBAAe;AACpC,SAASC,YAAY,QAAQ,sCAAmC;AAIhE,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACpCC;AACuE,CAAC,KAAK;EAC7E,MAAMC,WAAW,GAAGV,KAAK,CAACW,MAAM,CAC9BF,yBACF,CAAC;EAED,MAAM,CAACG,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGb,KAAK,CAACc,QAAQ,CAE5DC,SAAS,CAAC;EAEZ,MAAMC,cAAc,GAAGhB,KAAK,CAACiB,WAAW,CAAC,MAAM;IAC7Cf,OAAO,CAACgB,YAAY,CAAC,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAENlB,KAAK,CAACmB,SAAS,CAAC,MAAM;IACpB,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;MACrC,MAAMC,oBAAoB,GACxBlB,QAAQ,CAACmB,EAAE,KAAK,SAAS,GACrBC,MAAM,CAACpB,QAAQ,CAACqB,OAAO,CAAC,IAAI,EAAE,GAC5B,CACEpB,WAAW,CAACqB,OAAO,CAACC,iBAAiB,EACrCtB,WAAW,CAACqB,OAAO,CAACE,cAAc,CACnC,GACD,CAACvB,WAAW,CAACqB,OAAO,CAACG,oBAAoB,CAAC,GAC5C,CAACxB,WAAW,CAACyB,GAAG,CAACC,SAAS,CAAC;MAEjCvB,YAAY,CAAC,MAAM,EAAE,qCAAqC,EAAE;QAC1DwB,WAAW,EAAEV;MACf,CAAC,CAAC;MAEFhB,eAAe,CAACgB,oBAAoB,CAAC,CAClCW,IAAI,CAAEC,kBAAkB,IAAK;QAC5B,MAAMC,UAAU,GAAGb,oBAAoB,CAACc,KAAK,CAC1CC,UAAU,IAAKH,kBAAkB,CAACG,UAAU,CAAC,KAAK,SACrD,CAAC;QAED7B,YAAY,CAAC,MAAM,EAAE,oCAAoC,EAAE;UACzDwB,WAAW,EAAEE,kBAAkB;UAC/BC;QACF,CAAC,CAAC;QACFxB,WAAW,CAAC2B,OAAO,GAAGH,UAAU,CAAC;QACjCrB,mBAAmB,CAACqB,UAAU,CAAC;MACjC,CAAC,CAAC,CACDI,KAAK,CAAEC,KAAK,IAAKjC,IAAI,CAACiC,KAAK,EAAE,6BAA6B,CAAC,CAAC;IACjE,CAAC;IAED,MAAMC,QAAQ,GAAGvC,QAAQ,CAACwC,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MAC9D,IAAIA,KAAK,KAAK,QAAQ,EAAE;QACtB;MACF;MACAtB,kBAAkB,CAAC,CAAC;IACtB,CAAC,CAAC;IAEFA,kBAAkB,CAAC,CAAC;IAEpB,OAAO,MAAM;MACXoB,QAAQ,CAACG,MAAM,CAAC,CAAC;IACnB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN3C,KAAK,CAACmB,SAAS,CAAC,MAAM;IACpBT,WAAW,CAAC2B,OAAO,GAAG5B,yBAAyB;EACjD,CAAC,EAAE,CAACA,yBAAyB,CAAC,CAAC;EAE/B,OAAO;IACLG,gBAAgB;IAChBI;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ import * as React from "react";
4
+ import { useBluetoothRuntime } from "./runtime-context.js";
5
+
6
+ /** Exposes scan pause/resume to apps using BTProvider. */
7
+ export const useScanControl = () => {
8
+ const runtime = useBluetoothRuntime();
9
+ React.useSyncExternalStore(runtime.subscribeState, () => runtime.manager, () => undefined);
10
+ return {
11
+ canControl: Boolean(runtime.manager),
12
+ pauseScan: () => runtime.manager?.pauseScan(),
13
+ resumeScan: () => runtime.manager?.resumeScan()
14
+ };
15
+ };
16
+ //# sourceMappingURL=use-scan-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useBluetoothRuntime","useScanControl","runtime","useSyncExternalStore","subscribeState","manager","undefined","canControl","Boolean","pauseScan","resumeScan"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-scan-control.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,mBAAmB,QAAQ,sBAAmB;;AAEvD;AACA,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAIzB;EACH,MAAMC,OAAO,GAAGF,mBAAmB,CAAC,CAAC;EAErCD,KAAK,CAACI,oBAAoB,CACxBD,OAAO,CAACE,cAAc,EACtB,MAAMF,OAAO,CAACG,OAAO,EACrB,MAAMC,SACR,CAAC;EAED,OAAO;IACLC,UAAU,EAAEC,OAAO,CAACN,OAAO,CAACG,OAAO,CAAC;IACpCI,SAAS,EAAEA,CAAA,KAAMP,OAAO,CAACG,OAAO,EAAEI,SAAS,CAAC,CAAC;IAC7CC,UAAU,EAAEA,CAAA,KAAMR,OAAO,CAACG,OAAO,EAAEK,UAAU,CAAC;EAChD,CAAC;AACH,CAAC","ignoreList":[]}
@@ -43,6 +43,7 @@ export * from "./services/background-sync/background-ble-manager.js";
43
43
  export * from "./services/background-sync/background-sync-coordinator.js";
44
44
  export * from "./services/background-sync/background-service-uuids.js";
45
45
  export * from "./utils/result-identity.js";
46
+ export * from "./utils/device-title.js";
46
47
  export * from "./testing/index.js";
47
48
  export * from "./services/custom/define-custom-device.js";
48
49
  export * from "./services/devices/standard-gatt/standard-gatt.devices.js";
@@ -80,4 +81,5 @@ export * from "./hooks/use-device-connection.js";
80
81
  export * from "./hooks/use-measurements.js";
81
82
  export * from "./hooks/use-background-sync.js";
82
83
  export * from "./hooks/use-health-import.js";
84
+ export * from "./hooks/use-scan-control.js";
83
85
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["modules/bt-management/index.ts"],"mappings":";;AAAA,cAAc,gCAA6B;AAC3C,cAAc,4BAAyB;AACvC,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,6BAA0B;AACxC,cAAc,qCAAkC;AAChD,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,gCAA6B;AAC3C,cAAc,gCAA6B;AAC3C,cAAc,8BAA2B;AACzC,cAAc,2BAAwB;AACtC,cAAc,uBAAoB;AAClC,cAAc,0BAAuB;AACrC,cAAc,wBAAqB;AACnC,cAAc,0BAAuB;AACrC,cAAc,+BAA4B;AAC1C,cAAc,6BAA0B;AACxC,cAAc,yBAAsB;AACpC,cAAc,0BAAuB;AACrC,cAAc,6BAA0B;AACxC,cAAc,sCAAmC;AACjD,cAAc,4BAAyB;AACvC,cAAc,4BAAyB;AACvC,cAAc,2BAAwB;AACtC,cAAc,4BAAyB;AACvC,cAAc,0CAAuC;AACrD,cAAc,oCAAiC;AAC/C,cAAc,0BAAuB;AAErC,cAAc,yCAAsC;AACpD,cAAc,0DAAuD;AACrE,cAAc,4CAAyC;AACvD,cAAc,0BAAuB;AACrC,cAAc,sDAAmD;AACjE,cAAc,2DAAwD;AACtE,cAAc,wDAAqD;AACnE,cAAc,4BAAyB;AACvC,cAAc,oBAAW;AACzB,cAAc,2CAAwC;AACtD,cAAc,2DAAwD;AACtE,cAAc,yCAAsC;AACpD,cAAc,oDAAiD;AAC/D,cAAc,mDAAgD;AAC9D,cAAc,0DAAuD;AACrE,cAAc,kDAA+C;AAC7D,cAAc,uDAAoD;AAClE,cAAc,0DAAuD;AACrE,cAAc,mDAAgD;AAC9D,cAAc,4CAAyC;AACvD,cAAc,4CAAyC;AACvD,cAAc,iDAA8C;AAC5D,cAAc,+CAA4C;AAC1D,cAAc,mDAAgD;AAC9D,cAAc,+CAA4C;AAC1D,cAAc,2CAAwC;AACtD,cAAc,8CAA2C;AACzD,cAAc,4CAAyC;AACvD,cAAc,0CAAuC;AACrD,cAAc,6CAA0C;AACxD,cAAc,+CAA4C;AAC1D,cAAc,+CAA4C;AAE1D,cAAc,0CAAuC;AAErD,cAAc,6BAA0B;AACxC,cAAc,yCAAsC;AACpD,cAAc,6CAA0C;AACxD,cAAc,oCAAiC;AAC/C,cAAc,4BAAyB;AACvC,cAAc,gCAA6B;AAC3C,cAAc,+BAA4B;AAC1C,cAAc,+BAA4B;AAC1C,cAAc,kCAA+B;AAC7C,cAAc,6BAA0B;AACxC,cAAc,gCAA6B;AAC3C,cAAc,8BAA2B","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["modules/bt-management/index.ts"],"mappings":";;AAAA,cAAc,gCAA6B;AAC3C,cAAc,4BAAyB;AACvC,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,6BAA0B;AACxC,cAAc,qCAAkC;AAChD,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,gCAA6B;AAC3C,cAAc,gCAA6B;AAC3C,cAAc,8BAA2B;AACzC,cAAc,2BAAwB;AACtC,cAAc,uBAAoB;AAClC,cAAc,0BAAuB;AACrC,cAAc,wBAAqB;AACnC,cAAc,0BAAuB;AACrC,cAAc,+BAA4B;AAC1C,cAAc,6BAA0B;AACxC,cAAc,yBAAsB;AACpC,cAAc,0BAAuB;AACrC,cAAc,6BAA0B;AACxC,cAAc,sCAAmC;AACjD,cAAc,4BAAyB;AACvC,cAAc,4BAAyB;AACvC,cAAc,2BAAwB;AACtC,cAAc,4BAAyB;AACvC,cAAc,0CAAuC;AACrD,cAAc,oCAAiC;AAC/C,cAAc,0BAAuB;AAErC,cAAc,yCAAsC;AACpD,cAAc,0DAAuD;AACrE,cAAc,4CAAyC;AACvD,cAAc,0BAAuB;AACrC,cAAc,sDAAmD;AACjE,cAAc,2DAAwD;AACtE,cAAc,wDAAqD;AACnE,cAAc,4BAAyB;AACvC,cAAc,yBAAsB;AACpC,cAAc,oBAAW;AACzB,cAAc,2CAAwC;AACtD,cAAc,2DAAwD;AACtE,cAAc,yCAAsC;AACpD,cAAc,oDAAiD;AAC/D,cAAc,mDAAgD;AAC9D,cAAc,0DAAuD;AACrE,cAAc,kDAA+C;AAC7D,cAAc,uDAAoD;AAClE,cAAc,0DAAuD;AACrE,cAAc,mDAAgD;AAC9D,cAAc,4CAAyC;AACvD,cAAc,4CAAyC;AACvD,cAAc,iDAA8C;AAC5D,cAAc,+CAA4C;AAC1D,cAAc,mDAAgD;AAC9D,cAAc,+CAA4C;AAC1D,cAAc,2CAAwC;AACtD,cAAc,8CAA2C;AACzD,cAAc,4CAAyC;AACvD,cAAc,0CAAuC;AACrD,cAAc,6CAA0C;AACxD,cAAc,+CAA4C;AAC1D,cAAc,+CAA4C;AAE1D,cAAc,0CAAuC;AAErD,cAAc,6BAA0B;AACxC,cAAc,yCAAsC;AACpD,cAAc,6CAA0C;AACxD,cAAc,oCAAiC;AAC/C,cAAc,4BAAyB;AACvC,cAAc,gCAA6B;AAC3C,cAAc,+BAA4B;AAC1C,cAAc,+BAA4B;AAC1C,cAAc,kCAA+B;AAC7C,cAAc,6BAA0B;AACxC,cAAc,gCAA6B;AAC3C,cAAc,8BAA2B;AACzC,cAAc,6BAA0B","ignoreList":[]}
@@ -76,8 +76,11 @@ class BackgroundSyncCoordinator {
76
76
  };
77
77
  });
78
78
  } catch (error) {
79
+ const queueError = new Error(`Background sync queue could not be read: ${error instanceof Error ? error.message : String(error)}`);
80
+ await this.options.storage.setItem(`${this.storageKey}.corrupt`, serialized);
79
81
  await this.options.storage.setItem(this.storageKey, "[]");
80
- throw new Error(`Background sync queue could not be read: ${error instanceof Error ? error.message : String(error)}`);
82
+ this.options.onError?.(queueError);
83
+ return [];
81
84
  }
82
85
  };
83
86
  writeQueue = async queue => {
@@ -1 +1 @@
1
- {"version":3,"names":["recordOvokMetric","reviveResultDates","DEFAULT_QUEUE_KEY","DEFAULT_MAX_RETRIES","DEFAULT_RETRY_BACKOFF_MS","resultSequence","createResultId","Date","now","Math","random","toString","slice","createQueueId","BackgroundSyncCoordinator","operation","Promise","resolve","constructor","options","storageKey","maxRetries","max","retryBackoffMs","enqueue","result","runExclusive","queue","readQueue","stableId","id","push","queueId","queuedAt","toISOString","attempt","nextAttemptAt","writeQueue","length","flushQueue","flush","next","then","catch","undefined","serialized","storage","getItem","parsed","JSON","parse","Array","isArray","Error","map","item","typed","error","setItem","message","String","stringify","changed","exhausted","resetExhausted","includeExhausted","onResult","splice","indexOf","measurementTypeKey","data","Number","MAX_SAFE_INTEGER"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-sync-coordinator.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["recordOvokMetric","reviveResultDates","DEFAULT_QUEUE_KEY","DEFAULT_MAX_RETRIES","DEFAULT_RETRY_BACKOFF_MS","resultSequence","createResultId","Date","now","Math","random","toString","slice","createQueueId","BackgroundSyncCoordinator","operation","Promise","resolve","constructor","options","storageKey","maxRetries","max","retryBackoffMs","enqueue","result","runExclusive","queue","readQueue","stableId","id","push","queueId","queuedAt","toISOString","attempt","nextAttemptAt","writeQueue","length","flushQueue","flush","next","then","catch","undefined","serialized","storage","getItem","parsed","JSON","parse","Array","isArray","Error","map","item","typed","error","queueError","message","String","setItem","onError","stringify","changed","exhausted","resetExhausted","includeExhausted","onResult","splice","indexOf","measurementTypeKey","data","Number","MAX_SAFE_INTEGER"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-sync-coordinator.ts"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,16 @@ import { sentryLogger } from "../../helpers/utils/sentry-logger.js";
8
8
  import { addOvokSpanEvent, recordOvokMetric } from "../../helpers/utils/telemetry.js";
9
9
  import { toBluetoothError } from "../types/bluetooth-error.js";
10
10
  import { DeviceCreator } from "./device-creator.js";
11
+ const bluetoothErrorCallback = error => {
12
+ const normalized = toBluetoothError(error);
13
+ const originalError = normalized.originalError;
14
+ return {
15
+ error: normalized.translationKey ?? (originalError instanceof Error || typeof originalError === "string" ? originalError : normalized),
16
+ code: normalized.code
17
+ };
18
+ };
19
+ const SCAN_RETRY_DELAY_MS = 1_000;
20
+ const SCAN_RESTART_DELAY_MS = 1_000;
11
21
  class BTManager {
12
22
  static MAX_DEVICES = 15; // Safety limit to prevent unbounded growth
13
23
  devices = new Map();
@@ -25,6 +35,21 @@ class BTManager {
25
35
  this.deviceCreator = new DeviceCreator(this.acceptedDevices);
26
36
  this.backgroundScanEnabled = options.backgroundEnabled === true;
27
37
  }
38
+ setAutoConnect = (enabledOrOptions, delayMs, onDeviceSelectionRequired) => {
39
+ const enabled = typeof enabledOrOptions === "boolean" ? enabledOrOptions : enabledOrOptions.enabled;
40
+ const nextDelayMs = typeof enabledOrOptions === "boolean" ? delayMs : enabledOrOptions.delayMs;
41
+ const nextSelectionHandler = typeof enabledOrOptions === "boolean" ? onDeviceSelectionRequired : enabledOrOptions.onDeviceSelectionRequired;
42
+ this.options.autoConnect = enabled;
43
+ this.options.autoConnectDelayMs = nextDelayMs ?? this.options.autoConnectDelayMs;
44
+ this.options.onDeviceSelectionRequired = nextSelectionHandler;
45
+ if (!enabled) {
46
+ this.autoConnectCandidates.clear();
47
+ if (this.autoConnectTimer) {
48
+ clearTimeout(this.autoConnectTimer);
49
+ this.autoConnectTimer = undefined;
50
+ }
51
+ }
52
+ };
28
53
  destroy = () => {
29
54
  sentryLogger("info", "BT_MANAGER: Destroying BTManager");
30
55
  this.destroyed = true;
@@ -41,7 +66,7 @@ class BTManager {
41
66
  this.onDeviceStatusChangedCallback = undefined;
42
67
  this.onConnectionEventCallback = undefined;
43
68
  this.devices.forEach(device => {
44
- device.destroy();
69
+ void device.disconnect();
45
70
  });
46
71
  this.devices.clear();
47
72
  this.forgottenDeviceIds.clear();
@@ -53,20 +78,18 @@ class BTManager {
53
78
  }
54
79
  const generation = ++this.scanGeneration;
55
80
  let subscription;
56
- let poweredOnBeforeSubscription = false;
57
81
  const onStateChange = state => {
58
82
  if (this.destroyed || generation !== this.scanGeneration) {
59
83
  return;
60
84
  }
61
85
  if (state === State.PoweredOn) {
62
- if (subscription) {
63
- this.removeStateChangeListener(subscription);
64
- } else {
65
- poweredOnBeforeSubscription = true;
66
- }
67
86
  this.startDeviceScan(generation);
68
87
  return;
69
88
  }
89
+ this.scanActive = false;
90
+ this.scanStarting = false;
91
+ this.bleManager.stopDeviceScan();
92
+ this.onErrorCallback?.(bluetoothErrorCallback("Bluetooth is powered off"));
70
93
  sentryLogger("warning", "BT_MANAGER: State is not PoweredOn, sending intent to enable Bluetooth");
71
94
 
72
95
  // Only send intent on Android — iOS has no programmatic way to power on
@@ -81,17 +104,11 @@ class BTManager {
81
104
  try {
82
105
  subscription = this.bleManager.onStateChange(onStateChange, true);
83
106
  } catch (error) {
84
- this.onErrorCallback?.({
85
- error: toBluetoothError(error)
86
- });
107
+ this.onErrorCallback?.(bluetoothErrorCallback(error));
87
108
  return;
88
109
  }
89
- if (poweredOnBeforeSubscription) {
90
- this.removeStateChangeListener(subscription);
91
- } else {
92
- this.stateChangeListener = subscription;
93
- this.eventSubscriptions.push(subscription);
94
- }
110
+ this.stateChangeListener = subscription;
111
+ this.eventSubscriptions.push(subscription);
95
112
  };
96
113
 
97
114
  /** Switches only the scan policy; the app can keep a foreground scan broad. */
@@ -109,6 +126,7 @@ class BTManager {
109
126
  this.scanGeneration += 1;
110
127
  this.scanActive = false;
111
128
  this.scanStarting = false;
129
+ this.clearScanTimers();
112
130
  this.removeStateChangeListener();
113
131
  this.bleManager.stopDeviceScan();
114
132
 
@@ -123,7 +141,7 @@ class BTManager {
123
141
  this.onDeviceStatusChangedCallback = undefined;
124
142
  this.onConnectionEventCallback = undefined;
125
143
  this.devices.forEach(device => {
126
- device.destroy();
144
+ void device.disconnect();
127
145
  });
128
146
  this.devices.clear();
129
147
  };
@@ -142,6 +160,7 @@ class BTManager {
142
160
  this.scanGeneration += 1;
143
161
  this.scanActive = false;
144
162
  this.scanStarting = false;
163
+ this.clearScanTimers();
145
164
  this.removeStateChangeListener();
146
165
  this.bleManager.stopDeviceScan();
147
166
  };
@@ -166,9 +185,32 @@ class BTManager {
166
185
  this.scanGeneration += 1;
167
186
  this.scanActive = false;
168
187
  this.scanStarting = false;
188
+ this.clearScanTimers();
169
189
  this.removeStateChangeListener();
170
190
  this.bleManager.stopDeviceScan();
171
- this.startScan();
191
+ this.scanRestartTimer = setTimeout(() => {
192
+ this.scanRestartTimer = undefined;
193
+ this.startScan();
194
+ }, SCAN_RESTART_DELAY_MS);
195
+ };
196
+ clearScanTimers = () => {
197
+ if (this.scanRetryTimer) {
198
+ clearTimeout(this.scanRetryTimer);
199
+ this.scanRetryTimer = undefined;
200
+ }
201
+ if (this.scanRestartTimer) {
202
+ clearTimeout(this.scanRestartTimer);
203
+ this.scanRestartTimer = undefined;
204
+ }
205
+ };
206
+ scheduleScanRetry = generation => {
207
+ if (this.destroyed || generation !== this.scanGeneration || this.scanRetryTimer) {
208
+ return;
209
+ }
210
+ this.scanRetryTimer = setTimeout(() => {
211
+ this.scanRetryTimer = undefined;
212
+ this.startDeviceScan(generation);
213
+ }, SCAN_RETRY_DELAY_MS);
172
214
  };
173
215
  removeStateChangeListener = (subscription = this.stateChangeListener) => {
174
216
  if (!subscription) {
@@ -189,12 +231,11 @@ class BTManager {
189
231
  }
190
232
  const serviceUUIDs = this.options.serviceUUIDs ?? [];
191
233
  if (Platform.OS === "ios" && this.backgroundScanEnabled && !serviceUUIDs.length) {
192
- this.onErrorCallback?.({
193
- error: "Background Bluetooth sync on iOS requires at least one service UUID. Add serviceUUIDs for custom devices."
194
- });
234
+ this.onErrorCallback?.(bluetoothErrorCallback("Background Bluetooth sync on iOS requires at least one service UUID. Add serviceUUIDs for custom devices."));
195
235
  return;
196
236
  }
197
237
  this.scanStarting = true;
238
+ let scanFailed = false;
198
239
  try {
199
240
  this.bleManager.startDeviceScan(this.backgroundScanEnabled ? [...serviceUUIDs] : null, {
200
241
  scanMode: this.backgroundScanEnabled ? ScanMode.LowPower : ScanMode.Balanced
@@ -203,20 +244,21 @@ class BTManager {
203
244
  return;
204
245
  }
205
246
  if (error) {
247
+ scanFailed = true;
206
248
  this.scanActive = false;
249
+ this.scheduleScanRetry(generation);
207
250
  }
208
251
  this.onScanResult(error, device);
209
252
  });
210
- this.scanActive = true;
253
+ this.scanActive = !scanFailed;
211
254
  sentryLogger("info", "BT_MANAGER: Scan started (continuous mode)");
212
255
  addOvokSpanEvent("bluetooth.scan.started", {
213
256
  platform: Platform.OS,
214
257
  background: this.backgroundScanEnabled
215
258
  });
216
259
  } catch (error) {
217
- this.onErrorCallback?.({
218
- error: toBluetoothError(error)
219
- });
260
+ this.scheduleScanRetry(generation);
261
+ this.onErrorCallback?.(bluetoothErrorCallback(error));
220
262
  } finally {
221
263
  this.scanStarting = false;
222
264
  }
@@ -265,12 +307,7 @@ class BTManager {
265
307
  onScanResult = (error, device) => {
266
308
  try {
267
309
  if (error) {
268
- this.onErrorCallback?.({
269
- error: toBluetoothError(error)
270
- });
271
- sentryLogger("error", "BT_MANAGER: Scan result error", {
272
- error: error instanceof Error ? error.message : error
273
- });
310
+ this.onErrorCallback?.(bluetoothErrorCallback(error));
274
311
  slog(error, "BT_MANAGER: Scan result error", {
275
312
  error
276
313
  });
@@ -330,11 +367,6 @@ class BTManager {
330
367
  this.onDeviceFoundCallback?.(deviceClass, this);
331
368
  this.queueAutoConnect(deviceClass);
332
369
  } catch (error) {
333
- sentryLogger("error", "BT_MANAGER: Error creating device", {
334
- error: error instanceof Error ? error.message : error,
335
- deviceId: device?.id,
336
- deviceName: device?.name
337
- });
338
370
  slog(error, "BT_MANAGER: Error creating device", {
339
371
  error,
340
372
  deviceId: device?.id,
@@ -355,13 +387,19 @@ class BTManager {
355
387
  const devices = [...this.autoConnectCandidates.values()];
356
388
  this.autoConnectCandidates.clear();
357
389
  if (devices.length === 1) {
358
- void devices[0]?.connect();
390
+ const candidate = devices[0];
391
+ if (candidate && !this.forgottenDeviceIds.has(candidate.id) && this.devices.get(candidate.id) === candidate) {
392
+ void candidate.connect();
393
+ }
359
394
  return;
360
395
  }
361
396
  if (devices.length > 1) {
362
397
  this.options.onDeviceSelectionRequired?.({
363
398
  devices: devices,
364
399
  select: async selected => {
400
+ if (this.forgottenDeviceIds.has(selected.id) || this.devices.get(selected.id) !== selected) {
401
+ throw new Error("The selected Bluetooth device was forgotten.");
402
+ }
365
403
  await selected.connect();
366
404
  }
367
405
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Linking","Platform","ScanMode","State","slog","sentryLogger","addOvokSpanEvent","recordOvokMetric","toBluetoothError","DeviceCreator","BTManager","MAX_DEVICES","devices","Map","forgottenDeviceIds","Set","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","constructor","bleManager","acceptedDevices","options","deviceCreator","backgroundScanEnabled","backgroundEnabled","destroy","stopScan","autoConnectTimer","clearTimeout","undefined","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","onConnectionEventCallback","forEach","device","clear","startScan","stateChangeListener","generation","subscription","poweredOnBeforeSubscription","onStateChange","state","PoweredOn","removeStateChangeListener","startDeviceScan","OS","sendIntent","error","push","setBackgroundScanEnabled","enabled","restartScan","stopDeviceScan","sub","remove","pauseScan","resumeScan","index","indexOf","splice","serviceUUIDs","length","scanMode","LowPower","Balanced","onScanResult","platform","background","restoreDevices","delete","id","forget","deviceId","add","get","disconnect","onDeviceFound","callback","onError","onDeviceStatusChanged","onConnectionEvent","onResult","Error","message","advertisedName","name","trim","localName","has","deviceName","getDeviceName","size","currentSize","deviceClass","createDevice","bind","oneReadingPerConnection","deliveredEcgFileNames","resultPolicy","resultPolicies","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","model","queueAutoConnect","autoConnect","setTimeout","values","connect","onDeviceSelectionRequired","select","selected","Math","max","autoConnectDelayMs"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Linking","Platform","ScanMode","State","slog","sentryLogger","addOvokSpanEvent","recordOvokMetric","toBluetoothError","DeviceCreator","bluetoothErrorCallback","error","normalized","originalError","translationKey","Error","code","SCAN_RETRY_DELAY_MS","SCAN_RESTART_DELAY_MS","BTManager","MAX_DEVICES","devices","Map","forgottenDeviceIds","Set","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","constructor","bleManager","acceptedDevices","options","deviceCreator","backgroundScanEnabled","backgroundEnabled","setAutoConnect","enabledOrOptions","delayMs","onDeviceSelectionRequired","enabled","nextDelayMs","nextSelectionHandler","autoConnect","autoConnectDelayMs","clear","autoConnectTimer","clearTimeout","undefined","destroy","stopScan","onErrorCallback","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","onConnectionEventCallback","forEach","device","disconnect","startScan","stateChangeListener","generation","subscription","onStateChange","state","PoweredOn","startDeviceScan","stopDeviceScan","OS","sendIntent","push","setBackgroundScanEnabled","restartScan","clearScanTimers","removeStateChangeListener","sub","remove","pauseScan","resumeScan","scanRestartTimer","setTimeout","scanRetryTimer","scheduleScanRetry","index","indexOf","splice","serviceUUIDs","length","scanFailed","scanMode","LowPower","Balanced","onScanResult","platform","background","restoreDevices","delete","id","forget","deviceId","add","get","onDeviceFound","callback","onError","onDeviceStatusChanged","onConnectionEvent","onResult","advertisedName","name","trim","localName","has","deviceName","getDeviceName","size","currentSize","deviceClass","createDevice","bind","oneReadingPerConnection","deliveredEcgFileNames","resultPolicy","resultPolicies","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","model","queueAutoConnect","values","candidate","connect","select","selected","Math","max"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -15,12 +15,15 @@ const BOSO_MEDICUS_NAME_MATCH = /^boso medicus [0-9a-f]{6}$/i;
15
15
  * pairing. The shared profile declaration handles mmHg, optional timestamps, pulse rate and
16
16
  * the profile's user/status bytes without inventing a boso-specific wire format.
17
17
  */
18
- const bosoMedicusMonitor = params => standardBloodPressureDevice({
19
- id: params.id ?? "boso-medicus-system",
20
- nameMatch: params.nameMatch ?? BOSO_MEDICUS_NAME_MATCH,
21
- ...(params.stuckDataTimeoutMs === undefined ? {} : {
22
- stuckDataTimeoutMs: params.stuckDataTimeoutMs
23
- })
18
+ const bosoMedicusMonitor = params => ({
19
+ ...standardBloodPressureDevice({
20
+ id: params.id ?? "boso-medicus-system",
21
+ nameMatch: params.nameMatch ?? BOSO_MEDICUS_NAME_MATCH,
22
+ ...(params.stuckDataTimeoutMs === undefined ? {} : {
23
+ stuckDataTimeoutMs: params.stuckDataTimeoutMs
24
+ })
25
+ }),
26
+ reportsBondedEvent: true
24
27
  });
25
28
  export { BOSO_MEDICUS_NAME_MATCH, bosoMedicusMonitor };
26
29
  //# sourceMappingURL=boso.medicus.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["standardBloodPressureDevice","BOSO_MEDICUS_NAME_MATCH","bosoMedicusMonitor","params","id","nameMatch","stuckDataTimeoutMs","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/boso/boso.medicus.ts"],"mappings":";;AACA,SAASA,2BAA2B,QAAQ,2CAAwC;;AAEpF;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAG,6BAA6B;AAc7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GACtBC,MAAyB,IAEzBH,2BAA2B,CAAC;EAC1BI,EAAE,EAAED,MAAM,CAACC,EAAE,IAAI,qBAAqB;EACtCC,SAAS,EAAEF,MAAM,CAACE,SAAS,IAAIJ,uBAAuB;EACtD,IAAIE,MAAM,CAACG,kBAAkB,KAAKC,SAAS,GACvC,CAAC,CAAC,GACF;IAAED,kBAAkB,EAAEH,MAAM,CAACG;EAAmB,CAAC;AACvD,CAAC,CAAC;AAEJ,SAASL,uBAAuB,EAAEC,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["standardBloodPressureDevice","BOSO_MEDICUS_NAME_MATCH","bosoMedicusMonitor","params","id","nameMatch","stuckDataTimeoutMs","undefined","reportsBondedEvent"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/boso/boso.medicus.ts"],"mappings":";;AACA,SAASA,2BAA2B,QAAQ,2CAAwC;;AAEpF;AACA;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAG,6BAA6B;AAc7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GACtBC,MAAyB,KACG;EAC5B,GAAGH,2BAA2B,CAAC;IAC7BI,EAAE,EAAED,MAAM,CAACC,EAAE,IAAI,qBAAqB;IACtCC,SAAS,EAAEF,MAAM,CAACE,SAAS,IAAIJ,uBAAuB;IACtD,IAAIE,MAAM,CAACG,kBAAkB,KAAKC,SAAS,GACvC,CAAC,CAAC,GACF;MAAED,kBAAkB,EAAEH,MAAM,CAACG;IAAmB,CAAC;EACvD,CAAC,CAAC;EACFE,kBAAkB,EAAE;AACtB,CAAC,CAAC;AAEF,SAASP,uBAAuB,EAAEC,kBAAkB","ignoreList":[]}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ /* eslint-disable max-lines */
4
+
3
5
  import { MeasurementTypeKey, EcgDiagnosticFlag } from "@ovok/core";
4
6
  import { BloodPressureStates } from "@ovok/core/dist/client/observation/types/measurement/BloodPressureStates";
5
7
  import { bloodPressureTranslatedExceptionMap } from "../../../constants/blood-pressure-translated-exception-map.js";
@@ -9,7 +11,9 @@ import { i16FromHex } from "../../../utils/i-16-from-hex.js";
9
11
  import { le16FromHex } from "../../../utils/le-16-from-hex.js";
10
12
  import { le32FromHex } from "../../../utils/le-32-from-hex.js";
11
13
  import { BTManagedDevice } from "../bt-managed-device.js";
14
+ import { decodeBP2File } from "./bp2.files.js";
12
15
  import { BP2FrameReader } from "./bp2.frame-reader.js";
16
+ import { BP2HistorySequencer } from "./bp2.history-sequencer.js";
13
17
  import { bp2MainServices } from "./bp2.main-services.js";
14
18
 
15
19
  /**
@@ -17,16 +21,46 @@ import { bp2MainServices } from "./bp2.main-services.js";
17
21
  * notifications than the 23 byte default allows.
18
22
  */
19
23
  const BP2_PREFERRED_MTU = 247;
20
- export class BP2Device extends BTManagedDevice {
24
+
25
+ /** BP2 ECG waveform resolution from the device protocol. */
26
+ const BP2_ECG_MILLIVOLTS_PER_COUNT = 0.003098;
27
+ class BP2Device extends BTManagedDevice {
21
28
  collectedValues = [];
22
29
  diagramPoints = [];
23
30
  duration = 0;
31
+ historyMode = false;
32
+ historyRequested = false;
33
+ pendingResults = new Map();
34
+ reportedFileNames = new Set();
24
35
  mainServices = bp2MainServices;
25
36
  stuckDataTimeout = 5_000;
26
37
  onStreamStart = () => {
27
38
  this.collectedValues = [];
28
39
  this.diagramPoints = [];
29
40
  this.duration = 0;
41
+ this.lastLiveResultSignature = undefined;
42
+ };
43
+ createCommandSequencer = () => {
44
+ this.historyMode = true;
45
+ this.historyRequested = false;
46
+ this.lastLiveResultSignature = undefined;
47
+ this.pendingResults.clear();
48
+ this.reportedFileNames.clear();
49
+ const service = bp2MainServices[0];
50
+ const write = service.writeUuid;
51
+ return new BP2HistorySequencer({
52
+ write: {
53
+ serviceUuid: service.uuid,
54
+ characteristicUuid: write.uuid
55
+ },
56
+ onFile: this.handleHistoryFile,
57
+ onError: this.handleHistoryError,
58
+ onTransferFinished: this.reportPendingResults,
59
+ shouldStartTransfer: () => this.historyRequested,
60
+ onTransferRequested: () => {
61
+ this.historyRequested = false;
62
+ }
63
+ });
30
64
  };
31
65
  frameReader = new BP2FrameReader();
32
66
  preferredMtu = BP2_PREFERRED_MTU;
@@ -53,6 +87,10 @@ export class BP2Device extends BTManagedDevice {
53
87
  this.onError?.(error);
54
88
  return;
55
89
  }
90
+ if (this.historyMode) {
91
+ this.queueHistoryResult(successResult);
92
+ return;
93
+ }
56
94
  this.onResult?.(successResult);
57
95
  return;
58
96
  }
@@ -80,7 +118,7 @@ export class BP2Device extends BTManagedDevice {
80
118
  for (let i = 0; i < samplingNum; i++) {
81
119
  const byteIndexInData = samplesStart + i * 2;
82
120
  const sampleVal = i16FromHex(data, byteIndexInData);
83
- this.diagramPoints.push(sampleVal);
121
+ this.diagramPoints.push(sampleVal * BP2_ECG_MILLIVOLTS_PER_COUNT);
84
122
  }
85
123
  }
86
124
  handleBloodPressureResult(successResult) {
@@ -92,6 +130,10 @@ export class BP2Device extends BTManagedDevice {
92
130
  this.onError?.(error);
93
131
  return;
94
132
  }
133
+ if (this.historyMode) {
134
+ this.queueHistoryResult(successResult);
135
+ return;
136
+ }
95
137
  this.onResult?.(successResult);
96
138
  }
97
139
  checkIfHasErrorForBloodPressure(successResult) {
@@ -118,6 +160,59 @@ export class BP2Device extends BTManagedDevice {
118
160
  }
119
161
  return undefined;
120
162
  }
163
+ queueHistoryResult = result => {
164
+ const signature = this.signatureFor(result);
165
+ if (signature === this.lastLiveResultSignature) {
166
+ return;
167
+ }
168
+ this.lastLiveResultSignature = signature;
169
+ this.pendingResults.set(result.measurementTypeKey, result);
170
+ this.historyRequested = true;
171
+ };
172
+ signatureFor = result => result.measurementTypeKey === MeasurementTypeKey.bloodPressure ? [result.measurementTypeKey, result.systolic, result.diastolic, result.heartRate, result.status].join("|") : [result.measurementTypeKey, result.heartRate, result.diagnosticResult, result.duration, result.diagramPoints?.join(",")].join("|");
173
+ handleHistoryFile = file => {
174
+ if (this.reportedFileNames.has(file.name)) {
175
+ return;
176
+ }
177
+ const decoded = decodeBP2File(file.name, file.content);
178
+ if (!decoded) {
179
+ return;
180
+ }
181
+ const pending = this.pendingResults.get(decoded.measurementTypeKey);
182
+ if (!pending || !this.matchesPendingResult(pending, decoded)) {
183
+ return;
184
+ }
185
+ this.reportedFileNames.add(file.name);
186
+ const result = {
187
+ ...decoded,
188
+ caseType: CaseType.RESULT
189
+ };
190
+ const error = result.measurementTypeKey === MeasurementTypeKey.bloodPressure ? this.checkIfHasErrorForBloodPressure(result) : this.checkIfHasErrorForEcg(result);
191
+ if (error) {
192
+ this.onError?.(error);
193
+ return;
194
+ }
195
+ this.pendingResults.delete(result.measurementTypeKey);
196
+ this.onResult?.(result);
197
+ };
198
+ matchesPendingResult = (pending, decoded) => {
199
+ if (decoded.measurementTypeKey === MeasurementTypeKey.bloodPressure) {
200
+ const pendingBloodPressure = pending;
201
+ const decodedBloodPressure = decoded;
202
+ return pendingBloodPressure.systolic === decodedBloodPressure.systolic && pendingBloodPressure.diastolic === decodedBloodPressure.diastolic && pendingBloodPressure.heartRate === decodedBloodPressure.heartRate && pendingBloodPressure.status === decodedBloodPressure.status;
203
+ }
204
+ const pendingEcg = pending;
205
+ const decodedEcg = decoded;
206
+ return pendingEcg.heartRate === decodedEcg.heartRate && pendingEcg.diagnosticResult === decodedEcg.diagnosticResult && pendingEcg.duration === decodedEcg.duration;
207
+ };
208
+ handleHistoryError = reason => {
209
+ this.onError?.(new Error(`BP2 history: ${reason}`));
210
+ this.reportPendingResults();
211
+ };
212
+ reportPendingResults = () => {
213
+ this.pendingResults.forEach(result => this.onResult?.(result));
214
+ this.pendingResults.clear();
215
+ };
121
216
  checkIfHasErrorForEcg(successResult) {
122
217
  const ecgMeasurement = successResult;
123
218
  if (ecgMeasurement.diagnosticResult === EcgDiagnosticFlag.POOR_WAVEFORM) {
@@ -145,4 +240,5 @@ export class BP2Device extends BTManagedDevice {
145
240
  return undefined;
146
241
  }
147
242
  }
243
+ export { BP2Device, BP2_ECG_MILLIVOLTS_PER_COUNT };
148
244
  //# sourceMappingURL=bp2.device.js.map