@ovok/native 1.16.1-dev.2163 → 1.16.1-dev.2167

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 (57) hide show
  1. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +30 -2
  2. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  3. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +1 -0
  4. package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
  5. package/lib/commonjs/modules/data-sync/types/health-sync-keys.js +13 -0
  6. package/lib/commonjs/modules/data-sync/types/health-sync-keys.js.map +1 -1
  7. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +6 -3
  8. package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  9. package/lib/commonjs/modules/data-sync/utils/default-health-coding.js +19 -4
  10. package/lib/commonjs/modules/data-sync/utils/default-health-coding.js.map +1 -1
  11. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +20 -4
  12. package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  13. package/lib/commonjs/modules/data-sync/utils/health-units.js +6 -1
  14. package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -1
  15. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +30 -2
  16. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  17. package/lib/module/modules/data-sync/services/managers/data-processor.js +1 -0
  18. package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
  19. package/lib/module/modules/data-sync/types/health-sync-keys.js +13 -0
  20. package/lib/module/modules/data-sync/types/health-sync-keys.js.map +1 -1
  21. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +6 -3
  22. package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
  23. package/lib/module/modules/data-sync/utils/default-health-coding.js +19 -4
  24. package/lib/module/modules/data-sync/utils/default-health-coding.js.map +1 -1
  25. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +20 -4
  26. package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
  27. package/lib/module/modules/data-sync/utils/health-units.js +6 -1
  28. package/lib/module/modules/data-sync/utils/health-units.js.map +1 -1
  29. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts +6 -1
  30. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  32. package/lib/typescript/commonjs/src/modules/data-sync/types/get-data-from-provider-props.d.ts +3 -1
  33. package/lib/typescript/commonjs/src/modules/data-sync/types/get-data-from-provider-props.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts +11 -1
  35. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
  37. package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/src/modules/data-sync/utils/default-health-coding.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +1 -1
  40. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  41. package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +2 -2
  42. package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  43. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts +6 -1
  44. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  45. package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
  46. package/lib/typescript/module/src/modules/data-sync/types/get-data-from-provider-props.d.ts +3 -1
  47. package/lib/typescript/module/src/modules/data-sync/types/get-data-from-provider-props.d.ts.map +1 -1
  48. package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts +11 -1
  49. package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
  50. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -1
  51. package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
  52. package/lib/typescript/module/src/modules/data-sync/utils/default-health-coding.d.ts.map +1 -1
  53. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +1 -1
  54. package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
  55. package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +2 -2
  56. package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
  57. package/package.json +1 -1
