@ovok/native 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/README.md +8 -2
  2. package/android/src/main/AndroidManifest.xml +1 -20
  3. package/app.plugin.js +84 -7
  4. package/lib/commonjs/index.js +5 -115
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/modules/auth/hooks/use-session.js +25 -11
  7. package/lib/commonjs/modules/auth/hooks/use-session.js.map +1 -1
  8. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js +3 -2
  9. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js.map +1 -1
  10. package/lib/commonjs/modules/auth/register/components/form/inputs.js +10 -8
  11. package/lib/commonjs/modules/auth/register/components/form/inputs.js.map +1 -1
  12. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js +2 -2
  13. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  14. package/lib/commonjs/modules/auth/session/components/session-list.js +3 -3
  15. package/lib/commonjs/modules/auth/session/components/session-list.js.map +1 -1
  16. package/lib/commonjs/modules/auth/sign-in/components/form/inputs.js +4 -3
  17. package/lib/commonjs/modules/auth/sign-in/components/form/inputs.js.map +1 -1
  18. package/lib/commonjs/modules/background-sync/background-safe-storage.js +3 -6
  19. package/lib/commonjs/modules/background-sync/background-safe-storage.js.map +1 -1
  20. package/lib/commonjs/modules/bt-device/index.js +0 -22
  21. package/lib/commonjs/modules/bt-device/index.js.map +1 -1
  22. package/lib/commonjs/modules/bt-device-instructions/index.js +39 -0
  23. package/lib/commonjs/modules/bt-device-instructions/index.js.map +1 -0
  24. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js +64 -0
  25. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -0
  26. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +7 -41
  27. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  28. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js +1 -0
  29. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  30. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js +4 -0
  31. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -1
  32. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js +8 -4
  33. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js.map +1 -1
  34. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js +5 -1
  35. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js.map +1 -1
  36. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js +48 -12
  37. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js.map +1 -1
  38. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js +40 -18
  39. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js.map +1 -1
  40. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js +8 -1
  41. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js.map +1 -1
  42. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js +13 -4
  43. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
  44. package/lib/commonjs/modules/bt-management/hooks/use-scan-control.js +21 -0
  45. package/lib/commonjs/modules/bt-management/hooks/use-scan-control.js.map +1 -0
  46. package/lib/commonjs/modules/bt-management/index.js +11 -0
  47. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  48. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +0 -1
  49. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  50. package/lib/commonjs/modules/bt-management/services/bt-manager.js +19 -21
  51. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  52. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +5 -3
  53. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  54. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +21 -26
  55. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  56. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +9 -1
  57. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  58. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +1 -0
  59. package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
  60. package/lib/commonjs/modules/bt-management/services/push-notification.js +39 -0
  61. package/lib/commonjs/modules/bt-management/services/push-notification.js.map +1 -0
  62. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js +81 -1
  63. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
  64. package/lib/commonjs/modules/bt-management/types/bluetooth-error.js +4 -2
  65. package/lib/commonjs/modules/bt-management/types/bluetooth-error.js.map +1 -1
  66. package/lib/commonjs/modules/bt-management/utils/result-identity.js +1 -1
  67. package/lib/commonjs/modules/bt-management/utils/result-identity.js.map +1 -1
  68. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +12 -3
  69. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  70. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +7 -1
  71. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  72. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +29 -21
  73. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  74. package/lib/commonjs/modules/data-sync/utils/retry-save.js +40 -6
  75. package/lib/commonjs/modules/data-sync/utils/retry-save.js.map +1 -1
  76. package/lib/commonjs/modules/helpers/index.js +11 -4
  77. package/lib/commonjs/modules/helpers/index.js.map +1 -1
  78. package/lib/commonjs/modules/helpers/utils/sentry-logger.js +2 -3
  79. package/lib/commonjs/modules/helpers/utils/sentry-logger.js.map +1 -1
  80. package/lib/commonjs/modules/helpers/utils/telemetry.js +133 -46
  81. package/lib/commonjs/modules/helpers/utils/telemetry.js.map +1 -1
  82. package/lib/commonjs/modules/image/components/optimized-image.js +11 -8
  83. package/lib/commonjs/modules/image/components/optimized-image.js.map +1 -1
  84. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js +3 -1
  85. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  86. package/lib/commonjs/modules/tile/constants/measurement-icon-svg.js +4 -1
  87. package/lib/commonjs/modules/tile/constants/measurement-icon-svg.js.map +1 -1
  88. package/lib/commonjs/modules/ui/components/background-sync-setting.js +11 -1
  89. package/lib/commonjs/modules/ui/components/background-sync-setting.js.map +1 -1
  90. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js +14 -0
  91. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js.map +1 -1
  92. package/lib/commonjs/modules/ui/components/ecg-strip-viewer.js +10 -0
  93. package/lib/commonjs/modules/ui/components/ecg-strip-viewer.js.map +1 -1
  94. package/lib/commonjs/modules/ui/components/health-import-card.js +12 -1
  95. package/lib/commonjs/modules/ui/components/health-import-card.js.map +1 -1
  96. package/lib/commonjs/modules/ui/components/manual-entry-form.js +14 -1
  97. package/lib/commonjs/modules/ui/components/manual-entry-form.js.map +1 -1
  98. package/lib/commonjs/modules/ui/components/pairing-flow.js +31 -6
  99. package/lib/commonjs/modules/ui/components/pairing-flow.js.map +1 -1
  100. package/lib/commonjs/modules/ui/components/supported-devices-catalog-list.js +8 -0
  101. package/lib/commonjs/modules/ui/components/supported-devices-catalog-list.js.map +1 -1
  102. package/lib/commonjs/modules/ui/components/urine-test-result.js +7 -2
  103. package/lib/commonjs/modules/ui/components/urine-test-result.js.map +1 -1
  104. package/lib/commonjs/modules/ui/use-ovok-ui.js +2 -2
  105. package/lib/commonjs/modules/ui/use-ovok-ui.js.map +1 -1
  106. package/lib/module/index.js +3 -10
  107. package/lib/module/index.js.map +1 -1
  108. package/lib/module/modules/auth/hooks/use-session.js +25 -11
  109. package/lib/module/modules/auth/hooks/use-session.js.map +1 -1
  110. package/lib/module/modules/auth/logout-button/components/logout-button.js +3 -2
  111. package/lib/module/modules/auth/logout-button/components/logout-button.js.map +1 -1
  112. package/lib/module/modules/auth/register/components/form/inputs.js +10 -8
  113. package/lib/module/modules/auth/register/components/form/inputs.js.map +1 -1
  114. package/lib/module/modules/auth/reset-password/components/form/inputs.js +2 -2
  115. package/lib/module/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  116. package/lib/module/modules/auth/session/components/session-list.js +3 -3
  117. package/lib/module/modules/auth/session/components/session-list.js.map +1 -1
  118. package/lib/module/modules/auth/sign-in/components/form/inputs.js +4 -3
  119. package/lib/module/modules/auth/sign-in/components/form/inputs.js.map +1 -1
  120. package/lib/module/modules/background-sync/background-safe-storage.js +3 -6
  121. package/lib/module/modules/background-sync/background-safe-storage.js.map +1 -1
  122. package/lib/module/modules/bt-device/index.js +0 -2
  123. package/lib/module/modules/bt-device/index.js.map +1 -1
  124. package/lib/module/modules/bt-device-instructions/index.js +6 -0
  125. package/lib/module/modules/bt-device-instructions/index.js.map +1 -0
  126. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js +58 -0
  127. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -0
  128. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +6 -40
  129. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  130. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +1 -0
  131. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  132. package/lib/module/modules/bt-management/hooks/runtime-context.js +4 -0
  133. package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -1
  134. package/lib/module/modules/bt-management/hooks/use-background-sync.js +8 -4
  135. package/lib/module/modules/bt-management/hooks/use-background-sync.js.map +1 -1
  136. package/lib/module/modules/bt-management/hooks/use-device-connection.js +5 -1
  137. package/lib/module/modules/bt-management/hooks/use-device-connection.js.map +1 -1
  138. package/lib/module/modules/bt-management/hooks/use-health-import.js +48 -12
  139. package/lib/module/modules/bt-management/hooks/use-health-import.js.map +1 -1
  140. package/lib/module/modules/bt-management/hooks/use-measurements.js +40 -18
  141. package/lib/module/modules/bt-management/hooks/use-measurements.js.map +1 -1
  142. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js +8 -1
  143. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js.map +1 -1
  144. package/lib/module/modules/bt-management/hooks/use-paired-devices.js +13 -4
  145. package/lib/module/modules/bt-management/hooks/use-paired-devices.js.map +1 -1
  146. package/lib/module/modules/bt-management/hooks/use-scan-control.js +16 -0
  147. package/lib/module/modules/bt-management/hooks/use-scan-control.js.map +1 -0
  148. package/lib/module/modules/bt-management/index.js +1 -0
  149. package/lib/module/modules/bt-management/index.js.map +1 -1
  150. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +0 -1
  151. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  152. package/lib/module/modules/bt-management/services/bt-manager.js +19 -21
  153. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  154. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +5 -3
  155. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  156. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +22 -27
  157. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  158. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +9 -1
  159. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  160. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js +1 -0
  161. package/lib/module/modules/bt-management/services/devices/lepu/lepu.file-transfer.js.map +1 -1
  162. package/lib/module/modules/bt-management/services/push-notification.js +34 -0
  163. package/lib/module/modules/bt-management/services/push-notification.js.map +1 -0
  164. package/lib/module/modules/bt-management/testing/fake-ble-manager.js +79 -0
  165. package/lib/module/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
  166. package/lib/module/modules/bt-management/types/bluetooth-error.js +4 -2
  167. package/lib/module/modules/bt-management/types/bluetooth-error.js.map +1 -1
  168. package/lib/module/modules/bt-management/utils/result-identity.js +1 -1
  169. package/lib/module/modules/bt-management/utils/result-identity.js.map +1 -1
  170. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +12 -3
  171. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  172. package/lib/module/modules/data-sync/services/base-health-sync-service.js +8 -2
  173. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  174. package/lib/module/modules/data-sync/utils/generate-observation-entry.js +29 -21
  175. package/lib/module/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  176. package/lib/module/modules/data-sync/utils/retry-save.js +39 -7
  177. package/lib/module/modules/data-sync/utils/retry-save.js.map +1 -1
  178. package/lib/module/modules/helpers/index.js +1 -1
  179. package/lib/module/modules/helpers/index.js.map +1 -1
  180. package/lib/module/modules/helpers/utils/sentry-logger.js +3 -4
  181. package/lib/module/modules/helpers/utils/sentry-logger.js.map +1 -1
  182. package/lib/module/modules/helpers/utils/telemetry.js +133 -46
  183. package/lib/module/modules/helpers/utils/telemetry.js.map +1 -1
  184. package/lib/module/modules/image/components/optimized-image.js +11 -8
  185. package/lib/module/modules/image/components/optimized-image.js.map +1 -1
  186. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js +3 -1
  187. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  188. package/lib/module/modules/tile/constants/measurement-icon-svg.js +4 -1
  189. package/lib/module/modules/tile/constants/measurement-icon-svg.js.map +1 -1
  190. package/lib/module/modules/ui/components/background-sync-setting.js +11 -1
  191. package/lib/module/modules/ui/components/background-sync-setting.js.map +1 -1
  192. package/lib/module/modules/ui/components/bluetooth-state-notice.js +14 -0
  193. package/lib/module/modules/ui/components/bluetooth-state-notice.js.map +1 -1
  194. package/lib/module/modules/ui/components/ecg-strip-viewer.js +10 -0
  195. package/lib/module/modules/ui/components/ecg-strip-viewer.js.map +1 -1
  196. package/lib/module/modules/ui/components/health-import-card.js +12 -1
  197. package/lib/module/modules/ui/components/health-import-card.js.map +1 -1
  198. package/lib/module/modules/ui/components/manual-entry-form.js +14 -1
  199. package/lib/module/modules/ui/components/manual-entry-form.js.map +1 -1
  200. package/lib/module/modules/ui/components/pairing-flow.js +31 -6
  201. package/lib/module/modules/ui/components/pairing-flow.js.map +1 -1
  202. package/lib/module/modules/ui/components/supported-devices-catalog-list.js +8 -0
  203. package/lib/module/modules/ui/components/supported-devices-catalog-list.js.map +1 -1
  204. package/lib/module/modules/ui/components/urine-test-result.js +7 -2
  205. package/lib/module/modules/ui/components/urine-test-result.js.map +1 -1
  206. package/lib/module/modules/ui/use-ovok-ui.js +2 -2
  207. package/lib/module/modules/ui/use-ovok-ui.js.map +1 -1
  208. package/lib/typescript/commonjs/src/index.d.ts +0 -10
  209. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  210. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  211. package/lib/typescript/commonjs/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
  213. package/lib/typescript/commonjs/src/modules/auth/session/components/session-list.d.ts.map +1 -1
  214. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/inputs.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/src/modules/auth/types/session.d.ts +2 -5
  216. package/lib/typescript/commonjs/src/modules/auth/types/session.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/src/modules/background-sync/background-safe-storage.d.ts +3 -1
  218. package/lib/typescript/commonjs/src/modules/background-sync/background-safe-storage.d.ts.map +1 -1
  219. package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts +0 -2
  220. package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/src/modules/bt-device-instructions/index.d.ts +4 -0
  222. package/lib/typescript/commonjs/src/modules/bt-device-instructions/index.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts +14 -0
  224. package/lib/typescript/commonjs/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  227. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +4 -2
  228. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -1
  230. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -1
  231. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -1
  232. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-scan-control.d.ts +7 -0
  236. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-scan-control.d.ts.map +1 -0
  237. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +1 -0
  238. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  242. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +1 -0
  243. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  244. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +1 -0
  246. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/src/modules/bt-management/services/push-notification.d.ts +8 -0
  248. package/lib/typescript/commonjs/src/modules/bt-management/services/push-notification.d.ts.map +1 -0
  249. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts +17 -0
  250. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/src/modules/bt-management/types/bluetooth-error.d.ts.map +1 -1
  252. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +2 -0
  253. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  254. package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  256. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  257. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts +3 -2
  259. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/src/modules/helpers/index.d.ts +1 -1
  261. package/lib/typescript/commonjs/src/modules/helpers/index.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/src/modules/helpers/utils/sentry-logger.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/src/modules/helpers/utils/telemetry.d.ts +3 -2
  264. package/lib/typescript/commonjs/src/modules/helpers/utils/telemetry.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/src/modules/image/components/optimized-image.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/src/modules/tile/constants/measurement-icon-svg.d.ts +1 -0
  268. package/lib/typescript/commonjs/src/modules/tile/constants/measurement-icon-svg.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/src/modules/ui/components/ecg-strip-viewer.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/src/modules/ui/components/manual-entry-form.d.ts +2 -1
  272. package/lib/typescript/commonjs/src/modules/ui/components/manual-entry-form.d.ts.map +1 -1
  273. package/lib/typescript/commonjs/src/modules/ui/components/pairing-flow.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/src/modules/ui/components/urine-test-result.d.ts.map +1 -1
  275. package/lib/typescript/module/src/index.d.ts +0 -10
  276. package/lib/typescript/module/src/index.d.ts.map +1 -1
  277. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts.map +1 -1
  278. package/lib/typescript/module/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  279. package/lib/typescript/module/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
  280. package/lib/typescript/module/src/modules/auth/session/components/session-list.d.ts.map +1 -1
  281. package/lib/typescript/module/src/modules/auth/sign-in/components/form/inputs.d.ts.map +1 -1
  282. package/lib/typescript/module/src/modules/auth/types/session.d.ts +2 -5
  283. package/lib/typescript/module/src/modules/auth/types/session.d.ts.map +1 -1
  284. package/lib/typescript/module/src/modules/background-sync/background-safe-storage.d.ts +3 -1
  285. package/lib/typescript/module/src/modules/background-sync/background-safe-storage.d.ts.map +1 -1
  286. package/lib/typescript/module/src/modules/bt-device/index.d.ts +0 -2
  287. package/lib/typescript/module/src/modules/bt-device/index.d.ts.map +1 -1
  288. package/lib/typescript/module/src/modules/bt-device-instructions/index.d.ts +4 -0
  289. package/lib/typescript/module/src/modules/bt-device-instructions/index.d.ts.map +1 -0
  290. package/lib/typescript/module/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts +14 -0
  291. package/lib/typescript/module/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -0
  292. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  293. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  294. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +4 -2
  295. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  296. package/lib/typescript/module/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -1
  297. package/lib/typescript/module/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -1
  298. package/lib/typescript/module/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -1
  299. package/lib/typescript/module/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
  300. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -1
  301. package/lib/typescript/module/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -1
  302. package/lib/typescript/module/src/modules/bt-management/hooks/use-scan-control.d.ts +7 -0
  303. package/lib/typescript/module/src/modules/bt-management/hooks/use-scan-control.d.ts.map +1 -0
  304. package/lib/typescript/module/src/modules/bt-management/index.d.ts +1 -0
  305. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  306. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  307. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  308. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  309. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +1 -0
  310. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  311. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  312. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts +1 -0
  313. package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.file-transfer.d.ts.map +1 -1
  314. package/lib/typescript/module/src/modules/bt-management/services/push-notification.d.ts +8 -0
  315. package/lib/typescript/module/src/modules/bt-management/services/push-notification.d.ts.map +1 -0
  316. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts +17 -0
  317. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
  318. package/lib/typescript/module/src/modules/bt-management/types/bluetooth-error.d.ts.map +1 -1
  319. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +2 -0
  320. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  321. package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts.map +1 -1
  322. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  323. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  324. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  325. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts +3 -2
  326. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
  327. package/lib/typescript/module/src/modules/helpers/index.d.ts +1 -1
  328. package/lib/typescript/module/src/modules/helpers/index.d.ts.map +1 -1
  329. package/lib/typescript/module/src/modules/helpers/utils/sentry-logger.d.ts.map +1 -1
  330. package/lib/typescript/module/src/modules/helpers/utils/telemetry.d.ts +3 -2
  331. package/lib/typescript/module/src/modules/helpers/utils/telemetry.d.ts.map +1 -1
  332. package/lib/typescript/module/src/modules/image/components/optimized-image.d.ts.map +1 -1
  333. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  334. package/lib/typescript/module/src/modules/tile/constants/measurement-icon-svg.d.ts +1 -0
  335. package/lib/typescript/module/src/modules/tile/constants/measurement-icon-svg.d.ts.map +1 -1
  336. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -1
  337. package/lib/typescript/module/src/modules/ui/components/ecg-strip-viewer.d.ts.map +1 -1
  338. package/lib/typescript/module/src/modules/ui/components/manual-entry-form.d.ts +2 -1
  339. package/lib/typescript/module/src/modules/ui/components/manual-entry-form.d.ts.map +1 -1
  340. package/lib/typescript/module/src/modules/ui/components/pairing-flow.d.ts.map +1 -1
  341. package/lib/typescript/module/src/modules/ui/components/urine-test-result.d.ts.map +1 -1
  342. package/package.json +3 -3
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ // Keep this dependency out of the root Bluetooth barrel. It is loaded only when an
4
+ // app opts into background notifications, while the notifications subpath remains the
5
+ // public API for permission management.
6
+ const notificationsModuleName = "expo-notifications";
7
+ const getNotifications = () => {
8
+ try {
9
+ return require(notificationsModuleName);
10
+ } catch (error) {
11
+ throw new Error("Background notifications require expo-notifications. Install it and configure its app plugin before using this feature.", {
12
+ cause: error
13
+ });
14
+ }
15
+ };
16
+ export const showBackgroundPushNotification = async ({
17
+ title,
18
+ body,
19
+ data
20
+ }) => {
21
+ await getNotifications().scheduleNotificationAsync({
22
+ content: {
23
+ title,
24
+ ...(body === undefined ? {} : {
25
+ body
26
+ }),
27
+ ...(data === undefined ? {} : {
28
+ data
29
+ })
30
+ },
31
+ trigger: null
32
+ });
33
+ };
34
+ //# sourceMappingURL=push-notification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["notificationsModuleName","getNotifications","require","error","Error","cause","showBackgroundPushNotification","title","body","data","scheduleNotificationAsync","content","undefined","trigger"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/push-notification.ts"],"mappings":";;AAiBA;AACA;AACA;AACA,MAAMA,uBAAuB,GAAG,oBAAoB;AAEpD,MAAMC,gBAAgB,GAAGA,CAAA,KAA2B;EAClD,IAAI;IACF,OAAOC,OAAO,CAACF,uBAAuB,CAAC;EACzC,CAAC,CAAC,OAAOG,KAAK,EAAE;IACd,MAAM,IAAIC,KAAK,CACb,yHAAyH,EACzH;MAAEC,KAAK,EAAEF;IAAM,CACjB,CAAC;EACH;AACF,CAAC;AAED,OAAO,MAAMG,8BAA8B,GAAG,MAAAA,CAAO;EACnDC,KAAK;EACLC,IAAI;EACJC;AACuB,CAAC,KAAoB;EAC5C,MAAMR,gBAAgB,CAAC,CAAC,CAACS,yBAAyB,CAAC;IACjDC,OAAO,EAAE;MACPJ,KAAK;MACL,IAAIC,IAAI,KAAKI,SAAS,GAAG,CAAC,CAAC,GAAG;QAAEJ;MAAK,CAAC,CAAC;MACvC,IAAIC,IAAI,KAAKG,SAAS,GAAG,CAAC,CAAC,GAAG;QAAEH;MAAK,CAAC;IACxC,CAAC;IACDI,OAAO,EAAE;EACX,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -6,6 +6,84 @@ import { State } from "react-native-ble-plx";
6
6
 
