@ovok/native 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/lib/commonjs/modules/data-sync/index.js +15 -0
  2. package/lib/commonjs/modules/data-sync/index.js.map +1 -1
  3. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +25 -19
  4. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  5. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +73 -17
  6. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  7. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js +14 -0
  8. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  9. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +45 -7
  10. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  11. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
  12. package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  13. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
  14. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  15. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +66 -23
  16. package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  17. package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js +4 -1
  18. package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js.map +1 -1
  19. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js +3 -3
  20. package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  21. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js +364 -0
  22. package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js.map +1 -0
  23. package/lib/commonjs/modules/data-sync/utils/health-units.js +13 -11
  24. package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -1
  25. package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js +34 -0
  26. package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
  27. package/lib/module/modules/data-sync/index.js +1 -0
  28. package/lib/module/modules/data-sync/index.js.map +1 -1
  29. package/lib/module/modules/data-sync/services/base-health-sync-service.js +25 -19
  30. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  31. package/lib/module/modules/data-sync/services/managers/data-processor.js +74 -18
  32. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  33. package/lib/module/modules/data-sync/services/managers/storage-manager.js +14 -0
  34. package/lib/module/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  35. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +45 -7
  36. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  37. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
  38. package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
  39. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
  40. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  41. package/lib/module/modules/data-sync/utils/get-samples-from-health.js +66 -22
  42. package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
  43. package/lib/module/modules/data-sync/utils/get-total-records-count.js +4 -1
  44. package/lib/module/modules/data-sync/utils/get-total-records-count.js.map +1 -1
  45. package/lib/module/modules/data-sync/utils/get-total-samples-count.js +2 -2
  46. package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
  47. package/lib/module/modules/data-sync/utils/health-data-catalog.js +360 -0
  48. package/lib/module/modules/data-sync/utils/health-data-catalog.js.map +1 -0
  49. package/lib/module/modules/data-sync/utils/health-units.js +13 -11
  50. package/lib/module/modules/data-sync/utils/health-units.js.map +1 -1
  51. package/lib/module/modules/data-sync/utils/healthkit-data-types.js +26 -0
  52. package/lib/module/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
  53. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +1 -0
  54. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  56. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  57. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -0
  59. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
  61. package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
  62. package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
  63. package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
  64. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
  65. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  66. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
  67. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  68. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -1
  69. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
  72. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
  74. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  75. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
  76. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts +1 -1
  78. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
  80. package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
  81. package/lib/typescript/module/src/modules/data-sync/index.d.ts +1 -0
  82. package/lib/typescript/module/src/modules/data-sync/index.d.ts.map +1 -1
  83. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  84. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +2 -1
  85. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  86. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -0
  87. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  88. package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
  89. package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
  90. package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
  91. package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
  92. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
  93. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  94. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
  95. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  96. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -1
  97. package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
  98. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  99. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
  100. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
  101. package/lib/typescript/module/src/modules/data-sync/utils/get-total-records-count.d.ts.map +1 -1
  102. package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
  103. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
  104. package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
  105. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts +1 -1
  106. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  107. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
  108. package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
  109. package/package.json +1 -1
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable max-lines */
4
+
5
+ import { healthUnitFor } from "./health-units.js";
6
+ const HEALTH_CONNECT_PERMISSION_PREFIX = "android.permission.health.READ_";
7
+ const HEALTH_CONNECT_CODE_SYSTEM = "urn:ovok:health-connect:record-type";
8
+ const HEALTHKIT_CODE_SYSTEM = "urn:ovok:healthkit:sample-type";
9
+ const APPLE_HEALTH_IDENTIFIERS = {
10
+ height: "HKQuantityTypeIdentifierHeight",
11
+ bodyMass: "HKQuantityTypeIdentifierBodyMass",
12
+ bodyTemperature: "HKQuantityTypeIdentifierBodyTemperature",
13
+ systolicBloodPressure: "HKQuantityTypeIdentifierBloodPressureSystolic",
14
+ diastolicBloodPressure: "HKQuantityTypeIdentifierBloodPressureDiastolic",
15
+ heartRate: "HKQuantityTypeIdentifierHeartRate",
16
+ restingHeartRate: "HKQuantityTypeIdentifierRestingHeartRate",
17
+ heartRateVariabilitySDNN: "HKQuantityTypeIdentifierHeartRateVariabilitySDNN",
18
+ respiratoryRate: "HKQuantityTypeIdentifierRespiratoryRate",
19
+ stepCount: "HKQuantityTypeIdentifierStepCount"
20
+ };
21
+ const appleLoincMappings = {
22
+ [APPLE_HEALTH_IDENTIFIERS.height]: {
23
+ code: "8302-2",
24
+ display: "Body height",
25
+ sourceUrl: "https://loinc.org/8302-2",
26
+ modes: ["point"]
27
+ },
28
+ [APPLE_HEALTH_IDENTIFIERS.bodyMass]: {
29
+ code: "29463-7",
30
+ display: "Body weight",
31
+ sourceUrl: "https://loinc.org/29463-7",
32
+ modes: ["point"]
33
+ },
34
+ [APPLE_HEALTH_IDENTIFIERS.bodyTemperature]: {
35
+ code: "8310-5",
36
+ display: "Body temperature",
37
+ sourceUrl: "https://loinc.org/8310-5",
38
+ modes: ["point"]
39
+ },
40
+ [APPLE_HEALTH_IDENTIFIERS.systolicBloodPressure]: {
41
+ code: "8480-6",
42
+ display: "Systolic blood pressure",
43
+ sourceUrl: "https://loinc.org/8480-6",
44
+ modes: ["point"]
45
+ },
46
+ [APPLE_HEALTH_IDENTIFIERS.diastolicBloodPressure]: {
47
+ code: "8462-4",
48
+ display: "Diastolic blood pressure",
49
+ sourceUrl: "https://loinc.org/8462-4",
50
+ modes: ["point"]
51
+ },
52
+ [APPLE_HEALTH_IDENTIFIERS.heartRate]: {
53
+ code: "8867-4",
54
+ display: "Heart rate",
55
+ sourceUrl: "https://loinc.org/8867-4",
56
+ modes: ["point"]
57
+ },
58
+ [APPLE_HEALTH_IDENTIFIERS.restingHeartRate]: {
59
+ code: "40443-4",
60
+ display: "Heart rate --resting",
61
+ sourceUrl: "https://loinc.org/40443-4",
62
+ modes: ["point"]
63
+ },
64
+ [APPLE_HEALTH_IDENTIFIERS.heartRateVariabilitySDNN]: {
65
+ code: "112429-6",
66
+ display: "Heart rate variability SDNN [Time]",
67
+ sourceUrl: "https://loinc.org/112429-6",
68
+ modes: ["point"]
69
+ },
70
+ [APPLE_HEALTH_IDENTIFIERS.respiratoryRate]: {
71
+ code: "9279-1",
72
+ display: "Respiratory rate",
73
+ sourceUrl: "https://loinc.org/9279-1",
74
+ modes: ["point"]
75
+ }
76
+ };
77
+
78
+ // HKQuantityTypeIdentifier is type-only from the wrapper's shared native entry
79
+ // point. Keep the 8.7.2 identifiers here so the catalog is complete on Android,
80
+ // Jest, and other entry points where Object.values(enum) is empty.
81
+ const appleQuantityIdentifiers = ["HKQuantityTypeIdentifierBodyMassIndex", "HKQuantityTypeIdentifierBodyFatPercentage", "HKQuantityTypeIdentifierHeight", "HKQuantityTypeIdentifierBodyMass", "HKQuantityTypeIdentifierLeanBodyMass", "HKQuantityTypeIdentifierWaistCircumference", "HKQuantityTypeIdentifierStepCount", "HKQuantityTypeIdentifierDistanceWalkingRunning", "HKQuantityTypeIdentifierDistanceCycling", "HKQuantityTypeIdentifierDistanceWheelchair", "HKQuantityTypeIdentifierBasalEnergyBurned", "HKQuantityTypeIdentifierActiveEnergyBurned", "HKQuantityTypeIdentifierFlightsClimbed", "HKQuantityTypeIdentifierNikeFuel", "HKQuantityTypeIdentifierAppleExerciseTime", "HKQuantityTypeIdentifierPushCount", "HKQuantityTypeIdentifierDistanceSwimming", "HKQuantityTypeIdentifierSwimmingStrokeCount", "HKQuantityTypeIdentifierVO2Max", "HKQuantityTypeIdentifierDistanceDownhillSnowSports", "HKQuantityTypeIdentifierAppleStandTime", "HKQuantityTypeIdentifierHeartRate", "HKQuantityTypeIdentifierBodyTemperature", "HKQuantityTypeIdentifierBasalBodyTemperature", "HKQuantityTypeIdentifierBloodPressureSystolic", "HKQuantityTypeIdentifierBloodPressureDiastolic", "HKQuantityTypeIdentifierRespiratoryRate", "HKQuantityTypeIdentifierRestingHeartRate", "HKQuantityTypeIdentifierWalkingHeartRateAverage", "HKQuantityTypeIdentifierHeartRateVariabilitySDNN", "HKQuantityTypeIdentifierOxygenSaturation", "HKQuantityTypeIdentifierPeripheralPerfusionIndex", "HKQuantityTypeIdentifierBloodGlucose", "HKQuantityTypeIdentifierNumberOfTimesFallen", "HKQuantityTypeIdentifierElectrodermalActivity", "HKQuantityTypeIdentifierInhalerUsage", "HKQuantityTypeIdentifierInsulinDelivery", "HKQuantityTypeIdentifierBloodAlcoholContent", "HKQuantityTypeIdentifierForcedVitalCapacity", "HKQuantityTypeIdentifierForcedExpiratoryVolume1", "HKQuantityTypeIdentifierPeakExpiratoryFlowRate", "HKQuantityTypeIdentifierEnvironmentalAudioExposure", "HKQuantityTypeIdentifierHeadphoneAudioExposure", "HKQuantityTypeIdentifierDietaryFatTotal", "HKQuantityTypeIdentifierDietaryFatPolyunsaturated", "HKQuantityTypeIdentifierDietaryFatMonounsaturated", "HKQuantityTypeIdentifierDietaryFatSaturated", "HKQuantityTypeIdentifierDietaryCholesterol", "HKQuantityTypeIdentifierDietarySodium", "HKQuantityTypeIdentifierDietaryCarbohydrates", "HKQuantityTypeIdentifierDietaryFiber", "HKQuantityTypeIdentifierDietarySugar", "HKQuantityTypeIdentifierDietaryEnergyConsumed", "HKQuantityTypeIdentifierDietaryProtein", "HKQuantityTypeIdentifierDietaryVitaminA", "HKQuantityTypeIdentifierDietaryVitaminB6", "HKQuantityTypeIdentifierDietaryVitaminB12", "HKQuantityTypeIdentifierDietaryVitaminC", "HKQuantityTypeIdentifierDietaryVitaminD", "HKQuantityTypeIdentifierDietaryVitaminE", "HKQuantityTypeIdentifierDietaryVitaminK", "HKQuantityTypeIdentifierDietaryCalcium", "HKQuantityTypeIdentifierDietaryIron", "HKQuantityTypeIdentifierDietaryThiamin", "HKQuantityTypeIdentifierDietaryRiboflavin", "HKQuantityTypeIdentifierDietaryNiacin", "HKQuantityTypeIdentifierDietaryFolate", "HKQuantityTypeIdentifierDietaryBiotin", "HKQuantityTypeIdentifierDietaryPantothenicAcid", "HKQuantityTypeIdentifierDietaryPhosphorus", "HKQuantityTypeIdentifierDietaryIodine", "HKQuantityTypeIdentifierDietaryMagnesium", "HKQuantityTypeIdentifierDietaryZinc", "HKQuantityTypeIdentifierDietarySelenium", "HKQuantityTypeIdentifierDietaryCopper", "HKQuantityTypeIdentifierDietaryManganese", "HKQuantityTypeIdentifierDietaryChromium", "HKQuantityTypeIdentifierDietaryMolybdenum", "HKQuantityTypeIdentifierDietaryChloride", "HKQuantityTypeIdentifierDietaryPotassium", "HKQuantityTypeIdentifierDietaryCaffeine", "HKQuantityTypeIdentifierDietaryWater", "HKQuantityTypeIdentifierSixMinuteWalkTestDistance", "HKQuantityTypeIdentifierWalkingSpeed", "HKQuantityTypeIdentifierWalkingStepLength", "HKQuantityTypeIdentifierWalkingAsymmetryPercentage", "HKQuantityTypeIdentifierWalkingDoubleSupportPercentage", "HKQuantityTypeIdentifierStairAscentSpeed", "HKQuantityTypeIdentifierStairDescentSpeed", "HKQuantityTypeIdentifierUVExposure", "HKQuantityTypeIdentifierAppleMoveTime", "HKQuantityTypeIdentifierAppleWalkingSteadiness", "HKQuantityTypeIdentifierNumberOfAlcoholicBeverages", "HKQuantityTypeIdentifierAtrialFibrillationBurden", "HKQuantityTypeIdentifierUnderwaterDepth", "HKQuantityTypeIdentifierWaterTemperature", "HKQuantityTypeIdentifierAppleSleepingWristTemperature", "HKQuantityTypeIdentifierTimeInDaylight", "HKQuantityTypeIdentifierPhysicalEffort", "HKQuantityTypeIdentifierCyclingSpeed", "HKQuantityTypeIdentifierCyclingPower", "HKQuantityTypeIdentifierCyclingFunctionalThresholdPower", "HKQuantityTypeIdentifierCyclingCadence", "HKQuantityTypeIdentifierEnvironmentalSoundReduction", "HKQuantityTypeIdentifierHeartRateRecoveryOneMinute", "HKQuantityTypeIdentifierRunningGroundContactTime", "HKQuantityTypeIdentifierRunningStrideLength", "HKQuantityTypeIdentifierRunningPower", "HKQuantityTypeIdentifierRunningVerticalOscillation", "HKQuantityTypeIdentifierRunningSpeed", "HKQuantityTypeIdentifierCrossCountrySkiingSpeed", "HKQuantityTypeIdentifierDistanceCrossCountrySkiing", "HKQuantityTypeIdentifierDistancePaddleSports", "HKQuantityTypeIdentifierDistanceRowing", "HKQuantityTypeIdentifierDistanceSkatingSports", "HKQuantityTypeIdentifierEstimatedWorkoutEffortScore", "HKQuantityTypeIdentifierPaddleSportsSpeed", "HKQuantityTypeIdentifierRowingSpeed", "HKQuantityTypeIdentifierWorkoutEffortScore"];
82
+
83
+ // The HealthKit wrapper's native entry point does not export the category and
84
+ // correlation enums at runtime on every platform, so keep their identifiers as
85
+ // explicit catalog data instead of enumerating a platform-specific value.
86
+ const appleCategoryIdentifiers = ["HKCategoryTypeIdentifierSleepAnalysis", "HKCategoryTypeIdentifierAppleStandHour", "HKCategoryTypeIdentifierCervicalMucusQuality", "HKCategoryTypeIdentifierOvulationTestResult", "HKCategoryTypeIdentifierMenstrualFlow", "HKCategoryTypeIdentifierIntermenstrualBleeding", "HKCategoryTypeIdentifierSexualActivity", "HKCategoryTypeIdentifierMindfulSession", "HKCategoryTypeIdentifierHighHeartRateEvent", "HKCategoryTypeIdentifierLowHeartRateEvent", "HKCategoryTypeIdentifierIrregularHeartRhythmEvent", "HKCategoryTypeIdentifierAudioExposureEvent", "HKCategoryTypeIdentifierToothbrushingEvent", "HKCategoryTypeIdentifierLowCardioFitnessEvent", "HKCategoryTypeIdentifierContraceptive", "HKCategoryTypeIdentifierLactation", "HKCategoryTypeIdentifierPregnancy", "HKCategoryTypeIdentifierPregnancyTestResult", "HKCategoryTypeIdentifierProgesteroneTestResult", "HKCategoryTypeIdentifierEnvironmentalAudioExposureEvent", "HKCategoryTypeIdentifierHeadphoneAudioExposureEvent", "HKCategoryTypeIdentifierAppleWalkingSteadinessEvent", "HKCategoryTypeIdentifierHandwashingEvent", "HKCategoryTypeIdentifierAbdominalCramps", "HKCategoryTypeIdentifierAcne", "HKCategoryTypeIdentifierAppetiteChanges", "HKCategoryTypeIdentifierBladderIncontinence", "HKCategoryTypeIdentifierBloating", "HKCategoryTypeIdentifierBreastPain", "HKCategoryTypeIdentifierChestTightnessOrPain", "HKCategoryTypeIdentifierChills", "HKCategoryTypeIdentifierConstipation", "HKCategoryTypeIdentifierCoughing", "HKCategoryTypeIdentifierDiarrhea", "HKCategoryTypeIdentifierDizziness", "HKCategoryTypeIdentifierDrySkin", "HKCategoryTypeIdentifierFainting", "HKCategoryTypeIdentifierFatigue", "HKCategoryTypeIdentifierFever", "HKCategoryTypeIdentifierGeneralizedBodyAche", "HKCategoryTypeIdentifierHairLoss", "HKCategoryTypeIdentifierHeadache", "HKCategoryTypeIdentifierHeartburn", "HKCategoryTypeIdentifierHotFlashes", "HKCategoryTypeIdentifierLossOfSmell", "HKCategoryTypeIdentifierLossOfTaste", "HKCategoryTypeIdentifierLowerBackPain", "HKCategoryTypeIdentifierMemoryLapse", "HKCategoryTypeIdentifierMoodChanges", "HKCategoryTypeIdentifierNausea", "HKCategoryTypeIdentifierNightSweats", "HKCategoryTypeIdentifierPelvicPain", "HKCategoryTypeIdentifierRapidPoundingOrFlutteringHeartbeat", "HKCategoryTypeIdentifierRunnyNose", "HKCategoryTypeIdentifierShortnessOfBreath", "HKCategoryTypeIdentifierSinusCongestion", "HKCategoryTypeIdentifierSkippedHeartbeat", "HKCategoryTypeIdentifierSleepChanges", "HKCategoryTypeIdentifierSoreThroat", "HKCategoryTypeIdentifierVaginalDryness", "HKCategoryTypeIdentifierVomiting", "HKCategoryTypeIdentifierWheezing", "HKCategoryTypeIdentifierBleedingAfterPregnancy", "HKCategoryTypeIdentifierBleedingDuringPregnancy"];
87
+ const appleCorrelationIdentifiers = ["HKCorrelationTypeIdentifierBloodPressure", "HKCorrelationTypeIdentifierFood"];
88
+ const healthConnectLoincMappings = {
89
+ Height: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.height],
90
+ Weight: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.bodyMass],
91
+ HeartRate: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.heartRate],
92
+ RestingHeartRate: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.restingHeartRate],
93
+ RespiratoryRate: appleLoincMappings[APPLE_HEALTH_IDENTIFIERS.respiratoryRate],
94
+ BodyWaterMass: {
95
+ code: "101683-1",
96
+ display: "Body water mass",
97
+ sourceUrl: "https://loinc.org/101683-1",
98
+ modes: ["point"]
99
+ }
100
+ };
101
+ const appleSupportedSamples = [...appleQuantityIdentifiers.map(identifier => ({
102
+ provider: "apple-health",
103
+ identifier,
104
+ category: "quantity",
105
+ shape: "sample",
106
+ readPermission: identifier,
107
+ readStrategy: "Anchored HealthKit quantity query",
108
+ fhirResource: "Observation",
109
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
110
+ unit: healthUnitFor(identifier) ?? "HealthKit preferred unit",
111
+ loincMapping: appleLoincMappings[identifier]
112
+ })), ...appleCategoryIdentifiers.map(identifier => ({
113
+ provider: "apple-health",
114
+ identifier,
115
+ category: "category",
116
+ shape: "interval",
117
+ readPermission: identifier,
118
+ readStrategy: "Anchored HealthKit category query",
119
+ fhirResource: "Observation",
120
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
121
+ unit: "not applicable"
122
+ })), ...appleCorrelationIdentifiers.map(identifier => ({
123
+ provider: "apple-health",
124
+ identifier,
125
+ category: "correlation",
126
+ shape: "sample",
127
+ readPermission: identifier,
128
+ readStrategy: "Non-anchored HealthKit date-window query",
129
+ fhirResource: "Observation",
130
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
131
+ unit: "record-specific",
132
+ limitation: "This wrapper does not expose a correlation anchor or deleted-sample cursor."
133
+ })), {
134
+ provider: "apple-health",
135
+ identifier: "HKWorkoutTypeIdentifier",
136
+ category: "workout",
137
+ shape: "interval",
138
+ readPermission: "HKWorkoutTypeIdentifier",
139
+ readStrategy: "Anchored HealthKit workout query",
140
+ fhirResource: "Observation",
141
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
142
+ unit: "record-specific"
143
+ }, {
144
+ provider: "apple-health",
145
+ identifier: "HKDataTypeIdentifierHeartbeatSeries",
146
+ category: "series",
147
+ shape: "series",
148
+ readPermission: "HKDataTypeIdentifierHeartbeatSeries",
149
+ readStrategy: "Anchored HealthKit heartbeat-series query",
150
+ fhirResource: "Observation",
151
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
152
+ unit: "count/min"
153
+ }, {
154
+ provider: "apple-health",
155
+ identifier: "HKStateOfMindTypeIdentifier",
156
+ category: "state of mind",
157
+ shape: "sample",
158
+ readPermission: "HKStateOfMindTypeIdentifier",
159
+ readStrategy: "Non-anchored HealthKit date-window query",
160
+ fhirResource: "Observation",
161
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
162
+ unit: "not applicable",
163
+ limitation: "Requires iOS 18 or later; this wrapper does not expose an anchor or deleted-sample cursor."
164
+ }];
165
+ const appleExcludedTypes = [{
166
+ provider: "apple-health",
167
+ identifier: "HKElectrocardiogramType",
168
+ category: "electrocardiogram",
169
+ shape: "series",
170
+ readPermission: "HKObjectType.electrocardiogramType()",
171
+ readStrategy: "not exposed by the pinned wrapper",
172
+ fhirResource: "Observation",
173
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
174
+ unit: "ECG samples",
175
+ limitation: "HealthKit exposes read-only ECG samples, but the pinned wrapper does not expose an ECG query or voltage-series serializer."
176
+ }, ...["AllergyRecord", "ClinicalNoteRecord", "ConditionRecord", "ImmunizationRecord", "LabResultRecord", "MedicationRecord", "ProcedureRecord", "VitalSignRecord", "CoverageRecord"].map(type => ({
177
+ provider: "apple-health",
178
+ identifier: `HKClinicalTypeIdentifier${type}`,
179
+ category: "clinical record",
180
+ shape: "sample",
181
+ readPermission: `HKObjectType.clinicalType(forIdentifier: .${type[0]?.toLowerCase()}${type.slice(1)})`,
182
+ readStrategy: "not exposed by the pinned wrapper",
183
+ fhirResource: "FHIR resource",
184
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
185
+ unit: "FHIR JSON",
186
+ limitation: "HealthKit clinical records contain source FHIR resources and require per-type authorization; the pinned wrapper exposes neither the query nor FHIR-resource serializer."
187
+ })), {
188
+ provider: "apple-health",
189
+ identifier: "HKDocumentTypeIdentifierCDA",
190
+ category: "clinical document",
191
+ shape: "sample",
192
+ readPermission: "HKObjectType.documentType(forIdentifier: .CDA)",
193
+ readStrategy: "not exposed by the pinned wrapper",
194
+ fhirResource: "FHIR resource",
195
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
196
+ unit: "CDA document",
197
+ limitation: "The pinned wrapper does not expose HealthKit document queries or a CDA document importer."
198
+ }, {
199
+ provider: "apple-health",
200
+ identifier: "HKVisionPrescriptionTypeIdentifier",
201
+ category: "vision prescription",
202
+ shape: "sample",
203
+ readPermission: "HKObjectType.visionPrescriptionType()",
204
+ readStrategy: "not exposed by the pinned wrapper",
205
+ fhirResource: "Observation",
206
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
207
+ unit: "prescription-specific",
208
+ limitation: "The pinned wrapper does not expose HealthKit vision-prescription queries or a prescription serializer."
209
+ }, {
210
+ provider: "apple-health",
211
+ identifier: "HKActivitySummaryTypeIdentifier",
212
+ category: "activity summary",
213
+ shape: "sample",
214
+ readPermission: "HKActivitySummaryTypeIdentifier",
215
+ readStrategy: "not exposed by the pinned wrapper",
216
+ fhirResource: "Observation",
217
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
218
+ unit: "record-specific",
219
+ limitation: "The pinned wrapper does not expose an activity-summary query."
220
+ }, {
221
+ provider: "apple-health",
222
+ identifier: "HKAudiogramSampleType",
223
+ category: "audiogram",
224
+ shape: "sample",
225
+ readPermission: "HKAudiogramSampleType",
226
+ readStrategy: "not exposed by the pinned wrapper",
227
+ fhirResource: "Observation",
228
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
229
+ unit: "record-specific",
230
+ limitation: "The pinned wrapper does not expose an audiogram query or serializer."
231
+ }, {
232
+ provider: "apple-health",
233
+ identifier: "HKWorkoutRouteTypeIdentifier",
234
+ category: "workout route",
235
+ shape: "series",
236
+ readPermission: "HKWorkoutRouteTypeIdentifier",
237
+ readStrategy: "getWorkoutRoutes(workoutUUID)",
238
+ fhirResource: "Observation",
239
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
240
+ unit: "geographic coordinates",
241
+ limitation: "The wrapper requires a known workout UUID and the route is not a pageable sample query; routes are excluded from automatic import."
242
+ }];
243
+ const appleCharacteristics = [["HKCharacteristicTypeIdentifierBiologicalSex", "getBiologicalSex"], ["HKCharacteristicTypeIdentifierBloodType", "getBloodType"], ["HKCharacteristicTypeIdentifierDateOfBirth", "getDateOfBirth"], ["HKCharacteristicTypeIdentifierFitzpatrickSkinType", "getFitzpatrickSkinType"], ["HKCharacteristicTypeIdentifierWheelchairUse", "getWheelchairUse"], ["HKCharacteristicTypeIdentifierActivityMoveMode", "not exposed by the pinned wrapper"]].map(([identifier, readStrategy]) => ({
244
+ provider: "apple-health",
245
+ identifier,
246
+ category: "characteristic",
247
+ shape: "characteristic",
248
+ readPermission: identifier,
249
+ readStrategy,
250
+ fhirResource: "Patient",
251
+ sourceCodeSystem: HEALTHKIT_CODE_SYSTEM,
252
+ unit: "not applicable",
253
+ limitation: "Characteristics are not HKSampleType values and are not accepted by dataToSync; they need a separate Patient mapping."
254
+ }));
255
+ const healthConnectRecords = [["ActiveCaloriesBurned", "Activity", "interval", "ACTIVE_CALORIES_BURNED", "kcal"], ["BasalBodyTemperature", "Cycle Tracking", "instantaneous", "BASAL_BODY_TEMPERATURE", "native temperature unit"], ["BasalMetabolicRate", "Body Measurement", "instantaneous", "BASAL_METABOLIC_RATE", "native power unit"], ["BloodGlucose", "Vitals", "instantaneous", "BLOOD_GLUCOSE", "native glucose unit"], ["BloodPressure", "Vitals", "instantaneous", "BLOOD_PRESSURE", "mm[Hg]"], ["BodyFat", "Body Measurement", "instantaneous", "BODY_FAT", "%"], ["BodyTemperature", "Vitals", "instantaneous", "BODY_TEMPERATURE", "native temperature unit"], ["BodyWaterMass", "Body Measurement", "instantaneous", "BODY_WATER_MASS", "kg"], ["BoneMass", "Body Measurement", "instantaneous", "BONE_MASS", "kg"], ["CervicalMucus", "Cycle Tracking", "instantaneous", "CERVICAL_MUCUS", "not applicable"], ["CyclingPedalingCadence", "Activity", "series", "EXERCISE", "rpm"], ["ElevationGained", "Activity", "interval", "ELEVATION_GAINED", "m"], ["ExerciseSession", "Activity", "interval", "EXERCISE", "record-specific"], ["FloorsClimbed", "Activity", "interval", "FLOORS_CLIMBED", "count"], ["HeartRate", "Vitals", "series", "HEART_RATE", "count/min"], ["RestingHeartRate", "Vitals", "instantaneous", "RESTING_HEART_RATE", "count/min"], ["Steps", "Activity", "interval", "STEPS", "count"], ["StepsCadence", "Activity", "series", "STEPS", "steps/min"], ["Distance", "Activity", "interval", "DISTANCE", "m"], ["Height", "Body Measurement", "instantaneous", "HEIGHT", "m"], ["Hydration", "Nutrition", "interval", "HYDRATION", "L"], ["HeartRateVariabilityRmssd", "Vitals", "instantaneous", "HEART_RATE_VARIABILITY", "ms"], ["SexualActivity", "Cycle Tracking", "instantaneous", "SEXUAL_ACTIVITY", "not applicable"], ["Weight", "Body Measurement", "instantaneous", "WEIGHT", "kg"], ["Nutrition", "Nutrition", "interval", "NUTRITION", "record-specific"], ["LeanBodyMass", "Body Measurement", "instantaneous", "LEAN_BODY_MASS", "kg"], ["IntermenstrualBleeding", "Cycle Tracking", "instantaneous", "INTERMENSTRUAL_BLEEDING", "not applicable"], ["Speed", "Activity", "series", "SPEED", "m/s"], ["MenstruationFlow", "Cycle Tracking", "instantaneous", "MENSTRUATION", "not applicable"], ["MenstruationPeriod", "Cycle Tracking", "interval", "MENSTRUATION", "not applicable"], ["SleepSession", "Sleep", "interval", "SLEEP", "min"], ["RespiratoryRate", "Vitals", "instantaneous", "RESPIRATORY_RATE", "count/min"], ["WheelchairPushes", "Activity", "interval", "WHEELCHAIR_PUSHES", "count"], ["Vo2Max", "Activity", "instantaneous", "VO2_MAX", "mL/kg/min"], ["OvulationTest", "Cycle Tracking", "instantaneous", "OVULATION_TEST", "not applicable"], ["TotalCaloriesBurned", "Activity", "interval", "TOTAL_CALORIES_BURNED", "kcal"], ["OxygenSaturation", "Vitals", "instantaneous", "OXYGEN_SATURATION", "%"], ["Power", "Activity", "series", "POWER", "W"]];
256
+ const readPermissionOverrides = {
257
+ CyclingPedalingCadence: "EXERCISE",
258
+ ExerciseSession: "EXERCISE",
259
+ HeartRateVariabilityRmssd: "HEART_RATE_VARIABILITY",
260
+ MenstruationFlow: "MENSTRUATION",
261
+ MenstruationPeriod: "MENSTRUATION",
262
+ StepsCadence: "STEPS"
263
+ };
264
+ const healthConnectCatalog = healthConnectRecords.map(([identifier, category, shape, permission, unit]) => ({
265
+ provider: "health-connect",
266
+ identifier,
267
+ category,
268
+ shape,
269
+ readPermission: `${HEALTH_CONNECT_PERMISSION_PREFIX}${readPermissionOverrides[identifier] ?? permission}`,
270
+ readStrategy: "readRecords pages followed by the Health Connect changes feed",
271
+ fhirResource: "Observation",
272
+ sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
273
+ unit,
274
+ loincMapping: healthConnectLoincMappings[identifier]
275
+ }));
276
+ const healthConnectSpecialTypes = [{
277
+ provider: "health-connect",
278
+ identifier: "ExerciseRoute",
279
+ category: "route",
280
+ shape: "series",
281
+ readPermission: "per-session Health Connect consent dialog",
282
+ readStrategy: "ExerciseSessionRecord.exerciseRoute / requestExerciseRoute(recordId)",
283
+ fhirResource: "Observation",
284
+ sourceCodeSystem: HEALTH_CONNECT_CODE_SYSTEM,
285
+ unit: "geographic coordinates",
286
+ limitation: "Routes are returned with exercise sessions only when the user grants per-session route access; the SDK does not expose a standalone route selector or requestExerciseRoute flow."
287
+ }];
288
+ const catalogEntries = [...appleSupportedSamples, ...appleExcludedTypes, ...appleCharacteristics, ...healthConnectCatalog, ...healthConnectSpecialTypes];
289
+ const getLoincLimitation = entry => {
290
+ if (entry.provider === "apple-health" && entry.identifier === "HKQuantityTypeIdentifierBodyFatPercentage" || entry.provider === "health-connect" && entry.identifier === "BodyFat") {
291
+ return "Not mapped: LOINC 41982-0 specifies the Measured method, but neither platform record type establishes how the body-fat percentage was derived.";
292
+ }
293
+ if (entry.identifier === APPLE_HEALTH_IDENTIFIERS.stepCount || entry.provider === "health-connect" && entry.identifier === "Steps") {
294
+ return "Not mapped: the default daily-total result is a local-calendar-day count, while LOINC 41950-7 is a 24-hour count rate with UCUM unit {#}/(24.h). The local day can be shorter or longer at daylight-saving transitions; individual source intervals are not asserted to be a 24-hour rate either.";
295
+ }
296
+ if (entry.provider === "health-connect" && entry.identifier === "BloodPressure") {
297
+ return "Not mapped: this is a composite systolic/diastolic record. The importer must emit the paired component Observations (or a correctly coded panel) instead of attaching one code to the serialized record.";
298
+ }
299
+ if (entry.provider === "health-connect" && entry.identifier === "HeartRateVariabilityRmssd") {
300
+ return "Not mapped: this source is RMSSD; it must not be coded as the distinct SDNN measure (LOINC 112429-6).";
301
+ }
302
+ if (entry.provider === "health-connect" && entry.identifier === "BodyTemperature") {
303
+ return "Not mapped: Health Connect exposes temperature as a structured value and includes a measurement location. The generic Observation converter does not yet normalize that value to a numeric UCUM quantity or preserve the location in bodySite.";
304
+ }
305
+ if (entry.provider === "health-connect" && entry.identifier === "SleepSession") {
306
+ return "Not mapped: the current session value is elapsed session duration, not total time asleep; sleep stages can include awake intervals.";
307
+ }
308
+ if (entry.provider === "health-connect" && entry.identifier === "BasalMetabolicRate") {
309
+ return "Not mapped: the source value is power (W), while the matching LOINC candidate is a basal metabolic rate index; these representations are not interchangeable.";
310
+ }
311
+ if (entry.provider === "apple-health" && entry.identifier === "HKQuantityTypeIdentifierBodyMassIndex") {
312
+ return "Not mapped: the HealthKit quantity is dimensionless, while LOINC 39156-5 expects a body-mass-index ratio represented with kg/m2. The importer does not normalize this unit.";
313
+ }
314
+ if (entry.identifier === "BloodGlucose" || entry.identifier === "HKQuantityTypeIdentifierBloodGlucose") {
315
+ return "Not mapped: the platform type alone does not guarantee a compatible specimen, method, and unit combination for one LOINC glucose term.";
316
+ }
317
+ if (entry.category === "characteristic") {
318
+ return "This is a Patient characteristic, not a dated Observation; no Observation LOINC mapping is asserted.";
319
+ }
320
+ if (entry.category === "correlation") {
321
+ return "This is a composite correlation; a single LOINC code could misrepresent its component observations.";
322
+ }
323
+ if (entry.shape === "series") {
324
+ return "This time series needs a clinically reviewed panel or series mapping before a LOINC code can be assigned.";
325
+ }
326
+ if (entry.shape === "sample" && entry.unit === "record-specific") {
327
+ return "This structured sample needs its component/value semantics reviewed before a LOINC code can be assigned.";
328
+ }
329
+ return "No audited LOINC mapping is assigned for this identifier yet; this is not a claim that no valid LOINC term exists. The platform code is retained without asserting LOINC.";
330
+ };
331
+ const HEALTH_DATA_CATALOG = catalogEntries.map(entry => {
332
+ if (!entry.loincMapping) {
333
+ return {
334
+ ...entry,
335
+ loincLimitation: getLoincLimitation(entry)
336
+ };
337
+ }
338
+ return entry.loincMapping.modes.length < 4 ? {
339
+ ...entry,
340
+ loincLimitation: `The reviewed mapping applies only to ${entry.loincMapping.modes.join(", ")} mode; other representations retain the platform code.`
341
+ } : entry;
342
+ });
343
+ const getHealthDataCoding = (provider, identifier, mode) => {
344
+ const catalogProvider = provider === "apple-health" ? "apple-health" : "health-connect";
345
+ const entry = HEALTH_DATA_CATALOG.find(candidate => candidate.provider === catalogProvider && candidate.identifier === identifier);
346
+ const mapping = entry?.loincMapping;
347
+ if (mapping?.modes.includes(mode)) {
348
+ return {
349
+ code: mapping.code,
350
+ system: "http://loinc.org",
351
+ display: mapping.display
352
+ };
353
+ }
354
+ return {
355
+ code: identifier,
356
+ system: entry?.sourceCodeSystem ?? (catalogProvider === "apple-health" ? HEALTHKIT_CODE_SYSTEM : HEALTH_CONNECT_CODE_SYSTEM)
357
+ };
358
+ };
359
+ export { HEALTH_DATA_CATALOG, getHealthDataCoding };
360
+ //# sourceMappingURL=health-data-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["healthUnitFor","HEALTH_CONNECT_PERMISSION_PREFIX","HEALTH_CONNECT_CODE_SYSTEM","HEALTHKIT_CODE_SYSTEM","APPLE_HEALTH_IDENTIFIERS","height","bodyMass","bodyTemperature","systolicBloodPressure","diastolicBloodPressure","heartRate","restingHeartRate","heartRateVariabilitySDNN","respiratoryRate","stepCount","appleLoincMappings","code","display","sourceUrl","modes","appleQuantityIdentifiers","appleCategoryIdentifiers","appleCorrelationIdentifiers","healthConnectLoincMappings","Height","Weight","HeartRate","RestingHeartRate","RespiratoryRate","BodyWaterMass","appleSupportedSamples","map","identifier","provider","category","shape","readPermission","readStrategy","fhirResource","sourceCodeSystem","unit","loincMapping","limitation","appleExcludedTypes","type","toLowerCase","slice","appleCharacteristics","healthConnectRecords","readPermissionOverrides","CyclingPedalingCadence","ExerciseSession","HeartRateVariabilityRmssd","MenstruationFlow","MenstruationPeriod","StepsCadence","healthConnectCatalog","permission","healthConnectSpecialTypes","catalogEntries","getLoincLimitation","entry","HEALTH_DATA_CATALOG","loincLimitation","length","join","getHealthDataCoding","mode","catalogProvider","find","candidate","mapping","includes","system"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/health-data-catalog.ts"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,19 @@
1
1
  "use strict";
