@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
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SeriesRecorder = void 0;
7
+ var _seriesSlots = require("./series-slots.js");
8
+ // ponytail: open series are stored at most this often, so a killed app loses up to 30 s of values; store on
9
+ // every value if that matters more than the writes.
10
+ const STORE_EVERY_MS = 30_000;
11
+ const DEFAULT_SERIES_KEY = "@ovok/native/series";
12
+ /**
13
+ * Keeps each device's live values of a kind as a series of one-second slots, for a result policy of `"series"`. A
14
+ * series closes after an hour, or after 15 minutes without a value, and is then handed to the receiver as one
15
+ * result; until there is a receiver it waits, stored. It lives as long as the manager, not a connection, so a
16
+ * device that reconnects within the quarter hour carries on the same series.
17
+ */
18
+ class SeriesRecorder {
19
+ open = new Map();
20
+ closed = [];
21
+ listeners = new Set();
22
+ snapshot = [];
23
+ storing = Promise.resolve();
24
+ constructor(options = {}) {
25
+ this.options = options;
26
+ this.restored = this.restore();
27
+ }
28
+
29
+ /** Records a reading's values, or returns false for a stored record, which isn't part of a series. */
30
+ add = (deviceData, reading) => {
31
+ const now = this.now();
32
+ if (!(0, _seriesSlots.isLive)(reading, now)) {
33
+ return false;
34
+ }
35
+ const key = `${deviceData.id}:${reading.measurementTypeKey}`;
36
+ let series = this.open.get(key);
37
+ if (series && (now - series.updatedAt >= _seriesSlots.IDLE_CLOSE_MS || now - series.start >= _seriesSlots.MAX_SLOTS * _seriesSlots.SLOT_MS)) {
38
+ this.close(key);
39
+ series = undefined;
40
+ }
41
+ if (!series) {
42
+ series = {
43
+ deviceData,
44
+ measurementTypeKey: reading.measurementTypeKey,
45
+ start: Math.floor(now / _seriesSlots.SLOT_MS) * _seriesSlots.SLOT_MS,
46
+ updatedAt: now,
47
+ values: {}
48
+ };
49
+ this.open.set(key, series);
50
+ }
51
+ const current = series;
52
+ const slot = Math.floor((now - current.start) / _seriesSlots.SLOT_MS);
53
+ Object.entries(reading).forEach(([property, value]) => {
54
+ if (typeof value !== "number" || !Number.isFinite(value) || _seriesSlots.NOT_MEASURED.has(property)) {
55
+ return;
56
+ }
57
+ const values = current.values[property] ??= [];
58
+ while (values.length <= slot) {
59
+ values.push(null);
60
+ }
61
+
62
+ // Two values in one second keep the later.
63
+ values[slot] = value;
64
+ });
65
+
66
+ // The serial and model arrive after connecting, so the latest identity is the fullest.
67
+ current.deviceData = deviceData;
68
+ current.updatedAt = now;
69
+ this.changed();
70
+ this.storeSoon();
71
+ return true;
72
+ };
73
+
74
+ /** Closes every series that has gone quiet. `add` does it for its own; call this now and then for the rest. */
75
+ closeIdle = () => {
76
+ const now = this.now();
77
+ [...this.open.entries()].filter(([, series]) => now - series.updatedAt >= _seriesSlots.IDLE_CLOSE_MS).forEach(([key]) => this.close(key));
78
+ };
79
+
80
+ /** Hands closed series to `receiver`, those waiting and those still to close; `undefined` makes them wait. */
81
+ deliverTo = receiver => {
82
+ this.receiver = receiver;
83
+ void this.restored.then(() => this.deliver());
84
+ };
85
+
86
+ /** The series being recorded, for display; a new list whenever a value arrives or a series closes. */
87
+ getOpen = () => this.snapshot;
88
+ subscribe = listener => {
89
+ this.listeners.add(listener);
90
+ return () => {
91
+ this.listeners.delete(listener);
92
+ };
93
+ };
94
+
95
+ /** Stores what is open now and stops the store timer; series carry on after the next start. */
96
+ destroy = () => {
97
+ clearTimeout(this.storeTimer);
98
+ this.storeTimer = undefined;
99
+ return this.store();
100
+ };
101
+ now = () => this.options.now?.() ?? Date.now();
102
+ close = key => {
103
+ const series = this.open.get(key);
104
+ this.open.delete(key);
105
+ if (series && (0, _seriesSlots.slotCount)(series) > 0) {
106
+ this.closed.push(series);
107
+ }
108
+ this.changed();
109
+ this.deliver();
110
+ void this.store();
111
+ };
112
+ deliver = () => {
113
+ const receiver = this.receiver;
114
+ if (!receiver || this.closed.length === 0) {
115
+ return;
116
+ }
117
+ const ready = this.closed;
118
+ this.closed = [];
119
+ ready.forEach(series => receiver((0, _seriesSlots.toResult)(series)));
120
+ void this.store();
121
+ };
122
+ changed = () => {
123
+ this.snapshot = [...this.open.values()].map(_seriesSlots.toOpenSeries);
124
+ this.listeners.forEach(listener => listener());
125
+ };
126
+ storeSoon = () => {
127
+ if (!this.options.storage || this.storeTimer) {
128
+ return;
129
+ }
130
+ this.storeTimer = setTimeout(() => {
131
+ this.storeTimer = undefined;
132
+ void this.store();
133
+ }, STORE_EVERY_MS);
134
+ };
135
+
136
+ /** Writes one at a time, so an older state never lands after a newer one. */
137
+ store = () => {
138
+ const storage = this.options.storage;
139
+ if (!storage) {
140
+ return Promise.resolve();
141
+ }
142
+ this.storing = this.storing.then(() => this.restored).then(() => {
143
+ const state = {
144
+ open: [...this.open.values()],
145
+ closed: this.closed
146
+ };
147
+ return storage.setItem(this.options.storageKey ?? DEFAULT_SERIES_KEY, JSON.stringify(state));
148
+ }).catch(() => undefined);
149
+ return this.storing;
150
+ };
151
+
152
+ /**
153
+ * Takes back what an earlier run left: closed series to hand over, and open ones, which close if they went quiet
154
+ * meanwhile. One that a device already reopened since is closed rather than merged.
155
+ */
156
+ restore = async () => {
157
+ const storage = this.options.storage;
158
+ if (!storage) {
159
+ return;
160
+ }
161
+ const state = await (0, _seriesSlots.readStored)(storage, this.options.storageKey ?? DEFAULT_SERIES_KEY);
162
+ const now = this.now();
163
+ this.closed.push(...(state?.closed ?? []));
164
+ (state?.open ?? []).forEach(series => {
165
+ const key = `${series.deviceData.id}:${series.measurementTypeKey}`;
166
+ if (this.open.has(key) || now - series.updatedAt >= _seriesSlots.IDLE_CLOSE_MS) {
167
+ this.closed.push(series);
168
+ } else {
169
+ this.open.set(key, series);
170
+ }
171
+ });
172
+ this.changed();
173
+ };
174
+ }
175
+ exports.SeriesRecorder = SeriesRecorder;
176
+ //# sourceMappingURL=series-recorder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_seriesSlots","require","STORE_EVERY_MS","DEFAULT_SERIES_KEY","SeriesRecorder","open","Map","closed","listeners","Set","snapshot","storing","Promise","resolve","constructor","options","restored","restore","add","deviceData","reading","now","isLive","key","id","measurementTypeKey","series","get","updatedAt","IDLE_CLOSE_MS","start","MAX_SLOTS","SLOT_MS","close","undefined","Math","floor","values","set","current","slot","Object","entries","forEach","property","value","Number","isFinite","NOT_MEASURED","has","length","push","changed","storeSoon","closeIdle","filter","deliverTo","receiver","then","deliver","getOpen","subscribe","listener","delete","destroy","clearTimeout","storeTimer","store","Date","slotCount","ready","toResult","map","toOpenSeries","storage","setTimeout","state","setItem","storageKey","JSON","stringify","catch","readStored","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/series-recorder.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toResult = exports.toOpenSeries = exports.slotCount = exports.readStored = exports.isLive = exports.SLOT_MS = exports.NOT_MEASURED = exports.MAX_SLOTS = exports.IDLE_CLOSE_MS = void 0;
7
+ /** One slot a second, an hour to a series, and a quarter of an hour without a value ends one. */
8
+ const SLOT_MS = exports.SLOT_MS = 1_000;
9
+ const MAX_SLOTS = exports.MAX_SLOTS = 3_600;
10
+ const IDLE_CLOSE_MS = exports.IDLE_CLOSE_MS = 15 * 60_000;
11
+
12
+ /** A reading dated further from now than this is a stored record, not a live value. */
13
+ const LIVE_TOLERANCE_MS = 2 * 60_000;
14
+
15
+ /** Reading properties that describe a reading rather than measure something. */
16
+ const NOT_MEASURED = exports.NOT_MEASURED = new Set(["memorySlot"]);
17
+
18
+ /** A series as it is kept and stored: plain JSON. */
19
+
20
+ /** Whether a reading is a live value rather than a stored record dated earlier. */
21
+ const isLive = (reading, now) => !(reading.recordedAt instanceof Date) || Math.abs(now - reading.recordedAt.getTime()) <= LIVE_TOLERANCE_MS;
22
+ exports.isLive = isLive;
23
+ const slotCount = series => Math.max(0, ...Object.values(series.values).map(values => values.length));
24
+
25
+ /** Every property's values, all as long as the series. */
26
+ exports.slotCount = slotCount;
27
+ const paddedValues = series => {
28
+ const length = slotCount(series);
29
+ return Object.fromEntries(Object.entries(series.values).map(([property, values]) => [property, [...values, ...Array(length - values.length).fill(null)]]));
30
+ };
31
+ const lastValue = values => {
32
+ for (let slot = values.length - 1; slot >= 0; slot--) {
33
+ const value = values[slot];
34
+ if (value !== null && value !== undefined) {
35
+ return value;
36
+ }
37
+ }
38
+ return undefined;
39
+ };
40
+ const lastValues = series => Object.fromEntries(Object.entries(series.values).flatMap(([property, values]) => {
41
+ const last = lastValue(values);
42
+ return last === undefined ? [] : [[property, last]];
43
+ }));
44
+ const meanValues = values => Object.fromEntries(Object.entries(values).flatMap(([property, slots]) => {
45
+ const present = slots.filter(value => value !== null);
46
+ return present.length === 0 ? [] : [[property, present.reduce((total, value) => total + value, 0) / present.length]];
47
+ }));
48
+
49
+ /** A closed series as a result: its values in `series`, their means in `data`. */
50
+ const toResult = series => {
51
+ const start = new Date(series.start);
52
+ const values = paddedValues(series);
53
+ return {
54
+ id: `series:${series.deviceData.sn || series.deviceData.id}:${series.measurementTypeKey}:${start.toISOString()}`,
55
+ deviceData: series.deviceData,
56
+ data: {
57
+ measurementTypeKey: series.measurementTypeKey,
58
+ ...meanValues(values),
59
+ recordedAt: start
60
+ },
61
+ series: {
62
+ measurementTypeKey: series.measurementTypeKey,
63
+ start,
64
+ periodMs: SLOT_MS,
65
+ values
66
+ }
67
+ };
68
+ };
69
+
70
+ /** A series being recorded, as screens see it. */
71
+ exports.toResult = toResult;
72
+ const toOpenSeries = series => ({
73
+ deviceData: series.deviceData,
74
+ measurementTypeKey: series.measurementTypeKey,
75
+ start: new Date(series.start),
76
+ periodMs: SLOT_MS,
77
+ values: paddedValues(series),
78
+ updatedAt: new Date(series.updatedAt),
79
+ latest: lastValues(series)
80
+ });
81
+
82
+ /** What an earlier run stored, or `undefined` when nothing readable was. */
83
+ exports.toOpenSeries = toOpenSeries;
84
+ const readStored = async (storage, key) => {
85
+ try {
86
+ const stored = await storage.getItem(key);
87
+ return stored ? JSON.parse(stored) : undefined;
88
+ } catch {
89
+ return undefined;
90
+ }
91
+ };
92
+ exports.readStored = readStored;
93
+ //# sourceMappingURL=series-slots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SLOT_MS","exports","MAX_SLOTS","IDLE_CLOSE_MS","LIVE_TOLERANCE_MS","NOT_MEASURED","Set","isLive","reading","now","recordedAt","Date","Math","abs","getTime","slotCount","series","max","Object","values","map","length","paddedValues","fromEntries","entries","property","Array","fill","lastValue","slot","value","undefined","lastValues","flatMap","last","meanValues","slots","present","filter","reduce","total","toResult","start","id","deviceData","sn","measurementTypeKey","toISOString","data","periodMs","toOpenSeries","updatedAt","latest","readStored","storage","key","stored","getItem","JSON","parse"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/series-slots.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=measurement-series.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/measurement-series.ts"],"mappings":"","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.DEFAULT_SYNC_LOOKBACK_DAYS = exports.DEFAULT_HEALTH_SYNC_CHUNK_SIZE = void 0;
6
+ exports.SERIES_SLOT_MS = exports.SERIES_REREAD_HOURS = exports.DEFAULT_SYNC_LOOKBACK_DAYS = exports.DEFAULT_HEALTH_SYNC_CHUNK_SIZE = exports.DAILY_REREAD_DAYS = void 0;
7
7
  /**
8
8
  * Keeps provider pages comfortably below Medplum's synchronous request limit.
9
9
  * The save helper also enforces the byte limit because an observation's size
@@ -13,4 +13,17 @@ const DEFAULT_HEALTH_SYNC_CHUNK_SIZE = exports.DEFAULT_HEALTH_SYNC_CHUNK_SIZE =
13
13
 
14
14
  /** How far back the first import of a type reaches when no watermark exists yet. */