@@ -28,6 +28,7 @@ const ATT_WRITE_HEADER_BYTES = 3;
28
28
  class BTCommandWriter {
29
29
  pendingWrites = Promise.resolve();
30
30
  mtu = DEFAULT_ATT_MTU;
31
+ writeOnlyWithoutResponse = new Map();
31
32
  constructor(device, onError, isNormalDisconnect, retryAfterPairing = _btPairingRetry.runOnce) {
32
33
  this.device = device;
33
34
  this.onError = onError;
@@ -101,16 +102,43 @@ class BTCommandWriter {
101
102
  * Writes one chunk the way the characteristic accepts writes.
102
103
  *
103
104
  * A with-response write to a characteristic that only supports write-without-response
104
- * fails outright, so the command says which it is rather than the transport guessing.
105
+ * fails outright, and some devices drop the link on it. A command can say which it is;
106
+ * otherwise the characteristic's own properties decide.
105
107
  */
106
108
  writeTo = async (command, value) => {
107
- if (command.withoutResponse) {
109
+ if (command.withoutResponse || (await this.acceptsOnlyWithoutResponse(command))) {
108
110
  await this.device.writeCharacteristicWithoutResponseForService(command.serviceUuid, command.characteristicUuid, value);
109
111
  return;
110
112
  }
111
113
  await this.device.writeCharacteristicWithResponseForService(command.serviceUuid, command.characteristicUuid, value);
112
114
  };
113
115
 
116
+ /** Reads once per characteristic whether it refuses with-response writes. */
117
+ acceptsOnlyWithoutResponse = command => {
118
+ const key = `${command.serviceUuid}|${command.characteristicUuid}`.toLowerCase();
119
+ const known = this.writeOnlyWithoutResponse.get(key);
120
+ if (known) {
121
+ return known;
122
+ }
123
+ const lookup = this.readAcceptsOnlyWithoutResponse(command);
124
+ this.writeOnlyWithoutResponse.set(key, lookup);
125
+ return lookup;
126
+ };
127
+ readAcceptsOnlyWithoutResponse = async ({
128
+ serviceUuid,
129
+ characteristicUuid
130
+ }) => {
131
+ try {
132
+ const characteristics = await this.device.characteristicsForService(serviceUuid);
133
+ const characteristic = characteristics.find(({
134
+ uuid
135
+ }) => uuid.toLowerCase() === characteristicUuid.toLowerCase());
136
+ return Boolean(characteristic?.isWritableWithoutResponse && !characteristic.isWritableWithResponse);
137
+ } catch {
138
+ return false;
139
+ }
140
+ };
141
+
114
142
  /**
115
143
  * Splits a frame into writes the link will carry whole.
116
144
  *
@@ -1 +1 @@
1
- {"version":3,"names":["_sentryLogger","require","_bluetoothError","_hexToBase","_btPairingRetry","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","isNormalDisconnect","retryAfterPairing","runOnce","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","sentryLogger","hexToBase64","join","message","toBluetoothError","expectedEnd","test","errorCode","code","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_sentryLogger","require","_bluetoothError","_hexToBase","_btPairingRetry","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","writeOnlyWithoutResponse","Map","constructor","device","onError","isNormalDisconnect","retryAfterPairing","runOnce","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","acceptsOnlyWithoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","key","toLowerCase","known","get","lookup","readAcceptsOnlyWithoutResponse","set","characteristics","characteristicsForService","characteristic","find","uuid","Boolean","isWritableWithoutResponse","isWritableWithResponse","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","sentryLogger","hexToBase64","join","message","toBluetoothError","expectedEnd","test","errorCode","code","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":"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","ignoreList":[]}
@@ -93,6 +93,7 @@ class DataProcessor {
93
93
  typeIdentifier,
94
94
  result: await this.getDataFromProviderFunction({
95
95
  typeIdentifier: typeIdentifier,
96
+ key: measurementTypeKey,
96
97
  startDate: latestValidStartDate?.toISOString(),
97
98
  anchor,
98
99
  chunkSize: this.chunkSize,
@@ -1 +1 @@
1
- {"version":3,"names":["_next","require","_healthSyncKeys","_defaultHealthCoding","_getHealthRecordSyncId","_getLatestObservationDatesByCode","_getLatestValidStartDate","_groupSamplesByInterval","_groupSleepSamples","_identifyImportedObservations","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","entries","Object","flatMap","key","data","typeIdentifiers","map","typeIdentifier","code","String","getDefaultHealthCoding","getHealthDataMode","mode","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","totalCounts","Promise","all","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","configuredCodings","system","display","defaultCoding","undefined","typeIdentifierCodes","fromEntries","typeIdentifierCodeSystems","typeIdentifierCodeDisplays","results","result","newAnchors","flat","filter","Boolean","allData","deletedRecordIds","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","groupSamplesByInterval","observationBodies","group","length","observationSyncIds","getHealthRecordSyncId","observationRecordIds","getHealthRecordSourceId","hasMore","some","anchors","identifyObservations","identifyImportedObservations","groupedObservationBodies","groupedObservationSyncIds","groupedRecordIds","getLatestValidStartDate","latestObservationDates","resolvedMode","resolvedData","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_next","require","_healthSyncKeys","_defaultHealthCoding","_getHealthRecordSyncId","_getLatestObservationDatesByCode","_getLatestValidStartDate","_groupSamplesByInterval","_groupSleepSamples","_identifyImportedObservations","DataProcessor","constructor","client","patientId","provider","chunkSize","storageManager","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","extractCodes","dataToSync","entries","Object","flatMap","key","data","typeIdentifiers","map","typeIdentifier","code","String","getDefaultHealthCoding","getHealthDataMode","mode","getLatestObservationDates","codes","getLatestObservationDatesByCode","getTotalRecordsCountForType","measurementTypeKey","latestValidStartDate","totalCounts","Promise","all","anchor","getAnchor","startDate","toISOString","reduce","acc","count","getObservationBodiesForType","configuredCodings","system","display","defaultCoding","undefined","typeIdentifierCodes","fromEntries","typeIdentifierCodeSystems","typeIdentifierCodeDisplays","results","result","newAnchors","flat","filter","Boolean","allData","deletedRecordIds","dataGroups","HealthDataType","sleep","groupSleepSamples","MeasurementTypeKey","bloodPressure","groupSamplesByInterval","observationBodies","group","length","observationSyncIds","getHealthRecordSyncId","observationRecordIds","getHealthRecordSourceId","hasMore","some","anchors","identifyObservations","identifyImportedObservations","groupedObservationBodies","groupedObservationSyncIds","groupedRecordIds","getLatestValidStartDate","latestObservationDates","resolvedMode","resolvedData","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/data-processor.ts"],"mappings":"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","ignoreList":[]}
@@ -30,6 +30,16 @@ var HealthDataType = exports.HealthDataType = /*#__PURE__*/function (HealthDataT
30
30
  HealthDataType["sleep"] = "sleep";
31
31
  /** Workout sessions. */
32
32
  HealthDataType["workout"] = "workout";
33
+ /** Water drunk. */
34
+ HealthDataType["water"] = "water";
35
+ /** Carbohydrates eaten. */
36
+ HealthDataType["carbohydrates"] = "carbohydrates";
37
+ /** Food energy eaten. */
38
+ HealthDataType["caloriesEaten"] = "calories-eaten";
39
+ /** Blood alcohol content. */
40
+ HealthDataType["bloodAlcohol"] = "blood-alcohol";
41
+ /** Insulin delivered. */
42
+ HealthDataType["insulin"] = "insulin";
33
43
  return HealthDataType;
34
44
  }(HealthDataType || {});
35
45
  /** Measurement type or health-only data type that can be synced. */
@@ -45,6 +55,9 @@ const getHealthDataMode = (key, configuredMode) => {
45
55
  case HealthDataType.activeEnergy:
46
56
  case HealthDataType.flightsClimbed:
47
57
  case HealthDataType.exerciseMinutes:
58
+ case HealthDataType.water:
59
+ case HealthDataType.carbohydrates:
60
+ case HealthDataType.caloriesEaten:
48
61
  return "daily-total";
49
62
  case _next.MeasurementTypeKey.heartRate:
50
63
  case HealthDataType.heartRateSummary:
@@ -1 +1 @@
1
- {"version":3,"names":["_next","require","HealthDataType","exports","getHealthDataMode","key","configuredMode","MeasurementTypeKey","stepCount","distance","activeEnergy","flightsClimbed","exerciseMinutes","heartRate","heartRateSummary","sleep","workout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-sync-keys.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA;AAMA;AAAA,IACKC,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAEjB;EAFGA,cAAc;EAKjB;EALGA,cAAc;EAQjB;EARGA,cAAc;EAWjB;EAXGA,cAAc;EAcjB;EAdGA,cAAc;EAiBjB;EAjBGA,cAAc;EAoBjB;EApBGA,cAAc;EAuBjB;EAvBGA,cAAc;EA0BjB;EA1BGA,cAAc;EA6BjB;EA7BGA,cAAc;EAgCjB;EAhCGA,cAAc;EAAA,OAAdA,cAAc;AAAA,EAAdA,cAAc;AAoCnB;AAGA;AAUA;AACA,MAAME,iBAAiB,GAAGA,CACxBC,GAAkB,EAClBC,cAA+B,KACZ;EACnB,IAAIA,cAAc,EAAE;IAClB,OAAOA,cAAc;EACvB;EAEA,QAAQD,GAAG;IACT,KAAKE,wBAAkB,CAACC,SAAS;IACjC,KAAKN,cAAc,CAACO,QAAQ;IAC5B,KAAKP,cAAc,CAACQ,YAAY;IAChC,KAAKR,cAAc,CAACS,cAAc;IAClC,KAAKT,cAAc,CAACU,eAAe;MACjC,OAAO,aAAa;IACtB,KAAKL,wBAAkB,CAACM,SAAS;IACjC,KAAKX,cAAc,CAACY,gBAAgB;MAClC,OAAO,eAAe;IACxB,KAAKZ,cAAc,CAACa,KAAK;IACzB,KAAKb,cAAc,CAACc,OAAO;MACzB,OAAO,SAAS;IAClB;MACE,OAAO,OAAO;EAClB;AACF,CAAC;AAACb,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_next","require","HealthDataType","exports","getHealthDataMode","key","configuredMode","MeasurementTypeKey","stepCount","distance","activeEnergy","flightsClimbed","exerciseMinutes","water","carbohydrates","caloriesEaten","heartRate","heartRateSummary","sleep","workout"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/types/health-sync-keys.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA;AAMA;AAAA,IACKC,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAEjB;EAFGA,cAAc;EAKjB;EALGA,cAAc;EAQjB;EARGA,cAAc;EAWjB;EAXGA,cAAc;EAcjB;EAdGA,cAAc;EAiBjB;EAjBGA,cAAc;EAoBjB;EApBGA,cAAc;EAuBjB;EAvBGA,cAAc;EA0BjB;EA1BGA,cAAc;EA6BjB;EA7BGA,cAAc;EAgCjB;EAhCGA,cAAc;EAmCjB;EAnCGA,cAAc;EAsCjB;EAtCGA,cAAc;EAyCjB;EAzCGA,cAAc;EA4CjB;EA5CGA,cAAc;EA+CjB;EA/CGA,cAAc;EAAA,OAAdA,cAAc;AAAA,EAAdA,cAAc;AAmDnB;AAGA;AAUA;AACA,MAAME,iBAAiB,GAAGA,CACxBC,GAAkB,EAClBC,cAA+B,KACZ;EACnB,IAAIA,cAAc,EAAE;IAClB,OAAOA,cAAc;EACvB;EAEA,QAAQD,GAAG;IACT,KAAKE,wBAAkB,CAACC,SAAS;IACjC,KAAKN,cAAc,CAACO,QAAQ;IAC5B,KAAKP,cAAc,CAACQ,YAAY;IAChC,KAAKR,cAAc,CAACS,cAAc;IAClC,KAAKT,cAAc,CAACU,eAAe;IACnC,KAAKV,cAAc,CAACW,KAAK;IACzB,KAAKX,cAAc,CAACY,aAAa;IACjC,KAAKZ,cAAc,CAACa,aAAa;MAC/B,OAAO,aAAa;IACtB,KAAKR,wBAAkB,CAACS,SAAS;IACjC,KAAKd,cAAc,CAACe,gBAAgB;MAClC,OAAO,eAAe;IACxB,KAAKf,cAAc,CAACgB,KAAK;IACzB,KAAKhB,cAAc,CAACiB,OAAO;MACzB,OAAO,SAAS;IAClB;MACE,OAAO,OAAO;EAClB;AACF,CAAC;AAAChB,OAAA,CAAAC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getUcumCode = exports.extractValue = exports.convertGenericHealthDataToObservation = void 0;
7
7
  var _healthData = require("../types/health-data.js");
8
+ var _healthSyncKeys = require("../types/health-sync-keys.js");
8
9
  var _fhirSystems = require("./fhir-systems.js");
9
10
  var _healthObservationDevice = require("./health-observation-device.js");
10
11
  /* eslint-disable max-lines */
@@ -14,6 +15,7 @@ const HEALTHKIT_BODY_MASS_INDEX = "HKQuantityTypeIdentifierBodyMassIndex";
14
15
  const convertGenericHealthDataToObservation = async ({
15
16
  data,
16
17
  patientId,
18
+ measurementTypeKey,
17
19
  mode,
18
20
  typeIdentifier: configuredTypeIdentifier,
19
21
  typeIdentifierCodes,
@@ -85,7 +87,7 @@ const convertGenericHealthDataToObservation = async ({
85
87
  if (mode === "daily-summary" && (0, _healthData.isAggregatedHealthData)(first)) {
86
88
  observation.component = [...(first.minimum === undefined ? [] : [component("Minimum", first.minimum, first.unit)]), ...(first.maximum === undefined ? [] : [component("Maximum", first.maximum, first.unit)])];
87
89
  }
88
- const stageComponents = getSleepStageComponents(data);
90
+ const stageComponents = measurementTypeKey === _healthSyncKeys.HealthDataType.sleep ? getSleepStageComponents(data) : [];
89
91
  if (stageComponents.length > 0) {
90
92
  observation.component = [...(observation.component ?? []), ...stageComponents];
91
93
  }
@@ -296,12 +298,13 @@ const getUcumCode = (unit, typeIdentifier) => {
296
298
  "breaths/min": "{breaths}/min",
297
299
  "°C": "Cel",
298
300
  mmHg: "mm[Hg]",
299
- degC: "Cel"
301
+ degC: "Cel",
302
+ IU: "[iU]"
300
303
  }[unit] ?? unit;
301
304
  return UCUM_CODES.has(normalized) ? normalized : undefined;
302
305
  };
303
306
  exports.getUcumCode = getUcumCode;
304
- const UCUM_CODES = new Set(["1", "%", "Cel", "cal", "g", "h", "kcal", "kg", "kg/m2", "km", "m", "mL/kg/min", "mg", "mg/dL", "min", "[mi_i]", "mm[Hg]", "mmol/L", "ms", "mV", "s", "{beats}/min", "{breaths}/min", "{count}", "{counts}/min", "{ratio}", "{steps}"]);
307
+ const UCUM_CODES = new Set(["1", "%", "Cel", "cal", "g", "h", "kcal", "kg", "kg/m2", "km", "m", "mL", "mL/kg/min", "mg", "mg/dL", "min", "[mi_i]", "[iU]", "mm[Hg]", "mmol/L", "ms", "mV", "s", "{beats}/min", "{breaths}/min", "{count}", "{counts}/min", "{ratio}", "{steps}"]);
305
308
  const normalizeUnit = (unit, typeIdentifier) => getUcumCode(unit, typeIdentifier) ?? unit;
306
309
  const getStableObservationId = ({
307
310
  typeIdentifier,
@@ -1 +1 @@
1
- {"version":3,"names":["_healthData","require","_fhirSystems","_healthObservationDevice","HEALTH_RECORD_DATA_EXTENSION","HEALTHKIT_BODY_MASS_INDEX","convertGenericHealthDataToObservation","data","patientId","mode","typeIdentifier","configuredTypeIdentifier","typeIdentifierCodes","typeIdentifierCodeSystems","typeIdentifierCodeDisplays","first","value","String","quantityType","categoryType","recordType","configuredCode","code","configuredSystem","system","LOINC_SYSTEM","isLoincCode","undefined","interval","getInterval","measurement","getMeasurement","metadata","getMetadata","device","getHealthObservationDevice","observationDate","start","getDate","observation","resourceType","id","getStableObservationId","date","status","subject","reference","coding","display","isSeriesHealthData","extension","url","valueString","JSON","stringify","map","toPortableRecordData","effectivePeriod","toISOString","end","effectiveDateTime","isAggregatedHealthData","component","minimum","unit","maximum","stageComponents","getSleepStageComponents","length","exports","test","OMITTED_RECORD_FIELDS","Set","Date","Array","isArray","Object","fromEntries","entries","filter","key","has","child","raw","valueSampledData","origin","quantity","period","periodMs","dimensions","values","slot","Number","toFixed","join","number","kind","average","valueQuantity","getTime","extracted","extractValue","candidates","containerKey","valueKey","fallbackUnit","container","normalizeUnit","scalarCandidates","intervals","item","startValue","startDate","startTime","time","endDate","endTime","endValue","isNaN","Boolean","Math","min","max","parsed","sourceRevision","source","manufacturer","dataOrigin","model","sourceApp","name","recordingMethod","flatMap","stages","duration","isFinite","stage","label","text","getUcumCode","UCUM_SYSTEM","includes","normalized","kilometers","meters","miles","count","steps","kilograms","grams","milligrams","kilocalories","calories","minutes","seconds","beatsPerMinute","bpm","mmHg","degC","UCUM_CODES","parts","replace","slice"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/convert-generic-health-data.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_healthData","require","_healthSyncKeys","_fhirSystems","_healthObservationDevice","HEALTH_RECORD_DATA_EXTENSION","HEALTHKIT_BODY_MASS_INDEX","convertGenericHealthDataToObservation","data","patientId","measurementTypeKey","mode","typeIdentifier","configuredTypeIdentifier","typeIdentifierCodes","typeIdentifierCodeSystems","typeIdentifierCodeDisplays","first","value","String","quantityType","categoryType","recordType","configuredCode","code","configuredSystem","system","LOINC_SYSTEM","isLoincCode","undefined","interval","getInterval","measurement","getMeasurement","metadata","getMetadata","device","getHealthObservationDevice","observationDate","start","getDate","observation","resourceType","id","getStableObservationId","date","status","subject","reference","coding","display","isSeriesHealthData","extension","url","valueString","JSON","stringify","map","toPortableRecordData","effectivePeriod","toISOString","end","effectiveDateTime","isAggregatedHealthData","component","minimum","unit","maximum","stageComponents","HealthDataType","sleep","getSleepStageComponents","length","exports","test","OMITTED_RECORD_FIELDS","Set","Date","Array","isArray","Object","fromEntries","entries","filter","key","has","child","raw","valueSampledData","origin","quantity","period","periodMs","dimensions","values","slot","Number","toFixed","join","number","kind","average","valueQuantity","getTime","extracted","extractValue","candidates","containerKey","valueKey","fallbackUnit","container","normalizeUnit","scalarCandidates","intervals","item","startValue","startDate","startTime","time","endDate","endTime","endValue","isNaN","Boolean","Math","min","max","parsed","sourceRevision","source","manufacturer","dataOrigin","model","sourceApp","name","recordingMethod","flatMap","stages","duration","isFinite","stage","label","text","getUcumCode","UCUM_SYSTEM","includes","normalized","kilometers","meters","miles","count","steps","kilograms","grams","milligrams","kilocalories","calories","minutes","seconds","beatsPerMinute","bpm","mmHg","degC","IU","UCUM_CODES","parts","replace","slice"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/convert-generic-health-data.ts"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getDefaultHealthCoding = void 0;
7
7
  var _next = require("@ovok/core/next");
8
+ var _healthSyncKeys = require("../types/health-sync-keys.js");
8
9
  var _fhirSystems = require("./fhir-systems.js");
9
10
  var _healthDataCatalog = require("./health-data-catalog.js");
10
11
  var _toCoreHealthObservations = require("./to-core-health-observations.js");
@@ -35,13 +36,27 @@ const CORE_MEASUREMENT_CODES = {
35
36
  Vo2Max: _next.ObservationCode.VO2_MAX
36
37
  };
37
38
 
39
+ /** Health Connect's Nutrition record holds every nutrient, so each data type reading it is coded by its own field. */
40
+ const NUTRITION_FIELDS = {
41
+ [_healthSyncKeys.HealthDataType.carbohydrates]: "totalCarbohydrate",
42
+ [_healthSyncKeys.HealthDataType.caloriesEaten]: "energy"
43
+ };
44
+
38
45
  /** The coding a type is saved under when the app names none: core's own code for a core measurement, else the catalog's. */
39
46
  const getDefaultHealthCoding = (provider, key, identifier, mode) => {
40
47
  const coreCode = (0, _toCoreHealthObservations.isCoreMeasurementTypeKey)(key) ? CORE_MEASUREMENT_CODES[identifier] : undefined;
41
- return coreCode ? {
42
- code: coreCode,
43
- system: _fhirSystems.LOINC_SYSTEM
44
- } : (0, _healthDataCatalog.getHealthDataCoding)(provider, identifier, mode);
48
+ if (coreCode) {
49
+ return {
50
+ code: coreCode,
51
+ system: _fhirSystems.LOINC_SYSTEM
52
+ };
53
+ }
54
+ const coding = (0, _healthDataCatalog.getHealthDataCoding)(provider, identifier, mode);
55
+ const nutrient = identifier === "Nutrition" ? NUTRITION_FIELDS[key] : undefined;
56
+ return nutrient ? {
57
+ code: `${coding.code}.${nutrient}`,
58
+ system: coding.system
59
+ } : coding;
45
60
  };
46
61
  exports.getDefaultHealthCoding = getDefaultHealthCoding;
47
62
  //# sourceMappingURL=default-health-coding.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_next","require","_fhirSystems","_healthDataCatalog","_toCoreHealthObservations","CORE_MEASUREMENT_CODES","HKQuantityTypeIdentifierBloodPressureSystolic","ObservationCode","SYSTOLIC_BLOOD_PRESSURE","HKQuantityTypeIdentifierBloodPressureDiastolic","DIASTOLIC_BLOOD_PRESSURE","HKQuantityTypeIdentifierHeartRate","HEART_RATE","HKQuantityTypeIdentifierBloodGlucose","BLOOD_GLUCOSE","HKQuantityTypeIdentifierBodyMass","BODY_WEIGHT","HKQuantityTypeIdentifierOxygenSaturation","OXYGEN_SATURATION","HKQuantityTypeIdentifierRespiratoryRate","RESPIRATORY_RATE","HKQuantityTypeIdentifierBodyTemperature","BODY_TEMPERATURE","HKQuantityTypeIdentifierStepCount","STEPS","HKQuantityTypeIdentifierHeartRateVariabilitySDNN","HEART_RATE_VARIABILITY","HKQuantityTypeIdentifierRestingHeartRate","RESTING_HEART_RATE","HKQuantityTypeIdentifierWalkingHeartRateAverage","WALKING_HEART_RATE_AVERAGE","HKQuantityTypeIdentifierVO2Max","VO2_MAX","BloodPressure","HeartRate","BloodGlucose","Weight","OxygenSaturation","RespiratoryRate","BodyTemperature","Steps","RestingHeartRate","Vo2Max","getDefaultHealthCoding","provider","key","identifier","mode","coreCode","isCoreMeasurementTypeKey","undefined","code","system","LOINC_SYSTEM","getHealthDataCoding","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/default-health-coding.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,yBAAA,GAAAH,OAAA;AAEA;AACA,MAAMI,sBAA0E,GAAG;EACjFC,6CAA6C,EAAEC,qBAAe,CAACC,uBAAuB;EACtFC,8CAA8C,EAAEF,qBAAe,CAACG,wBAAwB;EACxFC,iCAAiC,EAAEJ,qBAAe,CAACK,UAAU;EAC7DC,oCAAoC,EAAEN,qBAAe,CAACO,aAAa;EACnEC,gCAAgC,EAAER,qBAAe,CAACS,WAAW;EAC7DC,wCAAwC,EAAEV,qBAAe,CAACW,iBAAiB;EAC3EC,uCAAuC,EAAEZ,qBAAe,CAACa,gBAAgB;EACzEC,uCAAuC,EAAEd,qBAAe,CAACe,gBAAgB;EACzEC,iCAAiC,EAAEhB,qBAAe,CAACiB,KAAK;EACxDC,gDAAgD,EAAElB,qBAAe,CAACmB,sBAAsB;EACxFC,wCAAwC,EAAEpB,qBAAe,CAACqB,kBAAkB;EAC5EC,+CAA+C,EAAEtB,qBAAe,CAACuB,0BAA0B;EAC3FC,8BAA8B,EAAExB,qBAAe,CAACyB,OAAO;EACvDC,aAAa,EAAE1B,qBAAe,CAACC,uBAAuB;EACtD0B,SAAS,EAAE3B,qBAAe,CAACK,UAAU;EACrCuB,YAAY,EAAE5B,qBAAe,CAACO,aAAa;EAC3CsB,MAAM,EAAE7B,qBAAe,CAACS,WAAW;EACnCqB,gBAAgB,EAAE9B,qBAAe,CAACW,iBAAiB;EACnDoB,eAAe,EAAE/B,qBAAe,CAACa,gBAAgB;EACjDmB,eAAe,EAAEhC,qBAAe,CAACe,gBAAgB;EACjDkB,KAAK,EAAEjC,qBAAe,CAACiB,KAAK;EAC5BiB,gBAAgB,EAAElC,qBAAe,CAACqB,kBAAkB;EACpDc,MAAM,EAAEnC,qBAAe,CAACyB;AAC1B,CAAC;;AAED;AACA,MAAMW,sBAAsB,GAAGA,CAC7BC,QAAwB,EACxBC,GAAkB,EAClBC,UAAkB,EAClBC,IAAoB,KACmC;EACvD,MAAMC,QAAQ,GAAG,IAAAC,kDAAwB,EAACJ,GAAG,CAAC,GAAGxC,sBAAsB,CAACyC,UAAU,CAAC,GAAGI,SAAS;EAE/F,OAAOF,QAAQ,GAAG;IAAEG,IAAI,EAAEH,QAAQ;IAAEI,MAAM,EAAEC;EAAa,CAAC,GAAG,IAAAC,sCAAmB,EAACV,QAAQ,EAAEE,UAAU,EAAEC,IAAI,CAAC;AAC9G,CAAC;AAACQ,OAAA,CAAAZ,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_next","require","_healthSyncKeys","_fhirSystems","_healthDataCatalog","_toCoreHealthObservations","CORE_MEASUREMENT_CODES","HKQuantityTypeIdentifierBloodPressureSystolic","ObservationCode","SYSTOLIC_BLOOD_PRESSURE","HKQuantityTypeIdentifierBloodPressureDiastolic","DIASTOLIC_BLOOD_PRESSURE","HKQuantityTypeIdentifierHeartRate","HEART_RATE","HKQuantityTypeIdentifierBloodGlucose","BLOOD_GLUCOSE","HKQuantityTypeIdentifierBodyMass","BODY_WEIGHT","HKQuantityTypeIdentifierOxygenSaturation","OXYGEN_SATURATION","HKQuantityTypeIdentifierRespiratoryRate","RESPIRATORY_RATE","HKQuantityTypeIdentifierBodyTemperature","BODY_TEMPERATURE","HKQuantityTypeIdentifierStepCount","STEPS","HKQuantityTypeIdentifierHeartRateVariabilitySDNN","HEART_RATE_VARIABILITY","HKQuantityTypeIdentifierRestingHeartRate","RESTING_HEART_RATE","HKQuantityTypeIdentifierWalkingHeartRateAverage","WALKING_HEART_RATE_AVERAGE","HKQuantityTypeIdentifierVO2Max","VO2_MAX","BloodPressure","HeartRate","BloodGlucose","Weight","OxygenSaturation","RespiratoryRate","BodyTemperature","Steps","RestingHeartRate","Vo2Max","NUTRITION_FIELDS","HealthDataType","carbohydrates","caloriesEaten","getDefaultHealthCoding","provider","key","identifier","mode","coreCode","isCoreMeasurementTypeKey","undefined","code","system","LOINC_SYSTEM","coding","getHealthDataCoding","nutrient","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/default-health-coding.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,yBAAA,GAAAJ,OAAA;AAEA;AACA,MAAMK,sBAA0E,GAAG;EACjFC,6CAA6C,EAAEC,qBAAe,CAACC,uBAAuB;EACtFC,8CAA8C,EAAEF,qBAAe,CAACG,wBAAwB;EACxFC,iCAAiC,EAAEJ,qBAAe,CAACK,UAAU;EAC7DC,oCAAoC,EAAEN,qBAAe,CAACO,aAAa;EACnEC,gCAAgC,EAAER,qBAAe,CAACS,WAAW;EAC7DC,wCAAwC,EAAEV,qBAAe,CAACW,iBAAiB;EAC3EC,uCAAuC,EAAEZ,qBAAe,CAACa,gBAAgB;EACzEC,uCAAuC,EAAEd,qBAAe,CAACe,gBAAgB;EACzEC,iCAAiC,EAAEhB,qBAAe,CAACiB,KAAK;EACxDC,gDAAgD,EAAElB,qBAAe,CAACmB,sBAAsB;EACxFC,wCAAwC,EAAEpB,qBAAe,CAACqB,kBAAkB;EAC5EC,+CAA+C,EAAEtB,qBAAe,CAACuB,0BAA0B;EAC3FC,8BAA8B,EAAExB,qBAAe,CAACyB,OAAO;EACvDC,aAAa,EAAE1B,qBAAe,CAACC,uBAAuB;EACtD0B,SAAS,EAAE3B,qBAAe,CAACK,UAAU;EACrCuB,YAAY,EAAE5B,qBAAe,CAACO,aAAa;EAC3CsB,MAAM,EAAE7B,qBAAe,CAACS,WAAW;EACnCqB,gBAAgB,EAAE9B,qBAAe,CAACW,iBAAiB;EACnDoB,eAAe,EAAE/B,qBAAe,CAACa,gBAAgB;EACjDmB,eAAe,EAAEhC,qBAAe,CAACe,gBAAgB;EACjDkB,KAAK,EAAEjC,qBAAe,CAACiB,KAAK;EAC5BiB,gBAAgB,EAAElC,qBAAe,CAACqB,kBAAkB;EACpDc,MAAM,EAAEnC,qBAAe,CAACyB;AAC1B,CAAC;;AAED;AACA,MAAMW,gBAAkE,GAAG;EACzE,CAACC,8BAAc,CAACC,aAAa,GAAG,mBAAmB;EACnD,CAACD,8BAAc,CAACE,aAAa,GAAG;AAClC,CAAC;;AAED;AACA,MAAMC,sBAAsB,GAAGA,CAC7BC,QAAwB,EACxBC,GAAkB,EAClBC,UAAkB,EAClBC,IAAoB,KACmC;EACvD,MAAMC,QAAQ,GAAG,IAAAC,kDAAwB,EAACJ,GAAG,CAAC,GAAG5C,sBAAsB,CAAC6C,UAAU,CAAC,GAAGI,SAAS;EAE/F,IAAIF,QAAQ,EAAE;IACZ,OAAO;MAAEG,IAAI,EAAEH,QAAQ;MAAEI,MAAM,EAAEC;IAAa,CAAC;EACjD;EAEA,MAAMC,MAAM,GAAG,IAAAC,sCAAmB,EAACX,QAAQ,EAAEE,UAAU,EAAEC,IAAI,CAAC;EAC9D,MAAMS,QAAQ,GAAGV,UAAU,KAAK,WAAW,GAAGP,gBAAgB,CAACM,GAAG,CAAC,GAAGK,SAAS;EAE/E,OAAOM,QAAQ,GAAG;IAAEL,IAAI,EAAE,GAAGG,MAAM,CAACH,IAAI,IAAIK,QAAQ,EAAE;IAAEJ,MAAM,EAAEE,MAAM,CAACF;EAAO,CAAC,GAAGE,MAAM;AAC1F,CAAC;AAACG,OAAA,CAAAd,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.getRecordsFromHealthConnect = void 0;
7
7
  var _dateFns = require("date-fns");
8
8
  var _reactNativeHealthConnect = require("react-native-health-connect");
9
9
  var _constants = require("../constants.js");
10
+ var _healthSyncKeys = require("../types/health-sync-keys.js");
10
11
  var _healthConnectSeries = require("./health-connect-series.js");
11
12
  var _isDailyAggregateMode = require("./is-daily-aggregate-mode.js");
12
13
  var _syncWindowStart = require("./sync-window-start.js");
@@ -14,13 +15,14 @@ var _syncWindowStart = require("./sync-window-start.js");
14
15
 
15
16
  const getRecordsFromHealthConnect = async ({
16
17
  typeIdentifier,
18
+ key,
17
19
  startDate: _startDate,
18
20
  chunkSize = _constants.DEFAULT_HEALTH_SYNC_CHUNK_SIZE,
19
21
  anchor,
20
22
  mode = "point"
21
23
  }) => {
22
24
  if ((0, _isDailyAggregateMode.isDailyAggregateMode)(mode)) {
23
- return getDailyAggregates(typeIdentifier, mode, _startDate);
25
+ return getDailyAggregates(typeIdentifier, mode, _startDate, key);
24
26
  }
25
27
  if (mode === "series") {
26
28
  return (0, _healthConnectSeries.getHealthConnectSeries)(typeIdentifier, (0, _syncWindowStart.syncWindowStart)(_startDate));
@@ -138,7 +140,7 @@ const decodeAnchor = anchor => {
138
140
  return undefined;
139
141
  }
140
142
  };
141
- const getDailyAggregates = async (typeIdentifier, mode, _startDate) => {
143
+ const getDailyAggregates = async (typeIdentifier, mode, _startDate, key) => {
142
144
  const aggregateType = typeIdentifier;
143
145
  const startDate = _startDate ? (0, _dateFns.startOfDay)(new Date(_startDate)) : (0, _dateFns.startOfDay)((0, _dateFns.subDays)(new Date(), _constants.DEFAULT_SYNC_LOOKBACK_DAYS));
144
146
  const today = (0, _dateFns.startOfDay)(new Date());
@@ -160,7 +162,7 @@ const getDailyAggregates = async (typeIdentifier, mode, _startDate) => {
160
162
  return [];
161
163
  }
162
164
  const result = group.result;
163
- const measurement = aggregateMeasurement(typeIdentifier, result, mode);
165
+ const measurement = aggregateMeasurement(typeIdentifier, result, mode, key);
164
166
  if (!measurement) {
165
167
  return [];
166
168
  }
@@ -179,7 +181,7 @@ const getDailyAggregates = async (typeIdentifier, mode, _startDate) => {
179
181
  anchor: undefined
180
182
  };
181
183
  };
182
- const aggregateMeasurement = (typeIdentifier, result, mode) => {
184
+ const aggregateMeasurement = (typeIdentifier, result, mode, key) => {
183
185
  if (mode === "daily-summary" && typeIdentifier === "HeartRate") {
184
186
  const average = numberValue(result.BPM_AVG);
185
187
  return average === undefined ? undefined : {
@@ -200,10 +202,24 @@ const aggregateMeasurement = (typeIdentifier, result, mode) => {
200
202
  return value(numberValue(result.FLOORS_CLIMBED_TOTAL), "count");
201
203
  case "ExerciseSession":
202
204
  return value(scale(nestedNumber(result.EXERCISE_DURATION_TOTAL, "inSeconds"), 1 / 60), "min");
205
+ case "Hydration":
206
+ return value(nestedNumber(result.VOLUME_TOTAL, "inMilliliters"), "mL");
207
+ case "Nutrition":
208
+ return nutrientTotal(result, key);
203
209
  default:
204
210
  return undefined;
205
211
  }
206
212
  };
213
+
214
+ /** The nutrient each data type reads from Health Connect's Nutrition record: its daily total and that total's unit. */
215
+ const NUTRIENT_TOTALS = {
216
+ [_healthSyncKeys.HealthDataType.carbohydrates]: ["TOTAL_CARBOHYDRATE_TOTAL", "inGrams", "g"],
217
+ [_healthSyncKeys.HealthDataType.caloriesEaten]: ["ENERGY_TOTAL", "inKilocalories", "kcal"]
218
+ };
219
+ const nutrientTotal = (result, key) => {
220
+ const nutrient = key && NUTRIENT_TOTALS[key];
221
+ return nutrient && value(nestedNumber(result[nutrient[0]], nutrient[1]), nutrient[2]);
222
+ };
207
223
  const value = (measurement, unit) => measurement === undefined ? undefined : {
208
224
  unit,
209
225
  value: measurement
@@ -1 +1 @@
1
- {"version":3,"names":["_dateFns","require","_reactNativeHealthConnect","_constants","_healthConnectSeries","_isDailyAggregateMode","_syncWindowStart","getRecordsFromHealthConnect","typeIdentifier","startDate","_startDate","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","anchor","mode","isDailyAggregateMode","getDailyAggregates","getHealthConnectSeries","syncWindowStart","savedAnchor","decodeAnchor","phase","changes","getChanges","changesToken","recordTypes","changesTokenExpired","data","upsertionChanges","map","record","deletionChanges","length","deletedRecordIds","recordId","hasMore","encodeAnchor","version","nextChangesToken","baseline","readSnapshot","pageToken","undefined","snapshotAnchor","exports","endDate","Date","toISOString","resolvedStartDate","result","readRecords","timeRangeFilter","operator","startTime","endTime","pageSize","nextAnchor","records","Boolean","JSON","stringify","startsWith","parsed","parse","aggregateType","startOfDay","subDays","DEFAULT_SYNC_LOOKBACK_DAYS","today","groups","aggregateGroupByPeriod","recordType","timeRangeSlicer","period","flatMap","group","end","measurement","aggregateMeasurement","dataOrigins","kind","sourceApp","average","numberValue","BPM_AVG","unit","minimum","BPM_MIN","maximum","BPM_MAX","value","COUNT_TOTAL","nestedNumber","DISTANCE","ACTIVE_CALORIES_TOTAL","FLOORS_CLIMBED_TOTAL","scale","EXERCISE_DURATION_TOTAL","Number","isFinite","key","factor"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-records-from-health-connect.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_dateFns","require","_reactNativeHealthConnect","_constants","_healthSyncKeys","_healthConnectSeries","_isDailyAggregateMode","_syncWindowStart","getRecordsFromHealthConnect","typeIdentifier","key","startDate","_startDate","chunkSize","DEFAULT_HEALTH_SYNC_CHUNK_SIZE","anchor","mode","isDailyAggregateMode","getDailyAggregates","getHealthConnectSeries","syncWindowStart","savedAnchor","decodeAnchor","phase","changes","getChanges","changesToken","recordTypes","changesTokenExpired","data","upsertionChanges","map","record","deletionChanges","length","deletedRecordIds","recordId","hasMore","encodeAnchor","version","nextChangesToken","baseline","readSnapshot","pageToken","undefined","snapshotAnchor","exports","endDate","Date","toISOString","resolvedStartDate","result","readRecords","timeRangeFilter","operator","startTime","endTime","pageSize","nextAnchor","records","Boolean","JSON","stringify","startsWith","parsed","parse","aggregateType","startOfDay","subDays","DEFAULT_SYNC_LOOKBACK_DAYS","today","groups","aggregateGroupByPeriod","recordType","timeRangeSlicer","period","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","VOLUME_TOTAL","nutrientTotal","NUTRIENT_TOTALS","HealthDataType","carbohydrates","caloriesEaten","nutrient","Number","isFinite","factor"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/get-records-from-health-connect.ts"],"mappings":";;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AASA,IAAAE,UAAA,GAAAF,OAAA;AAIA,IAAAG,eAAA,GAAAH,OAAA;AAEA,IAAAI,oBAAA,GAAAJ,OAAA;AACA,IAAAK,qBAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;AApBA;;AA2BO,MAAMO,2BAA2B,GAAG,MAAAA,CAAO;EAChDC,cAAc;EACdC,GAAG;EACHC,SAAS,EAAEC,UAAU;EACrBC,SAAS,GAAGC,yCAA8B;EAC1CC,MAAM;EACNC,IAAI,GAAG;AAC6B,CAAC,KAElC;EACH,IAAI,IAAAC,0CAAoB,EAACD,IAAI,CAAC,EAAE;IAC9B,OAAOE,kBAAkB,CAACT,cAAc,EAAEO,IAAI,EAAEJ,UAAU,EAAEF,GAAG,CAAC;EAClE;EAEA,IAAIM,IAAI,KAAK,QAAQ,EAAE;IACrB,OAAO,IAAAG,2CAAsB,EAACV,cAAc,EAAE,IAAAW,gCAAe,EAACR,UAAU,CAAC,CAAC;EAC5E;EAEA,MAAMS,WAAW,GAAGC,YAAY,CAACP,MAAM,CAAC;EAExC,IAAIM,WAAW,EAAEE,KAAK,KAAK,SAAS,EAAE;IACpC,MAAMC,OAAO,GAAG,MAAM,IAAAC,oCAAU,EAAC;MAC/BC,YAAY,EAAEL,WAAW,CAACK,YAAY;MACtCC,WAAW,EAAE,CAAClB,cAAc;IAC9B,CAAC,CAAC;IAEF,IAAI,CAACe,OAAO,CAACI,mBAAmB,EAAE;MAChC,OAAO;QACLC,IAAI,EAAEL,OAAO,CAACM,gBAAgB,CAACC,GAAG,CAAC,CAAC;UAAEC;QAAO,CAAC,KAAKA,MAAM,CAAC;QAC1D,IAAIR,OAAO,CAACS,eAAe,CAACC,MAAM,GAAG,CAAC,GAClC;UACEC,gBAAgB,EAAEX,OAAO,CAACS,eAAe,CAACF,GAAG,CAC3C,CAAC;YAAEK;UAAS,CAAC,KAAKA,QACpB;QACF,CAAC,GACD,CAAC,CAAC,CAAC;QACPC,OAAO,EAAEb,OAAO,CAACa,OAAO;QACxBtB,MAAM,EAAE;UACNN,cAAc;UACdM,MAAM,EAAEuB,YAAY,CAAC;YACnBC,OAAO,EAAE,CAAC;YACVhB,KAAK,EAAE,SAAS;YAChBG,YAAY,EAAEF,OAAO,CAACgB;UACxB,CAAC;QACH;MACF,CAAC;IACH;;IAEA;IACA;IACA;IACA,MAAMC,QAAQ,GAAG,MAAM,IAAAhB,oCAAU,EAAC;MAAEE,WAAW,EAAE,CAAClB,cAAc;IAAE,CAAC,CAAC;IAEpE,OAAOiC,YAAY,CAAC;MAClBjC,cAAc;MACdE,SAAS,EAAEC,UAAU;MACrBC,SAAS;MACT8B,SAAS,EAAEC,SAAS;MACpBlB,YAAY,EAAEe,QAAQ,CAACD;IACzB,CAAC,CAAC;EACJ;EAEA,MAAMC,QAAQ,GAAGpB,WAAW,GACxBuB,SAAS,GACT,MAAM,IAAAnB,oCAAU,EAAC;IAAEE,WAAW,EAAE,CAAClB,cAAc;EAAE,CAAC,CAAC;EAEvD,MAAMoC,cAAmE,GACvExB,WAAW,EAAEE,KAAK,KAAK,UAAU,GAC7BF,WAAW,GACX;IACEkB,OAAO,EAAE,CAAC;IACVhB,KAAK,EAAE,UAAU;IACjBG,YAAY,EAAEe,QAAQ,EAAED,gBAAgB,IAAI,EAAE;IAE9C;IACA;IACA,IAAIzB,MAAM,IAAI,CAACM,WAAW,GAAG;MAAEsB,SAAS,EAAE5B;IAAO,CAAC,GAAG,CAAC,CAAC;EACzD,CAAC;EAEP,OAAO2B,YAAY,CAAC;IAClBjC,cAAc;IACdE,SAAS,EAAEC,UAAU;IACrBC,SAAS;IACT8B,SAAS,EAAEE,cAAc,CAACF,SAAS;IACnCjB,YAAY,EAAEmB,cAAc,CAACnB;EAC/B,CAAC,CAAC;AACJ,CAAC;AAACoB,OAAA,CAAAtC,2BAAA,GAAAA,2BAAA;AAEF,MAAMkC,YAAY,GAAG,MAAAA,CAAO;EAC1BjC,cAAc;EACdE,SAAS;EACToC,OAAO,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EAClCpC,SAAS;EACT8B,SAAS;EACTjB;AAQF,CAAC,KAAqE;EACpE,MAAMwB,iBAAiB,GAAG,IAAA9B,gCAAe,EAACT,SAAS,CAAC,CAACsC,WAAW,CAAC,CAAC;EAElE,MAAME,MAAM,GAAG,MAAM,IAAAC,qCAAW,EAAC3C,cAAc,EAAE;IAC/C4C,eAAe,EAAE;MACfC,QAAQ,EAAE,SAAS;MACnBC,SAAS,EAAEL,iBAAiB;MAC5BM,OAAO,EAAET;IACX,CAAC;IACDU,QAAQ,EAAE5C,SAAS;IACnB8B;EACF,CAAC,CAAC;EAEF,MAAMe,UAA+B,GAAGP,MAAM,CAACR,SAAS,GACpD;IACEJ,OAAO,EAAE,CAAC;IACVhB,KAAK,EAAE,UAAU;IACjBG,YAAY;IACZiB,SAAS,EAAEQ,MAAM,CAACR;EACpB,CAAC,GACD;IAAEJ,OAAO,EAAE,CAAC;IAAEhB,KAAK,EAAE,SAAS;IAAEG;EAAa,CAAC;EAElD,OAAO;IACLG,IAAI,EAAEsB,MAAM,CAACQ,OAAO;IACpBtB,OAAO,EAAEuB,OAAO,CAACT,MAAM,CAACR,SAAS,CAAC;IAClC5B,MAAM,EAAE;MACNN,cAAc;MACdM,MAAM,EAAEuB,YAAY,CAACoB,UAAU;IACjC;EACF,CAAC;AACH,CAAC;AAED,MAAMpB,YAAY,GAAIvB,MAA2B,IAC/C8C,IAAI,CAACC,SAAS,CAAC/C,MAAM,CAAC;AAExB,MAAMO,YAAY,GAChBP,MAA0B,IACU;EACpC,IAAI,CAACA,MAAM,EAAEgD,UAAU,CAAC,GAAG,CAAC,EAAE;IAC5B,OAAOnB,SAAS;EAClB;EAEA,IAAI;IACF,MAAMoB,MAAM,GAAGH,IAAI,CAACI,KAAK,CAAClD,MAAM,CAAiC;IAEjE,OAAOiD,MAAM,CAACzB,OAAO,KAAK,CAAC,KACxByB,MAAM,CAACzC,KAAK,KAAK,UAAU,IAAIyC,MAAM,CAACzC,KAAK,KAAK,SAAS,CAAC,IAC3D,OAAOyC,MAAM,CAACtC,YAAY,KAAK,QAAQ,GACpCsC,MAAM,GACPpB,SAAS;EACf,CAAC,CAAC,MAAM;IACN,OAAOA,SAAS;EAClB;AACF,CAAC;AAED,MAAM1B,kBAAkB,GAAG,MAAAA,CACzBT,cAA0B,EAC1BO,IAA8D,EAC9DJ,UAAmB,EACnBF,GAAmB,KACmD;EACtE,MAAMwD,aAAa,GAAGzD,cAA2C;EAEjE,MAAME,SAAS,GAAGC,UAAU,GACxB,IAAAuD,mBAAU,EAAC,IAAInB,IAAI,CAACpC,UAAU,CAAC,CAAC,GAChC,IAAAuD,mBAAU,EAAC,IAAAC,gBAAO,EAAC,IAAIpB,IAAI,CAAC,CAAC,EAAEqB,qCAA0B,CAAC,CAAC;EAE/D,MAAMC,KAAK,GAAG,IAAAH,mBAAU,EAAC,IAAInB,IAAI,CAAC,CAAC,CAAC;EAEpC,MAAMuB,MAAM,GAAG,MAAM,IAAAC,gDAAsB,EAAC;IAC1CC,UAAU,EAAEP,aAAa;IACzBb,eAAe,EAAE;MACfC,QAAQ,EAAE,SAAS;MACnBC,SAAS,EAAE5C,SAAS,CAACsC,WAAW,CAAC,CAAC;MAClCO,OAAO,EAAEc,KAAK,CAACrB,WAAW,CAAC;IAC7B,CAAC;IACDyB,eAAe,EAAE;MAAEC,MAAM,EAAE,MAAM;MAAEzC,MAAM,EAAE;IAAE;EAC/C,CAAC,CAAC;EAEF,MAAML,IAAI,GAAG0C,MAAM,CAACK,OAAO,CAAEC,KAAK,IAAK;IACrC,MAAMC,GAAG,GAAG,IAAI9B,IAAI,CAAC6B,KAAK,CAACrB,OAAO,CAAC;IAEnC,IAAIsB,GAAG,GAAGR,KAAK,EAAE;MACf,OAAO,EAAE;IACX;IAEA,MAAMnB,MAAM,GAAG0B,KAAK,CAAC1B,MAA4C;IACjE,MAAM4B,WAAW,GAAGC,oBAAoB,CAACvE,cAAc,EAAE0C,MAAM,EAAEnC,IAAI,EAAEN,GAAG,CAAC;IAE3E,IAAI,CAACqE,WAAW,EAAE;MAChB,OAAO,EAAE;IACX;IAEA,MAAME,WAAW,GAAG9B,MAAM,CAAC8B,WAAmC;IAE9D,OAAO,CACL;MACEC,IAAI,EAAElE,IAAI;MACVP,cAAc;MACdE,SAAS,EAAE,IAAIqC,IAAI,CAAC6B,KAAK,CAACtB,SAAS,CAAC;MACpCR,OAAO,EAAE+B,GAAG;MACZK,SAAS,EAAEF,WAAW,GAAG,CAAC,CAAC;MAC3B,GAAGF;IACL,CAAC,CACF;EACH,CAAC,CAAC;EAEF,OAAO;IAAElD,IAAI;IAAEd,MAAM,EAAE6B;EAAU,CAAC;AACpC,CAAC;AAED,MAAMoC,oBAAoB,GAAGA,CAC3BvE,cAA0B,EAC1B0C,MAA+B,EAC/BnC,IAA8D,EAC9DN,GAAmB,KAIJ;EACf,IAAIM,IAAI,KAAK,eAAe,IAAIP,cAAc,KAAK,WAAW,EAAE;IAC9D,MAAM2E,OAAO,GAAGC,WAAW,CAAClC,MAAM,CAACmC,OAAO,CAAC;IAE3C,OAAOF,OAAO,KAAKxC,SAAS,GACxBA,SAAS,GACT;MACE2C,IAAI,EAAE,WAAW;MACjBH,OAAO;MACPI,OAAO,EAAEH,WAAW,CAAClC,MAAM,CAACsC,OAAO,CAAC;MACpCC,OAAO,EAAEL,WAAW,CAAClC,MAAM,CAACwC,OAAO;IACrC,CAAC;EACP;EAEA,QAAQlF,cAAc;IACpB,KAAK,OAAO;MACV,OAAOmF,KAAK,CAACP,WAAW,CAAClC,MAAM,CAAC0C,WAAW,CAAC,EAAE,OAAO,CAAC;IACxD,KAAK,UAAU;MACb,OAAOD,KAAK,CAACE,YAAY,CAAC3C,MAAM,CAAC4C,QAAQ,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC;IACnE,KAAK,sBAAsB;MACzB,OAAOH,KAAK,CACVE,YAAY,CAAC3C,MAAM,CAAC6C,qBAAqB,EAAE,gBAAgB,CAAC,EAC5D,MACF,CAAC;IACH,KAAK,eAAe;MAClB,OAAOJ,KAAK,CAACP,WAAW,CAAClC,MAAM,CAAC8C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACjE,KAAK,iBAAiB;MACpB,OAAOL,KAAK,CACVM,KAAK,CAACJ,YAAY,CAAC3C,MAAM,CAACgD,uBAAuB,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EACxE,KACF,CAAC;IACH,KAAK,WAAW;MACd,OAAOP,KAAK,CAACE,YAAY,CAAC3C,MAAM,CAACiD,YAAY,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC;IACxE,KAAK,WAAW;MACd,OAAOC,aAAa,CAAClD,MAAM,EAAEzC,GAAG,CAAC;IACnC;MACE,OAAOkC,SAAS;EACpB;AACF,CAAC;;AAED;AACA,MAAM0D,eAAyE,GAAG;EAChF,CAACC,8BAAc,CAACC,aAAa,GAAG,CAAC,0BAA0B,EAAE,SAAS,EAAE,GAAG,CAAC;EAC5E,CAACD,8BAAc,CAACE,aAAa,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM;AAC3E,CAAC;AAED,MAAMJ,aAAa,GAAGA,CACpBlD,MAA+B,EAC/BzC,GAA8B,KAC+B;EAC7D,MAAMgG,QAAQ,GAAGhG,GAAG,IAAI4F,eAAe,CAAC5F,GAAG,CAAC;EAE5C,OAAOgG,QAAQ,IAAId,KAAK,CAACE,YAAY,CAAC3C,MAAM,CAACuD,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAMd,KAAK,GAAGA,CACZb,WAA+B,EAC/BQ,IAAY,KAEZR,WAAW,KAAKnC,SAAS,GAAGA,SAAS,GAAG;EAAE2C,IAAI;EAAEK,KAAK,EAAEb;AAAY,CAAC;AAEtE,MAAMM,WAAW,GAAIO,KAAc,IACjC,OAAOA,KAAK,KAAK,QAAQ,IAAIe,MAAM,CAACC,QAAQ,CAAChB,KAAK,CAAC,GAAGA,KAAK,GAAGhD,SAAS;AAEzE,MAAMkD,YAAY,GAAGA,CAACF,KAAc,EAAElF,GAAW,KAC/C2E,WAAW,CAAEO,KAAK,GAA2ClF,GAAG,CAAC,CAAC;AAEpE,MAAMwF,KAAK,GAAGA,CAACN,KAAyB,EAAEiB,MAAc,KACtDjB,KAAK,KAAKhD,SAAS,GAAGA,SAAS,GAAGgD,KAAK,GAAGiB,MAAM","ignoreList":[]}
@@ -23,7 +23,12 @@ const HEALTH_UNITS = {
23
23
  HKQuantityTypeIdentifierDistanceWalkingRunning: "km",
24
24
  HKQuantityTypeIdentifierActiveEnergyBurned: "kcal",
25
25
  HKQuantityTypeIdentifierAppleExerciseTime: "min",
26
- HKQuantityTypeIdentifierFlightsClimbed: "count"
26
+ HKQuantityTypeIdentifierFlightsClimbed: "count",
27
+ HKQuantityTypeIdentifierDietaryWater: "mL",
28
+ HKQuantityTypeIdentifierDietaryCarbohydrates: "g",
29
+ HKQuantityTypeIdentifierDietaryEnergyConsumed: "kcal",
30
+ HKQuantityTypeIdentifierBloodAlcoholContent: "%",
31
+ HKQuantityTypeIdentifierInsulinDelivery: "IU"
27
32
  };
28
33
  const healthUnitFor = typeIdentifier => HEALTH_UNITS[typeIdentifier];
29
34
  exports.healthUnitFor = healthUnitFor;
@@ -1 +1 @@
1
- {"version":3,"names":["HEALTH_UNITS","HKQuantityTypeIdentifierHeight","HKQuantityTypeIdentifierBodyMass","HKQuantityTypeIdentifierBodyFatPercentage","HKQuantityTypeIdentifierBodyTemperature","HKQuantityTypeIdentifierBasalBodyTemperature","HKQuantityTypeIdentifierBloodPressureSystolic","HKQuantityTypeIdentifierBloodPressureDiastolic","HKQuantityTypeIdentifierBloodGlucose","HKQuantityTypeIdentifierOxygenSaturation","HKQuantityTypeIdentifierHeartRate","HKQuantityTypeIdentifierHeartRateVariabilitySDNN","HKQuantityTypeIdentifierRestingHeartRate","HKQuantityTypeIdentifierRespiratoryRate","HKQuantityTypeIdentifierWalkingHeartRateAverage","HKQuantityTypeIdentifierLeanBodyMass","HKQuantityTypeIdentifierDistanceWalkingRunning","HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierAppleExerciseTime","HKQuantityTypeIdentifierFlightsClimbed","healthUnitFor","typeIdentifier","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/health-units.ts"],"mappings":";;;;;;AAKA,MAAMA,YAA8C,GAAG;EACrDC,8BAA8B,EAAE,GAAG;EACnCC,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,WAAW;EAC5DC,oCAAoC,EAAE,IAAI;EAC1CC,8CAA8C,EAAE,IAAI;EACpDC,0CAA0C,EAAE,MAAM;EAClDC,yCAAyC,EAAE,KAAK;EAChDC,sCAAsC,EAAE;AAC1C,CAAC;AAEM,MAAMC,aAAa,GACxBC,cAAiB,IAEjBrB,YAAY,CAACqB,cAAc,CAAqC;AAACC,OAAA,CAAAF,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"names":["HEALTH_UNITS","HKQuantityTypeIdentifierHeight","HKQuantityTypeIdentifierBodyMass","HKQuantityTypeIdentifierBodyFatPercentage","HKQuantityTypeIdentifierBodyTemperature","HKQuantityTypeIdentifierBasalBodyTemperature","HKQuantityTypeIdentifierBloodPressureSystolic","HKQuantityTypeIdentifierBloodPressureDiastolic","HKQuantityTypeIdentifierBloodGlucose","HKQuantityTypeIdentifierOxygenSaturation","HKQuantityTypeIdentifierHeartRate","HKQuantityTypeIdentifierHeartRateVariabilitySDNN","HKQuantityTypeIdentifierRestingHeartRate","HKQuantityTypeIdentifierRespiratoryRate","HKQuantityTypeIdentifierWalkingHeartRateAverage","HKQuantityTypeIdentifierLeanBodyMass","HKQuantityTypeIdentifierDistanceWalkingRunning","HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierAppleExerciseTime","HKQuantityTypeIdentifierFlightsClimbed","HKQuantityTypeIdentifierDietaryWater","HKQuantityTypeIdentifierDietaryCarbohydrates","HKQuantityTypeIdentifierDietaryEnergyConsumed","HKQuantityTypeIdentifierBloodAlcoholContent","HKQuantityTypeIdentifierInsulinDelivery","healthUnitFor","typeIdentifier","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/utils/health-units.ts"],"mappings":";;;;;;AAKA,MAAMA,YAA8C,GAAG;EACrDC,8BAA8B,EAAE,GAAG;EACnCC,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,WAAW;EAC5DC,oCAAoC,EAAE,IAAI;EAC1CC,8CAA8C,EAAE,IAAI;EACpDC,0CAA0C,EAAE,MAAM;EAClDC,yCAAyC,EAAE,KAAK;EAChDC,sCAAsC,EAAE,OAAO;EAC/CC,oCAAoC,EAAE,IAAI;EAC1CC,4CAA4C,EAAE,GAAG;EACjDC,6CAA6C,EAAE,MAAM;EACrDC,2CAA2C,EAAE,GAAG;EAChDC,uCAAuC,EAAE;AAC3C,CAAC;AAEM,MAAMC,aAAa,GACxBC,cAAiB,IAEjB1B,YAAY,CAAC0B,cAAc,CAAqC;AAACC,OAAA,CAAAF,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -24,6 +24,7 @@ const ATT_WRITE_HEADER_BYTES = 3;
24
24
  export class BTCommandWriter {
25
25
  pendingWrites = Promise.resolve();
26
26
  mtu = DEFAULT_ATT_MTU;
27
+ writeOnlyWithoutResponse = new Map();
27
28
  constructor(device, onError, isNormalDisconnect, retryAfterPairing = runOnce) {
28
29
  this.device = device;
29
30
  this.onError = onError;
@@ -97,16 +98,43 @@ export class BTCommandWriter {
97
98
  * Writes one chunk the way the characteristic accepts writes.
98
99
  *
99
100
  * A with-response write to a characteristic that only supports write-without-response
100
- * fails outright, so the command says which it is rather than the transport guessing.
101
+ * fails outright, and some devices drop the link on it. A command can say which it is;
102
+ * otherwise the characteristic's own properties decide.
101
103
  */
102
104
  writeTo = async (command, value) => {
103
- if (command.withoutResponse) {
105
+ if (command.withoutResponse || (await this.acceptsOnlyWithoutResponse(command))) {
104
106
  await this.device.writeCharacteristicWithoutResponseForService(command.serviceUuid, command.characteristicUuid, value);
105
107
  return;
106
108
  }
107
109
  await this.device.writeCharacteristicWithResponseForService(command.serviceUuid, command.characteristicUuid, value);
108
110
  };
109
111
 
112
+ /** Reads once per characteristic whether it refuses with-response writes. */
113
+ acceptsOnlyWithoutResponse = command => {
114
+ const key = `${command.serviceUuid}|${command.characteristicUuid}`.toLowerCase();
115
+ const known = this.writeOnlyWithoutResponse.get(key);
116
+ if (known) {
117
+ return known;
118
+ }
119
+ const lookup = this.readAcceptsOnlyWithoutResponse(command);
120
+ this.writeOnlyWithoutResponse.set(key, lookup);
121
+ return lookup;
122
+ };
123
+ readAcceptsOnlyWithoutResponse = async ({
124
+ serviceUuid,
125
+ characteristicUuid
126
+ }) => {
127
+ try {
128
+ const characteristics = await this.device.characteristicsForService(serviceUuid);
129
+ const characteristic = characteristics.find(({
130
+ uuid
131
+ }) => uuid.toLowerCase() === characteristicUuid.toLowerCase());
132
+ return Boolean(characteristic?.isWritableWithoutResponse && !characteristic.isWritableWithResponse);
133
+ } catch {
134
+ return false;
135
+ }
136
+ };
137
+
110
138
  /**
111
139
  * Splits a frame into writes the link will carry whole.
112
140
  *
@@ -1 +1 @@
1
- {"version":3,"names":["sentryLogger","toBluetoothError","hexToBase64","runOnce","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","isNormalDisconnect","retryAfterPairing","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","join","message","expectedEnd","test","errorCode","code"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sentryLogger","toBluetoothError","hexToBase64","runOnce","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","writeOnlyWithoutResponse","Map","constructor","device","onError","isNormalDisconnect","retryAfterPairing","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","acceptsOnlyWithoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","key","toLowerCase","known","get","lookup","readAcceptsOnlyWithoutResponse","set","characteristics","characteristicsForService","characteristic","find","uuid","Boolean","isWritableWithoutResponse","isWritableWithResponse","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","join","message","expectedEnd","test","errorCode","code"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":"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","ignoreList":[]}
@@ -89,6 +89,7 @@ export class DataProcessor {
89
89
  typeIdentifier,
90
90
  result: await this.getDataFromProviderFunction({
91
91
  typeIdentifier: typeIdentifier,
92
+ key: measurementTypeKey,
92
93
  startDate: latestValidStartDate?.toISOString(),
93
94
  anchor,
94
95
  chunkSize: this.chunkSize,