@ovok/native 1.6.8 → 1.6.10

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 (66) hide show
  1. package/README.md +5 -3
  2. package/lib/commonjs/modules/data-sync/constants.js +13 -0
  3. package/lib/commonjs/modules/data-sync/constants.js.map +1 -0
  4. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +10 -7
  5. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  6. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +1 -1
  7. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  8. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js +10 -3
  9. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  10. package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +1 -1
  11. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +2 -1
  12. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  13. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +2 -1
  14. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  15. package/lib/commonjs/modules/data-sync/utils/retry-save.js +68 -24
  16. package/lib/commonjs/modules/data-sync/utils/retry-save.js.map +1 -1
  17. package/lib/commonjs/modules/data-sync/utils/save-bundle-observations.js +88 -16
  18. package/lib/commonjs/modules/data-sync/utils/save-bundle-observations.js.map +1 -1
  19. package/lib/commonjs/modules/questionnaire-response-form/README.md +24 -11
  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 +10 -7
  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/data-processor.js +1 -1
  25. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  26. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +10 -3
  27. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  28. package/lib/module/modules/data-sync/utils/generate-observation-entry.js +1 -1
  29. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +2 -1
  30. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  31. package/lib/module/modules/data-sync/utils/get-samples-from-health.js +2 -1
  32. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  33. package/lib/module/modules/data-sync/utils/retry-save.js +68 -24
  34. package/lib/module/modules/data-sync/utils/retry-save.js.map +1 -1
  35. package/lib/module/modules/data-sync/utils/save-bundle-observations.js +88 -16
  36. package/lib/module/modules/data-sync/utils/save-bundle-observations.js.map +1 -1
  37. package/lib/module/modules/questionnaire-response-form/README.md +24 -11
  38. package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts +7 -0
  39. package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts.map +1 -0
  40. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  41. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +1 -1
  42. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +2 -1
  44. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  45. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +2 -0
  46. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  47. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  48. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  49. package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/src/modules/data-sync/utils/save-bundle-observations.d.ts +5 -3
  51. package/lib/typescript/commonjs/src/modules/data-sync/utils/save-bundle-observations.d.ts.map +1 -1
  52. package/lib/typescript/module/src/modules/data-sync/constants.d.ts +7 -0
  53. package/lib/typescript/module/src/modules/data-sync/constants.d.ts.map +1 -0
  54. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  55. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +1 -1
  56. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  57. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +2 -1
  58. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  59. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +2 -0
  60. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  61. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  62. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  63. package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
  64. package/lib/typescript/module/src/modules/data-sync/utils/save-bundle-observations.d.ts +5 -3
  65. package/lib/typescript/module/src/modules/data-sync/utils/save-bundle-observations.d.ts.map +1 -1
  66. package/package.json +2 -1
