@ovok/native 1.5.5 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. package/README.md +27 -17
  2. package/app.plugin.js +104 -0
  3. package/lib/commonjs/index.js +11 -0
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/modules/auth/delete-account-button/components/delete-account-button.js +2 -0
  6. package/lib/commonjs/modules/auth/delete-account-button/components/delete-account-button.js.map +1 -1
  7. package/lib/commonjs/modules/auth/hooks/use-rate-limit-cooldown.js +23 -0
  8. package/lib/commonjs/modules/auth/hooks/use-rate-limit-cooldown.js.map +1 -0
  9. package/lib/commonjs/modules/auth/hooks/use-session.js +91 -0
  10. package/lib/commonjs/modules/auth/hooks/use-session.js.map +1 -0
  11. package/lib/commonjs/modules/auth/index.js +44 -0
  12. package/lib/commonjs/modules/auth/index.js.map +1 -1
  13. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js +3 -1
  14. package/lib/commonjs/modules/auth/logout-button/components/logout-button.js.map +1 -1
  15. package/lib/commonjs/modules/auth/register/components/form/inputs.js +48 -1
  16. package/lib/commonjs/modules/auth/register/components/form/inputs.js.map +1 -1
  17. package/lib/commonjs/modules/auth/register/components/form/register-button.js +4 -0
  18. package/lib/commonjs/modules/auth/register/components/form/register-button.js.map +1 -1
  19. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js +6 -0
  20. package/lib/commonjs/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  21. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js +12 -0
  22. package/lib/commonjs/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  23. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-button.js +4 -0
  24. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-button.js.map +1 -1
  25. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js +7 -1
  26. package/lib/commonjs/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  27. package/lib/commonjs/modules/auth/session/components/session-list.js +82 -0
  28. package/lib/commonjs/modules/auth/session/components/session-list.js.map +1 -0
  29. package/lib/commonjs/modules/auth/session/events.js +19 -0
  30. package/lib/commonjs/modules/auth/session/events.js.map +1 -0
  31. package/lib/commonjs/modules/auth/session/index.js +13 -0
  32. package/lib/commonjs/modules/auth/session/index.js.map +1 -0
  33. package/lib/commonjs/modules/auth/session/types/session-list-props.js +6 -0
  34. package/lib/commonjs/modules/auth/session/types/session-list-props.js.map +1 -0
  35. package/lib/commonjs/modules/auth/sign-in/components/form/inputs.js +25 -0
  36. package/lib/commonjs/modules/auth/sign-in/components/form/inputs.js.map +1 -1
  37. package/lib/commonjs/modules/auth/sign-in/components/form/login-form-provider.js +48 -1
  38. package/lib/commonjs/modules/auth/sign-in/components/form/login-form-provider.js.map +1 -1
  39. package/lib/commonjs/modules/auth/sign-in/components/form/mfa-code-input.js +58 -0
  40. package/lib/commonjs/modules/auth/sign-in/components/form/mfa-code-input.js.map +1 -0
  41. package/lib/commonjs/modules/auth/sign-in/components/form/sign-in-with-email.js +2 -0
  42. package/lib/commonjs/modules/auth/sign-in/components/form/sign-in-with-email.js.map +1 -1
  43. package/lib/commonjs/modules/auth/sign-in/components/form/signin-button.js +13 -5
  44. package/lib/commonjs/modules/auth/sign-in/components/form/signin-button.js.map +1 -1
  45. package/lib/commonjs/modules/auth/types/session.js +2 -0
  46. package/lib/commonjs/modules/auth/types/session.js.map +1 -0
  47. package/lib/commonjs/modules/auth/utils/rate-limit.js +37 -0
  48. package/lib/commonjs/modules/auth/utils/rate-limit.js.map +1 -0
  49. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +3 -2
  50. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  51. package/lib/commonjs/modules/background-sync/background-safe-storage.js +79 -0
  52. package/lib/commonjs/modules/background-sync/background-safe-storage.js.map +1 -0
  53. package/lib/commonjs/modules/background-sync/index.js +11 -0
  54. package/lib/commonjs/modules/background-sync/index.js.map +1 -1
  55. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +123 -21
  56. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  57. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js +91 -0
  58. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -0
  59. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js +47 -0
  60. package/lib/commonjs/modules/bt-management/hooks/use-background-sync.js.map +1 -0
  61. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-state.js +51 -0
  62. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-state.js.map +1 -0
  63. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js +36 -0
  64. package/lib/commonjs/modules/bt-management/hooks/use-device-connection.js.map +1 -0
  65. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js +46 -0
  66. package/lib/commonjs/modules/bt-management/hooks/use-health-import.js.map +1 -0
  67. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js +57 -0
  68. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js.map +1 -0
  69. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js +26 -0
  70. package/lib/commonjs/modules/bt-management/hooks/use-nearby-devices.js.map +1 -0
  71. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js +49 -0
  72. package/lib/commonjs/modules/bt-management/hooks/use-paired-devices.js.map +1 -0
  73. package/lib/commonjs/modules/bt-management/index.js +143 -0
  74. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  75. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +41 -4
  76. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  77. package/lib/commonjs/modules/bt-management/services/bt-manager.js +75 -4
  78. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  79. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +57 -0
  80. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  81. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +111 -3
  82. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  83. package/lib/commonjs/modules/bt-management/services/devices/measurement-state-machine.js +5 -3
  84. package/lib/commonjs/modules/bt-management/services/devices/measurement-state-machine.js.map +1 -1
  85. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.main-services.js +12 -0
  86. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.main-services.js.map +1 -1
  87. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js +9 -3
  88. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js.map +1 -1
  89. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js +52 -0
  90. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js.map +1 -0
  91. package/lib/commonjs/modules/bt-management/testing/index.js +28 -0
  92. package/lib/commonjs/modules/bt-management/testing/index.js.map +1 -0
  93. package/lib/commonjs/modules/bt-management/testing/recorded-frames.js +23 -0
  94. package/lib/commonjs/modules/bt-management/testing/recorded-frames.js.map +1 -0
  95. package/lib/commonjs/modules/bt-management/types/bluetooth-error.js +80 -0
  96. package/lib/commonjs/modules/bt-management/types/bluetooth-error.js.map +1 -0
  97. package/lib/commonjs/modules/bt-management/types/device-connection-event.js +6 -0
  98. package/lib/commonjs/modules/bt-management/types/device-connection-event.js.map +1 -0
  99. package/lib/commonjs/modules/bt-management/types/result-policy.js +6 -0
  100. package/lib/commonjs/modules/bt-management/types/result-policy.js.map +1 -0
  101. package/lib/commonjs/modules/bt-management/utils/result-identity.js +63 -0
  102. package/lib/commonjs/modules/bt-management/utils/result-identity.js.map +1 -0
  103. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +8 -2
  104. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  105. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +23 -4
  106. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  107. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +2 -2
  108. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  109. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js +1 -1
  110. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  111. package/lib/commonjs/modules/data-sync/utils/retry-save.js +65 -0
  112. package/lib/commonjs/modules/data-sync/utils/retry-save.js.map +1 -0
  113. package/lib/commonjs/modules/helpers/form-items/form-field.js +2 -0
  114. package/lib/commonjs/modules/helpers/form-items/form-field.js.map +1 -1
  115. package/lib/commonjs/modules/helpers/index.js +12 -0
  116. package/lib/commonjs/modules/helpers/index.js.map +1 -1
  117. package/lib/commonjs/modules/helpers/utils/s-log.js +4 -13
  118. package/lib/commonjs/modules/helpers/utils/s-log.js.map +1 -1
  119. package/lib/commonjs/modules/helpers/utils/sentry-logger.js +28 -17
  120. package/lib/commonjs/modules/helpers/utils/sentry-logger.js.map +1 -1
  121. package/lib/commonjs/modules/helpers/utils/telemetry.js +143 -0
  122. package/lib/commonjs/modules/helpers/utils/telemetry.js.map +1 -0
  123. package/lib/commonjs/modules/image/components/optimized-image.js +24 -2
  124. package/lib/commonjs/modules/image/components/optimized-image.js.map +1 -1
  125. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-error.js +18 -9
  126. package/lib/commonjs/modules/questionnaire-response-form/components/content/questionnaire-content-error.js.map +1 -1
  127. package/lib/commonjs/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.js +3 -2
  128. package/lib/commonjs/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.js.map +1 -1
  129. package/lib/commonjs/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.js +4 -2
  130. package/lib/commonjs/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.js.map +1 -1
  131. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js +42 -17
  132. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  133. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +2 -1
  134. package/lib/commonjs/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  135. package/lib/commonjs/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.js.map +1 -1
  136. package/lib/commonjs/modules/tile/components/task-icon.js +2 -1
  137. package/lib/commonjs/modules/tile/components/task-icon.js.map +1 -1
  138. package/lib/commonjs/modules/ui/components/background-sync-setting.js +113 -0
  139. package/lib/commonjs/modules/ui/components/background-sync-setting.js.map +1 -0
  140. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js +105 -0
  141. package/lib/commonjs/modules/ui/components/bluetooth-state-notice.js.map +1 -0
  142. package/lib/commonjs/modules/ui/components/ecg-strip-viewer.js +165 -0
  143. package/lib/commonjs/modules/ui/components/ecg-strip-viewer.js.map +1 -0
  144. package/lib/commonjs/modules/ui/components/health-import-card.js +130 -0
  145. package/lib/commonjs/modules/ui/components/health-import-card.js.map +1 -0
  146. package/lib/commonjs/modules/ui/components/manual-entry-form.js +123 -0
  147. package/lib/commonjs/modules/ui/components/manual-entry-form.js.map +1 -0
  148. package/lib/commonjs/modules/ui/components/pairing-flow.js +222 -0
  149. package/lib/commonjs/modules/ui/components/pairing-flow.js.map +1 -0
  150. package/lib/commonjs/modules/ui/components/supported-devices-catalog-list.js +99 -0
  151. package/lib/commonjs/modules/ui/components/supported-devices-catalog-list.js.map +1 -0
  152. package/lib/commonjs/modules/ui/components/urine-test-result.js +94 -0
  153. package/lib/commonjs/modules/ui/components/urine-test-result.js.map +1 -0
  154. package/lib/commonjs/modules/ui/index.js +116 -0
  155. package/lib/commonjs/modules/ui/index.js.map +1 -0
  156. package/lib/commonjs/modules/ui/types.js +6 -0
  157. package/lib/commonjs/modules/ui/types.js.map +1 -0
  158. package/lib/commonjs/modules/ui/use-ovok-ui.js +51 -0
  159. package/lib/commonjs/modules/ui/use-ovok-ui.js.map +1 -0
  160. package/lib/module/index.js +1 -0
  161. package/lib/module/index.js.map +1 -1
  162. package/lib/module/modules/auth/delete-account-button/components/delete-account-button.js +2 -0
  163. package/lib/module/modules/auth/delete-account-button/components/delete-account-button.js.map +1 -1
  164. package/lib/module/modules/auth/hooks/use-rate-limit-cooldown.js +17 -0
  165. package/lib/module/modules/auth/hooks/use-rate-limit-cooldown.js.map +1 -0
  166. package/lib/module/modules/auth/hooks/use-session.js +85 -0
  167. package/lib/module/modules/auth/hooks/use-session.js.map +1 -0
  168. package/lib/module/modules/auth/index.js +4 -0
  169. package/lib/module/modules/auth/index.js.map +1 -1
  170. package/lib/module/modules/auth/logout-button/components/logout-button.js +3 -1
  171. package/lib/module/modules/auth/logout-button/components/logout-button.js.map +1 -1
  172. package/lib/module/modules/auth/register/components/form/inputs.js +48 -1
  173. package/lib/module/modules/auth/register/components/form/inputs.js.map +1 -1
  174. package/lib/module/modules/auth/register/components/form/register-button.js +4 -0
  175. package/lib/module/modules/auth/register/components/form/register-button.js.map +1 -1
  176. package/lib/module/modules/auth/register/components/form/register-form-provider.js +6 -0
  177. package/lib/module/modules/auth/register/components/form/register-form-provider.js.map +1 -1
  178. package/lib/module/modules/auth/reset-password/components/form/inputs.js +12 -0
  179. package/lib/module/modules/auth/reset-password/components/form/inputs.js.map +1 -1
  180. package/lib/module/modules/auth/reset-password/components/form/reset-password-button.js +4 -0
  181. package/lib/module/modules/auth/reset-password/components/form/reset-password-button.js.map +1 -1
  182. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js +7 -1
  183. package/lib/module/modules/auth/reset-password/components/form/reset-password-form-provider.js.map +1 -1
  184. package/lib/module/modules/auth/session/components/session-list.js +76 -0
  185. package/lib/module/modules/auth/session/components/session-list.js.map +1 -0
  186. package/lib/module/modules/auth/session/events.js +13 -0
  187. package/lib/module/modules/auth/session/events.js.map +1 -0
  188. package/lib/module/modules/auth/session/index.js +4 -0
  189. package/lib/module/modules/auth/session/index.js.map +1 -0
  190. package/lib/module/modules/auth/session/types/session-list-props.js +4 -0
  191. package/lib/module/modules/auth/session/types/session-list-props.js.map +1 -0
  192. package/lib/module/modules/auth/sign-in/components/form/inputs.js +25 -0
  193. package/lib/module/modules/auth/sign-in/components/form/inputs.js.map +1 -1
  194. package/lib/module/modules/auth/sign-in/components/form/login-form-provider.js +48 -1
  195. package/lib/module/modules/auth/sign-in/components/form/login-form-provider.js.map +1 -1
  196. package/lib/module/modules/auth/sign-in/components/form/mfa-code-input.js +52 -0
  197. package/lib/module/modules/auth/sign-in/components/form/mfa-code-input.js.map +1 -0
  198. package/lib/module/modules/auth/sign-in/components/form/sign-in-with-email.js +2 -0
  199. package/lib/module/modules/auth/sign-in/components/form/sign-in-with-email.js.map +1 -1
  200. package/lib/module/modules/auth/sign-in/components/form/signin-button.js +13 -5
  201. package/lib/module/modules/auth/sign-in/components/form/signin-button.js.map +1 -1
  202. package/lib/module/modules/auth/types/session.js +2 -0
  203. package/lib/module/modules/auth/types/session.js.map +1 -0
  204. package/lib/module/modules/auth/utils/rate-limit.js +31 -0
  205. package/lib/module/modules/auth/utils/rate-limit.js.map +1 -0
  206. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +3 -2
  207. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  208. package/lib/module/modules/background-sync/background-safe-storage.js +74 -0
  209. package/lib/module/modules/background-sync/background-safe-storage.js.map +1 -0
  210. package/lib/module/modules/background-sync/index.js +1 -0
  211. package/lib/module/modules/background-sync/index.js.map +1 -1
  212. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +123 -21
  213. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  214. package/lib/module/modules/bt-management/hooks/runtime-context.js +82 -0
  215. package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -0
  216. package/lib/module/modules/bt-management/hooks/use-background-sync.js +41 -0
  217. package/lib/module/modules/bt-management/hooks/use-background-sync.js.map +1 -0
  218. package/lib/module/modules/bt-management/hooks/use-bluetooth-state.js +45 -0
  219. package/lib/module/modules/bt-management/hooks/use-bluetooth-state.js.map +1 -0
  220. package/lib/module/modules/bt-management/hooks/use-device-connection.js +30 -0
  221. package/lib/module/modules/bt-management/hooks/use-device-connection.js.map +1 -0
  222. package/lib/module/modules/bt-management/hooks/use-health-import.js +40 -0
  223. package/lib/module/modules/bt-management/hooks/use-health-import.js.map +1 -0
  224. package/lib/module/modules/bt-management/hooks/use-measurements.js +51 -0
  225. package/lib/module/modules/bt-management/hooks/use-measurements.js.map +1 -0
  226. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js +20 -0
  227. package/lib/module/modules/bt-management/hooks/use-nearby-devices.js.map +1 -0
  228. package/lib/module/modules/bt-management/hooks/use-paired-devices.js +43 -0
  229. package/lib/module/modules/bt-management/hooks/use-paired-devices.js.map +1 -0
  230. package/lib/module/modules/bt-management/index.js +13 -0
  231. package/lib/module/modules/bt-management/index.js.map +1 -1
  232. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +41 -4
  233. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  234. package/lib/module/modules/bt-management/services/bt-manager.js +75 -4
  235. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  236. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +57 -0
  237. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  238. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +111 -3
  239. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  240. package/lib/module/modules/bt-management/services/devices/measurement-state-machine.js +5 -3
  241. package/lib/module/modules/bt-management/services/devices/measurement-state-machine.js.map +1 -1
  242. package/lib/module/modules/bt-management/services/devices/spo/spo2.main-services.js +12 -0
  243. package/lib/module/modules/bt-management/services/devices/spo/spo2.main-services.js.map +1 -1
  244. package/lib/module/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js +9 -3
  245. package/lib/module/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js.map +1 -1
  246. package/lib/module/modules/bt-management/testing/fake-ble-manager.js +48 -0
  247. package/lib/module/modules/bt-management/testing/fake-ble-manager.js.map +1 -0
  248. package/lib/module/modules/bt-management/testing/index.js +5 -0
  249. package/lib/module/modules/bt-management/testing/index.js.map +1 -0
  250. package/lib/module/modules/bt-management/testing/recorded-frames.js +17 -0
  251. package/lib/module/modules/bt-management/testing/recorded-frames.js.map +1 -0
  252. package/lib/module/modules/bt-management/types/bluetooth-error.js +74 -0
  253. package/lib/module/modules/bt-management/types/bluetooth-error.js.map +1 -0
  254. package/lib/module/modules/bt-management/types/device-connection-event.js +4 -0
  255. package/lib/module/modules/bt-management/types/device-connection-event.js.map +1 -0
  256. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  257. package/lib/module/modules/bt-management/types/result-policy.js +4 -0
  258. package/lib/module/modules/bt-management/types/result-policy.js.map +1 -0
  259. package/lib/module/modules/bt-management/utils/result-identity.js +57 -0
  260. package/lib/module/modules/bt-management/utils/result-identity.js.map +1 -0
  261. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +8 -2
  262. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  263. package/lib/module/modules/data-sync/services/base-health-sync-service.js +23 -4
  264. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  265. package/lib/module/modules/data-sync/services/managers/data-processor.js +2 -2
  266. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  267. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +1 -1
  268. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  269. package/lib/module/modules/data-sync/utils/retry-save.js +60 -0
  270. package/lib/module/modules/data-sync/utils/retry-save.js.map +1 -0
  271. package/lib/module/modules/helpers/form-items/form-field.js +2 -0
  272. package/lib/module/modules/helpers/form-items/form-field.js.map +1 -1
  273. package/lib/module/modules/helpers/index.js +1 -0
  274. package/lib/module/modules/helpers/index.js.map +1 -1
  275. package/lib/module/modules/helpers/utils/s-log.js +4 -12
  276. package/lib/module/modules/helpers/utils/s-log.js.map +1 -1
  277. package/lib/module/modules/helpers/utils/sentry-logger.js +26 -14
  278. package/lib/module/modules/helpers/utils/sentry-logger.js.map +1 -1
  279. package/lib/module/modules/helpers/utils/telemetry.js +131 -0
  280. package/lib/module/modules/helpers/utils/telemetry.js.map +1 -0
  281. package/lib/module/modules/image/components/optimized-image.js +25 -3
  282. package/lib/module/modules/image/components/optimized-image.js.map +1 -1
  283. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-error.js +20 -11
  284. package/lib/module/modules/questionnaire-response-form/components/content/questionnaire-content-error.js.map +1 -1
  285. package/lib/module/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.js +3 -2
  286. package/lib/module/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.js.map +1 -1
  287. package/lib/module/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.js +4 -2
  288. package/lib/module/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.js.map +1 -1
  289. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js +42 -17
  290. package/lib/module/modules/questionnaire-response-form/components/questionnaire-form-provider.js.map +1 -1
  291. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js +2 -1
  292. package/lib/module/modules/questionnaire-response-form/components/questionnaire-navigation-provider.js.map +1 -1
  293. package/lib/module/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.js.map +1 -1
  294. package/lib/module/modules/tile/components/task-icon.js +2 -1
  295. package/lib/module/modules/tile/components/task-icon.js.map +1 -1
  296. package/lib/module/modules/ui/components/background-sync-setting.js +107 -0
  297. package/lib/module/modules/ui/components/background-sync-setting.js.map +1 -0
  298. package/lib/module/modules/ui/components/bluetooth-state-notice.js +99 -0
  299. package/lib/module/modules/ui/components/bluetooth-state-notice.js.map +1 -0
  300. package/lib/module/modules/ui/components/ecg-strip-viewer.js +159 -0
  301. package/lib/module/modules/ui/components/ecg-strip-viewer.js.map +1 -0
  302. package/lib/module/modules/ui/components/health-import-card.js +124 -0
  303. package/lib/module/modules/ui/components/health-import-card.js.map +1 -0
  304. package/lib/module/modules/ui/components/manual-entry-form.js +117 -0
  305. package/lib/module/modules/ui/components/manual-entry-form.js.map +1 -0
  306. package/lib/module/modules/ui/components/pairing-flow.js +216 -0
  307. package/lib/module/modules/ui/components/pairing-flow.js.map +1 -0
  308. package/lib/module/modules/ui/components/supported-devices-catalog-list.js +93 -0
  309. package/lib/module/modules/ui/components/supported-devices-catalog-list.js.map +1 -0
  310. package/lib/module/modules/ui/components/urine-test-result.js +89 -0
  311. package/lib/module/modules/ui/components/urine-test-result.js.map +1 -0
  312. package/lib/module/modules/ui/index.js +13 -0
  313. package/lib/module/modules/ui/index.js.map +1 -0
  314. package/lib/module/modules/ui/types.js +4 -0
  315. package/lib/module/modules/ui/types.js.map +1 -0
  316. package/lib/module/modules/ui/use-ovok-ui.js +45 -0
  317. package/lib/module/modules/ui/use-ovok-ui.js.map +1 -0
  318. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  319. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  320. package/lib/typescript/commonjs/src/modules/auth/delete-account-button/components/delete-account-button.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/src/modules/auth/hooks/use-rate-limit-cooldown.d.ts +2 -0
  322. package/lib/typescript/commonjs/src/modules/auth/hooks/use-rate-limit-cooldown.d.ts.map +1 -0
  323. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts +16 -0
  324. package/lib/typescript/commonjs/src/modules/auth/hooks/use-session.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/src/modules/auth/index.d.ts +4 -0
  326. package/lib/typescript/commonjs/src/modules/auth/index.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  328. package/lib/typescript/commonjs/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-button.d.ts.map +1 -1
  330. package/lib/typescript/commonjs/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/inputs.d.ts.map +1 -1
  332. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-button.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/src/modules/auth/session/components/session-list.d.ts +4 -0
  335. package/lib/typescript/commonjs/src/modules/auth/session/components/session-list.d.ts.map +1 -0
  336. package/lib/typescript/commonjs/src/modules/auth/session/events.d.ts +5 -0
  337. package/lib/typescript/commonjs/src/modules/auth/session/events.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/src/modules/auth/session/index.d.ts +3 -0
  339. package/lib/typescript/commonjs/src/modules/auth/session/index.d.ts.map +1 -0
  340. package/lib/typescript/commonjs/src/modules/auth/session/types/session-list-props.d.ts +5 -0
  341. package/lib/typescript/commonjs/src/modules/auth/session/types/session-list-props.d.ts.map +1 -0
  342. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/inputs.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/login-form-provider.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/mfa-code-input.d.ts +9 -0
  345. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/mfa-code-input.d.ts.map +1 -0
  346. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/sign-in-with-email.d.ts +4 -0
  347. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/sign-in-with-email.d.ts.map +1 -1
  348. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/form/signin-button.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/sign-in.d.ts +4 -0
  350. package/lib/typescript/commonjs/src/modules/auth/sign-in/components/sign-in.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/src/modules/auth/sign-in/contexts/login-form-context.d.ts +2 -46
  352. package/lib/typescript/commonjs/src/modules/auth/sign-in/contexts/login-form-context.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/src/modules/auth/sign-in/hooks/use-login-form.d.ts +1 -47
  354. package/lib/typescript/commonjs/src/modules/auth/sign-in/hooks/use-login-form.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/src/modules/auth/sign-in/types/login-form-context-type.d.ts +11 -1
  356. package/lib/typescript/commonjs/src/modules/auth/sign-in/types/login-form-context-type.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/src/modules/auth/types/session.d.ts +13 -0
  358. package/lib/typescript/commonjs/src/modules/auth/types/session.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/src/modules/auth/utils/rate-limit.d.ts +11 -0
  360. package/lib/typescript/commonjs/src/modules/auth/utils/rate-limit.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  362. package/lib/typescript/commonjs/src/modules/background-sync/background-safe-storage.d.ts +29 -0
  363. package/lib/typescript/commonjs/src/modules/background-sync/background-safe-storage.d.ts.map +1 -0
  364. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts +1 -0
  365. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts.map +1 -1
  366. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  367. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +46 -0
  368. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -0
  369. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-background-sync.d.ts +14 -0
  370. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bluetooth-state.d.ts +11 -0
  372. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bluetooth-state.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-device-connection.d.ts +7 -0
  374. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -0
  375. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-health-import.d.ts +16 -0
  376. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-measurements.d.ts +11 -0
  378. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -0
  379. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-devices.d.ts +8 -0
  380. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-paired-devices.d.ts +16 -0
  382. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +13 -0
  384. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  385. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  386. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +22 -0
  387. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  388. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +4 -0
  389. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  390. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +9 -1
  391. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  392. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/measurement-state-machine.d.ts +3 -2
  393. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/measurement-state-machine.d.ts.map +1 -1
  394. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.main-services.d.ts.map +1 -1
  395. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts +2 -0
  396. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts.map +1 -1
  397. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts +16 -0
  398. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/src/modules/bt-management/testing/index.d.ts +3 -0
  400. package/lib/typescript/commonjs/src/modules/bt-management/testing/index.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/src/modules/bt-management/testing/recorded-frames.d.ts +12 -0
  402. package/lib/typescript/commonjs/src/modules/bt-management/testing/recorded-frames.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +3 -1
  404. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  405. package/lib/typescript/commonjs/src/modules/bt-management/types/bluetooth-error.d.ts +23 -0
  406. package/lib/typescript/commonjs/src/modules/bt-management/types/bluetooth-error.d.ts.map +1 -0
  407. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts +4 -0
  408. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  409. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +4 -0
  410. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/src/modules/bt-management/types/device-connection-event.d.ts +16 -0
  412. package/lib/typescript/commonjs/src/modules/bt-management/types/device-connection-event.d.ts.map +1 -0
  413. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +2 -0
  414. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/src/modules/bt-management/types/error-callback.d.ts +5 -2
  416. package/lib/typescript/commonjs/src/modules/bt-management/types/error-callback.d.ts.map +1 -1
  417. package/lib/typescript/commonjs/src/modules/bt-management/types/i-bt-managed-device.d.ts +1 -0
  418. package/lib/typescript/commonjs/src/modules/bt-management/types/i-bt-managed-device.d.ts.map +1 -1
  419. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts +2 -0
  420. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  421. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts +8 -0
  422. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts.map +1 -0
  423. package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts +10 -0
  424. package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts.map +1 -0
  425. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  426. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  427. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +4 -0
  428. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  429. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  430. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +2 -0
  431. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  432. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +1 -1
  433. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  434. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts +5 -0
  435. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts.map +1 -0
  436. package/lib/typescript/commonjs/src/modules/helpers/form-items/form-field.d.ts +4 -1
  437. package/lib/typescript/commonjs/src/modules/helpers/form-items/form-field.d.ts.map +1 -1
  438. package/lib/typescript/commonjs/src/modules/helpers/index.d.ts +1 -0
  439. package/lib/typescript/commonjs/src/modules/helpers/index.d.ts.map +1 -1
  440. package/lib/typescript/commonjs/src/modules/helpers/utils/s-log.d.ts.map +1 -1
  441. package/lib/typescript/commonjs/src/modules/helpers/utils/sentry-logger.d.ts +7 -1
  442. package/lib/typescript/commonjs/src/modules/helpers/utils/sentry-logger.d.ts.map +1 -1
  443. package/lib/typescript/commonjs/src/modules/helpers/utils/telemetry.d.ts +68 -0
  444. package/lib/typescript/commonjs/src/modules/helpers/utils/telemetry.d.ts.map +1 -0
  445. package/lib/typescript/commonjs/src/modules/image/components/optimized-image.d.ts +1 -1
  446. package/lib/typescript/commonjs/src/modules/image/components/optimized-image.d.ts.map +1 -1
  447. package/lib/typescript/commonjs/src/modules/image/types/optimized-image-props.d.ts +4 -0
  448. package/lib/typescript/commonjs/src/modules/image/types/optimized-image-props.d.ts.map +1 -1
  449. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/content/questionnaire-content-error.d.ts.map +1 -1
  450. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.d.ts.map +1 -1
  451. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.d.ts.map +1 -1
  452. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  453. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  454. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.d.ts +1 -0
  455. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.d.ts.map +1 -1
  456. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +1 -0
  457. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  458. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation.d.ts +1 -0
  459. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation.d.ts.map +1 -1
  460. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +2 -0
  461. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  462. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +1 -0
  463. package/lib/typescript/commonjs/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  464. package/lib/typescript/commonjs/src/modules/tile/components/task-icon.d.ts.map +1 -1
  465. package/lib/typescript/commonjs/src/modules/ui/components/background-sync-setting.d.ts +9 -0
  466. package/lib/typescript/commonjs/src/modules/ui/components/background-sync-setting.d.ts.map +1 -0
  467. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts +12 -0
  468. package/lib/typescript/commonjs/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -0
  469. package/lib/typescript/commonjs/src/modules/ui/components/ecg-strip-viewer.d.ts +17 -0
  470. package/lib/typescript/commonjs/src/modules/ui/components/ecg-strip-viewer.d.ts.map +1 -0
  471. package/lib/typescript/commonjs/src/modules/ui/components/health-import-card.d.ts +13 -0
  472. package/lib/typescript/commonjs/src/modules/ui/components/health-import-card.d.ts.map +1 -0
  473. package/lib/typescript/commonjs/src/modules/ui/components/manual-entry-form.d.ts +20 -0
  474. package/lib/typescript/commonjs/src/modules/ui/components/manual-entry-form.d.ts.map +1 -0
  475. package/lib/typescript/commonjs/src/modules/ui/components/pairing-flow.d.ts +15 -0
  476. package/lib/typescript/commonjs/src/modules/ui/components/pairing-flow.d.ts.map +1 -0
  477. package/lib/typescript/commonjs/src/modules/ui/components/supported-devices-catalog-list.d.ts +16 -0
  478. package/lib/typescript/commonjs/src/modules/ui/components/supported-devices-catalog-list.d.ts.map +1 -0
  479. package/lib/typescript/commonjs/src/modules/ui/components/urine-test-result.d.ts +10 -0
  480. package/lib/typescript/commonjs/src/modules/ui/components/urine-test-result.d.ts.map +1 -0
  481. package/lib/typescript/commonjs/src/modules/ui/index.d.ts +11 -0
  482. package/lib/typescript/commonjs/src/modules/ui/index.d.ts.map +1 -0
  483. package/lib/typescript/commonjs/src/modules/ui/types.d.ts +24 -0
  484. package/lib/typescript/commonjs/src/modules/ui/types.d.ts.map +1 -0
  485. package/lib/typescript/commonjs/src/modules/ui/use-ovok-ui.d.ts +7 -0
  486. package/lib/typescript/commonjs/src/modules/ui/use-ovok-ui.d.ts.map +1 -0
  487. package/lib/typescript/module/src/index.d.ts +1 -0
  488. package/lib/typescript/module/src/index.d.ts.map +1 -1
  489. package/lib/typescript/module/src/modules/auth/delete-account-button/components/delete-account-button.d.ts.map +1 -1
  490. package/lib/typescript/module/src/modules/auth/hooks/use-rate-limit-cooldown.d.ts +2 -0
  491. package/lib/typescript/module/src/modules/auth/hooks/use-rate-limit-cooldown.d.ts.map +1 -0
  492. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts +16 -0
  493. package/lib/typescript/module/src/modules/auth/hooks/use-session.d.ts.map +1 -0
  494. package/lib/typescript/module/src/modules/auth/index.d.ts +4 -0
  495. package/lib/typescript/module/src/modules/auth/index.d.ts.map +1 -1
  496. package/lib/typescript/module/src/modules/auth/logout-button/components/logout-button.d.ts.map +1 -1
  497. package/lib/typescript/module/src/modules/auth/register/components/form/inputs.d.ts.map +1 -1
  498. package/lib/typescript/module/src/modules/auth/register/components/form/register-button.d.ts.map +1 -1
  499. package/lib/typescript/module/src/modules/auth/register/components/form/register-form-provider.d.ts.map +1 -1
  500. package/lib/typescript/module/src/modules/auth/reset-password/components/form/inputs.d.ts.map +1 -1
  501. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-button.d.ts.map +1 -1
  502. package/lib/typescript/module/src/modules/auth/reset-password/components/form/reset-password-form-provider.d.ts.map +1 -1
  503. package/lib/typescript/module/src/modules/auth/session/components/session-list.d.ts +4 -0
  504. package/lib/typescript/module/src/modules/auth/session/components/session-list.d.ts.map +1 -0
  505. package/lib/typescript/module/src/modules/auth/session/events.d.ts +5 -0
  506. package/lib/typescript/module/src/modules/auth/session/events.d.ts.map +1 -0
  507. package/lib/typescript/module/src/modules/auth/session/index.d.ts +3 -0
  508. package/lib/typescript/module/src/modules/auth/session/index.d.ts.map +1 -0
  509. package/lib/typescript/module/src/modules/auth/session/types/session-list-props.d.ts +5 -0
  510. package/lib/typescript/module/src/modules/auth/session/types/session-list-props.d.ts.map +1 -0
  511. package/lib/typescript/module/src/modules/auth/sign-in/components/form/inputs.d.ts.map +1 -1
  512. package/lib/typescript/module/src/modules/auth/sign-in/components/form/login-form-provider.d.ts.map +1 -1
  513. package/lib/typescript/module/src/modules/auth/sign-in/components/form/mfa-code-input.d.ts +9 -0
  514. package/lib/typescript/module/src/modules/auth/sign-in/components/form/mfa-code-input.d.ts.map +1 -0
  515. package/lib/typescript/module/src/modules/auth/sign-in/components/form/sign-in-with-email.d.ts +4 -0
  516. package/lib/typescript/module/src/modules/auth/sign-in/components/form/sign-in-with-email.d.ts.map +1 -1
  517. package/lib/typescript/module/src/modules/auth/sign-in/components/form/signin-button.d.ts.map +1 -1
  518. package/lib/typescript/module/src/modules/auth/sign-in/components/sign-in.d.ts +4 -0
  519. package/lib/typescript/module/src/modules/auth/sign-in/components/sign-in.d.ts.map +1 -1
  520. package/lib/typescript/module/src/modules/auth/sign-in/contexts/login-form-context.d.ts +2 -46
  521. package/lib/typescript/module/src/modules/auth/sign-in/contexts/login-form-context.d.ts.map +1 -1
  522. package/lib/typescript/module/src/modules/auth/sign-in/hooks/use-login-form.d.ts +1 -47
  523. package/lib/typescript/module/src/modules/auth/sign-in/hooks/use-login-form.d.ts.map +1 -1
  524. package/lib/typescript/module/src/modules/auth/sign-in/types/login-form-context-type.d.ts +11 -1
  525. package/lib/typescript/module/src/modules/auth/sign-in/types/login-form-context-type.d.ts.map +1 -1
  526. package/lib/typescript/module/src/modules/auth/types/session.d.ts +13 -0
  527. package/lib/typescript/module/src/modules/auth/types/session.d.ts.map +1 -0
  528. package/lib/typescript/module/src/modules/auth/utils/rate-limit.d.ts +11 -0
  529. package/lib/typescript/module/src/modules/auth/utils/rate-limit.d.ts.map +1 -0
  530. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  531. package/lib/typescript/module/src/modules/background-sync/background-safe-storage.d.ts +29 -0
  532. package/lib/typescript/module/src/modules/background-sync/background-safe-storage.d.ts.map +1 -0
  533. package/lib/typescript/module/src/modules/background-sync/index.d.ts +1 -0
  534. package/lib/typescript/module/src/modules/background-sync/index.d.ts.map +1 -1
  535. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  536. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +46 -0
  537. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -0
  538. package/lib/typescript/module/src/modules/bt-management/hooks/use-background-sync.d.ts +14 -0
  539. package/lib/typescript/module/src/modules/bt-management/hooks/use-background-sync.d.ts.map +1 -0
  540. package/lib/typescript/module/src/modules/bt-management/hooks/use-bluetooth-state.d.ts +11 -0
  541. package/lib/typescript/module/src/modules/bt-management/hooks/use-bluetooth-state.d.ts.map +1 -0
  542. package/lib/typescript/module/src/modules/bt-management/hooks/use-device-connection.d.ts +7 -0
  543. package/lib/typescript/module/src/modules/bt-management/hooks/use-device-connection.d.ts.map +1 -0
  544. package/lib/typescript/module/src/modules/bt-management/hooks/use-health-import.d.ts +16 -0
  545. package/lib/typescript/module/src/modules/bt-management/hooks/use-health-import.d.ts.map +1 -0
  546. package/lib/typescript/module/src/modules/bt-management/hooks/use-measurements.d.ts +11 -0
  547. package/lib/typescript/module/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -0
  548. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-devices.d.ts +8 -0
  549. package/lib/typescript/module/src/modules/bt-management/hooks/use-nearby-devices.d.ts.map +1 -0
  550. package/lib/typescript/module/src/modules/bt-management/hooks/use-paired-devices.d.ts +16 -0
  551. package/lib/typescript/module/src/modules/bt-management/hooks/use-paired-devices.d.ts.map +1 -0
  552. package/lib/typescript/module/src/modules/bt-management/index.d.ts +13 -0
  553. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  554. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  555. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +22 -0
  556. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  557. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +4 -0
  558. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  559. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +9 -1
  560. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  561. package/lib/typescript/module/src/modules/bt-management/services/devices/measurement-state-machine.d.ts +3 -2
  562. package/lib/typescript/module/src/modules/bt-management/services/devices/measurement-state-machine.d.ts.map +1 -1
  563. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.main-services.d.ts.map +1 -1
  564. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts +2 -0
  565. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts.map +1 -1
  566. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts +16 -0
  567. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -0
  568. package/lib/typescript/module/src/modules/bt-management/testing/index.d.ts +3 -0
  569. package/lib/typescript/module/src/modules/bt-management/testing/index.d.ts.map +1 -0
  570. package/lib/typescript/module/src/modules/bt-management/testing/recorded-frames.d.ts +12 -0
  571. package/lib/typescript/module/src/modules/bt-management/testing/recorded-frames.d.ts.map +1 -0
  572. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +3 -1
  573. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  574. package/lib/typescript/module/src/modules/bt-management/types/bluetooth-error.d.ts +23 -0
  575. package/lib/typescript/module/src/modules/bt-management/types/bluetooth-error.d.ts.map +1 -0
  576. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts +4 -0
  577. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  578. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +4 -0
  579. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  580. package/lib/typescript/module/src/modules/bt-management/types/device-connection-event.d.ts +16 -0
  581. package/lib/typescript/module/src/modules/bt-management/types/device-connection-event.d.ts.map +1 -0
  582. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +2 -0
  583. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  584. package/lib/typescript/module/src/modules/bt-management/types/error-callback.d.ts +5 -2
  585. package/lib/typescript/module/src/modules/bt-management/types/error-callback.d.ts.map +1 -1
  586. package/lib/typescript/module/src/modules/bt-management/types/i-bt-managed-device.d.ts +1 -0
  587. package/lib/typescript/module/src/modules/bt-management/types/i-bt-managed-device.d.ts.map +1 -1
  588. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts +2 -0
  589. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  590. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts +8 -0
  591. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts.map +1 -0
  592. package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts +10 -0
  593. package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts.map +1 -0
  594. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  595. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  596. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +4 -0
  597. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  598. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  599. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +2 -0
  600. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -1
  601. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +1 -1
  602. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  603. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts +5 -0
  604. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts.map +1 -0
  605. package/lib/typescript/module/src/modules/helpers/form-items/form-field.d.ts +4 -1
  606. package/lib/typescript/module/src/modules/helpers/form-items/form-field.d.ts.map +1 -1
  607. package/lib/typescript/module/src/modules/helpers/index.d.ts +1 -0
  608. package/lib/typescript/module/src/modules/helpers/index.d.ts.map +1 -1
  609. package/lib/typescript/module/src/modules/helpers/utils/s-log.d.ts.map +1 -1
  610. package/lib/typescript/module/src/modules/helpers/utils/sentry-logger.d.ts +7 -1
  611. package/lib/typescript/module/src/modules/helpers/utils/sentry-logger.d.ts.map +1 -1
  612. package/lib/typescript/module/src/modules/helpers/utils/telemetry.d.ts +68 -0
  613. package/lib/typescript/module/src/modules/helpers/utils/telemetry.d.ts.map +1 -0
  614. package/lib/typescript/module/src/modules/image/components/optimized-image.d.ts +1 -1
  615. package/lib/typescript/module/src/modules/image/components/optimized-image.d.ts.map +1 -1
  616. package/lib/typescript/module/src/modules/image/types/optimized-image-props.d.ts +4 -0
  617. package/lib/typescript/module/src/modules/image/types/optimized-image-props.d.ts.map +1 -1
  618. package/lib/typescript/module/src/modules/questionnaire-response-form/components/content/questionnaire-content-error.d.ts.map +1 -1
  619. package/lib/typescript/module/src/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.d.ts.map +1 -1
  620. package/lib/typescript/module/src/modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.d.ts.map +1 -1
  621. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-form-provider.d.ts.map +1 -1
  622. package/lib/typescript/module/src/modules/questionnaire-response-form/components/questionnaire-navigation-provider.d.ts.map +1 -1
  623. package/lib/typescript/module/src/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.d.ts +1 -0
  624. package/lib/typescript/module/src/modules/questionnaire-response-form/contexts/questionnaire-navigation-context.d.ts.map +1 -1
  625. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts +1 -0
  626. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-navigation-handlers.d.ts.map +1 -1
  627. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation.d.ts +1 -0
  628. package/lib/typescript/module/src/modules/questionnaire-response-form/hooks/use-questionnaire-navigation.d.ts.map +1 -1
  629. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts +2 -0
  630. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-form-context-type.d.ts.map +1 -1
  631. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts +1 -0
  632. package/lib/typescript/module/src/modules/questionnaire-response-form/types/questionnaire-navigation-provider-props.d.ts.map +1 -1
  633. package/lib/typescript/module/src/modules/tile/components/task-icon.d.ts.map +1 -1
  634. package/lib/typescript/module/src/modules/ui/components/background-sync-setting.d.ts +9 -0
  635. package/lib/typescript/module/src/modules/ui/components/background-sync-setting.d.ts.map +1 -0
  636. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts +12 -0
  637. package/lib/typescript/module/src/modules/ui/components/bluetooth-state-notice.d.ts.map +1 -0
  638. package/lib/typescript/module/src/modules/ui/components/ecg-strip-viewer.d.ts +17 -0
  639. package/lib/typescript/module/src/modules/ui/components/ecg-strip-viewer.d.ts.map +1 -0
  640. package/lib/typescript/module/src/modules/ui/components/health-import-card.d.ts +13 -0
  641. package/lib/typescript/module/src/modules/ui/components/health-import-card.d.ts.map +1 -0
  642. package/lib/typescript/module/src/modules/ui/components/manual-entry-form.d.ts +20 -0
  643. package/lib/typescript/module/src/modules/ui/components/manual-entry-form.d.ts.map +1 -0
  644. package/lib/typescript/module/src/modules/ui/components/pairing-flow.d.ts +15 -0
  645. package/lib/typescript/module/src/modules/ui/components/pairing-flow.d.ts.map +1 -0
  646. package/lib/typescript/module/src/modules/ui/components/supported-devices-catalog-list.d.ts +16 -0
  647. package/lib/typescript/module/src/modules/ui/components/supported-devices-catalog-list.d.ts.map +1 -0
  648. package/lib/typescript/module/src/modules/ui/components/urine-test-result.d.ts +10 -0
  649. package/lib/typescript/module/src/modules/ui/components/urine-test-result.d.ts.map +1 -0
  650. package/lib/typescript/module/src/modules/ui/index.d.ts +11 -0
  651. package/lib/typescript/module/src/modules/ui/index.d.ts.map +1 -0
  652. package/lib/typescript/module/src/modules/ui/types.d.ts +24 -0
  653. package/lib/typescript/module/src/modules/ui/types.d.ts.map +1 -0
  654. package/lib/typescript/module/src/modules/ui/use-ovok-ui.d.ts +7 -0
  655. package/lib/typescript/module/src/modules/ui/use-ovok-ui.d.ts.map +1 -0
  656. package/package.json +145 -6
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable import/group-exports */
4
+ /* eslint-disable max-lines */
5
+
6
+ const INSTRUMENTATION_NAME = "@ovok/native";
7
+ const INSTRUMENTATION_VERSION = "1.6.0";
8
+ let configuredOptions = {};
9
+ let openTelemetryApi;
10
+ let openTelemetryLogsApi;
11
+ const counters = new Map();
12
+ const histograms = new Map();
13
+ const loadOpenTelemetryApi = () => {
14
+ if (openTelemetryApi !== undefined) {
15
+ return openTelemetryApi ?? undefined;
16
+ }
17
+ try {
18
+ // Optional peer: apps without OpenTelemetry must not need to install it.
19
+ openTelemetryApi = require("@opentelemetry/api");
20
+ } catch {
21
+ openTelemetryApi = null;
22
+ }
23
+ return openTelemetryApi ?? undefined;
24
+ };
25
+ const loadOpenTelemetryLogsApi = () => {
26
+ if (openTelemetryLogsApi !== undefined) {
27
+ return openTelemetryLogsApi ?? undefined;
28
+ }
29
+ try {
30
+ // Optional peer: the stable logs API is distributed separately.
31
+ openTelemetryLogsApi = require("@opentelemetry/api-logs");
32
+ } catch {
33
+ openTelemetryLogsApi = null;
34
+ }
35
+ return openTelemetryLogsApi ?? undefined;
36
+ };
37
+ const allowedAttributeKeys = new Set(["deviceId", "deviceName", "model", "manufacturer", "measurementTypeKey", "platform", "status", "reason", "errorCode", "retryCount", "attempt", "queueDepth", "durationMs", "success", "exhausted", "willRetry", "requestedMtu", "provider", "sampleCount"]);
38
+
39
+ /** Keeps identifiers useful for operations while excluding readings and patient data. */
40
+ export const sanitizeOvokTelemetryAttributes = (attributes = {}) => {
41
+ const safe = {};
42
+ for (const [key, value] of Object.entries(attributes)) {
43
+ if (!allowedAttributeKeys.has(key)) {
44
+ continue;
45
+ }
46
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
47
+ safe[key] = value;
48
+ }
49
+ }
50
+ return safe;
51
+ };
52
+ export const configureOvokTelemetry = (options = {}) => {
53
+ configuredOptions = options;
54
+ counters.clear();
55
+ histograms.clear();
56
+ };
57
+ const getTracer = () => configuredOptions.tracerProvider?.getTracer(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION) ?? loadOpenTelemetryApi()?.trace?.getTracer(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION);
58
+ const getMeter = () => configuredOptions.meterProvider?.getMeter(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION) ?? loadOpenTelemetryApi()?.metrics?.getMeter(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION);
59
+ const getLogger = () => configuredOptions.loggerProvider?.getLogger(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION) ?? loadOpenTelemetryLogsApi()?.logs?.getLogger(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION);
60
+ export const startOvokSpan = (name, attributes = {}) => getTracer()?.startSpan(name, {
61
+ attributes: sanitizeOvokTelemetryAttributes(attributes)
62
+ });
63
+ export const recordOvokMetric = (name, value, attributes = {}) => {
64
+ const meter = getMeter();
65
+ if (!meter) {
66
+ return;
67
+ }
68
+ const safeAttributes = sanitizeOvokTelemetryAttributes(attributes);
69
+ const instrument = counters.get(name) ?? meter.createCounter(name);
70
+ counters.set(name, instrument);
71
+ instrument.add(value, safeAttributes);
72
+ };
73
+ export const recordOvokDuration = (name, durationMs, attributes = {}) => {
74
+ const meter = getMeter();
75
+ if (!meter) {
76
+ return;
77
+ }
78
+ const safeAttributes = sanitizeOvokTelemetryAttributes(attributes);
79
+ const instrument = histograms.get(name) ?? meter.createHistogram(name);
80
+ histograms.set(name, instrument);
81
+ instrument.record(durationMs, safeAttributes);
82
+ };
83
+ export const addOvokSpanEvent = (name, attributes = {}) => {
84
+ const span = loadOpenTelemetryApi()?.trace?.getActiveSpan?.();
85
+ span?.addEvent?.(name, sanitizeOvokTelemetryAttributes(attributes));
86
+ };
87
+ export const emitOvokLog = (severityText, body, attributes = {}) => {
88
+ getLogger()?.emit({
89
+ severityText,
90
+ body,
91
+ attributes: sanitizeOvokTelemetryAttributes(attributes)
92
+ });
93
+ };
94
+ export const withOvokSpan = async (name, attributes, operation) => {
95
+ const tracer = getTracer();
96
+ const finishSpan = async span => {
97
+ try {
98
+ const result = await operation();
99
+ span.setStatus?.({
100
+ code: 1
101
+ });
102
+ return result;
103
+ } catch (error) {
104
+ const normalized = error instanceof Error ? error : new Error(String(error));
105
+ span.recordException?.(normalized);
106
+ span.setStatus?.({
107
+ code: 2,
108
+ message: normalized.message
109
+ });
110
+ recordOvokMetric("ovok.errors", 1, {
111
+ errorCode: normalized.name
112
+ });
113
+ throw error;
114
+ } finally {
115
+ span.end();
116
+ }
117
+ };
118
+ if (tracer?.startActiveSpan) {
119
+ return tracer.startActiveSpan(name, {
120
+ attributes: sanitizeOvokTelemetryAttributes(attributes)
121
+ }, span => finishSpan(span));
122
+ }
123
+ const span = tracer?.startSpan(name, {
124
+ attributes: sanitizeOvokTelemetryAttributes(attributes)
125
+ });
126
+ if (!span) {
127
+ return operation();
128
+ }
129
+ return finishSpan(span);
130
+ };
131
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["INSTRUMENTATION_NAME","INSTRUMENTATION_VERSION","configuredOptions","openTelemetryApi","openTelemetryLogsApi","counters","Map","histograms","loadOpenTelemetryApi","undefined","require","loadOpenTelemetryLogsApi","allowedAttributeKeys","Set","sanitizeOvokTelemetryAttributes","attributes","safe","key","value","Object","entries","has","configureOvokTelemetry","options","clear","getTracer","tracerProvider","trace","getMeter","meterProvider","metrics","getLogger","loggerProvider","logs","startOvokSpan","name","startSpan","recordOvokMetric","meter","safeAttributes","instrument","get","createCounter","set","add","recordOvokDuration","durationMs","createHistogram","record","addOvokSpanEvent","span","getActiveSpan","addEvent","emitOvokLog","severityText","body","emit","withOvokSpan","operation","tracer","finishSpan","result","setStatus","code","error","normalized","Error","String","recordException","message","errorCode","end","startActiveSpan"],"sourceRoot":"../../../../../src","sources":["modules/helpers/utils/telemetry.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { useClient } from "@ovok/core";
4
- import { Image as ExpoImage } from "expo-image";
4
+ import { Image as ExpoImage, useImage } from "expo-image";
5
5
  import * as React from "react";
6
6
  import { StyleSheet, View } from "react-native";
7
7
  import { calculateDimension } from "../utils/calculate-dimension.js";
@@ -14,11 +14,17 @@ export const OptimizedImage = /*#__PURE__*/React.memo(({
14
14
  fit = "contain",
15
15
  style,
16
16
  onLoad,
17
+ onError,
18
+ placeholder,
19
+ fallback,
20
+ maxRetries = 3,
17
21
  containerStyle,
18
22
  aspectRatio: providedAspectRatio,
19
23
  ...rest
20
24
  }) => {
21
25
  const client = useClient();
26
+ const retryCount = React.useRef(0);
27
+ const [failedUri, setFailedUri] = React.useState(null);
22
28
  const [containerSize, setContainerSize] = React.useState({
23
29
  width: 0,
24
30
  height: 0
@@ -34,6 +40,20 @@ export const OptimizedImage = /*#__PURE__*/React.memo(({
34
40
  fit,
35
41
  baseUrl: client.getBaseUrl()
36
42
  }), [uri, calculatedWidth, calculatedHeight, fit, client]);
43
+ React.useEffect(() => {
44
+ retryCount.current = 0;
45
+ setFailedUri(null);
46
+ }, [optimizedUri]);
47
+ const image = useImage(optimizedUri, {
48
+ onError: (_error, retry) => {
49
+ if (retryCount.current >= maxRetries) {
50
+ setFailedUri(optimizedUri);
51
+ return;
52
+ }
53
+ retryCount.current += 1;
54
+ retry();
55
+ }
56
+ }, [optimizedUri]);
37
57
  const imageStyle = React.useMemo(() => [styles.base, {
38
58
  width: calculatedWidth,
39
59
  height: calculatedHeight,
@@ -56,14 +76,16 @@ export const OptimizedImage = /*#__PURE__*/React.memo(({
56
76
  style: [styles.container, containerStyle],
57
77
  onLayout: handleLayout,
58
78
  children: /*#__PURE__*/_jsx(ExpoImage, {
59
- source: {
79
+ source: failedUri === optimizedUri ? fallback ?? placeholder ?? null : image ?? {
60
80
  uri: optimizedUri
61
81
  },
62
82
  style: imageStyle,
83
+ placeholder: placeholder,
63
84
  onLoad: handleLoad,
85
+ onError: onError,
64
86
  ...rest,
65
87
  contentFit: fit
66
- })
88
+ }, `${optimizedUri}:${retryCount.current}`)
67
89
  });
68
90
  });
69
91
  const styles = StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["useClient","Image","ExpoImage","React","StyleSheet","View","calculateDimension","getOptimizedImageUrl","jsx","_jsx","OptimizedImage","memo","uri","width","height","fit","style","onLoad","containerStyle","aspectRatio","providedAspectRatio","rest","client","containerSize","setContainerSize","useState","calculatedAspectRatio","setCalculatedAspectRatio","useMemo","calculatedWidth","calculatedHeight","undefined","optimizedUri","baseUrl","getBaseUrl","imageStyle","styles","base","contentFit","handleLayout","useCallback","event","nativeEvent","layout","handleLoad","imageWidth","imageHeight","source","container","onLayout","children","create","overflow"],"sourceRoot":"../../../../../src","sources":["modules/image/components/optimized-image.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useClient","Image","ExpoImage","useImage","React","StyleSheet","View","calculateDimension","getOptimizedImageUrl","jsx","_jsx","OptimizedImage","memo","uri","width","height","fit","style","onLoad","onError","placeholder","fallback","maxRetries","containerStyle","aspectRatio","providedAspectRatio","rest","client","retryCount","useRef","failedUri","setFailedUri","useState","containerSize","setContainerSize","calculatedAspectRatio","setCalculatedAspectRatio","useMemo","calculatedWidth","calculatedHeight","undefined","optimizedUri","baseUrl","getBaseUrl","useEffect","current","image","_error","retry","imageStyle","styles","base","contentFit","handleLayout","useCallback","event","nativeEvent","layout","handleLoad","imageWidth","imageHeight","source","container","onLayout","children","create","overflow"],"sourceRoot":"../../../../../src","sources":["modules/image/components/optimized-image.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,10 +2,10 @@
2
2
 
3
3
  import * as React from "react";
4
4
  import { useTranslation } from "react-i18next";
5
- import { Text } from "react-native-paper";
5
+ import { Button, Text } from "react-native-paper";
6
6
  import { useAppTheme } from "../../../theme/index.js";
7
7
  import { useQuestionnaireForm } from "../../hooks/use-questionnaire-form.js";
8
- import { jsx as _jsx } from "react/jsx-runtime";
8
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  export const QuestionnaireContentError = /*#__PURE__*/React.memo(({
10
10
  style,
11
11
  children,
@@ -16,18 +16,27 @@ export const QuestionnaireContentError = /*#__PURE__*/React.memo(({
16
16
  t
17
17
  } = useTranslation();
18
18
  const {
19
- errorMessage
19
+ errorMessage,
20
+ submissionError,
21
+ retrySubmit
20
22
  } = useQuestionnaireForm();
21
- if (!errorMessage && !children) {
23
+ if (!errorMessage && !submissionError && !children) {
22
24
  return null;
23
25
  }
24
- return /*#__PURE__*/_jsx(Text, {
25
- variant: "bodySmall",
26
- ...props,
27
- style: [{
28
- color: theme.colors.error
29
- }, style],
30
- children: children || t(errorMessage || "")
26
+ return /*#__PURE__*/_jsxs(_Fragment, {
27
+ children: [/*#__PURE__*/_jsx(Text, {
28
+ variant: "bodySmall",
29
+ ...props,
30
+ style: [{
31
+ color: theme.colors.error
32
+ }, style],
33
+ children: children || t(errorMessage || submissionError || "")
34
+ }), submissionError ? /*#__PURE__*/_jsx(Button, {
35
+ mode: "text",
36
+ compact: true,
37
+ onPress: retrySubmit,
38
+ children: t("common.try-again")
39
+ }) : null]
31
40
  });
32
41
  });
33
42
  //# sourceMappingURL=questionnaire-content-error.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useTranslation","Text","useAppTheme","useQuestionnaireForm","jsx","_jsx","QuestionnaireContentError","memo","style","children","props","theme","t","errorMessage","variant","color","colors","error"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/content/questionnaire-content-error.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAA0BC,IAAI,QAAQ,oBAAoB;AAE1D,SAASC,WAAW,QAAQ,yBAAgB;AAC5C,SAASC,oBAAoB,QAAQ,uCAAoC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG1E,OAAO,MAAMC,yBAAyB,gBAAGP,KAAK,CAACQ,IAAI,CACjD,CAAmC;EACjCC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACqC,CAAC,KAAK;EAC9C,MAAMC,KAAK,GAAGT,WAAW,CAAC,CAAC;EAC3B,MAAM;IAAEU;EAAE,CAAC,GAAGZ,cAAc,CAAC,CAAC;EAE9B,MAAM;IAAEa;EAAa,CAAC,GAAGV,oBAAoB,CAAC,CAAC;EAE/C,IAAI,CAACU,YAAY,IAAI,CAACJ,QAAQ,EAAE;IAC9B,OAAO,IAAI;EACb;EAEA,oBACEJ,IAAA,CAACJ,IAAI;IACHa,OAAO,EAAC,WAAW;IAAA,GACfJ,KAAK;IACTF,KAAK,EAAE,CAAC;MAAEO,KAAK,EAAEJ,KAAK,CAACK,MAAM,CAACC;IAAM,CAAC,EAAET,KAAK,CAAE;IAAAC,QAAA,EAE7CA,QAAQ,IAAIG,CAAC,CAACC,YAAY,IAAI,EAAE;EAAC,CAC9B,CAAC;AAEX,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useTranslation","Button","Text","useAppTheme","useQuestionnaireForm","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","QuestionnaireContentError","memo","style","children","props","theme","t","errorMessage","submissionError","retrySubmit","variant","color","colors","error","mode","compact","onPress"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/content/questionnaire-content-error.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,MAAM,EAAmBC,IAAI,QAAQ,oBAAoB;AAElE,SAASC,WAAW,QAAQ,yBAAgB;AAC5C,SAASC,oBAAoB,QAAQ,uCAAoC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAG1E,OAAO,MAAMC,yBAAyB,gBAAGZ,KAAK,CAACa,IAAI,CACjD,CAAmC;EACjCC,KAAK;EACLC,QAAQ;EACR,GAAGC;AACqC,CAAC,KAAK;EAC9C,MAAMC,KAAK,GAAGb,WAAW,CAAC,CAAC;EAC3B,MAAM;IAAEc;EAAE,CAAC,GAAGjB,cAAc,CAAC,CAAC;EAE9B,MAAM;IAAEkB,YAAY;IAAEC,eAAe;IAAEC;EAAY,CAAC,GAAGhB,oBAAoB,CAAC,CAAC;EAE7E,IAAI,CAACc,YAAY,IAAI,CAACC,eAAe,IAAI,CAACL,QAAQ,EAAE;IAClD,OAAO,IAAI;EACb;EAEA,oBACEJ,KAAA,CAAAF,SAAA;IAAAM,QAAA,gBACER,IAAA,CAACJ,IAAI;MACHmB,OAAO,EAAC,WAAW;MAAA,GACfN,KAAK;MACTF,KAAK,EAAE,CAAC;QAAES,KAAK,EAAEN,KAAK,CAACO,MAAM,CAACC;MAAM,CAAC,EAAEX,KAAK,CAAE;MAAAC,QAAA,EAE7CA,QAAQ,IAAIG,CAAC,CAACC,YAAY,IAAIC,eAAe,IAAI,EAAE;IAAC,CACjD,CAAC,EACNA,eAAe,gBACdb,IAAA,CAACL,MAAM;MAACwB,IAAI,EAAC,MAAM;MAACC,OAAO;MAACC,OAAO,EAAEP,WAAY;MAAAN,QAAA,EAC9CG,CAAC,CAAC,kBAAkB;IAAC,CAChB,CAAC,GACP,IAAI;EAAA,CACR,CAAC;AAEP,CACF,CAAC","ignoreList":[]}
@@ -16,7 +16,8 @@ export const QuestionnaireNavigationNextButton = /*#__PURE__*/React.memo(({
16
16
  handleNext,
17
17
  isLastItem,
18
18
  isCurrentItemRequired,
19
- isCurrentItemAnswered
19
+ isCurrentItemAnswered,
20
+ isSubmitting
20
21
  } = useQuestionnaireNavigation();
21
22
  if (isLastItem) {
22
23
  return null;
@@ -25,7 +26,7 @@ export const QuestionnaireNavigationNextButton = /*#__PURE__*/React.memo(({
25
26
  return /*#__PURE__*/_jsx(Button, {
26
27
  mode: "contained",
27
28
  ...buttonProps,
28
- disabled: buttonProps.disabled || isNextDisabled,
29
+ disabled: buttonProps.disabled || isNextDisabled || isSubmitting,
29
30
  onPress: handleNext,
30
31
  children: children || t("common.next")
31
32
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useTranslation","Button","useQuestionnaireNavigation","jsx","_jsx","QuestionnaireNavigationNextButton","memo","children","buttonProps","t","handleNext","isLastItem","isCurrentItemRequired","isCurrentItemAnswered","isNextDisabled","mode","disabled","onPress"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,MAAM,QAAQ,oBAAoB;AAE3C,SAASC,0BAA0B,QAAQ,6CAA0C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGtF,OAAO,MAAMC,iCAAiC,gBAAGN,KAAK,CAACO,IAAI,CACzD,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAgD,CAAC,KAAK;EACpE,MAAM;IAAEC;EAAE,CAAC,GAAGT,cAAc,CAAC,CAAC;EAE9B,MAAM;IACJU,UAAU;IACVC,UAAU;IACVC,qBAAqB;IACrBC;EACF,CAAC,GAAGX,0BAA0B,CAAC,CAAC;EAEhC,IAAIS,UAAU,EAAE;IACd,OAAO,IAAI;EACb;EAEA,MAAMG,cAAc,GAAGF,qBAAqB,IAAI,CAACC,qBAAqB;EAEtE,oBACET,IAAA,CAACH,MAAM;IACLc,IAAI,EAAC,WAAW;IAAA,GACZP,WAAW;IACfQ,QAAQ,EAAER,WAAW,CAACQ,QAAQ,IAAIF,cAAe;IACjDG,OAAO,EAAEP,UAAW;IAAAH,QAAA,EAEnBA,QAAQ,IAAIE,CAAC,CAAC,aAAa;EAAC,CACvB,CAAC;AAEb,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useTranslation","Button","useQuestionnaireNavigation","jsx","_jsx","QuestionnaireNavigationNextButton","memo","children","buttonProps","t","handleNext","isLastItem","isCurrentItemRequired","isCurrentItemAnswered","isSubmitting","isNextDisabled","mode","disabled","onPress"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/navigation/questionnaire-navigation-next-button.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,MAAM,QAAQ,oBAAoB;AAE3C,SAASC,0BAA0B,QAAQ,6CAA0C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGtF,OAAO,MAAMC,iCAAiC,gBAAGN,KAAK,CAACO,IAAI,CACzD,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAgD,CAAC,KAAK;EACpE,MAAM;IAAEC;EAAE,CAAC,GAAGT,cAAc,CAAC,CAAC;EAE9B,MAAM;IACJU,UAAU;IACVC,UAAU;IACVC,qBAAqB;IACrBC,qBAAqB;IACrBC;EACF,CAAC,GAAGZ,0BAA0B,CAAC,CAAC;EAEhC,IAAIS,UAAU,EAAE;IACd,OAAO,IAAI;EACb;EAEA,MAAMI,cAAc,GAAGH,qBAAqB,IAAI,CAACC,qBAAqB;EAEtE,oBACET,IAAA,CAACH,MAAM;IACLe,IAAI,EAAC,WAAW;IAAA,GACZR,WAAW;IACfS,QAAQ,EAAET,WAAW,CAACS,QAAQ,IAAIF,cAAc,IAAID,YAAa;IACjEI,OAAO,EAAER,UAAW;IAAAH,QAAA,EAEnBA,QAAQ,IAAIE,CAAC,CAAC,aAAa;EAAC,CACvB,CAAC;AAEb,CACF,CAAC","ignoreList":[]}
@@ -15,7 +15,8 @@ export const QuestionnaireNavigationSubmitButton = /*#__PURE__*/React.memo(({
15
15
  } = useTranslation();
16
16
  const {
17
17
  paged,
18
- submitForm
18
+ submitForm,
19
+ isSubmitting
19
20
  } = useQuestionnaireForm();
20
21
  const {
21
22
  isLastItem
@@ -27,7 +28,8 @@ export const QuestionnaireNavigationSubmitButton = /*#__PURE__*/React.memo(({
27
28
  mode: "contained",
28
29
  ...buttonProps,
29
30
  onPress: submitForm,
30
- disabled: buttonProps.disabled,
31
+ disabled: buttonProps.disabled || isSubmitting,
32
+ loading: isSubmitting,
31
33
  children: children || t("common.submit")
32
34
  });
33
35
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useTranslation","Button","useQuestionnaireForm","useQuestionnaireNavigation","jsx","_jsx","QuestionnaireNavigationSubmitButton","memo","children","buttonProps","t","paged","submitForm","isLastItem","mode","onPress","disabled"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,MAAM,QAAQ,oBAAoB;AAE3C,SAASC,oBAAoB,QAAQ,uCAAoC;AACzE,SAASC,0BAA0B,QAAQ,6CAA0C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGtF,OAAO,MAAMC,mCAAmC,gBAAGP,KAAK,CAACQ,IAAI,CAC3D,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAgD,CAAC,KAAK;EACpE,MAAM;IAAEC;EAAE,CAAC,GAAGV,cAAc,CAAC,CAAC;EAE9B,MAAM;IAAEW,KAAK;IAAEC;EAAW,CAAC,GAAGV,oBAAoB,CAAC,CAAC;EACpD,MAAM;IAAEW;EAAW,CAAC,GAAGV,0BAA0B,CAAC,CAAC;EAEnD,IAAI,CAACU,UAAU,IAAIF,KAAK,EAAE;IACxB,OAAO,IAAI;EACb;EAEA,oBACEN,IAAA,CAACJ,MAAM;IACLa,IAAI,EAAC,WAAW;IAAA,GACZL,WAAW;IACfM,OAAO,EAAEH,UAAW;IACpBI,QAAQ,EAAEP,WAAW,CAACO,QAAS;IAAAR,QAAA,EAE9BA,QAAQ,IAAIE,CAAC,CAAC,eAAe;EAAC,CACzB,CAAC;AAEb,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useTranslation","Button","useQuestionnaireForm","useQuestionnaireNavigation","jsx","_jsx","QuestionnaireNavigationSubmitButton","memo","children","buttonProps","t","paged","submitForm","isSubmitting","isLastItem","mode","onPress","disabled","loading"],"sourceRoot":"../../../../../../src","sources":["modules/questionnaire-response-form/components/navigation/questionnaire-navigation-submit-button.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,MAAM,QAAQ,oBAAoB;AAE3C,SAASC,oBAAoB,QAAQ,uCAAoC;AACzE,SAASC,0BAA0B,QAAQ,6CAA0C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGtF,OAAO,MAAMC,mCAAmC,gBAAGP,KAAK,CAACQ,IAAI,CAC3D,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAgD,CAAC,KAAK;EACpE,MAAM;IAAEC;EAAE,CAAC,GAAGV,cAAc,CAAC,CAAC;EAE9B,MAAM;IAAEW,KAAK;IAAEC,UAAU;IAAEC;EAAa,CAAC,GAAGX,oBAAoB,CAAC,CAAC;EAClE,MAAM;IAAEY;EAAW,CAAC,GAAGX,0BAA0B,CAAC,CAAC;EAEnD,IAAI,CAACW,UAAU,IAAIH,KAAK,EAAE;IACxB,OAAO,IAAI;EACb;EAEA,oBACEN,IAAA,CAACJ,MAAM;IACLc,IAAI,EAAC,WAAW;IAAA,GACZN,WAAW;IACfO,OAAO,EAAEJ,UAAW;IACpBK,QAAQ,EAAER,WAAW,CAACQ,QAAQ,IAAIJ,YAAa;IAC/CK,OAAO,EAAEL,YAAa;IAAAL,QAAA,EAErBA,QAAQ,IAAIE,CAAC,CAAC,eAAe;EAAC,CACzB,CAAC;AAEb,CACF,CAAC","ignoreList":[]}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ /* eslint-disable max-lines */
4
+
3
5
  import { getReferenceString, useClient } from "@ovok/core";
4
6
  import { useFormik } from "formik";
5
7
  import React from "react";
@@ -24,26 +26,34 @@ export const QuestionnaireFormProvider = /*#__PURE__*/React.memo(({
24
26
  const [currentPageIndex, setCurrentPageIndex] = React.useState(0);
25
27
  const [currentItemIndex, setCurrentItemIndex] = React.useState(0);
26
28
  const [errorMessage, setErrorMessage] = React.useState(null);
29
+ const [submissionError, setSubmissionError] = React.useState(null);
30
+ const submissionInFlight = React.useRef(false);
31
+ const submissionIdentifier = React.useRef(null);
27
32
  const pages = React.useMemo(() => FormUtils.extractPagesFromQuestionnaire(questionnaire), [questionnaire]);
28
33
  const initialValues = React.useMemo(() => _initialValues || FormUtils.initializeDefaultValues(pages), [_initialValues, pages]);
29
34
  const handleSubmit = React.useCallback(async (values, formikHelpers) => {
30
- const validationResult = FormValidation.validateRequiredFields(pages, values);
31
- if (!validationResult.isValid) {
32
- const {
33
- pageIndex,
34
- itemIndex
35
- } = validationResult.firstUnansweredLocation;
36
- setCurrentPageIndex(pageIndex);
37
- setCurrentItemIndex(itemIndex);
38
- setErrorMessage("questionnaire-form.error.required-fields");
39
- return;
40
- }
41
- delete values.currentLinkId;
42
- if (onSubmit) {
43
- onSubmit(values, formikHelpers);
35
+ if (submissionInFlight.current) {
44
36
  return;
45
37
  }
38
+ submissionInFlight.current = true;
39
+ setSubmissionError(null);
46
40
  try {
41
+ const validationResult = FormValidation.validateRequiredFields(pages, values);
42
+ if (!validationResult.isValid) {
43
+ const {
44
+ pageIndex,
45
+ itemIndex
46
+ } = validationResult.firstUnansweredLocation;
47
+ setCurrentPageIndex(pageIndex);
48
+ setCurrentItemIndex(itemIndex);
49
+ setErrorMessage("questionnaire-form.error.required-fields");
50
+ return;
51
+ }
52
+ delete values.currentLinkId;
53
+ if (onSubmit) {
54
+ await onSubmit(values, formikHelpers);
55
+ return;
56
+ }
47
57
  const activeProfile = await client.getProfileAsync();
48
58
  if (!activeProfile) {
49
59
  throw new Error("questionnaire-form.error.profile-not-found");
@@ -52,12 +62,21 @@ export const QuestionnaireFormProvider = /*#__PURE__*/React.memo(({
52
62
  response.subject = {
53
63
  reference: getReferenceString(activeProfile)
54
64
  };
55
- const createdResponse = await client.createResource(response);
65
+ submissionIdentifier.current ??= `${questionnaire.id ?? "unknown"}-${Date.now()}-${Math.random().toString(36).slice(2)}`;
66
+ const identifierValue = submissionIdentifier.current;
67
+ const identifierSystem = "https://sdk.ovok.com/questionnaire-response";
68
+ response.identifier = {
69
+ system: identifierSystem,
70
+ value: identifierValue
71
+ };
72
+ const createdResponse = await client.createResourceIfNoneExist(response, `identifier=${identifierSystem}|${identifierValue}`);
56
73
  onSuccess?.(createdResponse);
57
74
  } catch (error) {
58
75
  const typedError = error;
59
76
  onError?.(error);
60
- setErrorMessage(typedError.message);
77
+ setSubmissionError(typedError.message || "questionnaire-form.error.submit-failed");
78
+ } finally {
79
+ submissionInFlight.current = false;
61
80
  }
62
81
  }, [onSubmit, onSuccess, onError, pages, questionnaire, client]);
63
82
  const allItems = React.useMemo(() => pages.flatMap(page => page.item ? page.item : []), [pages]);
@@ -91,6 +110,10 @@ export const QuestionnaireFormProvider = /*#__PURE__*/React.memo(({
91
110
  values,
92
111
  setFieldValue
93
112
  } = formik;
113
+ const retrySubmit = React.useCallback(() => {
114
+ setSubmissionError(null);
115
+ void formik.submitForm();
116
+ }, [formik]);
94
117
  const currentPage = React.useMemo(() => pages[currentPageIndex], [pages, currentPageIndex]);
95
118
  const enabledItems = React.useMemo(() => currentPage ? ConditionUtils.getEnabledItemsForPage(currentPage, values) : [], [currentPage, values]);
96
119
  useInitialSelectedValues(pages, values, setFieldValue);
@@ -108,6 +131,8 @@ export const QuestionnaireFormProvider = /*#__PURE__*/React.memo(({
108
131
  currentPageIndex,
109
132
  currentItemIndex,
110
133
  errorMessage,
134
+ submissionError,
135
+ retrySubmit,
111
136
  pages,
112
137
  allItems,
113
138
  setCurrentItemIndex,
@@ -115,7 +140,7 @@ export const QuestionnaireFormProvider = /*#__PURE__*/React.memo(({
115
140
  setErrorMessage,
116
141
  paged,
117
142
  ...formik
118
- }), [questionnaire, currentItem, currentPage, currentPageIndex, currentItemIndex, errorMessage, pages, allItems, setCurrentItemIndex, setCurrentPageIndex, setErrorMessage, paged, formik]);
143
+ }), [questionnaire, currentItem, currentPage, currentPageIndex, currentItemIndex, errorMessage, submissionError, retrySubmit, pages, allItems, setCurrentItemIndex, setCurrentPageIndex, setErrorMessage, paged, formik]);
119
144
  return /*#__PURE__*/_jsx(QuestionnaireFormContext.Provider, {
120
145
  value: contextValue,
121
146
  children: /*#__PURE__*/_jsx(QuestionnaireNavigationProvider, {
@@ -1 +1 @@
1
- {"version":3,"names":["getReferenceString","useClient","useFormik","React","QuestionnaireFormContext","useInitialSelectedValues","ConditionUtils","FormUtils","FormValidation","QuestionnaireSubmitUtils","QuestionnaireNavigationProvider","jsx","_jsx","QuestionnaireFormProvider","memo","children","questionnaire","initialValues","_initialValues","onSubmit","onSuccess","onError","paged","client","currentPageIndex","setCurrentPageIndex","useState","currentItemIndex","setCurrentItemIndex","errorMessage","setErrorMessage","pages","useMemo","extractPagesFromQuestionnaire","initializeDefaultValues","handleSubmit","useCallback","values","formikHelpers","validationResult","validateRequiredFields","isValid","pageIndex","itemIndex","firstUnansweredLocation","currentLinkId","activeProfile","getProfileAsync","Error","response","createQuestionnaireResponse","subject","reference","createdResponse","createResource","error","typedError","message","allItems","flatMap","page","item","formik","validateOnBlur","enableReinitialize","validate","cleanedValues","hasChanges","forEach","linkId","enableWhen","length","undefined","isItemEnabled","setValues","Object","some","value","setFieldError","setFieldValue","currentPage","enabledItems","getEnabledItemsForPage","currentItem","allEnabledItems","useEffect","contextValue","Provider"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/components/questionnaire-form-provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getReferenceString","useClient","useFormik","React","QuestionnaireFormContext","useInitialSelectedValues","ConditionUtils","FormUtils","FormValidation","QuestionnaireSubmitUtils","QuestionnaireNavigationProvider","jsx","_jsx","QuestionnaireFormProvider","memo","children","questionnaire","initialValues","_initialValues","onSubmit","onSuccess","onError","paged","client","currentPageIndex","setCurrentPageIndex","useState","currentItemIndex","setCurrentItemIndex","errorMessage","setErrorMessage","submissionError","setSubmissionError","submissionInFlight","useRef","submissionIdentifier","pages","useMemo","extractPagesFromQuestionnaire","initializeDefaultValues","handleSubmit","useCallback","values","formikHelpers","current","validationResult","validateRequiredFields","isValid","pageIndex","itemIndex","firstUnansweredLocation","currentLinkId","activeProfile","getProfileAsync","Error","response","createQuestionnaireResponse","subject","reference","id","Date","now","Math","random","toString","slice","identifierValue","identifierSystem","identifier","system","value","createdResponse","createResourceIfNoneExist","error","typedError","message","allItems","flatMap","page","item","formik","validateOnBlur","enableReinitialize","validate","cleanedValues","hasChanges","forEach","linkId","enableWhen","length","undefined","isItemEnabled","setValues","Object","some","setFieldError","setFieldValue","retrySubmit","submitForm","currentPage","enabledItems","getEnabledItemsForPage","currentItem","allEnabledItems","useEffect","contextValue","Provider"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/components/questionnaire-form-provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -38,9 +38,10 @@ export const QuestionnaireNavigationProvider = ({
38
38
  });
39
39
  const contextValue = React.useMemo(() => ({
40
40
  ...navigationState,
41
+ isSubmitting: formik.isSubmitting,
41
42
  handleNext,
42
43
  handlePrevious
43
- }), [navigationState, handleNext, handlePrevious]);
44
+ }), [navigationState, formik.isSubmitting, handleNext, handlePrevious]);
44
45
  return /*#__PURE__*/_jsx(QuestionnaireNavigationContext.Provider, {
45
46
  value: contextValue,
46
47
  children: children
@@ -1 +1 @@
1
- {"version":3,"names":["React","QuestionnaireNavigationContext","useNavigationHandlers","useQuestionnaireNavigationState","jsx","_jsx","QuestionnaireNavigationProvider","children","currentItem","currentPage","enabledItems","allEnabledItems","pages","values","currentItemIndex","currentPageIndex","setCurrentItemIndex","setCurrentPageIndex","setErrorMessage","formik","navigationState","handleNext","handlePrevious","contextValue","useMemo","Provider","value"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/components/questionnaire-navigation-provider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,8BAA8B,QAAQ,iDAA8C;AAC7F,SAASC,qBAAqB,QAAQ,qCAAkC;AACxE,SAASC,+BAA+B,QAAQ,gDAA6C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9F,OAAO,MAAMC,+BAEZ,GAAGA,CAAC;EACHC,QAAQ;EACRC,WAAW;EACXC,WAAW;EACXC,YAAY;EACZC,eAAe;EACfC,KAAK;EACLC,MAAM;EACNC,gBAAgB;EAChBC,gBAAgB;EAChBC,mBAAmB;EACnBC,mBAAmB;EACnBC,eAAe;EACfC;AACF,CAAC,KAAK;EACJ,MAAMC,eAAe,GAAGjB,+BAA+B,CACrDK,WAAW,EACXO,gBAAgB,EAChBD,gBAAgB,EAChBJ,YAAY,EACZE,KAAK,EACLC,MAAM,EACNF,eACF,CAAC;EAED,MAAM;IAAEU,UAAU;IAAEC;EAAe,CAAC,GAAGpB,qBAAqB,CAAC;IAC3DM,WAAW;IACXC,WAAW;IACXC,YAAY;IACZS,MAAM;IACNL,gBAAgB;IAChBC,gBAAgB;IAChBH,KAAK;IACLI,mBAAmB;IACnBC,mBAAmB;IACnBC;EACF,CAAC,CAAC;EAEF,MAAMK,YAAY,GAAGvB,KAAK,CAACwB,OAAO,CAChC,OAAO;IACL,GAAGJ,eAAe;IAClBC,UAAU;IACVC;EACF,CAAC,CAAC,EACF,CAACF,eAAe,EAAEC,UAAU,EAAEC,cAAc,CAC9C,CAAC;EAED,oBACEjB,IAAA,CAACJ,8BAA8B,CAACwB,QAAQ;IAACC,KAAK,EAAEH,YAAa;IAAAhB,QAAA,EAC1DA;EAAQ,CAC8B,CAAC;AAE9C,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","QuestionnaireNavigationContext","useNavigationHandlers","useQuestionnaireNavigationState","jsx","_jsx","QuestionnaireNavigationProvider","children","currentItem","currentPage","enabledItems","allEnabledItems","pages","values","currentItemIndex","currentPageIndex","setCurrentItemIndex","setCurrentPageIndex","setErrorMessage","formik","navigationState","handleNext","handlePrevious","contextValue","useMemo","isSubmitting","Provider","value"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/components/questionnaire-navigation-provider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,8BAA8B,QAAQ,iDAA8C;AAC7F,SAASC,qBAAqB,QAAQ,qCAAkC;AACxE,SAASC,+BAA+B,QAAQ,gDAA6C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9F,OAAO,MAAMC,+BAEZ,GAAGA,CAAC;EACHC,QAAQ;EACRC,WAAW;EACXC,WAAW;EACXC,YAAY;EACZC,eAAe;EACfC,KAAK;EACLC,MAAM;EACNC,gBAAgB;EAChBC,gBAAgB;EAChBC,mBAAmB;EACnBC,mBAAmB;EACnBC,eAAe;EACfC;AACF,CAAC,KAAK;EACJ,MAAMC,eAAe,GAAGjB,+BAA+B,CACrDK,WAAW,EACXO,gBAAgB,EAChBD,gBAAgB,EAChBJ,YAAY,EACZE,KAAK,EACLC,MAAM,EACNF,eACF,CAAC;EAED,MAAM;IAAEU,UAAU;IAAEC;EAAe,CAAC,GAAGpB,qBAAqB,CAAC;IAC3DM,WAAW;IACXC,WAAW;IACXC,YAAY;IACZS,MAAM;IACNL,gBAAgB;IAChBC,gBAAgB;IAChBH,KAAK;IACLI,mBAAmB;IACnBC,mBAAmB;IACnBC;EACF,CAAC,CAAC;EAEF,MAAMK,YAAY,GAAGvB,KAAK,CAACwB,OAAO,CAChC,OAAO;IACL,GAAGJ,eAAe;IAClBK,YAAY,EAAEN,MAAM,CAACM,YAAY;IACjCJ,UAAU;IACVC;EACF,CAAC,CAAC,EACF,CAACF,eAAe,EAAED,MAAM,CAACM,YAAY,EAAEJ,UAAU,EAAEC,cAAc,CACnE,CAAC;EAED,oBACEjB,IAAA,CAACJ,8BAA8B,CAACyB,QAAQ;IAACC,KAAK,EAAEJ,YAAa;IAAAhB,QAAA,EAC1DA;EAAQ,CAC8B,CAAC;AAE9C,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","QuestionnaireNavigationContext","createContext","undefined"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/contexts/questionnaire-navigation-context.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAazB,OAAO,MAAMC,8BAA8B,gBAAGD,KAAK,CAACE,aAAa,CAE/DC,SAAS,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","QuestionnaireNavigationContext","createContext","undefined"],"sourceRoot":"../../../../../src","sources":["modules/questionnaire-response-form/contexts/questionnaire-navigation-context.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAczB,OAAO,MAAMC,8BAA8B,gBAAGD,KAAK,CAACE,aAAa,CAE/DC,SAAS,CAAC","ignoreList":[]}
@@ -11,7 +11,8 @@ export const TaskIcon = ({
11
11
  }) => {
12
12
  const theme = useAppTheme();
13
13
  const iconXML = React.useMemo(() => {
14
- return measurementIconSvg[props.measurementTypeKey](props.color || theme.colors.primary);
14
+ const iconRenderer = measurementIconSvg[props.measurementTypeKey];
15
+ return iconRenderer?.(props.color || theme.colors.primary) ?? null;
15
16
  }, [props.measurementTypeKey, props.color, theme.colors.primary]);
16
17
  if (!iconXML) {
17
18
  return null;
@@ -1 +1 @@
1
- {"version":3,"names":["React","SvgXml","useAppTheme","measurementIconSvg","jsx","_jsx","TaskIcon","size","props","theme","iconXML","useMemo","measurementTypeKey","color","colors","primary","testID","xml","width","height"],"sourceRoot":"../../../../../src","sources":["modules/tile/components/task-icon.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,SAASC,WAAW,QAAQ,sBAAa;AACzC,SAASC,kBAAkB,QAAQ,sCAAmC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGvE,OAAO,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAE,GAAGC;AAAqB,CAAC,KAAK;EAClE,MAAMC,KAAK,GAAGP,WAAW,CAAC,CAAC;EAE3B,MAAMQ,OAAO,GAAGV,KAAK,CAACW,OAAO,CAAC,MAAM;IAClC,OAAOR,kBAAkB,CAACK,KAAK,CAACI,kBAAkB,CAAC,CACjDJ,KAAK,CAACK,KAAK,IAAIJ,KAAK,CAACK,MAAM,CAACC,OAC9B,CAAC;EACH,CAAC,EAAE,CAACP,KAAK,CAACI,kBAAkB,EAAEJ,KAAK,CAACK,KAAK,EAAEJ,KAAK,CAACK,MAAM,CAACC,OAAO,CAAC,CAAC;EAEjE,IAAI,CAACL,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,oBACEL,IAAA,CAACJ,MAAM;IAACe,MAAM,EAAER,KAAK,CAACQ,MAAO;IAACC,GAAG,EAAEP,OAAQ;IAACQ,KAAK,EAAEX,IAAK;IAACY,MAAM,EAAEZ;EAAK,CAAE,CAAC;AAE7E,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","SvgXml","useAppTheme","measurementIconSvg","jsx","_jsx","TaskIcon","size","props","theme","iconXML","useMemo","iconRenderer","measurementTypeKey","color","colors","primary","testID","xml","width","height"],"sourceRoot":"../../../../../src","sources":["modules/tile/components/task-icon.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,SAASC,WAAW,QAAQ,sBAAa;AACzC,SAASC,kBAAkB,QAAQ,sCAAmC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGvE,OAAO,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAE,GAAGC;AAAqB,CAAC,KAAK;EAClE,MAAMC,KAAK,GAAGP,WAAW,CAAC,CAAC;EAE3B,MAAMQ,OAAO,GAAGV,KAAK,CAACW,OAAO,CAAC,MAAM;IAClC,MAAMC,YAAY,GAChBT,kBAAkB,CAChBK,KAAK,CAACK,kBAAkB,CACzB;IAEH,OAAOD,YAAY,GAAGJ,KAAK,CAACM,KAAK,IAAIL,KAAK,CAACM,MAAM,CAACC,OAAO,CAAC,IAAI,IAAI;EACpE,CAAC,EAAE,CAACR,KAAK,CAACK,kBAAkB,EAAEL,KAAK,CAACM,KAAK,EAAEL,KAAK,CAACM,MAAM,CAACC,OAAO,CAAC,CAAC;EAEjE,IAAI,CAACN,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,oBACEL,IAAA,CAACJ,MAAM;IAACgB,MAAM,EAAET,KAAK,CAACS,MAAO;IAACC,GAAG,EAAER,OAAQ;IAACS,KAAK,EAAEZ,IAAK;IAACa,MAAM,EAAEb;EAAK,CAAE,CAAC;AAE7E,CAAC","ignoreList":[]}