@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.
- package/README.md +5 -3
- package/lib/commonjs/modules/data-sync/constants.js +13 -0
- package/lib/commonjs/modules/data-sync/constants.js.map +1 -0
- package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +10 -7
- package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +1 -1
- package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js +10 -3
- package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +2 -1
- package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +2 -1
- package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/retry-save.js +68 -24
- package/lib/commonjs/modules/data-sync/utils/retry-save.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/save-bundle-observations.js +88 -16
- package/lib/commonjs/modules/data-sync/utils/save-bundle-observations.js.map +1 -1
- package/lib/commonjs/modules/questionnaire-response-form/README.md +24 -11
- package/lib/module/modules/data-sync/constants.js +9 -0
- package/lib/module/modules/data-sync/constants.js.map +1 -0
- package/lib/module/modules/data-sync/services/base-health-sync-service.js +10 -7
- package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
- package/lib/module/modules/data-sync/services/managers/data-processor.js +1 -1
- package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
- package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +10 -3
- package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
- package/lib/module/modules/data-sync/utils/generate-observation-entry.js +1 -1
- package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +2 -1
- package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-samples-from-health.js +2 -1
- package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
- package/lib/module/modules/data-sync/utils/retry-save.js +68 -24
- package/lib/module/modules/data-sync/utils/retry-save.js.map +1 -1
- package/lib/module/modules/data-sync/utils/save-bundle-observations.js +88 -16
- package/lib/module/modules/data-sync/utils/save-bundle-observations.js.map +1 -1
- package/lib/module/modules/questionnaire-response-form/README.md +24 -11
- package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/save-bundle-observations.d.ts +5 -3
- package/lib/typescript/commonjs/src/modules/data-sync/utils/save-bundle-observations.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/constants.d.ts +7 -0
- package/lib/typescript/module/src/modules/data-sync/constants.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +2 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +2 -0
- package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/retry-save.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/save-bundle-observations.d.ts +5 -3
- package/lib/typescript/module/src/modules/data-sync/utils/save-bundle-observations.d.ts.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -31,9 +31,11 @@ yarn add @ovok/native @ovok/core
|
|
|
31
31
|
The SDK uses native modules. Expo Go is not sufficient; add the required config plugins,
|
|
32
32
|
build a development client, and follow the [installation and native setup guide](https://sdk.ovok.com/docs/guide/installation).
|
|
33
33
|
Install `@ovok/core` alongside the native package. The root `@ovok/native` import
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
exposes the shared UI, authentication, theme, and Bluetooth-management surface.
|
|
35
|
+
Optional native integrations such as health import, PDF viewing, background services,
|
|
36
|
+
and themeable UI flows are available through documented subpaths. Install the peer
|
|
37
|
+
packages listed in the [installation matrix](https://sdk.ovok.com/docs/guide/installation#install-the-package)
|
|
38
|
+
for the entry points you use. Apps integrating one feature or device can use a
|
|
37
39
|
subpath export and install only that import graph. Use `npx expo install` for Expo
|
|
38
40
|
native dependencies so their versions match the app's Expo SDK.
|
|
39
41
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DEFAULT_HEALTH_SYNC_CHUNK_SIZE = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Keeps provider pages comfortably below Medplum's synchronous request limit.
|
|
9
|
+
* The save helper also enforces the byte limit because an observation's size
|
|
10
|
+
* is not constant.
|
|
11
|
+
*/
|
|
12
|
+
const DEFAULT_HEALTH_SYNC_CHUNK_SIZE = exports.DEFAULT_HEALTH_SYNC_CHUNK_SIZE = 250;
|
|
13
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_HEALTH_SYNC_CHUNK_SIZE","exports"],"sourceRoot":"../../../../src","sources":["modules/data-sync/constants.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,MAAMA,8BAA8B,GAAAC,OAAA,CAAAD,8BAAA,GAAG,GAAG","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.BaseHealthSyncService = void 0;
|
|
7
7
|
var _telemetry = require("../../helpers/utils/telemetry.js");
|
|
8
|
+
var _constants = require("../constants.js");
|
|
8
9
|
var _healthSyncKeys = require("../types/health-sync-keys.js");
|
|
9
10
|
var _retrySave = require("../utils/retry-save.js");
|
|
10
11
|
var _dataProcessor = require("./managers/data-processor.js");
|
|
@@ -22,7 +23,7 @@ class BaseHealthSyncService {
|
|
|
22
23
|
this.progressManager = new _syncProgressManager.SyncProgressManager(props.updateProgress, props.dataToSync);
|
|
23
24
|
this.stateManager = new _syncStateManager.SyncStateManager();
|
|
24
25
|
this.storageManager = new _storageManager.StorageManager(props.client, this.getProviderName());
|
|
25
|
-
this.dataProcessor = new _dataProcessor.DataProcessor(props.client, props.patientId, this.getProviderName(), props.chunkSize ??
|
|
26
|
+
this.dataProcessor = new _dataProcessor.DataProcessor(props.client, props.patientId, this.getProviderName(), props.chunkSize ?? _constants.DEFAULT_HEALTH_SYNC_CHUNK_SIZE, this.storageManager, this.getTotalCountsFunction(), this.getDataFromProviderFunction(), this.getConverterFunction());
|
|
26
27
|
}
|
|
27
28
|
/** One run at a time; see `SyncStateManager.once` for why that matters. */
|
|
28
29
|
async startSync() {
|
|
@@ -95,15 +96,15 @@ class BaseHealthSyncService {
|
|
|
95
96
|
}
|
|
96
97
|
async syncDataByType(measurementTypeKey, data) {
|
|
97
98
|
const latestValidStartDate = this.dataProcessor.getLatestValidStartDate(this.stateManager.latestObservationDates, data, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
|
|
98
|
-
let
|
|
99
|
-
while (
|
|
99
|
+
let hasMore = true;
|
|
100
|
+
while (hasMore && !this.stateManager.shouldStopSync) {
|
|
100
101
|
const {
|
|
101
102
|
observationBodies,
|
|
102
103
|
observationSyncIds,
|
|
103
|
-
|
|
104
|
+
hasMore: currentHasMore,
|
|
104
105
|
anchors
|
|
105
106
|
} = await this.dataProcessor.getObservationBodiesForType(measurementTypeKey, data, latestValidStartDate);
|
|
106
|
-
|
|
107
|
+
hasMore = currentHasMore;
|
|
107
108
|
if (this.stateManager.shouldStopSync) {
|
|
108
109
|
break;
|
|
109
110
|
}
|
|
@@ -115,7 +116,9 @@ class BaseHealthSyncService {
|
|
|
115
116
|
if (this.stateManager.shouldStopSync) {
|
|
116
117
|
return;
|
|
117
118
|
}
|
|
118
|
-
const
|
|
119
|
+
const responseEntries = result.entry ?? [];
|
|
120
|
+
const savedCount = responseEntries.length ? responseEntries.filter(entry => entry.response?.status.startsWith("2")).length : entries.length;
|
|
121
|
+
const createdCount = responseEntries.filter(entry => entry.response?.status.startsWith("201")).length;
|
|
119
122
|
(0, _telemetry.recordOvokMetric)("ovok.health.samples.imported", createdCount, {
|
|
120
123
|
provider: this.getProviderName(),
|
|
121
124
|
measurementTypeKey
|
|
@@ -124,7 +127,7 @@ class BaseHealthSyncService {
|
|
|
124
127
|
provider: this.getProviderName()
|
|
125
128
|
});
|
|
126
129
|
this.stateManager.addResult(result);
|
|
127
|
-
this.progressManager.incrementSyncedObservations(measurementTypeKey, createdCount);
|
|
130
|
+
this.progressManager.incrementSyncedObservations(measurementTypeKey, savedCount, createdCount);
|
|
128
131
|
this.storageManager.saveAnchors(anchors);
|
|
129
132
|
} catch (error) {
|
|
130
133
|
if ((0, _retrySave.isSyncRetryCancelled)(error) || this.stateManager.shouldStopSync) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_telemetry","require","_healthSyncKeys","_retrySave","_dataProcessor","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","withOvokSpan","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","getHealthDataMode","mode","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","
|
|
1
|
+
{"version":3,"names":["_telemetry","require","_constants","_healthSyncKeys","_retrySave","_dataProcessor","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","withOvokSpan","provider","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","getHealthDataMode","mode","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasMore","observationBodies","observationSyncIds","currentHasMore","anchors","getObservationBodiesForType","entries","generateObservationEntries","length","startedAt","Date","now","result","withSyncRetries","saveObservations","responseEntries","entry","savedCount","filter","response","status","startsWith","createdCount","recordOvokMetric","recordOvokDuration","addResult","incrementSyncedObservations","saveAnchors","isSyncRetryCancelled","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_core","require","_healthSyncKeys","_generateObservationEntry","_getHealthRecordSyncId","_getLatestObservationDatesByCode","_getLatestValidStartDate","_groupSleepSamples","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","Object","values","flatMap","data","typeIdentifiers","map","identifier","code","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","mode","getHealthDataMode","totalCounts","Promise","all","typeIdentifier","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","typeIdentifierCodes","fromEntries","String","results","newAnchors","result","flat","filter","Boolean","allData","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","Array","from","groups","sample","value","key","Date","getTime","endDate","group","get","push","set","Map","observationBodies","length","undefined","observationSyncIds","getHealthRecordSyncId","
|
|
1
|
+
{"version":3,"names":["_core","require","_healthSyncKeys","_generateObservationEntry","_getHealthRecordSyncId","_getLatestObservationDatesByCode","_getLatestValidStartDate","_groupSleepSamples","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","Object","values","flatMap","data","typeIdentifiers","map","identifier","code","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","mode","getHealthDataMode","totalCounts","Promise","all","typeIdentifier","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","typeIdentifierCodes","fromEntries","String","results","newAnchors","result","flat","filter","Boolean","allData","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","Array","from","groups","sample","value","key","Date","getTime","endDate","group","get","push","set","Map","observationBodies","length","undefined","observationSyncIds","getHealthRecordSyncId","hasMore","some","anchors","generateObservationEntries","generateObservationEntry","groupedObservationBodies","groupedObservationSyncIds","getLatestValidStartDate","latestObservationDates","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SyncProgressManager = void 0;
|
|
7
7
|
const defaultSyncData = {
|
|
8
8
|
syncedObservations: null,
|
|
9
|
+
createdObservations: null,
|
|
9
10
|
totalObservations: null,
|
|
10
11
|
status: "idle"
|
|
11
12
|
};
|
|
@@ -39,18 +40,24 @@ class SyncProgressManager {
|
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
getProgress(measurementTypeKey) {
|
|
43
|
+
const data = this.syncData[measurementTypeKey];
|
|
42
44
|
return {
|
|
43
|
-
done:
|
|
44
|
-
total:
|
|
45
|
+
done: data?.syncedObservations ?? 0,
|
|
46
|
+
total: data?.totalObservations ?? 0,
|
|
47
|
+
...(data?.createdObservations === null || data?.createdObservations === undefined ? {} : {
|
|
48
|
+
created: data.createdObservations
|
|
49
|
+
})
|
|
45
50
|
};
|
|
46
51
|
}
|
|
47
52
|
setTotalObservations(measurementTypeKey, total) {
|
|
48
53
|
this.syncData[measurementTypeKey].totalObservations = total;
|
|
49
54
|
this.notifyProgress(measurementTypeKey, "idle");
|
|
50
55
|
}
|
|
51
|
-
incrementSyncedObservations(measurementTypeKey, count) {
|
|
56
|
+
incrementSyncedObservations(measurementTypeKey, count, createdCount = 0) {
|
|
52
57
|
this.syncData[measurementTypeKey].syncedObservations ??= 0;
|
|
53
58
|
this.syncData[measurementTypeKey].syncedObservations += count;
|
|
59
|
+
this.syncData[measurementTypeKey].createdObservations ??= 0;
|
|
60
|
+
this.syncData[measurementTypeKey].createdObservations += createdCount;
|
|
54
61
|
this.notifyProgress(measurementTypeKey, "syncing");
|
|
55
62
|
}
|
|
56
63
|
setStatus(measurementTypeKey, status, reason) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","reason","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","
|
|
1
|
+
{"version":3,"names":["defaultSyncData","syncedObservations","createdObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","reason","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","data","done","total","undefined","created","setTotalObservations","notifyProgress","incrementSyncedObservations","count","createdCount","resetAll","forEach","progress","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getStableObservationId = exports.generateObservationEntry = void 0;
|
|
7
|
-
const getObservationCode = observation => observation.code?.coding?.map(coding => `${coding.system ?? ""}|${coding.code ?? ""}`).join("
|
|
7
|
+
const getObservationCode = observation => observation.code?.coding?.map(coding => `${coding.system ?? ""}|${coding.code ?? ""}`).join("~") || observation.code?.text || "unknown";
|
|
8
8
|
const getObservationTime = observation => {
|
|
9
9
|
if (observation.effectivePeriod) {
|
|
10
10
|
return `${observation.effectivePeriod.start ?? ""}:${observation.effectivePeriod.end ?? ""}`;
|
|
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getRecordsFromHealthConnect = void 0;
|
|
7
7
|
var _dateFns = require("date-fns");
|
|
8
8
|
var _reactNativeHealthConnect = require("react-native-health-connect");
|
|
9
|
+
var _constants = require("../constants.js");
|
|
9
10
|
const getRecordsFromHealthConnect = async ({
|
|
10
11
|
typeIdentifier,
|
|
11
12
|
startDate: _startDate,
|
|
12
|
-
chunkSize =
|
|
13
|
+
chunkSize = _constants.DEFAULT_HEALTH_SYNC_CHUNK_SIZE,
|
|
13
14
|
anchor,
|
|
14
15
|
mode = "point"
|
|
15
16
|
}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dateFns","require","_reactNativeHealthConnect","getRecordsFromHealthConnect","typeIdentifier","startDate","_startDate","chunkSize","anchor","mode","getDailyAggregates","addSeconds","Date","toISOString","subDays","endDate","result","readRecords","timeRangeFilter","operator","startTime","endTime","pageSize","pageToken","data","records","undefined","exports","aggregateType","startOfDay","today","groups","aggregateGroupByPeriod","recordType","timeRangeSlicer","period","length","flatMap","group","end","measurement","aggregateMeasurement","dataOrigins","kind","sourceApp","average","numberValue","BPM_AVG","unit","minimum","BPM_MIN","maximum","BPM_MAX","value","COUNT_TOTAL","nestedNumber","DISTANCE","ACTIVE_CALORIES_TOTAL","FLOORS_CLIMBED_TOTAL","scale","EXERCISE_DURATION_TOTAL","Number","isFinite","key","factor"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-records-from-health-connect.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_dateFns","require","_reactNativeHealthConnect","_constants","getRecordsFromHealthConnect","typeIdentifier","startDate","_startDate","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","anchor","mode","getDailyAggregates","addSeconds","Date","toISOString","subDays","endDate","result","readRecords","timeRangeFilter","operator","startTime","endTime","pageSize","pageToken","data","records","undefined","exports","aggregateType","startOfDay","today","groups","aggregateGroupByPeriod","recordType","timeRangeSlicer","period","length","flatMap","group","end","measurement","aggregateMeasurement","dataOrigins","kind","sourceApp","average","numberValue","BPM_AVG","unit","minimum","BPM_MIN","maximum","BPM_MAX","value","COUNT_TOTAL","nestedNumber","DISTANCE","ACTIVE_CALORIES_TOTAL","FLOORS_CLIMBED_TOTAL","scale","EXERCISE_DURATION_TOTAL","Number","isFinite","key","factor"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-records-from-health-connect.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,13 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getSamplesFromHealth = void 0;
|
|
7
7
|
var _reactNativeHealthkit = _interopRequireWildcard(require("@kingstinct/react-native-healthkit"));
|
|
8
8
|
var _dateFns = require("date-fns");
|
|
9
|
+
var _constants = require("../constants.js");
|
|
9
10
|
var _healthUnits = require("./health-units.js");
|
|
10
11
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
12
|
const getSamplesFromHealth = async ({
|
|
12
13
|
startDate: _startDate,
|
|
13
14
|
typeIdentifier,
|
|
14
15
|
anchor,
|
|
15
|
-
chunkSize =
|
|
16
|
+
chunkSize = _constants.DEFAULT_HEALTH_SYNC_CHUNK_SIZE,
|
|
16
17
|
mode = "point"
|
|
17
18
|
}) => {
|
|
18
19
|
const startDate = _startDate ? (0, _dateFns.addSeconds)(new Date(_startDate), 1) : (0, _dateFns.subDays)(new Date(), 30);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeHealthkit","_interopRequireWildcard","require","_dateFns","_healthUnits","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getSamplesFromHealth","startDate","_startDate","typeIdentifier","anchor","chunkSize","mode","addSeconds","Date","subDays","endDate","isQuantityIdentifier","data","undefined","getDailyStatistics","options","from","to","limit","HKWorkoutTypeIdentifier","Healthkit","queryWorkoutSamplesWithAnchor","result","energyUnit","UnitOfEnergy","Kilocalories","distanceUnit","samples","newAnchor","isCategoryIdentifier","queryCategorySamplesWithAnchor","queryQuantitySamplesWithAnchor","unit","healthUnitFor","exports","firstDay","startOfDay","today","HKStatisticsOptions","cumulativeSum","discreteAverage","discreteMin","discreteMax","statistics","queryStatisticsCollectionForQuantity","day","flatMap","statistic","index","dayStart","addDays","dayEnd","total","sumQuantity","quantity","average","averageQuantity","minimum","minimumQuantity","maximum","maximumQuantity","kind","value","startsWith"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-samples-from-health.ts"],"mappings":";;;;;;AAAA,IAAAA,qBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAQA,IAAAC,QAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNativeHealthkit","_interopRequireWildcard","require","_dateFns","_constants","_healthUnits","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getSamplesFromHealth","startDate","_startDate","typeIdentifier","anchor","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","mode","addSeconds","Date","subDays","endDate","isQuantityIdentifier","data","undefined","getDailyStatistics","options","from","to","limit","HKWorkoutTypeIdentifier","Healthkit","queryWorkoutSamplesWithAnchor","result","energyUnit","UnitOfEnergy","Kilocalories","distanceUnit","samples","newAnchor","isCategoryIdentifier","queryCategorySamplesWithAnchor","queryQuantitySamplesWithAnchor","unit","healthUnitFor","exports","firstDay","startOfDay","today","HKStatisticsOptions","cumulativeSum","discreteAverage","discreteMin","discreteMax","statistics","queryStatisticsCollectionForQuantity","day","flatMap","statistic","index","dayStart","addDays","dayEnd","total","sumQuantity","quantity","average","averageQuantity","minimum","minimumQuantity","maximum","maximumQuantity","kind","value","startsWith"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-samples-from-health.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,18 +15,28 @@ const statusNumber = value => {
|
|
|
15
15
|
const parsed = typeof value === "string" ? Number.parseInt(value, 10) : Number(value);
|
|
16
16
|
return Number.isInteger(parsed) && parsed > 0 ? parsed : undefined;
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
if (
|
|
25
|
-
|
|
18
|
+
const getNestedRecords = error => {
|
|
19
|
+
const records = [];
|
|
20
|
+
const pending = [asRecord(error)];
|
|
21
|
+
const seen = new Set();
|
|
22
|
+
while (pending.length > 0) {
|
|
23
|
+
const record = pending.shift();
|
|
24
|
+
if (!record || seen.has(record)) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
seen.add(record);
|
|
28
|
+
records.push(record);
|
|
29
|
+
for (const key of ["response", "bundle", "cause"]) {
|
|
30
|
+
const nested = asRecord(record[key]);
|
|
31
|
+
if (nested) {
|
|
32
|
+
pending.push(nested);
|
|
33
|
+
}
|
|
26
34
|
}
|
|
27
35
|
}
|
|
28
|
-
return
|
|
29
|
-
}
|
|
36
|
+
return records;
|
|
37
|
+
};
|
|
38
|
+
const getResponseStatuses = record => [record.status, record.statusCode, asRecord(record.response)?.status, ...(Array.isArray(record.entry) ? record.entry.map(entry => asRecord(asRecord(entry)?.response)?.status) : [])];
|
|
39
|
+
const getStatuses = error => getNestedRecords(error).flatMap(getResponseStatuses).map(statusNumber).filter(status => status !== undefined);
|
|
30
40
|
class SyncRetryCancelledError extends Error {
|
|
31
41
|
constructor() {
|
|
32
42
|
super("Health sync retry cancelled");
|
|
@@ -35,25 +45,59 @@ class SyncRetryCancelledError extends Error {
|
|
|
35
45
|
}
|
|
36
46
|
const isSyncRetryCancelled = error => error instanceof SyncRetryCancelledError;
|
|
37
47
|
exports.isSyncRetryCancelled = isSyncRetryCancelled;
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
const getHeader = (headers, name) => {
|
|
49
|
+
const lowerName = name.toLowerCase();
|
|
50
|
+
const entry = Object.entries(headers ?? {}).find(([key]) => key.toLowerCase() === lowerName)?.[1];
|
|
51
|
+
return typeof entry === "string" || typeof entry === "number" ? String(entry) : undefined;
|
|
52
|
+
};
|
|
53
|
+
const parseRetryAfter = value => {
|
|
54
|
+
const seconds = Number(value);
|
|
55
|
+
if (Number.isFinite(seconds) && seconds >= 0) {
|
|
56
|
+
return seconds * 1000;
|
|
44
57
|
}
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
58
|
+
const date = Date.parse(value);
|
|
59
|
+
return Number.isFinite(date) ? Math.max(0, date - Date.now()) : undefined;
|
|
60
|
+
};
|
|
61
|
+
const parseRateLimitReset = value => {
|
|
62
|
+
const reset = Number(value);
|
|
63
|
+
if (!Number.isFinite(reset) || reset < 0) {
|
|
48
64
|
return undefined;
|
|
49
65
|
}
|
|
50
|
-
const
|
|
51
|
-
return
|
|
66
|
+
const nowInSeconds = Date.now() / 1000;
|
|
67
|
+
return reset > nowInSeconds - 60 ? Math.max(0, reset * 1000 - Date.now()) : reset * 1000;
|
|
68
|
+
};
|
|
69
|
+
function getRetryAfterMs(error) {
|
|
70
|
+
const values = [];
|
|
71
|
+
for (const record of getNestedRecords(error)) {
|
|
72
|
+
const retryAfter = record.retryAfterMs;
|
|
73
|
+
if (typeof retryAfter === "number" && retryAfter >= 0) {
|
|
74
|
+
values.push(retryAfter);
|
|
75
|
+
}
|
|
76
|
+
const response = asRecord(record.response);
|
|
77
|
+
const responseRetryAfter = response?.retryAfterMs;
|
|
78
|
+
if (typeof responseRetryAfter === "number" && responseRetryAfter >= 0) {
|
|
79
|
+
values.push(responseRetryAfter);
|
|
80
|
+
}
|
|
81
|
+
const headers = asRecord(response?.headers) ?? asRecord(record.headers);
|
|
82
|
+
const retryAfterHeader = getHeader(headers, "retry-after");
|
|
83
|
+
const retryAfterMs = retryAfterHeader ? parseRetryAfter(retryAfterHeader) : undefined;
|
|
84
|
+
const rateLimitReset = getHeader(headers, "ratelimit-reset");
|
|
85
|
+
const rateLimitResetMs = rateLimitReset ? parseRateLimitReset(rateLimitReset) : undefined;
|
|
86
|
+
const rateLimit = getHeader(headers, "ratelimit");
|
|
87
|
+
const embeddedReset = rateLimit?.match(/(?:^|[,;\s])reset\s*=\s*([0-9]+)/i)?.[1];
|
|
88
|
+
const embeddedResetMs = embeddedReset ? parseRateLimitReset(embeddedReset) : undefined;
|
|
89
|
+
for (const value of [retryAfterMs, rateLimitResetMs, embeddedResetMs]) {
|
|
90
|
+
if (value !== undefined) {
|
|
91
|
+
values.push(value);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return values.length > 0 ? Math.max(...values) : undefined;
|
|
52
96
|
}
|
|
53
97
|
function isRetryableSyncError(error) {
|
|
54
|
-
const
|
|
55
|
-
if (
|
|
56
|
-
return status === 429 || status >= 500;
|
|
98
|
+
const statuses = getStatuses(error);
|
|
99
|
+
if (statuses.length > 0) {
|
|
100
|
+
return statuses.some(status => status === 429 || status >= 500);
|
|
57
101
|
}
|
|
58
102
|
const message = error instanceof Error ? error.message : String(error);
|
|
59
103
|
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","
|
|
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","exports","getHeader","headers","lowerName","toLowerCase","Object","entries","find","String","parseRetryAfter","seconds","isFinite","date","Date","parse","Math","max","now","parseRateLimitReset","reset","nowInSeconds","getRetryAfterMs","values","retryAfter","retryAfterMs","responseRetryAfter","retryAfterHeader","rateLimitReset","rateLimitResetMs","rateLimit","embeddedReset","match","embeddedResetMs","isRetryableSyncError","statuses","some","message","TypeError","test","getSyncRetryDelayMs","retryIndex","at","withSyncRetries","operation","shouldCancel","Promise","resolve","reject","timers","poll","setInterval","timer","clearTimeout","clearInterval","setTimeout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/retry-save.ts"],"mappings":"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","ignoreList":[]}
|