7
7
  /** A deterministic BLE manager for hook and scan integration tests. No hardware is used. */
8
8
 
9
+ const characteristicKey = (serviceUuid, characteristicUuid) => `${serviceUuid}/${characteristicUuid}`;
10
+
11
+ /** Creates a GATT-capable fake device for connection and notification tests. */
12
+ export const createFakeBleDevice = ({
13
+ id,
14
+ name = id,
15
+ localName = name,
16
+ manufacturerData = "",
17
+ serviceUUIDs = [],
18
+ mtu = 23,
19
+ characteristics = {}
20
+ }) => {
21
+ let connected = false;
22
+ let currentMtu = mtu;
23
+ const values = new Map(Object.entries(characteristics));
24
+ const disconnectedCallbacks = new Set();
25
+ const notificationCallbacks = new Map();
26
+ const fake = {
27
+ id,
28
+ name,
29
+ localName,
30
+ manufacturerData,
31
+ serviceUUIDs: [...serviceUUIDs],
32
+ mtu: currentMtu,
33
+ isConnected: async () => connected,
34
+ connect: async () => {
35
+ connected = true;
36
+ return fake;
37
+ },
38
+ cancelConnection: async () => {
39
+ connected = false;
40
+ disconnectedCallbacks.forEach(callback => callback(null, fake));
41
+ return fake;
42
+ },
43
+ discoverAllServicesAndCharacteristics: async () => fake,
44
+ onDisconnected: callback => {
45
+ disconnectedCallbacks.add(callback);
46
+ return {
47
+ remove: () => disconnectedCallbacks.delete(callback)
48
+ };
49
+ },
50
+ requestMTU: async requestedMtu => {
51
+ currentMtu = requestedMtu;
52
+ return {
53
+ mtu: currentMtu
54
+ };
55
+ },
56
+ readCharacteristicForService: async (serviceUuid, characteristicUuid) => ({
57
+ value: values.get(characteristicKey(serviceUuid, characteristicUuid)) ?? null
58
+ }),
59
+ monitorCharacteristicForService: (serviceUuid, characteristicUuid, callback) => {
60
+ const key = characteristicKey(serviceUuid, characteristicUuid);
61
+ const callbacks = notificationCallbacks.get(key) ?? new Set();
62
+ callbacks.add(callback);
63
+ notificationCallbacks.set(key, callbacks);
64
+ return {
65
+ remove: () => callbacks.delete(callback)
66
+ };
67
+ },
68
+ writeCharacteristicWithResponseForService: async () => fake,
69
+ writeCharacteristicWithoutResponseForService: async () => fake
70
+ };
71
+ return {
72
+ device: fake,
73
+ emitCharacteristic: (serviceUuid, characteristicUuid, value) => {
74
+ const key = characteristicKey(serviceUuid, characteristicUuid);
75
+ const characteristic = {
76
+ uuid: characteristicUuid,
77
+ value
78
+ };
79
+ values.set(key, value);
80
+ notificationCallbacks.get(key)?.forEach(callback => callback(null, characteristic));
81
+ },
82
+ disconnect: async () => {
83
+ await fake.cancelConnection();
84
+ }
85
+ };
86
+ };
9
87
  export const createFakeBleManager = ({
10
88
  state = State.PoweredOn,
11
89
  devices = []
@@ -35,6 +113,7 @@ export const createFakeBleManager = ({
35
113
  };
36
114
  return {
37
115
  manager,
116
+ createDevice: createFakeBleDevice,
38
117
  emitDevice: device => scanCallback?.(null, device),
39
118
  emitError: error => scanCallback?.(error, null),
40
119
  setState: nextState => {
@@ -1 +1 @@
1
- {"version":3,"names":["State","createFakeBleManager","state","PoweredOn","devices","currentState","scanCallback","stateCallbacks","Set","scannedServiceUUIDs","manager","onStateChange","callback","emitCurrentState","add","remove","delete","startDeviceScan","serviceUUIDs","_options","forEach","device","stopDeviceScan","undefined","emitDevice","emitError","error","setState","nextState","getScannedServiceUUIDs"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/testing/fake-ble-manager.ts"],"mappings":";;AAAA;;AAEA,SAA6BA,KAAK,QAAsB,sBAAsB;;AAO9E;;AAUA,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EACnCC,KAAK,GAAGF,KAAK,CAACG,SAAS;EACvBC,OAAO,GAAG;AACW,CAAC,GAAG,CAAC,CAAC,KAAqB;EAChD,IAAIC,YAAY,GAAGH,KAAK;EACxB,IAAII,YAES;EACb,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAA6B,CAAC;EAC5D,IAAIC,mBAA6C,GAAG,IAAI;EAExD,MAAMC,OAAO,GAAG;IACdC,aAAa,EAAEA,CAACC,QAAoC,EAAEC,gBAA0B,KAAK;MACnFN,cAAc,CAACO,GAAG,CAACF,QAAQ,CAAC;MAC5B,IAAIC,gBAAgB,EAAE;QACpBD,QAAQ,CAACP,YAAY,CAAC;MACxB;MAEA,OAAO;QACLU,MAAM,EAAEA,CAAA,KAAMR,cAAc,CAACS,MAAM,CAACJ,QAAQ;MAC9C,CAAC;IACH,CAAC;IACDK,eAAe,EAAEA,CACfC,YAAsC,EACtCC,QAAiB,EACjBP,QAAsD,KACnD;MACHH,mBAAmB,GAAGS,YAAY;MAClCZ,YAAY,GAAGM,QAAQ;MACvBR,OAAO,CAACgB,OAAO,CAAEC,MAAM,IAAKT,QAAQ,CAAC,IAAI,EAAES,MAAM,CAAC,CAAC;IACrD,CAAC;IACDC,cAAc,EAAEA,CAAA,KAAM;MACpBhB,YAAY,GAAGiB,SAAS;IAC1B;EACF,CAA0B;EAE1B,OAAO;IACLb,OAAO;IACPc,UAAU,EAAGH,MAAM,IAAKf,YAAY,GAAG,IAAI,EAAEe,MAAM,CAAC;IACpDI,SAAS,EAAGC,KAAK,IACfpB,YAAY,GAAGoB,KAAK,EAAW,IAAI,CAAC;IACtCC,QAAQ,EAAGC,SAAS,IAAK;MACvBvB,YAAY,GAAGuB,SAAS;MACxBrB,cAAc,CAACa,OAAO,CAAER,QAAQ,IAAKA,QAAQ,CAACgB,SAAS,CAAC,CAAC;IAC3D,CAAC;IACDC,sBAAsB,EAAEA,CAAA,KAAMpB,mBAAmB;IACjDa,cAAc,EAAEA,CAAA,KAAMZ,OAAO,CAACY,cAAc,CAAC;EAC/C,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["State","characteristicKey","serviceUuid","characteristicUuid","createFakeBleDevice","id","name","localName","manufacturerData","serviceUUIDs","mtu","characteristics","connected","currentMtu","values","Map","Object","entries","disconnectedCallbacks","Set","notificationCallbacks","fake","isConnected","connect","cancelConnection","forEach","callback","discoverAllServicesAndCharacteristics","onDisconnected","add","remove","delete","requestMTU","requestedMtu","readCharacteristicForService","value","get","monitorCharacteristicForService","key","callbacks","set","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","device","emitCharacteristic","characteristic","uuid","disconnect","createFakeBleManager","state","PoweredOn","devices","currentState","scanCallback","stateCallbacks","scannedServiceUUIDs","manager","onStateChange","emitCurrentState","startDeviceScan","_options","stopDeviceScan","undefined","createDevice","emitDevice","emitError","error","setState","nextState","getScannedServiceUUIDs"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/testing/fake-ble-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -40,7 +40,9 @@ export const bluetoothErrorCodeFor = error => {
40
40
  return error.code;
41
41
  }
42
42
  const message = messageFor(error);
43
- const errorCode = error?.errorCode;
43
+ const structured = error;
44
+ const errorCode = structured?.errorCode;
45
+ const structuredCodes = [errorCode, structured?.androidErrorCode, structured?.iosErrorCode].map(value => String(value ?? "").toLowerCase());
44
46
  if (/permission|unauthori[sz]ed|denied/i.test(message)) {
45
47
  return BluetoothErrorCode.PERMISSION_DENIED;
46
48
  }
@@ -50,7 +52,7 @@ export const bluetoothErrorCodeFor = error => {
50
52
  if (/scan/i.test(message) || errorCode === "ScanStartFailed") {
51
53
  return BluetoothErrorCode.SCAN_FAILED;
52
54
  }
53
- if (/pair|bond|authentication/i.test(message)) {
55
+ if (structuredCodes.some(code => /pair|bond|auth|encryption|insufficientsecurity/.test(code)) || [5, 8, 15, 137].includes(Number(structured?.androidErrorCode)) || /pair|bond|authentication|passkey|pin/i.test(message)) {
54
56
  return BluetoothErrorCode.PAIRING_REQUIRED;
55
57
  }
56
58
  if (/connect|disconnect/i.test(message)) {
@@ -1 +1 @@
1
- {"version":3,"names":["BluetoothErrorCode","BluetoothError","Error","name","constructor","code","message","translationKey","originalError","translationKeyFor","test","undefined","messageFor","error","String","bluetoothErrorCodeFor","errorCode","PERMISSION_DENIED","UNSUPPORTED","SCAN_FAILED","PAIRING_REQUIRED","CONNECTION_FAILED","FRAME_INVALID","MEASUREMENT_FAILED","UNKNOWN","toBluetoothError"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/bluetooth-error.ts"],"mappings":";;AAAA;;AAIA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAc9B,OAAO,MAAMC,cAAc,SAASC,KAAK,CAAC;EACxBC,IAAI,GAAG,gBAAgB;EAEhCC,WAAWA,CACAC,IAAwB,EACxCC,OAAe,EACCC,cAAuB,EACvBC,aAAuB,EACvC;IACA,KAAK,CAACF,OAAO,CAAC;IAAC,KALCD,IAAwB,GAAxBA,IAAwB;IAAA,KAExBE,cAAuB,GAAvBA,cAAuB;IAAA,KACvBC,aAAuB,GAAvBA,aAAuB;EAGzC;AACF;AAEA,MAAMC,iBAAiB,GAAIH,OAAe,IACxC,qBAAqB,CAACI,IAAI,CAACJ,OAAO,CAAC,GAAGA,OAAO,GAAGK,SAAS;AAE3D,MAAMC,UAAU,GAAIC,KAAc,IAAa;EAC7C,IAAIA,KAAK,YAAYX,KAAK,EAAE;IAC1B,OAAOW,KAAK,CAACP,OAAO;EACtB;EAEA,IAAI,OAAOO,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EAEA,OAAOC,MAAM,CAACD,KAAK,CAAC;AACtB,CAAC;AAED,OAAO,MAAME,qBAAqB,GAChCF,KAAc,IACS;EACvB,IAAIA,KAAK,YAAYZ,cAAc,EAAE;IACnC,OAAOY,KAAK,CAACR,IAAI;EACnB;EAEA,MAAMC,OAAO,GAAGM,UAAU,CAACC,KAAK,CAAC;EACjC,MAAMG,SAAS,GAAIH,KAAK,EAAoCG,SAAS;EAErE,IAAI,oCAAoC,CAACN,IAAI,CAACJ,OAAO,CAAC,EAAE;IACtD,OAAON,kBAAkB,CAACiB,iBAAiB;EAC7C;EAEA,IAAI,cAAc,CAACP,IAAI,CAACJ,OAAO,CAAC,EAAE;IAChC,OAAON,kBAAkB,CAACkB,WAAW;EACvC;EAEA,IACE,OAAO,CAACR,IAAI,CAACJ,OAAO,CAAC,IACpBU,SAAS,KAA4B,iBAAiB,EACvD;IACA,OAAOhB,kBAAkB,CAACmB,WAAW;EACvC;EAEA,IAAI,2BAA2B,CAACT,IAAI,CAACJ,OAAO,CAAC,EAAE;IAC7C,OAAON,kBAAkB,CAACoB,gBAAgB;EAC5C;EAEA,IAAI,qBAAqB,CAACV,IAAI,CAACJ,OAAO,CAAC,EAAE;IACvC,OAAON,kBAAkB,CAACqB,iBAAiB;EAC7C;EAEA,IAAI,+BAA+B,CAACX,IAAI,CAACJ,OAAO,CAAC,EAAE;IACjD,OAAON,kBAAkB,CAACsB,aAAa;EACzC;EAEA,IAAI,6BAA6B,CAACZ,IAAI,CAACJ,OAAO,CAAC,EAAE;IAC/C,OAAON,kBAAkB,CAACuB,kBAAkB;EAC9C;EAEA,OAAOvB,kBAAkB,CAACwB,OAAO;AACnC,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIZ,KAAc,IAAqB;EAClE,IAAIA,KAAK,YAAYZ,cAAc,EAAE;IACnC,OAAOY,KAAK;EACd;EAEA,MAAMP,OAAO,GAAGM,UAAU,CAACC,KAAK,CAAC;EAEjC,OAAO,IAAIZ,cAAc,CACvBc,qBAAqB,CAACF,KAAK,CAAC,EAC5BP,OAAO,EACPG,iBAAiB,CAACH,OAAO,CAAC,EAC1BO,KACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["BluetoothErrorCode","BluetoothError","Error","name","constructor","code","message","translationKey","originalError","translationKeyFor","test","undefined","messageFor","error","String","bluetoothErrorCodeFor","structured","errorCode","structuredCodes","androidErrorCode","iosErrorCode","map","value","toLowerCase","PERMISSION_DENIED","UNSUPPORTED","SCAN_FAILED","some","includes","Number","PAIRING_REQUIRED","CONNECTION_FAILED","FRAME_INVALID","MEASUREMENT_FAILED","UNKNOWN","toBluetoothError"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/bluetooth-error.ts"],"mappings":"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","ignoreList":[]}
@@ -31,7 +31,7 @@ const hash = value => {
31
31
  * delivery metadata is deliberately not part of the key.
32
32
  */
33
33
  export const createStableResultId = (deviceData, data) => {
34
- const deviceIdentity = deviceData.sn || deviceData.id || deviceData.name;
34
+ const deviceIdentity = deviceData.sn || deviceData.manufacturerData || deviceData.model || deviceData.name || deviceData.id;
35
35
  return `ovok:${hash(JSON.stringify(canonicalize({
36
36
  device: deviceIdentity,
37
37
  name: deviceData.name,
@@ -1 +1 @@
1
- {"version":3,"names":["canonicalize","value","Date","toISOString","Array","isArray","map","Object","fromEntries","entries","sort","left","right","localeCompare","key","nested","hash","first","second","index","length","code","charCodeAt","Math","imul","toString","padStart","createStableResultId","deviceData","data","deviceIdentity","sn","id","name","JSON","stringify","device","reviveResultDates","revive","current","includes","date","Number","isNaN","getTime","item","childKey","childValue"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/result-identity.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["canonicalize","value","Date","toISOString","Array","isArray","map","Object","fromEntries","entries","sort","left","right","localeCompare","key","nested","hash","first","second","index","length","code","charCodeAt","Math","imul","toString","padStart","createStableResultId","deviceData","data","deviceIdentity","sn","manufacturerData","model","name","id","JSON","stringify","device","reviveResultDates","revive","current","includes","date","Number","isNaN","getTime","item","childKey","childValue"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/result-identity.ts"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ /* eslint-disable max-lines */
4
+
3
5
  import * as React from "react";
4
6
  import { AppState } from "react-native";
5
7
  import { getGrantedPermissions, initialize, requestPermission } from "react-native-health-connect";
6
8
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
7
9
  const toError = error => error instanceof Error ? error : new Error(String(error));
10
+ const isHealthConnectUnavailable = error => /not available|not installed|unsupported|unavailable/i.test(error instanceof Error ? error.message : String(error));
8
11
  const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers, backgroundAccess = false, onStatusChange) => {
9
12
  const [status, setStatus] = React.useState({
10
13
  state: "unknown"
@@ -45,7 +48,10 @@ const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers, backgr
45
48
  const error = new Error("Health Connect is not available");
46
49
  updateStatus({
47
50
  state: "error",
48
- error
51
+ error,
52
+ ...(backgroundAccess ? {
53
+ backgroundAccess: "unsupported"
54
+ } : {})
49
55
  });
50
56
  return;
51
57
  }
@@ -63,10 +69,13 @@ const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers, backgr
63
69
  } catch (error) {
64
70
  updateStatus({
65
71
  state: "error",
66
- error: toError(error)
72
+ error: toError(error),
73
+ ...(backgroundAccess && isHealthConnectUnavailable(error) ? {
74
+ backgroundAccess: "unsupported"
75
+ } : {})
67
76
  });
68
77
  }
69
- }, [updateStatus]);
78
+ }, [backgroundAccess, updateStatus]);
70
79
  const requestAuthorization = React.useCallback(async () => {
71
80
  hasRequestedRef.current = true;
72
81
  updateStatus({
@@ -1 +1 @@
1
- {"version":3,"names":["React","AppState","getGrantedPermissions","initialize","requestPermission","Fragment","_Fragment","jsx","_jsx","toError","error","Error","String","useHealthConnectAuthorization","readIdentifiers","writeIdentifiers","backgroundAccess","onStatusChange","status","setStatus","useState","state","hasRequestedRef","useRef","identifiersRef","permissionsRef","current","readPermissions","map","recordType","accessType","writePermissions","backgroundPermissions","updateStatus","useCallback","nextStatus","checkAuthorization","isInitialized","grantedPermissions","backgroundPermission","find","permission","requiredPermissions","filter","allGranted","every","some","granted","backgroundGranted","undefined","requestAuthorization","useEffect","subscription","addEventListener","remove","AndroidHealthConnectAuthorizationProvider","memo","fallback","children","skipRequest","renderManualRequestUI","onAuthorizationStatusChange","authorizationStatus","shouldRenderManualRequestUI","includes","shouldRenderFallback"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","AppState","getGrantedPermissions","initialize","requestPermission","Fragment","_Fragment","jsx","_jsx","toError","error","Error","String","isHealthConnectUnavailable","test","message","useHealthConnectAuthorization","readIdentifiers","writeIdentifiers","backgroundAccess","onStatusChange","status","setStatus","useState","state","hasRequestedRef","useRef","identifiersRef","permissionsRef","current","readPermissions","map","recordType","accessType","writePermissions","backgroundPermissions","updateStatus","useCallback","nextStatus","checkAuthorization","isInitialized","grantedPermissions","backgroundPermission","find","permission","requiredPermissions","filter","allGranted","every","some","granted","backgroundGranted","undefined","requestAuthorization","useEffect","subscription","addEventListener","remove","AndroidHealthConnectAuthorizationProvider","memo","fallback","children","skipRequest","renderManualRequestUI","onAuthorizationStatusChange","authorizationStatus","shouldRenderManualRequestUI","includes","shouldRenderFallback"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable max-lines */
4
4
 
5
5
  import { recordOvokDuration, recordOvokMetric, withOvokSpan } from "../../helpers/utils/telemetry.js";
6
- import { withSyncRetries } from "../utils/retry-save.js";
6
+ import { isSyncRetryCancelled, withSyncRetries } from "../utils/retry-save.js";
7
7
  import { DataProcessor } from "./managers/data-processor.js";
8
8
  import { StorageManager } from "./managers/storage-manager.js";
9
9
  import { SyncProgressManager } from "./managers/sync-progress-manager.js";
@@ -105,7 +105,10 @@ export class BaseHealthSyncService {
105
105
  if (entries.length !== 0 && !this.stateManager.shouldStopSync) {
106
106
  try {
107
107
  const startedAt = Date.now();
108
- const result = await withSyncRetries(() => this.storageManager.saveObservations(entries));
108
+ const result = await withSyncRetries(() => this.storageManager.saveObservations(entries), () => this.stateManager.shouldStopSync);
109
+ if (this.stateManager.shouldStopSync) {
110
+ return;
111
+ }
109
112
  recordOvokMetric("ovok.health.samples.imported", entries.length, {
110
113
  provider: this.getProviderName(),
111
114
  measurementTypeKey
@@ -117,6 +120,9 @@ export class BaseHealthSyncService {
117
120
  this.progressManager.incrementSyncedObservations(measurementTypeKey, entries.length);
118
121
  this.storageManager.saveAnchors(anchors);
119
122
  } catch (error) {
123
+ if (isSyncRetryCancelled(error) || this.stateManager.shouldStopSync) {
124
+ return;
125
+ }
120
126
  this.progressManager.setStatus(measurementTypeKey, "failed");
121
127
  this.onSyncError(error);
122
128
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["recordOvokDuration","recordOvokMetric","withOvokSpan","withSyncRetries","DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","saveObservations","addResult","incrementSyncedObservations","saveAnchors"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["recordOvokDuration","recordOvokMetric","withOvokSpan","isSyncRetryCancelled","withSyncRetries","DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","saveObservations","addResult","incrementSyncedObservations","saveAnchors"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
@@ -4,28 +4,36 @@ export const generateObservationEntry = ({
4
4
  groupedObservationBodies,
5
5
  provider
6
6
  }) => {
7
- return groupedObservationBodies.map((observationBodies, groupIndex) => observationBodies.map((observationBody, bodyIndex) => ({
8
- fullUrl: `urn:uuid:60081479-c0a1-4b9e-9c52-039cf80f45${groupIndex}-${bodyIndex}`,
9
- request: {
10
- method: "POST",
11
- url: "Observation"
12
- },
13
- resource: {
14
- ...observationBody,
15
- identifier: [...(observationBody.identifier || []), {
16
- system: "https://api.ovok.com/fhir/StructureDefinition/observation-sync-provider",
17
- value: provider
18
- }],
19
- device: {
20
- identifier: {
7
+ return groupedObservationBodies.map((observationBodies, groupIndex) => observationBodies.map((observationBody, bodyIndex) => {
8
+ const syncIdentifier = `${provider}:${observationBody.id ?? `${groupIndex}-${bodyIndex}`}`;
9
+ const syncIdentifierSystem = "https://api.ovok.com/fhir/StructureDefinition/observation-sync-id";
10
+ return {
11
+ fullUrl: `urn:uuid:60081479-c0a1-4b9e-9c52-039cf80f45${groupIndex}-${bodyIndex}`,
12
+ request: {
13
+ method: "POST",
14
+ url: "Observation",
15
+ ifNoneExist: `identifier=${encodeURIComponent(syncIdentifierSystem)}|${encodeURIComponent(syncIdentifier)}`
16
+ },
17
+ resource: {
18
+ ...observationBody,
19
+ identifier: [...(observationBody.identifier || []), {
21
20
  system: "https://api.ovok.com/fhir/StructureDefinition/observation-sync-provider",
22
21
  value: provider
23
- }
24
- },
25
- hasMember: bodyIndex === 0 ? [] : [{
26
- reference: `urn:uuid:60081479-c0a1-4b9e-9c52-039cf80f45${groupIndex}-0`
27
- }]
28
- }
29
- }))).flat();
22
+ }, {
23
+ system: syncIdentifierSystem,
24
+ value: syncIdentifier
25
+ }],
26
+ device: {
27
+ identifier: {
28
+ system: "https://api.ovok.com/fhir/StructureDefinition/observation-sync-provider",
29
+ value: provider
30
+ }
31
+ },
32
+ hasMember: bodyIndex === 0 ? [] : [{
33
+ reference: `urn:uuid:60081479-c0a1-4b9e-9c52-039cf80f45${groupIndex}-0`
34
+ }]
35
+ }
36
+ };
37
+ })).flat();
30
38
  };
31
39
  //# sourceMappingURL=generate-observation-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["generateObservationEntry","groupedObservationBodies","provider","map","observationBodies","groupIndex","observationBody","bodyIndex","fullUrl","request","method","url","resource","identifier","system","value","device","hasMember","reference","flat"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/generate-observation-entry.ts"],"mappings":";;AASA,OAAO,MAAMA,wBAAwB,GAAGA,CAAC;EACvCC,wBAAwB;EACxBC;AAC6B,CAAC,KAAiC;EAC/D,OAAOD,wBAAwB,CAC5BE,GAAG,CAAC,CAACC,iBAAiB,EAAEC,UAAU,KACjCD,iBAAiB,CAACD,GAAG,CAAC,CAACG,eAAe,EAAEC,SAAS,MAAM;IACrDC,OAAO,EAAE,8CAA8CH,UAAU,IAAIE,SAAS,EAAE;IAChFE,OAAO,EAAE;MACPC,MAAM,EAAE,MAAe;MACvBC,GAAG,EAAE;IACP,CAAC;IACDC,QAAQ,EAAE;MACR,GAAGN,eAAe;MAClBO,UAAU,EAAE,CACV,IAAIP,eAAe,CAACO,UAAU,IAAI,EAAE,CAAC,EACrC;QACEC,MAAM,EACJ,yEAAyE;QAC3EC,KAAK,EAAEb;MACT,CAAC,CACF;MACDc,MAAM,EAAE;QACNH,UAAU,EAAE;UACVC,MAAM,EACJ,yEAAyE;UAC3EC,KAAK,EAAEb;QACT;MACF,CAAC;MACDe,SAAS,EACPV,SAAS,KAAK,CAAC,GACX,EAAE,GACF,CACE;QACEW,SAAS,EAAE,8CAA8Cb,UAAU;MACrE,CAAC;IAEX;EACF,CAAC,CAAC,CACJ,CAAC,CACAc,IAAI,CAAC,CAAC;AACX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["generateObservationEntry","groupedObservationBodies","provider","map","observationBodies","groupIndex","observationBody","bodyIndex","syncIdentifier","id","syncIdentifierSystem","fullUrl","request","method","url","ifNoneExist","encodeURIComponent","resource","identifier","system","value","device","hasMember","reference","flat"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/generate-observation-entry.ts"],"mappings":";;AASA,OAAO,MAAMA,wBAAwB,GAAGA,CAAC;EACvCC,wBAAwB;EACxBC;AAC6B,CAAC,KAAiC;EAC/D,OAAOD,wBAAwB,CAC5BE,GAAG,CAAC,CAACC,iBAAiB,EAAEC,UAAU,KACjCD,iBAAiB,CAACD,GAAG,CAAC,CAACG,eAAe,EAAEC,SAAS,KAAK;IACpD,MAAMC,cAAc,GAAG,GAAGN,QAAQ,IAAII,eAAe,CAACG,EAAE,IAAI,GAAGJ,UAAU,IAAIE,SAAS,EAAE,EAAE;IAE1F,MAAMG,oBAAoB,GACxB,mEAAmE;IAErE,OAAO;MACLC,OAAO,EAAE,8CAA8CN,UAAU,IAAIE,SAAS,EAAE;MAChFK,OAAO,EAAE;QACPC,MAAM,EAAE,MAAe;QACvBC,GAAG,EAAE,aAAa;QAClBC,WAAW,EAAE,cAAcC,kBAAkB,CAACN,oBAAoB,CAAC,IAAIM,kBAAkB,CAACR,cAAc,CAAC;MAC3G,CAAC;MACDS,QAAQ,EAAE;QACR,GAAGX,eAAe;QAClBY,UAAU,EAAE,CACV,IAAIZ,eAAe,CAACY,UAAU,IAAI,EAAE,CAAC,EACrC;UACEC,MAAM,EACJ,yEAAyE;UAC3EC,KAAK,EAAElB;QACT,CAAC,EACD;UACEiB,MAAM,EAAET,oBAAoB;UAC5BU,KAAK,EAAEZ;QACT,CAAC,CACF;QACDa,MAAM,EAAE;UACNH,UAAU,EAAE;YACVC,MAAM,EACJ,yEAAyE;YAC3EC,KAAK,EAAElB;UACT;QACF,CAAC;QACDoB,SAAS,EACPf,SAAS,KAAK,CAAC,GACX,EAAE,GACF,CACE;UACEgB,SAAS,EAAE,8CAA8ClB,UAAU;QACrE,CAAC;MAEX;IACF,CAAC;EACH,CAAC,CACH,CAAC,CACAmB,IAAI,CAAC,CAAC;AACX,CAAC","ignoreList":[]}
@@ -4,18 +4,29 @@ const RETRY_DELAYS_MS = [1000, 4000, 16000];
4
4
  function asRecord(value) {
5
5
  return typeof value === "object" && value !== null ? value : undefined;
6
6
  }
7
+ const statusNumber = value => {
8
+ const parsed = typeof value === "string" ? Number.parseInt(value, 10) : Number(value);
9
+ return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined;
10
+ };
7
11
  function getStatus(error) {
8
12
  const record = asRecord(error);
9
13
  const response = asRecord(record?.response);
10
- const statuses = [record?.status, record?.statusCode, response?.status, ...(Array.isArray(record?.entry) ? record.entry.map(entry => asRecord(entry)?.response).map(asRecord) : [])];
14
+ const statuses = [record?.status, record?.statusCode, response?.status, ...(Array.isArray(record?.entry) ? record.entry.map(entry => asRecord(asRecord(entry)?.response)?.status) : [])];
11
15
  for (const status of statuses) {
12
- const numberStatus = Number(status);
13
- if (Number.isInteger(numberStatus) && numberStatus > 0) {
16
+ const numberStatus = statusNumber(status);
17
+ if (numberStatus !== undefined) {
14
18
  return numberStatus;
15
19
  }
16
20
  }
17
21
  return undefined;
18
22
  }
23
+ class SyncRetryCancelledError extends Error {
24
+ constructor() {
25
+ super("Health sync retry cancelled");
26
+ this.name = "SyncRetryCancelledError";
27
+ }
28
+ }
29
+ const isSyncRetryCancelled = error => error instanceof SyncRetryCancelledError;
19
30
  function getRetryAfterMs(error) {
20
31
  const record = asRecord(error);
21
32
  const response = asRecord(record?.response);
@@ -42,19 +53,40 @@ function isRetryableSyncError(error) {
42
53
  function getSyncRetryDelayMs(error, retryIndex) {
43
54
  return Math.max(RETRY_DELAYS_MS[retryIndex] ?? RETRY_DELAYS_MS.at(-1), getRetryAfterMs(error) ?? 0);
44
55
  }
45
- async function withSyncRetries(operation) {
56
+ async function withSyncRetries(operation, shouldCancel = () => false) {
46
57
  for (let retryIndex = 0;; retryIndex += 1) {
47
58
  try {
48
59
  return await operation();
49
60
  } catch (error) {
61
+ if (shouldCancel()) {
62
+ throw new SyncRetryCancelledError();
63
+ }
50
64
  if (!isRetryableSyncError(error) || retryIndex >= RETRY_DELAYS_MS.length) {
51
65
  throw error;
52
66
  }
53
- await new Promise(resolve => {
54
- setTimeout(resolve, getSyncRetryDelayMs(error, retryIndex));
67
+ await new Promise((resolve, reject) => {
68
+ const timers = {};
69
+ timers.poll = setInterval(() => {
70
+ if (!shouldCancel()) {
71
+ return;
72
+ }
73
+ if (timers.timer) {
74
+ clearTimeout(timers.timer);
75
+ }
76
+ if (timers.poll) {
77
+ clearInterval(timers.poll);
78
+ }
79
+ reject(new SyncRetryCancelledError());
80
+ }, 50);
81
+ timers.timer = setTimeout(() => {
82
+ if (timers.poll) {
83
+ clearInterval(timers.poll);
84
+ }
85
+ resolve();
86
+ }, getSyncRetryDelayMs(error, retryIndex));
55
87
  });
56
88
  }
57
89
  }
58
90
  }
59
- export { getSyncRetryDelayMs, isRetryableSyncError, withSyncRetries };
91
+ export { getSyncRetryDelayMs, isRetryableSyncError, isSyncRetryCancelled, withSyncRetries };
60
92
  //# sourceMappingURL=retry-save.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RETRY_DELAYS_MS","asRecord","value","undefined","getStatus","error","record","response","statuses","status","statusCode","Array","isArray","entry","map","numberStatus","Number","isInteger","getRetryAfterMs","retryAfter","retryAfterMs","headers","header","seconds","isFinite","isRetryableSyncError","message","Error","String","TypeError","test","getSyncRetryDelayMs","retryIndex","Math","max","at","withSyncRetries","operation","length","Promise","resolve","setTimeout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/retry-save.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RETRY_DELAYS_MS","asRecord","value","undefined","statusNumber","parsed","Number","parseInt","isInteger","getStatus","error","record","response","statuses","status","statusCode","Array","isArray","entry","map","numberStatus","SyncRetryCancelledError","Error","constructor","name","isSyncRetryCancelled","getRetryAfterMs","retryAfter","retryAfterMs","headers","header","seconds","isFinite","isRetryableSyncError","message","String","TypeError","test","getSyncRetryDelayMs","retryIndex","Math","max","at","withSyncRetries","operation","shouldCancel","length","Promise","resolve","reject","timers","poll","setInterval","timer","clearTimeout","clearInterval","setTimeout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/retry-save.ts"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ export * from "./form-items/form-field.js";
5
5
  export * from "./form-items/form-select.js";
6
6
  export * from "./form-items/form-date-field.js";
7
7
  export * from "./utils/s-log.js";
8
+ export { configureOvokLogger, ovokLogger } from "./utils/sentry-logger.js";
8
9
  export * from "./utils/telemetry.js";
9
10
  export * from "./utils/with-animated.js";
10
- export { BottomSheetModalProvider } from "@gorhom/bottom-sheet";
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BottomSheetModalProvider"],"sourceRoot":"../../../../src","sources":["modules/helpers/index.tsx"],"mappings":";;AAAA,cAAc,kBAAe;AAE7B,cAAc,4BAAyB;AAEvC,cAAc,6BAA0B;AAExC,cAAc,iCAA8B;AAE5C,cAAc,kBAAe;AAE7B,cAAc,sBAAmB;AAEjC,cAAc,0BAAuB;AACrC,SAASA,wBAAwB,QAAQ,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["configureOvokLogger","ovokLogger"],"sourceRoot":"../../../../src","sources":["modules/helpers/index.tsx"],"mappings":";;AAAA,cAAc,kBAAe;AAE7B,cAAc,4BAAyB;AAEvC,cAAc,6BAA0B;AAExC,cAAc,iCAA8B;AAE5C,cAAc,kBAAe;AAE7B,SACEA,mBAAmB,EACnBC,UAAU,QACL,0BAAuB;AAE9B,cAAc,sBAAmB;AAEjC,cAAc,0BAAuB","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable no-console */
4
4
  /* eslint-disable import/group-exports */
5
5
 
6
- import { emitOvokLog, recordOvokMetric, sanitizeOvokTelemetryAttributes } from "./telemetry.js";
6
+ import { emitOvokLog, recordOvokMetric } from "./telemetry.js";
7
7
  const consoleLogger = (level, message, extra = {}) => {
8
8
  const method = level === "warning" ? "warn" : level === "trace" ? "debug" : level;
9
9
  const log = method === "fatal" ? console.error : console[method] ?? console.log;
@@ -16,15 +16,14 @@ export const configureOvokLogger = logger => {
16
16
  configuredLogger = logger;
17
17
  };
18
18
  export const ovokLogger = (type, message, extra = {}) => {
19
- const safeExtra = sanitizeOvokTelemetryAttributes(extra);
20
- emitOvokLog(type, message, safeExtra);
19
+ emitOvokLog(type, message, extra);
21
20
  if (type === "error" || type === "fatal") {
22
21
  recordOvokMetric("ovok.errors", 1, {
23
22
  errorCode: typeof extra.errorCode === "string" ? extra.errorCode : "unknown"
24
23
  });
25
24
  }
26
25
  const logger = configuredLogger ?? consoleLogger;
27
- logger(type, message, safeExtra);
26
+ logger(type, message, extra);
28
27
  };
29
28
 
30
29
  /** @deprecated Use ovokLogger. Kept as a source-compatible alias for existing apps. */
@@ -1 +1 @@
1
- {"version":3,"names":["emitOvokLog","recordOvokMetric","sanitizeOvokTelemetryAttributes","consoleLogger","level","message","extra","method","log","console","error","configuredLogger","configureOvokLogger","logger","ovokLogger","type","safeExtra","errorCode","sentryLogger"],"sourceRoot":"../../../../../src","sources":["modules/helpers/utils/sentry-logger.ts"],"mappings":";;AAAA;AACA;;AAEA,SAASA,WAAW,EAAEC,gBAAgB,EAAEC,+BAA+B,QAAQ,gBAAa;AAgB5F,MAAMC,aAAyB,GAAGA,CAACC,KAAK,EAAEC,OAAO,EAAEC,KAAK,GAAG,CAAC,CAAC,KAAK;EAChE,MAAMC,MAAM,GAAGH,KAAK,KAAK,SAAS,GAAG,MAAM,GAAGA,KAAK,KAAK,OAAO,GAAG,OAAO,GAAGA,KAAK;EAEjF,MAAMI,GAAG,GACPD,MAAM,KAAK,OAAO,GACdE,OAAO,CAACC,KAAK,GACbD,OAAO,CAACF,MAAM,CAAwC,IAAIE,OAAO,CAACD,GAAG;EAE3EA,GAAG,CAAC,UAAUH,OAAO,EAAE,EAAEC,KAAK,CAAC;AACjC,CAAC;AAED,IAAIK,gBAAwC;;AAE5C;AACA,OAAO,MAAMC,mBAAmB,GAAIC,MAAmB,IAAW;EAChEF,gBAAgB,GAAGE,MAAM;AAC3B,CAAC;AAED,OAAO,MAAMC,UAAU,GAAGA,CACxBC,IAAkB,EAClBV,OAAe,EACfC,KAA8B,GAAG,CAAC,CAAC,KAChC;EACH,MAAMU,SAAS,GAAGd,+BAA+B,CAACI,KAAK,CAAC;EAExDN,WAAW,CAACe,IAAI,EAAEV,OAAO,EAAEW,SAAS,CAAC;EACrC,IAAID,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,OAAO,EAAE;IACxCd,gBAAgB,CAAC,aAAa,EAAE,CAAC,EAAE;MACjCgB,SAAS,EAAE,OAAOX,KAAK,CAACW,SAAS,KAAK,QAAQ,GAAGX,KAAK,CAACW,SAAS,GAAG;IACrE,CAAC,CAAC;EACJ;EAEA,MAAMJ,MAAM,GAAGF,gBAAgB,IAAIR,aAAa;EAEhDU,MAAM,CAACE,IAAI,EAAEV,OAAO,EAAEW,SAAS,CAAC;AAClC,CAAC;;AAED;AACA,OAAO,MAAME,YAAY,GAAGJ,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["emitOvokLog","recordOvokMetric","consoleLogger","level","message","extra","method","log","console","error","configuredLogger","configureOvokLogger","logger","ovokLogger","type","errorCode","sentryLogger"],"sourceRoot":"../../../../../src","sources":["modules/helpers/utils/sentry-logger.ts"],"mappings":";;AAAA;AACA;;AAEA,SAASA,WAAW,EAAEC,gBAAgB,QAAQ,gBAAa;AAgB3D,MAAMC,aAAyB,GAAGA,CAACC,KAAK,EAAEC,OAAO,EAAEC,KAAK,GAAG,CAAC,CAAC,KAAK;EAChE,MAAMC,MAAM,GAAGH,KAAK,KAAK,SAAS,GAAG,MAAM,GAAGA,KAAK,KAAK,OAAO,GAAG,OAAO,GAAGA,KAAK;EAEjF,MAAMI,GAAG,GACPD,MAAM,KAAK,OAAO,GACdE,OAAO,CAACC,KAAK,GACbD,OAAO,CAACF,MAAM,CAAwC,IAAIE,OAAO,CAACD,GAAG;EAE3EA,GAAG,CAAC,UAAUH,OAAO,EAAE,EAAEC,KAAK,CAAC;AACjC,CAAC;AAED,IAAIK,gBAAwC;;AAE5C;AACA,OAAO,MAAMC,mBAAmB,GAAIC,MAAmB,IAAW;EAChEF,gBAAgB,GAAGE,MAAM;AAC3B,CAAC;AAED,OAAO,MAAMC,UAAU,GAAGA,CACxBC,IAAkB,EAClBV,OAAe,EACfC,KAA8B,GAAG,CAAC,CAAC,KAChC;EACHL,WAAW,CAACc,IAAI,EAAEV,OAAO,EAAEC,KAAK,CAAC;EACjC,IAAIS,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,OAAO,EAAE;IACxCb,gBAAgB,CAAC,aAAa,EAAE,CAAC,EAAE;MACjCc,SAAS,EAAE,OAAOV,KAAK,CAACU,SAAS,KAAK,QAAQ,GAAGV,KAAK,CAACU,SAAS,GAAG;IACrE,CAAC,CAAC;EACJ;EAEA,MAAMH,MAAM,GAAGF,gBAAgB,IAAIR,aAAa;EAEhDU,MAAM,CAACE,IAAI,EAAEV,OAAO,EAAEC,KAAK,CAAC;AAC9B,CAAC;;AAED;AACA,OAAO,MAAMW,YAAY,GAAGH,UAAU","ignoreList":[]}