@ovok/native 1.11.2 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/lib/commonjs/modules/bt-device/constants/device-model.js +85 -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-sync-coordinator.js +34 -1
  30. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  31. package/lib/commonjs/modules/bt-management/services/bt-manager.js +23 -1
  32. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  33. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js +2 -1
  34. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
  35. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +13 -12
  36. package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  37. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +4 -3
  38. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  39. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +10 -1
  40. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  41. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +6 -0
  42. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  43. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js +4 -3
  44. package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
  45. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js +2 -1
  46. package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
  47. package/lib/commonjs/modules/bt-management/services/series-recorder.js +176 -0
  48. package/lib/commonjs/modules/bt-management/services/series-recorder.js.map +1 -0
  49. package/lib/commonjs/modules/bt-management/services/series-slots.js +93 -0
  50. package/lib/commonjs/modules/bt-management/services/series-slots.js.map +1 -0
  51. package/lib/commonjs/modules/bt-management/types/measurement-series.js +6 -0
  52. package/lib/commonjs/modules/bt-management/types/measurement-series.js.map +1 -0
  53. package/lib/commonjs/modules/data-sync/constants.js +14 -1
  54. package/lib/commonjs/modules/data-sync/constants.js.map +1 -1
  55. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +6 -5
  56. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  57. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +10 -7
  58. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  59. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js +10 -4
  60. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  61. package/lib/commonjs/modules/data-sync/types/health-data.js +5 -1
  62. package/lib/commonjs/modules/data-sync/types/health-data.js.map +1 -1
  63. package/lib/commonjs/modules/data-sync/types/health-sync-keys.js.map +1 -1
  64. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +19 -5
  65. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  66. package/lib/commonjs/modules/data-sync/utils/fhir-systems.js +4 -1
  67. package/lib/commonjs/modules/data-sync/utils/fhir-systems.js.map +1 -1
  68. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +10 -5
  69. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  70. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +18 -12
  71. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  72. package/lib/commonjs/modules/data-sync/utils/get-latest-valid-start-date.js +6 -1
  73. package/lib/commonjs/modules/data-sync/utils/get-latest-valid-start-date.js.map +1 -1
  74. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +4 -0
  75. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  76. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +3 -2
  77. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  78. package/lib/commonjs/modules/data-sync/utils/health-connect-series.js +101 -0
  79. package/lib/commonjs/modules/data-sync/utils/health-connect-series.js.map +1 -0
  80. package/lib/commonjs/modules/data-sync/utils/healthkit-series.js +44 -0
  81. package/lib/commonjs/modules/data-sync/utils/healthkit-series.js.map +1 -0
  82. package/lib/commonjs/modules/data-sync/utils/hourly-series.js +57 -0
  83. package/lib/commonjs/modules/data-sync/utils/hourly-series.js.map +1 -0
  84. package/lib/commonjs/modules/data-sync/utils/replaces-saved-observation.js +13 -0
  85. package/lib/commonjs/modules/data-sync/utils/replaces-saved-observation.js.map +1 -0
  86. package/lib/module/modules/bt-device/constants/device-model.js +77 -0
  87. package/lib/module/modules/bt-device/constants/device-model.js.map +1 -0
  88. package/lib/module/modules/bt-device/constants/supported-devices.js +21 -1
  89. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  90. package/lib/module/modules/bt-device/hooks/use-supported-devices.js +12 -0
  91. package/lib/module/modules/bt-device/hooks/use-supported-devices.js.map +1 -0
  92. package/lib/module/modules/bt-device/index.js +4 -0
  93. package/lib/module/modules/bt-device/index.js.map +1 -1
  94. package/lib/module/modules/bt-device/types/device-kind.js +2 -0
  95. package/lib/module/modules/bt-device/types/device-kind.js.map +1 -0
  96. package/lib/module/modules/bt-device/utils/device-query.js +50 -0
  97. package/lib/module/modules/bt-device/utils/device-query.js.map +1 -0
  98. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +3 -1
  99. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  100. package/lib/module/modules/bt-management/constants/blood-pressure-translated-exception-map.js +2 -1
  101. package/lib/module/modules/bt-management/constants/blood-pressure-translated-exception-map.js.map +1 -1
  102. package/lib/module/modules/bt-management/constants/measurement-feedback.js +22 -0
  103. package/lib/module/modules/bt-management/constants/measurement-feedback.js.map +1 -0
  104. package/lib/module/modules/bt-management/hooks/use-bt-device.js +9 -8
  105. package/lib/module/modules/bt-management/hooks/use-bt-device.js.map +1 -1
  106. package/lib/module/modules/bt-management/hooks/use-bt-devices.js +37 -0
  107. package/lib/module/modules/bt-management/hooks/use-bt-devices.js.map +1 -0
  108. package/lib/module/modules/bt-management/hooks/use-open-series.js +13 -0
  109. package/lib/module/modules/bt-management/hooks/use-open-series.js.map +1 -0
  110. package/lib/module/modules/bt-management/hooks/use-queued-results.js +10 -0
  111. package/lib/module/modules/bt-management/hooks/use-queued-results.js.map +1 -0
  112. package/lib/module/modules/bt-management/index.js +5 -0
  113. package/lib/module/modules/bt-management/index.js.map +1 -1
  114. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +34 -1
  115. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
  116. package/lib/module/modules/bt-management/services/bt-manager.js +23 -1
  117. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  118. package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js +2 -1
  119. package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
  120. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +13 -12
  121. package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
  122. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +4 -3
  123. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  124. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +10 -1
  125. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  126. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +6 -0
  127. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  128. package/lib/module/modules/bt-management/services/devices/f4/f4.device.js +4 -3
  129. package/lib/module/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
  130. package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js +2 -1
  131. package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
  132. package/lib/module/modules/bt-management/services/series-recorder.js +173 -0
  133. package/lib/module/modules/bt-management/services/series-recorder.js.map +1 -0
  134. package/lib/module/modules/bt-management/services/series-slots.js +85 -0
  135. package/lib/module/modules/bt-management/services/series-slots.js.map +1 -0
  136. package/lib/module/modules/bt-management/types/measurement-series.js +4 -0
  137. package/lib/module/modules/bt-management/types/measurement-series.js.map +1 -0
  138. package/lib/module/modules/data-sync/constants.js +14 -1
  139. package/lib/module/modules/data-sync/constants.js.map +1 -1
  140. package/lib/module/modules/data-sync/services/base-health-sync-service.js +6 -5
  141. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  142. package/lib/module/modules/data-sync/services/managers/data-processor.js +11 -8
  143. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  144. package/lib/module/modules/data-sync/services/managers/storage-manager.js +10 -4
  145. package/lib/module/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  146. package/lib/module/modules/data-sync/types/health-data.js +6 -1
  147. package/lib/module/modules/data-sync/types/health-data.js.map +1 -1
  148. package/lib/module/modules/data-sync/types/health-sync-keys.js.map +1 -1
  149. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +19 -6
  150. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  151. package/lib/module/modules/data-sync/utils/fhir-systems.js +4 -1
  152. package/lib/module/modules/data-sync/utils/fhir-systems.js.map +1 -1
  153. package/lib/module/modules/data-sync/utils/generate-observation-entry.js +10 -5
  154. package/lib/module/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  155. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +16 -11
  156. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  157. package/lib/module/modules/data-sync/utils/get-latest-valid-start-date.js +7 -2
  158. package/lib/module/modules/data-sync/utils/get-latest-valid-start-date.js.map +1 -1
  159. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +4 -0
  160. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  161. package/lib/module/modules/data-sync/utils/get-samples-from-health.js +3 -2
  162. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  163. package/lib/module/modules/data-sync/utils/health-connect-series.js +97 -0
  164. package/lib/module/modules/data-sync/utils/health-connect-series.js.map +1 -0
  165. package/lib/module/modules/data-sync/utils/healthkit-series.js +40 -0
  166. package/lib/module/modules/data-sync/utils/healthkit-series.js.map +1 -0
  167. package/lib/module/modules/data-sync/utils/hourly-series.js +52 -0
  168. package/lib/module/modules/data-sync/utils/hourly-series.js.map +1 -0
  169. package/lib/module/modules/data-sync/utils/replaces-saved-observation.js +8 -0
  170. package/lib/module/modules/data-sync/utils/replaces-saved-observation.js.map +1 -0
  171. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-model.d.ts +35 -0
  172. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-model.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +18 -1
  174. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/src/modules/bt-device/hooks/use-supported-devices.d.ts +9 -0
  176. package/lib/typescript/commonjs/src/modules/bt-device/hooks/use-supported-devices.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts +5 -0
  178. package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/src/modules/bt-device/types/device-kind.d.ts +16 -0
  180. package/lib/typescript/commonjs/src/modules/bt-device/types/device-kind.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/src/modules/bt-device/utils/device-query.d.ts +49 -0
  182. package/lib/typescript/commonjs/src/modules/bt-device/utils/device-query.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  184. package/lib/typescript/commonjs/src/modules/bt-management/constants/blood-pressure-translated-exception-map.d.ts.map +1 -1
  185. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-feedback.d.ts +21 -0
  186. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-feedback.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-device.d.ts +5 -4
  188. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-device.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-devices.d.ts +24 -0
  190. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-devices.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-open-series.d.ts +12 -0
  192. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-open-series.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-queued-results.d.ts +10 -0
  194. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-queued-results.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +5 -0
  196. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  197. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +11 -1
  198. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  199. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +13 -0
  200. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  201. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
  202. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  203. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  204. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +4 -1
  205. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  206. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  207. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
  209. package/lib/typescript/commonjs/src/modules/bt-management/services/series-recorder.d.ts +56 -0
  210. package/lib/typescript/commonjs/src/modules/bt-management/services/series-recorder.d.ts.map +1 -0
  211. package/lib/typescript/commonjs/src/modules/bt-management/services/series-slots.d.ts +36 -0
  212. package/lib/typescript/commonjs/src/modules/bt-management/services/series-slots.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +7 -0
  214. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-series.d.ts +26 -0
  216. package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-series.d.ts.map +1 -0
  217. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts +6 -0
  218. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  219. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts +6 -1
  220. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts +11 -1
  222. package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts.map +1 -1
  223. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  224. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +3 -2
  225. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -1
  227. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  228. package/lib/typescript/commonjs/src/modules/data-sync/types/health-data.d.ts +15 -2
  229. package/lib/typescript/commonjs/src/modules/data-sync/types/health-data.d.ts.map +1 -1
  230. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts +3 -1
  231. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
  232. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +5 -1
  233. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/src/modules/data-sync/utils/fhir-systems.d.ts +3 -1
  235. package/lib/typescript/commonjs/src/modules/data-sync/utils/fhir-systems.d.ts.map +1 -1
  236. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts +3 -1
  237. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -6
  239. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +2 -2
  242. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -2
  244. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-connect-series.d.ts +9 -0
  246. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-connect-series.d.ts.map +1 -0
  247. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-series.d.ts +12 -0
  248. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-series.d.ts.map +1 -0
  249. package/lib/typescript/commonjs/src/modules/data-sync/utils/hourly-series.d.ts +22 -0
  250. package/lib/typescript/commonjs/src/modules/data-sync/utils/hourly-series.d.ts.map +1 -0
  251. package/lib/typescript/commonjs/src/modules/data-sync/utils/replaces-saved-observation.d.ts +7 -0
  252. package/lib/typescript/commonjs/src/modules/data-sync/utils/replaces-saved-observation.d.ts.map +1 -0
  253. package/lib/typescript/module/src/modules/bt-device/constants/device-model.d.ts +35 -0
  254. package/lib/typescript/module/src/modules/bt-device/constants/device-model.d.ts.map +1 -0
  255. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +18 -1
  256. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  257. package/lib/typescript/module/src/modules/bt-device/hooks/use-supported-devices.d.ts +9 -0
  258. package/lib/typescript/module/src/modules/bt-device/hooks/use-supported-devices.d.ts.map +1 -0
  259. package/lib/typescript/module/src/modules/bt-device/index.d.ts +5 -0
  260. package/lib/typescript/module/src/modules/bt-device/index.d.ts.map +1 -1
  261. package/lib/typescript/module/src/modules/bt-device/types/device-kind.d.ts +16 -0
  262. package/lib/typescript/module/src/modules/bt-device/types/device-kind.d.ts.map +1 -0
  263. package/lib/typescript/module/src/modules/bt-device/utils/device-query.d.ts +49 -0
  264. package/lib/typescript/module/src/modules/bt-device/utils/device-query.d.ts.map +1 -0
  265. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  266. package/lib/typescript/module/src/modules/bt-management/constants/blood-pressure-translated-exception-map.d.ts.map +1 -1
  267. package/lib/typescript/module/src/modules/bt-management/constants/measurement-feedback.d.ts +21 -0
  268. package/lib/typescript/module/src/modules/bt-management/constants/measurement-feedback.d.ts.map +1 -0
  269. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-device.d.ts +5 -4
  270. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-device.d.ts.map +1 -1
  271. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-devices.d.ts +24 -0
  272. package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-devices.d.ts.map +1 -0
  273. package/lib/typescript/module/src/modules/bt-management/hooks/use-open-series.d.ts +12 -0
  274. package/lib/typescript/module/src/modules/bt-management/hooks/use-open-series.d.ts.map +1 -0
  275. package/lib/typescript/module/src/modules/bt-management/hooks/use-queued-results.d.ts +10 -0
  276. package/lib/typescript/module/src/modules/bt-management/hooks/use-queued-results.d.ts.map +1 -0
  277. package/lib/typescript/module/src/modules/bt-management/index.d.ts +5 -0
  278. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  279. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +11 -1
  280. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
  281. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +13 -0
  282. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  283. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
  284. package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
  285. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  286. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +4 -1
  287. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  288. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  289. package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
  290. package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
  291. package/lib/typescript/module/src/modules/bt-management/services/series-recorder.d.ts +56 -0
  292. package/lib/typescript/module/src/modules/bt-management/services/series-recorder.d.ts.map +1 -0
  293. package/lib/typescript/module/src/modules/bt-management/services/series-slots.d.ts +36 -0
  294. package/lib/typescript/module/src/modules/bt-management/services/series-slots.d.ts.map +1 -0
  295. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +7 -0
  296. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  297. package/lib/typescript/module/src/modules/bt-management/types/measurement-series.d.ts +26 -0
  298. package/lib/typescript/module/src/modules/bt-management/types/measurement-series.d.ts.map +1 -0
  299. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts +6 -0
  300. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  301. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts +6 -1
  302. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
  303. package/lib/typescript/module/src/modules/data-sync/constants.d.ts +11 -1
  304. package/lib/typescript/module/src/modules/data-sync/constants.d.ts.map +1 -1
  305. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  306. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +3 -2
  307. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  308. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -1
  309. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  310. package/lib/typescript/module/src/modules/data-sync/types/health-data.d.ts +15 -2
  311. package/lib/typescript/module/src/modules/data-sync/types/health-data.d.ts.map +1 -1
  312. package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts +3 -1
  313. package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
  314. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +5 -1
  315. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  316. package/lib/typescript/module/src/modules/data-sync/utils/fhir-systems.d.ts +3 -1
  317. package/lib/typescript/module/src/modules/data-sync/utils/fhir-systems.d.ts.map +1 -1
  318. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts +3 -1
  319. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  320. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -6
  321. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  322. package/lib/typescript/module/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts.map +1 -1
  323. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +2 -2
  324. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  325. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -2
  326. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  327. package/lib/typescript/module/src/modules/data-sync/utils/health-connect-series.d.ts +9 -0
  328. package/lib/typescript/module/src/modules/data-sync/utils/health-connect-series.d.ts.map +1 -0
  329. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-series.d.ts +12 -0
  330. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-series.d.ts.map +1 -0
  331. package/lib/typescript/module/src/modules/data-sync/utils/hourly-series.d.ts +22 -0
  332. package/lib/typescript/module/src/modules/data-sync/utils/hourly-series.d.ts.map +1 -0
  333. package/lib/typescript/module/src/modules/data-sync/utils/replaces-saved-observation.d.ts +7 -0
  334. package/lib/typescript/module/src/modules/data-sync/utils/replaces-saved-observation.d.ts.map +1 -0
  335. package/package.json +1 -1
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getStableObservationId = exports.generateObservationEntry = void 0;
7
7
  var _fhirSystems = require("./fhir-systems.js");
