@ovok/native 1.6.3 → 1.6.4

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 (59) hide show
  1. package/lib/commonjs/modules/background-sync/android-background-sync.js +6 -1
  2. package/lib/commonjs/modules/background-sync/android-background-sync.js.map +1 -1
  3. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +1 -6
  4. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js +1 -6
  6. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
  7. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +2 -1
  8. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  9. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +8 -25
  10. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  11. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +70 -32
  12. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  13. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +35 -0
  14. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -0
  15. package/lib/commonjs/modules/data-sync/utils/group-sleep-samples.js +30 -0
  16. package/lib/commonjs/modules/data-sync/utils/group-sleep-samples.js.map +1 -0
  17. package/lib/module/modules/background-sync/android-background-sync.js +6 -1
  18. package/lib/module/modules/background-sync/android-background-sync.js.map +1 -1
  19. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +1 -6
  20. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  21. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js +1 -6
  22. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
  23. package/lib/module/modules/data-sync/services/base-health-sync-service.js +2 -1
  24. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  25. package/lib/module/modules/data-sync/services/managers/data-processor.js +7 -24
  26. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  27. package/lib/module/modules/data-sync/utils/generate-observation-entry.js +70 -32
  28. package/lib/module/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
  29. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +30 -0
  30. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -0
  31. package/lib/module/modules/data-sync/utils/group-sleep-samples.js +25 -0
  32. package/lib/module/modules/data-sync/utils/group-sleep-samples.js.map +1 -0
  33. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +6 -8
  34. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  35. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
  37. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  39. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts +9 -2
  41. package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +7 -0
  43. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -0
  44. package/lib/typescript/commonjs/src/modules/data-sync/utils/group-sleep-samples.d.ts +2 -0
  45. package/lib/typescript/commonjs/src/modules/data-sync/utils/group-sleep-samples.d.ts.map +1 -0
  46. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +6 -8
  47. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  48. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  49. package/lib/typescript/module/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
  50. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  51. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  52. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  53. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts +9 -2
  54. package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
  55. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +7 -0
  56. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -0
  57. package/lib/typescript/module/src/modules/data-sync/utils/group-sleep-samples.d.ts +2 -0
  58. package/lib/typescript/module/src/modules/data-sync/utils/group-sleep-samples.d.ts.map +1 -0
  59. package/package.json +1 -1
@@ -43,7 +43,12 @@ const isAndroidBatteryOptimizationIgnored = async () => {
43
43
  return getNativeModule().isIgnoringBatteryOptimizations();
44
44
  };
45
45
 
46
- /** Opens Android's consent screen for a Doze exemption. This is always explicit opt-in. */
46
+ /**
47
+ * Opens Android's consent screen for a Doze exemption. This is always explicit
48
+ * opt-in. A false result means the exemption is not active yet; it can also
49
+ * mean the user has already answered or the prompt was already shown. Recheck
50
+ * `isAndroidBatteryOptimizationIgnored` after returning to the foreground.
51
+ */
47
52
  exports.isAndroidBatteryOptimizationIgnored = isAndroidBatteryOptimizationIgnored;
