@ovok/native 1.6.7 → 1.6.9

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/android/build.gradle +4 -1
  2. package/android/gradle.properties +1 -0
  3. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncModule.java +4 -9
  4. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectWorker.java +1 -5
  5. package/lib/commonjs/modules/data-sync/constants.js +13 -0
  6. package/lib/commonjs/modules/data-sync/constants.js.map +1 -0
  7. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +6 -3
  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/sync-progress-manager.js +10 -3
  10. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  11. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +1 -1
  12. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +2 -1
  13. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  14. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +2 -1
  15. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  16. package/lib/commonjs/modules/data-sync/utils/retry-save.js +68 -24
  17. package/lib/commonjs/modules/data-sync/utils/retry-save.js.map +1 -1
  18. package/lib/commonjs/modules/data-sync/utils/save-bundle-observations.js +88 -16
  19. package/lib/commonjs/modules/data-sync/utils/save-bundle-observations.js.map +1 -1
  20. package/lib/module/modules/data-sync/constants.js +9 -0
  21. package/lib/module/modules/data-sync/constants.js.map +1 -0
  22. package/lib/module/modules/data-sync/services/base-health-sync-service.js +6 -3
  23. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  24. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +10 -3
  25. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  26. package/lib/module/modules/data-sync/utils/generate-observation-entry.js +1 -1
  27. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +2 -1
  28. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  29. package/lib/module/modules/data-sync/utils/get-samples-from-health.js +2 -1
  30. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  31. package/lib/module/modules/data-sync/utils/retry-save.js +68 -24
  32. package/lib/module/modules/data-sync/utils/retry-save.js.map +1 -1
  33. package/lib/module/modules/data-sync/utils/save-bundle-observations.js +88 -16
  34. package/lib/module/modules/data-sync/utils/save-bundle-observations.js.map +1 -1
  35. package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts +7 -0
  36. package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts.map +1 -0
  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/sync-progress-manager.d.ts +2 -1
  39. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +2 -0
  41. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  44. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
  45. package/lib/typescript/commonjs/src/modules/data-sync/utils/save-bundle-observations.d.ts +5 -3
  46. package/lib/typescript/commonjs/src/modules/data-sync/utils/save-bundle-observations.d.ts.map +1 -1
  47. package/lib/typescript/module/src/modules/data-sync/constants.d.ts +7 -0
  48. package/lib/typescript/module/src/modules/data-sync/constants.d.ts.map +1 -0
  49. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  50. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +2 -1
  51. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  52. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +2 -0
  53. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  54. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  55. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  56. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
  57. package/lib/typescript/module/src/modules/data-sync/utils/save-bundle-observations.d.ts +5 -3
  58. package/lib/typescript/module/src/modules/data-sync/utils/save-bundle-observations.d.ts.map +1 -1
  59. package/package.json +1 -1