8
+ var _getHealthRecordSyncId = require("./get-health-record-sync-id.js");
8
9
  var _isDailyAggregateMode = require("./is-daily-aggregate-mode.js");
10
+ var _replacesSavedObservation = require("./replaces-saved-observation.js");
9
11
  const getObservationCode = observation => observation.code?.coding?.map(coding => `${coding.system ?? ""}|${coding.code ?? ""}`).join("~") || observation.code?.text || "unknown";
10
12
  const getObservationTime = observation => {
11
13
  if (observation.effectivePeriod) {
@@ -38,11 +40,13 @@ const generateObservationEntry = ({
38
40
  groupedObservationBodies,
39
41
  provider,
40
42
  groupedObservationSyncIds,
43
+ groupedRecordIds,
41
44
  patientId,
42
45
  mode
43
46
  }) => {
44
47
  return groupedObservationBodies.map((observationBodies, groupIndex) => {
45
48
  const fullUrls = observationBodies.map(() => `urn:uuid:${createBundleUuid()}`);
49
+ const recordId = groupedRecordIds?.[groupIndex];
46
50
  return observationBodies.map((observationBody, bodyIndex) => {
47
51
  const syncIdentifier = getStableObservationId({
48
52
  observation: observationBody,
@@ -53,6 +57,7 @@ const generateObservationEntry = ({
53
57
  const fullUrl = fullUrls[bodyIndex];
54
58
  const searchParams = new URLSearchParams();
55
59
  const isDailyAggregate = (0, _isDailyAggregateMode.isDailyAggregateMode)(mode);
60
+ const replaces = (0, _replacesSavedObservation.replacesSavedObservation)(mode);
56
61
  const legacySyncIdentifier = isDailyAggregate && observationBody.id ? `${provider}:${observationBody.id}` : undefined;
57
62
  const syncIdentifiers = Array.from(new Set([syncIdentifier, legacySyncIdentifier].filter(Boolean)));
58
63
  searchParams.set("identifier", syncIdentifiers.map(identifier => `${_fhirSystems.OBSERVATION_SYNC_ID_SYSTEM}|${identifier}`).join(","));
@@ -63,15 +68,15 @@ const generateObservationEntry = ({
63
68
  const observationResource = {
64
69
  ...observationBody
65
70
  };
66
- if (isDailyAggregate) {
71
+ if (replaces) {
67
72
  delete observationResource.id;
68
73
  }
69
74
  return {
70
75
  fullUrl,
71
76
  request: {
72
- method: isDailyAggregate ? "PUT" : "POST",
73
- url: isDailyAggregate ? `Observation?${search}` : "Observation",
74
- ...(isDailyAggregate ? {} : {
77
+ method: replaces ? "PUT" : "POST",
78
+ url: replaces ? `Observation?${search}` : "Observation",
79
+ ...(replaces ? {} : {
75
80
  ifNoneExist: search
76
81
  })
77
82
  },
@@ -83,7 +88,7 @@ const generateObservationEntry = ({
83
88
  }, {
84
89
  system: _fhirSystems.OBSERVATION_SYNC_ID_SYSTEM,
85
90
  value: syncIdentifier
86
- }],
91
+ }, ...(recordId ? [(0, _getHealthRecordSyncId.getHealthRecordIdentifier)(provider, recordId)] : [])],
87
92
  device: {
88
93
  ...(observationBody.device ?? {}),
89
94
  identifier: {
@@ -1 +1 @@
1
- {"version":3,"names":["_fhirSystems","require","_isDailyAggregateMode","getObservationCode","observation","code","coding","map","system","join","text","getObservationTime","effectivePeriod","start","end","effectiveDateTime","slice","getStableObservationId","provider","sourceId","bodyIndex","id","exports","createBundleUuid","cryptoApi","globalThis","crypto","randomUuid","randomUUID","undefined","call","bytes","Array","from","length","Math","floor","random","hex","byte","toString","padStart","generateObservationEntry","groupedObservationBodies","groupedObservationSyncIds","patientId","mode","observationBodies","groupIndex","fullUrls","observationBody","syncIdentifier","fullUrl","searchParams","URLSearchParams","isDailyAggregate","isDailyAggregateMode","legacySyncIdentifier","syncIdentifiers","Set","filter","Boolean","set","identifier","OBSERVATION_SYNC_ID_SYSTEM","search","observationResource","request","method","url","ifNoneExist","resource","OBSERVATION_SYNC_PROVIDER_SYSTEM","value","device","hasMember","reference","flat"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/generate-observation-entry.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fhirSystems","require","_getHealthRecordSyncId","_isDailyAggregateMode","_replacesSavedObservation","getObservationCode","observation","code","coding","map","system","join","text","getObservationTime","effectivePeriod","start","end","effectiveDateTime","slice","getStableObservationId","provider","sourceId","bodyIndex","id","exports","createBundleUuid","cryptoApi","globalThis","crypto","randomUuid","randomUUID","undefined","call","bytes","Array","from","length","Math","floor","random","hex","byte","toString","padStart","generateObservationEntry","groupedObservationBodies","groupedObservationSyncIds","groupedRecordIds","patientId","mode","observationBodies","groupIndex","fullUrls","recordId","observationBody","syncIdentifier","fullUrl","searchParams","URLSearchParams","isDailyAggregate","isDailyAggregateMode","replaces","replacesSavedObservation","legacySyncIdentifier","syncIdentifiers","Set","filter","Boolean","set","identifier","OBSERVATION_SYNC_ID_SYSTEM","search","observationResource","request","method","url","ifNoneExist","resource","OBSERVATION_SYNC_PROVIDER_SYSTEM","value","getHealthRecordIdentifier","device","hasMember","reference","flat"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/generate-observation-entry.ts"],"mappings":"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","ignoreList":[]}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getHealthRecordSyncId = exports.getHealthRecordDeletionSyncId = void 0;
7
- const appleTypesWithoutRecordDiscriminator = new Set(["HKDataTypeIdentifierHeartbeatSeries", "HKStateOfMindTypeIdentifier", "HKWorkoutTypeIdentifier"]);
6
+ exports.getHealthRecordSyncId = exports.getHealthRecordSourceId = exports.getHealthRecordIdentifier = void 0;
7
+ var _fhirSystems = require("./fhir-systems.js");
8
8
  const asText = value => {
9
9
  if (value instanceof Date) {
10
10
  return value.toISOString();
@@ -12,15 +12,22 @@ const asText = value => {
12
12
  return typeof value === "string" || typeof value === "number" ? String(value) : undefined;
13
13
  };
14
14
 
15
+ /** The record's own id: `uuid` in Apple Health, `metadata.id` in Health Connect. */
16
+ const getHealthRecordSourceId = record => {
17
+ const healthRecord = record;
18
+ return asText(healthRecord.uuid ?? healthRecord.metadata?.id);
19
+ };
20
+
15
21
  /**
16
22
  * Builds an import identity from the source record's type and interval.
17
23
  * Values are deliberately excluded so an updated daily total replaces the
18
24
  * previous total instead of creating a second observation.
19
25
  */
26
+ exports.getHealthRecordSourceId = getHealthRecordSourceId;
20
27
  const getHealthRecordSyncId = (record, measurementTypeKey) => {
21
28
  const healthRecord = record;
22
29
  const type = asText(healthRecord.quantityType ?? healthRecord.categoryType ?? healthRecord.correlationType ?? healthRecord.recordType) ?? measurementTypeKey;
23
- const sourceId = asText(healthRecord.uuid ?? healthRecord.metadata?.id);
30
+ const sourceId = getHealthRecordSourceId(record);
24
31
  if (sourceId) {
25
32
  return `${type}:${sourceId}`;
26
33
  }
@@ -37,15 +44,14 @@ const getHealthRecordSyncId = (record, measurementTypeKey) => {
37
44
  };
38
45
 
39
46
  /**
40
- * Health Connect deletion events contain only the source ID. Its imported
41
- * Observation identity therefore uses the measurement key (the wrapper's
42
- * returned record omits RecordType); these Apple sample families likewise
43
- * have no discriminator on the sample object.
47
+ * The identifier of every observation imported from a source record. A deletion
48
+ * reports only the record's id, so the import marks its observations with this
49
+ * and the deletion looks them up by it.
44
50
  */
45
51
  exports.getHealthRecordSyncId = getHealthRecordSyncId;
46
- const getHealthRecordDeletionSyncId = (typeIdentifier, recordId, measurementTypeKey, provider) => {
47
- const type = provider === "android-health-connect" || provider === "apple-health" && appleTypesWithoutRecordDiscriminator.has(typeIdentifier) ? measurementTypeKey : typeIdentifier;
48
- return `${type}:${recordId}`;
49
- };
50
- exports.getHealthRecordDeletionSyncId = getHealthRecordDeletionSyncId;
52
+ const getHealthRecordIdentifier = (provider, recordId) => ({
53
+ system: _fhirSystems.OBSERVATION_SYNC_RECORD_SYSTEM,
54
+ value: `${provider}:${recordId}`
55
+ });
56
+ exports.getHealthRecordIdentifier = getHealthRecordIdentifier;
51
57
  //# sourceMappingURL=get-health-record-sync-id.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["appleTypesWithoutRecordDiscriminator","Set","asText","value","Date","toISOString","String","undefined","getHealthRecordSyncId","record","measurementTypeKey","healthRecord","type","quantityType","categoryType","correlationType","recordType","sourceId","uuid","metadata","id","start","startDate","startTime","end","endDate","endTime","time","exports","getHealthRecordDeletionSyncId","typeIdentifier","recordId","provider","has"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-health-record-sync-id.ts"],"mappings":";;;;;;AAcA,MAAMA,oCAAoC,GAAG,IAAIC,GAAG,CAAC,CACnD,qCAAqC,EACrC,6BAA6B,EAC7B,yBAAyB,CAC1B,CAAC;AAEF,MAAMC,MAAM,GAAIC,KAAc,IAAyB;EACrD,IAAIA,KAAK,YAAYC,IAAI,EAAE;IACzB,OAAOD,KAAK,CAACE,WAAW,CAAC,CAAC;EAC5B;EAEA,OAAO,OAAOF,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,GACzDG,MAAM,CAACH,KAAK,CAAC,GACbI,SAAS;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,qBAAqB,GAAGA,CAC5BC,MAAe,EACfC,kBAA0B,KACH;EACvB,MAAMC,YAAY,GAAGF,MAA0B;EAE/C,MAAMG,IAAI,GACRV,MAAM,CACJS,YAAY,CAACE,YAAY,IACvBF,YAAY,CAACG,YAAY,IACzBH,YAAY,CAACI,eAAe,IAC5BJ,YAAY,CAACK,UACjB,CAAC,IAAIN,kBAAkB;EAEzB,MAAMO,QAAQ,GAAGf,MAAM,CAACS,YAAY,CAACO,IAAI,IAAIP,YAAY,CAACQ,QAAQ,EAAEC,EAAE,CAAC;EAEvE,IAAIH,QAAQ,EAAE;IACZ,OAAO,GAAGL,IAAI,IAAIK,QAAQ,EAAE;EAC9B;EAEA,MAAMI,KAAK,GAAGnB,MAAM,CAACS,YAAY,CAACW,SAAS,IAAIX,YAAY,CAACY,SAAS,CAAC;EACtE,MAAMC,GAAG,GAAGtB,MAAM,CAACS,YAAY,CAACc,OAAO,IAAId,YAAY,CAACe,OAAO,CAAC;EAEhE,IAAIL,KAAK,IAAIG,GAAG,EAAE;IAChB,OAAO,GAAGZ,IAAI,IAAIS,KAAK,IAAIG,GAAG,IAAIA,GAAG,IAAIH,KAAK,EAAE;EAClD;EAEA,MAAMM,IAAI,GAAGzB,MAAM,CAACS,YAAY,CAACgB,IAAI,CAAC;EAEtC,IAAIA,IAAI,EAAE;IACR,OAAO,GAAGf,IAAI,IAAIe,IAAI,EAAE;EAC1B;EAEA,OAAOpB,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAqB,OAAA,CAAApB,qBAAA,GAAAA,qBAAA;AAMA,MAAMqB,6BAA6B,GAAGA,CACpCC,cAAsB,EACtBC,QAAgB,EAChBrB,kBAA0B,EAC1BsB,QAAmD,KACxC;EACX,MAAMpB,IAAI,GACRoB,QAAQ,KAAK,wBAAwB,IACpCA,QAAQ,KAAK,cAAc,IAC1BhC,oCAAoC,CAACiC,GAAG,CAACH,cAAc,CAAE,GACvDpB,kBAAkB,GAClBoB,cAAc;EAEpB,OAAO,GAAGlB,IAAI,IAAImB,QAAQ,EAAE;AAC9B,CAAC;AAACH,OAAA,CAAAC,6BAAA,GAAAA,6BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_fhirSystems","require","asText","value","Date","toISOString","String","undefined","getHealthRecordSourceId","record","healthRecord","uuid","metadata","id","exports","getHealthRecordSyncId","measurementTypeKey","type","quantityType","categoryType","correlationType","recordType","sourceId","start","startDate","startTime","end","endDate","endTime","time","getHealthRecordIdentifier","provider","recordId","system","OBSERVATION_SYNC_RECORD_SYSTEM"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-health-record-sync-id.ts"],"mappings":";;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AAgBA,MAAMC,MAAM,GAAIC,KAAc,IAAyB;EACrD,IAAIA,KAAK,YAAYC,IAAI,EAAE;IACzB,OAAOD,KAAK,CAACE,WAAW,CAAC,CAAC;EAC5B;EAEA,OAAO,OAAOF,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,GACzDG,MAAM,CAACH,KAAK,CAAC,GACbI,SAAS;AACf,CAAC;;AAED;AACA,MAAMC,uBAAuB,GAAIC,MAAe,IAAyB;EACvE,MAAMC,YAAY,GAAGD,MAA0B;EAE/C,OAAOP,MAAM,CAACQ,YAAY,CAACC,IAAI,IAAID,YAAY,CAACE,QAAQ,EAAEC,EAAE,CAAC;AAC/D,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAC,OAAA,CAAAN,uBAAA,GAAAA,uBAAA;AAKA,MAAMO,qBAAqB,GAAGA,CAC5BN,MAAe,EACfO,kBAA0B,KACH;EACvB,MAAMN,YAAY,GAAGD,MAA0B;EAE/C,MAAMQ,IAAI,GACRf,MAAM,CACJQ,YAAY,CAACQ,YAAY,IACvBR,YAAY,CAACS,YAAY,IACzBT,YAAY,CAACU,eAAe,IAC5BV,YAAY,CAACW,UACjB,CAAC,IAAIL,kBAAkB;EAEzB,MAAMM,QAAQ,GAAGd,uBAAuB,CAACC,MAAM,CAAC;EAEhD,IAAIa,QAAQ,EAAE;IACZ,OAAO,GAAGL,IAAI,IAAIK,QAAQ,EAAE;EAC9B;EAEA,MAAMC,KAAK,GAAGrB,MAAM,CAACQ,YAAY,CAACc,SAAS,IAAId,YAAY,CAACe,SAAS,CAAC;EACtE,MAAMC,GAAG,GAAGxB,MAAM,CAACQ,YAAY,CAACiB,OAAO,IAAIjB,YAAY,CAACkB,OAAO,CAAC;EAEhE,IAAIL,KAAK,IAAIG,GAAG,EAAE;IAChB,OAAO,GAAGT,IAAI,IAAIM,KAAK,IAAIG,GAAG,IAAIA,GAAG,IAAIH,KAAK,EAAE;EAClD;EAEA,MAAMM,IAAI,GAAG3B,MAAM,CAACQ,YAAY,CAACmB,IAAI,CAAC;EAEtC,IAAIA,IAAI,EAAE;IACR,OAAO,GAAGZ,IAAI,IAAIY,IAAI,EAAE;EAC1B;EAEA,OAAOtB,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAO,OAAA,CAAAC,qBAAA,GAAAA,qBAAA;AAKA,MAAMe,yBAAyB,GAAGA,CAChCC,QAAwB,EACxBC,QAAgB,MACA;EAChBC,MAAM,EAAEC,2CAA8B;EACtC/B,KAAK,EAAE,GAAG4B,QAAQ,IAAIC,QAAQ;AAChC,CAAC,CAAC;AAAClB,OAAA,CAAAgB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getLatestValidStartDate = void 0;
7
7
  var _dateFns = require("date-fns");
8
+ var _constants = require("../constants.js");
8
9
  var _isDailyAggregateMode = require("./is-daily-aggregate-mode.js");
9
10
  const getLatestValidStartDate = ({
10
11
  latestObservationDates,
@@ -17,7 +18,11 @@ const getLatestValidStartDate = ({
17
18
  const latestObservationDate = latestObservationDates.find(latestObservationDate => data.typeIdentifiers.some(identifier => identifier.code === latestObservationDate.code))?.date;
18
19
  let latestValidStartDate;
19
20
  const latestDate = latestObservationDate ? new Date(latestObservationDate) : undefined;
20
- const dates = [latestDate && ((0, _isDailyAggregateMode.isDailyAggregateMode)(mode) || (0, _isDailyAggregateMode.isDailyAggregateMode)(data.mode)) ? (0, _dateFns.subDays)(latestDate, 1) : latestDate, data.minDate].filter(Boolean);
21
+ const resolvedMode = mode ?? data.mode;
22
+
23
+ // A total or an hour of a series already imported may still change, so it is read again.
24
+ const rereadFrom = date => resolvedMode === "series" ? (0, _dateFns.subHours)(date, _constants.SERIES_REREAD_HOURS) : (0, _isDailyAggregateMode.isDailyAggregateMode)(mode) || (0, _isDailyAggregateMode.isDailyAggregateMode)(data.mode) ? (0, _dateFns.subDays)(date, _constants.DAILY_REREAD_DAYS) : date;
25
+ const dates = [latestDate && rereadFrom(latestDate), data.minDate].filter(Boolean);
21
26
  if (dates.length > 0) {
22
27
  latestValidStartDate = new Date(Math.max(...dates.map(date => date.getTime())));
23
28
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_dateFns","require","_isDailyAggregateMode","getLatestValidStartDate","latestObservationDates","data","mode","undefined","latestObservationDate","find","typeIdentifiers","some","identifier","code","date","latestValidStartDate","latestDate","Date","dates","isDailyAggregateMode","subDays","minDate","filter","Boolean","length","Math","max","map","getTime","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-latest-valid-start-date.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,qBAAA,GAAAD,OAAA;AAYO,MAAME,uBAAuB,GAAGA,CAAC;EACtCC,sBAAsB;EACtBC,IAAI;EACJC;AAC4B,CAAC,KAAK;EAClC,IAAI,CAACD,IAAI,EAAE;IACT,OAAOE,SAAS;EAClB;EAEA,MAAMC,qBAAqB,GAAGJ,sBAAsB,CAACK,IAAI,CACtDD,qBAAqB,IACpBH,IAAI,CAACK,eAAe,CAACC,IAAI,CACtBC,UAAU,IAAKA,UAAU,CAACC,IAAI,KAAKL,qBAAqB,CAACK,IAC5D,CACJ,CAAC,EAAEC,IAAI;EAEP,IAAIC,oBAAsC;EAE1C,MAAMC,UAAU,GAAGR,qBAAqB,GACpC,IAAIS,IAAI,CAACT,qBAAqB,CAAC,GAC/BD,SAAS;EAEb,MAAMW,KAAK,GAAG,CACZF,UAAU,KACT,IAAAG,0CAAoB,EAACb,IAAI,CAAC,IAAI,IAAAa,0CAAoB,EAACd,IAAI,CAACC,IAAI,CAAC,CAAC,GAC3D,IAAAc,gBAAO,EAACJ,UAAU,EAAE,CAAC,CAAC,GACtBA,UAAU,EACdX,IAAI,CAACgB,OAAO,CACb,CAACC,MAAM,CAACC,OAAO,CAAW;EAE3B,IAAIL,KAAK,CAACM,MAAM,GAAG,CAAC,EAAE;IACpBT,oBAAoB,GAAG,IAAIE,IAAI,CAC7BQ,IAAI,CAACC,GAAG,CAAC,GAAGR,KAAK,CAACS,GAAG,CAAEb,IAAI,IAAKA,IAAI,CAACc,OAAO,CAAC,CAAC,CAAC,CACjD,CAAC;EACH;EAEA,OAAOb,oBAAoB;AAC7B,CAAC;AAACc,OAAA,CAAA1B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_dateFns","require","_constants","_isDailyAggregateMode","getLatestValidStartDate","latestObservationDates","data","mode","undefined","latestObservationDate","find","typeIdentifiers","some","identifier","code","date","latestValidStartDate","latestDate","Date","resolvedMode","rereadFrom","subHours","SERIES_REREAD_HOURS","isDailyAggregateMode","subDays","DAILY_REREAD_DAYS","dates","minDate","filter","Boolean","length","Math","max","map","getTime","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-latest-valid-start-date.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAKA,IAAAE,qBAAA,GAAAF,OAAA;AAYO,MAAMG,uBAAuB,GAAGA,CAAC;EACtCC,sBAAsB;EACtBC,IAAI;EACJC;AAC4B,CAAC,KAAK;EAClC,IAAI,CAACD,IAAI,EAAE;IACT,OAAOE,SAAS;EAClB;EAEA,MAAMC,qBAAqB,GAAGJ,sBAAsB,CAACK,IAAI,CACtDD,qBAAqB,IACpBH,IAAI,CAACK,eAAe,CAACC,IAAI,CACtBC,UAAU,IAAKA,UAAU,CAACC,IAAI,KAAKL,qBAAqB,CAACK,IAC5D,CACJ,CAAC,EAAEC,IAAI;EAEP,IAAIC,oBAAsC;EAE1C,MAAMC,UAAU,GAAGR,qBAAqB,GACpC,IAAIS,IAAI,CAACT,qBAAqB,CAAC,GAC/BD,SAAS;EAEb,MAAMW,YAAY,GAAGZ,IAAI,IAAID,IAAI,CAACC,IAAI;;EAEtC;EACA,MAAMa,UAAU,GAAIL,IAAU,IAC5BI,YAAY,KAAK,QAAQ,GACrB,IAAAE,iBAAQ,EAACN,IAAI,EAAEO,8BAAmB,CAAC,GACnC,IAAAC,0CAAoB,EAAChB,IAAI,CAAC,IAAI,IAAAgB,0CAAoB,EAACjB,IAAI,CAACC,IAAI,CAAC,GAC3D,IAAAiB,gBAAO,EAACT,IAAI,EAAEU,4BAAiB,CAAC,GAChCV,IAAI;EAEZ,MAAMW,KAAK,GAAG,CAACT,UAAU,IAAIG,UAAU,CAACH,UAAU,CAAC,EAAEX,IAAI,CAACqB,OAAO,CAAC,CAACC,MAAM,CAACC,OAAO,CAAW;EAE5F,IAAIH,KAAK,CAACI,MAAM,GAAG,CAAC,EAAE;IACpBd,oBAAoB,GAAG,IAAIE,IAAI,CAC7Ba,IAAI,CAACC,GAAG,CAAC,GAAGN,KAAK,CAACO,GAAG,CAAElB,IAAI,IAAKA,IAAI,CAACmB,OAAO,CAAC,CAAC,CAAC,CACjD,CAAC;EACH;EAEA,OAAOlB,oBAAoB;AAC7B,CAAC;AAACmB,OAAA,CAAA/B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.getRecordsFromHealthConnect = void 0;
7
7
  var _dateFns = require("date-fns");
8
8
  var _reactNativeHealthConnect = require("react-native-health-connect");
9
9
  var _constants = require("../constants.js");
10
+ var _healthConnectSeries = require("./health-connect-series.js");
10
11
  var _isDailyAggregateMode = require("./is-daily-aggregate-mode.js");
11
12
  var _syncWindowStart = require("./sync-window-start.js");
12
13
  /* eslint-disable max-lines */
@@ -21,6 +22,9 @@ const getRecordsFromHealthConnect = async ({
21
22
  if ((0, _isDailyAggregateMode.isDailyAggregateMode)(mode)) {
22
23
  return getDailyAggregates(typeIdentifier, mode, _startDate);
23
24
  }
25
+ if (mode === "series") {
26
+ return (0, _healthConnectSeries.getHealthConnectSeries)(typeIdentifier, (0, _syncWindowStart.syncWindowStart)(_startDate));
27
+ }
24
28
  const savedAnchor = decodeAnchor(anchor);
25
29
  if (savedAnchor?.phase === "changes") {
26
30
  const changes = await (0, _reactNativeHealthConnect.getChanges)({
@@ -1 +1 @@
1
- {"version":3,"names":["_dateFns","require","_reactNativeHealthConnect","_constants","_isDailyAggregateMode","_syncWindowStart","getRecordsFromHealthConnect","typeIdentifier","startDate","_startDate","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","anchor","mode","isDailyAggregateMode","getDailyAggregates","savedAnchor","decodeAnchor","phase","changes","getChanges","changesToken","recordTypes","changesTokenExpired","data","upsertionChanges","map","record","deletionChanges","length","deletedRecordIds","recordId","hasMore","encodeAnchor","version","nextChangesToken","baseline","readSnapshot","pageToken","undefined","snapshotAnchor","exports","endDate","Date","toISOString","resolvedStartDate","syncWindowStart","result","readRecords","timeRangeFilter","operator","startTime","endTime","pageSize","nextAnchor","records","Boolean","JSON","stringify","startsWith","parsed","parse","aggregateType","startOfDay","subDays","DEFAULT_SYNC_LOOKBACK_DAYS","today","groups","aggregateGroupByPeriod","recordType","timeRangeSlicer","period","flatMap","group","end","measurement","aggregateMeasurement","dataOrigins","kind","sourceApp","average","numberValue","BPM_AVG","unit","minimum","BPM_MIN","maximum","BPM_MAX","value","COUNT_TOTAL","nestedNumber","DISTANCE","ACTIVE_CALORIES_TOTAL","FLOORS_CLIMBED_TOTAL","scale","EXERCISE_DURATION_TOTAL","Number","isFinite","key","factor"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-records-from-health-connect.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_dateFns","require","_reactNativeHealthConnect","_constants","_healthConnectSeries","_isDailyAggregateMode","_syncWindowStart","getRecordsFromHealthConnect","typeIdentifier","startDate","_startDate","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","anchor","mode","isDailyAggregateMode","getDailyAggregates","getHealthConnectSeries","syncWindowStart","savedAnchor","decodeAnchor","phase","changes","getChanges","changesToken","recordTypes","changesTokenExpired","data","upsertionChanges","map","record","deletionChanges","length","deletedRecordIds","recordId","hasMore","encodeAnchor","version","nextChangesToken","baseline","readSnapshot","pageToken","undefined","snapshotAnchor","exports","endDate","Date","toISOString","resolvedStartDate","result","readRecords","timeRangeFilter","operator","startTime","endTime","pageSize","nextAnchor","records","Boolean","JSON","stringify","startsWith","parsed","parse","aggregateType","startOfDay","subDays","DEFAULT_SYNC_LOOKBACK_DAYS","today","groups","aggregateGroupByPeriod","recordType","timeRangeSlicer","period","flatMap","group","end","measurement","aggregateMeasurement","dataOrigins","kind","sourceApp","average","numberValue","BPM_AVG","unit","minimum","BPM_MIN","maximum","BPM_MAX","value","COUNT_TOTAL","nestedNumber","DISTANCE","ACTIVE_CALORIES_TOTAL","FLOORS_CLIMBED_TOTAL","scale","EXERCISE_DURATION_TOTAL","Number","isFinite","key","factor"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-records-from-health-connect.ts"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ var _dateFns = require("date-fns");
9
9
  var _constants = require("../constants.js");
10
10
  var _healthUnits = require("./health-units.js");
11
11
  var _healthkitDataTypes = require("./healthkit-data-types.js");
12
+ var _healthkitSeries = require("./healthkit-series.js");
12
13
  var _isDailyAggregateMode = require("./is-daily-aggregate-mode.js");
13
14
  var _syncWindowStart = require("./sync-window-start.js");
14
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
@@ -21,11 +22,11 @@ const getSamplesFromHealth = async ({
21
22
  }) => {
22
23
  const startDate = (0, _syncWindowStart.syncWindowStart)(_startDate);
23
24
  const endDate = new Date();
24
- if ((0, _isDailyAggregateMode.isDailyAggregateMode)(mode)) {
25
+ if ((0, _isDailyAggregateMode.isDailyAggregateMode)(mode) || mode === "series") {
25
26
  if (!(0, _healthkitDataTypes.isQuantityIdentifier)(typeIdentifier)) {
26
27
  throw new _healthkitDataTypes.UnsupportedHealthKitDataError(typeIdentifier, `HealthKit ${mode} mode is only supported for quantity samples.`);
27
28
  }
28
- return getDailyStatistics(typeIdentifier, mode, startDate, endDate);
29
+ return mode === "series" ? (0, _healthkitSeries.getHealthKitSeries)(typeIdentifier, startDate) : getDailyStatistics(typeIdentifier, mode, startDate, endDate);
29
30
  }
30
31
  const options = {
31
32
  from: startDate,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeHealthkit","_interopRequireWildcard","require","_dateFns","_constants","_healthUnits","_healthkitDataTypes","_isDailyAggregateMode","_syncWindowStart","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getSamplesFromHealth","startDate","_startDate","typeIdentifier","anchor","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","mode","syncWindowStart","endDate","Date","isDailyAggregateMode","isQuantityIdentifier","UnsupportedHealthKitDataError","getDailyStatistics","options","from","to","limit","HKWorkoutTypeIdentifier","Healthkit","queryWorkoutSamplesWithAnchor","result","energyUnit","UnitOfEnergy","Kilocalories","distanceUnit","data","undefined","toAnchoredResult","queryHeartbeatSeriesSamplesWithAnchor","isCategoryIdentifier","queryCategorySamplesWithAnchor","isCorrelationIdentifier","samples","queryCorrelationSamples","queryStateOfMindSamples","ascending","queryQuantitySamplesWithAnchor","unit","healthUnitFor","unsupportedHealthKitTypeReason","exports","deletedRecordIds","recordIds","map","uuid","length","deletedSamples","newAnchor","firstDay","startOfDay","today","HKStatisticsOptions","cumulativeSum","discreteAverage","discreteMin","discreteMax","statistics","queryStatisticsCollectionForQuantity","day","flatMap","statistic","index","dayStart","addDays","dayEnd","total","sumQuantity","quantity","average","averageQuantity","minimum","minimumQuantity","maximum","maximumQuantity","kind","value"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-samples-from-health.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeHealthkit","_interopRequireWildcard","require","_dateFns","_constants","_healthUnits","_healthkitDataTypes","_healthkitSeries","_isDailyAggregateMode","_syncWindowStart","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getSamplesFromHealth","startDate","_startDate","typeIdentifier","anchor","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","mode","syncWindowStart","endDate","Date","isDailyAggregateMode","isQuantityIdentifier","UnsupportedHealthKitDataError","getHealthKitSeries","getDailyStatistics","options","from","to","limit","HKWorkoutTypeIdentifier","Healthkit","queryWorkoutSamplesWithAnchor","result","energyUnit","UnitOfEnergy","Kilocalories","distanceUnit","data","undefined","toAnchoredResult","queryHeartbeatSeriesSamplesWithAnchor","isCategoryIdentifier","queryCategorySamplesWithAnchor","isCorrelationIdentifier","samples","queryCorrelationSamples","queryStateOfMindSamples","ascending","queryQuantitySamplesWithAnchor","unit","healthUnitFor","unsupportedHealthKitTypeReason","exports","deletedRecordIds","recordIds","map","uuid","length","deletedSamples","newAnchor","firstDay","startOfDay","today","HKStatisticsOptions","cumulativeSum","discreteAverage","discreteMin","discreteMax","statistics","queryStatisticsCollectionForQuantity","day","flatMap","statistic","index","dayStart","addDays","dayEnd","total","sumQuantity","quantity","average","averageQuantity","minimum","minimumQuantity","maximum","maximumQuantity","kind","value"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-samples-from-health.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getHealthConnectSeries = void 0;
7
+ var _reactNativeHealthConnect = require("react-native-health-connect");
8
+ var _constants = require("../constants.js");
9
+ var _convertGenericHealthData = require("./convert-generic-health-data.js");
10
+ var _hourlySeries = require("./hourly-series.js");
11
+ const HEART_RATE_UNIT = "count/min";
12
+ const between = (from, to) => ({
13
+ operator: "between",
14
+ startTime: from.toISOString(),
15
+ endTime: to.toISOString()
16
+ });
17
+
18
+ /** Health Connect's own average a minute, which follows the user's app priority where sources overlap. */
19
+ const heartRateMinutes = async (from, to) => {
20
+ const groups = await (0, _reactNativeHealthConnect.aggregateGroupByDuration)({
21
+ recordType: "HeartRate",
22
+ timeRangeFilter: between(from, to),
23
+ timeRangeSlicer: {
24
+ duration: "MINUTES",
25
+ length: 1
26
+ }
27
+ });
28
+ return groups.flatMap(group => {
29
+ const average = group.result.BPM_AVG;
30
+ return typeof average === "number" && Number.isFinite(average) ? [{
31
+ start: new Date(group.startTime),
32
+ value: average
33
+ }] : [];
34
+ });
35
+ };
36
+
37
+ /** Records of a type Health Connect doesn't average, such as SpO₂ and respiratory rate, averaged a minute here. */
38
+ const recordMinutes = async (typeIdentifier, from, to) => {
39
+ const sums = new Map();
40
+ let unit;
41
+ let pageToken;
42
+ do {
43
+ const page = await (0, _reactNativeHealthConnect.readRecords)(typeIdentifier, {
44
+ timeRangeFilter: between(from, to),
45
+ pageToken
46
+ });
47
+ page.records.forEach(record => {
48
+ const raw = record;
49
+ const measured = (0, _convertGenericHealthData.extractValue)(raw);
50
+ const time = raw.time ?? raw.startTime;
51
+ if (!measured || typeof time !== "string") {
52
+ return;
53
+ }
54
+ const minute = Math.floor(new Date(time).getTime() / _constants.SERIES_SLOT_MS) * _constants.SERIES_SLOT_MS;
55
+ const sum = sums.get(minute) ?? {
56
+ total: 0,
57
+ count: 0
58
+ };
59
+ sums.set(minute, {
60
+ total: sum.total + measured.value,
61
+ count: sum.count + 1
62
+ });
63
+ unit ??= measured.unit;
64
+ });
65
+ pageToken = page.pageToken;
66
+ } while (pageToken);
67
+ return {
68
+ unit,
69
+ minutes: [...sums.entries()].map(([minute, {
70
+ total,
71
+ count
72
+ }]) => ({
73
+ start: new Date(minute),
74
+ value: total / count
75
+ }))
76
+ };
77
+ };
78
+
79
+ /** The finished hours from `startDate`, one `series` item an hour, read a day at a time. */
80
+ const getHealthConnectSeries = async (typeIdentifier, startDate) => {
81
+ const minutes = [];
82
+ let unit = typeIdentifier === "HeartRate" ? HEART_RATE_UNIT : undefined;
83
+ for (const {
84
+ from,
85
+ to
86
+ } of (0, _hourlySeries.finishedHourWindows)(startDate)) {
87
+ if (typeIdentifier === "HeartRate") {
88
+ minutes.push(...(await heartRateMinutes(from, to)));
89
+ } else {
90
+ const read = await recordMinutes(typeIdentifier, from, to);
91
+ minutes.push(...read.minutes);
92
+ unit ??= read.unit;
93
+ }
94
+ }
95
+ return {
96
+ data: (0, _hourlySeries.toHourlySeries)(typeIdentifier, unit ?? "1", minutes),
97
+ anchor: undefined
98
+ };
99
+ };
100
+ exports.getHealthConnectSeries = getHealthConnectSeries;
101
+ //# sourceMappingURL=health-connect-series.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeHealthConnect","require","_constants","_convertGenericHealthData","_hourlySeries","HEART_RATE_UNIT","between","from","to","operator","startTime","toISOString","endTime","heartRateMinutes","groups","aggregateGroupByDuration","recordType","timeRangeFilter","timeRangeSlicer","duration","length","flatMap","group","average","result","BPM_AVG","Number","isFinite","start","Date","value","recordMinutes","typeIdentifier","sums","Map","unit","pageToken","page","readRecords","records","forEach","record","raw","measured","extractValue","time","minute","Math","floor","getTime","SERIES_SLOT_MS","sum","get","total","count","set","minutes","entries","map","getHealthConnectSeries","startDate","undefined","finishedHourWindows","push","read","data","toHourlySeries","anchor","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/health-connect-series.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getHealthKitSeries = void 0;
7
+ var _reactNativeHealthkit = _interopRequireWildcard(require("@kingstinct/react-native-healthkit"));
8
+ var _constants = require("../constants.js");
9
+ var _healthUnits = require("./health-units.js");
10
+ var _hourlySeries = require("./hourly-series.js");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ /**
13
+ * The finished hours from `startDate`, one `series` item an hour, from HealthKit's own average a minute: it follows
14
+ * the user's source priority where a watch and another app both recorded. Read a day at a time.
15
+ */
16
+ const getHealthKitSeries = async (typeIdentifier, startDate) => {
17
+ const unit = (0, _healthUnits.healthUnitFor)(typeIdentifier);
18
+ const minutes = [];
19
+ for (const {
20
+ from,
21
+ to
22
+ } of (0, _hourlySeries.finishedHourWindows)(startDate)) {
23
+ const statistics = await _reactNativeHealthkit.default.queryStatisticsCollectionForQuantity(typeIdentifier, [_reactNativeHealthkit.HKStatisticsOptions.discreteAverage], from, {
24
+ minute: 1
25
+ }, from, to, unit);
26
+
27
+ // One statistic per minute from `from`, empty minutes included.
28
+ statistics.forEach((statistic, index) => {
29
+ const value = statistic.averageQuantity?.quantity;
30
+ if (value !== undefined) {
31
+ minutes.push({
32
+ start: new Date(from.getTime() + index * _constants.SERIES_SLOT_MS),
33
+ value
34
+ });
35
+ }
36
+ });
37
+ }
38
+ return {
39
+ data: (0, _hourlySeries.toHourlySeries)(typeIdentifier, unit ?? "1", minutes),
40
+ anchor: undefined
41
+ };
42
+ };
43
+ exports.getHealthKitSeries = getHealthKitSeries;
44
+ //# sourceMappingURL=healthkit-series.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNativeHealthkit","_interopRequireWildcard","require","_constants","_healthUnits","_hourlySeries","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getHealthKitSeries","typeIdentifier","startDate","unit","healthUnitFor","minutes","from","to","finishedHourWindows","statistics","Healthkit","queryStatisticsCollectionForQuantity","HKStatisticsOptions","discreteAverage","minute","forEach","statistic","index","value","averageQuantity","quantity","undefined","push","start","Date","getTime","SERIES_SLOT_MS","data","toHourlySeries","anchor","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/healthkit-series.ts"],"mappings":";;;;;;AAAA,IAAAA,qBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAGA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAAmF,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEnF;AACA;AACA;AACA;AACA,MAAMkB,kBAAkB,GAAG,MAAAA,CACzBC,cAAwC,EACxCC,SAAe,KAC8C;EAC7D,MAAMC,IAAI,GAAG,IAAAC,0BAAa,EAACH,cAAc,CAAC;EAC1C,MAAMI,OAAsB,GAAG,EAAE;EAEjC,KAAK,MAAM;IAAEC,IAAI;IAAEC;EAAG,CAAC,IAAI,IAAAC,iCAAmB,EAACN,SAAS,CAAC,EAAE;IACzD,MAAMO,UAAU,GAAG,MAAMC,6BAAS,CAACC,oCAAoC,CACrEV,cAAc,EACd,CAACW,yCAAmB,CAACC,eAAe,CAAC,EACrCP,IAAI,EACJ;MAAEQ,MAAM,EAAE;IAAE,CAAC,EACbR,IAAI,EACJC,EAAE,EACFJ,IACF,CAAC;;IAED;IACAM,UAAU,CAACM,OAAO,CAAC,CAACC,SAAS,EAAEC,KAAK,KAAK;MACvC,MAAMC,KAAK,GAAGF,SAAS,CAACG,eAAe,EAAEC,QAAQ;MAEjD,IAAIF,KAAK,KAAKG,SAAS,EAAE;QACvBhB,OAAO,CAACiB,IAAI,CAAC;UAAEC,KAAK,EAAE,IAAIC,IAAI,CAAClB,IAAI,CAACmB,OAAO,CAAC,CAAC,GAAGR,KAAK,GAAGS,yBAAc,CAAC;UAAER;QAAM,CAAC,CAAC;MACnF;IACF,CAAC,CAAC;EACJ;EAEA,OAAO;IAAES,IAAI,EAAE,IAAAC,4BAAc,EAAC3B,cAAc,EAAEE,IAAI,IAAI,GAAG,EAAEE,OAAO,CAAC;IAAEwB,MAAM,EAAER;EAAU,CAAC;AAC1F,CAAC;AAACS,OAAA,CAAA9B,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toHourlySeries = exports.finishedHourWindows = void 0;
7
+ var _constants = require("../constants.js");
8
+ const HOUR_MS = 3_600_000;
9
+ const DAY_MS = 24 * HOUR_MS;
10
+
11
+ /** A minute's value: the average of what was measured in it. */
12
+
13
+ /**
14
+ * Per-minute values grouped into hours (UTC, so a day never has two 01:00s), each with one slot a minute and `null`
15
+ * for a minute without a value. Hours without any value are left out.
16
+ */
17
+ const toHourlySeries = (typeIdentifier, unit, minutes) => {
18
+ const hours = new Map();
19
+ minutes.forEach(({
20
+ start,
21
+ value
22
+ }) => {
23
+ const time = start.getTime();
24
+ const hour = Math.floor(time / HOUR_MS) * HOUR_MS;
25
+ const slots = hours.get(hour) ?? Array(HOUR_MS / _constants.SERIES_SLOT_MS).fill(null);
26
+ slots[Math.floor((time - hour) / _constants.SERIES_SLOT_MS)] = value;
27
+ hours.set(hour, slots);
28
+ });
29
+ return [...hours.entries()].sort(([first], [second]) => first - second).map(([hour, values]) => ({
30
+ kind: "series",
31
+ typeIdentifier,
32
+ startDate: new Date(hour),
33
+ endDate: new Date(hour + HOUR_MS),
34
+ unit,
35
+ periodMs: _constants.SERIES_SLOT_MS,
36
+ values
37
+ }));
38
+ };
39
+
40
+ /**
41
+ * The finished hours from `start`'s hour up to the current one, in windows of a day at most: one health-store query
42
+ * each, so a first import of months doesn't ask for everything at once.
43
+ */
44
+ exports.toHourlySeries = toHourlySeries;
45
+ const finishedHourWindows = (start, now = new Date()) => {
46
+ const windows = [];
47
+ const end = Math.floor(now.getTime() / HOUR_MS) * HOUR_MS;
48
+ for (let from = Math.floor(start.getTime() / HOUR_MS) * HOUR_MS; from < end; from += DAY_MS) {
49
+ windows.push({
50
+ from: new Date(from),
51
+ to: new Date(Math.min(from + DAY_MS, end))
52
+ });
53
+ }
54
+ return windows;
55
+ };
56
+ exports.finishedHourWindows = finishedHourWindows;
57
+ //# sourceMappingURL=hourly-series.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_constants","require","HOUR_MS","DAY_MS","toHourlySeries","typeIdentifier","unit","minutes","hours","Map","forEach","start","value","time","getTime","hour","Math","floor","slots","get","Array","SERIES_SLOT_MS","fill","set","entries","sort","first","second","map","values","kind","startDate","Date","endDate","periodMs","exports","finishedHourWindows","now","windows","end","from","push","to","min"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/hourly-series.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGA,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,MAAM,GAAG,EAAE,GAAGD,OAAO;;AAE3B;;AAGA;AACA;AACA;AACA;AACA,MAAME,cAAc,GAAGA,CACrBC,cAAsB,EACtBC,IAAY,EACZC,OAA+B,KACR;EACvB,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAA+B,CAAC;EAErDF,OAAO,CAACG,OAAO,CAAC,CAAC;IAAEC,KAAK;IAAEC;EAAM,CAAC,KAAK;IACpC,MAAMC,IAAI,GAAGF,KAAK,CAACG,OAAO,CAAC,CAAC;IAC5B,MAAMC,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,GAAGX,OAAO,CAAC,GAAGA,OAAO;IACjD,MAAMgB,KAAK,GAAGV,KAAK,CAACW,GAAG,CAACJ,IAAI,CAAC,IAAIK,KAAK,CAAgBlB,OAAO,GAAGmB,yBAAc,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IAE1FJ,KAAK,CAACF,IAAI,CAACC,KAAK,CAAC,CAACJ,IAAI,GAAGE,IAAI,IAAIM,yBAAc,CAAC,CAAC,GAAGT,KAAK;IACzDJ,KAAK,CAACe,GAAG,CAACR,IAAI,EAAEG,KAAK,CAAC;EACxB,CAAC,CAAC;EAEF,OAAO,CAAC,GAAGV,KAAK,CAACgB,OAAO,CAAC,CAAC,CAAC,CACxBC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,EAAE,CAACC,MAAM,CAAC,KAAKD,KAAK,GAAGC,MAAM,CAAC,CAC3CC,GAAG,CAAC,CAAC,CAACb,IAAI,EAAEc,MAAM,CAAC,MAAM;IACxBC,IAAI,EAAE,QAAQ;IACdzB,cAAc;IACd0B,SAAS,EAAE,IAAIC,IAAI,CAACjB,IAAI,CAAC;IACzBkB,OAAO,EAAE,IAAID,IAAI,CAACjB,IAAI,GAAGb,OAAO,CAAC;IACjCI,IAAI;IACJ4B,QAAQ,EAAEb,yBAAc;IACxBQ;EACF,CAAC,CAAC,CAAC;AACP,CAAC;;AAED;AACA;AACA;AACA;AAHAM,OAAA,CAAA/B,cAAA,GAAAA,cAAA;AAIA,MAAMgC,mBAAmB,GAAGA,CAACzB,KAAW,EAAE0B,GAAG,GAAG,IAAIL,IAAI,CAAC,CAAC,KAAsC;EAC9F,MAAMM,OAAwC,GAAG,EAAE;EACnD,MAAMC,GAAG,GAAGvB,IAAI,CAACC,KAAK,CAACoB,GAAG,CAACvB,OAAO,CAAC,CAAC,GAAGZ,OAAO,CAAC,GAAGA,OAAO;EAEzD,KAAK,IAAIsC,IAAI,GAAGxB,IAAI,CAACC,KAAK,CAACN,KAAK,CAACG,OAAO,CAAC,CAAC,GAAGZ,OAAO,CAAC,GAAGA,OAAO,EAAEsC,IAAI,GAAGD,GAAG,EAAEC,IAAI,IAAIrC,MAAM,EAAE;IAC3FmC,OAAO,CAACG,IAAI,CAAC;MAAED,IAAI,EAAE,IAAIR,IAAI,CAACQ,IAAI,CAAC;MAAEE,EAAE,EAAE,IAAIV,IAAI,CAAChB,IAAI,CAAC2B,GAAG,CAACH,IAAI,GAAGrC,MAAM,EAAEoC,GAAG,CAAC;IAAE,CAAC,CAAC;EACpF;EAEA,OAAOD,OAAO;AAChB,CAAC;AAACH,OAAA,CAAAC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.replacesSavedObservation = void 0;
7
+ /**
8
+ * Modes whose observation is written over when its source changes, a day's total that grew or an hour of a series
9
+ * that got more minutes, instead of being created once.
10
+ */
11
+ const replacesSavedObservation = mode => mode === "daily-total" || mode === "daily-summary" || mode === "series";
12
+ exports.replacesSavedObservation = replacesSavedObservation;
13
+ //# sourceMappingURL=replaces-saved-observation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["replacesSavedObservation","mode","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/replaces-saved-observation.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACO,MAAMA,wBAAwB,GAAIC,IAAqB,IAC5DA,IAAI,KAAK,aAAa,IAAIA,IAAI,KAAK,eAAe,IAAIA,IAAI,KAAK,QAAQ;AAACC,OAAA,CAAAF,wBAAA,GAAAA,wBAAA","ignoreList":[]}