48
53
  const requestAndroidBatteryOptimizationExemption = async () => {
49
54
  if (_reactNative.Platform.OS !== "android") {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_androidHealthSyncService","ANDROID_HEALTH_CONNECT_BACKGROUND_TASK","exports","getNativeModule","nativeModule","NativeModules","OvokBackgroundSync","Error","startAndroidBluetoothForegroundService","options","Platform","OS","startBluetoothForegroundService","stopAndroidBluetoothForegroundService","stopBluetoothForegroundService","isAndroidBatteryOptimizationIgnored","isIgnoringBatteryOptimizations","requestAndroidBatteryOptimizationExemption","requestIgnoreBatteryOptimizations","scheduleAndroidHealthConnectSync","scheduleHealthConnectSync","cancelAndroidHealthConnectSync","cancelHealthConnectSync","runAndroidHealthConnectSync","client","patientId","dataToSync","chunkSize","onError","onProgress","progress","service","AndroidHealthSyncService","getInstance","onSyncError","error","updateProgress","nextProgress","measurementTypeKey","startSync","registerAndroidHealthConnectBackgroundTask","task","taskName","AppRegistry","registerHeadlessTask"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-background-sync.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_androidHealthSyncService","ANDROID_HEALTH_CONNECT_BACKGROUND_TASK","exports","getNativeModule","nativeModule","NativeModules","OvokBackgroundSync","Error","startAndroidBluetoothForegroundService","options","Platform","OS","startBluetoothForegroundService","stopAndroidBluetoothForegroundService","stopBluetoothForegroundService","isAndroidBatteryOptimizationIgnored","isIgnoringBatteryOptimizations","requestAndroidBatteryOptimizationExemption","requestIgnoreBatteryOptimizations","scheduleAndroidHealthConnectSync","scheduleHealthConnectSync","cancelAndroidHealthConnectSync","cancelHealthConnectSync","runAndroidHealthConnectSync","client","patientId","dataToSync","chunkSize","onError","onProgress","progress","service","AndroidHealthSyncService","getInstance","onSyncError","error","updateProgress","nextProgress","measurementTypeKey","startSync","registerAndroidHealthConnectBackgroundTask","task","taskName","AppRegistry","registerHeadlessTask"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-background-sync.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,yBAAA,GAAAD,OAAA;AAKA,MAAME,sCAAsC,GAAAC,OAAA,CAAAD,sCAAA,GAC1C,iCAAiC;AA2CnC,MAAME,eAAe,GAAGA,CAAA,KAAkC;EACxD,MAAMC,YAAY,GAAGC,0BAAa,CAACC,kBAEtB;EAEb,IAAI,CAACF,YAAY,EAAE;IACjB,MAAM,IAAIG,KAAK,CACb,8GACF,CAAC;EACH;EAEA,OAAOH,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMI,sCAAsC,GAAG,MAAAA,CAC7CC,OAAiD,GAAG,CAAC,CAAC,KACpC;EAClB,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACS,+BAA+B,CAACH,OAAO,CAAC;AAClE,CAAC;AAACP,OAAA,CAAAM,sCAAA,GAAAA,sCAAA;AAEF,MAAMK,qCAAqC,GAAG,MAAAA,CAAA,KAA2B;EACvE,IAAIH,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACW,8BAA8B,CAAC,CAAC;AAC1D,CAAC;;AAED;AAAAZ,OAAA,CAAAW,qCAAA,GAAAA,qCAAA;AACA,MAAME,mCAAmC,GAAG,MAAAA,CAAA,KAA8B;EACxE,IAAIL,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAO,IAAI;EACb;EAEA,OAAOR,eAAe,CAAC,CAAC,CAACa,8BAA8B,CAAC,CAAC;AAC3D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAd,OAAA,CAAAa,mCAAA,GAAAA,mCAAA;AAMA,MAAME,0CAA0C,GAC9C,MAAAA,CAAA,KAA8B;EAC5B,IAAIP,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAO,IAAI;EACb;EAEA,OAAOR,eAAe,CAAC,CAAC,CAACe,iCAAiC,CAAC,CAAC;AAC9D,CAAC;;AAEH;AACA;AACA;AACA;AACA;AAJAhB,OAAA,CAAAe,0CAAA,GAAAA,0CAAA;AAKA,MAAME,gCAAgC,GAAG,MAAAA,CACvCV,OAAkD,GAAG,CAAC,CAAC,KACrC;EAClB,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACiB,yBAAyB,CAACX,OAAO,CAAC;AAC5D,CAAC;AAACP,OAAA,CAAAiB,gCAAA,GAAAA,gCAAA;AAEF,MAAME,8BAA8B,GAAG,MAAAA,CAAA,KAA2B;EAChE,IAAIX,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMR,eAAe,CAAC,CAAC,CAACmB,uBAAuB,CAAC,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPApB,OAAA,CAAAmB,8BAAA,GAAAA,8BAAA;AAQA,MAAME,2BAA2B,GAAG,MAAAA,CAAO;EACzCC,MAAM;EACNC,SAAS;EACTC,UAAU;EACVC,SAAS;EACTC,OAAO;EACPC;AACkC,CAAC,KAAoB;EACvD,MAAMC,QAAsD,GAAG,CAAC,CAAC;EAEjE,MAAMC,OAAO,GAAGC,kDAAwB,CAACC,WAAW,CAAC;IACnDT,MAAM;IACNC,SAAS;IACTC,UAAU;IACVC,SAAS;IACTO,WAAW,EAAGC,KAAK,IAAKP,OAAO,GAAGO,KAAK,CAAC;IACxCC,cAAc,EAAGC,YAAY,IAAK;MAChCP,QAAQ,CAACO,YAAY,CAACC,kBAAkB,CAAC,GAAGD,YAAY;MACxDR,UAAU,GAAGC,QAAQ,CAAC;IACxB;EACF,CAAC,CAAC;EAEF,MAAMC,OAAO,CAACQ,SAAS,CAAC,CAAC;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJArC,OAAA,CAAAqB,2BAAA,GAAAA,2BAAA;AAKA,MAAMiB,0CAA0C,GAAGA,CACjDC,IAAwC,EACxCC,QAAQ,GAAGzC,sCAAsC,KACxC;EACT,IAAIS,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEAgC,wBAAW,CAACC,oBAAoB,CAACF,QAAQ,EAAE,MAAMD,IAAI,CAAC;AACxD,CAAC;AAACvC,OAAA,CAAAsC,0CAAA,GAAAA,0CAAA","ignoreList":[]}
@@ -26,12 +26,7 @@ const AndroidBluetoothForegroundService = ({
26
26
  const start = async () => {
27
27
  if (requestBatteryOptimizationExemption) {
28
28
  try {
29
- const granted = await (0, _androidBackgroundSync.requestAndroidBatteryOptimizationExemption)();
30
- if (!granted) {
31
- onError?.({
32
- error: (0, _bluetoothError.toBluetoothError)(new Error("Android battery optimization exemption was not granted."))
33
- });
34
- }
29
+ await (0, _androidBackgroundSync.requestAndroidBatteryOptimizationExemption)();
35
30
  } catch (error) {
36
31
  onError?.({
37
32
  error: (0, _bluetoothError.toBluetoothError)(error)
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_bluetoothError","_androidBackgroundSync","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","requestBatteryOptimizationExemption","useEffect","Platform","OS","start","granted","requestAndroidBatteryOptimizationExemption","error","toBluetoothError","Error","startAndroidBluetoothForegroundService","undefined","catch","stopAndroidBluetoothForegroundService","jsx","Fragment","exports"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-bluetooth-foreground-service.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_bluetoothError","_androidBackgroundSync","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","requestBatteryOptimizationExemption","useEffect","Platform","OS","start","requestAndroidBatteryOptimizationExemption","error","toBluetoothError","startAndroidBluetoothForegroundService","undefined","catch","stopAndroidBluetoothForegroundService","jsx","Fragment","exports"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-bluetooth-foreground-service.tsx"],"mappings":"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","ignoreList":[]}
@@ -33,12 +33,7 @@ const AndroidBluetoothForegroundService = ({
33
33
  const nativeModule = getNativeModule();
34
34
  if (requestBatteryOptimizationExemption) {
35
35
  try {
36
- const granted = await nativeModule.requestIgnoreBatteryOptimizations();
37
- if (!granted) {
38
- onError?.({
39
- error: (0, _bluetoothError.toBluetoothError)(new Error("Android battery optimization exemption was not granted."))
40
- });
41
- }
36
+ await nativeModule.requestIgnoreBatteryOptimizations();
42
37
  } catch (error) {
43
38
  onError?.({
44
39
  error: (0, _bluetoothError.toBluetoothError)(error)
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_bluetoothError","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getNativeModule","nativeModule","NativeModules","OvokBackgroundSync","Error","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","requestBatteryOptimizationExemption","useEffect","Platform","OS","start","granted","requestIgnoreBatteryOptimizations","error","toBluetoothError","startBluetoothForegroundService","undefined","catch","stopBluetoothForegroundService","jsx","Fragment","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/android-bluetooth-foreground-service.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_bluetoothError","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getNativeModule","nativeModule","NativeModules","OvokBackgroundSync","Error","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","requestBatteryOptimizationExemption","useEffect","Platform","OS","start","requestIgnoreBatteryOptimizations","error","toBluetoothError","startBluetoothForegroundService","undefined","catch","stopBluetoothForegroundService","jsx","Fragment","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/android-bluetooth-foreground-service.tsx"],"mappings":"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","ignoreList":[]}
@@ -98,6 +98,7 @@ class BaseHealthSyncService {
98
98
  while (hasAnchor && !this.stateManager.shouldStopSync) {
99
99
  const {
100
100
  observationBodies,
101
+ observationSyncIds,
101
102
  hasAnchor: currentHasAnchor,
102
103
  anchors
103
104
  } = await this.dataProcessor.getObservationBodiesForType(measurementTypeKey, data, latestValidStartDate);
@@ -105,7 +106,7 @@ class BaseHealthSyncService {
105
106
  if (this.stateManager.shouldStopSync) {
106
107
  break;
107
108
  }
108
- const entries = this.dataProcessor.generateObservationEntries(observationBodies);
109
+ const entries = this.dataProcessor.generateObservationEntries(observationBodies, observationSyncIds);
109
110
  if (entries.length !== 0 && !this.stateManager.shouldStopSync) {
110
111
  try {
111
112
  const startedAt = Date.now();
@@ -1 +1 @@
1
- {"version":3,"names":["_telemetry","require","_retrySave","_dataProcessor","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","withOvokSpan","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","withSyncRetries","saveObservations","recordOvokMetric","recordOvokDuration","addResult","incrementSyncedObservations","saveAnchors","isSyncRetryCancelled","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","_retrySave","_dataProcessor","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","withOvokSpan","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","observationSyncIds","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","withSyncRetries","saveObservations","recordOvokMetric","recordOvokDuration","addResult","incrementSyncedObservations","saveAnchors","isSyncRetryCancelled","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
@@ -7,8 +7,10 @@ exports.DataProcessor = void 0;
7
7
  var _core = require("@ovok/core");
8
8
  var _healthSyncKeys = require("../../types/health-sync-keys.js");
9
9
  var _generateObservationEntry = require("../../utils/generate-observation-entry.js");
10
+ var _getHealthRecordSyncId = require("../../utils/get-health-record-sync-id.js");
10
11
  var _getLatestObservationDatesByCode = require("../../utils/get-latest-observation-dates-by-code.js");
11
12
  var _getLatestValidStartDate = require("../../utils/get-latest-valid-start-date.js");
13
+ var _groupSleepSamples = require("../../utils/group-sleep-samples.js");
12
14
  class DataProcessor {
13
15
  constructor(client, patientId, provider, chunkSize, storageManager, getTotalCountsFunction, getDataFromProviderFunction, getConverterFunction) {
14
16
  this.client = client;
@@ -67,7 +69,7 @@ class DataProcessor {
67
69
  }));
68
70
  const newAnchors = results.map(result => result.anchor).flat().filter(Boolean);
69
71
  const allData = results.flatMap(result => result.data);
70
- const dataGroups = this.provider === "apple-health" && measurementTypeKey === _healthSyncKeys.HealthDataType.sleep ? groupSleepSamples(allData) : this.provider === "apple-health" && measurementTypeKey === _core.MeasurementTypeKey.bloodPressure ? Array.from(allData.reduce((groups, sample) => {
72
+ const dataGroups = this.provider === "apple-health" && measurementTypeKey === _healthSyncKeys.HealthDataType.sleep ? (0, _groupSleepSamples.groupSleepSamples)(allData) : this.provider === "apple-health" && measurementTypeKey === _core.MeasurementTypeKey.bloodPressure ? Array.from(allData.reduce((groups, sample) => {
71
73
  const value = sample;
72
74
  const key = `${new Date(value.startDate ?? 0).getTime()}:${new Date(value.endDate ?? value.startDate ?? 0).getTime()}`;
73
75
  const group = groups.get(key) ?? [];
@@ -84,16 +86,19 @@ class DataProcessor {
84
86
  mode,
85
87
  typeIdentifierCodes
86
88
  })));
89
+ const observationSyncIds = dataGroups.map(group => (0, _getHealthRecordSyncId.getHealthRecordSyncId)(group[0], measurementTypeKey));
87
90
  return {
88
91
  observationBodies,
92
+ observationSyncIds,
89
93
  hasAnchor: newAnchors.length > 0,
90
94
  anchors: newAnchors
91
95
  };
92
96
  }
93
- generateObservationEntries(observationBodies) {
97
+ generateObservationEntries(observationBodies, observationSyncIds) {
94
98
  return (0, _generateObservationEntry.generateObservationEntry)({
95
99
  groupedObservationBodies: observationBodies,
96
- provider: this.provider
100
+ provider: this.provider,
101
+ groupedObservationSyncIds: observationSyncIds
97
102
  });
98
103
  }
99
104
  getLatestValidStartDate(latestObservationDates, data) {
@@ -104,26 +109,4 @@ class DataProcessor {
104
109
  }
105
110
  }
106
111
  exports.DataProcessor = DataProcessor;
107
- const groupSleepSamples = samples => {
108
- const sorted = [...samples].sort((left, right) => getIntervalStart(left) - getIntervalStart(right));
109
- const groups = [];
110
- for (const sample of sorted) {
111
- const current = groups.at(-1);
112
- const currentEnd = current?.at(-1) ? getIntervalEnd(current.at(-1)) : undefined;
113
- if (current && currentEnd !== undefined && getIntervalStart(sample) <= currentEnd + 30 * 60 * 1000) {
114
- current.push(sample);
115
- } else {
116
- groups.push([sample]);
117
- }
118
- }
119
- return groups;
120
- };
121
- const getIntervalStart = value => {
122
- const item = value;
123
- return new Date(item.startDate ?? item.startTime ?? 0).getTime();
124
- };
125
- const getIntervalEnd = value => {
126
- const item = value;
127
- return new Date(item.endDate ?? item.endTime ?? item.startDate ?? item.startTime ?? 0).getTime();
128
- };
129
112
  //# sourceMappingURL=data-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_healthSyncKeys","_generateObservationEntry","_getLatestObservationDatesByCode","_getLatestValidStartDate","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","Object","values","flatMap","data","typeIdentifiers","map","identifier","code","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","mode","getHealthDataMode","totalCounts","Promise","all","typeIdentifier","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","typeIdentifierCodes","fromEntries","String","results","newAnchors","result","flat","filter","Boolean","allData","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","Array","from","groups","sample","value","key","Date","getTime","endDate","group","get","push","set","Map","observationBodies","length","undefined","hasAnchor","anchors","generateObservationEntries","generateObservationEntry","groupedObservationBodies","getLatestValidStartDate","latestObservationDates","exports","samples","sorted","sort","left","right","getIntervalStart","current","at","currentEnd","getIntervalEnd","item","startTime","endTime"],"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","_groupSleepSamples","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","Object","values","flatMap","data","typeIdentifiers","map","identifier","code","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","mode","getHealthDataMode","totalCounts","Promise","all","typeIdentifier","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","typeIdentifierCodes","fromEntries","String","results","newAnchors","result","flat","filter","Boolean","allData","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","Array","from","groups","sample","value","key","Date","getTime","endDate","group","get","push","set","Map","observationBodies","length","undefined","observationSyncIds","getHealthRecordSyncId","hasAnchor","anchors","generateObservationEntries","generateObservationEntry","groupedObservationBodies","groupedObservationSyncIds","getLatestValidStartDate","latestObservationDates","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
@@ -3,43 +3,81 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.generateObservationEntry = void 0;
6
+ exports.getStableObservationId = exports.generateObservationEntry = void 0;
7
+ const getObservationCode = observation => observation.code?.coding?.map(coding => `${coding.system ?? ""}|${coding.code ?? ""}`).join(",") || observation.code?.text || "unknown";
8
+ const getObservationTime = observation => {
9
+ if (observation.effectivePeriod) {
10
+ return `${observation.effectivePeriod.start ?? ""}:${observation.effectivePeriod.end ?? ""}`;
11
+ }
12
+ return observation.effectiveDateTime?.slice(0, 19) ?? "unknown";
13
+ };
14
+ const getStableObservationId = ({
15
+ observation,
16
+ provider,
17
+ sourceId,
18
+ bodyIndex
19
+ }) => observation.id && !sourceId ? `${provider}:${observation.id}` : [provider, sourceId ?? getObservationTime(observation), getObservationCode(observation), bodyIndex].join(":");
20
+ exports.getStableObservationId = getStableObservationId;
21
+ const createBundleUuid = () => {
22
+ const cryptoApi = globalThis.crypto;
23
+ const randomUuid = typeof cryptoApi === "object" && cryptoApi !== null && "randomUUID" in cryptoApi && typeof cryptoApi.randomUUID === "function" ? cryptoApi.randomUUID : undefined;
24
+ if (randomUuid) {
25
+ return randomUuid.call(cryptoApi);
26
+ }
27
+ const bytes = Array.from({
28
+ length: 16
29
+ }, () => Math.floor(Math.random() * 256));
30
+ bytes[6] = bytes[6] & 0x0f | 0x40;
31
+ bytes[8] = bytes[8] & 0x3f | 0x80;
32
+ const hex = bytes.map(byte => byte.toString(16).padStart(2, "0")).join("");
33
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
34
+ };
7
35
  const generateObservationEntry = ({
8
36
  groupedObservationBodies,
9
- provider
37
+ provider,
38
+ groupedObservationSyncIds
10
39
  }) => {
11
- return groupedObservationBodies.map((observationBodies, groupIndex) => observationBodies.map((observationBody, bodyIndex) => {
12
- const syncIdentifier = `${provider}:${observationBody.id ?? `${groupIndex}-${bodyIndex}`}`;
13
- const syncIdentifierSystem = "https://api.ovok.com/fhir/StructureDefinition/observation-sync-id";
14
- return {
15
- fullUrl: `urn:uuid:60081479-c0a1-4b9e-9c52-039cf80f45${groupIndex}-${bodyIndex}`,
16
- request: {
17
- method: "POST",
18
- url: "Observation",
19
- ifNoneExist: `identifier=${encodeURIComponent(syncIdentifierSystem)}|${encodeURIComponent(syncIdentifier)}`
20
- },
21
- resource: {
22
- ...observationBody,
23
- identifier: [...(observationBody.identifier || []), {
24
- system: "https://api.ovok.com/fhir/StructureDefinition/observation-sync-provider",
25
- value: provider
26
- }, {
27
- system: syncIdentifierSystem,
28
- value: syncIdentifier
29
- }],
30
- device: {
31
- ...(observationBody.device ?? {}),
32
- identifier: {
40
+ return groupedObservationBodies.map((observationBodies, groupIndex) => {
41
+ const fullUrls = observationBodies.map(() => `urn:uuid:${createBundleUuid()}`);
42
+ return observationBodies.map((observationBody, bodyIndex) => {
43
+ const syncIdentifier = getStableObservationId({
44
+ observation: observationBody,
45
+ provider,
46
+ sourceId: groupedObservationSyncIds?.[groupIndex],
47
+ bodyIndex
48
+ });
49
+ const fullUrl = fullUrls[bodyIndex];
50
+ const syncIdentifierSystem = "https://api.ovok.com/fhir/StructureDefinition/observation-sync-id";
51
+ return {
52
+ fullUrl,
53
+ request: {
54
+ method: "POST",
55
+ url: "Observation",
56
+ ifNoneExist: `identifier=${encodeURIComponent(syncIdentifierSystem)}|${encodeURIComponent(syncIdentifier)}`
57
+ },
58
+ resource: {
59
+ ...observationBody,
60
+ identifier: [...(observationBody.identifier || []), {
33
61
  system: "https://api.ovok.com/fhir/StructureDefinition/observation-sync-provider",
34
62
  value: provider
35
- }
36
- },
37
- hasMember: bodyIndex === 0 ? [] : [{
38
- reference: `urn:uuid:60081479-c0a1-4b9e-9c52-039cf80f45${groupIndex}-0`
39
- }]
40
- }
41
- };
42
- })).flat();
63
+ }, {
64
+ system: syncIdentifierSystem,
65
+ value: syncIdentifier
66
+ }],
67
+ device: {
68
+ ...(observationBody.device ?? {}),
69
+ identifier: {
70
+ system: "https://api.ovok.com/fhir/StructureDefinition/observation-sync-provider",
71
+ value: provider
72
+ }
73
+ },
74
+ hasMember: bodyIndex === 0 ? [] : [{
75
+ reference: fullUrls[0]
76
+ }]
77
+ }
78
+ };
79
+ });
80
+ }).flat();
43
81
  };
44
82
  exports.generateObservationEntry = generateObservationEntry;
45
83
  //# sourceMappingURL=generate-observation-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["generateObservationEntry","groupedObservationBodies","provider","map","observationBodies","groupIndex","observationBody","bodyIndex","syncIdentifier","id","syncIdentifierSystem","fullUrl","request","method","url","ifNoneExist","encodeURIComponent","resource","identifier","system","value","device","hasMember","reference","flat","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/generate-observation-entry.ts"],"mappings":";;;;;;AASO,MAAMA,wBAAwB,GAAGA,CAAC;EACvCC,wBAAwB;EACxBC;AAC6B,CAAC,KAAiC;EAC/D,OAAOD,wBAAwB,CAC5BE,GAAG,CAAC,CAACC,iBAAiB,EAAEC,UAAU,KACjCD,iBAAiB,CAACD,GAAG,CAAC,CAACG,eAAe,EAAEC,SAAS,KAAK;IACpD,MAAMC,cAAc,GAAG,GAAGN,QAAQ,IAAII,eAAe,CAACG,EAAE,IAAI,GAAGJ,UAAU,IAAIE,SAAS,EAAE,EAAE;IAE1F,MAAMG,oBAAoB,GACxB,mEAAmE;IAErE,OAAO;MACLC,OAAO,EAAE,8CAA8CN,UAAU,IAAIE,SAAS,EAAE;MAChFK,OAAO,EAAE;QACPC,MAAM,EAAE,MAAe;QACvBC,GAAG,EAAE,aAAa;QAClBC,WAAW,EAAE,cAAcC,kBAAkB,CAACN,oBAAoB,CAAC,IAAIM,kBAAkB,CAACR,cAAc,CAAC;MAC3G,CAAC;MACDS,QAAQ,EAAE;QACR,GAAGX,eAAe;QAClBY,UAAU,EAAE,CACV,IAAIZ,eAAe,CAACY,UAAU,IAAI,EAAE,CAAC,EACrC;UACEC,MAAM,EACJ,yEAAyE;UAC3EC,KAAK,EAAElB;QACT,CAAC,EACD;UACEiB,MAAM,EAAET,oBAAoB;UAC5BU,KAAK,EAAEZ;QACT,CAAC,CACF;QACDa,MAAM,EAAE;UACN,IAAIf,eAAe,CAACe,MAAM,IAAI,CAAC,CAAC,CAAC;UACjCH,UAAU,EAAE;YACVC,MAAM,EACJ,yEAAyE;YAC3EC,KAAK,EAAElB;UACT;QACF,CAAC;QACDoB,SAAS,EACPf,SAAS,KAAK,CAAC,GACX,EAAE,GACF,CACE;UACEgB,SAAS,EAAE,8CAA8ClB,UAAU;QACrE,CAAC;MAEX;IACF,CAAC;EACH,CAAC,CACH,CAAC,CACAmB,IAAI,CAAC,CAAC;AACX,CAAC;AAACC,OAAA,CAAAzB,wBAAA,GAAAA,wBAAA","ignoreList":[]}
1
+ {"version":3,"names":["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","observationBodies","groupIndex","fullUrls","observationBody","syncIdentifier","fullUrl","syncIdentifierSystem","request","method","url","ifNoneExist","encodeURIComponent","resource","identifier","value","device","hasMember","reference","flat"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/generate-observation-entry.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getHealthRecordSyncId = void 0;
7
+ const asText = value => {
8
+ if (value instanceof Date) {
9
+ return value.toISOString();
10
+ }
11
+ return typeof value === "string" || typeof value === "number" ? String(value) : undefined;
12
+ };
13
+
14
+ /**
15
+ * Builds an import identity from the source record's type and interval.
16
+ * Values are deliberately excluded so an updated daily total replaces the
17
+ * previous total instead of creating a second observation.
18
+ */
19
+ const getHealthRecordSyncId = (record, measurementTypeKey) => {
20
+ const healthRecord = record;
21
+ const type = asText(healthRecord.quantityType ?? healthRecord.recordType) ?? measurementTypeKey;
22
+ const start = asText(healthRecord.startDate ?? healthRecord.startTime);
23
+ const end = asText(healthRecord.endDate ?? healthRecord.endTime);
24
+ if (start || end) {
25
+ return `${type}:${start ?? end}:${end ?? start}`;
26
+ }
27
+ const time = asText(healthRecord.time);
28
+ if (time) {
29
+ return `${type}:${time.slice(0, 10)}`;
30
+ }
31
+ const sourceId = asText(healthRecord.uuid ?? healthRecord.metadata?.id);
32
+ return sourceId ? `${type}:${sourceId}` : undefined;
33
+ };
34
+ exports.getHealthRecordSyncId = getHealthRecordSyncId;
35
+ //# sourceMappingURL=get-health-record-sync-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["asText","value","Date","toISOString","String","undefined","getHealthRecordSyncId","record","measurementTypeKey","healthRecord","type","quantityType","recordType","start","startDate","startTime","end","endDate","endTime","time","slice","sourceId","uuid","metadata","id","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-health-record-sync-id.ts"],"mappings":";;;;;;AAYA,MAAMA,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;AACO,MAAMC,qBAAqB,GAAGA,CACnCC,MAAe,EACfC,kBAA0B,KACH;EACvB,MAAMC,YAAY,GAAGF,MAA0B;EAE/C,MAAMG,IAAI,GACRV,MAAM,CAACS,YAAY,CAACE,YAAY,IAAIF,YAAY,CAACG,UAAU,CAAC,IAC5DJ,kBAAkB;EAEpB,MAAMK,KAAK,GAAGb,MAAM,CAACS,YAAY,CAACK,SAAS,IAAIL,YAAY,CAACM,SAAS,CAAC;EACtE,MAAMC,GAAG,GAAGhB,MAAM,CAACS,YAAY,CAACQ,OAAO,IAAIR,YAAY,CAACS,OAAO,CAAC;EAEhE,IAAIL,KAAK,IAAIG,GAAG,EAAE;IAChB,OAAO,GAAGN,IAAI,IAAIG,KAAK,IAAIG,GAAG,IAAIA,GAAG,IAAIH,KAAK,EAAE;EAClD;EAEA,MAAMM,IAAI,GAAGnB,MAAM,CAACS,YAAY,CAACU,IAAI,CAAC;EAEtC,IAAIA,IAAI,EAAE;IACR,OAAO,GAAGT,IAAI,IAAIS,IAAI,CAACC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;EACvC;EAEA,MAAMC,QAAQ,GAAGrB,MAAM,CAACS,YAAY,CAACa,IAAI,IAAIb,YAAY,CAACc,QAAQ,EAAEC,EAAE,CAAC;EAEvE,OAAOH,QAAQ,GAAG,GAAGX,IAAI,IAAIW,QAAQ,EAAE,GAAGhB,SAAS;AACrD,CAAC;AAACoB,OAAA,CAAAnB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.groupSleepSamples = void 0;
7
+ const groupSleepSamples = samples => {
8
+ const sorted = [...samples].sort((left, right) => getIntervalStart(left) - getIntervalStart(right));
9
+ const groups = [];
10
+ for (const sample of sorted) {
11
+ const current = groups.at(-1);
12
+ const currentEnd = current?.at(-1) ? getIntervalEnd(current.at(-1)) : undefined;
13
+ if (current && currentEnd !== undefined && getIntervalStart(sample) <= currentEnd + 30 * 60 * 1000) {
14
+ current.push(sample);
15
+ } else {
16
+ groups.push([sample]);
17
+ }
18
+ }
19
+ return groups;
20
+ };
21
+ exports.groupSleepSamples = groupSleepSamples;
22
+ const getIntervalStart = value => {
23
+ const item = value;
24
+ return new Date(item.startDate ?? item.startTime ?? 0).getTime();
25
+ };
26
+ const getIntervalEnd = value => {
27
+ const item = value;
28
+ return new Date(item.endDate ?? item.endTime ?? item.startDate ?? item.startTime ?? 0).getTime();
29
+ };
30
+ //# sourceMappingURL=group-sleep-samples.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["groupSleepSamples","samples","sorted","sort","left","right","getIntervalStart","groups","sample","current","at","currentEnd","getIntervalEnd","undefined","push","exports","value","item","Date","startDate","startTime","getTime","endDate","endTime"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/group-sleep-samples.ts"],"mappings":";;;;;;AAAO,MAAMA,iBAAiB,GAAQC,OAAY,IAAY;EAC5D,MAAMC,MAAM,GAAG,CAAC,GAAGD,OAAO,CAAC,CAACE,IAAI,CAC9B,CAACC,IAAI,EAAEC,KAAK,KAAKC,gBAAgB,CAACF,IAAI,CAAC,GAAGE,gBAAgB,CAACD,KAAK,CAClE,CAAC;EAED,MAAME,MAAa,GAAG,EAAE;EAExB,KAAK,MAAMC,MAAM,IAAIN,MAAM,EAAE;IAC3B,MAAMO,OAAO,GAAGF,MAAM,CAACG,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7B,MAAMC,UAAU,GAAGF,OAAO,EAAEC,EAAE,CAAC,CAAC,CAAC,CAAC,GAC9BE,cAAc,CAACH,OAAO,CAACC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAC9BG,SAAS;IAEb,IACEJ,OAAO,IACPE,UAAU,KAAKE,SAAS,IACxBP,gBAAgB,CAACE,MAAM,CAAC,IAAIG,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EACvD;MACAF,OAAO,CAACK,IAAI,CAACN,MAAM,CAAC;IACtB,CAAC,MAAM;MACLD,MAAM,CAACO,IAAI,CAAC,CAACN,MAAM,CAAC,CAAC;IACvB;EACF;EAEA,OAAOD,MAAM;AACf,CAAC;AAACQ,OAAA,CAAAf,iBAAA,GAAAA,iBAAA;AAEF,MAAMM,gBAAgB,GAAIU,KAAc,IAAa;EACnD,MAAMC,IAAI,GAAGD,KAA0D;EAEvE,OAAO,IAAIE,IAAI,CAACD,IAAI,CAACE,SAAS,IAAIF,IAAI,CAACG,SAAS,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAMT,cAAc,GAAII,KAAc,IAAa;EACjD,MAAMC,IAAI,GAAGD,KAKZ;EAED,OAAO,IAAIE,IAAI,CACbD,IAAI,CAACK,OAAO,IAAIL,IAAI,CAACM,OAAO,IAAIN,IAAI,CAACE,SAAS,IAAIF,IAAI,CAACG,SAAS,IAAI,CACtE,CAAC,CAACC,OAAO,CAAC,CAAC;AACb,CAAC","ignoreList":[]}
@@ -37,7 +37,12 @@ const isAndroidBatteryOptimizationIgnored = async () => {
37
37
  return getNativeModule().isIgnoringBatteryOptimizations();
38
38
  };
39
39
 
40
- /** Opens Android's consent screen for a Doze exemption. This is always explicit opt-in. */
40
+ /**
41
+ * Opens Android's consent screen for a Doze exemption. This is always explicit
42
+ * opt-in. A false result means the exemption is not active yet; it can also
43
+ * mean the user has already answered or the prompt was already shown. Recheck
44
+ * `isAndroidBatteryOptimizationIgnored` after returning to the foreground.
45
+ */
41
46
  const requestAndroidBatteryOptimizationExemption = async () => {
42
47
  if (Platform.OS !== "android") {
43
48
  return true;
@@ -1 +1 @@
1
- {"version":3,"names":["AppRegistry","NativeModules","Platform","AndroidHealthSyncService","ANDROID_HEALTH_CONNECT_BACKGROUND_TASK","getNativeModule","nativeModule","OvokBackgroundSync","Error","startAndroidBluetoothForegroundService","options","OS","startBluetoothForegroundService","stopAndroidBluetoothForegroundService","stopBluetoothForegroundService","isAndroidBatteryOptimizationIgnored","isIgnoringBatteryOptimizations","requestAndroidBatteryOptimizationExemption","requestIgnoreBatteryOptimizations","scheduleAndroidHealthConnectSync","scheduleHealthConnectSync","cancelAndroidHealthConnectSync","cancelHealthConnectSync","runAndroidHealthConnectSync","client","patientId","dataToSync","chunkSize","onError","onProgress","progress","service","getInstance","onSyncError","error","updateProgress","nextProgress","measurementTypeKey","startSync","registerAndroidHealthConnectBackgroundTask","task","taskName","registerHeadlessTask"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-background-sync.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AppRegistry","NativeModules","Platform","AndroidHealthSyncService","ANDROID_HEALTH_CONNECT_BACKGROUND_TASK","getNativeModule","nativeModule","OvokBackgroundSync","Error","startAndroidBluetoothForegroundService","options","OS","startBluetoothForegroundService","stopAndroidBluetoothForegroundService","stopBluetoothForegroundService","isAndroidBatteryOptimizationIgnored","isIgnoringBatteryOptimizations","requestAndroidBatteryOptimizationExemption","requestIgnoreBatteryOptimizations","scheduleAndroidHealthConnectSync","scheduleHealthConnectSync","cancelAndroidHealthConnectSync","cancelHealthConnectSync","runAndroidHealthConnectSync","client","patientId","dataToSync","chunkSize","onError","onProgress","progress","service","getInstance","onSyncError","error","updateProgress","nextProgress","measurementTypeKey","startSync","registerAndroidHealthConnectBackgroundTask","task","taskName","registerHeadlessTask"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-background-sync.ts"],"mappings":"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","ignoreList":[]}
@@ -21,12 +21,7 @@ const AndroidBluetoothForegroundService = ({
21
21
  const start = async () => {
22
22
  if (requestBatteryOptimizationExemption) {
23
23
  try {
24
- const granted = await requestAndroidBatteryOptimizationExemption();
25
- if (!granted) {
26
- onError?.({
27
- error: toBluetoothError(new Error("Android battery optimization exemption was not granted."))
28
- });
29
- }
24
+ await requestAndroidBatteryOptimizationExemption();
30
25
  } catch (error) {
31
26
  onError?.({
32
27
  error: toBluetoothError(error)
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","toBluetoothError","startAndroidBluetoothForegroundService","requestAndroidBatteryOptimizationExemption","stopAndroidBluetoothForegroundService","Fragment","_Fragment","jsx","_jsx","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","requestBatteryOptimizationExemption","useEffect","OS","start","granted","error","Error","undefined","catch"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-bluetooth-foreground-service.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAIvC,SAASC,gBAAgB,QAAQ,2CAAwC;AAEzE,SACEC,sCAAsC,EACtCC,0CAA0C,EAC1CC,qCAAqC,QAEhC,8BAA2B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AASnC,MAAMC,iCAAiC,GAAGA,CAAC;EACzCC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC;AACsC,CAAC,KAAK;EAC5C,MAAMC,gBAAgB,GAAGF,OAAO,EAAEE,gBAAgB;EAClD,MAAMC,iBAAiB,GAAGH,OAAO,EAAEG,iBAAiB;EAEpD,MAAMC,mCAAmC,GACvCJ,OAAO,EAAEI,mCAAmC,KAAK,IAAI;EAEvDjB,KAAK,CAACkB,SAAS,CAAC,MAAM;IACpB,IAAIjB,QAAQ,CAACkB,EAAE,KAAK,SAAS,IAAI,CAACR,OAAO,EAAE;MACzC;IACF;IAEA,MAAMS,KAAK,GAAG,MAAAA,CAAA,KAAY;MACxB,IAAIH,mCAAmC,EAAE;QACvC,IAAI;UACF,MAAMI,OAAO,GAAG,MAAMjB,0CAA0C,CAAC,CAAC;UAElE,IAAI,CAACiB,OAAO,EAAE;YACZP,OAAO,GAAG;cACRQ,KAAK,EAAEpB,gBAAgB,CACrB,IAAIqB,KAAK,CAAC,yDAAyD,CACrE;YACF,CAAC,CAAC;UACJ;QACF,CAAC,CAAC,OAAOD,KAAc,EAAE;UACvBR,OAAO,GAAG;YAAEQ,KAAK,EAAEpB,gBAAgB,CAACoB,KAAK;UAAE,CAAC,CAAC;QAC/C;MACF;MAEA,MAAMnB,sCAAsC,CAAC;QAC3C,IAAIY,gBAAgB,KAAKS,SAAS,GAAG,CAAC,CAAC,GAAG;UAAET;QAAiB,CAAC,CAAC;QAC/D,IAAIC,iBAAiB,KAAKQ,SAAS,GAAG,CAAC,CAAC,GAAG;UAAER;QAAkB,CAAC;MAClE,CAAC,CAAC;IACJ,CAAC;IAED,KAAKI,KAAK,CAAC,CAAC,CAACK,KAAK,CAAEH,KAAc,IAAK;MACnCR,OAAO,GAAG;QAAEQ,KAAK,EAAEpB,gBAAgB,CAACoB,KAAK;MAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEJ,OAAO,MAAM;MACX,KAAKjB,qCAAqC,CAAC,CAAC,CAACoB,KAAK,CAAEH,KAAc,IAAK;QACrER,OAAO,GAAG;UAAEQ,KAAK,EAAEpB,gBAAgB,CAACoB,KAAK;QAAE,CAAC,CAAC;MAC/C,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CACDX,OAAO,EACPI,gBAAgB,EAChBC,iBAAiB,EACjBF,OAAO,EACPG,mCAAmC,CACpC,CAAC;EAEF,oBAAOR,IAAA,CAAAF,SAAA;IAAAK,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC;AAED,SAASF,iCAAiC","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","toBluetoothError","startAndroidBluetoothForegroundService","requestAndroidBatteryOptimizationExemption","stopAndroidBluetoothForegroundService","Fragment","_Fragment","jsx","_jsx","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","requestBatteryOptimizationExemption","useEffect","OS","start","error","undefined","catch"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-bluetooth-foreground-service.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAIvC,SAASC,gBAAgB,QAAQ,2CAAwC;AAEzE,SACEC,sCAAsC,EACtCC,0CAA0C,EAC1CC,qCAAqC,QAEhC,8BAA2B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AASnC,MAAMC,iCAAiC,GAAGA,CAAC;EACzCC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC;AACsC,CAAC,KAAK;EAC5C,MAAMC,gBAAgB,GAAGF,OAAO,EAAEE,gBAAgB;EAClD,MAAMC,iBAAiB,GAAGH,OAAO,EAAEG,iBAAiB;EAEpD,MAAMC,mCAAmC,GACvCJ,OAAO,EAAEI,mCAAmC,KAAK,IAAI;EAEvDjB,KAAK,CAACkB,SAAS,CAAC,MAAM;IACpB,IAAIjB,QAAQ,CAACkB,EAAE,KAAK,SAAS,IAAI,CAACR,OAAO,EAAE;MACzC;IACF;IAEA,MAAMS,KAAK,GAAG,MAAAA,CAAA,KAAY;MACxB,IAAIH,mCAAmC,EAAE;QACvC,IAAI;UACF,MAAMb,0CAA0C,CAAC,CAAC;QACpD,CAAC,CAAC,OAAOiB,KAAc,EAAE;UACvBP,OAAO,GAAG;YAAEO,KAAK,EAAEnB,gBAAgB,CAACmB,KAAK;UAAE,CAAC,CAAC;QAC/C;MACF;MAEA,MAAMlB,sCAAsC,CAAC;QAC3C,IAAIY,gBAAgB,KAAKO,SAAS,GAAG,CAAC,CAAC,GAAG;UAAEP;QAAiB,CAAC,CAAC;QAC/D,IAAIC,iBAAiB,KAAKM,SAAS,GAAG,CAAC,CAAC,GAAG;UAAEN;QAAkB,CAAC;MAClE,CAAC,CAAC;IACJ,CAAC;IAED,KAAKI,KAAK,CAAC,CAAC,CAACG,KAAK,CAAEF,KAAc,IAAK;MACrCP,OAAO,GAAG;QAAEO,KAAK,EAAEnB,gBAAgB,CAACmB,KAAK;MAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,OAAO,MAAM;MACX,KAAKhB,qCAAqC,CAAC,CAAC,CAACkB,KAAK,CAAEF,KAAc,IAAK;QACrEP,OAAO,GAAG;UAAEO,KAAK,EAAEnB,gBAAgB,CAACmB,KAAK;QAAE,CAAC,CAAC;MAC/C,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CACDV,OAAO,EACPI,gBAAgB,EAChBC,iBAAiB,EACjBF,OAAO,EACPG,mCAAmC,CACpC,CAAC;EAEF,oBAAOR,IAAA,CAAAF,SAAA;IAAAK,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC;AAED,SAASF,iCAAiC","ignoreList":[]}
@@ -28,12 +28,7 @@ export const AndroidBluetoothForegroundService = ({
28
28
  const nativeModule = getNativeModule();
29
29
  if (requestBatteryOptimizationExemption) {
30
30
  try {
31
- const granted = await nativeModule.requestIgnoreBatteryOptimizations();
32
- if (!granted) {
33
- onError?.({
34
- error: toBluetoothError(new Error("Android battery optimization exemption was not granted."))
35
- });
36
- }
31
+ await nativeModule.requestIgnoreBatteryOptimizations();
37
32
  } catch (error) {
38
33
  onError?.({
39
34
  error: toBluetoothError(error)
@@ -1 +1 @@
1
- {"version":3,"names":["React","NativeModules","Platform","toBluetoothError","Fragment","_Fragment","jsx","_jsx","getNativeModule","nativeModule","OvokBackgroundSync","Error","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","requestBatteryOptimizationExemption","useEffect","OS","start","granted","requestIgnoreBatteryOptimizations","error","startBluetoothForegroundService","undefined","catch","stopBluetoothForegroundService"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/android-bluetooth-foreground-service.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAItD,SAASC,gBAAgB,QAAQ,6BAA0B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAgB5D,MAAMC,eAAe,GAAGA,CAAA,KAAkC;EACxD,MAAMC,YAAY,GAAGR,aAAa,CAACS,kBAEtB;EAEb,IAAI,CAACD,YAAY,EAAE;IACjB,MAAM,IAAIE,KAAK,CACb,8GACF,CAAC;EACH;EAEA,OAAOF,YAAY;AACrB,CAAC;AAED,OAAO,MAAMG,iCAAiC,GAAGA,CAAC;EAChDC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC;AAKD,CAAC,KAAK;EACL,MAAMC,gBAAgB,GAAGF,OAAO,EAAEE,gBAAgB;EAClD,MAAMC,iBAAiB,GAAGH,OAAO,EAAEG,iBAAiB;EAEpD,MAAMC,mCAAmC,GACvCJ,OAAO,EAAEI,mCAAmC,KAAK,IAAI;EAEvDnB,KAAK,CAACoB,SAAS,CAAC,MAAM;IACpB,IAAIlB,QAAQ,CAACmB,EAAE,KAAK,SAAS,IAAI,CAACR,OAAO,EAAE;MACzC;IACF;IAEA,MAAMS,KAAK,GAAG,MAAAA,CAAA,KAAY;MACxB,MAAMb,YAAY,GAAGD,eAAe,CAAC,CAAC;MAEtC,IAAIW,mCAAmC,EAAE;QACvC,IAAI;UACF,MAAMI,OAAO,GAAG,MAAMd,YAAY,CAACe,iCAAiC,CAAC,CAAC;UAEtE,IAAI,CAACD,OAAO,EAAE;YACZP,OAAO,GAAG;cACRS,KAAK,EAAEtB,gBAAgB,CACrB,IAAIQ,KAAK,CAAC,yDAAyD,CACrE;YACF,CAAC,CAAC;UACJ;QACF,CAAC,CAAC,OAAOc,KAAc,EAAE;UACvBT,OAAO,GAAG;YAAES,KAAK,EAAEtB,gBAAgB,CAACsB,KAAK;UAAE,CAAC,CAAC;QAC/C;MACF;MAEA,MAAMhB,YAAY,CAACiB,+BAA+B,CAAC;QACjD,IAAIT,gBAAgB,KAAKU,SAAS,GAAG,CAAC,CAAC,GAAG;UAAEV;QAAiB,CAAC,CAAC;QAC/D,IAAIC,iBAAiB,KAAKS,SAAS,GAAG,CAAC,CAAC,GAAG;UAAET;QAAkB,CAAC;MAClE,CAAC,CAAC;IACJ,CAAC;IAED,KAAKI,KAAK,CAAC,CAAC,CAACM,KAAK,CAAEH,KAAc,IAAK;MACrCT,OAAO,GAAG;QAAES,KAAK,EAAEtB,gBAAgB,CAACsB,KAAK;MAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,OAAO,MAAM;MACX,KAAKjB,eAAe,CAAC,CAAC,CACnBqB,8BAA8B,CAAC,CAAC,CAChCD,KAAK,CAAEH,KAAc,IAAK;QACzBT,OAAO,GAAG;UAAES,KAAK,EAAEtB,gBAAgB,CAACsB,KAAK;QAAE,CAAC,CAAC;MAC/C,CAAC,CAAC;IACN,CAAC;EACH,CAAC,EAAE,CACDZ,OAAO,EACPI,gBAAgB,EAChBC,iBAAiB,EACjBF,OAAO,EACPG,mCAAmC,CACpC,CAAC;EAEF,oBAAOZ,IAAA,CAAAF,SAAA;IAAAS,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","NativeModules","Platform","toBluetoothError","Fragment","_Fragment","jsx","_jsx","getNativeModule","nativeModule","OvokBackgroundSync","Error","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","requestBatteryOptimizationExemption","useEffect","OS","start","requestIgnoreBatteryOptimizations","error","startBluetoothForegroundService","undefined","catch","stopBluetoothForegroundService"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/android-bluetooth-foreground-service.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAItD,SAASC,gBAAgB,QAAQ,6BAA0B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAgB5D,MAAMC,eAAe,GAAGA,CAAA,KAAkC;EACxD,MAAMC,YAAY,GAAGR,aAAa,CAACS,kBAEtB;EAEb,IAAI,CAACD,YAAY,EAAE;IACjB,MAAM,IAAIE,KAAK,CACb,8GACF,CAAC;EACH;EAEA,OAAOF,YAAY;AACrB,CAAC;AAED,OAAO,MAAMG,iCAAiC,GAAGA,CAAC;EAChDC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC;AAKD,CAAC,KAAK;EACL,MAAMC,gBAAgB,GAAGF,OAAO,EAAEE,gBAAgB;EAClD,MAAMC,iBAAiB,GAAGH,OAAO,EAAEG,iBAAiB;EAEpD,MAAMC,mCAAmC,GACvCJ,OAAO,EAAEI,mCAAmC,KAAK,IAAI;EAEvDnB,KAAK,CAACoB,SAAS,CAAC,MAAM;IACpB,IAAIlB,QAAQ,CAACmB,EAAE,KAAK,SAAS,IAAI,CAACR,OAAO,EAAE;MACzC;IACF;IAEA,MAAMS,KAAK,GAAG,MAAAA,CAAA,KAAY;MACxB,MAAMb,YAAY,GAAGD,eAAe,CAAC,CAAC;MAEtC,IAAIW,mCAAmC,EAAE;QACvC,IAAI;UACF,MAAMV,YAAY,CAACc,iCAAiC,CAAC,CAAC;QACxD,CAAC,CAAC,OAAOC,KAAc,EAAE;UACvBR,OAAO,GAAG;YAAEQ,KAAK,EAAErB,gBAAgB,CAACqB,KAAK;UAAE,CAAC,CAAC;QAC/C;MACF;MAEA,MAAMf,YAAY,CAACgB,+BAA+B,CAAC;QACjD,IAAIR,gBAAgB,KAAKS,SAAS,GAAG,CAAC,CAAC,GAAG;UAAET;QAAiB,CAAC,CAAC;QAC/D,IAAIC,iBAAiB,KAAKQ,SAAS,GAAG,CAAC,CAAC,GAAG;UAAER;QAAkB,CAAC;MAClE,CAAC,CAAC;IACJ,CAAC;IAED,KAAKI,KAAK,CAAC,CAAC,CAACK,KAAK,CAAEH,KAAc,IAAK;MACrCR,OAAO,GAAG;QAAEQ,KAAK,EAAErB,gBAAgB,CAACqB,KAAK;MAAE,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,OAAO,MAAM;MACX,KAAKhB,eAAe,CAAC,CAAC,CACnBoB,8BAA8B,CAAC,CAAC,CAChCD,KAAK,CAAEH,KAAc,IAAK;QACzBR,OAAO,GAAG;UAAEQ,KAAK,EAAErB,gBAAgB,CAACqB,KAAK;QAAE,CAAC,CAAC;MAC/C,CAAC,CAAC;IACN,CAAC;EACH,CAAC,EAAE,CACDX,OAAO,EACPI,gBAAgB,EAChBC,iBAAiB,EACjBF,OAAO,EACPG,mCAAmC,CACpC,CAAC;EAEF,oBAAOZ,IAAA,CAAAF,SAAA;IAAAS,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC","ignoreList":[]}
@@ -94,6 +94,7 @@ export class BaseHealthSyncService {
94
94
  while (hasAnchor && !this.stateManager.shouldStopSync) {
95
95
  const {
96
96
  observationBodies,
97
+ observationSyncIds,
97
98
  hasAnchor: currentHasAnchor,
98
99
  anchors
99
100
  } = await this.dataProcessor.getObservationBodiesForType(measurementTypeKey, data, latestValidStartDate);
@@ -101,7 +102,7 @@ export class BaseHealthSyncService {
101
102
  if (this.stateManager.shouldStopSync) {
102
103
  break;
103
104
  }
104
- const entries = this.dataProcessor.generateObservationEntries(observationBodies);
105
+ const entries = this.dataProcessor.generateObservationEntries(observationBodies, observationSyncIds);
105
106
  if (entries.length !== 0 && !this.stateManager.shouldStopSync) {
106
107
  try {
107
108
  const startedAt = Date.now();