@@ -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":";;AAAA,MAAMA,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAU;AAIpD,SAASC,QAAQA,CAACC,KAAc,EAA2B;EACzD,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,GAC7CA,KAAK,GACNC,SAAS;AACf;AAEA,MAAMC,YAAY,GAAIF,KAAc,IAAyB;EAC3D,MAAMG,MAAM,GAAG,OAAOH,KAAK,KAAK,QAAQ,GAAGI,MAAM,CAACC,QAAQ,CAACL,KAAK,EAAE,EAAE,CAAC,GAAGI,MAAM,CAACJ,KAAK,CAAC;EAErF,OAAOI,MAAM,CAACE,SAAS,CAACH,MAAM,CAAC,IAAIA,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAGF,SAAS;AACpE,CAAC;AAED,MAAMM,gBAAgB,GAAIC,KAAc,IAAoB;EAC1D,MAAMC,OAAsB,GAAG,EAAE;EACjC,MAAMC,OAAO,GAAG,CAACX,QAAQ,CAACS,KAAK,CAAC,CAAC;EACjC,MAAMG,IAAI,GAAG,IAAIC,GAAG,CAAc,CAAC;EAEnC,OAAOF,OAAO,CAACG,MAAM,GAAG,CAAC,EAAE;IACzB,MAAMC,MAAM,GAAGJ,OAAO,CAACK,KAAK,CAAC,CAAC;IAE9B,IAAI,CAACD,MAAM,IAAIH,IAAI,CAACK,GAAG,CAACF,MAAM,CAAC,EAAE;MAC/B;IACF;IAEAH,IAAI,CAACM,GAAG,CAACH,MAAM,CAAC;IAChBL,OAAO,CAACS,IAAI,CAACJ,MAAM,CAAC;IAEpB,KAAK,MAAMK,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;MACjD,MAAMC,MAAM,GAAGrB,QAAQ,CAACe,MAAM,CAACK,GAAG,CAAC,CAAC;MAEpC,IAAIC,MAAM,EAAE;QACVV,OAAO,CAACQ,IAAI,CAACE,MAAM,CAAC;MACtB;IACF;EACF;EAEA,OAAOX,OAAO;AAChB,CAAC;AAED,MAAMY,mBAAmB,GAAIP,MAAmB,IAAgB,CAC9DA,MAAM,CAACQ,MAAM,EACbR,MAAM,CAACS,UAAU,EACjBxB,QAAQ,CAACe,MAAM,CAACU,QAAQ,CAAC,EAAEF,MAAM,EACjC,IAAIG,KAAK,CAACC,OAAO,CAACZ,MAAM,CAACa,KAAK,CAAC,GAC3Bb,MAAM,CAACa,KAAK,CAACC,GAAG,CAAED,KAAK,IACrB5B,QAAQ,CAACA,QAAQ,CAAC4B,KAAK,CAAC,EAAEH,QAAQ,CAAC,EAAEF,MACvC,CAAC,GACD,EAAE,CAAC,CACR;AAED,MAAMO,WAAW,GAAIrB,KAAc,IACjCD,gBAAgB,CAACC,KAAK,CAAC,CACpBsB,OAAO,CAACT,mBAAmB,CAAC,CAC5BO,GAAG,CAAC1B,YAAY,CAAC,CACjB6B,MAAM,CAAET,MAAM,IAAuBA,MAAM,KAAKrB,SAAS,CAAC;AAE/D,MAAM+B,uBAAuB,SAASC,KAAK,CAAC;EAC1CC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,6BAA6B,CAAC;IACpC,IAAI,CAACC,IAAI,GAAG,yBAAyB;EACvC;AACF;AAEA,MAAMC,oBAAoB,GAAI5B,KAAc,IAC1CA,KAAK,YAAYwB,uBAAuB;AAE1C,MAAMK,SAAS,GAAGA,CAChBC,OAAgC,EAChCH,IAAY,KACW;EACvB,MAAMI,SAAS,GAAGJ,IAAI,CAACK,WAAW,CAAC,CAAC;EAEpC,MAAMb,KAAK,GAAGc,MAAM,CAACC,OAAO,CAACJ,OAAO,IAAI,CAAC,CAAC,CAAC,CAACK,IAAI,CAC9C,CAAC,CAACxB,GAAG,CAAC,KAAKA,GAAG,CAACqB,WAAW,CAAC,CAAC,KAAKD,SACnC,CAAC,GAAG,CAAC,CAAC;EAEN,OAAO,OAAOZ,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,GACzDiB,MAAM,CAACjB,KAAK,CAAC,GACb1B,SAAS;AACf,CAAC;AAED,MAAM4C,eAAe,GAAI7C,KAAa,IAAyB;EAC7D,MAAM8C,OAAO,GAAG1C,MAAM,CAACJ,KAAK,CAAC;EAE7B,IAAII,MAAM,CAAC2C,QAAQ,CAACD,OAAO,CAAC,IAAIA,OAAO,IAAI,CAAC,EAAE;IAC5C,OAAOA,OAAO,GAAG,IAAI;EACvB;EAEA,MAAME,IAAI,GAAGC,IAAI,CAACC,KAAK,CAAClD,KAAK,CAAC;EAE9B,OAAOI,MAAM,CAAC2C,QAAQ,CAACC,IAAI,CAAC,GAAGG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,IAAI,GAAGC,IAAI,CAACI,GAAG,CAAC,CAAC,CAAC,GAAGpD,SAAS;AAC3E,CAAC;AAED,MAAMqD,mBAAmB,GAAItD,KAAa,IAAyB;EACjE,MAAMuD,KAAK,GAAGnD,MAAM,CAACJ,KAAK,CAAC;EAE3B,IAAI,CAACI,MAAM,CAAC2C,QAAQ,CAACQ,KAAK,CAAC,IAAIA,KAAK,GAAG,CAAC,EAAE;IACxC,OAAOtD,SAAS;EAClB;EAEA,MAAMuD,YAAY,GAAGP,IAAI,CAACI,GAAG,CAAC,CAAC,GAAG,IAAI;EAEtC,OAAOE,KAAK,GAAGC,YAAY,GAAG,EAAE,GAC5BL,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEG,KAAK,GAAG,IAAI,GAAGN,IAAI,CAACI,GAAG,CAAC,CAAC,CAAC,GACtCE,KAAK,GAAG,IAAI;AAClB,CAAC;AAED,SAASE,eAAeA,CAACjD,KAAc,EAAsB;EAC3D,MAAMkD,MAAgB,GAAG,EAAE;EAE3B,KAAK,MAAM5C,MAAM,IAAIP,gBAAgB,CAACC,KAAK,CAAC,EAAE;IAC5C,MAAMmD,UAAU,GAAG7C,MAAM,CAAC8C,YAAY;IAEtC,IAAI,OAAOD,UAAU,KAAK,QAAQ,IAAIA,UAAU,IAAI,CAAC,EAAE;MACrDD,MAAM,CAACxC,IAAI,CAACyC,UAAU,CAAC;IACzB;IAEA,MAAMnC,QAAQ,GAAGzB,QAAQ,CAACe,MAAM,CAACU,QAAQ,CAAC;IAC1C,MAAMqC,kBAAkB,GAAGrC,QAAQ,EAAEoC,YAAY;IAEjD,IAAI,OAAOC,kBAAkB,KAAK,QAAQ,IAAIA,kBAAkB,IAAI,CAAC,EAAE;MACrEH,MAAM,CAACxC,IAAI,CAAC2C,kBAAkB,CAAC;IACjC;IAEA,MAAMvB,OAAO,GAAGvC,QAAQ,CAACyB,QAAQ,EAAEc,OAAO,CAAC,IAAIvC,QAAQ,CAACe,MAAM,CAACwB,OAAO,CAAC;IACvE,MAAMwB,gBAAgB,GAAGzB,SAAS,CAACC,OAAO,EAAE,aAAa,CAAC;IAE1D,MAAMsB,YAAY,GAAGE,gBAAgB,GACjCjB,eAAe,CAACiB,gBAAgB,CAAC,GACjC7D,SAAS;IAEb,MAAM8D,cAAc,GAAG1B,SAAS,CAACC,OAAO,EAAE,iBAAiB,CAAC;IAE5D,MAAM0B,gBAAgB,GAAGD,cAAc,GACnCT,mBAAmB,CAACS,cAAc,CAAC,GACnC9D,SAAS;IAEb,MAAMgE,SAAS,GAAG5B,SAAS,CAACC,OAAO,EAAE,WAAW,CAAC;IACjD,MAAM4B,aAAa,GAAGD,SAAS,EAAEE,KAAK,CAAC,mCAAmC,CAAC,GAAG,CAAC,CAAC;IAEhF,MAAMC,eAAe,GAAGF,aAAa,GACjCZ,mBAAmB,CAACY,aAAa,CAAC,GAClCjE,SAAS;IAEb,KAAK,MAAMD,KAAK,IAAI,CAAC4D,YAAY,EAAEI,gBAAgB,EAAEI,eAAe,CAAC,EAAE;MACrE,IAAIpE,KAAK,KAAKC,SAAS,EAAE;QACvByD,MAAM,CAACxC,IAAI,CAAClB,KAAK,CAAC;MACpB;IACF;EACF;EAEA,OAAO0D,MAAM,CAAC7C,MAAM,GAAG,CAAC,GAAGsC,IAAI,CAACC,GAAG,CAAC,GAAGM,MAAM,CAAC,GAAGzD,SAAS;AAC5D;AAEA,SAASoE,oBAAoBA,CAAC7D,KAAc,EAAW;EACrD,MAAM8D,QAAQ,GAAGzC,WAAW,CAACrB,KAAK,CAAC;EAEnC,IAAI8D,QAAQ,CAACzD,MAAM,GAAG,CAAC,EAAE;IACvB,OAAOyD,QAAQ,CAACC,IAAI,CAAEjD,MAAM,IAAKA,MAAM,KAAK,GAAG,IAAIA,MAAM,IAAI,GAAG,CAAC;EACnE;EAEA,MAAMkD,OAAO,GAAGhE,KAAK,YAAYyB,KAAK,GAAGzB,KAAK,CAACgE,OAAO,GAAG5B,MAAM,CAACpC,KAAK,CAAC;EAEtE,OACEA,KAAK,YAAYiE,SAAS,IAC1B,uDAAuD,CAACC,IAAI,CAACF,OAAO,CAAC;AAEzE;AAEA,SAASG,mBAAmBA,CAACnE,KAAc,EAAEoE,UAAkB,EAAU;EACvE,OAAOzB,IAAI,CAACC,GAAG,CACbtD,eAAe,CAAC8E,UAAU,CAAC,IAAI9E,eAAe,CAAC+E,EAAE,CAAC,CAAC,CAAC,CAAE,EACtDpB,eAAe,CAACjD,KAAK,CAAC,IAAI,CAC5B,CAAC;AACH;AAEA,eAAesE,eAAeA,CAC5BC,SAA2B,EAC3BC,YAA2B,GAAGA,CAAA,KAAM,KAAK,EAC7B;EACZ,KAAK,IAAIJ,UAAU,GAAG,CAAC,GAAIA,UAAU,IAAI,CAAC,EAAE;IAC1C,IAAI;MACF,OAAO,MAAMG,SAAS,CAAC,CAAC;IAC1B,CAAC,CAAC,OAAOvE,KAAK,EAAE;MACd,IAAIwE,YAAY,CAAC,CAAC,EAAE;QAClB,MAAM,IAAIhD,uBAAuB,CAAC,CAAC;MACrC;MAEA,IACE,CAACqC,oBAAoB,CAAC7D,KAAK,CAAC,IAC5BoE,UAAU,IAAI9E,eAAe,CAACe,MAAM,EACpC;QACA,MAAML,KAAK;MACb;MAEA,MAAM,IAAIyE,OAAO,CAAO,CAACC,OAAO,EAAEC,MAAM,KAAK;QAC3C,MAAMC,MAGL,GAAG,CAAC,CAAC;QAENA,MAAM,CAACC,IAAI,GAAGC,WAAW,CAAC,MAAM;UAC9B,IAAI,CAACN,YAAY,CAAC,CAAC,EAAE;YACnB;UACF;UAEA,IAAII,MAAM,CAACG,KAAK,EAAE;YAChBC,YAAY,CAACJ,MAAM,CAACG,KAAK,CAAC;UAC5B;UAEA,IAAIH,MAAM,CAACC,IAAI,EAAE;YACfI,aAAa,CAACL,MAAM,CAACC,IAAI,CAAC;UAC5B;UAEAF,MAAM,CAAC,IAAInD,uBAAuB,CAAC,CAAC,CAAC;QACvC,CAAC,EAAE,EAAE,CAAC;QAENoD,MAAM,CAACG,KAAK,GAAGG,UAAU,CAAC,MAAM;UAC9B,IAAIN,MAAM,CAACC,IAAI,EAAE;YACfI,aAAa,CAACL,MAAM,CAACC,IAAI,CAAC;UAC5B;UAEAH,OAAO,CAAC,CAAC;QACX,CAAC,EAAEP,mBAAmB,CAACnE,KAAK,EAAEoE,UAAU,CAAC,CAAC;MAC5C,CAAC,CAAC;IACJ;EACF;AACF;AAEA,SAASD,mBAAmB,EAAEN,oBAAoB,EAAEjC,oBAAoB,EAAE0C,eAAe","ignoreList":[]}
@@ -1,25 +1,97 @@
1
1
  "use strict";