@@ -3,28 +3,100 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.saveBundleObservations = void 0;
6
+ exports.splitHealthImportEntries = exports.saveBundleObservations = exports.MAX_HEALTH_IMPORT_BUNDLE_BYTES = void 0;
7
+ const MAX_HEALTH_IMPORT_BUNDLE_BYTES = exports.MAX_HEALTH_IMPORT_BUNDLE_BYTES = 900_000;
8
+ const getByteLength = value => {
9
+ const TextEncoderConstructor = globalThis.TextEncoder;
10
+ if (TextEncoderConstructor) {
11
+ return new TextEncoderConstructor().encode(value).byteLength;
12
+ }
13
+ return encodeURIComponent(value).replace(/%[0-9A-F]{2}|./g, "_").length;
14
+ };
15
+ const getBundleByteLength = entries => getByteLength(JSON.stringify({
16
+ resourceType: "Bundle",
17
+ type: "batch",
18
+ entry: entries
19
+ }));
20
+ const getMemberReference = entry => {
21
+ const observation = entry.resource;
22
+ return observation?.hasMember?.[0]?.reference;
23
+ };
24
+ const groupMeasurementEntries = entries => {
25
+ const rootUrls = new Set(entries.map(entry => entry.fullUrl).filter(Boolean));
26
+ const groups = new Map();
27
+ entries.forEach((entry, index) => {
28
+ const key = getMemberReference(entry) && rootUrls.has(getMemberReference(entry)) ? getMemberReference(entry) : entry.fullUrl ?? `entry-${index}`;
29
+ const group = groups.get(key) ?? [];
30
+ group.push(entry);
31
+ groups.set(key, group);
32
+ });
33
+ return [...groups.values()];
34
+ };
35
+ const serializeBatch = entries => getBundleByteLength(entries);
36
+ const splitHealthImportEntries = (entries, maxBytes = MAX_HEALTH_IMPORT_BUNDLE_BYTES) => {
37
+ const batches = [];
38
+ let current = [];
39
+ for (const group of groupMeasurementEntries(entries)) {
40
+ const candidate = [...current, ...group];
41
+ if (current.length > 0 && serializeBatch(candidate) > maxBytes) {
42
+ batches.push(current);
43
+ current = [];
44
+ }
45
+ current.push(...group);
46
+ }
47
+ if (current.length > 0) {
48
+ batches.push(current);
49
+ }
50
+ return batches;
51
+ };
52
+ exports.splitHealthImportEntries = splitHealthImportEntries;
53
+ const createBatchError = (bundle, expectedEntries) => {
54
+ const responseEntries = bundle.entry ?? [];
55
+ const statusCounts = new Map();
56
+ responseEntries.forEach(entry => {
57
+ const status = entry.response?.status ?? "missing status";
58
+ if (status.startsWith("2")) {
59
+ return;
60
+ }
61
+ statusCounts.set(status, (statusCounts.get(status) ?? 0) + 1);
62
+ });
63
+ const missingCount = Math.max(expectedEntries - responseEntries.length, 0);
64
+ if (missingCount > 0) {
65
+ statusCounts.set("missing status", (statusCounts.get("missing status") ?? 0) + missingCount);
66
+ }
67
+ const summary = [...statusCounts.entries()].map(([status, count]) => `${status} × ${count}`).join(", ");
68
+ const error = new Error(`Health import batch did not save every entry (${summary || "unknown status"})`);
69
+ Object.assign(error, {
70
+ bundle
71
+ });
72
+ return error;
73
+ };
7
74
  const saveBundleObservations = async ({
8
75
  entries,
9
76
  client
10
77
  }) => {
11
- const bundle = await client.executeBatch({
12
- resourceType: "Bundle",
13
- type: "batch",
14
- entry: entries
15
- });
16
- const responseEntries = bundle.entry ?? [];
17
- const hasMissingResponse = responseEntries.length !== entries.length;
18
- const rejectedEntries = responseEntries.filter(entry => !entry.response?.status.startsWith("2"));
19
- if (hasMissingResponse || rejectedEntries.length > 0) {
20
- const statuses = responseEntries.map(entry => entry.response?.status ?? "missing status");
21
- const error = new Error(`Health import batch did not save every entry (${statuses.join(", ")})`);
22
- Object.assign(error, {
23
- bundle
78
+ const responseBundles = [];
79
+ for (const batchEntries of splitHealthImportEntries(entries)) {
80
+ const bundle = await client.executeBatch({
81
+ resourceType: "Bundle",
82
+ type: "batch",
83
+ entry: batchEntries
24
84
  });
25
- throw error;
85
+ const responseEntries = bundle.entry ?? [];
86
+ const hasMissingResponse = responseEntries.length !== batchEntries.length;
87
+ const hasRejectedEntry = responseEntries.some(entry => !entry.response?.status.startsWith("2"));
88
+ if (hasMissingResponse || hasRejectedEntry) {
89
+ throw createBatchError(bundle, batchEntries.length);
90
+ }
91
+ responseBundles.push(bundle);
26
92
  }
27
- return bundle;
93
+ return {
94
+ ...(responseBundles[0] ?? {
95
+ resourceType: "Bundle",
96
+ type: "batch-response"
97
+ }),
98
+ entry: responseBundles.flatMap(bundle => bundle.entry ?? [])
99
+ };
28
100
  };
29
101
  exports.saveBundleObservations = saveBundleObservations;
30
102
  //# sourceMappingURL=save-bundle-observations.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["saveBundleObservations","entries","client","bundle","executeBatch","resourceType","type","entry","responseEntries","hasMissingResponse","length","rejectedEntries","filter","response","status","startsWith","statuses","map","error","Error","join","Object","assign","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/save-bundle-observations.ts"],"mappings":";;;;;;AAQO,MAAMA,sBAAsB,GAAG,MAAAA,CAAO;EAC3CC,OAAO;EACPC;AAC2B,CAAC,KAAK;EACjC,MAAMC,MAAM,GAAG,MAAMD,MAAM,CAACE,YAAY,CAAC;IACvCC,YAAY,EAAE,QAAQ;IACtBC,IAAI,EAAE,OAAO;IACbC,KAAK,EAAEN;EACT,CAAC,CAAC;EAEF,MAAMO,eAAe,GAAGL,MAAM,CAACI,KAAK,IAAI,EAAE;EAC1C,MAAME,kBAAkB,GAAGD,eAAe,CAACE,MAAM,KAAKT,OAAO,CAACS,MAAM;EAEpE,MAAMC,eAAe,GAAGH,eAAe,CAACI,MAAM,CAC3CL,KAAK,IAAK,CAACA,KAAK,CAACM,QAAQ,EAAEC,MAAM,CAACC,UAAU,CAAC,GAAG,CACnD,CAAC;EAED,IAAIN,kBAAkB,IAAIE,eAAe,CAACD,MAAM,GAAG,CAAC,EAAE;IACpD,MAAMM,QAAQ,GAAGR,eAAe,CAACS,GAAG,CACjCV,KAAK,IAAKA,KAAK,CAACM,QAAQ,EAAEC,MAAM,IAAI,gBACvC,CAAC;IAED,MAAMI,KAAK,GAAG,IAAIC,KAAK,CACrB,iDAAiDH,QAAQ,CAACI,IAAI,CAAC,IAAI,CAAC,GACtE,CAAC;IAEDC,MAAM,CAACC,MAAM,CAACJ,KAAK,EAAE;MAAEf;IAAO,CAAC,CAAC;IAChC,MAAMe,KAAK;EACb;EAEA,OAAOf,MAAM;AACf,CAAC;AAACoB,OAAA,CAAAvB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["MAX_HEALTH_IMPORT_BUNDLE_BYTES","exports","getByteLength","value","TextEncoderConstructor","globalThis","TextEncoder","encode","byteLength","encodeURIComponent","replace","length","getBundleByteLength","entries","JSON","stringify","resourceType","type","entry","getMemberReference","observation","resource","hasMember","reference","groupMeasurementEntries","rootUrls","Set","map","fullUrl","filter","Boolean","groups","Map","forEach","index","key","has","group","get","push","set","values","serializeBatch","splitHealthImportEntries","maxBytes","batches","current","candidate","createBatchError","bundle","expectedEntries","responseEntries","statusCounts","status","response","startsWith","missingCount","Math","max","summary","count","join","error","Error","Object","assign","saveBundleObservations","client","responseBundles","batchEntries","executeBatch","hasMissingResponse","hasRejectedEntry","some","flatMap"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/save-bundle-observations.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Keeps provider pages comfortably below Medplum's synchronous request limit.
5
+ * The save helper also enforces the byte limit because an observation's size
6
+ * is not constant.
7
+ */
8
+ export const DEFAULT_HEALTH_SYNC_CHUNK_SIZE = 250;
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_HEALTH_SYNC_CHUNK_SIZE"],"sourceRoot":"../../../../src","sources":["modules/data-sync/constants.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,8BAA8B,GAAG,GAAG","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  /* eslint-disable max-lines */
4
4
 
5
5
  import { recordOvokDuration, recordOvokMetric, withOvokSpan } from "../../helpers/utils/telemetry.js";
6
+ import { DEFAULT_HEALTH_SYNC_CHUNK_SIZE } from "../constants.js";
6
7
  import { getHealthDataMode } from "../types/health-sync-keys.js";
7
8
  import { isSyncRetryCancelled, withSyncRetries } from "../utils/retry-save.js";
8
9
  import { DataProcessor } from "./managers/data-processor.js";
@@ -18,7 +19,7 @@ export class BaseHealthSyncService {
18
19
  this.progressManager = new SyncProgressManager(props.updateProgress, props.dataToSync);
19
20
  this.stateManager = new SyncStateManager();
20
21
  this.storageManager = new StorageManager(props.client, this.getProviderName());
21
- this.dataProcessor = new DataProcessor(props.client, props.patientId, this.getProviderName(), props.chunkSize ?? 5000, this.storageManager, this.getTotalCountsFunction(), this.getDataFromProviderFunction(), this.getConverterFunction());
22
+ this.dataProcessor = new DataProcessor(props.client, props.patientId, this.getProviderName(), props.chunkSize ?? DEFAULT_HEALTH_SYNC_CHUNK_SIZE, this.storageManager, this.getTotalCountsFunction(), this.getDataFromProviderFunction(), this.getConverterFunction());
22
23
  }
23
24
  /** One run at a time; see `SyncStateManager.once` for why that matters. */
24
25
  async startSync() {
@@ -111,7 +112,9 @@ export class BaseHealthSyncService {
111
112
  if (this.stateManager.shouldStopSync) {
112
113
  return;
113
114
  }
114
- const createdCount = result.entry?.filter(entry => entry.response?.status.startsWith("201")).length ?? 0;
115
+ const responseEntries = result.entry ?? [];
116
+ const savedCount = responseEntries.length ? responseEntries.filter(entry => entry.response?.status.startsWith("2")).length : entries.length;
117
+ const createdCount = responseEntries.filter(entry => entry.response?.status.startsWith("201")).length;
115
118
  recordOvokMetric("ovok.health.samples.imported", createdCount, {
116
119
  provider: this.getProviderName(),
117
120
  measurementTypeKey
@@ -120,7 +123,7 @@ export class BaseHealthSyncService {
120
123
  provider: this.getProviderName()
121
124
  });
122
125
  this.stateManager.addResult(result);
123
- this.progressManager.incrementSyncedObservations(measurementTypeKey, createdCount);
126
+ this.progressManager.incrementSyncedObservations(measurementTypeKey, savedCount, createdCount);
124
127
  this.storageManager.saveAnchors(anchors);
125
128
  } catch (error) {
126
129
  if (isSyncRetryCancelled(error) || this.stateManager.shouldStopSync) {
@@ -1 +1 @@
1
- {"version":3,"names":["recordOvokDuration","recordOvokMetric","withOvokSpan","getHealthDataMode","isSyncRetryCancelled","withSyncRetries","DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","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","mode","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","observationSyncIds","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","saveObservations","createdCount","entry","filter","response","status","startsWith","addResult","incrementSyncedObservations","saveAnchors"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["recordOvokDuration","recordOvokMetric","withOvokSpan","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","getHealthDataMode","isSyncRetryCancelled","withSyncRetries","DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","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","mode","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","observationSyncIds","currentHasAnchor","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","saveObservations","responseEntries","entry","savedCount","filter","response","status","startsWith","createdCount","addResult","incrementSyncedObservations","saveAnchors"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  const defaultSyncData = {
4
4
  syncedObservations: null,
5
+ createdObservations: null,
5
6
  totalObservations: null,
6
7
  status: "idle"
7
8
  };
@@ -35,18 +36,24 @@ export class SyncProgressManager {
35
36
  }
36
37
  }
37
38
  getProgress(measurementTypeKey) {
39
+ const data = this.syncData[measurementTypeKey];
38
40
  return {
39
- done: this.syncData[measurementTypeKey]?.syncedObservations ?? 0,
40
- total: this.syncData[measurementTypeKey]?.totalObservations ?? 0
41
+ done: data?.syncedObservations ?? 0,
42
+ total: data?.totalObservations ?? 0,
43
+ ...(data?.createdObservations === null || data?.createdObservations === undefined ? {} : {
44
+ created: data.createdObservations
45
+ })
41
46
  };
42
47
  }
43
48
  setTotalObservations(measurementTypeKey, total) {
44
49
  this.syncData[measurementTypeKey].totalObservations = total;
45
50
  this.notifyProgress(measurementTypeKey, "idle");
46
51
  }
47
- incrementSyncedObservations(measurementTypeKey, count) {
52
+ incrementSyncedObservations(measurementTypeKey, count, createdCount = 0) {
48
53
  this.syncData[measurementTypeKey].syncedObservations ??= 0;
49
54
  this.syncData[measurementTypeKey].syncedObservations += count;
55
+ this.syncData[measurementTypeKey].createdObservations ??= 0;
56
+ this.syncData[measurementTypeKey].createdObservations += createdCount;
50
57
  this.notifyProgress(measurementTypeKey, "syncing");
51
58
  }
52
59
  setStatus(measurementTypeKey, status, reason) {
@@ -1 +1 @@
1
- {"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","reason","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","undefined","resetAll","forEach","progress"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":";;AAeA,MAAMA,eAAyB,GAAG;EAChCC,kBAAkB,EAAE,IAAI;EACxBC,iBAAiB,EAAE,IAAI;EACvBC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,MAAMC,mBAAmB,CAI9B;EACQC,QAAQ,GAA6C,CAAC,CAAC;EAE/DC,WAAWA,CACDC,cAAgD,EACxDC,UAAuB,EACvB;IAAA,KAFQD,cAAgD,GAAhDA,cAAgD;IAGxD,KAAK,MAAME,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACH,UAAU,CAAC,EAAE;MACzC,MAAMI,kBAAkB,GAAGH,GAAoB;MAE/C,IAAI,CAACJ,QAAQ,CAACO,kBAAkB,CAAC,GAAG;QAAE,GAAGZ;MAAgB,CAAC;IAC5D;EACF;EAEAa,gBAAgBA,CAACC,MAAwB,EAAE;IACzC,KAAK,MAAML,GAAG,IAAIC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACN,QAAQ,CAAC,EAAE;MAC5C,MAAMO,kBAAkB,GAAGH,GAAoB;MAC/C,MAAMM,aAAa,GAAG,IAAI,CAACC,SAAS,CAACJ,kBAAkB,CAAC;MAExD,IAAIG,aAAa,KAAK,WAAW,IAAIA,aAAa,KAAK,QAAQ,EAAE;QAC/D,IAAI,CAACE,SAAS,CAACL,kBAAkB,EAAE,QAAQ,EAAEE,MAAM,CAAC;MACtD;IACF;EACF;EAEAI,qBAAqBA,CAAA,EAAG;IACtB,KAAK,MAAMT,GAAG,IAAIC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACN,QAAQ,CAAC,EAAE;MAC5C,MAAMO,kBAAkB,GAAGH,GAAoB;MAC/C,MAAMM,aAAa,GAAG,IAAI,CAACC,SAAS,CAACJ,kBAAkB,CAAC;MAExD,IAAIG,aAAa,KAAK,QAAQ,EAAE;QAC9B,IAAI,CAACE,SAAS,CAACL,kBAAkB,EAAE,MAAM,CAAC;MAC5C;IACF;EACF;EAEAO,WAAWA,CAACP,kBAAiC,EAAE;IAC7C,OAAO;MACLQ,IAAI,EAAE,IAAI,CAACf,QAAQ,CAACO,kBAAkB,CAAC,EAAEX,kBAAkB,IAAI,CAAC;MAChEoB,KAAK,EAAE,IAAI,CAAChB,QAAQ,CAACO,kBAAkB,CAAC,EAAEV,iBAAiB,IAAI;IACjE,CAAC;EACH;EAEAoB,oBAAoBA,CAACV,kBAAiC,EAAES,KAAa,EAAE;IACrE,IAAI,CAAChB,QAAQ,CAACO,kBAAkB,CAAC,CAAEV,iBAAiB,GAAGmB,KAAK;IAC5D,IAAI,CAACE,cAAc,CAACX,kBAAkB,EAAE,MAAM,CAAC;EACjD;EAEAY,2BAA2BA,CACzBZ,kBAAiC,EACjCa,KAAa,EACb;IACA,IAAI,CAACpB,QAAQ,CAACO,kBAAkB,CAAC,CAAEX,kBAAkB,KAAK,CAAC;IAC3D,IAAI,CAACI,QAAQ,CAACO,kBAAkB,CAAC,CAAEX,kBAAkB,IAAIwB,KAAK;IAC9D,IAAI,CAACF,cAAc,CAACX,kBAAkB,EAAE,SAAS,CAAC;EACpD;EAEAK,SAASA,CACPL,kBAAiC,EACjCT,MAA8B,EAC9BW,MAAwB,EACxB;IACA,IAAI,CAACT,QAAQ,CAACO,kBAAkB,CAAC,CAAET,MAAM,GAAGA,MAAM;IAClD,IAAI,CAACE,QAAQ,CAACO,kBAAkB,CAAC,CAAEE,MAAM,GACvCX,MAAM,KAAK,QAAQ,GAAGW,MAAM,GAAGY,SAAS;IAC1C,IAAI,CAACH,cAAc,CAACX,kBAAkB,EAAET,MAAM,EAAEW,MAAM,CAAC;EACzD;EAEAE,SAASA,CAACJ,kBAAiC,EAAE;IAC3C,OAAO,IAAI,CAACP,QAAQ,CAACO,kBAAkB,CAAC,CAAET,MAAM;EAClD;EAEAwB,QAAQA,CAAA,EAAG;IACTjB,MAAM,CAACC,IAAI,CAAC,IAAI,CAACN,QAAQ,CAAC,CAACuB,OAAO,CAAEnB,GAAG,IAAK;MAC1C,MAAMG,kBAAkB,GAAGH,GAAoB;MAE/C,IAAI,CAACJ,QAAQ,CAACO,kBAAkB,CAAC,GAAG;QAAE,GAAGZ;MAAgB,CAAC;MAC1D,IAAI,CAACuB,cAAc,CAACX,kBAAkB,EAAE,MAAM,CAAC;IACjD,CAAC,CAAC;EACJ;EAEQW,cAAcA,CACpBX,kBAAiC,EACjCT,MAA8B,EAC9BW,MAAwB,EACxB;IACA,IAAI,CAACP,cAAc,CAAC;MAClBK,kBAAkB;MAClBT,MAAM;MACN,IAAIA,MAAM,KAAK,QAAQ,IAAIW,MAAM,GAAG;QAAEA;MAAO,CAAC,GAAG,CAAC,CAAC,CAAC;MACpDe,QAAQ,EAAE,IAAI,CAACV,WAAW,CAACP,kBAAkB;IAC/C,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
1
+ {"version":3,"names":["defaultSyncData","syncedObservations","createdObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","reason","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","data","done","total","undefined","created","setTotalObservations","notifyProgress","incrementSyncedObservations","count","createdCount","resetAll","forEach","progress"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- const getObservationCode = observation => observation.code?.coding?.map(coding => `${coding.system ?? ""}|${coding.code ?? ""}`).join(",") || observation.code?.text || "unknown";
3
+ const getObservationCode = observation => observation.code?.coding?.map(coding => `${coding.system ?? ""}|${coding.code ?? ""}`).join("~") || observation.code?.text || "unknown";
4
4
  const getObservationTime = observation => {
5
5
  if (observation.effectivePeriod) {
6
6
  return `${observation.effectivePeriod.start ?? ""}:${observation.effectivePeriod.end ?? ""}`;
@@ -2,10 +2,11 @@
2
2
 
3
3
  import { addSeconds, startOfDay, subDays } from "date-fns";
4
4
  import { aggregateGroupByPeriod, readRecords } from "react-native-health-connect";
5
+ import { DEFAULT_HEALTH_SYNC_CHUNK_SIZE } from "../constants.js";
5
6
  export const getRecordsFromHealthConnect = async ({
6
7
  typeIdentifier,
7
8
  startDate: _startDate,
8
- chunkSize = 5000,
9
+ chunkSize = DEFAULT_HEALTH_SYNC_CHUNK_SIZE,
9
10
  anchor,
10
11
  mode = "point"
11
12
  }) => {
@@ -1 +1 @@
1
- {"version":3,"names":["addSeconds","startOfDay","subDays","aggregateGroupByPeriod","readRecords","getRecordsFromHealthConnect","typeIdentifier","startDate","_startDate","chunkSize","anchor","mode","getDailyAggregates","Date","toISOString","endDate","result","timeRangeFilter","operator","startTime","endTime","pageSize","pageToken","data","records","undefined","aggregateType","today","groups","recordType","timeRangeSlicer","period","length","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":["addSeconds","startOfDay","subDays","aggregateGroupByPeriod","readRecords","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","getRecordsFromHealthConnect","typeIdentifier","startDate","_startDate","chunkSize","anchor","mode","getDailyAggregates","Date","toISOString","endDate","result","timeRangeFilter","operator","startTime","endTime","pageSize","pageToken","data","records","undefined","aggregateType","today","groups","recordType","timeRangeSlicer","period","length","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":[]}
@@ -2,12 +2,13 @@
2
2
 
3
3
  import Healthkit, { HKStatisticsOptions, HKWorkoutTypeIdentifier, UnitOfEnergy } from "@kingstinct/react-native-healthkit";
4
4
  import { addDays, addSeconds, startOfDay, subDays } from "date-fns";
5
+ import { DEFAULT_HEALTH_SYNC_CHUNK_SIZE } from "../constants.js";
5
6
  import { healthUnitFor } from "./health-units.js";
6
7
  export const getSamplesFromHealth = async ({
7
8
  startDate: _startDate,
8
9
  typeIdentifier,
9
10
  anchor,
10
- chunkSize = 5000,
11
+ chunkSize = DEFAULT_HEALTH_SYNC_CHUNK_SIZE,
11
12
  mode = "point"
12
13
  }) => {
13
14
  const startDate = _startDate ? addSeconds(new Date(_startDate), 1) : subDays(new Date(), 30);
@@ -1 +1 @@
1
- {"version":3,"names":["Healthkit","HKStatisticsOptions","HKWorkoutTypeIdentifier","UnitOfEnergy","addDays","addSeconds","startOfDay","subDays","healthUnitFor","getSamplesFromHealth","startDate","_startDate","typeIdentifier","anchor","chunkSize","mode","Date","endDate","isQuantityIdentifier","data","undefined","getDailyStatistics","options","from","to","limit","queryWorkoutSamplesWithAnchor","result","energyUnit","Kilocalories","distanceUnit","samples","newAnchor","isCategoryIdentifier","queryCategorySamplesWithAnchor","queryQuantitySamplesWithAnchor","unit","firstDay","today","cumulativeSum","discreteAverage","discreteMin","discreteMax","statistics","queryStatisticsCollectionForQuantity","day","flatMap","statistic","index","dayStart","dayEnd","total","sumQuantity","quantity","average","averageQuantity","minimum","minimumQuantity","maximum","maximumQuantity","kind","value","startsWith"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-samples-from-health.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Healthkit","HKStatisticsOptions","HKWorkoutTypeIdentifier","UnitOfEnergy","addDays","addSeconds","startOfDay","subDays","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","healthUnitFor","getSamplesFromHealth","startDate","_startDate","typeIdentifier","anchor","chunkSize","mode","Date","endDate","isQuantityIdentifier","data","undefined","getDailyStatistics","options","from","to","limit","queryWorkoutSamplesWithAnchor","result","energyUnit","Kilocalories","distanceUnit","samples","newAnchor","isCategoryIdentifier","queryCategorySamplesWithAnchor","queryQuantitySamplesWithAnchor","unit","firstDay","today","cumulativeSum","discreteAverage","discreteMin","discreteMax","statistics","queryStatisticsCollectionForQuantity","day","flatMap","statistic","index","dayStart","dayEnd","total","sumQuantity","quantity","average","averageQuantity","minimum","minimumQuantity","maximum","maximumQuantity","kind","value","startsWith"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-samples-from-health.ts"],"mappings":"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","ignoreList":[]}
@@ -8,18 +8,28 @@ const statusNumber = value => {
8
8
  const parsed = typeof value === "string" ? Number.parseInt(value, 10) : Number(value);
9
9
  return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined;
10
10
  };
11
- function getStatus(error) {
12
- const record = asRecord(error);
13
- const response = asRecord(record?.response);
14
- const statuses = [record?.status, record?.statusCode, response?.status, ...(Array.isArray(record?.entry) ? record.entry.map(entry => asRecord(asRecord(entry)?.response)?.status) : [])];
15
- for (const status of statuses) {
16
- const numberStatus = statusNumber(status);
17
- if (numberStatus !== undefined) {
18
- return numberStatus;
11
+ const getNestedRecords = error => {
12
+ const records = [];
13
+ const pending = [asRecord(error)];
14
+ const seen = new Set();
15
+ while (pending.length > 0) {
16
+ const record = pending.shift();
17
+ if (!record || seen.has(record)) {
18
+ continue;
19
+ }
20
+ seen.add(record);
21
+ records.push(record);
22
+ for (const key of ["response", "bundle", "cause"]) {
23
+ const nested = asRecord(record[key]);
24
+ if (nested) {
25
+ pending.push(nested);
26
+ }
19
27
  }
20
28
  }
21
- return undefined;
22
- }
29
+ return records;
30
+ };
31
+ const getResponseStatuses = record => [record.status, record.statusCode, asRecord(record.response)?.status, ...(Array.isArray(record.entry) ? record.entry.map(entry => asRecord(asRecord(entry)?.response)?.status) : [])];
32
+ const getStatuses = error => getNestedRecords(error).flatMap(getResponseStatuses).map(statusNumber).filter(status => status !== undefined);
23
33
  class SyncRetryCancelledError extends Error {
24
34
  constructor() {
25
35
  super("Health sync retry cancelled");
@@ -27,25 +37,59 @@ class SyncRetryCancelledError extends Error {
27
37
  }
28
38
  }
29
39
  const isSyncRetryCancelled = error => error instanceof SyncRetryCancelledError;
30
- function getRetryAfterMs(error) {
31
- const record = asRecord(error);
32
- const response = asRecord(record?.response);
33
- const retryAfter = record?.retryAfterMs ?? response?.retryAfterMs;
34
- if (typeof retryAfter === "number" && retryAfter >= 0) {
35
- return retryAfter;
40
+ const getHeader = (headers, name) => {
41
+ const lowerName = name.toLowerCase();
42
+ const entry = Object.entries(headers ?? {}).find(([key]) => key.toLowerCase() === lowerName)?.[1];
43
+ return typeof entry === "string" || typeof entry === "number" ? String(entry) : undefined;
44
+ };
45
+ const parseRetryAfter = value => {
46
+ const seconds = Number(value);
47
+ if (Number.isFinite(seconds) && seconds >= 0) {
48
+ return seconds * 1000;
36
49
  }
37
- const headers = asRecord(response?.headers);
38
- const header = headers?.["retry-after"] ?? headers?.["Retry-After"];
39
- if (typeof header !== "string") {
50
+ const date = Date.parse(value);
51
+ return Number.isFinite(date) ? Math.max(0, date - Date.now()) : undefined;
52
+ };
53
+ const parseRateLimitReset = value => {
54
+ const reset = Number(value);
55
+ if (!Number.isFinite(reset) || reset < 0) {
40
56
  return undefined;
41
57
  }
42
- const seconds = Number(header);
43
- return Number.isFinite(seconds) && seconds >= 0 ? seconds * 1000 : undefined;
58
+ const nowInSeconds = Date.now() / 1000;
59
+ return reset > nowInSeconds - 60 ? Math.max(0, reset * 1000 - Date.now()) : reset * 1000;
60
+ };
61
+ function getRetryAfterMs(error) {
62
+ const values = [];
63
+ for (const record of getNestedRecords(error)) {
64
+ const retryAfter = record.retryAfterMs;
65
+ if (typeof retryAfter === "number" && retryAfter >= 0) {
66
+ values.push(retryAfter);
67
+ }
68
+ const response = asRecord(record.response);
69
+ const responseRetryAfter = response?.retryAfterMs;
70
+ if (typeof responseRetryAfter === "number" && responseRetryAfter >= 0) {
71
+ values.push(responseRetryAfter);
72
+ }
73
+ const headers = asRecord(response?.headers) ?? asRecord(record.headers);
74
+ const retryAfterHeader = getHeader(headers, "retry-after");
75
+ const retryAfterMs = retryAfterHeader ? parseRetryAfter(retryAfterHeader) : undefined;
76
+ const rateLimitReset = getHeader(headers, "ratelimit-reset");
77
+ const rateLimitResetMs = rateLimitReset ? parseRateLimitReset(rateLimitReset) : undefined;
78
+ const rateLimit = getHeader(headers, "ratelimit");
79
+ const embeddedReset = rateLimit?.match(/(?:^|[,;\s])reset\s*=\s*([0-9]+)/i)?.[1];
80
+ const embeddedResetMs = embeddedReset ? parseRateLimitReset(embeddedReset) : undefined;
81
+ for (const value of [retryAfterMs, rateLimitResetMs, embeddedResetMs]) {
82
+ if (value !== undefined) {
83
+ values.push(value);
84
+ }
85
+ }
86
+ }
87
+ return values.length > 0 ? Math.max(...values) : undefined;
44
88
  }
45
89
  function isRetryableSyncError(error) {
46
- const status = getStatus(error);
47
- if (status !== undefined) {
48
- return status === 429 || status >= 500;
90
+ const statuses = getStatuses(error);
91
+ if (statuses.length > 0) {
92
+ return statuses.some(status => status === 429 || status >= 500);
49
93
  }
50
94
  const message = error instanceof Error ? error.message : String(error);
51
95
  return error instanceof TypeError || /network|fetch|timeout|connection|offline|unreachable/i.test(message);
@@ -1 +1 @@
1
- {"version":3,"names":["RETRY_DELAYS_MS","asRecord","value","undefined","statusNumber","parsed","Number","parseInt","isInteger","getStatus","error","record","response","statuses","status","statusCode","Array","isArray","entry","map","numberStatus","SyncRetryCancelledError","Error","constructor","name","isSyncRetryCancelled","getRetryAfterMs","retryAfter","retryAfterMs","headers","header","seconds","isFinite","isRetryableSyncError","message","String","TypeError","test","getSyncRetryDelayMs","retryIndex","Math","max","at","withSyncRetries","operation","shouldCancel","length","Promise","resolve","reject","timers","poll","setInterval","timer","clearTimeout","clearInterval","setTimeout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/retry-save.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RETRY_DELAYS_MS","asRecord","value","undefined","statusNumber","parsed","Number","parseInt","isInteger","getNestedRecords","error","records","pending","seen","Set","length","record","shift","has","add","push","key","nested","getResponseStatuses","status","statusCode","response","Array","isArray","entry","map","getStatuses","flatMap","filter","SyncRetryCancelledError","Error","constructor","name","isSyncRetryCancelled","getHeader","headers","lowerName","toLowerCase","Object","entries","find","String","parseRetryAfter","seconds","isFinite","date","Date","parse","Math","max","now","parseRateLimitReset","reset","nowInSeconds","getRetryAfterMs","values","retryAfter","retryAfterMs","responseRetryAfter","retryAfterHeader","rateLimitReset","rateLimitResetMs","rateLimit","embeddedReset","match","embeddedResetMs","isRetryableSyncError","statuses","some","message","TypeError","test","getSyncRetryDelayMs","retryIndex","at","withSyncRetries","operation","shouldCancel","Promise","resolve","reject","timers","poll","setInterval","timer","clearTimeout","clearInterval","setTimeout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/retry-save.ts"],"mappings":"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","ignoreList":[]}