2
2
 
3
- import { HKQuantityTypeIdentifier } from "@kingstinct/react-native-healthkit";
4
3
  const HEALTH_UNITS = {
5
- [HKQuantityTypeIdentifier.bodyMass]: "kg",
6
- [HKQuantityTypeIdentifier.bodyTemperature]: "degC",
7
- [HKQuantityTypeIdentifier.basalBodyTemperature]: "degC",
8
- [HKQuantityTypeIdentifier.bloodPressureSystolic]: "mmHg",
9
- [HKQuantityTypeIdentifier.bloodPressureDiastolic]: "mmHg",
10
- [HKQuantityTypeIdentifier.bloodGlucose]: "mg/dL",
11
- [HKQuantityTypeIdentifier.oxygenSaturation]: "%",
12
- [HKQuantityTypeIdentifier.heartRate]: "count/min",
13
- [HKQuantityTypeIdentifier.restingHeartRate]: "count/min",
14
- [HKQuantityTypeIdentifier.walkingHeartRateAverage]: "count/min"
4
+ HKQuantityTypeIdentifierBodyMass: "kg",
5
+ HKQuantityTypeIdentifierBodyFatPercentage: "%",
6
+ HKQuantityTypeIdentifierBodyTemperature: "degC",
7
+ HKQuantityTypeIdentifierBasalBodyTemperature: "degC",
8
+ HKQuantityTypeIdentifierBloodPressureSystolic: "mmHg",
9
+ HKQuantityTypeIdentifierBloodPressureDiastolic: "mmHg",
10
+ HKQuantityTypeIdentifierBloodGlucose: "mg/dL",
11
+ HKQuantityTypeIdentifierOxygenSaturation: "%",
12
+ HKQuantityTypeIdentifierHeartRate: "count/min",
13
+ HKQuantityTypeIdentifierHeartRateVariabilitySDNN: "ms",
14
+ HKQuantityTypeIdentifierRestingHeartRate: "count/min",
15
+ HKQuantityTypeIdentifierRespiratoryRate: "count/min",
16
+ HKQuantityTypeIdentifierWalkingHeartRateAverage: "count/min"
15
17
  };