2
2
 
3
- export const saveBundleObservations = async ({
3
+ const MAX_HEALTH_IMPORT_BUNDLE_BYTES = 900_000;
4
+ const getByteLength = value => {
5
+ const TextEncoderConstructor = globalThis.TextEncoder;
6
+ if (TextEncoderConstructor) {
7
+ return new TextEncoderConstructor().encode(value).byteLength;
8
+ }
9
+ return encodeURIComponent(value).replace(/%[0-9A-F]{2}|./g, "_").length;
10
+ };
11
+ const getBundleByteLength = entries => getByteLength(JSON.stringify({
12
+ resourceType: "Bundle",
13
+ type: "batch",
14
+ entry: entries
15
+ }));
16
+ const getMemberReference = entry => {
17
+ const observation = entry.resource;
18
+ return observation?.hasMember?.[0]?.reference;
19
+ };
20
+ const groupMeasurementEntries = entries => {
21
+ const rootUrls = new Set(entries.map(entry => entry.fullUrl).filter(Boolean));
22
+ const groups = new Map();
23
+ entries.forEach((entry, index) => {
24
+ const key = getMemberReference(entry) && rootUrls.has(getMemberReference(entry)) ? getMemberReference(entry) : entry.fullUrl ?? `entry-${index}`;
25
+ const group = groups.get(key) ?? [];
26
+ group.push(entry);
27
+ groups.set(key, group);
28
+ });
29
+ return [...groups.values()];
30
+ };
31
+ const serializeBatch = entries => getBundleByteLength(entries);
32
+ const splitHealthImportEntries = (entries, maxBytes = MAX_HEALTH_IMPORT_BUNDLE_BYTES) => {
33
+ const batches = [];
34
+ let current = [];
35
+ for (const group of groupMeasurementEntries(entries)) {
36
+ const candidate = [...current, ...group];
37
+ if (current.length > 0 && serializeBatch(candidate) > maxBytes) {
38
+ batches.push(current);
39
+ current = [];
40
+ }
41
+ current.push(...group);
42
+ }
43
+ if (current.length > 0) {
44
+ batches.push(current);
45
+ }
46
+ return batches;
47
+ };
48
+ const createBatchError = (bundle, expectedEntries) => {
49
+ const responseEntries = bundle.entry ?? [];
50
+ const statusCounts = new Map();
51
+ responseEntries.forEach(entry => {
52
+ const status = entry.response?.status ?? "missing status";
53
+ if (status.startsWith("2")) {
54
+ return;
55
+ }
56
+ statusCounts.set(status, (statusCounts.get(status) ?? 0) + 1);
57
+ });
58
+ const missingCount = Math.max(expectedEntries - responseEntries.length, 0);
59
+ if (missingCount > 0) {
60
+ statusCounts.set("missing status", (statusCounts.get("missing status") ?? 0) + missingCount);
61
+ }
62
+ const summary = [...statusCounts.entries()].map(([status, count]) => `${status} × ${count}`).join(", ");
63
+ const error = new Error(`Health import batch did not save every entry (${summary || "unknown status"})`);
64
+ Object.assign(error, {
65
+ bundle
66
+ });
67
+ return error;
68
+ };
69
+ const saveBundleObservations = async ({
4
70
  entries,
5
71
  client
6
72
  }) => {
7
- const bundle = await client.executeBatch({
8
- resourceType: "Bundle",
9
- type: "batch",
10
- entry: entries
11
- });
12
- const responseEntries = bundle.entry ?? [];
13
- const hasMissingResponse = responseEntries.length !== entries.length;
14
- const rejectedEntries = responseEntries.filter(entry => !entry.response?.status.startsWith("2"));
15
- if (hasMissingResponse || rejectedEntries.length > 0) {
16
- const statuses = responseEntries.map(entry => entry.response?.status ?? "missing status");
17
- const error = new Error(`Health import batch did not save every entry (${statuses.join(", ")})`);
18
- Object.assign(error, {
19
- bundle
73
+ const responseBundles = [];
74
+ for (const batchEntries of splitHealthImportEntries(entries)) {
75
+ const bundle = await client.executeBatch({
76
+ resourceType: "Bundle",
77
+ type: "batch",
78
+ entry: batchEntries
20
79
  });
21
- throw error;
80
+ const responseEntries = bundle.entry ?? [];
81
+ const hasMissingResponse = responseEntries.length !== batchEntries.length;
82
+ const hasRejectedEntry = responseEntries.some(entry => !entry.response?.status.startsWith("2"));
83
+ if (hasMissingResponse || hasRejectedEntry) {
84
+ throw createBatchError(bundle, batchEntries.length);
85
+ }
86
+ responseBundles.push(bundle);
22
87
  }
23
- return bundle;
88
+ return {
89
+ ...(responseBundles[0] ?? {
90
+ resourceType: "Bundle",
91
+ type: "batch-response"
92
+ }),
93
+ entry: responseBundles.flatMap(bundle => bundle.entry ?? [])
94
+ };
24
95
  };
96
+ export { MAX_HEALTH_IMPORT_BUNDLE_BYTES, saveBundleObservations, splitHealthImportEntries };
25
97
  //# 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"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/save-bundle-observations.ts"],"mappings":";;AAQA,OAAO,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","ignoreList":[]}
1
+ {"version":3,"names":["MAX_HEALTH_IMPORT_BUNDLE_BYTES","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":[]}
@@ -2,6 +2,10 @@
2
2
 
3
3
  A component for rendering FHIR-based questionnaires with multi-page navigation and various input types.
4
4
 
5
+ The full integration reference lives in
6
+ [`doc/docs/components/questionnaire-response-form/index.md`](../../../doc/docs/components/questionnaire-response-form/index.md).
7
+ This README is kept as a source-local contract summary.
8
+
5
9
  ## Features
6
10
 
7
11
  - Renders FHIR-compatible questionnaires
@@ -14,12 +18,13 @@ A component for rendering FHIR-based questionnaires with multi-page navigation a
14
18
  - Number
15
19
  - Provides form validation
16
20
  - Supports conditional questions with default values
17
- - Returns FHIR-compatible QuestionnaireResponse
21
+ - Can create a FHIR-compatible QuestionnaireResponse in the SDK-managed submission mode
18
22
 
19
23
  ## Usage
20
24
 
21
25
  ```tsx
22
- import { QuestionnaireForm, QuestionnaireResponse } from "@ovok/native";
26
+ import { QuestionnaireForm } from "@ovok/native/questionnaire-response-form";
27
+ import type { QuestionnaireFormValues } from "@ovok/native/questionnaire-response-form";
23
28
 
24
29
  const MyComponent = () => {
25
30
  const questionnaire = {
@@ -46,8 +51,9 @@ const MyComponent = () => {
46
51
  ],
47
52
  };
48
53
 
49
- const handleSubmit = (response: QuestionnaireResponse) => {
50
- console.log("Form submitted:", response);
54
+ const handleSubmit = async (values: QuestionnaireFormValues) => {
55
+ // The host owns persistence in the onSubmit mode.
56
+ await saveAnswers(values);
51
57
  };
52
58
 
53
59
  return (
@@ -69,7 +75,11 @@ const MyComponent = () => {
69
75
  | style | ViewStyle | Optional styles for the container |
70
76
  | testID | string | Test ID for testing |
71
77
 
72
- Note: You must provide either `onSubmit` OR both `onSuccess` and `onError` callbacks, but not both.
78
+ Choose either the host-owned `onSubmit(values, formikHelpers?)` mode or the SDK-managed
79
+ `onSuccess(response)` mode. `onError(error)` is optional in the SDK-managed mode. The
80
+ SDK-managed path requires the active `@ovok/core` client/profile context, creates a
81
+ completed `QuestionnaireResponse`, adds the patient subject and a stable identifier,
82
+ and persists it with `createResourceIfNoneExist`.
73
83
 
74
84
  ## Extended Properties
75
85
 
@@ -170,10 +180,10 @@ The form provides a context and hooks for advanced customization:
170
180
 
171
181
  The form includes utility classes for various operations:
172
182
 
173
- - **FormUtils**: Form initialization and data transformation
174
- - **ConditionUtils**: Conditional question handling
175
- - **FormValidation**: Form validation logic
176
- - **QuestionnaireSubmitUtils**: Response creation and submission
183
+ - The implementation uses internal form initialization, conditional-question, and
184
+ validation utilities.
185
+ - **QuestionnaireSubmitUtils** is the public response-construction utility; it creates
186
+ a FHIR response object but does not persist it or choose an upload policy.
177
187
 
178
188
  ## Upgraded QuestionnaireForm API
179
189
 
@@ -246,8 +256,11 @@ const MyComponent = () => {
246
256
  | Prop | Type | Description |
247
257
  | ------------- | ----------------------------------------- | ----------------------------------- |
248
258
  | questionnaire | Questionnaire | The questionnaire object to render |
249
- | onSubmit | (response: QuestionnaireResponse) => void | Callback when the form is submitted |
250
- | initialValues | QuestionnaireFormValues | Initial values for the form |
259
+ | onSubmit | (values: QuestionnaireFormValues, formikHelpers?) => Promise<void> | Host-owned submit callback |
260
+ | onSuccess | (response: QuestionnaireResponse) => void | Called after SDK-managed persistence |
261
+ | onError | (error: Error) => void | Called when SDK-managed persistence fails |
262
+ | initialValues | Partial<QuestionnaireFormValues> | Initial values for the form |
263
+ | paged | boolean | Whether to show one item at a time; defaults to true |
251
264
  | style | StyleProp<ViewStyle> | Style for the container |
252
265
  | testID | string | Test ID for the component |
253
266
 
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Keeps provider pages comfortably below Medplum's synchronous request limit.
3
+ * The save helper also enforces the byte limit because an observation's size
4
+ * is not constant.
5
+ */
6
+ export declare const DEFAULT_HEALTH_SYNC_CHUNK_SIZE = 250;
7
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/data-sync/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACT,sBAAsB,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,YAAY,CAAC,EAC3E,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAQzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAyBpB,mBAAmB;YAqBnB,cAAc;IA8F5B,OAAO,CAAC,yBAAyB;CAGlC"}
1
+ {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACT,sBAAsB,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,YAAY,CAAC,EAC3E,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAQzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAyBpB,mBAAmB;YAqBnB,cAAc;IAsG5B,OAAO,CAAC,yBAAyB;CAGlC"}
@@ -30,7 +30,7 @@ export declare class DataProcessor<TDataToSync extends AndroidHealthSyncProps["d
30
30
  getObservationBodiesForType(measurementTypeKey: HealthSyncKey, data: NonNullable<TDataToSync[HealthSyncKey]>, latestValidStartDate: Date | undefined): Promise<{
31
31
  observationBodies: Observation[][];
32
32
  observationSyncIds: Array<string | undefined>;
33
- hasAnchor: boolean;
33
+ hasMore: boolean;
34
34
  anchors: Array<{
35
35
  typeIdentifier: string;
36
36
  anchor: string;
@@ -1 +1 @@
1
- {"version":3,"file":"data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/data-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/data-processor.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,12 @@ export declare class SyncProgressManager<TDataToSync extends AndroidHealthSyncPr
9
9
  setPauseStatuses(reason?: SyncPauseReason): void;
10
10
  setNotStartedStatuses(): void;
11
11
  getProgress(measurementTypeKey: HealthSyncKey): {
12
+ created?: number | undefined;
12
13
  done: number;
13
14
  total: number;
14
15
  };
15
16
  setTotalObservations(measurementTypeKey: HealthSyncKey, total: number): void;
16
- incrementSyncedObservations(measurementTypeKey: HealthSyncKey, count: number): void;
17
+ incrementSyncedObservations(measurementTypeKey: HealthSyncKey, count: number, createdCount?: number): void;
17
18
  setStatus(measurementTypeKey: HealthSyncKey, status: SyncProgress["status"], reason?: SyncPauseReason): void;
18
19
  getStatus(measurementTypeKey: HealthSyncKey): "idle" | "paused" | "started" | "completed" | "failed" | "syncing";
19
20
  resetAll(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-progress-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/sync-progress-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,YAAY,EACb,MAAM,2BAA2B,CAAC;AAenC,qBAAa,mBAAmB,CAC9B,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC;IAKpC,OAAO,CAAC,cAAc;IAHxB,OAAO,CAAC,QAAQ,CAAgD;gBAGtD,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,EACxD,UAAU,EAAE,WAAW;IASzB,gBAAgB,CAAC,MAAM,CAAC,EAAE,eAAe;IAWzC,qBAAqB;IAWrB,WAAW,CAAC,kBAAkB,EAAE,aAAa;;;;IAO7C,oBAAoB,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;IAKrE,2BAA2B,CACzB,kBAAkB,EAAE,aAAa,EACjC,KAAK,EAAE,MAAM;IAOf,SAAS,CACP,kBAAkB,EAAE,aAAa,EACjC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,MAAM,CAAC,EAAE,eAAe;IAQ1B,SAAS,CAAC,kBAAkB,EAAE,aAAa;IAI3C,QAAQ;IASR,OAAO,CAAC,cAAc;CAYvB"}
1
+ {"version":3,"file":"sync-progress-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/sync-progress-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,YAAY,EACb,MAAM,2BAA2B,CAAC;AAiBnC,qBAAa,mBAAmB,CAC9B,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC;IAKpC,OAAO,CAAC,cAAc;IAHxB,OAAO,CAAC,QAAQ,CAAgD;gBAGtD,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,EACxD,UAAU,EAAE,WAAW;IASzB,gBAAgB,CAAC,MAAM,CAAC,EAAE,eAAe;IAWzC,qBAAqB;IAWrB,WAAW,CAAC,kBAAkB,EAAE,aAAa;;;;;IAa7C,oBAAoB,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;IAKrE,2BAA2B,CACzB,kBAAkB,EAAE,aAAa,EACjC,KAAK,EAAE,MAAM,EACb,YAAY,SAAI;IASlB,SAAS,CACP,kBAAkB,EAAE,aAAa,EACjC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,MAAM,CAAC,EAAE,eAAe;IAQ1B,SAAS,CAAC,kBAAkB,EAAE,aAAa;IAI3C,QAAQ;IASR,OAAO,CAAC,cAAc;CAYvB"}
@@ -7,6 +7,8 @@ type SyncProgress = {
7
7
  progress?: {
8
8
  done: number;
9
9
  total: number;
10
+ /** Number of observations created instead of matched or updated. */
11
+ created?: number;
10
12
  };
11
13
  };
12
14
  export type { SyncPauseReason, SyncProgress };
@@ -1 +1 @@
1
- {"version":3,"file":"sync-progress.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/sync-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,KAAK,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/C,KAAK,YAAY,GAAG;IAClB,kBAAkB,EAAE,aAAa,CAAC;IAClC,MAAM,EACF,SAAS,GACT,WAAW,GACX,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"sync-progress.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/sync-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,KAAK,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/C,KAAK,YAAY,GAAG;IAClB,kBAAkB,EAAE,aAAa,CAAC;IAClC,MAAM,EACF,SAAS,GACT,WAAW,GACX,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QAEd,oEAAoE;QACpE,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-records-from-health-connect.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/get-records-from-health-connect.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,YAAY,EACZ,UAAU,EACX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,KAAK,iBAAiB,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC;AAEzE,eAAO,MAAM,2BAA2B,GAAU,qEAM/C,wBAAwB,CAAC,UAAU,CAAC,KAAG,OAAO,CAC/C,sBAAsB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CA4BtD,CAAC"}
1
+ {"version":3,"file":"get-records-from-health-connect.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/get-records-from-health-connect.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,YAAY,EACZ,UAAU,EACX,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,KAAK,iBAAiB,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC;AAEzE,eAAO,MAAM,2BAA2B,GAAU,qEAM/C,wBAAwB,CAAC,UAAU,CAAC,KAAG,OAAO,CAC/C,sBAAsB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CA4BtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-samples-from-health.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/get-samples-from-health.ts"],"names":[],"mappings":"AAAA,OAAkB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EAGtB,YAAY,EACb,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAK5D,eAAO,MAAM,oBAAoB,GAAU,qEAMxC,wBAAwB,CAAC,sBAAsB,CAAC;UA0FhC,oBAAoB,EAAE;YAAU,SAAS;;;;;;;;;;;;;;;;;;;EAP3D,CAAC"}
1
+ {"version":3,"file":"get-samples-from-health.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/get-samples-from-health.ts"],"names":[],"mappings":"AAAA,OAAkB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EAGtB,YAAY,EACb,MAAM,oCAAoC,CAAC;AAI5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAK5D,eAAO,MAAM,oBAAoB,GAAU,qEAMxC,wBAAwB,CAAC,sBAAsB,CAAC;UA0FhC,oBAAoB,EAAE;YAAU,SAAS;;;;;;;;;;;;;;;;;;;EAP3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retry-save.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/retry-save.ts"],"names":[],"mappings":"AA+CA,QAAA,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,OACL,CAAC;AAuB3C,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAarD;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED,iBAAe,eAAe,CAAC,CAAC,EAC9B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,YAAY,GAAE,MAAM,OAAqB,GACxC,OAAO,CAAC,CAAC,CAAC,CAgDZ;AAED,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"retry-save.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/retry-save.ts"],"names":[],"mappings":"AAmEA,QAAA,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,OACL,CAAC;AA0F3C,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAarD;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED,iBAAe,eAAe,CAAC,CAAC,EAC9B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,YAAY,GAAE,MAAM,OAAqB,GACxC,OAAO,CAAC,CAAC,CAAC,CAgDZ;AAED,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAC"}
@@ -1,9 +1,11 @@
1
- import { BundleEntry } from "@medplum/fhirtypes";
1
+ import { Bundle, BundleEntry } from "@medplum/fhirtypes";
2
2
  import { OvokClient } from "@ovok/core";
3
+ declare const MAX_HEALTH_IMPORT_BUNDLE_BYTES = 900000;
3
4
  type SaveBundleObservationsProps = {
4
5
  entries: BundleEntry[];
5
6
  client: OvokClient;
6
7
  };
7
- export declare const saveBundleObservations: ({ entries, client, }: SaveBundleObservationsProps) => Promise<import("@medplum/fhirtypes").Bundle<import("@medplum/fhirtypes").Resource>>;
8
- export {};
8
+ declare const splitHealthImportEntries: (entries: BundleEntry[], maxBytes?: number) => BundleEntry[][];
9
+ declare const saveBundleObservations: ({ entries, client, }: SaveBundleObservationsProps) => Promise<Bundle<import("@medplum/fhirtypes").Resource>>;
10
+ export { MAX_HEALTH_IMPORT_BUNDLE_BYTES, saveBundleObservations, splitHealthImportEntries, };
9
11
  //# sourceMappingURL=save-bundle-observations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"save-bundle-observations.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/save-bundle-observations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,KAAK,2BAA2B,GAAG;IACjC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,sBAG1C,2BAA2B,wFA4B7B,CAAC"}
1
+ {"version":3,"file":"save-bundle-observations.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/save-bundle-observations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,QAAA,MAAM,8BAA8B,SAAU,CAAC;AAE/C,KAAK,2BAA2B,GAAG;IACjC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAoDF,QAAA,MAAM,wBAAwB,GAC5B,SAAS,WAAW,EAAE,EACtB,iBAAyC,KACxC,WAAW,EAAE,EAuBf,CAAC;AAsCF,QAAA,MAAM,sBAAsB,GAAU,sBAGnC,2BAA2B,2DA+B7B,CAAC;AAEF,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,GACzB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Keeps provider pages comfortably below Medplum's synchronous request limit.
3
+ * The save helper also enforces the byte limit because an observation's size
4
+ * is not constant.
5
+ */
6
+ export declare const DEFAULT_HEALTH_SYNC_CHUNK_SIZE = 250;
7
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/data-sync/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACT,sBAAsB,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,YAAY,CAAC,EAC3E,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAQzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAyBpB,mBAAmB;YAqBnB,cAAc;IA8F5B,OAAO,CAAC,yBAAyB;CAGlC"}
1
+ {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8BAAsB,qBAAqB,CACzC,WAAW,SACT,sBAAsB,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,YAAY,CAAC,EAC3E,eAAe,SAAS,MAAM,EAC9B,iBAAiB,GAAG,OAAO;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAQzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAyBpB,mBAAmB;YAqBnB,cAAc;IAsG5B,OAAO,CAAC,yBAAyB;CAGlC"}
@@ -30,7 +30,7 @@ export declare class DataProcessor<TDataToSync extends AndroidHealthSyncProps["d
30
30
  getObservationBodiesForType(measurementTypeKey: HealthSyncKey, data: NonNullable<TDataToSync[HealthSyncKey]>, latestValidStartDate: Date | undefined): Promise<{
31
31
  observationBodies: Observation[][];
32
32
  observationSyncIds: Array<string | undefined>;
33
- hasAnchor: boolean;
33
+ hasMore: boolean;
34
34
  anchors: Array<{
35
35
  typeIdentifier: string;
36
36
  anchor: string;
@@ -1 +1 @@
1
- {"version":3,"file":"data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/data-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-processor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/data-processor.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,12 @@ export declare class SyncProgressManager<TDataToSync extends AndroidHealthSyncPr
9
9
  setPauseStatuses(reason?: SyncPauseReason): void;
10
10
  setNotStartedStatuses(): void;
11
11
  getProgress(measurementTypeKey: HealthSyncKey): {
12
+ created?: number | undefined;
12
13
  done: number;
13
14
  total: number;
14
15
  };
15
16
  setTotalObservations(measurementTypeKey: HealthSyncKey, total: number): void;
16
- incrementSyncedObservations(measurementTypeKey: HealthSyncKey, count: number): void;
17
+ incrementSyncedObservations(measurementTypeKey: HealthSyncKey, count: number, createdCount?: number): void;
17
18
  setStatus(measurementTypeKey: HealthSyncKey, status: SyncProgress["status"], reason?: SyncPauseReason): void;
18
19
  getStatus(measurementTypeKey: HealthSyncKey): "idle" | "paused" | "started" | "completed" | "failed" | "syncing";
19
20
  resetAll(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-progress-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/sync-progress-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,YAAY,EACb,MAAM,2BAA2B,CAAC;AAenC,qBAAa,mBAAmB,CAC9B,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC;IAKpC,OAAO,CAAC,cAAc;IAHxB,OAAO,CAAC,QAAQ,CAAgD;gBAGtD,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,EACxD,UAAU,EAAE,WAAW;IASzB,gBAAgB,CAAC,MAAM,CAAC,EAAE,eAAe;IAWzC,qBAAqB;IAWrB,WAAW,CAAC,kBAAkB,EAAE,aAAa;;;;IAO7C,oBAAoB,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;IAKrE,2BAA2B,CACzB,kBAAkB,EAAE,aAAa,EACjC,KAAK,EAAE,MAAM;IAOf,SAAS,CACP,kBAAkB,EAAE,aAAa,EACjC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,MAAM,CAAC,EAAE,eAAe;IAQ1B,SAAS,CAAC,kBAAkB,EAAE,aAAa;IAI3C,QAAQ;IASR,OAAO,CAAC,cAAc;CAYvB"}
1
+ {"version":3,"file":"sync-progress-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/sync-progress-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,YAAY,EACb,MAAM,2BAA2B,CAAC;AAiBnC,qBAAa,mBAAmB,CAC9B,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC;IAKpC,OAAO,CAAC,cAAc;IAHxB,OAAO,CAAC,QAAQ,CAAgD;gBAGtD,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,EACxD,UAAU,EAAE,WAAW;IASzB,gBAAgB,CAAC,MAAM,CAAC,EAAE,eAAe;IAWzC,qBAAqB;IAWrB,WAAW,CAAC,kBAAkB,EAAE,aAAa;;;;;IAa7C,oBAAoB,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;IAKrE,2BAA2B,CACzB,kBAAkB,EAAE,aAAa,EACjC,KAAK,EAAE,MAAM,EACb,YAAY,SAAI;IASlB,SAAS,CACP,kBAAkB,EAAE,aAAa,EACjC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,MAAM,CAAC,EAAE,eAAe;IAQ1B,SAAS,CAAC,kBAAkB,EAAE,aAAa;IAI3C,QAAQ;IASR,OAAO,CAAC,cAAc;CAYvB"}
@@ -7,6 +7,8 @@ type SyncProgress = {
7
7
  progress?: {
8
8
  done: number;
9
9
  total: number;
10
+ /** Number of observations created instead of matched or updated. */
11
+ created?: number;
10
12
  };
11
13
  };
12
14
  export type { SyncPauseReason, SyncProgress };
@@ -1 +1 @@
1
- {"version":3,"file":"sync-progress.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/sync-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,KAAK,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/C,KAAK,YAAY,GAAG;IAClB,kBAAkB,EAAE,aAAa,CAAC;IAClC,MAAM,EACF,SAAS,GACT,WAAW,GACX,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"sync-progress.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/sync-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,KAAK,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/C,KAAK,YAAY,GAAG;IAClB,kBAAkB,EAAE,aAAa,CAAC;IAClC,MAAM,EACF,SAAS,GACT,WAAW,GACX,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QAEd,oEAAoE;QACpE,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-records-from-health-connect.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/get-records-from-health-connect.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,YAAY,EACZ,UAAU,EACX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,KAAK,iBAAiB,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC;AAEzE,eAAO,MAAM,2BAA2B,GAAU,qEAM/C,wBAAwB,CAAC,UAAU,CAAC,KAAG,OAAO,CAC/C,sBAAsB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CA4BtD,CAAC"}
1
+ {"version":3,"file":"get-records-from-health-connect.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/utils/get-records-from-health-connect.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,YAAY,EACZ,UAAU,EACX,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,KAAK,iBAAiB,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC;AAEzE,eAAO,MAAM,2BAA2B,GAAU,qEAM/C,wBAAwB,CAAC,UAAU,CAAC,KAAG,OAAO,CAC/C,sBAAsB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CA4BtD,CAAC"}