15
15
  const DEFAULT_SYNC_LOOKBACK_DAYS = exports.DEFAULT_SYNC_LOOKBACK_DAYS = 30;
16
+
17
+ /**
18
+ * How many already-imported days a daily total or summary is read again for:
19
+ * a wearable that syncs late still changes them. A day it changes later than
20
+ * this keeps the total imported before.
21
+ */
22
+ const DAILY_REREAD_DAYS = exports.DAILY_REREAD_DAYS = 7;
23
+
24
+ /** A `series` slot: a minute, the finest step both health stores average by. */
25
+ const SERIES_SLOT_MS = exports.SERIES_SLOT_MS = 60_000;
26
+
27
+ /** How many already-imported hours a `series` type reads again, for a watch that syncs a little late. */
28
+ const SERIES_REREAD_HOURS = exports.SERIES_REREAD_HOURS = 3;
16
29
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_HEALTH_SYNC_CHUNK_SIZE","exports","DEFAULT_SYNC_LOOKBACK_DAYS"],"sourceRoot":"../../../../src","sources":["modules/data-sync/constants.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA,MAAMA,8BAA8B,GAAAC,OAAA,CAAAD,8BAAA,GAAG,GAAG;;AAE1C;AACA,MAAME,0BAA0B,GAAAD,OAAA,CAAAC,0BAAA,GAAG,EAAE","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_HEALTH_SYNC_CHUNK_SIZE","exports","DEFAULT_SYNC_LOOKBACK_DAYS","DAILY_REREAD_DAYS","SERIES_SLOT_MS","SERIES_REREAD_HOURS"],"sourceRoot":"../../../../src","sources":["modules/data-sync/constants.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA,MAAMA,8BAA8B,GAAAC,OAAA,CAAAD,8BAAA,GAAG,GAAG;;AAE1C;AACA,MAAME,0BAA0B,GAAAD,OAAA,CAAAC,0BAAA,GAAG,EAAE;;AAErC;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAAF,OAAA,CAAAE,iBAAA,GAAG,CAAC;;AAE3B;AACA,MAAMC,cAAc,GAAAH,OAAA,CAAAG,cAAA,GAAG,MAAM;;AAE7B;AACA,MAAMC,mBAAmB,GAAAJ,OAAA,CAAAI,mBAAA,GAAG,CAAC","ignoreList":[]}
@@ -106,7 +106,8 @@ class BaseHealthSyncService {
106
106
  const {
107
107
  observationBodies,
108
108
  observationSyncIds,
109
- deletedObservationSyncIds,
109
+ observationRecordIds,
110
+ deletedRecordIds,
110
111
  hasMore: currentHasMore,
111
112
  anchors
112
113
  } = await this.dataProcessor.getObservationBodiesForType(measurementTypeKey, data, latestValidStartDate);
@@ -114,8 +115,8 @@ class BaseHealthSyncService {
114
115
  if (this.stateManager.shouldStopSync) {
115
116
  break;
116
117
  }
117
- const entries = this.dataProcessor.generateObservationEntries(observationBodies, observationSyncIds, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
118
- if ((entries.length !== 0 || deletedObservationSyncIds.length !== 0) && !this.stateManager.shouldStopSync) {
118
+ const entries = this.dataProcessor.generateObservationEntries(observationBodies, observationSyncIds, observationRecordIds, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
119
+ if ((entries.length !== 0 || deletedRecordIds.length !== 0) && !this.stateManager.shouldStopSync) {
119
120
  try {
120
121
  if (entries.length !== 0) {
121
122
  const startedAt = Date.now();
@@ -136,8 +137,8 @@ class BaseHealthSyncService {
136
137
  this.stateManager.addResult(result);
137
138
  this.progressManager.incrementSyncedObservations(measurementTypeKey, savedCount, createdCount);
138
139
  }
139
- if (deletedObservationSyncIds.length !== 0) {
140
- await this.storageManager.deleteObservations(deletedObservationSyncIds, this.patientId);
140
+ if (deletedRecordIds.length !== 0) {
141
+ await this.storageManager.deleteObservations(deletedRecordIds, this.patientId);
141
142
  }
142
143
  this.storageManager.saveAnchors(anchors);
143
144
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"names":["_telemetry","require","_constants","_healthSyncBatchError","_healthSyncKeys","_retrySave","_dataProcessor","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","adapter","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","provider","dataProcessor","DataProcessor","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","getTotalCount","getData","convert","startSync","once","withOvokSpan","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","getHealthDataMode","mode","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasMore","observationBodies","observationSyncIds","deletedObservationSyncIds","currentHasMore","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","withSyncRetries","saveObservations","responseEntries","entry","savedCount","filter","response","status","startsWith","createdCount","recordOvokMetric","recordOvokDuration","addResult","incrementSyncedObservations","deleteObservations","saveAnchors","isSyncRetryCancelled","toHealthSyncError","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_telemetry","require","_constants","_healthSyncBatchError","_healthSyncKeys","_retrySave","_dataProcessor","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","adapter","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","provider","dataProcessor","DataProcessor","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","getTotalCount","getData","convert","startSync","once","withOvokSpan","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","getHealthDataMode","mode","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasMore","observationBodies","observationSyncIds","observationRecordIds","deletedRecordIds","currentHasMore","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","withSyncRetries","saveObservations","responseEntries","entry","savedCount","filter","response","status","startsWith","createdCount","recordOvokMetric","recordOvokDuration","addResult","incrementSyncedObservations","deleteObservations","saveAnchors","isSyncRetryCancelled","toHealthSyncError","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,6 @@ var _getLatestValidStartDate = require("../../utils/get-latest-valid-start-date.
13
13
  var _groupSamplesByInterval = require("../../utils/group-samples-by-interval.js");
14
14
  var _groupSleepSamples = require("../../utils/group-sleep-samples.js");
15
15
  var _healthDataCatalog = require("../../utils/health-data-catalog.js");
16
- var _isDailyAggregateMode = require("../../utils/is-daily-aggregate-mode.js");
17
16
  /* eslint-disable max-lines */
18
17
 
19
18
  class DataProcessor {
@@ -94,7 +93,7 @@ class DataProcessor {
94
93
  typeIdentifier,
95
94
  result: await this.getDataFromProviderFunction({
96
95
  typeIdentifier: typeIdentifier,
97
- startDate: (0, _isDailyAggregateMode.isDailyAggregateMode)(mode) ? data.minDate?.toISOString() : latestValidStartDate?.toISOString(),
96
+ startDate: latestValidStartDate?.toISOString(),
98
97
  anchor,
99
98
  chunkSize: this.chunkSize,
100
99
  mode
@@ -107,10 +106,9 @@ class DataProcessor {
107
106
  const allData = results.flatMap(({
108
107
  result
109
108
  }) => result.data);
110
- const deletedObservationSyncIds = results.flatMap(({
111
- typeIdentifier,
109
+ const deletedRecordIds = results.flatMap(({
112
110
  result
113
- }) => (result.deletedRecordIds ?? []).map(recordId => (0, _getHealthRecordSyncId.getHealthRecordDeletionSyncId)(typeIdentifier, recordId, measurementTypeKey, this.provider)));
111
+ }) => result.deletedRecordIds ?? []);
114
112
  const dataGroups = this.provider === "apple-health" && measurementTypeKey === _healthSyncKeys.HealthDataType.sleep ? (0, _groupSleepSamples.groupSleepSamples)(allData) : this.provider === "apple-health" && measurementTypeKey === _core.MeasurementTypeKey.bloodPressure ? (0, _groupSamplesByInterval.groupSamplesByInterval)(allData) : allData.map(data => [data]);
115
113
  const observationBodies = await Promise.all(dataGroups.map(group => this.getConverterFunction({
116
114
  data: group,
@@ -124,21 +122,26 @@ class DataProcessor {
124
122
  typeIdentifierCodeDisplays
125
123
  })));
126
124
  const observationSyncIds = dataGroups.map(group => (0, _getHealthRecordSyncId.getHealthRecordSyncId)(group[0], measurementTypeKey));
125
+
126
+ // A group is named after its first record, as its sync id is.
127
+ const observationRecordIds = dataGroups.map(group => (0, _getHealthRecordSyncId.getHealthRecordSourceId)(group[0]));
127
128
  return {
128
129
  observationBodies,
129
130
  observationSyncIds,
130
- deletedObservationSyncIds,
131
+ observationRecordIds,
132
+ deletedRecordIds,
131
133
  hasMore: results.some(({
132
134
  result
133
135
  }) => result.hasMore ?? ((result.data.length >= this.chunkSize || (result.deletedRecordIds?.length ?? 0) >= this.chunkSize) && Boolean(result.anchor))),
134
136
  anchors: newAnchors
135
137
  };
136
138
  }
137
- generateObservationEntries(observationBodies, observationSyncIds, mode) {
139
+ generateObservationEntries(observationBodies, observationSyncIds, observationRecordIds, mode) {
138
140
  return (0, _generateObservationEntry.generateObservationEntry)({
139
141
  groupedObservationBodies: observationBodies,
140
142
  provider: this.provider,
141
143
  groupedObservationSyncIds: observationSyncIds,
144
+ groupedRecordIds: observationRecordIds,
142
145
  mode,
143
146
  patientId: this.patientId
144
147
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_healthSyncKeys","_generateObservationEntry","_getHealthRecordSyncId","_getLatestObservationDatesByCode","_getLatestValidStartDate","_groupSamplesByInterval","_groupSleepSamples","_healthDataCatalog","_isDailyAggregateMode","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","entries","Object","flatMap","key","data","typeIdentifiers","map","typeIdentifier","code","String","getHealthDataCoding","getHealthDataMode","mode","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","totalCounts","Promise","all","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","configuredCodings","system","display","catalogCoding","undefined","typeIdentifierCodes","fromEntries","typeIdentifierCodeSystems","typeIdentifierCodeDisplays","results","result","isDailyAggregateMode","minDate","newAnchors","flat","filter","Boolean","allData","deletedObservationSyncIds","deletedRecordIds","recordId","getHealthRecordDeletionSyncId","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","groupSamplesByInterval","observationBodies","group","length","observationSyncIds","getHealthRecordSyncId","hasMore","some","anchors","generateObservationEntries","generateObservationEntry","groupedObservationBodies","groupedObservationSyncIds","getLatestValidStartDate","latestObservationDates","resolvedMode","resolvedData","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_healthSyncKeys","_generateObservationEntry","_getHealthRecordSyncId","_getLatestObservationDatesByCode","_getLatestValidStartDate","_groupSamplesByInterval","_groupSleepSamples","_healthDataCatalog","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","entries","Object","flatMap","key","data","typeIdentifiers","map","typeIdentifier","code","String","getHealthDataCoding","getHealthDataMode","mode","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","totalCounts","Promise","all","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","configuredCodings","system","display","catalogCoding","undefined","typeIdentifierCodes","fromEntries","typeIdentifierCodeSystems","typeIdentifierCodeDisplays","results","result","newAnchors","flat","filter","Boolean","allData","deletedRecordIds","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","groupSamplesByInterval","observationBodies","group","length","observationSyncIds","getHealthRecordSyncId","observationRecordIds","getHealthRecordSourceId","hasMore","some","anchors","generateObservationEntries","generateObservationEntry","groupedObservationBodies","groupedObservationSyncIds","groupedRecordIds","getLatestValidStartDate","latestObservationDates","resolvedMode","resolvedData","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.StorageManager = void 0;
7
- var _fhirSystems = require("../../utils/fhir-systems.js");
7
+ var _getHealthRecordSyncId = require("../../utils/get-health-record-sync-id.js");
8
8
  var _saveBundleObservations = require("../../utils/save-bundle-observations.js");
9
9
  class StorageManager {
10
10
  /**
@@ -35,12 +35,18 @@ class StorageManager {
35
35
  client: this.client
36
36
  });
37
37
  }
38
- async deleteObservations(syncIds, patientId) {
39
- for (const syncId of new Set(syncIds)) {
38
+
39
+ /** Deletes the observations imported from records the provider reports deleted. */
40
+ async deleteObservations(recordIds, patientId) {
41
+ for (const recordId of new Set(recordIds)) {
42
+ const {
43
+ system,
44
+ value
45
+ } = (0, _getHealthRecordSyncId.getHealthRecordIdentifier)(this.provider, recordId);
40
46
  const observations = [];
41
47
  for await (const page of this.client.searchResourcePages("Observation", {
42
48
  subject: `Patient/${patientId}`,
43
- identifier: `${_fhirSystems.OBSERVATION_SYNC_ID_SYSTEM}|${this.provider}:${syncId}`
49
+ identifier: `${system}|${value}`
44
50
  })) {
45
51
  observations.push(...page);
46
52
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_fhirSystems","require","_saveBundleObservations","StorageManager","inMemoryAnchors","Map","constructor","client","provider","saveObservations","entries","saveBundleObservations","deleteObservations","syncIds","patientId","syncId","Set","observations","page","searchResourcePages","subject","identifier","OBSERVATION_SYNC_ID_SYSTEM","push","Promise","all","filter","observation","id","map","deleteResource","saveAnchor","typeIdentifier","anchor","key","anchorKey","clientStorage","setString","set","getAnchor","getString","get","saveAnchors","anchors","forEach","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/storage-manager.ts"],"mappings":";;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEO,MAAME,cAAc,CAAC;EAC1B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACmBC,eAAe,GAAG,IAAIC,GAAG,CAAiB,CAAC;EAE5DC,WAAWA,CACDC,MAAkB,EAClBC,QAAwB,EAChC;IAAA,KAFQD,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,QAAwB,GAAxBA,QAAwB;EAC/B;EAEH,MAAMC,gBAAgBA,CACpBC,OAAgE,EAClC;IAC9B,OAAO,IAAAC,8CAAsB,EAAC;MAC5BD,OAAO;MACPH,MAAM,EAAE,IAAI,CAACA;IACf,CAAC,CAAC;EACJ;EAEA,MAAMK,kBAAkBA,CACtBC,OAAiB,EACjBC,SAAiB,EACF;IACf,KAAK,MAAMC,MAAM,IAAI,IAAIC,GAAG,CAACH,OAAO,CAAC,EAAE;MACrC,MAAMI,YAAY,GAAG,EAAE;MAEvB,WAAW,MAAMC,IAAI,IAAI,IAAI,CAACX,MAAM,CAACY,mBAAmB,CAAC,aAAa,EAAE;QACtEC,OAAO,EAAE,WAAWN,SAAS,EAAE;QAC/BO,UAAU,EAAE,GAAGC,uCAA0B,IAAI,IAAI,CAACd,QAAQ,IAAIO,MAAM;MACtE,CAAC,CAAC,EAAE;QACFE,YAAY,CAACM,IAAI,CAAC,GAAGL,IAAI,CAAC;MAC5B;MAEA,MAAMM,OAAO,CAACC,GAAG,CACfR,YAAY,CACTS,MAAM,CAAEC,WAAW,IAAKA,WAAW,CAACC,EAAE,CAAC,CACvCC,GAAG,CAAEF,WAAW,IACf,IAAI,CAACpB,MAAM,CAACuB,cAAc,CAAC,aAAa,EAAEH,WAAW,CAACC,EAAG,CAC3D,CACJ,CAAC;IACH;EACF;EAEAG,UAAUA,CAACC,cAAsB,EAAEC,MAAc,EAAQ;IACvD,MAAMC,GAAG,GAAG,IAAI,CAACC,SAAS,CAACH,cAAc,CAAC;IAE1C,IAAI,IAAI,CAACzB,MAAM,CAAC6B,aAAa,EAAE;MAC7B,IAAI,CAAC7B,MAAM,CAAC6B,aAAa,CAACC,SAAS,CAACH,GAAG,EAAED,MAAM,CAAC;MAEhD;IACF;IAEA,IAAI,CAAC7B,eAAe,CAACkC,GAAG,CAACJ,GAAG,EAAED,MAAM,CAAC;EACvC;EAEAM,SAASA,CAACP,cAAsB,EAAsB;IACpD,MAAME,GAAG,GAAG,IAAI,CAACC,SAAS,CAACH,cAAc,CAAC;IAE1C,OAAO,IAAI,CAACzB,MAAM,CAAC6B,aAAa,GAC5B,IAAI,CAAC7B,MAAM,CAAC6B,aAAa,CAACI,SAAS,CAACN,GAAG,CAAC,GACxC,IAAI,CAAC9B,eAAe,CAACqC,GAAG,CAACP,GAAG,CAAC;EACnC;EAEQC,SAASA,CAACH,cAAsB,EAAU;IAChD,OAAO,GAAG,IAAI,CAACxB,QAAQ,SAASwB,cAAc,SAAS;EACzD;EAEAU,WAAWA,CACTC,OAA0D,EACpD;IACNA,OAAO,CAACC,OAAO,CAAC,CAAC;MAAEZ,cAAc;MAAEC;IAAO,CAAC,KAAK;MAC9C,IAAI,CAACF,UAAU,CAACC,cAAc,EAAEC,MAAM,CAAC;IACzC,CAAC,CAAC;EACJ;AACF;AAACY,OAAA,CAAA1C,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["_getHealthRecordSyncId","require","_saveBundleObservations","StorageManager","inMemoryAnchors","Map","constructor","client","provider","saveObservations","entries","saveBundleObservations","deleteObservations","recordIds","patientId","recordId","Set","system","value","getHealthRecordIdentifier","observations","page","searchResourcePages","subject","identifier","push","Promise","all","filter","observation","id","map","deleteResource","saveAnchor","typeIdentifier","anchor","key","anchorKey","clientStorage","setString","set","getAnchor","getString","get","saveAnchors","anchors","forEach","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/storage-manager.ts"],"mappings":";;;;;;AAIA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEO,MAAME,cAAc,CAAC;EAC1B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACmBC,eAAe,GAAG,IAAIC,GAAG,CAAiB,CAAC;EAE5DC,WAAWA,CACDC,MAAkB,EAClBC,QAAwB,EAChC;IAAA,KAFQD,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,QAAwB,GAAxBA,QAAwB;EAC/B;EAEH,MAAMC,gBAAgBA,CACpBC,OAAgE,EAClC;IAC9B,OAAO,IAAAC,8CAAsB,EAAC;MAC5BD,OAAO;MACPH,MAAM,EAAE,IAAI,CAACA;IACf,CAAC,CAAC;EACJ;;EAEA;EACA,MAAMK,kBAAkBA,CACtBC,SAAmB,EACnBC,SAAiB,EACF;IACf,KAAK,MAAMC,QAAQ,IAAI,IAAIC,GAAG,CAACH,SAAS,CAAC,EAAE;MACzC,MAAM;QAAEI,MAAM;QAAEC;MAAM,CAAC,GAAG,IAAAC,gDAAyB,EAAC,IAAI,CAACX,QAAQ,EAAEO,QAAQ,CAAC;MAC5E,MAAMK,YAAY,GAAG,EAAE;MAEvB,WAAW,MAAMC,IAAI,IAAI,IAAI,CAACd,MAAM,CAACe,mBAAmB,CAAC,aAAa,EAAE;QACtEC,OAAO,EAAE,WAAWT,SAAS,EAAE;QAC/BU,UAAU,EAAE,GAAGP,MAAM,IAAIC,KAAK;MAChC,CAAC,CAAC,EAAE;QACFE,YAAY,CAACK,IAAI,CAAC,GAAGJ,IAAI,CAAC;MAC5B;MAEA,MAAMK,OAAO,CAACC,GAAG,CACfP,YAAY,CACTQ,MAAM,CAAEC,WAAW,IAAKA,WAAW,CAACC,EAAE,CAAC,CACvCC,GAAG,CAAEF,WAAW,IACf,IAAI,CAACtB,MAAM,CAACyB,cAAc,CAAC,aAAa,EAAEH,WAAW,CAACC,EAAG,CAC3D,CACJ,CAAC;IACH;EACF;EAEAG,UAAUA,CAACC,cAAsB,EAAEC,MAAc,EAAQ;IACvD,MAAMC,GAAG,GAAG,IAAI,CAACC,SAAS,CAACH,cAAc,CAAC;IAE1C,IAAI,IAAI,CAAC3B,MAAM,CAAC+B,aAAa,EAAE;MAC7B,IAAI,CAAC/B,MAAM,CAAC+B,aAAa,CAACC,SAAS,CAACH,GAAG,EAAED,MAAM,CAAC;MAEhD;IACF;IAEA,IAAI,CAAC/B,eAAe,CAACoC,GAAG,CAACJ,GAAG,EAAED,MAAM,CAAC;EACvC;EAEAM,SAASA,CAACP,cAAsB,EAAsB;IACpD,MAAME,GAAG,GAAG,IAAI,CAACC,SAAS,CAACH,cAAc,CAAC;IAE1C,OAAO,IAAI,CAAC3B,MAAM,CAAC+B,aAAa,GAC5B,IAAI,CAAC/B,MAAM,CAAC+B,aAAa,CAACI,SAAS,CAACN,GAAG,CAAC,GACxC,IAAI,CAAChC,eAAe,CAACuC,GAAG,CAACP,GAAG,CAAC;EACnC;EAEQC,SAASA,CAACH,cAAsB,EAAU;IAChD,OAAO,GAAG,IAAI,CAAC1B,QAAQ,SAAS0B,cAAc,SAAS;EACzD;EAEAU,WAAWA,CACTC,OAA0D,EACpD;IACNA,OAAO,CAACC,OAAO,CAAC,CAAC;MAAEZ,cAAc;MAAEC;IAAO,CAAC,KAAK;MAC9C,IAAI,CAACF,UAAU,CAACC,cAAc,EAAEC,MAAM,CAAC;IACzC,CAAC,CAAC;EACJ;AACF;AAACY,OAAA,CAAA5C,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -3,10 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isAggregatedHealthData = void 0;
6
+ exports.isSeriesHealthData = exports.isAggregatedHealthData = void 0;
7
7
  const isAggregatedHealthData = value => {
8
8
  const candidate = value;
9
9
  return candidate?.kind === "daily-total" || candidate?.kind === "daily-summary";
10
10
  };
11
+
12
+ /** One finished hour of a quantity in `series` mode: a value a minute, `null` for a minute without one. */
11
13
  exports.isAggregatedHealthData = isAggregatedHealthData;
14
+ const isSeriesHealthData = value => value?.kind === "series";
15
+ exports.isSeriesHealthData = isSeriesHealthData;
12
16
  //# sourceMappingURL=health-data.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isAggregatedHealthData","value","candidate","kind","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-data.ts"],"mappings":";;;;;;AAaO,MAAMA,sBAAsB,GACjCC,KAAc,IACoB;EAClC,MAAMC,SAAS,GAAGD,KAAkD;EAEpE,OACEC,SAAS,EAAEC,IAAI,KAAK,aAAa,IAAID,SAAS,EAAEC,IAAI,KAAK,eAAe;AAE5E,CAAC;AAACC,OAAA,CAAAJ,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["isAggregatedHealthData","value","candidate","kind","exports","isSeriesHealthData"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-data.ts"],"mappings":";;;;;;AAaA,MAAMA,sBAAsB,GAC1BC,KAAc,IACoB;EAClC,MAAMC,SAAS,GAAGD,KAAkD;EAEpE,OACEC,SAAS,EAAEC,IAAI,KAAK,aAAa,IAAID,SAAS,EAAEC,IAAI,KAAK,eAAe;AAE5E,CAAC;;AAED;AAAAC,OAAA,CAAAJ,sBAAA,GAAAA,sBAAA;AAWA,MAAMK,kBAAkB,GAAIJ,KAAc,IACvCA,KAAK,EAA4CE,IAAI,KAAK,QAAQ;AAACC,OAAA,CAAAC,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","HealthDataType","exports","getHealthDataMode","key","configuredMode","MeasurementTypeKey","stepCount","distance","activeEnergy","flightsClimbed","exerciseMinutes","heartRate","heartRateSummary","sleep","workout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-sync-keys.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAOA;AAAA,IACKC,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA,EAAdA,cAAc;AAsBnB,MAAME,iBAAiB,GAAGA,CACxBC,GAAkB,EAClBC,cAA+B,KACZ;EACnB,IAAIA,cAAc,EAAE;IAClB,OAAOA,cAAc;EACvB;EAEA,QAAQD,GAAG;IACT,KAAKE,wBAAkB,CAACC,SAAS;IACjC,KAAKN,cAAc,CAACO,QAAQ;IAC5B,KAAKP,cAAc,CAACQ,YAAY;IAChC,KAAKR,cAAc,CAACS,cAAc;IAClC,KAAKT,cAAc,CAACU,eAAe;MACjC,OAAO,aAAa;IACtB,KAAKL,wBAAkB,CAACM,SAAS;IACjC,KAAKX,cAAc,CAACY,gBAAgB;MAClC,OAAO,eAAe;IACxB,KAAKZ,cAAc,CAACa,KAAK;IACzB,KAAKb,cAAc,CAACc,OAAO;MACzB,OAAO,SAAS;IAClB;MACE,OAAO,OAAO;EAClB;AACF,CAAC;AAACb,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","HealthDataType","exports","getHealthDataMode","key","configuredMode","MeasurementTypeKey","stepCount","distance","activeEnergy","flightsClimbed","exerciseMinutes","heartRate","heartRateSummary","sleep","workout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-sync-keys.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAOA;AAAA,IACKC,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA,EAAdA,cAAc;AAyBnB,MAAME,iBAAiB,GAAGA,CACxBC,GAAkB,EAClBC,cAA+B,KACZ;EACnB,IAAIA,cAAc,EAAE;IAClB,OAAOA,cAAc;EACvB;EAEA,QAAQD,GAAG;IACT,KAAKE,wBAAkB,CAACC,SAAS;IACjC,KAAKN,cAAc,CAACO,QAAQ;IAC5B,KAAKP,cAAc,CAACQ,YAAY;IAChC,KAAKR,cAAc,CAACS,cAAc;IAClC,KAAKT,cAAc,CAACU,eAAe;MACjC,OAAO,aAAa;IACtB,KAAKL,wBAAkB,CAACM,SAAS;IACjC,KAAKX,cAAc,CAACY,gBAAgB;MAClC,OAAO,eAAe;IACxB,KAAKZ,cAAc,CAACa,KAAK;IACzB,KAAKb,cAAc,CAACc,OAAO;MACzB,OAAO,SAAS;IAClB;MACE,OAAO,OAAO;EAClB;AACF,CAAC;AAACb,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}