16
18
  export const healthUnitFor = typeIdentifier => HEALTH_UNITS[typeIdentifier];
17
19
  //# sourceMappingURL=health-units.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["HKQuantityTypeIdentifier","HEALTH_UNITS","bodyMass","bodyTemperature","basalBodyTemperature","bloodPressureSystolic","bloodPressureDiastolic","bloodGlucose","oxygenSaturation","heartRate","restingHeartRate","walkingHeartRateAverage","healthUnitFor","typeIdentifier"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/health-units.ts"],"mappings":";;AAAA,SACEA,wBAAwB,QAEnB,oCAAoC;AAE3C,MAAMC,YAA+D,GAAG;EACtE,CAACD,wBAAwB,CAACE,QAAQ,GAAG,IAAI;EACzC,CAACF,wBAAwB,CAACG,eAAe,GAAG,MAAM;EAClD,CAACH,wBAAwB,CAACI,oBAAoB,GAAG,MAAM;EACvD,CAACJ,wBAAwB,CAACK,qBAAqB,GAAG,MAAM;EACxD,CAACL,wBAAwB,CAACM,sBAAsB,GAAG,MAAM;EACzD,CAACN,wBAAwB,CAACO,YAAY,GAAG,OAAO;EAChD,CAACP,wBAAwB,CAACQ,gBAAgB,GAAG,GAAG;EAChD,CAACR,wBAAwB,CAACS,SAAS,GAAG,WAAW;EACjD,CAACT,wBAAwB,CAACU,gBAAgB,GAAG,WAAW;EACxD,CAACV,wBAAwB,CAACW,uBAAuB,GAAG;AACtD,CAAC;AAED,OAAO,MAAMC,aAAa,GACxBC,cAAiB,IAEjBZ,YAAY,CAACY,cAAc,CAAqC","ignoreList":[]}
