@ovok/native 1.11.1 → 1.12.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 (349) hide show
  1. package/lib/commonjs/modules/bt-device/constants/device-model.js +82 -0
  2. package/lib/commonjs/modules/bt-device/constants/device-model.js.map +1 -0
  3. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +21 -1
  4. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  5. package/lib/commonjs/modules/bt-device/hooks/use-supported-devices.js +16 -0
  6. package/lib/commonjs/modules/bt-device/hooks/use-supported-devices.js.map +1 -0
  7. package/lib/commonjs/modules/bt-device/index.js +117 -0
  8. package/lib/commonjs/modules/bt-device/index.js.map +1 -1
  9. package/lib/commonjs/modules/bt-device/types/device-kind.js +2 -0
  10. package/lib/commonjs/modules/bt-device/types/device-kind.js.map +1 -0
  11. package/lib/commonjs/modules/bt-device/utils/device-query.js +57 -0
  12. package/lib/commonjs/modules/bt-device/utils/device-query.js.map +1 -0
  13. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +3 -1
  14. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/constants/blood-pressure-translated-exception-map.js +2 -1
  16. package/lib/commonjs/modules/bt-management/constants/blood-pressure-translated-exception-map.js.map +1 -1
  17. package/lib/commonjs/modules/bt-management/constants/measurement-feedback.js +25 -0
  18. package/lib/commonjs/modules/bt-management/constants/measurement-feedback.js.map +1 -0
  19. package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js +8 -7
  20. package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/hooks/use-bt-devices.js +41 -0
  22. package/lib/commonjs/modules/bt-management/hooks/use-bt-devices.js.map +1 -0
  23. package/lib/commonjs/modules/bt-management/hooks/use-open-series.js +18 -0
  24. package/lib/commonjs/modules/bt-management/hooks/use-open-series.js.map +1 -0
  25. package/lib/commonjs/modules/bt-management/hooks/use-queued-results.js +15 -0
  26. package/lib/commonjs/modules/bt-management/hooks/use-queued-results.js.map +1 -0
  27. package/lib/commonjs/modules/bt-management/index.js +60 -0
  28. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  29. package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js +9 -7
  30. package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
  31. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +45 -3
  32. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  33. package/lib/commonjs/modules/bt-management/services/bt-manager.js +30 -3
  34. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  35. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js +2 -1
  36. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
  37. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +13 -12
  38. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  39. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +3 -1
  40. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
  41. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +4 -3
  42. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  43. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +10 -1
  44. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  45. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +6 -0
  46. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  47. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js +4 -3
  48. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
  49. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js +2 -1
  50. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
  51. package/lib/commonjs/modules/bt-management/services/series-recorder.js +176 -0
  52. package/lib/commonjs/modules/bt-management/services/series-recorder.js.map +1 -0
  53. package/lib/commonjs/modules/bt-management/services/series-slots.js +93 -0
  54. package/lib/commonjs/modules/bt-management/services/series-slots.js.map +1 -0
  55. package/lib/commonjs/modules/bt-management/types/measurement-series.js +6 -0
  56. package/lib/commonjs/modules/bt-management/types/measurement-series.js.map +1 -0
  57. package/lib/commonjs/modules/data-sync/constants.js +14 -1
  58. package/lib/commonjs/modules/data-sync/constants.js.map +1 -1
  59. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +6 -5
  60. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  61. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +10 -7
  62. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  63. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js +10 -4
  64. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  65. package/lib/commonjs/modules/data-sync/types/health-data.js +5 -1
  66. package/lib/commonjs/modules/data-sync/types/health-data.js.map +1 -1
  67. package/lib/commonjs/modules/data-sync/types/health-sync-keys.js.map +1 -1
  68. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +19 -5
  69. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  70. package/lib/commonjs/modules/data-sync/utils/fhir-systems.js +4 -1
  71. package/lib/commonjs/modules/data-sync/utils/fhir-systems.js.map +1 -1
  72. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +10 -5
  73. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  74. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +18 -12
  75. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  76. package/lib/commonjs/modules/data-sync/utils/get-latest-valid-start-date.js +6 -1
  77. package/lib/commonjs/modules/data-sync/utils/get-latest-valid-start-date.js.map +1 -1
  78. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +4 -0
  79. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  80. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +3 -2
  81. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  82. package/lib/commonjs/modules/data-sync/utils/health-connect-series.js +101 -0
  83. package/lib/commonjs/modules/data-sync/utils/health-connect-series.js.map +1 -0
  84. package/lib/commonjs/modules/data-sync/utils/healthkit-series.js +44 -0
  85. package/lib/commonjs/modules/data-sync/utils/healthkit-series.js.map +1 -0
  86. package/lib/commonjs/modules/data-sync/utils/hourly-series.js +57 -0
  87. package/lib/commonjs/modules/data-sync/utils/hourly-series.js.map +1 -0
  88. package/lib/commonjs/modules/data-sync/utils/replaces-saved-observation.js +13 -0
  89. package/lib/commonjs/modules/data-sync/utils/replaces-saved-observation.js.map +1 -0
  90. package/lib/module/modules/bt-device/constants/device-model.js +74 -0
  91. package/lib/module/modules/bt-device/constants/device-model.js.map +1 -0
  92. package/lib/module/modules/bt-device/constants/supported-devices.js +21 -1
  93. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  94. package/lib/module/modules/bt-device/hooks/use-supported-devices.js +12 -0
  95. package/lib/module/modules/bt-device/hooks/use-supported-devices.js.map +1 -0
  96. package/lib/module/modules/bt-device/index.js +4 -0
  97. package/lib/module/modules/bt-device/index.js.map +1 -1
  98. package/lib/module/modules/bt-device/types/device-kind.js +2 -0
  99. package/lib/module/modules/bt-device/types/device-kind.js.map +1 -0
  100. package/lib/module/modules/bt-device/utils/device-query.js +50 -0
  101. package/lib/module/modules/bt-device/utils/device-query.js.map +1 -0
  102. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +3 -1
  103. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  104. package/lib/module/modules/bt-management/constants/blood-pressure-translated-exception-map.js +2 -1
  105. package/lib/module/modules/bt-management/constants/blood-pressure-translated-exception-map.js.map +1 -1
  106. package/lib/module/modules/bt-management/constants/measurement-feedback.js +22 -0
  107. package/lib/module/modules/bt-management/constants/measurement-feedback.js.map +1 -0
  108. package/lib/module/modules/bt-management/hooks/use-bt-device.js +9 -8
  109. package/lib/module/modules/bt-management/hooks/use-bt-device.js.map +1 -1
  110. package/lib/module/modules/bt-management/hooks/use-bt-devices.js +37 -0
  111. package/lib/module/modules/bt-management/hooks/use-bt-devices.js.map +1 -0
  112. package/lib/module/modules/bt-management/hooks/use-open-series.js +13 -0
  113. package/lib/module/modules/bt-management/hooks/use-open-series.js.map +1 -0
  114. package/lib/module/modules/bt-management/hooks/use-queued-results.js +10 -0
  115. package/lib/module/modules/bt-management/hooks/use-queued-results.js.map +1 -0
  116. package/lib/module/modules/bt-management/index.js +5 -0
  117. package/lib/module/modules/bt-management/index.js.map +1 -1
  118. package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js +9 -7
  119. package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
  120. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +46 -3
  121. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  122. package/lib/module/modules/bt-management/services/bt-manager.js +30 -3
  123. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  124. package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js +2 -1
  125. package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
  126. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +13 -12
  127. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  128. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +3 -1
  129. package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
  130. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +4 -3
  131. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  132. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +10 -1
  133. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  134. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +6 -0
  135. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  136. package/lib/module/modules/bt-management/services/devices/f4/f4.device.js +4 -3
  137. package/lib/module/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
  138. package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js +2 -1
  139. package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
  140. package/lib/module/modules/bt-management/services/series-recorder.js +173 -0
  141. package/lib/module/modules/bt-management/services/series-recorder.js.map +1 -0
  142. package/lib/module/modules/bt-management/services/series-slots.js +85 -0
  143. package/lib/module/modules/bt-management/services/series-slots.js.map +1 -0
  144. package/lib/module/modules/bt-management/types/measurement-series.js +4 -0
  145. package/lib/module/modules/bt-management/types/measurement-series.js.map +1 -0
  146. package/lib/module/modules/data-sync/constants.js +14 -1
  147. package/lib/module/modules/data-sync/constants.js.map +1 -1
  148. package/lib/module/modules/data-sync/services/base-health-sync-service.js +6 -5
  149. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  150. package/lib/module/modules/data-sync/services/managers/data-processor.js +11 -8
  151. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  152. package/lib/module/modules/data-sync/services/managers/storage-manager.js +10 -4
  153. package/lib/module/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  154. package/lib/module/modules/data-sync/types/health-data.js +6 -1
  155. package/lib/module/modules/data-sync/types/health-data.js.map +1 -1
  156. package/lib/module/modules/data-sync/types/health-sync-keys.js.map +1 -1
  157. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +19 -6
  158. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  159. package/lib/module/modules/data-sync/utils/fhir-systems.js +4 -1
  160. package/lib/module/modules/data-sync/utils/fhir-systems.js.map +1 -1
  161. package/lib/module/modules/data-sync/utils/generate-observation-entry.js +10 -5
  162. package/lib/module/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  163. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +16 -11
  164. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  165. package/lib/module/modules/data-sync/utils/get-latest-valid-start-date.js +7 -2
  166. package/lib/module/modules/data-sync/utils/get-latest-valid-start-date.js.map +1 -1
  167. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +4 -0
  168. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  169. package/lib/module/modules/data-sync/utils/get-samples-from-health.js +3 -2
  170. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  171. package/lib/module/modules/data-sync/utils/health-connect-series.js +97 -0
  172. package/lib/module/modules/data-sync/utils/health-connect-series.js.map +1 -0
  173. package/lib/module/modules/data-sync/utils/healthkit-series.js +40 -0
  174. package/lib/module/modules/data-sync/utils/healthkit-series.js.map +1 -0
  175. package/lib/module/modules/data-sync/utils/hourly-series.js +52 -0
  176. package/lib/module/modules/data-sync/utils/hourly-series.js.map +1 -0
  177. package/lib/module/modules/data-sync/utils/replaces-saved-observation.js +8 -0
  178. package/lib/module/modules/data-sync/utils/replaces-saved-observation.js.map +1 -0
  179. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-model.d.ts +32 -0
  180. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-model.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +18 -1
  182. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/src/modules/bt-device/hooks/use-supported-devices.d.ts +9 -0
  184. package/lib/typescript/commonjs/src/modules/bt-device/hooks/use-supported-devices.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts +5 -0
  186. package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/src/modules/bt-device/types/device-kind.d.ts +16 -0
  188. package/lib/typescript/commonjs/src/modules/bt-device/types/device-kind.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/src/modules/bt-device/utils/device-query.d.ts +49 -0
  190. package/lib/typescript/commonjs/src/modules/bt-device/utils/device-query.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/src/modules/bt-management/constants/blood-pressure-translated-exception-map.d.ts.map +1 -1
  193. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-feedback.d.ts +21 -0
  194. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-feedback.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-device.d.ts +5 -4
  196. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-device.d.ts.map +1 -1
  197. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-devices.d.ts +24 -0
  198. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-devices.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-open-series.d.ts +12 -0
  200. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-open-series.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-queued-results.d.ts +10 -0
  202. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-queued-results.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +5 -0
  204. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  205. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +7 -1
  206. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
  207. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +17 -3
  208. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  209. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +17 -0
  210. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  211. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  213. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
  214. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +4 -1
  216. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  218. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
  219. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
  220. package/lib/typescript/commonjs/src/modules/bt-management/services/series-recorder.d.ts +56 -0
  221. package/lib/typescript/commonjs/src/modules/bt-management/services/series-recorder.d.ts.map +1 -0
  222. package/lib/typescript/commonjs/src/modules/bt-management/services/series-slots.d.ts +36 -0
  223. package/lib/typescript/commonjs/src/modules/bt-management/services/series-slots.d.ts.map +1 -0
  224. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +7 -0
  225. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-series.d.ts +26 -0
  227. package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-series.d.ts.map +1 -0
  228. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts +6 -0
  229. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  230. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts +6 -1
  231. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
  232. package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts +11 -1
  233. package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +3 -2
  236. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -1
  238. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/src/modules/data-sync/types/health-data.d.ts +15 -2
  240. package/lib/typescript/commonjs/src/modules/data-sync/types/health-data.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts +3 -1
  242. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +5 -1
  244. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/src/modules/data-sync/utils/fhir-systems.d.ts +3 -1
  246. package/lib/typescript/commonjs/src/modules/data-sync/utils/fhir-systems.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts +3 -1
  248. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -6
  250. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts.map +1 -1
  252. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +2 -2
  253. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  254. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -2
  255. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  256. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-connect-series.d.ts +9 -0
  257. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-connect-series.d.ts.map +1 -0
  258. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-series.d.ts +12 -0
  259. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-series.d.ts.map +1 -0
  260. package/lib/typescript/commonjs/src/modules/data-sync/utils/hourly-series.d.ts +22 -0
  261. package/lib/typescript/commonjs/src/modules/data-sync/utils/hourly-series.d.ts.map +1 -0
  262. package/lib/typescript/commonjs/src/modules/data-sync/utils/replaces-saved-observation.d.ts +7 -0
  263. package/lib/typescript/commonjs/src/modules/data-sync/utils/replaces-saved-observation.d.ts.map +1 -0
  264. package/lib/typescript/module/src/modules/bt-device/constants/device-model.d.ts +32 -0
  265. package/lib/typescript/module/src/modules/bt-device/constants/device-model.d.ts.map +1 -0
  266. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +18 -1
  267. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  268. package/lib/typescript/module/src/modules/bt-device/hooks/use-supported-devices.d.ts +9 -0
  269. package/lib/typescript/module/src/modules/bt-device/hooks/use-supported-devices.d.ts.map +1 -0
  270. package/lib/typescript/module/src/modules/bt-device/index.d.ts +5 -0
  271. package/lib/typescript/module/src/modules/bt-device/index.d.ts.map +1 -1
  272. package/lib/typescript/module/src/modules/bt-device/types/device-kind.d.ts +16 -0
  273. package/lib/typescript/module/src/modules/bt-device/types/device-kind.d.ts.map +1 -0
  274. package/lib/typescript/module/src/modules/bt-device/utils/device-query.d.ts +49 -0
  275. package/lib/typescript/module/src/modules/bt-device/utils/device-query.d.ts.map +1 -0
  276. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  277. package/lib/typescript/module/src/modules/bt-management/constants/blood-pressure-translated-exception-map.d.ts.map +1 -1
  278. package/lib/typescript/module/src/modules/bt-management/constants/measurement-feedback.d.ts +21 -0
  279. package/lib/typescript/module/src/modules/bt-management/constants/measurement-feedback.d.ts.map +1 -0
  280. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-device.d.ts +5 -4
  281. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-device.d.ts.map +1 -1
  282. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-devices.d.ts +24 -0
  283. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-devices.d.ts.map +1 -0
  284. package/lib/typescript/module/src/modules/bt-management/hooks/use-open-series.d.ts +12 -0
  285. package/lib/typescript/module/src/modules/bt-management/hooks/use-open-series.d.ts.map +1 -0
  286. package/lib/typescript/module/src/modules/bt-management/hooks/use-queued-results.d.ts +10 -0
  287. package/lib/typescript/module/src/modules/bt-management/hooks/use-queued-results.d.ts.map +1 -0
  288. package/lib/typescript/module/src/modules/bt-management/index.d.ts +5 -0
  289. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  290. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +7 -1
  291. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
  292. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +17 -3
  293. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  294. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +17 -0
  295. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  296. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
  297. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  298. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
  299. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  300. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +4 -1
  301. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  302. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  303. package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
  304. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
  305. package/lib/typescript/module/src/modules/bt-management/services/series-recorder.d.ts +56 -0
  306. package/lib/typescript/module/src/modules/bt-management/services/series-recorder.d.ts.map +1 -0
  307. package/lib/typescript/module/src/modules/bt-management/services/series-slots.d.ts +36 -0
  308. package/lib/typescript/module/src/modules/bt-management/services/series-slots.d.ts.map +1 -0
  309. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +7 -0
  310. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  311. package/lib/typescript/module/src/modules/bt-management/types/measurement-series.d.ts +26 -0
  312. package/lib/typescript/module/src/modules/bt-management/types/measurement-series.d.ts.map +1 -0
  313. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts +6 -0
  314. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  315. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts +6 -1
  316. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
  317. package/lib/typescript/module/src/modules/data-sync/constants.d.ts +11 -1
  318. package/lib/typescript/module/src/modules/data-sync/constants.d.ts.map +1 -1
  319. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  320. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +3 -2
  321. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  322. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -1
  323. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  324. package/lib/typescript/module/src/modules/data-sync/types/health-data.d.ts +15 -2
  325. package/lib/typescript/module/src/modules/data-sync/types/health-data.d.ts.map +1 -1
  326. package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts +3 -1
  327. package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
  328. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +5 -1
  329. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  330. package/lib/typescript/module/src/modules/data-sync/utils/fhir-systems.d.ts +3 -1
  331. package/lib/typescript/module/src/modules/data-sync/utils/fhir-systems.d.ts.map +1 -1
  332. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts +3 -1
  333. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  334. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -6
  335. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  336. package/lib/typescript/module/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts.map +1 -1
  337. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +2 -2
  338. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  339. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -2
  340. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  341. package/lib/typescript/module/src/modules/data-sync/utils/health-connect-series.d.ts +9 -0
  342. package/lib/typescript/module/src/modules/data-sync/utils/health-connect-series.d.ts.map +1 -0
  343. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-series.d.ts +12 -0
  344. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-series.d.ts.map +1 -0
  345. package/lib/typescript/module/src/modules/data-sync/utils/hourly-series.d.ts +22 -0
  346. package/lib/typescript/module/src/modules/data-sync/utils/hourly-series.d.ts.map +1 -0
  347. package/lib/typescript/module/src/modules/data-sync/utils/replaces-saved-observation.d.ts +7 -0
  348. package/lib/typescript/module/src/modules/data-sync/utils/replaces-saved-observation.d.ts.map +1 -0
  349. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["BloodPressureStates","bloodPressureTranslatedExceptionMap","Map","LOOSE_SLEEVE","DISTURB_DETECTED","WEAK_SIGNAL","DEVICE_ERROR"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/constants/blood-pressure-translated-exception-map.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,mCAAgC;AAEpE,OAAO,MAAMC,mCAAmC,GAAG,IAAIC,GAAG,CAGxD,CACA,CACEF,mBAAmB,CAACG,YAAY,EAChC,kDAAkD,CACnD,EACD,CACEH,mBAAmB,CAACI,gBAAgB,EACpC,sDAAsD,CACvD,EACD,CACEJ,mBAAmB,CAACK,WAAW,EAC/B,iDAAiD,CAClD,EACD,CACEL,mBAAmB,CAACM,YAAY,EAChC,4CAA4C,CAC7C,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["BloodPressureStates","MeasurementFeedbackKey","bloodPressureTranslatedExceptionMap","Map","LOOSE_SLEEVE","DISTURB_DETECTED","WEAK_SIGNAL","DEVICE_ERROR"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/constants/blood-pressure-translated-exception-map.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,mCAAgC;AAEpE,SAASC,sBAAsB,QAAQ,2BAAwB;AAE/D,OAAO,MAAMC,mCAAmC,GAAG,IAAIC,GAAG,CAGxD,CACA,CACEH,mBAAmB,CAACI,YAAY,EAChCH,sBAAsB,CAACG,YAAY,CACpC,EACD,CACEJ,mBAAmB,CAACK,gBAAgB,EACpCJ,sBAAsB,CAACI,gBAAgB,CACxC,EACD,CACEL,mBAAmB,CAACM,WAAW,EAC/BL,sBAAsB,CAACK,WAAW,CACnC,EACD,CACEN,mBAAmB,CAACO,YAAY,EAChCN,sBAAsB,CAACM,YAAY,CACpC,CACF,CAAC","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The translation keys a failed measurement reports, as `BluetoothError.translationKey` (and its
5
+ * message): compare against these rather than the strings, and translate them in the app.
6
+ */
7
+ const MeasurementFeedbackKey = {
8
+ DEVICE_ERROR: "feedback-messages.measurement.device-error",
9
+ DEVICE_INTERRUPTED: "feedback-messages.measurement.device-interrupted",
10
+ COMMAND_TIMEOUT: "feedback-messages.measurement.command-timeout",
11
+ /** The device stopped sending mid-measurement (or mid-transfer, after a reading already arrived). */
12
+ STUCK: "feedback-messages.measurement.stuck-error",
13
+ CORRUPT_FRAME: "feedback-messages.measurement.corrupt-frame-error",
14
+ INSUFFICIENT_DATA_LENGTH: "feedback-messages.measurement.insufficient-data-length",
15
+ DISTURB_DETECTED: "feedback-messages.measurement.disturb-detected-error",
16
+ WEAK_SIGNAL: "feedback-messages.measurement.weak-signal-error",
17
+ POOR_WAVEFORM: "feedback-messages.measurement.poor-waveform-error",
18
+ LOOSE_SLEEVE: "feedback-messages.measurement.loose-sleeve-error",
19
+ LEAD_OFF: "feedback-messages.measurement.lead-off-error"
20
+ };
21
+ export { MeasurementFeedbackKey };
22
+ //# sourceMappingURL=measurement-feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MeasurementFeedbackKey","DEVICE_ERROR","DEVICE_INTERRUPTED","COMMAND_TIMEOUT","STUCK","CORRUPT_FRAME","INSUFFICIENT_DATA_LENGTH","DISTURB_DETECTED","WEAK_SIGNAL","POOR_WAVEFORM","LOOSE_SLEEVE","LEAD_OFF"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/constants/measurement-feedback.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,MAAMA,sBAAsB,GAAG;EAC7BC,YAAY,EAAE,4CAA4C;EAC1DC,kBAAkB,EAAE,kDAAkD;EACtEC,eAAe,EAAE,+CAA+C;EAEhE;EACAC,KAAK,EAAE,2CAA2C;EAClDC,aAAa,EAAE,mDAAmD;EAClEC,wBAAwB,EAAE,wDAAwD;EAClFC,gBAAgB,EAAE,sDAAsD;EACxEC,WAAW,EAAE,iDAAiD;EAC9DC,aAAa,EAAE,mDAAmD;EAClEC,YAAY,EAAE,kDAAkD;EAChEC,QAAQ,EAAE;AACZ,CAAU;AAIV,SAASX,sBAAsB","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from "react";
4
- import { useBluetoothRuntime, useBluetoothSelector } from "./runtime-context.js";
4
+ import { useBluetoothRuntime } from "./runtime-context.js";
5
+ import { useBTDevices } from "./use-bt-devices.js";
5
6
  class DeviceSelectionRequiredError extends Error {
6
7
  constructor(model, ids) {
7
8
  super(`Choose a device ID for ${model}; found ${ids.join(", ")}.`);
@@ -28,25 +29,25 @@ const serializeForDevice = (runtime, deviceId, operation) => {
28
29
  return current;
29
30
  };
30
31
  const getRawDevice = device => device.device.device;
31
- const useBTDevice = (model, {
32
+ const useBTDevice = (filter, {
32
33
  id,
33
34
  autoConnect = false,
34
35
  allowRawAccess = false
35
36
  } = {}) => {
36
37
  const runtime = useBluetoothRuntime();
37
38
  const [selectedId, setSelectedId] = React.useState(id);
38
- const matches = useBluetoothSelector(snapshot => snapshot.devices.filter(device => device.deviceData.name === model || device.deviceData.model === model), (previous, next) => previous.length === next.length && previous.every((item, index) => {
39
- const candidate = next[index];
40
- return candidate?.id === item.id && candidate === item;
41
- }));
39
+
40
+ /** The model key asked for; a filter has none. */
41
+ const model = typeof filter === "string" ? filter : undefined;
42
+ const matches = useBTDevices(filter);
42
43
  const selected = selectedId ? matches.find(device => device.id === selectedId) : matches.length === 1 ? matches[0] : undefined;
43
44
  const selectedIdRef = React.useRef(selectedId);
44
45
  const matchesRef = React.useRef(matches);
45
- const modelRef = React.useRef(model);
46
+ const modelRef = React.useRef(model ?? "the filtered device");
46
47
  const autoConnectedRef = React.useRef(new WeakSet());
47
48
  selectedIdRef.current = selectedId;
48
49
  matchesRef.current = matches;
49
- modelRef.current = model;
50
+ modelRef.current = model ?? "the filtered device";
50
51
  React.useEffect(() => {
51
52
  if (id !== undefined) {
52
53
  setSelectedId(id);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useBluetoothRuntime","useBluetoothSelector","DeviceSelectionRequiredError","Error","constructor","model","ids","join","name","EMPTY_RESULTS","EMPTY_EVENTS","deviceQueues","WeakMap","serializeForDevice","runtime","deviceId","operation","queues","get","Map","set","previous","Promise","resolve","current","catch","undefined","then","finally","delete","getRawDevice","device","useBTDevice","id","autoConnect","allowRawAccess","selectedId","setSelectedId","useState","matches","snapshot","devices","filter","deviceData","next","length","every","item","index","candidate","selected","find","selectedIdRef","useRef","matchesRef","modelRef","autoConnectedRef","WeakSet","useEffect","has","add","connect","select","useCallback","some","currentMatches","map","disconnect","raw","useMemo","resolveDevice","rawDevice","read","serviceUUID","characteristicUUID","readCharacteristicForService","write","base64Value","withResponse","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","requiresSelection","status","latestResult","results","events"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-bt-device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useBluetoothRuntime","useBTDevices","DeviceSelectionRequiredError","Error","constructor","model","ids","join","name","EMPTY_RESULTS","EMPTY_EVENTS","deviceQueues","WeakMap","serializeForDevice","runtime","deviceId","operation","queues","get","Map","set","previous","Promise","resolve","current","catch","undefined","then","finally","delete","getRawDevice","device","useBTDevice","filter","id","autoConnect","allowRawAccess","selectedId","setSelectedId","useState","matches","selected","find","length","selectedIdRef","useRef","matchesRef","modelRef","autoConnectedRef","WeakSet","useEffect","has","add","connect","select","useCallback","some","currentMatches","candidate","map","disconnect","raw","useMemo","resolveDevice","rawDevice","read","serviceUUID","characteristicUUID","readCharacteristicForService","write","base64Value","withResponse","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","devices","requiresSelection","status","latestResult","results","events"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-bt-device.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ import { deviceMatches, findSupportedDevice, listOf } from "../../bt-device/utils/device-query.js";
4
+ import { useBluetoothSelector } from "./runtime-context.js";
5
+
6
+ /**
7
+ * Which connected or nearby devices to follow: a model key (`deviceData.name` or `.model`), or a
8
+ * filter over what the device is (any `DeviceFilter` field, matched against its catalog product)
9
+ * and its state. `{ kind: "weight-scale" }`, `{ manufacturer: "HARTMANN", status: DeviceStatus.CONNECTED }`.
10
+ * A device whose parser serves several products counts as the one its advertised name identifies,
11
+ * else as its parser's product.
12
+ */
13
+
14
+ /** Whether a runtime device is one `filter` asks for. */
15
+ const btDeviceMatches = (device, filter) => {
16
+ if (typeof filter === "string") {
17
+ return device.deviceData.name === filter || device.deviceData.model === filter;
18
+ }
19
+ const {
20
+ status,
21
+ where,
22
+ ...catalog
23
+ } = filter;
24
+ const product = findSupportedDevice(device.deviceData);
25
+ return (status === undefined || device.status !== undefined && listOf(status).includes(device.status)) && (Object.keys(catalog).length === 0 || product !== undefined && deviceMatches(product, catalog)) && (where === undefined || where(device, product));
26
+ };
27
+
28
+ /** The same devices, in the same order, as the same objects. */
29
+ const sameDevices = (previous, next) => previous.length === next.length && previous.every((item, index) => {
30
+ const candidate = next[index];
31
+ return candidate?.id === item.id && candidate === item;
32
+ });
33
+
34
+ /** Every connected or nearby device `filter` asks for, in the order Bluetooth found them. */
35
+ const useBTDevices = filter => useBluetoothSelector(snapshot => snapshot.devices.filter(device => btDeviceMatches(device, filter)), sameDevices);
36
+ export { btDeviceMatches, useBTDevices };
37
+ //# sourceMappingURL=use-bt-devices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["deviceMatches","findSupportedDevice","listOf","useBluetoothSelector","btDeviceMatches","device","filter","deviceData","name","model","status","where","catalog","product","undefined","includes","Object","keys","length","sameDevices","previous","next","every","item","index","candidate","id","useBTDevices","snapshot","devices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-bt-devices.ts"],"mappings":";;AAEA,SACEA,aAAa,EACbC,mBAAmB,EACnBC,MAAM,QAGD,uCAAoC;AAI3C,SAAwBC,oBAAoB,QAAQ,sBAAmB;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA,MAAMC,eAAe,GAAGA,CAACC,MAAqB,EAAEC,MAAsB,KAAc;EAClF,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOD,MAAM,CAACE,UAAU,CAACC,IAAI,KAAKF,MAAM,IAAID,MAAM,CAACE,UAAU,CAACE,KAAK,KAAKH,MAAM;EAChF;EAEA,MAAM;IAAEI,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAQ,CAAC,GAAGN,MAAM;EAE5C,MAAMO,OAAO,GAAGZ,mBAAmB,CAACI,MAAM,CAACE,UAAU,CAAC;EAEtD,OACE,CAACG,MAAM,KAAKI,SAAS,IAAKT,MAAM,CAACK,MAAM,KAAKI,SAAS,IAAIZ,MAAM,CAACQ,MAAM,CAAC,CAACK,QAAQ,CAACV,MAAM,CAACK,MAAM,CAAE,MAC/FM,MAAM,CAACC,IAAI,CAACL,OAAO,CAAC,CAACM,MAAM,KAAK,CAAC,IAAKL,OAAO,KAAKC,SAAS,IAAId,aAAa,CAACa,OAAO,EAAED,OAAO,CAAE,CAAC,KAChGD,KAAK,KAAKG,SAAS,IAAIH,KAAK,CAACN,MAAM,EAAEQ,OAAO,CAAC,CAAC;AAEnD,CAAC;;AAED;AACA,MAAMM,WAAW,GAAGA,CAACC,QAAkC,EAAEC,IAA8B,KACrFD,QAAQ,CAACF,MAAM,KAAKG,IAAI,CAACH,MAAM,IAC/BE,QAAQ,CAACE,KAAK,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;EAC9B,MAAMC,SAAS,GAAGJ,IAAI,CAACG,KAAK,CAAC;EAE7B,OAAOC,SAAS,EAAEC,EAAE,KAAKH,IAAI,CAACG,EAAE,IAAID,SAAS,KAAKF,IAAI;AACxD,CAAC,CAAC;;AAEJ;AACA,MAAMI,YAAY,GAAIrB,MAAsB,IAC1CH,oBAAoB,CACjByB,QAAQ,IAAKA,QAAQ,CAACC,OAAO,CAACvB,MAAM,CAAED,MAAM,IAAKD,eAAe,CAACC,MAAM,EAAEC,MAAM,CAAC,CAAC,EAClFa,WACF,CAAC;AAEH,SAASf,eAAe,EAAEuB,YAAY","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import * as React from "react";
4
+ const NO_SERIES = [];
5
+ const NO_SUBSCRIPTION = () => () => undefined;
6
+
7
+ /**
8
+ * The series a `BTManager` is recording, updated as each value arrives: the live values to show while a device
9
+ * streams (`latest`), before the series is stored.
10
+ */
11
+ const useOpenSeries = manager => React.useSyncExternalStore(manager?.subscribeOpenSeries ?? NO_SUBSCRIPTION, () => manager?.getOpenSeries() ?? NO_SERIES);
12
+ export { useOpenSeries };
13
+ //# sourceMappingURL=use-open-series.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","NO_SERIES","NO_SUBSCRIPTION","undefined","useOpenSeries","manager","useSyncExternalStore","subscribeOpenSeries","getOpenSeries"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-open-series.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAS9B,MAAMC,SAAgC,GAAG,EAAE;AAC3C,MAAMC,eAAe,GAAGA,CAAA,KAAM,MAAMC,SAAS;;AAE7C;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAIC,OAAiC,IACtDL,KAAK,CAACM,oBAAoB,CACxBD,OAAO,EAAEE,mBAAmB,IAAIL,eAAe,EAC/C,MAAMG,OAAO,EAAEG,aAAa,CAAC,CAAC,IAAIP,SACpC,CAAC;AAEH,SAASG,aAAa","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ import * as React from "react";
4
+ const NO_RESULTS = [];
5
+ const NO_SUBSCRIPTION = () => () => undefined;
6
+
7
+ /** The results a `BackgroundSyncCoordinator` still holds for the current account: readings not saved yet. */
8
+ const useQueuedResults = coordinator => React.useSyncExternalStore(coordinator?.subscribe ?? NO_SUBSCRIPTION, () => coordinator?.getQueued() ?? NO_RESULTS);
9
+ export { useQueuedResults };
10
+ //# sourceMappingURL=use-queued-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","NO_RESULTS","NO_SUBSCRIPTION","undefined","useQueuedResults","coordinator","useSyncExternalStore","subscribe","getQueued"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-queued-results.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAU9B,MAAMC,UAA4B,GAAG,EAAE;AACvC,MAAMC,eAAe,GAAGA,CAAA,KAAM,MAAMC,SAAS;;AAE7C;AACA,MAAMC,gBAAgB,GACpBC,WAAuC,IAEvCL,KAAK,CAACM,oBAAoB,CACxBD,WAAW,EAAEE,SAAS,IAAIL,eAAe,EACzC,MAAMG,WAAW,EAAEG,SAAS,CAAC,CAAC,IAAIP,UACpC,CAAC;AAEH,SAASG,gBAAgB","ignoreList":[]}
@@ -35,6 +35,7 @@ export * from "./types/bluetooth-permission-status.js";
35
35
  export * from "./types/device-status-change-callback.js";
36
36
  export * from "./types/device-connection-event.js";
37
37
  export * from "./types/result-policy.js";
38
+ export * from "./types/measurement-series.js";
38
39
  export * from "./types/clock-sync.js";
39
40
  export * from "./services/devices/bt-managed-device.js";
40
41
  export * from "./services/devices/blood-glucose/blood-glucose.device.js";
@@ -106,8 +107,12 @@ export * from "./hooks/use-nearby-device-offer.js";
106
107
  export * from "./hooks/use-paired-devices.js";
107
108
  export * from "./hooks/use-device-connection.js";
108
109
  export * from "./hooks/use-bt-device.js";
110
+ export * from "./hooks/use-bt-devices.js";
111
+ export * from "./constants/measurement-feedback.js";
109
112
  export * from "./hooks/use-measurements.js";
110
113
  export * from "./hooks/use-background-sync.js";
114
+ export * from "./hooks/use-open-series.js";
115
+ export * from "./hooks/use-queued-results.js";
111
116
 
112
117
  /** @deprecated Import useHealthImport from @ovok/native/data-sync instead. */
113
118
  export { useHealthImport } from "../data-sync/hooks/use-health-import.js";
@@ -1 +1 @@
1
- {"version":3,"names":["setDeviceSecretStorage","useHealthImport"],"sourceRoot":"../../../../src","sources":["modules/bt-management/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["setDeviceSecretStorage","useHealthImport"],"sourceRoot":"../../../../src","sources":["modules/bt-management/index.ts"],"mappings":"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","ignoreList":[]}
@@ -57,17 +57,19 @@ const BUILT_IN_SERVICE_UUIDS = {
57
57
  [IntegratedDevices.VEROVAL_DUO_CONTROL]: ["5d4b8aa6-a26a-4a1b-99f5-cd4473c786e3"],
58
58
  [IntegratedDevices.VEROVAL_ECG]: ["0000a000-0000-1000-8000-00805f9b34fb"]
59
59
  };
60
+
61
+ /**
62
+ * The services a background scan asks for: those of every accepted device whose services are known, and
63
+ * `additionalServiceUUIDs`. In the background iOS (and Android with the screen off) reports only devices advertising a
64
+ * listed service, so an accepted device whose services aren't known is found by a foreground scan only. One such
65
+ * device must not empty the list: iOS can't scan in the background without one.
66
+ */
60
67
  export const getBackgroundServiceUUIDs = (acceptedDevices, additionalServiceUUIDs = []) => {
61
68
  const uuids = new Set(additionalServiceUUIDs.map(normalize));
62
- let hasUnfilterableDevice = false;
63
69
  acceptedDevices.forEach(acceptedDevice => {
64
70
  const deviceUUIDs = typeof acceptedDevice === "string" ? BUILT_IN_SERVICE_UUIDS[acceptedDevice] : serviceUUIDs(acceptedDevice.mainServices);
65
- if (!deviceUUIDs?.length) {
66
- hasUnfilterableDevice = true;
67
- return;
68
- }
69
- deviceUUIDs.forEach(uuid => uuids.add(normalize(uuid)));
71
+ deviceUUIDs?.forEach(uuid => uuids.add(normalize(uuid)));
70
72
  });
71
- return hasUnfilterableDevice && !additionalServiceUUIDs.length ? null : [...uuids];
73
+ return [...uuids];
72
74
  };
73
75
  //# sourceMappingURL=background-service-uuids.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["IntegratedDevices","a606MainServices","bc01MainServices","bp2MainServices","bpw1MainServices","f4MainServices","spo2MainServices","normalize","uuid","toLowerCase","serviceUUIDs","services","map","service","BUILT_IN_SERVICE_UUIDS","BP2","F4","S5","LEPU_F4_SCALE","LEPU_F5_SCALE","PC60WF","BC01","ZH_SG_A606","BPW1","WBP_02","TRANSTEK_BPM","TRANSTEK_SCALE","TRANSTEK_SCALE_1525","TRANSTEK_TRACKER","FAMIDOC_BPM","FAMIDOC_IR_THERMOMETER","FAMIDOC_CONTACT_THERMOMETER","AOJ_BPM","AOJ_BPM_FFF0","AOJ_70B","JUMPER_OXIMETER","JUMPER_BPM","JUMPER_THERMOMETER","JOYTECH_BPM","JOYTECH_THERMOMETER","AND_BPM","AND_BPM_CTS","AND_SCALE","YONKER_OXIMETER","YONKER_BPM","YONKER_THERMOMETER","YONKER_SCALE","YONKER_80B","COFOE_BPM","COFOE_BPM_HISTORY","COFOE_GLUCOMETER","COFOE_GLUCOMETER_CGH25","COFOE_THERMOMETER","TAIDOC_MULTI","TAIDOC_BPM","TAIDOC_THERMOMETER","TAIDOC_OXIMETER","TAIDOC_SCALE","PM10","VEROVAL_DUO_CONTROL","VEROVAL_ECG","getBackgroundServiceUUIDs","acceptedDevices","additionalServiceUUIDs","uuids","Set","hasUnfilterableDevice","forEach","acceptedDevice","deviceUUIDs","mainServices","length","add"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-service-uuids.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["IntegratedDevices","a606MainServices","bc01MainServices","bp2MainServices","bpw1MainServices","f4MainServices","spo2MainServices","normalize","uuid","toLowerCase","serviceUUIDs","services","map","service","BUILT_IN_SERVICE_UUIDS","BP2","F4","S5","LEPU_F4_SCALE","LEPU_F5_SCALE","PC60WF","BC01","ZH_SG_A606","BPW1","WBP_02","TRANSTEK_BPM","TRANSTEK_SCALE","TRANSTEK_SCALE_1525","TRANSTEK_TRACKER","FAMIDOC_BPM","FAMIDOC_IR_THERMOMETER","FAMIDOC_CONTACT_THERMOMETER","AOJ_BPM","AOJ_BPM_FFF0","AOJ_70B","JUMPER_OXIMETER","JUMPER_BPM","JUMPER_THERMOMETER","JOYTECH_BPM","JOYTECH_THERMOMETER","AND_BPM","AND_BPM_CTS","AND_SCALE","YONKER_OXIMETER","YONKER_BPM","YONKER_THERMOMETER","YONKER_SCALE","YONKER_80B","COFOE_BPM","COFOE_BPM_HISTORY","COFOE_GLUCOMETER","COFOE_GLUCOMETER_CGH25","COFOE_THERMOMETER","TAIDOC_MULTI","TAIDOC_BPM","TAIDOC_THERMOMETER","TAIDOC_OXIMETER","TAIDOC_SCALE","PM10","VEROVAL_DUO_CONTROL","VEROVAL_ECG","getBackgroundServiceUUIDs","acceptedDevices","additionalServiceUUIDs","uuids","Set","forEach","acceptedDevice","deviceUUIDs","mainServices","add"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-service-uuids.ts"],"mappings":";;AAEA,SAASA,iBAAiB,QAAQ,mCAAgC;AAElE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,gBAAgB,QAAQ,uCAAoC;AACrE,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,gBAAgB,QAAQ,sCAAmC;AAEpE,MAAMC,SAAS,GAAIC,IAAY,IAAaA,IAAI,CAACC,WAAW,CAAC,CAAC;AAE9D,MAAMC,YAAY,GAAIC,QAA6B,IACjDA,QAAQ,CAACC,GAAG,CAAEC,OAAO,IAAKN,SAAS,CAACM,OAAO,CAACL,IAAI,CAAC,CAAC;AAEpD,MAAMM,sBAAoE,GAAG;EAC3E,CAACd,iBAAiB,CAACe,GAAG,GAAGL,YAAY,CAACP,eAAe,CAAC;EACtD,CAACH,iBAAiB,CAACgB,EAAE,GAAGN,YAAY,CAACL,cAAc,CAAC;EACpD,CAACL,iBAAiB,CAACiB,EAAE,GAAGP,YAAY,CAACL,cAAc,CAAC;EACpD,CAACL,iBAAiB,CAACkB,aAAa,GAAGR,YAAY,CAACL,cAAc,CAAC;EAC/D,CAACL,iBAAiB,CAACmB,aAAa,GAAG,CACjC,sCAAsC,CACvC;EACD,CAACnB,iBAAiB,CAACoB,MAAM,GAAGV,YAAY,CAACJ,gBAAgB,CAAC;EAC1D,CAACN,iBAAiB,CAACqB,IAAI,GAAGX,YAAY,CAACR,gBAAgB,CAAC;EACxD,CAACF,iBAAiB,CAACsB,UAAU,GAAGZ,YAAY,CAACT,gBAAgB,CAAC;EAC9D,CAACD,iBAAiB,CAACuB,IAAI,GAAGb,YAAY,CAACN,gBAAgB,CAAC;EACxD,CAACJ,iBAAiB,CAACwB,MAAM,GAAG,CAC1B,sCAAsC,EACtC,sCAAsC,CACvC;EACD,CAACxB,iBAAiB,CAACyB,YAAY,GAAG,CAChC,sCAAsC,EACtC,sCAAsC,CACvC;EACD,CAACzB,iBAAiB,CAAC0B,cAAc,GAAG,CAClC,sCAAsC,EACtC,sCAAsC,CACvC;EACD,CAAC1B,iBAAiB,CAAC2B,mBAAmB,GAAG,CACvC,sCAAsC,EACtC,sCAAsC,CACvC;EACD,CAAC3B,iBAAiB,CAAC4B,gBAAgB,GAAG,CAAC,sCAAsC,CAAC;EAC9E,CAAC5B,iBAAiB,CAAC6B,WAAW,GAAG,CAAC,sCAAsC,CAAC;EACzE,CAAC7B,iBAAiB,CAAC8B,sBAAsB,GAAG,CAAC,sCAAsC,CAAC;EACpF,CAAC9B,iBAAiB,CAAC+B,2BAA2B,GAAG,CAAC,sCAAsC,CAAC;EACzF,CAAC/B,iBAAiB,CAACgC,OAAO,GAAG,CAAC,sCAAsC,CAAC;EACrE,CAAChC,iBAAiB,CAACiC,YAAY,GAAG,CAAC,sCAAsC,CAAC;EAC1E,CAACjC,iBAAiB,CAACkC,OAAO,GAAG,CAAC,sCAAsC,CAAC;EACrE,CAAClC,iBAAiB,CAACmC,eAAe,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,CAAC;EACrH,CAACnC,iBAAiB,CAACoC,UAAU,GAAG,CAAC,sCAAsC,CAAC;EACxE,CAACpC,iBAAiB,CAACqC,kBAAkB,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,CAAC;EACxH,CAACrC,iBAAiB,CAACsC,WAAW,GAAG,CAAC,sCAAsC,CAAC;EACzE,CAACtC,iBAAiB,CAACuC,mBAAmB,GAAG,CAAC,sCAAsC,CAAC;EACjF,CAACvC,iBAAiB,CAACwC,OAAO,GAAG,CAAC,sCAAsC,CAAC;EACrE,CAACxC,iBAAiB,CAACyC,WAAW,GAAG,CAAC,sCAAsC,CAAC;EACzE,CAACzC,iBAAiB,CAAC0C,SAAS,GAAG,CAAC,sCAAsC,CAAC;EACvE,CAAC1C,iBAAiB,CAAC2C,eAAe,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,CAAC;EACrH,CAAC3C,iBAAiB,CAAC4C,UAAU,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,CAAC;EAChH,CAAC5C,iBAAiB,CAAC6C,kBAAkB,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,CAAC;EACxH,CAAC7C,iBAAiB,CAAC8C,YAAY,GAAG,CAAC,sCAAsC,CAAC;EAC1E,CAAC9C,iBAAiB,CAAC+C,UAAU,GAAG,CAAC,sCAAsC,CAAC;EACxE,CAAC/C,iBAAiB,CAACgD,SAAS,GAAG,CAAC,sCAAsC,CAAC;EACvE,CAAChD,iBAAiB,CAACiD,iBAAiB,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,CAAC;EACvH,CAACjD,iBAAiB,CAACkD,gBAAgB,GAAG,CAAC,sCAAsC,CAAC;EAC9E,CAAClD,iBAAiB,CAACmD,sBAAsB,GAAG,CAAC,sCAAsC,CAAC;EACpF,CAACnD,iBAAiB,CAACoD,iBAAiB,GAAG,CAAC,sCAAsC,EAAE,sCAAsC,CAAC;EACvH,CAACpD,iBAAiB,CAACqD,YAAY,GAAG,CAAC,sCAAsC,CAAC;EAC1E,CAACrD,iBAAiB,CAACsD,UAAU,GAAG,CAAC,sCAAsC,CAAC;EACxE,CAACtD,iBAAiB,CAACuD,kBAAkB,GAAG,CAAC,sCAAsC,CAAC;EAChF,CAACvD,iBAAiB,CAACwD,eAAe,GAAG,CAAC,sCAAsC,CAAC;EAC7E,CAACxD,iBAAiB,CAACyD,YAAY,GAAG,CAAC,sCAAsC,CAAC;EAC1E,CAACzD,iBAAiB,CAAC0D,IAAI,GAAG,CACxB,sCAAsC,CACvC;EACD,CAAC1D,iBAAiB,CAAC2D,mBAAmB,GAAG,CACvC,sCAAsC,CACvC;EACD,CAAC3D,iBAAiB,CAAC4D,WAAW,GAAG,CAC/B,sCAAsC;AAE1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAGA,CACvCC,eAA0C,EAC1CC,sBAAyC,GAAG,EAAE,KACjC;EACb,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAACF,sBAAsB,CAACnD,GAAG,CAACL,SAAS,CAAC,CAAC;EAE5DuD,eAAe,CAACI,OAAO,CAAEC,cAAc,IAAK;IAC1C,MAAMC,WAAW,GACf,OAAOD,cAAc,KAAK,QAAQ,GAC9BrD,sBAAsB,CAACqD,cAAc,CAAC,GACtCzD,YAAY,CAAEyD,cAAc,CAA4BE,YAAY,CAAC;IAE3ED,WAAW,EAAEF,OAAO,CAAE1D,IAAI,IAAKwD,KAAK,CAACM,GAAG,CAAC/D,SAAS,CAACC,IAAI,CAAC,CAAC,CAAC;EAC5D,CAAC,CAAC;EAEF,OAAO,CAAC,GAAGwD,KAAK,CAAC;AACnB,CAAC","ignoreList":[]}
@@ -3,13 +3,25 @@
3
3
  import { recordOvokMetric } from "../../../helpers/utils/telemetry.js";
4
4
  import { BluetoothError, BluetoothErrorCode } from "../../types/bluetooth-error.js";
5
5
  import { createQueueId, createResultId, DEFAULT_MAX_RETRIES, DEFAULT_QUEUE_KEY, DEFAULT_RETRY_BACKOFF_MS, readBackgroundSyncQueue, writeBackgroundSyncQueue } from "./background-sync-queue.js";
6
+
7
+ /** A result is queued only for the account `getOwnerKey` returns, so the coordinator can't work without it. */
8
+
9
+ // Without it every result would be refused as it arrives, and lost; say so once, here, instead.
10
+ const withOwnerKey = options => {
11
+ if (typeof options.getOwnerKey !== "function") {
12
+ throw new TypeError("BackgroundSyncCoordinator needs getOwnerKey: results are queued for the account it returns.");
13
+ }
14
+ return options;
15
+ };
6
16
  class BackgroundSyncCoordinator {
7
17
  operation = Promise.resolve();
18
+ queued = [];
19
+ listeners = new Set();
8
20
  constructor(options) {
9
- this.options = options;
21
+ this.options = withOwnerKey(options);
10
22
  }
11
23
  updateOptions(options) {
12
- this.options = options;
24
+ this.options = withOwnerKey(options);
13
25
  }
14
26
  enqueue = result => {
15
27
  const ownerKey = this.options.getOwnerKey?.();
@@ -34,12 +46,43 @@ class BackgroundSyncCoordinator {
34
46
  await writeBackgroundSyncQueue(queue, options);
35
47
  recordOvokMetric("ovok.queue.depth", queue.length);
36
48
  await this.flushQueue(queue, {}, options);
49
+ this.publish(queue);
37
50
  });
38
51
  };
39
52
  flush = (options = {}) => this.runExclusive(async () => {
40
53
  const syncOptions = this.options;
41
- await this.flushQueue(await readBackgroundSyncQueue(syncOptions), options, syncOptions);
54
+ const queue = await readBackgroundSyncQueue(syncOptions);
55
+ await this.flushQueue(queue, options, syncOptions);
56
+ this.publish(queue);
42
57
  });
58
+
59
+ /**
60
+ * The current account's results still waiting to be accepted, oldest first: readings to show as not saved yet.
61
+ * Kept up to date by every enqueue and flush; `subscribe` reads the stored queue in first.
62
+ */
63
+ getQueued = () => this.queued;
64
+
65
+ /** Calls `listener` whenever the waiting results change; the first subscriber reads the stored queue in. */
66
+ subscribe = listener => {
67
+ this.listeners.add(listener);
68
+ if (this.listeners.size === 1) {
69
+ void this.runExclusive(async () => this.publish(await readBackgroundSyncQueue(this.options)));
70
+ }
71
+ return () => {
72
+ this.listeners.delete(listener);
73
+ };
74
+ };
75
+ publish = queue => {
76
+ const ownerKey = this.options.getOwnerKey?.();
77
+ this.queued = queue.flatMap(item => item.ownerKey && item.ownerKey === ownerKey ? [{
78
+ ...item.result,
79
+ ownerKey: item.ownerKey,
80
+ queueId: item.queueId,
81
+ queuedAt: item.queuedAt,
82
+ attempt: item.attempt
83
+ }] : []);
84
+ this.listeners.forEach(listener => listener());
85
+ };
43
86
  runExclusive = operation => {
44
87
  const next = this.operation.then(operation, operation);
45
88
  this.operation = next.catch(() => undefined);
@@ -1 +1 @@
1
- {"version":3,"names":["recordOvokMetric","BluetoothError","BluetoothErrorCode","createQueueId","createResultId","DEFAULT_MAX_RETRIES","DEFAULT_QUEUE_KEY","DEFAULT_RETRY_BACKOFF_MS","readBackgroundSyncQueue","writeBackgroundSyncQueue","BackgroundSyncCoordinator","operation","Promise","resolve","constructor","options","updateOptions","enqueue","result","ownerKey","getOwnerKey","runExclusive","queue","stableId","id","trim","BACKGROUND_SYNC","push","queueId","queuedAt","Date","toISOString","attempt","nextAttemptAt","length","flushQueue","flush","syncOptions","next","then","catch","undefined","changed","now","droppedLegacy","item","splice","indexOf","exhausted","resetExhausted","resetRetryBackoff","includeExhausted","maxRetries","Math","max","retryBackoffMs","onResult","measurementTypeKey","data","error","Number","MAX_SAFE_INTEGER","errorCode","code","willRetry","onError"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-sync-coordinator.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["recordOvokMetric","BluetoothError","BluetoothErrorCode","createQueueId","createResultId","DEFAULT_MAX_RETRIES","DEFAULT_QUEUE_KEY","DEFAULT_RETRY_BACKOFF_MS","readBackgroundSyncQueue","writeBackgroundSyncQueue","withOwnerKey","options","getOwnerKey","TypeError","BackgroundSyncCoordinator","operation","Promise","resolve","queued","listeners","Set","constructor","updateOptions","enqueue","result","ownerKey","runExclusive","queue","stableId","id","trim","BACKGROUND_SYNC","push","queueId","queuedAt","Date","toISOString","attempt","nextAttemptAt","length","flushQueue","publish","flush","syncOptions","getQueued","subscribe","listener","add","size","delete","flatMap","item","forEach","next","then","catch","undefined","changed","now","droppedLegacy","splice","indexOf","exhausted","resetExhausted","resetRetryBackoff","includeExhausted","maxRetries","Math","max","retryBackoffMs","onResult","measurementTypeKey","data","error","Number","MAX_SAFE_INTEGER","errorCode","code","willRetry","onError"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-sync-coordinator.ts"],"mappings":"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","ignoreList":[]}
@@ -9,8 +9,12 @@ import { toBluetoothError } from "../types/bluetooth-error.js";
9
9
  import { IntegratedDevices } from "../types/integrated-devices.js";
10
10
  import { errorCallbackPayload } from "../utils/error-callback-payload.js";
11
11
  import { DeviceCreator } from "./device-creator.js";
12
+ import { SeriesRecorder } from "./series-recorder.js";
12
13
  const bluetoothErrorCallback = error => errorCallbackPayload(toBluetoothError(error));
13
14
  const SCAN_RETRY_DELAY_MS = 1_000;
15
+
16
+ /** How often series that went quiet are looked for, while scanning. */
17
+ const SERIES_IDLE_CHECK_MS = 60_000;
14
18
  class BTManager {
15
19
  static MAX_DEVICES = 15; // Safety limit to prevent unbounded growth
16
20
  devices = new Map();
@@ -28,6 +32,9 @@ class BTManager {
28
32
  this.options = options;
29
33
  this.deviceCreator = new DeviceCreator(this.acceptedDevices);
30
34
  this.backgroundScanEnabled = options.backgroundEnabled === true;
35
+ this.series = new SeriesRecorder({
36
+ storage: options.seriesStorage
37
+ });
31
38
  }
32
39
  setAutoConnect = (enabledOrOptions, delayMs, onDeviceSelectionRequired) => {
33
40
  const enabled = typeof enabledOrOptions === "boolean" ? enabledOrOptions : enabledOrOptions.enabled;
@@ -56,11 +63,19 @@ class BTManager {
56
63
  // stopScan already cleared the callbacks and disconnected the devices.
57
64
  this.forgottenDeviceIds.clear();
58
65
  this.deviceCreator.destroy();
66
+ void this.series.destroy();
59
67
  };
68
+
69
+ /** The series being recorded, each with its latest values: what to show while a device streams. */
70
+ getOpenSeries = () => this.series.getOpen();
71
+
72
+ /** Calls `listener` whenever a series gets a value or closes; returns the unsubscribe. */
73
+ subscribeOpenSeries = listener => this.series.subscribe(listener);
60
74
  startScan = () => {
61
75
  if (this.destroyed || this.scanActive || this.scanStarting || this.stateChangeListener) {
62
76
  return;
63
77
  }
78
+ this.seriesTimer ??= setInterval(this.series.closeIdle, SERIES_IDLE_CHECK_MS);
64
79
  const generation = ++this.scanGeneration;
65
80
  let subscription;
66
81
  const onStateChange = state => {
@@ -119,7 +134,10 @@ class BTManager {
119
134
  this.eventSubscriptions.forEach(sub => sub.remove());
120
135
  this.eventSubscriptions = [];
121
136
 
122
- // Clear all callbacks
137
+ // Clear all callbacks; closed series wait, stored, for the next receiver.
138
+ clearInterval(this.seriesTimer);
139
+ this.seriesTimer = undefined;
140
+ this.series.deliverTo(undefined);
123
141
  this.onErrorCallback = undefined;
124
142
  this.onDeviceFoundCallback = undefined;
125
143
  this.onResultCallback = undefined;
@@ -212,7 +230,9 @@ class BTManager {
212
230
  return;
213
231
  }
214
232
  const serviceUUIDs = this.options.serviceUUIDs;
215
- const scanServiceUUIDs = Platform.OS === "android" && this.backgroundScanEnabled && !serviceUUIDs?.length ? null : [...(serviceUUIDs ?? [])];
233
+
234
+ // Filtered only in the background, which needs it; on screen every accepted device can be found.
235
+ const scanServiceUUIDs = this.backgroundScanEnabled && serviceUUIDs?.length ? [...serviceUUIDs] : null;
216
236
  if (Platform.OS === "ios" && this.backgroundScanEnabled && !serviceUUIDs?.length) {
217
237
  this.onErrorCallback?.(bluetoothErrorCallback("Background Bluetooth sync on iOS requires at least one service UUID. Add serviceUUIDs for custom devices."));
218
238
  return;
@@ -288,6 +308,9 @@ class BTManager {
288
308
  onResult = callback => {
289
309
  sentryLogger("info", "BT_MANAGER: Setting onResult callback");
290
310
  this.onResultCallback = callback;
311
+
312
+ // Series that closed while nobody listened are handed over now.
313
+ this.series.deliverTo(callback);
291
314
  };
292
315
 
293
316
  // Callbacks
@@ -337,6 +360,7 @@ class BTManager {
337
360
  onDeviceStatusChanged: this.onDeviceStatusChangedCallback?.bind(this),
338
361
  onConnectionEvent: this.onConnectionEventCallback?.bind(this),
339
362
  onResult: this.onResultCallback?.bind(this),
363
+ onSeriesValue: (deviceData, reading) => this.series.add(deviceData, reading),
340
364
  hasResultReceiver: () => this.onResultCallback !== undefined,
341
365
  oneReadingPerConnection: this.options.oneReadingPerConnection,
342
366
  deliveredEcgFileNames: this.options.deliveredEcgFileNames,
@@ -396,7 +420,10 @@ class BTManager {
396
420
  removeDeviceFromFoundedDevices = deviceId => {
397
421
  sentryLogger("info", "BT_MANAGER: Removing device from founded devices now its accessible again");
398
422
  this.devices.delete(deviceId);
399
- if (Platform.OS === "android" && this.scanActive) {
423
+
424
+ // A running scan reports each device once, on iOS (without allowDuplicates) as on Android, so a monitor that
425
+ // disconnected is only found again by a fresh scan.
426
+ if (this.scanActive) {
400
427
  this.resumeScan();
401
428
  }
402
429
  };
@@ -1 +1 @@
1
- {"version":3,"names":["Linking","Platform","ScanMode","State","sentryLogger","addOvokSpanEvent","recordOvokMetric","toBluetoothError","IntegratedDevices","errorCallbackPayload","DeviceCreator","bluetoothErrorCallback","error","SCAN_RETRY_DELAY_MS","BTManager","MAX_DEVICES","devices","Map","forgottenDeviceIds","Set","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","bluetoothEnablePrompted","constructor","bleManager","acceptedDevices","options","deviceCreator","backgroundScanEnabled","backgroundEnabled","setAutoConnect","enabledOrOptions","delayMs","onDeviceSelectionRequired","enabled","nextDelayMs","nextSelectionHandler","autoConnect","autoConnectDelayMs","clear","autoConnectTimer","clearTimeout","undefined","destroy","stopScan","startScan","stateChangeListener","generation","subscription","onStateChange","state","PoweredOn","startDeviceScan","stopDeviceScan","PoweredOff","onErrorCallback","OS","sendIntent","push","setBackgroundScanEnabled","restartScan","haltScan","forEach","sub","remove","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","onConnectionEventCallback","device","disconnect","pauseScan","resumeScan","clearScanTimers","removeStateChangeListener","scanRetryTimer","scanRestartTimer","scheduleScanRetry","setTimeout","index","indexOf","splice","serviceUUIDs","scanServiceUUIDs","length","scanFailed","scanMode","LowPower","Balanced","onScanResult","platform","background","restoreDevices","delete","id","disconnectDevice","deviceId","get","forget","add","onDeviceFound","callback","onError","onDeviceStatusChanged","onConnectionEvent","onResult","errorCode","code","advertisedName","name","trim","localName","has","deviceName","getDeviceName","manufacturerData","size","currentSize","deviceClass","createDevice","bind","hasResultReceiver","oneReadingPerConnection","deliveredEcgFileNames","deliveredFileNames","clearDeviceHistory","resultPolicy","resultPolicies","clockSync","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","queueAutoConnect","deviceData","TRASENSE_S9","values","candidate","connect","select","selected","Error","Math","max"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Linking","Platform","ScanMode","State","sentryLogger","addOvokSpanEvent","recordOvokMetric","toBluetoothError","IntegratedDevices","errorCallbackPayload","DeviceCreator","SeriesRecorder","bluetoothErrorCallback","error","SCAN_RETRY_DELAY_MS","SERIES_IDLE_CHECK_MS","BTManager","MAX_DEVICES","devices","Map","forgottenDeviceIds","Set","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","bluetoothEnablePrompted","constructor","bleManager","acceptedDevices","options","deviceCreator","backgroundScanEnabled","backgroundEnabled","series","storage","seriesStorage","setAutoConnect","enabledOrOptions","delayMs","onDeviceSelectionRequired","enabled","nextDelayMs","nextSelectionHandler","autoConnect","autoConnectDelayMs","clear","autoConnectTimer","clearTimeout","undefined","destroy","stopScan","getOpenSeries","getOpen","subscribeOpenSeries","listener","subscribe","startScan","stateChangeListener","seriesTimer","setInterval","closeIdle","generation","subscription","onStateChange","state","PoweredOn","startDeviceScan","stopDeviceScan","PoweredOff","onErrorCallback","OS","sendIntent","push","setBackgroundScanEnabled","restartScan","haltScan","forEach","sub","remove","clearInterval","deliverTo","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","onConnectionEventCallback","device","disconnect","pauseScan","resumeScan","clearScanTimers","removeStateChangeListener","scanRetryTimer","scanRestartTimer","scheduleScanRetry","setTimeout","index","indexOf","splice","serviceUUIDs","scanServiceUUIDs","length","scanFailed","scanMode","LowPower","Balanced","onScanResult","platform","background","restoreDevices","delete","id","disconnectDevice","deviceId","get","forget","add","onDeviceFound","callback","onError","onDeviceStatusChanged","onConnectionEvent","onResult","errorCode","code","advertisedName","name","trim","localName","has","deviceName","getDeviceName","manufacturerData","size","currentSize","deviceClass","createDevice","bind","onSeriesValue","deviceData","reading","hasResultReceiver","oneReadingPerConnection","deliveredEcgFileNames","deliveredFileNames","clearDeviceHistory","resultPolicy","resultPolicies","clockSync","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","queueAutoConnect","TRASENSE_S9","values","candidate","connect","select","selected","Error","Math","max"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { MeasurementTypeKey } from "@ovok/core";
4
+ import { MeasurementFeedbackKey } from "../../../constants/measurement-feedback.js";
4
5
  import { CaseType } from "../../../types/case-type.js";
5
6
  import { hexToByte } from "../../../utils/hex-to-byte.js";
6
7
  import { BTManagedDevice } from "../bt-managed-device.js";
@@ -118,7 +119,7 @@ export class BC01Device extends BTManagedDevice {
118
119
  return acc;
119
120
  }, {});
120
121
  if (Object.keys(measuredValues).length === 0) {
121
- this.onError?.("feedback-messages.measurement.disturb-detected-error");
122
+ this.onError?.(MeasurementFeedbackKey.DISTURB_DETECTED);
122
123
  return;
123
124
  }
124
125
  const timestamp = parsed.timestamp.getTime();