1
+ {"version":3,"names":["HEALTH_UNITS","HKQuantityTypeIdentifierBodyMass","HKQuantityTypeIdentifierBodyFatPercentage","HKQuantityTypeIdentifierBodyTemperature","HKQuantityTypeIdentifierBasalBodyTemperature","HKQuantityTypeIdentifierBloodPressureSystolic","HKQuantityTypeIdentifierBloodPressureDiastolic","HKQuantityTypeIdentifierBloodGlucose","HKQuantityTypeIdentifierOxygenSaturation","HKQuantityTypeIdentifierHeartRate","HKQuantityTypeIdentifierHeartRateVariabilitySDNN","HKQuantityTypeIdentifierRestingHeartRate","HKQuantityTypeIdentifierRespiratoryRate","HKQuantityTypeIdentifierWalkingHeartRateAverage","healthUnitFor","typeIdentifier"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/health-units.ts"],"mappings":";;AAKA,MAAMA,YAA8C,GAAG;EACrDC,gCAAgC,EAAE,IAAI;EACtCC,yCAAyC,EAAE,GAAG;EAC9CC,uCAAuC,EAAE,MAAM;EAC/CC,4CAA4C,EAAE,MAAM;EACpDC,6CAA6C,EAAE,MAAM;EACrDC,8CAA8C,EAAE,MAAM;EACtDC,oCAAoC,EAAE,OAAO;EAC7CC,wCAAwC,EAAE,GAAG;EAC7CC,iCAAiC,EAAE,WAAW;EAC9CC,gDAAgD,EAAE,IAAI;EACtDC,wCAAwC,EAAE,WAAW;EACrDC,uCAAuC,EAAE,WAAW;EACpDC,+CAA+C,EAAE;AACnD,CAAC;AAED,OAAO,MAAMC,aAAa,GACxBC,cAAiB,IAEjBf,YAAY,CAACe,cAAc,CAAqC","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ const isCategoryIdentifier = typeIdentifier => typeof typeIdentifier === "string" && typeIdentifier.startsWith("HKCategoryTypeIdentifier");
4
+ const isQuantityIdentifier = typeIdentifier => typeof typeIdentifier === "string" && typeIdentifier.startsWith("HKQuantityTypeIdentifier");
5
+ const isCorrelationIdentifier = typeIdentifier => typeof typeIdentifier === "string" && typeIdentifier.startsWith("HKCorrelationTypeIdentifier");
6
+ const unsupportedHealthKitTypeReason = typeIdentifier => {
7
+ switch (typeIdentifier) {
8
+ case "HKActivitySummaryTypeIdentifier":
9
+ return "The pinned HealthKit wrapper does not expose an activity-summary query.";
10
+ case "HKAudiogramSampleType":
11
+ return "The pinned HealthKit wrapper does not expose an audiogram query/serializer.";
12
+ case "HKWorkoutRouteTypeIdentifier":
13
+ return "The wrapper can read routes only when given a workout UUID; it does not expose a route sample query.";
14
+ default:
15
+ return "The pinned HealthKit wrapper does not expose a compatible read query for this type.";
16
+ }
17
+ };
18
+ class UnsupportedHealthKitDataError extends Error {
19
+ constructor(typeIdentifier, reason) {
20
+ super(`Cannot import ${typeIdentifier}: ${reason}`);
21
+ this.typeIdentifier = typeIdentifier;
22
+ this.name = "UnsupportedHealthKitDataError";
23
+ }
24
+ }
25
+ export { isCategoryIdentifier, isCorrelationIdentifier, isQuantityIdentifier, UnsupportedHealthKitDataError, unsupportedHealthKitTypeReason };
26
+ //# sourceMappingURL=healthkit-data-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isCategoryIdentifier","typeIdentifier","startsWith","isQuantityIdentifier","isCorrelationIdentifier","unsupportedHealthKitTypeReason","UnsupportedHealthKitDataError","Error","constructor","reason","name"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/healthkit-data-types.ts"],"mappings":";;AAOA,MAAMA,oBAAoB,GACxBC,cAAsC,IAEtC,OAAOA,cAAc,KAAK,QAAQ,IAClCA,cAAc,CAACC,UAAU,CAAC,0BAA0B,CAAC;AAEvD,MAAMC,oBAAoB,GACxBF,cAAsC,IAEtC,OAAOA,cAAc,KAAK,QAAQ,IAClCA,cAAc,CAACC,UAAU,CAAC,0BAA0B,CAAC;AAEvD,MAAME,uBAAuB,GAC3BH,cAAsC,IAEtC,OAAOA,cAAc,KAAK,QAAQ,IAClCA,cAAc,CAACC,UAAU,CAAC,6BAA6B,CAAC;AAE1D,MAAMG,8BAA8B,GAClCJ,cAAsC,IAC3B;EACX,QAAQA,cAAc;IACpB,KAAK,iCAAiC;MACpC,OAAO,yEAAyE;IAClF,KAAK,uBAAuB;MAC1B,OAAO,6EAA6E;IACtF,KAAK,8BAA8B;MACjC,OAAO,sGAAsG;IAC/G;MACE,OAAO,qFAAqF;EAChG;AACF,CAAC;AAED,MAAMK,6BAA6B,SAASC,KAAK,CAAC;EAChDC,WAAWA,CACAP,cAAsB,EAC/BQ,MAAc,EACd;IACA,KAAK,CAAC,iBAAiBR,cAAc,KAAKQ,MAAM,EAAE,CAAC;IAAC,KAH3CR,cAAsB,GAAtBA,cAAsB;IAI/B,IAAI,CAACS,IAAI,GAAG,+BAA+B;EAC7C;AACF;AAEA,SACEV,oBAAoB,EACpBI,uBAAuB,EACvBD,oBAAoB,EACpBG,6BAA6B,EAC7BD,8BAA8B","ignoreList":[]}
@@ -7,6 +7,7 @@ export * from "./types/health-authorization-status";
7
7
  export * from "./types/health-sync-keys";
8
8
  export * from "./types/health-sync-batch-error";
9
9
  export * from "./hooks/use-health-import";
10
+ export { HEALTH_DATA_CATALOG, getHealthDataCoding } from "./utils/health-data-catalog";
10
11
  export { HealthAuthorizationContext, useHealthAuthorization, } from "./contexts/health-authorization-context";
11
12
  export type { HealthAuthorizationValue } from "./contexts/health-authorization-context";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/data-sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oDAAoD,CAAC;AACnE,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/data-sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oDAAoD,CAAC;AACnE,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,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;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;AAG1D,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"}
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;AAG1D,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;YA0BpB,mBAAmB;YAqBnB,cAAc;IAoH5B,OAAO,CAAC,yBAAyB;CAGlC"}
@@ -30,6 +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
+ deletedObservationSyncIds: string[];
33
34
  hasMore: boolean;
34
35
  anchors: Array<{
35
36
  typeIdentifier: string;
@@ -40,6 +41,6 @@ export declare class DataProcessor<TDataToSync extends AndroidHealthSyncProps["d
40
41
  getLatestValidStartDate(latestObservationDates: Array<{
41
42
  code: string | undefined;
42
43
  date: string | undefined;
43
- }>, data: NonNullable<TDataToSync[HealthSyncKey]>, mode?: Parameters<typeof getLatestValidStartDate>[0]["mode"]): Date | undefined;
44
+ }>, data: NonNullable<TDataToSync[HealthSyncKey]>, measurementTypeKey: HealthSyncKey, mode?: Parameters<typeof getLatestValidStartDate>[0]["mode"]): Date | undefined;
44
45
  }
45
46
  //# sourceMappingURL=data-processor.d.ts.map
@@ -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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"}
@@ -5,6 +5,7 @@ import { saveBundleObservations } from "../../utils/save-bundle-observations";
5
5
  export declare class StorageManager {
6
6
  private client;
7
7
  private provider;
8
+ private static readonly SYNC_ID_SYSTEM;
8
9
  /**
9
10
  * Where an anchor goes when the host client has no storage.
10
11
  *
@@ -25,6 +26,7 @@ export declare class StorageManager {
25
26
  private readonly inMemoryAnchors;
26
27
  constructor(client: OvokClient, provider: HealthProvider);
27
28
  saveObservations(entries: Parameters<typeof saveBundleObservations>[0]["entries"]): Promise<Bundle<Observation>>;
29
+ deleteObservations(syncIds: string[], patientId: string): Promise<void>;
28
30
  saveAnchor(typeIdentifier: string, anchor: string): void;
29
31
  getAnchor(typeIdentifier: string): string | undefined;
30
32
  private anchorKey;
@@ -1 +1 @@
1
- {"version":3,"file":"storage-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/storage-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,qBAAa,cAAc;IAqBvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IArBlB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;gBAGnD,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,cAAc;IAG5B,gBAAgB,CACpB,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAC/D,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAO/B,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYxD,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQrD,OAAO,CAAC,SAAS;IAIjB,WAAW,CACT,OAAO,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GACzD,IAAI;CAKR"}
1
+ {"version":3,"file":"storage-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/storage-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,qBAAa,cAAc;IAwBvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAxBlB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CACgC;IAEtE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;gBAGnD,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,cAAc;IAG5B,gBAAgB,CACpB,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAC/D,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAOzB,kBAAkB,CACtB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAqBhB,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYxD,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQrD,OAAO,CAAC,SAAS;IAIjB,WAAW,CACT,OAAO,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GACzD,IAAI;CAKR"}
@@ -8,5 +8,7 @@ export type ConvertDataProps<TData> = {
8
8
  typeIdentifier?: string;
9
9
  mode?: HealthDataMode;
10
10
  typeIdentifierCodes?: Readonly<Record<string, string>>;
11
+ typeIdentifierCodeSystems?: Readonly<Record<string, string>>;
12
+ typeIdentifierCodeDisplays?: Readonly<Record<string, string>>;
11
13
  };
12
14
  //# sourceMappingURL=convert-data-props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert-data-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/convert-data-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,MAAM,gBAAgB,CAAC,KAAK,IAAI;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,aAAa,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACxD,CAAC"}
1
+ {"version":3,"file":"convert-data-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/convert-data-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,MAAM,gBAAgB,CAAC,KAAK,IAAI;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,aAAa,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,mBAAmB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,yBAAyB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,0BAA0B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/D,CAAC"}
@@ -1,5 +1,9 @@
1
1
  export type DataFromProviderResult<TData, TTypeIdentifier> = {
2
2
  data: TData[];
3
+ /** Source record IDs removed since the provider cursor was last saved. */
4
+ deletedRecordIds?: string[];
5
+ /** Whether the provider has another page, including deletion-only pages. */
6
+ hasMore?: boolean;
3
7
  anchor?: {
4
8
  typeIdentifier: TTypeIdentifier;
5
9
  anchor: string;
@@ -1 +1 @@
1
- {"version":3,"file":"data-from-provider-result.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/data-from-provider-result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,eAAe,IAAI;IAC3D,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,MAAM,CAAC,EAAE;QACP,cAAc,EAAE,eAAe,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"data-from-provider-result.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/data-from-provider-result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,eAAe,IAAI;IAC3D,IAAI,EAAE,KAAK,EAAE,CAAC;IAEd,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,cAAc,EAAE,eAAe,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC"}