@kingstinct/react-native-healthkit 4.3.0 → 4.4.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.
@@ -507,7 +507,7 @@ class ReactNativeHealthkit: RCTEventEmitter {
507
507
  }
508
508
 
509
509
  @objc(saveCategorySample:value:start:end:metadata:resolve:reject:)
510
- func saveCategorySample(typeIdentifier: String, value: Int, start: Date, end: Date, metadata: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){
510
+ func saveCategorySample(typeIdentifier: String, value: Double, start: Date, end: Date, metadata: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){
511
511
  guard let store = _store else {
512
512
  return reject(INIT_ERROR, INIT_ERROR_MESSAGE, nil);
513
513
  }
@@ -518,7 +518,7 @@ class ReactNativeHealthkit: RCTEventEmitter {
518
518
  return reject(TYPE_IDENTIFIER_ERROR, typeIdentifier, nil);
519
519
  }
520
520
 
521
- let sample = HKCategorySample.init(type: type, value: value, start: start, end: end, metadata: metadata as? Dictionary<String, Any>)
521
+ let sample = HKCategorySample.init(type: type, value: Int(value), start: start, end: end, metadata: metadata as? Dictionary<String, Any>)
522
522
 
523
523
  store.save(sample) { (success: Bool, error: Error?) in
524
524
  guard let err = error else {
@@ -68,22 +68,16 @@ function deserializeWorkout(sample) {
68
68
  };
69
69
  }
70
70
 
71
- const deserializCategorySample = sample => {
72
- return { ...sample,
73
- startDate: new Date(sample.startDate),
74
- endDate: new Date(sample.endDate)
75
- };
76
- };
71
+ const deserializCategorySample = sample => ({ ...sample,
72
+ startDate: new Date(sample.startDate),
73
+ endDate: new Date(sample.endDate)
74
+ });
77
75
 
78
- const serializeDate = date => {
79
- return date ? date.toISOString() : new Date(0).toISOString();
80
- };
76
+ const serializeDate = date => date ? date.toISOString() : new Date(0).toISOString();
81
77
 
82
78
  const prepareOptions = options => {
83
- var _options$ascending;
84
-
85
79
  const limit = !options.limit || options.limit === Infinity ? 0 : options.limit;
86
- const ascending = (_options$ascending = options.ascending) !== null && _options$ascending !== void 0 ? _options$ascending : limit === 0;
80
+ const ascending = options.ascending ?? limit === 0;
87
81
  const from = serializeDate(options.from);
88
82
  const to = serializeDate(options.to);
89
83
  return {
@@ -101,6 +95,36 @@ const queryQuantitySamples = async (identifier, options) => {
101
95
  return quantitySamples.map(deserializeSample);
102
96
  };
103
97
 
98
+ async function getPreferredUnitsTyped(options) {
99
+ let energyUnit = options === null || options === void 0 ? void 0 : options.energyUnit;
100
+ let distanceUnit = options === null || options === void 0 ? void 0 : options.distanceUnit;
101
+
102
+ if (!energyUnit || !distanceUnit) {
103
+ const units = await _nativeTypes.default.getPreferredUnits([_nativeTypes.HKQuantityTypeIdentifier.distanceWalkingRunning, _nativeTypes.HKQuantityTypeIdentifier.activeEnergyBurned]);
104
+
105
+ if (!energyUnit) {
106
+ energyUnit = units[_nativeTypes.HKQuantityTypeIdentifier.distanceWalkingRunning];
107
+ }
108
+
109
+ if (!distanceUnit) {
110
+ distanceUnit = units[_nativeTypes.HKQuantityTypeIdentifier.activeEnergyBurned];
111
+ }
112
+ }
113
+
114
+ if (!energyUnit) {
115
+ energyUnit = _nativeTypes.HKUnit.Kilocalories;
116
+ }
117
+
118
+ if (!distanceUnit) {
119
+ distanceUnit = _nativeTypes.HKUnit.Meters;
120
+ }
121
+
122
+ return {
123
+ energyUnit,
124
+ distanceUnit
125
+ };
126
+ }
127
+
104
128
  const subscribeToChanges = async (identifier, callback) => {
105
129
  const subscription = _nativeTypes.EventEmitter.addListener('onChange', _ref => {
106
130
  let {
@@ -112,11 +136,11 @@ const subscribeToChanges = async (identifier, callback) => {
112
136
  }
113
137
  });
114
138
 
115
- const queryId = await _nativeTypes.default.subscribeToObserverQuery(identifier).catch(error => {
139
+ const queryId = await _nativeTypes.default.subscribeToObserverQuery(identifier).catch(async error => {
116
140
  subscription.remove();
117
141
  return Promise.reject(error);
118
142
  });
119
- return () => {
143
+ return async () => {
120
144
  subscription.remove();
121
145
  return _nativeTypes.default.unsubscribeQuery(queryId);
122
146
  };
@@ -125,7 +149,7 @@ const subscribeToChanges = async (identifier, callback) => {
125
149
  const getMostRecentQuantitySample = async (identifier, unit) => {
126
150
  const samples = await queryQuantitySamples(identifier, {
127
151
  limit: 1,
128
- unit: unit
152
+ unit
129
153
  });
130
154
  return samples[0];
131
155
  };
@@ -140,17 +164,20 @@ function useMostRecentWorkout(options) {
140
164
  energyUnit,
141
165
  distanceUnit
142
166
  } = await getPreferredUnitsTyped(options);
143
- cancelSubscription = await subscribeToChanges('HKWorkoutTypeIdentifier', () => {
144
- getMostRecentWorkout({
167
+ cancelSubscription = await subscribeToChanges('HKWorkoutTypeIdentifier', async () => {
168
+ const w = await getMostRecentWorkout({
145
169
  energyUnit,
146
170
  distanceUnit
147
- }).then(setWorkout);
171
+ });
172
+ setWorkout(w);
148
173
  });
149
174
  };
150
175
 
151
- init();
176
+ void init();
152
177
  return () => {
153
- cancelSubscription && cancelSubscription();
178
+ var _cancelSubscription;
179
+
180
+ void ((_cancelSubscription = cancelSubscription) === null || _cancelSubscription === void 0 ? void 0 : _cancelSubscription());
154
181
  };
155
182
  }, [options]);
156
183
  return workout;
@@ -164,15 +191,6 @@ const getMostRecentCategorySample = async identifier => {
164
191
  return samples[0];
165
192
  };
166
193
 
167
- function useMostRecentCategorySample(identifier) {
168
- const [category, setCategory] = (0, _react.useState)(null);
169
- const updater = (0, _react.useCallback)(() => {
170
- getMostRecentCategorySample(identifier).then(setCategory);
171
- }, [identifier]);
172
- useSubscribeToChanges(identifier, updater);
173
- return category;
174
- }
175
-
176
194
  function useSubscribeToChanges(identifier, onChange) {
177
195
  (0, _react.useEffect)(() => {
178
196
  let cancelSubscription;
@@ -181,13 +199,24 @@ function useSubscribeToChanges(identifier, onChange) {
181
199
  cancelSubscription = await subscribeToChanges(identifier, onChange);
182
200
  };
183
201
 
184
- init();
202
+ void init();
185
203
  return () => {
186
- cancelSubscription && cancelSubscription();
204
+ var _cancelSubscription2;
205
+
206
+ void ((_cancelSubscription2 = cancelSubscription) === null || _cancelSubscription2 === void 0 ? void 0 : _cancelSubscription2());
187
207
  };
188
208
  }, [identifier, onChange]);
189
209
  }
190
210
 
211
+ function useMostRecentCategorySample(identifier) {
212
+ const [category, setCategory] = (0, _react.useState)(null);
213
+ const updater = (0, _react.useCallback)(() => {
214
+ void getMostRecentCategorySample(identifier).then(setCategory);
215
+ }, [identifier]);
216
+ useSubscribeToChanges(identifier, updater);
217
+ return category;
218
+ }
219
+
191
220
  function useMostRecentQuantitySample(identifier, unit) {
192
221
  const [lastSample, setLastSample] = (0, _react.useState)(null);
193
222
  (0, _react.useEffect)(() => {
@@ -195,22 +224,23 @@ function useMostRecentQuantitySample(identifier, unit) {
195
224
 
196
225
  const init = async () => {
197
226
  const actualUnit = await ensureUnit(identifier, unit);
198
- cancelSubscription = await subscribeToChanges(identifier, () => {
199
- getMostRecentQuantitySample(identifier, actualUnit).then(value => {
200
- setLastSample(value);
201
- });
227
+ cancelSubscription = await subscribeToChanges(identifier, async () => {
228
+ const value = await getMostRecentQuantitySample(identifier, actualUnit);
229
+ setLastSample(value);
202
230
  });
203
231
  };
204
232
 
205
- init();
233
+ void init();
206
234
  return () => {
207
- cancelSubscription && cancelSubscription();
235
+ var _cancelSubscription3;
236
+
237
+ void ((_cancelSubscription3 = cancelSubscription) === null || _cancelSubscription3 === void 0 ? void 0 : _cancelSubscription3());
208
238
  };
209
239
  }, [identifier, unit]);
210
240
  return lastSample;
211
241
  }
212
242
 
213
- const saveQuantitySample = (identifier, unit, value, options) => {
243
+ const saveQuantitySample = async (identifier, unit, value, options) => {
214
244
  const start = (options === null || options === void 0 ? void 0 : options.start) || (options === null || options === void 0 ? void 0 : options.end) || new Date();
215
245
  const end = (options === null || options === void 0 ? void 0 : options.end) || (options === null || options === void 0 ? void 0 : options.start) || new Date();
216
246
  const metadata = (options === null || options === void 0 ? void 0 : options.metadata) || {};
@@ -235,18 +265,14 @@ const queryStatisticsForQuantity = async (identifier, options, from, to, unit) =
235
265
  return response;
236
266
  };
237
267
 
238
- const requestAuthorization = function (read) {
268
+ const requestAuthorization = async function (read) {
239
269
  let write = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
240
- const readPermissions = read.reduce((obj, cur) => {
241
- return { ...obj,
242
- [cur]: true
243
- };
244
- }, {});
245
- const writePermissions = write.reduce((obj, cur) => {
246
- return { ...obj,
247
- [cur]: true
248
- };
249
- }, {});
270
+ const readPermissions = read.reduce((obj, cur) => ({ ...obj,
271
+ [cur]: true
272
+ }), {});
273
+ const writePermissions = write.reduce((obj, cur) => ({ ...obj,
274
+ [cur]: true
275
+ }), {});
250
276
  return _nativeTypes.default.requestAuthorization(writePermissions, readPermissions);
251
277
  };
252
278
 
@@ -255,18 +281,14 @@ const getDateOfBirth = async () => {
255
281
  return new Date(dateOfBirth);
256
282
  };
257
283
 
258
- const getRequestStatusForAuthorization = function (read) {
284
+ const getRequestStatusForAuthorization = async function (read) {
259
285
  let write = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
260
- const readPermissions = read.reduce((obj, cur) => {
261
- return { ...obj,
262
- [cur]: true
263
- };
264
- }, {});
265
- const writePermissions = write.reduce((obj, cur) => {
266
- return { ...obj,
267
- [cur]: true
268
- };
269
- }, {});
286
+ const readPermissions = read.reduce((obj, cur) => ({ ...obj,
287
+ [cur]: true
288
+ }), {});
289
+ const writePermissions = write.reduce((obj, cur) => ({ ...obj,
290
+ [cur]: true
291
+ }), {});
270
292
  return _nativeTypes.default.getRequestStatusForAuthorization(writePermissions, readPermissions);
271
293
  };
272
294
 
@@ -276,36 +298,6 @@ const queryCategorySamples = async (identifier, options) => {
276
298
  return results.map(deserializCategorySample);
277
299
  };
278
300
 
279
- async function getPreferredUnitsTyped(options) {
280
- let energyUnit = options === null || options === void 0 ? void 0 : options.energyUnit;
281
- let distanceUnit = options === null || options === void 0 ? void 0 : options.distanceUnit;
282
-
283
- if (!energyUnit || !distanceUnit) {
284
- const units = await _nativeTypes.default.getPreferredUnits([_nativeTypes.HKQuantityTypeIdentifier.distanceWalkingRunning, _nativeTypes.HKQuantityTypeIdentifier.activeEnergyBurned]);
285
-
286
- if (!energyUnit) {
287
- energyUnit = units[_nativeTypes.HKQuantityTypeIdentifier.distanceWalkingRunning];
288
- }
289
-
290
- if (!distanceUnit) {
291
- distanceUnit = units[_nativeTypes.HKQuantityTypeIdentifier.activeEnergyBurned];
292
- }
293
- }
294
-
295
- if (!energyUnit) {
296
- energyUnit = _nativeTypes.HKUnit.Kilocalories;
297
- }
298
-
299
- if (!distanceUnit) {
300
- distanceUnit = _nativeTypes.HKUnit.Meters;
301
- }
302
-
303
- return {
304
- energyUnit,
305
- distanceUnit
306
- };
307
- }
308
-
309
301
  const queryWorkouts = async options => {
310
302
  const {
311
303
  energyUnit,
@@ -326,7 +318,7 @@ const getMostRecentWorkout = async options => {
326
318
  return workouts[0];
327
319
  };
328
320
 
329
- function saveCategorySample(identifier, value, options) {
321
+ async function saveCategorySample(identifier, value, options) {
330
322
  const start = (options === null || options === void 0 ? void 0 : options.start) || (options === null || options === void 0 ? void 0 : options.end) || new Date();
331
323
  const end = (options === null || options === void 0 ? void 0 : options.end) || (options === null || options === void 0 ? void 0 : options.start) || new Date();
332
324
  const metadata = (options === null || options === void 0 ? void 0 : options.metadata) || {};
@@ -338,13 +330,12 @@ const getPreferredUnits = async identifiers => {
338
330
  return identifiers.map(i => units[i]);
339
331
  };
340
332
 
341
- const buildUnitWithPrefix = (prefix, unit) => {
342
- return `${prefix}${unit}`;
343
- };
333
+ const buildUnitWithPrefix = (prefix, unit) => `${prefix}${unit}`;
344
334
 
345
335
  function deserializeCorrelation(s) {
346
336
  return { ...s,
347
337
  objects: s.objects.map(o => {
338
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
348
339
  // @ts-ignore
349
340
  if (o.quantity !== undefined) {
350
341
  return deserializeSample(o);
@@ -373,29 +364,27 @@ const saveCorrelationSample = async (typeIdentifier, samples, options) => {
373
364
  return _nativeTypes.default.saveCorrelationSample(typeIdentifier, samples, start, end, ensureMetadata(options === null || options === void 0 ? void 0 : options.metadata));
374
365
  };
375
366
 
376
- const saveWorkoutSample = (typeIdentifier, quantities, _start, options) => {
367
+ const saveWorkoutSample = async (typeIdentifier, quantities, _start, options) => {
377
368
  const start = _start.toISOString();
378
369
 
379
370
  const end = ((options === null || options === void 0 ? void 0 : options.end) || new Date()).toISOString();
380
371
  return _nativeTypes.default.saveWorkoutSample(typeIdentifier, quantities, start, end, ensureMetadata(options === null || options === void 0 ? void 0 : options.metadata));
381
372
  };
382
373
 
383
- const getWorkoutRoutes = workoutUUID => {
384
- return _nativeTypes.default.getWorkoutRoutes(workoutUUID);
385
- };
374
+ const getWorkoutRoutes = async workoutUUID => _nativeTypes.default.getWorkoutRoutes(workoutUUID);
386
375
 
387
376
  const Healthkit = {
388
- authorizationStatusFor: _nativeTypes.default.authorizationStatusFor,
389
- isHealthDataAvailable: _nativeTypes.default.isHealthDataAvailable,
377
+ authorizationStatusFor: _nativeTypes.default.authorizationStatusFor.bind(_nativeTypes.default),
378
+ isHealthDataAvailable: _nativeTypes.default.isHealthDataAvailable.bind(_nativeTypes.default),
390
379
  buildUnitWithPrefix,
391
380
  disableAllBackgroundDelivery: _nativeTypes.default.disableAllBackgroundDelivery,
392
381
  disableBackgroundDelivery: _nativeTypes.default.disableBackgroundDelivery,
393
382
  enableBackgroundDelivery: _nativeTypes.default.enableBackgroundDelivery,
394
383
  // simple convenience getters
395
- getBiologicalSex: _nativeTypes.default.getBiologicalSex,
396
- getFitzpatrickSkinType: _nativeTypes.default.getFitzpatrickSkinType,
384
+ getBiologicalSex: _nativeTypes.default.getBiologicalSex.bind(_nativeTypes.default),
385
+ getFitzpatrickSkinType: _nativeTypes.default.getFitzpatrickSkinType.bind(_nativeTypes.default),
397
386
  getWheelchairUse: _nativeTypes.default.getWheelchairUse,
398
- getBloodType: _nativeTypes.default.getBloodType,
387
+ getBloodType: _nativeTypes.default.getBloodType.bind(_nativeTypes.default),
399
388
  getDateOfBirth,
400
389
  getMostRecentQuantitySample,
401
390
  getMostRecentCategorySample,
@@ -1 +1 @@
1
- {"version":3,"names":["getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","Native","deserializeSample","sample","startDate","Date","endDate","deserializeWorkout","deserializCategorySample","serializeDate","date","toISOString","prepareOptions","options","limit","Infinity","ascending","from","to","queryQuantitySamples","identifier","opts","quantitySamples","map","subscribeToChanges","callback","subscription","EventEmitter","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","useState","useEffect","cancelSubscription","init","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","then","getMostRecentCategorySample","queryCategorySamples","useMostRecentCategorySample","category","setCategory","updater","useCallback","useSubscribeToChanges","onChange","useMostRecentQuantitySample","lastSample","setLastSample","actualUnit","value","saveQuantitySample","start","end","metadata","queryStatisticsForQuantity","toDate","mostRecentQuantityDateInterval","rawResponse","response","requestAuthorization","read","write","readPermissions","reduce","obj","cur","writePermissions","getDateOfBirth","dateOfBirth","getRequestStatusForAuthorization","results","units","HKQuantityTypeIdentifier","distanceWalkingRunning","activeEnergyBurned","HKUnit","Kilocalories","Meters","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","getWorkoutRoutes","workoutUUID","Healthkit","authorizationStatusFor","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType"],"sources":["index.ios.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport Native, {\n EventEmitter,\n HKCategorySampleRaw,\n HKCategoryTypeIdentifier,\n HKCategoryValueForIdentifier,\n HKCharacteristicTypeIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKQuantityTypeIdentifier,\n HKSampleTypeIdentifier,\n HKUnit,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n} from './native-types';\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n GetWorkoutRoutesFn,\n HKCategorySample,\n HKCorrelation,\n HKQuantitySample,\n HKWorkout,\n QueryCategorySamplesFn,\n QueryCorrelationSamplesFn,\n QueryQuantitySamplesFn,\n QueryStatisticsForQuantityFn,\n QueryWorkoutsFn,\n ReactNativeHealthkit,\n SaveCorrelationSampleFn,\n SaveQuantitySampleFn,\n SaveWorkoutSampleFn,\n SubscribeToChangesFn,\n} from './types';\n\nconst getPreferredUnit: GetPreferredUnitFn = async (type) => {\n const [unit] = await getPreferredUnits([type]);\n return unit;\n};\n\nconst ensureUnit = async <TUnit extends HKUnit>(\n type: HKQuantityTypeIdentifier,\n providedUnit?: TUnit\n) => {\n if (providedUnit) {\n return providedUnit;\n }\n const unit = await Native.getPreferredUnits([type]);\n return unit[type] as TUnit;\n};\n\nfunction deserializeSample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit\n>(\n sample: HKQuantitySampleRaw<TIdentifier, TUnit>\n): HKQuantitySample<TIdentifier, TUnit> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n}\n\nfunction deserializeWorkout<TEnergy extends HKUnit, TDistance extends HKUnit>(\n sample: HKWorkoutRaw<TEnergy, TDistance>\n): HKWorkout<TEnergy, TDistance> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n}\n\nconst deserializCategorySample = <T extends HKCategoryTypeIdentifier>(\n sample: HKCategorySampleRaw<T>\n): HKCategorySample<T> => {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n};\n\nconst serializeDate = (date?: Date | null): string => {\n return date ? date.toISOString() : new Date(0).toISOString();\n};\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit =\n !options.limit || options.limit === Infinity ? 0 : options.limit;\n const ascending = options.ascending ?? limit === 0;\n const from = serializeDate(options.from);\n const to = serializeDate(options.to);\n return { limit, ascending, from, to };\n};\n\nconst queryQuantitySamples: QueryQuantitySamplesFn = async (\n identifier,\n options\n) => {\n const unit = await ensureUnit(identifier, options.unit);\n const opts = prepareOptions(options);\n\n const quantitySamples = await Native.queryQuantitySamples(\n identifier,\n unit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return quantitySamples.map(deserializeSample);\n};\n\nconst subscribeToChanges: SubscribeToChangesFn = async (\n identifier,\n callback\n) => {\n const subscription = EventEmitter.addListener(\n 'onChange',\n ({ typeIdentifier }) => {\n if (typeIdentifier === identifier) {\n callback();\n }\n }\n );\n\n const queryId = await Native.subscribeToObserverQuery(identifier).catch(\n (error) => {\n subscription.remove();\n return Promise.reject(error);\n }\n );\n\n return () => {\n subscription.remove();\n return Native.unsubscribeQuery(queryId);\n };\n};\n\nconst getMostRecentQuantitySample: GetMostRecentQuantitySampleFn = async (\n identifier,\n unit\n) => {\n const samples = await queryQuantitySamples(identifier, {\n limit: 1,\n unit: unit,\n });\n return samples[0];\n};\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { energyUnit?: TEnergy; distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(\n null\n );\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n options\n );\n\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n () => {\n getMostRecentWorkout({ energyUnit, distanceUnit }).then(setWorkout);\n }\n );\n };\n init();\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [options]);\n return workout;\n}\n\nconst getMostRecentCategorySample: GetMostRecentCategorySampleFn = async (\n identifier\n) => {\n const samples = await queryCategorySamples(identifier, {\n limit: 1,\n ascending: false,\n });\n\n return samples[0];\n};\n\nfunction useMostRecentCategorySample<\n TCategory extends HKCategoryTypeIdentifier\n>(identifier: TCategory) {\n const [category, setCategory] = useState<HKCategorySample<TCategory> | null>(\n null\n );\n const updater = useCallback(() => {\n getMostRecentCategorySample(identifier).then(setCategory);\n }, [identifier]);\n\n useSubscribeToChanges(identifier, updater);\n\n return category;\n}\n\nfunction useSubscribeToChanges<TIdentifier extends HKSampleTypeIdentifier>(\n identifier: TIdentifier,\n onChange: () => void\n): void {\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(identifier, onChange);\n };\n init();\n\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [identifier, onChange]);\n}\n\nfunction useMostRecentQuantitySample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit = HKUnit\n>(identifier: TIdentifier, unit?: TUnit) {\n const [lastSample, setLastSample] = useState<HKQuantitySample<\n TIdentifier,\n TUnit\n > | null>(null);\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n const actualUnit = await ensureUnit(identifier, unit);\n\n cancelSubscription = await subscribeToChanges(identifier, () => {\n getMostRecentQuantitySample(identifier, actualUnit).then((value) => {\n setLastSample(value);\n });\n });\n };\n init();\n\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [identifier, unit]);\n\n return lastSample;\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = (\n identifier,\n unit,\n value,\n options\n) => {\n const start = options?.start || options?.end || new Date();\n const end = options?.end || options?.start || new Date();\n const metadata = options?.metadata || {};\n\n return Native.saveQuantitySample(\n identifier,\n unit,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata\n );\n};\n\nconst queryStatisticsForQuantity: QueryStatisticsForQuantityFn = async (\n identifier,\n options,\n from,\n to,\n unit\n) => {\n const actualUnit = await ensureUnit(identifier, unit);\n const toDate = to || new Date();\n const { mostRecentQuantityDateInterval, ...rawResponse } =\n await Native.queryStatisticsForQuantity(\n identifier,\n actualUnit,\n from.toISOString(),\n toDate.toISOString(),\n options\n );\n\n const response = {\n ...rawResponse,\n ...(mostRecentQuantityDateInterval\n ? {\n mostRecentQuantityDateInterval: {\n from: new Date(mostRecentQuantityDateInterval.from),\n to: new Date(mostRecentQuantityDateInterval.to),\n },\n }\n : {}),\n };\n\n return response;\n};\n\nconst requestAuthorization = (\n read: (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: HKSampleTypeIdentifier[] = []\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n const writePermissions = write.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n return Native.requestAuthorization(writePermissions, readPermissions);\n};\n\nconst getDateOfBirth = async () => {\n const dateOfBirth = await Native.getDateOfBirth();\n return new Date(dateOfBirth);\n};\n\nconst getRequestStatusForAuthorization = (\n read: (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: HKSampleTypeIdentifier[] = []\n) => {\n const readPermissions = read.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n const writePermissions = write.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n return Native.getRequestStatusForAuthorization(\n writePermissions,\n readPermissions\n );\n};\n\nconst queryCategorySamples: QueryCategorySamplesFn = async (\n identifier,\n options\n) => {\n const opts = prepareOptions(options);\n const results = await Native.queryCategorySamples(\n identifier,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return results.map(deserializCategorySample);\n};\n\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { energyUnit?: TEnergy; distanceUnit?: TDistance }) {\n let energyUnit = options?.energyUnit;\n let distanceUnit = options?.distanceUnit;\n if (!energyUnit || !distanceUnit) {\n const units = await Native.getPreferredUnits([\n HKQuantityTypeIdentifier.distanceWalkingRunning,\n HKQuantityTypeIdentifier.activeEnergyBurned,\n ]);\n if (!energyUnit) {\n energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning] as\n | TEnergy\n | undefined;\n }\n if (!distanceUnit) {\n distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned] as\n | TDistance\n | undefined;\n }\n }\n if (!energyUnit) {\n energyUnit = HKUnit.Kilocalories as TEnergy;\n }\n if (!distanceUnit) {\n distanceUnit = HKUnit.Meters as TDistance;\n }\n return { energyUnit, distanceUnit };\n}\n\nconst queryWorkouts: QueryWorkoutsFn = async (options) => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(options);\n const opts = prepareOptions(options);\n\n const workouts = await Native.queryWorkoutSamples(\n energyUnit,\n distanceUnit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return workouts.map(deserializeWorkout);\n};\n\nconst getMostRecentWorkout: GetMostRecentWorkoutFn = async (options) => {\n const workouts = await queryWorkouts({\n limit: 1,\n ascending: false,\n energyUnit: options?.energyUnit,\n distanceUnit: options?.distanceUnit,\n });\n\n return workouts[0];\n};\n\nfunction saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n start?: Date;\n end?: Date;\n metadata?: MetadataMapperForCategoryIdentifier<T>;\n }\n) {\n const start = options?.start || options?.end || new Date();\n const end = options?.end || options?.start || new Date();\n const metadata = options?.metadata || {};\n\n return Native.saveCategorySample(\n identifier,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata || {}\n );\n}\n\nconst getPreferredUnits: GetPreferredUnitsFn = async (identifiers) => {\n const units = await Native.getPreferredUnits(identifiers);\n return identifiers.map((i) => units[i]);\n};\n\nconst buildUnitWithPrefix = (prefix: HKUnitSIPrefix, unit: HKUnitSI) => {\n return `${prefix}${unit}` as HKUnit;\n};\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // @ts-ignore\n if (o.quantity !== undefined) {\n return deserializeSample(o as HKQuantitySampleRaw);\n }\n\n return deserializCategorySample(o as HKCategorySampleRaw);\n }),\n endDate: new Date(s.endDate),\n startDate: new Date(s.startDate),\n };\n}\n\nfunction ensureMetadata<TMetadata>(metadata?: TMetadata) {\n return metadata || ({} as TMetadata);\n}\n\nconst queryCorrelationSamples: QueryCorrelationSamplesFn = async (\n typeIdentifier,\n options\n) => {\n const opts = prepareOptions(options);\n const correlations = await Native.queryCorrelationSamples(\n typeIdentifier,\n opts.from,\n opts.to\n );\n\n return correlations.map(deserializeCorrelation);\n};\n\nconst saveCorrelationSample: SaveCorrelationSampleFn = async (\n typeIdentifier,\n samples,\n options\n) => {\n const start = (options?.start || new Date()).toISOString();\n const end = (options?.end || new Date()).toISOString();\n\n return Native.saveCorrelationSample(\n typeIdentifier,\n samples,\n start,\n end,\n ensureMetadata(options?.metadata)\n );\n};\n\nconst saveWorkoutSample: SaveWorkoutSampleFn = (\n typeIdentifier,\n quantities,\n _start,\n options\n) => {\n const start = _start.toISOString();\n const end = (options?.end || new Date()).toISOString();\n\n return Native.saveWorkoutSample(\n typeIdentifier,\n quantities,\n start,\n end,\n ensureMetadata(options?.metadata)\n );\n};\n\nconst getWorkoutRoutes: GetWorkoutRoutesFn = (workoutUUID: string) => {\n return Native.getWorkoutRoutes(workoutUUID);\n};\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor,\n\n isHealthDataAvailable: Native.isHealthDataAvailable,\n\n buildUnitWithPrefix,\n\n disableAllBackgroundDelivery: Native.disableAllBackgroundDelivery,\n disableBackgroundDelivery: Native.disableBackgroundDelivery,\n enableBackgroundDelivery: Native.enableBackgroundDelivery,\n\n // simple convenience getters\n getBiologicalSex: Native.getBiologicalSex,\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType,\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType,\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n getWorkoutRoutes,\n\n // query methods\n queryCategorySamples,\n queryCorrelationSamples,\n queryQuantitySamples,\n queryStatisticsForQuantity,\n queryWorkouts,\n\n requestAuthorization,\n\n // save methods\n saveCategorySample,\n saveCorrelationSample,\n saveQuantitySample,\n saveWorkoutSample,\n\n // subscriptions\n subscribeToChanges,\n\n // hooks\n useMostRecentCategorySample,\n\n useMostRecentQuantitySample,\n useMostRecentWorkout,\n\n useSubscribeToChanges,\n};\n\nexport * from './native-types';\nexport * from './types';\n\nexport default Healthkit;\n"],"mappings":"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"}
1
+ {"version":3,"names":["getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","Native","deserializeSample","sample","startDate","Date","endDate","deserializeWorkout","deserializCategorySample","serializeDate","date","toISOString","prepareOptions","options","limit","Infinity","ascending","from","to","queryQuantitySamples","identifier","opts","quantitySamples","map","getPreferredUnitsTyped","energyUnit","distanceUnit","units","HKQuantityTypeIdentifier","distanceWalkingRunning","activeEnergyBurned","HKUnit","Kilocalories","Meters","subscribeToChanges","callback","subscription","EventEmitter","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","useState","useEffect","cancelSubscription","init","w","getMostRecentWorkout","getMostRecentCategorySample","queryCategorySamples","useSubscribeToChanges","onChange","useMostRecentCategorySample","category","setCategory","updater","useCallback","then","useMostRecentQuantitySample","lastSample","setLastSample","actualUnit","value","saveQuantitySample","start","end","metadata","queryStatisticsForQuantity","toDate","mostRecentQuantityDateInterval","rawResponse","response","requestAuthorization","read","write","readPermissions","reduce","obj","cur","writePermissions","getDateOfBirth","dateOfBirth","getRequestStatusForAuthorization","results","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","getWorkoutRoutes","workoutUUID","Healthkit","authorizationStatusFor","bind","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType"],"sources":["index.ios.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport Native, {\n EventEmitter,\n HKQuantityTypeIdentifier,\n HKUnit,\n} from './native-types'\n\nimport type {\n HKCategorySampleRaw,\n HKCategoryTypeIdentifier,\n HKCategoryValueForIdentifier,\n HKCharacteristicTypeIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKSampleTypeIdentifier,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n ReadPermissions,\n WritePermissions,\n} from './native-types'\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n GetWorkoutRoutesFn,\n HKCategorySample,\n HKCorrelation,\n HKQuantitySample,\n HKWorkout,\n QueryCategorySamplesFn,\n QueryCorrelationSamplesFn,\n QueryQuantitySamplesFn,\n QueryStatisticsForQuantityFn,\n QueryWorkoutsFn,\n ReactNativeHealthkit,\n SaveCorrelationSampleFn,\n SaveQuantitySampleFn,\n SaveWorkoutSampleFn,\n SubscribeToChangesFn,\n} from './types'\n\nconst getPreferredUnit: GetPreferredUnitFn = async (type) => {\n const [unit] = await getPreferredUnits([type])\n return unit\n}\n\nconst ensureUnit = async <TUnit extends HKUnit>(\n type: HKQuantityTypeIdentifier,\n providedUnit?: TUnit,\n) => {\n if (providedUnit) {\n return providedUnit\n }\n const unit = await Native.getPreferredUnits([type])\n return unit[type] as TUnit\n}\n\nfunction deserializeSample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit\n>(\n sample: HKQuantitySampleRaw<TIdentifier, TUnit>,\n): HKQuantitySample<TIdentifier, TUnit> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n }\n}\n\nfunction deserializeWorkout<TEnergy extends HKUnit, TDistance extends HKUnit>(\n sample: HKWorkoutRaw<TEnergy, TDistance>,\n): HKWorkout<TEnergy, TDistance> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n }\n}\n\nconst deserializCategorySample = <T extends HKCategoryTypeIdentifier>(\n sample: HKCategorySampleRaw<T>,\n): HKCategorySample<T> => ({\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n})\n\nconst serializeDate = (date?: Date | null): string => (date ? date.toISOString() : new Date(0).toISOString())\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit = !options.limit || options.limit === Infinity ? 0 : options.limit\n const ascending = options.ascending ?? limit === 0\n const from = serializeDate(options.from)\n const to = serializeDate(options.to)\n return {\n limit, ascending, from, to,\n }\n}\n\nconst queryQuantitySamples: QueryQuantitySamplesFn = async (\n identifier,\n options,\n) => {\n const unit = await ensureUnit(identifier, options.unit)\n const opts = prepareOptions(options)\n\n const quantitySamples = await Native.queryQuantitySamples(\n identifier,\n unit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending,\n )\n\n return quantitySamples.map(deserializeSample)\n}\n\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly distanceUnit?: TDistance }) {\n let energyUnit = options?.energyUnit\n let distanceUnit = options?.distanceUnit\n if (!energyUnit || !distanceUnit) {\n const units = await Native.getPreferredUnits([\n HKQuantityTypeIdentifier.distanceWalkingRunning,\n HKQuantityTypeIdentifier.activeEnergyBurned,\n ])\n if (!energyUnit) {\n energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning] as\n | TEnergy\n | undefined\n }\n if (!distanceUnit) {\n distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned] as\n | TDistance\n | undefined\n }\n }\n if (!energyUnit) {\n energyUnit = HKUnit.Kilocalories as TEnergy\n }\n if (!distanceUnit) {\n distanceUnit = HKUnit.Meters as TDistance\n }\n return { energyUnit, distanceUnit }\n}\n\nconst subscribeToChanges: SubscribeToChangesFn = async (\n identifier,\n callback,\n) => {\n const subscription = EventEmitter.addListener(\n 'onChange',\n ({ typeIdentifier }) => {\n if (typeIdentifier === identifier) {\n callback()\n }\n },\n )\n\n const queryId = await Native.subscribeToObserverQuery(identifier).catch(\n async (error) => {\n subscription.remove()\n return Promise.reject(error)\n },\n )\n\n return async () => {\n subscription.remove()\n return Native.unsubscribeQuery(queryId)\n }\n}\n\nconst getMostRecentQuantitySample: GetMostRecentQuantitySampleFn = async (\n identifier,\n unit,\n) => {\n const samples = await queryQuantitySamples(identifier, {\n limit: 1,\n unit,\n })\n return samples[0]\n}\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(\n null,\n )\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n options,\n )\n\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n async () => {\n const w = await getMostRecentWorkout({ energyUnit, distanceUnit })\n setWorkout(w)\n },\n )\n }\n void init()\n return () => {\n void cancelSubscription?.()\n }\n }, [options])\n return workout\n}\n\nconst getMostRecentCategorySample: GetMostRecentCategorySampleFn = async (\n identifier,\n) => {\n const samples = await queryCategorySamples(identifier, {\n limit: 1,\n ascending: false,\n })\n\n return samples[0]\n}\n\nfunction useSubscribeToChanges<TIdentifier extends HKSampleTypeIdentifier>(\n identifier: TIdentifier,\n onChange: () => void,\n): void {\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(identifier, onChange)\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, onChange])\n}\n\nfunction useMostRecentCategorySample<\n TCategory extends HKCategoryTypeIdentifier\n>(identifier: TCategory) {\n const [category, setCategory] = useState<HKCategorySample<TCategory> | null>(\n null,\n )\n const updater = useCallback(() => {\n void getMostRecentCategorySample(identifier).then(setCategory)\n }, [identifier])\n\n useSubscribeToChanges(identifier, updater)\n\n return category\n}\n\nfunction useMostRecentQuantitySample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit = HKUnit\n>(identifier: TIdentifier, unit?: TUnit) {\n const [lastSample, setLastSample] = useState<HKQuantitySample<\n TIdentifier,\n TUnit\n > | null>(null)\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n const actualUnit = await ensureUnit(identifier, unit)\n\n cancelSubscription = await subscribeToChanges(identifier, async () => {\n const value = await getMostRecentQuantitySample(identifier, actualUnit)\n setLastSample(value)\n })\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, unit])\n\n return lastSample\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = async (\n identifier,\n unit,\n value,\n options,\n) => {\n const start = options?.start || options?.end || new Date()\n const end = options?.end || options?.start || new Date()\n const metadata = options?.metadata || {}\n\n return Native.saveQuantitySample(\n identifier,\n unit,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata,\n )\n}\n\nconst queryStatisticsForQuantity: QueryStatisticsForQuantityFn = async (\n identifier,\n options,\n from,\n to,\n unit,\n) => {\n const actualUnit = await ensureUnit(identifier, unit)\n const toDate = to || new Date()\n const { mostRecentQuantityDateInterval, ...rawResponse } = await Native.queryStatisticsForQuantity(\n identifier,\n actualUnit,\n from.toISOString(),\n toDate.toISOString(),\n options,\n )\n\n const response = {\n ...rawResponse,\n ...(mostRecentQuantityDateInterval\n ? {\n mostRecentQuantityDateInterval: {\n from: new Date(mostRecentQuantityDateInterval.from),\n to: new Date(mostRecentQuantityDateInterval.to),\n },\n }\n : {}),\n }\n\n return response\n}\n\nconst requestAuthorization = async (\n read: readonly (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: readonly HKSampleTypeIdentifier[] = [],\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\n\n return Native.requestAuthorization(writePermissions, readPermissions)\n}\n\nconst getDateOfBirth = async () => {\n const dateOfBirth = await Native.getDateOfBirth()\n return new Date(dateOfBirth)\n}\n\nconst getRequestStatusForAuthorization = async (\n read: readonly (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: readonly HKSampleTypeIdentifier[] = [],\n) => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\n\n return Native.getRequestStatusForAuthorization(\n writePermissions,\n readPermissions,\n )\n}\n\nconst queryCategorySamples: QueryCategorySamplesFn = async (\n identifier,\n options,\n) => {\n const opts = prepareOptions(options)\n const results = await Native.queryCategorySamples(\n identifier,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending,\n )\n\n return results.map(deserializCategorySample)\n}\n\nconst queryWorkouts: QueryWorkoutsFn = async (options) => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(options)\n const opts = prepareOptions(options)\n\n const workouts = await Native.queryWorkoutSamples(\n energyUnit,\n distanceUnit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending,\n )\n\n return workouts.map(deserializeWorkout)\n}\n\nconst getMostRecentWorkout: GetMostRecentWorkoutFn = async (options) => {\n const workouts = await queryWorkouts({\n limit: 1,\n ascending: false,\n energyUnit: options?.energyUnit,\n distanceUnit: options?.distanceUnit,\n })\n\n return workouts[0]\n}\n\nasync function saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n readonly start?: Date;\n readonly end?: Date;\n readonly metadata?: MetadataMapperForCategoryIdentifier<T>;\n },\n) {\n const start = options?.start || options?.end || new Date()\n const end = options?.end || options?.start || new Date()\n const metadata = options?.metadata || {}\n\n return Native.saveCategorySample(\n identifier,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata || {},\n )\n}\n\nconst getPreferredUnits: GetPreferredUnitsFn = async (identifiers) => {\n const units = await Native.getPreferredUnits(identifiers)\n return identifiers.map((i) => units[i])\n}\n\nconst buildUnitWithPrefix = (prefix: HKUnitSIPrefix, unit: HKUnitSI) => `${prefix}${unit}` as HKUnit\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (o.quantity !== undefined) {\n return deserializeSample(o as HKQuantitySampleRaw)\n }\n\n return deserializCategorySample(o as HKCategorySampleRaw)\n }),\n endDate: new Date(s.endDate),\n startDate: new Date(s.startDate),\n }\n}\n\nfunction ensureMetadata<TMetadata>(metadata?: TMetadata) {\n return metadata || ({} as TMetadata)\n}\n\nconst queryCorrelationSamples: QueryCorrelationSamplesFn = async (\n typeIdentifier,\n options,\n) => {\n const opts = prepareOptions(options)\n const correlations = await Native.queryCorrelationSamples(\n typeIdentifier,\n opts.from,\n opts.to,\n )\n\n return correlations.map(deserializeCorrelation)\n}\n\nconst saveCorrelationSample: SaveCorrelationSampleFn = async (\n typeIdentifier,\n samples,\n options,\n) => {\n const start = (options?.start || new Date()).toISOString()\n const end = (options?.end || new Date()).toISOString()\n\n return Native.saveCorrelationSample(\n typeIdentifier,\n samples,\n start,\n end,\n ensureMetadata(options?.metadata),\n )\n}\n\nconst saveWorkoutSample: SaveWorkoutSampleFn = async (\n typeIdentifier,\n quantities,\n _start,\n options,\n) => {\n const start = _start.toISOString()\n const end = (options?.end || new Date()).toISOString()\n\n return Native.saveWorkoutSample(\n typeIdentifier,\n quantities,\n start,\n end,\n ensureMetadata(options?.metadata),\n )\n}\n\nconst getWorkoutRoutes: GetWorkoutRoutesFn = async (workoutUUID: string) => Native.getWorkoutRoutes(workoutUUID)\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor.bind(Native),\n\n isHealthDataAvailable: Native.isHealthDataAvailable.bind(Native),\n\n buildUnitWithPrefix,\n\n disableAllBackgroundDelivery: Native.disableAllBackgroundDelivery,\n disableBackgroundDelivery: Native.disableBackgroundDelivery,\n enableBackgroundDelivery: Native.enableBackgroundDelivery,\n\n // simple convenience getters\n getBiologicalSex: Native.getBiologicalSex.bind(Native),\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType.bind(Native),\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType.bind(Native),\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n getWorkoutRoutes,\n\n // query methods\n queryCategorySamples,\n queryCorrelationSamples,\n queryQuantitySamples,\n queryStatisticsForQuantity,\n queryWorkouts,\n\n requestAuthorization,\n\n // save methods\n saveCategorySample,\n saveCorrelationSample,\n saveQuantitySample,\n saveWorkoutSample,\n\n // subscriptions\n subscribeToChanges,\n\n // hooks\n useMostRecentCategorySample,\n\n useMostRecentQuantitySample,\n useMostRecentWorkout,\n\n useSubscribeToChanges,\n}\n\nexport * from './native-types'\nexport * from './types'\n\nexport default Healthkit\n"],"mappings":";;;;;;;;AAAA;;AAEA;;AAokBA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;;;;;AAvhBA,MAAMA,gBAAoC,GAAG,MAAOC,IAAP,IAAgB;EAC3D,MAAM,CAACC,IAAD,IAAS,MAAMC,iBAAiB,CAAC,CAACF,IAAD,CAAD,CAAtC;EACA,OAAOC,IAAP;AACD,CAHD;;AAKA,MAAME,UAAU,GAAG,OACjBH,IADiB,EAEjBI,YAFiB,KAGd;EACH,IAAIA,YAAJ,EAAkB;IAChB,OAAOA,YAAP;EACD;;EACD,MAAMH,IAAI,GAAG,MAAMI,oBAAA,CAAOH,iBAAP,CAAyB,CAACF,IAAD,CAAzB,CAAnB;EACA,OAAOC,IAAI,CAACD,IAAD,CAAX;AACD,CATD;;AAWA,SAASM,iBAAT,CAIEC,MAJF,EAKwC;EACtC,OAAO,EACL,GAAGA,MADE;IAELC,SAAS,EAAE,IAAIC,IAAJ,CAASF,MAAM,CAACC,SAAhB,CAFN;IAGLE,OAAO,EAAE,IAAID,IAAJ,CAASF,MAAM,CAACG,OAAhB;EAHJ,CAAP;AAKD;;AAED,SAASC,kBAAT,CACEJ,MADF,EAEiC;EAC/B,OAAO,EACL,GAAGA,MADE;IAELC,SAAS,EAAE,IAAIC,IAAJ,CAASF,MAAM,CAACC,SAAhB,CAFN;IAGLE,OAAO,EAAE,IAAID,IAAJ,CAASF,MAAM,CAACG,OAAhB;EAHJ,CAAP;AAKD;;AAED,MAAME,wBAAwB,GAC5BL,MAD+B,KAEN,EACzB,GAAGA,MADsB;EAEzBC,SAAS,EAAE,IAAIC,IAAJ,CAASF,MAAM,CAACC,SAAhB,CAFc;EAGzBE,OAAO,EAAE,IAAID,IAAJ,CAASF,MAAM,CAACG,OAAhB;AAHgB,CAFM,CAAjC;;AAQA,MAAMG,aAAa,GAAIC,IAAD,IAAiCA,IAAI,GAAGA,IAAI,CAACC,WAAL,EAAH,GAAwB,IAAIN,IAAJ,CAAS,CAAT,EAAYM,WAAZ,EAAnF;;AAEA,MAAMC,cAAc,GAAIC,OAAD,IAAkC;EACvD,MAAMC,KAAK,GAAG,CAACD,OAAO,CAACC,KAAT,IAAkBD,OAAO,CAACC,KAAR,KAAkBC,QAApC,GAA+C,CAA/C,GAAmDF,OAAO,CAACC,KAAzE;EACA,MAAME,SAAS,GAAGH,OAAO,CAACG,SAAR,IAAqBF,KAAK,KAAK,CAAjD;EACA,MAAMG,IAAI,GAAGR,aAAa,CAACI,OAAO,CAACI,IAAT,CAA1B;EACA,MAAMC,EAAE,GAAGT,aAAa,CAACI,OAAO,CAACK,EAAT,CAAxB;EACA,OAAO;IACLJ,KADK;IACEE,SADF;IACaC,IADb;IACmBC;EADnB,CAAP;AAGD,CARD;;AAUA,MAAMC,oBAA4C,GAAG,OACnDC,UADmD,EAEnDP,OAFmD,KAGhD;EACH,MAAMhB,IAAI,GAAG,MAAME,UAAU,CAACqB,UAAD,EAAaP,OAAO,CAAChB,IAArB,CAA7B;EACA,MAAMwB,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;EAEA,MAAMS,eAAe,GAAG,MAAMrB,oBAAA,CAAOkB,oBAAP,CAC5BC,UAD4B,EAE5BvB,IAF4B,EAG5BwB,IAAI,CAACJ,IAHuB,EAI5BI,IAAI,CAACH,EAJuB,EAK5BG,IAAI,CAACP,KALuB,EAM5BO,IAAI,CAACL,SANuB,CAA9B;EASA,OAAOM,eAAe,CAACC,GAAhB,CAAoBrB,iBAApB,CAAP;AACD,CAjBD;;AAmBA,eAAesB,sBAAf,CAGEX,OAHF,EAGkF;EAChF,IAAIY,UAAU,GAAGZ,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEY,UAA1B;EACA,IAAIC,YAAY,GAAGb,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEa,YAA5B;;EACA,IAAI,CAACD,UAAD,IAAe,CAACC,YAApB,EAAkC;IAChC,MAAMC,KAAK,GAAG,MAAM1B,oBAAA,CAAOH,iBAAP,CAAyB,CAC3C8B,qCAAA,CAAyBC,sBADkB,EAE3CD,qCAAA,CAAyBE,kBAFkB,CAAzB,CAApB;;IAIA,IAAI,CAACL,UAAL,EAAiB;MACfA,UAAU,GAAGE,KAAK,CAACC,qCAAA,CAAyBC,sBAA1B,CAAlB;IAGD;;IACD,IAAI,CAACH,YAAL,EAAmB;MACjBA,YAAY,GAAGC,KAAK,CAACC,qCAAA,CAAyBE,kBAA1B,CAApB;IAGD;EACF;;EACD,IAAI,CAACL,UAAL,EAAiB;IACfA,UAAU,GAAGM,mBAAA,CAAOC,YAApB;EACD;;EACD,IAAI,CAACN,YAAL,EAAmB;IACjBA,YAAY,GAAGK,mBAAA,CAAOE,MAAtB;EACD;;EACD,OAAO;IAAER,UAAF;IAAcC;EAAd,CAAP;AACD;;AAED,MAAMQ,kBAAwC,GAAG,OAC/Cd,UAD+C,EAE/Ce,QAF+C,KAG5C;EACH,MAAMC,YAAY,GAAGC,yBAAA,CAAaC,WAAb,CACnB,UADmB,EAEnB,QAAwB;IAAA,IAAvB;MAAEC;IAAF,CAAuB;;IACtB,IAAIA,cAAc,KAAKnB,UAAvB,EAAmC;MACjCe,QAAQ;IACT;EACF,CANkB,CAArB;;EASA,MAAMK,OAAO,GAAG,MAAMvC,oBAAA,CAAOwC,wBAAP,CAAgCrB,UAAhC,EAA4CsB,KAA5C,CACpB,MAAOC,KAAP,IAAiB;IACfP,YAAY,CAACQ,MAAb;IACA,OAAOC,OAAO,CAACC,MAAR,CAAeH,KAAf,CAAP;EACD,CAJmB,CAAtB;EAOA,OAAO,YAAY;IACjBP,YAAY,CAACQ,MAAb;IACA,OAAO3C,oBAAA,CAAO8C,gBAAP,CAAwBP,OAAxB,CAAP;EACD,CAHD;AAID,CAxBD;;AA0BA,MAAMQ,2BAA0D,GAAG,OACjE5B,UADiE,EAEjEvB,IAFiE,KAG9D;EACH,MAAMoD,OAAO,GAAG,MAAM9B,oBAAoB,CAACC,UAAD,EAAa;IACrDN,KAAK,EAAE,CAD8C;IAErDjB;EAFqD,CAAb,CAA1C;EAIA,OAAOoD,OAAO,CAAC,CAAD,CAAd;AACD,CATD;;AAWA,SAASC,oBAAT,CAGErC,OAHF,EAGkF;EAChF,MAAM,CAACsC,OAAD,EAAUC,UAAV,IAAwB,IAAAC,eAAA,EAC5B,IAD4B,CAA9B;EAGA,IAAAC,gBAAA,EAAU,MAAM;IACd,IAAIC,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvB,MAAM;QAAE/B,UAAF;QAAcC;MAAd,IAA+B,MAAMF,sBAAsB,CAC/DX,OAD+D,CAAjE;MAIA0C,kBAAkB,GAAG,MAAMrB,kBAAkB,CAC3C,yBAD2C,EAE3C,YAAY;QACV,MAAMuB,CAAC,GAAG,MAAMC,oBAAoB,CAAC;UAAEjC,UAAF;UAAcC;QAAd,CAAD,CAApC;QACA0B,UAAU,CAACK,CAAD,CAAV;MACD,CAL0C,CAA7C;IAOD,CAZD;;IAaA,KAAKD,IAAI,EAAT;IACA,OAAO,MAAM;MAAA;;MACX,6BAAKD,kBAAL,wDAAK,qBAAL;IACD,CAFD;EAGD,CApBD,EAoBG,CAAC1C,OAAD,CApBH;EAqBA,OAAOsC,OAAP;AACD;;AAED,MAAMQ,2BAA0D,GAAG,MACjEvC,UADiE,IAE9D;EACH,MAAM6B,OAAO,GAAG,MAAMW,oBAAoB,CAACxC,UAAD,EAAa;IACrDN,KAAK,EAAE,CAD8C;IAErDE,SAAS,EAAE;EAF0C,CAAb,CAA1C;EAKA,OAAOiC,OAAO,CAAC,CAAD,CAAd;AACD,CATD;;AAWA,SAASY,qBAAT,CACEzC,UADF,EAEE0C,QAFF,EAGQ;EACN,IAAAR,gBAAA,EAAU,MAAM;IACd,IAAIC,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvBD,kBAAkB,GAAG,MAAMrB,kBAAkB,CAACd,UAAD,EAAa0C,QAAb,CAA7C;IACD,CAFD;;IAGA,KAAKN,IAAI,EAAT;IAEA,OAAO,MAAM;MAAA;;MACX,8BAAKD,kBAAL,yDAAK,sBAAL;IACD,CAFD;EAGD,CAXD,EAWG,CAACnC,UAAD,EAAa0C,QAAb,CAXH;AAYD;;AAED,SAASC,2BAAT,CAEE3C,UAFF,EAEyB;EACvB,MAAM,CAAC4C,QAAD,EAAWC,WAAX,IAA0B,IAAAZ,eAAA,EAC9B,IAD8B,CAAhC;EAGA,MAAMa,OAAO,GAAG,IAAAC,kBAAA,EAAY,MAAM;IAChC,KAAKR,2BAA2B,CAACvC,UAAD,CAA3B,CAAwCgD,IAAxC,CAA6CH,WAA7C,CAAL;EACD,CAFe,EAEb,CAAC7C,UAAD,CAFa,CAAhB;EAIAyC,qBAAqB,CAACzC,UAAD,EAAa8C,OAAb,CAArB;EAEA,OAAOF,QAAP;AACD;;AAED,SAASK,2BAAT,CAGEjD,UAHF,EAG2BvB,IAH3B,EAGyC;EACvC,MAAM,CAACyE,UAAD,EAAaC,aAAb,IAA8B,IAAAlB,eAAA,EAG1B,IAH0B,CAApC;EAKA,IAAAC,gBAAA,EAAU,MAAM;IACd,IAAIC,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvB,MAAMgB,UAAU,GAAG,MAAMzE,UAAU,CAACqB,UAAD,EAAavB,IAAb,CAAnC;MAEA0D,kBAAkB,GAAG,MAAMrB,kBAAkB,CAACd,UAAD,EAAa,YAAY;QACpE,MAAMqD,KAAK,GAAG,MAAMzB,2BAA2B,CAAC5B,UAAD,EAAaoD,UAAb,CAA/C;QACAD,aAAa,CAACE,KAAD,CAAb;MACD,CAH4C,CAA7C;IAID,CAPD;;IAQA,KAAKjB,IAAI,EAAT;IAEA,OAAO,MAAM;MAAA;;MACX,8BAAKD,kBAAL,yDAAK,sBAAL;IACD,CAFD;EAGD,CAhBD,EAgBG,CAACnC,UAAD,EAAavB,IAAb,CAhBH;EAkBA,OAAOyE,UAAP;AACD;;AAED,MAAMI,kBAAwC,GAAG,OAC/CtD,UAD+C,EAE/CvB,IAF+C,EAG/C4E,KAH+C,EAI/C5D,OAJ+C,KAK5C;EACH,MAAM8D,KAAK,GAAG,CAAA9D,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE8D,KAAT,MAAkB9D,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAE+D,GAA3B,KAAkC,IAAIvE,IAAJ,EAAhD;EACA,MAAMuE,GAAG,GAAG,CAAA/D,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE+D,GAAT,MAAgB/D,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAE8D,KAAzB,KAAkC,IAAItE,IAAJ,EAA9C;EACA,MAAMwE,QAAQ,GAAG,CAAAhE,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEgE,QAAT,KAAqB,EAAtC;EAEA,OAAO5E,oBAAA,CAAOyE,kBAAP,CACLtD,UADK,EAELvB,IAFK,EAGL4E,KAHK,EAILE,KAAK,CAAChE,WAAN,EAJK,EAKLiE,GAAG,CAACjE,WAAJ,EALK,EAMLkE,QANK,CAAP;AAQD,CAlBD;;AAoBA,MAAMC,0BAAwD,GAAG,OAC/D1D,UAD+D,EAE/DP,OAF+D,EAG/DI,IAH+D,EAI/DC,EAJ+D,EAK/DrB,IAL+D,KAM5D;EACH,MAAM2E,UAAU,GAAG,MAAMzE,UAAU,CAACqB,UAAD,EAAavB,IAAb,CAAnC;EACA,MAAMkF,MAAM,GAAG7D,EAAE,IAAI,IAAIb,IAAJ,EAArB;EACA,MAAM;IAAE2E,8BAAF;IAAkC,GAAGC;EAArC,IAAqD,MAAMhF,oBAAA,CAAO6E,0BAAP,CAC/D1D,UAD+D,EAE/DoD,UAF+D,EAG/DvD,IAAI,CAACN,WAAL,EAH+D,EAI/DoE,MAAM,CAACpE,WAAP,EAJ+D,EAK/DE,OAL+D,CAAjE;EAQA,MAAMqE,QAAQ,GAAG,EACf,GAAGD,WADY;IAEf,IAAID,8BAA8B,GAC9B;MACAA,8BAA8B,EAAE;QAC9B/D,IAAI,EAAE,IAAIZ,IAAJ,CAAS2E,8BAA8B,CAAC/D,IAAxC,CADwB;QAE9BC,EAAE,EAAE,IAAIb,IAAJ,CAAS2E,8BAA8B,CAAC9D,EAAxC;MAF0B;IADhC,CAD8B,GAO9B,EAPJ;EAFe,CAAjB;EAYA,OAAOgE,QAAP;AACD,CA9BD;;AAgCA,MAAMC,oBAAoB,GAAG,gBAC3BC,IAD2B,EAGN;EAAA,IADrBC,KACqB,uEADsB,EACtB;EACrB,MAAMC,eAAe,GAAGF,IAAI,CAACG,MAAL,CAAY,CAACC,GAAD,EAAMC,GAAN,MAAe,EAAE,GAAGD,GAAL;IAAU,CAACC,GAAD,GAAO;EAAjB,CAAf,CAAZ,EAAqD,EAArD,CAAxB;EAEA,MAAMC,gBAAgB,GAAGL,KAAK,CAACE,MAAN,CAAa,CAACC,GAAD,EAAMC,GAAN,MAAe,EAAE,GAAGD,GAAL;IAAU,CAACC,GAAD,GAAO;EAAjB,CAAf,CAAb,EAAsD,EAAtD,CAAzB;EAEA,OAAOxF,oBAAA,CAAOkF,oBAAP,CAA4BO,gBAA5B,EAA8CJ,eAA9C,CAAP;AACD,CATD;;AAWA,MAAMK,cAAc,GAAG,YAAY;EACjC,MAAMC,WAAW,GAAG,MAAM3F,oBAAA,CAAO0F,cAAP,EAA1B;EACA,OAAO,IAAItF,IAAJ,CAASuF,WAAT,CAAP;AACD,CAHD;;AAKA,MAAMC,gCAAgC,GAAG,gBACvCT,IADuC,EAGpC;EAAA,IADHC,KACG,uEADwC,EACxC;EACH,MAAMC,eAAe,GAAGF,IAAI,CAACG,MAAL,CAAY,CAACC,GAAD,EAAMC,GAAN,MAAe,EAAE,GAAGD,GAAL;IAAU,CAACC,GAAD,GAAO;EAAjB,CAAf,CAAZ,EAAqD,EAArD,CAAxB;EAEA,MAAMC,gBAAgB,GAAGL,KAAK,CAACE,MAAN,CAAa,CAACC,GAAD,EAAMC,GAAN,MAAe,EAAE,GAAGD,GAAL;IAAU,CAACC,GAAD,GAAO;EAAjB,CAAf,CAAb,EAAsD,EAAtD,CAAzB;EAEA,OAAOxF,oBAAA,CAAO4F,gCAAP,CACLH,gBADK,EAELJ,eAFK,CAAP;AAID,CAZD;;AAcA,MAAM1B,oBAA4C,GAAG,OACnDxC,UADmD,EAEnDP,OAFmD,KAGhD;EACH,MAAMQ,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;EACA,MAAMiF,OAAO,GAAG,MAAM7F,oBAAA,CAAO2D,oBAAP,CACpBxC,UADoB,EAEpBC,IAAI,CAACJ,IAFe,EAGpBI,IAAI,CAACH,EAHe,EAIpBG,IAAI,CAACP,KAJe,EAKpBO,IAAI,CAACL,SALe,CAAtB;EAQA,OAAO8E,OAAO,CAACvE,GAAR,CAAYf,wBAAZ,CAAP;AACD,CAdD;;AAgBA,MAAMuF,aAA8B,GAAG,MAAOlF,OAAP,IAAmB;EACxD,MAAM;IAAEY,UAAF;IAAcC;EAAd,IAA+B,MAAMF,sBAAsB,CAACX,OAAD,CAAjE;EACA,MAAMQ,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;EAEA,MAAMmF,QAAQ,GAAG,MAAM/F,oBAAA,CAAOgG,mBAAP,CACrBxE,UADqB,EAErBC,YAFqB,EAGrBL,IAAI,CAACJ,IAHgB,EAIrBI,IAAI,CAACH,EAJgB,EAKrBG,IAAI,CAACP,KALgB,EAMrBO,IAAI,CAACL,SANgB,CAAvB;EASA,OAAOgF,QAAQ,CAACzE,GAAT,CAAahB,kBAAb,CAAP;AACD,CAdD;;AAgBA,MAAMmD,oBAA4C,GAAG,MAAO7C,OAAP,IAAmB;EACtE,MAAMmF,QAAQ,GAAG,MAAMD,aAAa,CAAC;IACnCjF,KAAK,EAAE,CAD4B;IAEnCE,SAAS,EAAE,KAFwB;IAGnCS,UAAU,EAAEZ,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEY,UAHc;IAInCC,YAAY,EAAEb,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEa;EAJY,CAAD,CAApC;EAOA,OAAOsE,QAAQ,CAAC,CAAD,CAAf;AACD,CATD;;AAWA,eAAeE,kBAAf,CACE9E,UADF,EAEEqD,KAFF,EAGE5D,OAHF,EAQE;EACA,MAAM8D,KAAK,GAAG,CAAA9D,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE8D,KAAT,MAAkB9D,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAE+D,GAA3B,KAAkC,IAAIvE,IAAJ,EAAhD;EACA,MAAMuE,GAAG,GAAG,CAAA/D,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE+D,GAAT,MAAgB/D,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAE8D,KAAzB,KAAkC,IAAItE,IAAJ,EAA9C;EACA,MAAMwE,QAAQ,GAAG,CAAAhE,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEgE,QAAT,KAAqB,EAAtC;EAEA,OAAO5E,oBAAA,CAAOiG,kBAAP,CACL9E,UADK,EAELqD,KAFK,EAGLE,KAAK,CAAChE,WAAN,EAHK,EAILiE,GAAG,CAACjE,WAAJ,EAJK,EAKLkE,QAAQ,IAAI,EALP,CAAP;AAOD;;AAED,MAAM/E,iBAAsC,GAAG,MAAOqG,WAAP,IAAuB;EACpE,MAAMxE,KAAK,GAAG,MAAM1B,oBAAA,CAAOH,iBAAP,CAAyBqG,WAAzB,CAApB;EACA,OAAOA,WAAW,CAAC5E,GAAZ,CAAiB6E,CAAD,IAAOzE,KAAK,CAACyE,CAAD,CAA5B,CAAP;AACD,CAHD;;AAKA,MAAMC,mBAAmB,GAAG,CAACC,MAAD,EAAyBzG,IAAzB,KAA6C,GAAEyG,MAAO,GAAEzG,IAAK,EAAzF;;AAEA,SAAS0G,sBAAT,CAEEC,CAFF,EAEgE;EAC9D,OAAO,EACL,GAAGA,CADE;IAELC,OAAO,EAAED,CAAC,CAACC,OAAF,CAAUlF,GAAV,CAAemF,CAAD,IAAO;MAC5B;MACA;MACA,IAAIA,CAAC,CAACC,QAAF,KAAeC,SAAnB,EAA8B;QAC5B,OAAO1G,iBAAiB,CAACwG,CAAD,CAAxB;MACD;;MAED,OAAOlG,wBAAwB,CAACkG,CAAD,CAA/B;IACD,CARQ,CAFJ;IAWLpG,OAAO,EAAE,IAAID,IAAJ,CAASmG,CAAC,CAAClG,OAAX,CAXJ;IAYLF,SAAS,EAAE,IAAIC,IAAJ,CAASmG,CAAC,CAACpG,SAAX;EAZN,CAAP;AAcD;;AAED,SAASyG,cAAT,CAAmChC,QAAnC,EAAyD;EACvD,OAAOA,QAAQ,IAAK,EAApB;AACD;;AAED,MAAMiC,uBAAkD,GAAG,OACzDvE,cADyD,EAEzD1B,OAFyD,KAGtD;EACH,MAAMQ,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;EACA,MAAMkG,YAAY,GAAG,MAAM9G,oBAAA,CAAO6G,uBAAP,CACzBvE,cADyB,EAEzBlB,IAAI,CAACJ,IAFoB,EAGzBI,IAAI,CAACH,EAHoB,CAA3B;EAMA,OAAO6F,YAAY,CAACxF,GAAb,CAAiBgF,sBAAjB,CAAP;AACD,CAZD;;AAcA,MAAMS,qBAA8C,GAAG,OACrDzE,cADqD,EAErDU,OAFqD,EAGrDpC,OAHqD,KAIlD;EACH,MAAM8D,KAAK,GAAG,CAAC,CAAA9D,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE8D,KAAT,KAAkB,IAAItE,IAAJ,EAAnB,EAA+BM,WAA/B,EAAd;EACA,MAAMiE,GAAG,GAAG,CAAC,CAAA/D,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE+D,GAAT,KAAgB,IAAIvE,IAAJ,EAAjB,EAA6BM,WAA7B,EAAZ;EAEA,OAAOV,oBAAA,CAAO+G,qBAAP,CACLzE,cADK,EAELU,OAFK,EAGL0B,KAHK,EAILC,GAJK,EAKLiC,cAAc,CAAChG,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEgE,QAAV,CALT,CAAP;AAOD,CAfD;;AAiBA,MAAMoC,iBAAsC,GAAG,OAC7C1E,cAD6C,EAE7C2E,UAF6C,EAG7CC,MAH6C,EAI7CtG,OAJ6C,KAK1C;EACH,MAAM8D,KAAK,GAAGwC,MAAM,CAACxG,WAAP,EAAd;;EACA,MAAMiE,GAAG,GAAG,CAAC,CAAA/D,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE+D,GAAT,KAAgB,IAAIvE,IAAJ,EAAjB,EAA6BM,WAA7B,EAAZ;EAEA,OAAOV,oBAAA,CAAOgH,iBAAP,CACL1E,cADK,EAEL2E,UAFK,EAGLvC,KAHK,EAILC,GAJK,EAKLiC,cAAc,CAAChG,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEgE,QAAV,CALT,CAAP;AAOD,CAhBD;;AAkBA,MAAMuC,gBAAoC,GAAG,MAAOC,WAAP,IAA+BpH,oBAAA,CAAOmH,gBAAP,CAAwBC,WAAxB,CAA5E;;AAEA,MAAMC,SAA+B,GAAG;EACtCC,sBAAsB,EAAEtH,oBAAA,CAAOsH,sBAAP,CAA8BC,IAA9B,CAAmCvH,oBAAnC,CADc;EAGtCwH,qBAAqB,EAAExH,oBAAA,CAAOwH,qBAAP,CAA6BD,IAA7B,CAAkCvH,oBAAlC,CAHe;EAKtCoG,mBALsC;EAOtCqB,4BAA4B,EAAEzH,oBAAA,CAAOyH,4BAPC;EAQtCC,yBAAyB,EAAE1H,oBAAA,CAAO0H,yBARI;EAStCC,wBAAwB,EAAE3H,oBAAA,CAAO2H,wBATK;EAWtC;EACAC,gBAAgB,EAAE5H,oBAAA,CAAO4H,gBAAP,CAAwBL,IAAxB,CAA6BvH,oBAA7B,CAZoB;EAatC6H,sBAAsB,EAAE7H,oBAAA,CAAO6H,sBAAP,CAA8BN,IAA9B,CAAmCvH,oBAAnC,CAbc;EActC8H,gBAAgB,EAAE9H,oBAAA,CAAO8H,gBAda;EAetCC,YAAY,EAAE/H,oBAAA,CAAO+H,YAAP,CAAoBR,IAApB,CAAyBvH,oBAAzB,CAfwB;EAgBtC0F,cAhBsC;EAkBtC3C,2BAlBsC;EAmBtCW,2BAnBsC;EAoBtCD,oBApBsC;EAsBtC/D,gBAtBsC;EAuBtCG,iBAvBsC;EAwBtC+F,gCAxBsC;EA0BtCuB,gBA1BsC;EA4BtC;EACAxD,oBA7BsC;EA8BtCkD,uBA9BsC;EA+BtC3F,oBA/BsC;EAgCtC2D,0BAhCsC;EAiCtCiB,aAjCsC;EAmCtCZ,oBAnCsC;EAqCtC;EACAe,kBAtCsC;EAuCtCc,qBAvCsC;EAwCtCtC,kBAxCsC;EAyCtCuC,iBAzCsC;EA2CtC;EACA/E,kBA5CsC;EA8CtC;EACA6B,2BA/CsC;EAiDtCM,2BAjDsC;EAkDtCnB,oBAlDsC;EAoDtCW;AApDsC,CAAxC;eA0DeyD,S"}
@@ -35,7 +35,7 @@ Object.keys(_types).forEach(function (key) {
35
35
  }
36
36
  });
37
37
  });
38
- const notAvailableError = 'Platform "' + _reactNative.Platform.OS + '" not supported, use isHealthDataAvailable to check for availability before using it';
38
+ const notAvailableError = `Platform "${_reactNative.Platform.OS}" not supported, use isHealthDataAvailable to check for availability before using it`;
39
39
 
40
40
  const UnavailableFn = () => {
41
41
  throw new Error(notAvailableError);
@@ -59,7 +59,7 @@ const Healthkit = {
59
59
  getRequestStatusForAuthorization: UnavailableFn,
60
60
  getWheelchairUse: UnavailableFn,
61
61
  getWorkoutRoutes: UnavailableFn,
62
- isHealthDataAvailable: () => Promise.resolve(false),
62
+ isHealthDataAvailable: async () => Promise.resolve(false),
63
63
  queryCategorySamples: UnavailableFn,
64
64
  queryCorrelationSamples: UnavailableFn,
65
65
  queryQuantitySamples: UnavailableFn,
@@ -1 +1 @@
1
- {"version":3,"names":["notAvailableError","Platform","OS","UnavailableFn","Error","Healthkit","authorizationStatusFor","buildUnitWithPrefix","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getBloodType","getDateOfBirth","getFitzpatrickSkinType","getMostRecentCategorySample","getMostRecentQuantitySample","getMostRecentWorkout","getPreferredUnit","getPreferredUnits","getRequestStatusForAuthorization","getWheelchairUse","getWorkoutRoutes","isHealthDataAvailable","Promise","resolve","queryCategorySamples","queryCorrelationSamples","queryQuantitySamples","queryStatisticsForQuantity","queryWorkouts","requestAuthorization","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges"],"sources":["index.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport type { ReactNativeHealthkit } from './types';\n\nconst notAvailableError =\n 'Platform \"' +\n Platform.OS +\n '\" not supported, use isHealthDataAvailable to check for availability before using it';\n\nconst UnavailableFn = () => {\n throw new Error(notAvailableError);\n};\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: UnavailableFn,\n buildUnitWithPrefix: UnavailableFn,\n disableAllBackgroundDelivery: UnavailableFn,\n disableBackgroundDelivery: UnavailableFn,\n enableBackgroundDelivery: UnavailableFn,\n getBiologicalSex: UnavailableFn,\n getBloodType: UnavailableFn,\n getDateOfBirth: UnavailableFn,\n getFitzpatrickSkinType: UnavailableFn,\n getMostRecentCategorySample: UnavailableFn,\n getMostRecentQuantitySample: UnavailableFn,\n getMostRecentWorkout: UnavailableFn,\n getPreferredUnit: UnavailableFn,\n getPreferredUnits: UnavailableFn,\n getRequestStatusForAuthorization: UnavailableFn,\n getWheelchairUse: UnavailableFn,\n getWorkoutRoutes: UnavailableFn,\n isHealthDataAvailable: () => Promise.resolve(false),\n queryCategorySamples: UnavailableFn,\n queryCorrelationSamples: UnavailableFn,\n queryQuantitySamples: UnavailableFn,\n queryStatisticsForQuantity: UnavailableFn,\n queryWorkouts: UnavailableFn,\n requestAuthorization: UnavailableFn,\n saveCategorySample: UnavailableFn,\n saveCorrelationSample: UnavailableFn,\n saveQuantitySample: UnavailableFn,\n saveWorkoutSample: UnavailableFn,\n subscribeToChanges: UnavailableFn,\n useMostRecentCategorySample: UnavailableFn,\n useMostRecentQuantitySample: UnavailableFn,\n useMostRecentWorkout: UnavailableFn,\n useSubscribeToChanges: UnavailableFn,\n};\n\nexport * from './native-types';\nexport * from './types';\n\nexport default Healthkit;\n"],"mappings":";;;;;;;;AAAA;;AAgDA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AA9CA,MAAMA,iBAAiB,GACrB,eACAC,qBAAA,CAASC,EADT,GAEA,sFAHF;;AAKA,MAAMC,aAAa,GAAG,MAAM;EAC1B,MAAM,IAAIC,KAAJ,CAAUJ,iBAAV,CAAN;AACD,CAFD;;AAIA,MAAMK,SAA+B,GAAG;EACtCC,sBAAsB,EAAEH,aADc;EAEtCI,mBAAmB,EAAEJ,aAFiB;EAGtCK,4BAA4B,EAAEL,aAHQ;EAItCM,yBAAyB,EAAEN,aAJW;EAKtCO,wBAAwB,EAAEP,aALY;EAMtCQ,gBAAgB,EAAER,aANoB;EAOtCS,YAAY,EAAET,aAPwB;EAQtCU,cAAc,EAAEV,aARsB;EAStCW,sBAAsB,EAAEX,aATc;EAUtCY,2BAA2B,EAAEZ,aAVS;EAWtCa,2BAA2B,EAAEb,aAXS;EAYtCc,oBAAoB,EAAEd,aAZgB;EAatCe,gBAAgB,EAAEf,aAboB;EActCgB,iBAAiB,EAAEhB,aAdmB;EAetCiB,gCAAgC,EAAEjB,aAfI;EAgBtCkB,gBAAgB,EAAElB,aAhBoB;EAiBtCmB,gBAAgB,EAAEnB,aAjBoB;EAkBtCoB,qBAAqB,EAAE,MAAMC,OAAO,CAACC,OAAR,CAAgB,KAAhB,CAlBS;EAmBtCC,oBAAoB,EAAEvB,aAnBgB;EAoBtCwB,uBAAuB,EAAExB,aApBa;EAqBtCyB,oBAAoB,EAAEzB,aArBgB;EAsBtC0B,0BAA0B,EAAE1B,aAtBU;EAuBtC2B,aAAa,EAAE3B,aAvBuB;EAwBtC4B,oBAAoB,EAAE5B,aAxBgB;EAyBtC6B,kBAAkB,EAAE7B,aAzBkB;EA0BtC8B,qBAAqB,EAAE9B,aA1Be;EA2BtC+B,kBAAkB,EAAE/B,aA3BkB;EA4BtCgC,iBAAiB,EAAEhC,aA5BmB;EA6BtCiC,kBAAkB,EAAEjC,aA7BkB;EA8BtCkC,2BAA2B,EAAElC,aA9BS;EA+BtCmC,2BAA2B,EAAEnC,aA/BS;EAgCtCoC,oBAAoB,EAAEpC,aAhCgB;EAiCtCqC,qBAAqB,EAAErC;AAjCe,CAAxC;eAuCeE,S"}
1
+ {"version":3,"names":["notAvailableError","Platform","OS","UnavailableFn","Error","Healthkit","authorizationStatusFor","buildUnitWithPrefix","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getBloodType","getDateOfBirth","getFitzpatrickSkinType","getMostRecentCategorySample","getMostRecentQuantitySample","getMostRecentWorkout","getPreferredUnit","getPreferredUnits","getRequestStatusForAuthorization","getWheelchairUse","getWorkoutRoutes","isHealthDataAvailable","Promise","resolve","queryCategorySamples","queryCorrelationSamples","queryQuantitySamples","queryStatisticsForQuantity","queryWorkouts","requestAuthorization","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges"],"sources":["index.tsx"],"sourcesContent":["import { Platform } from 'react-native'\n\nimport type { ReactNativeHealthkit } from './types'\n\nconst notAvailableError = `Platform \"${\n Platform.OS\n}\" not supported, use isHealthDataAvailable to check for availability before using it`\n\nconst UnavailableFn = () => {\n throw new Error(notAvailableError)\n}\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: UnavailableFn,\n buildUnitWithPrefix: UnavailableFn,\n disableAllBackgroundDelivery: UnavailableFn,\n disableBackgroundDelivery: UnavailableFn,\n enableBackgroundDelivery: UnavailableFn,\n getBiologicalSex: UnavailableFn,\n getBloodType: UnavailableFn,\n getDateOfBirth: UnavailableFn,\n getFitzpatrickSkinType: UnavailableFn,\n getMostRecentCategorySample: UnavailableFn,\n getMostRecentQuantitySample: UnavailableFn,\n getMostRecentWorkout: UnavailableFn,\n getPreferredUnit: UnavailableFn,\n getPreferredUnits: UnavailableFn,\n getRequestStatusForAuthorization: UnavailableFn,\n getWheelchairUse: UnavailableFn,\n getWorkoutRoutes: UnavailableFn,\n isHealthDataAvailable: async () => Promise.resolve(false),\n queryCategorySamples: UnavailableFn,\n queryCorrelationSamples: UnavailableFn,\n queryQuantitySamples: UnavailableFn,\n queryStatisticsForQuantity: UnavailableFn,\n queryWorkouts: UnavailableFn,\n requestAuthorization: UnavailableFn,\n saveCategorySample: UnavailableFn,\n saveCorrelationSample: UnavailableFn,\n saveQuantitySample: UnavailableFn,\n saveWorkoutSample: UnavailableFn,\n subscribeToChanges: UnavailableFn,\n useMostRecentCategorySample: UnavailableFn,\n useMostRecentQuantitySample: UnavailableFn,\n useMostRecentWorkout: UnavailableFn,\n useSubscribeToChanges: UnavailableFn,\n}\n\nexport * from './native-types'\nexport * from './types'\n\nexport default Healthkit\n"],"mappings":";;;;;;;;AAAA;;AAgDA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AA7CA,MAAMA,iBAAiB,GAAI,aACzBC,qBAAA,CAASC,EACV,sFAFD;;AAIA,MAAMC,aAAa,GAAG,MAAM;EAC1B,MAAM,IAAIC,KAAJ,CAAUJ,iBAAV,CAAN;AACD,CAFD;;AAIA,MAAMK,SAA+B,GAAG;EACtCC,sBAAsB,EAAEH,aADc;EAEtCI,mBAAmB,EAAEJ,aAFiB;EAGtCK,4BAA4B,EAAEL,aAHQ;EAItCM,yBAAyB,EAAEN,aAJW;EAKtCO,wBAAwB,EAAEP,aALY;EAMtCQ,gBAAgB,EAAER,aANoB;EAOtCS,YAAY,EAAET,aAPwB;EAQtCU,cAAc,EAAEV,aARsB;EAStCW,sBAAsB,EAAEX,aATc;EAUtCY,2BAA2B,EAAEZ,aAVS;EAWtCa,2BAA2B,EAAEb,aAXS;EAYtCc,oBAAoB,EAAEd,aAZgB;EAatCe,gBAAgB,EAAEf,aAboB;EActCgB,iBAAiB,EAAEhB,aAdmB;EAetCiB,gCAAgC,EAAEjB,aAfI;EAgBtCkB,gBAAgB,EAAElB,aAhBoB;EAiBtCmB,gBAAgB,EAAEnB,aAjBoB;EAkBtCoB,qBAAqB,EAAE,YAAYC,OAAO,CAACC,OAAR,CAAgB,KAAhB,CAlBG;EAmBtCC,oBAAoB,EAAEvB,aAnBgB;EAoBtCwB,uBAAuB,EAAExB,aApBa;EAqBtCyB,oBAAoB,EAAEzB,aArBgB;EAsBtC0B,0BAA0B,EAAE1B,aAtBU;EAuBtC2B,aAAa,EAAE3B,aAvBuB;EAwBtC4B,oBAAoB,EAAE5B,aAxBgB;EAyBtC6B,kBAAkB,EAAE7B,aAzBkB;EA0BtC8B,qBAAqB,EAAE9B,aA1Be;EA2BtC+B,kBAAkB,EAAE/B,aA3BkB;EA4BtCgC,iBAAiB,EAAEhC,aA5BmB;EA6BtCiC,kBAAkB,EAAEjC,aA7BkB;EA8BtCkC,2BAA2B,EAAElC,aA9BS;EA+BtCmC,2BAA2B,EAAEnC,aA/BS;EAgCtCoC,oBAAoB,EAAEpC,aAhCgB;EAiCtCqC,qBAAqB,EAAErC;AAjCe,CAAxC;eAuCeE,S"}
@@ -3,10 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.HKWorkoutActivityType = exports.HKWheelchairUse = exports.HKWeatherCondition = exports.HKUpdateFrequency = exports.HKUnitSIPrefix = exports.HKUnitSI = exports.HKUnit = exports.HKStatisticsOptions = exports.HKQuantityTypeIdentifier = exports.HKInsulinDeliveryReason = exports.HKHeartRateMotionContext = exports.HKFitzpatrickSkinType = exports.HKCorrelationTypeIdentifier = exports.HKCharacteristicTypeIdentifier = exports.HKCategoryValueSleepAnalysis = exports.HKCategoryValueSeverity = exports.HKCategoryValuePresence = exports.HKCategoryValueOvulationTestResult = exports.HKCategoryValueNotApplicable = exports.HKCategoryValueMenstrualFlow = exports.HKCategoryValueCervicalMucusQuality = exports.HKCategoryValueAppleStandHour = exports.HKCategoryValueAppetiteChanges = exports.HKCategoryTypeIdentifier = exports.HKBloodType = exports.HKBiologicalSex = exports.HKAuthorizationStatus = exports.HKAuthorizationRequestStatus = exports.EventEmitter = void 0;
6
+ exports.default = exports.HKWorkoutTypeIdentifier = exports.HKWorkoutRouteTypeIdentifier = exports.HKWorkoutActivityType = exports.HKWheelchairUse = exports.HKWeatherCondition = exports.HKUpdateFrequency = exports.HKUnitSIPrefix = exports.HKUnitSI = exports.HKUnit = exports.HKStatisticsOptions = exports.HKQuantityTypeIdentifier = exports.HKInsulinDeliveryReason = exports.HKHeartRateMotionContext = exports.HKFitzpatrickSkinType = exports.HKDataTypeIdentifierHeartbeatSeries = exports.HKCorrelationTypeIdentifier = exports.HKCharacteristicTypeIdentifier = exports.HKCategoryValueSleepAnalysis = exports.HKCategoryValueSeverity = exports.HKCategoryValuePresence = exports.HKCategoryValueOvulationTestResult = exports.HKCategoryValueNotApplicable = exports.HKCategoryValueMenstrualFlow = exports.HKCategoryValueCervicalMucusQuality = exports.HKCategoryValueAppleStandHour = exports.HKCategoryValueAppetiteChanges = exports.HKCategoryTypeIdentifier = exports.HKBloodType = exports.HKBiologicalSex = exports.HKAuthorizationStatus = exports.HKAuthorizationRequestStatus = exports.HKAudiogramTypeIdentifier = exports.EventEmitter = void 0;
7
7
 
8
8
  var _reactNative = require("react-native");
9
9
 
10
+ const HKWorkoutTypeIdentifier = 'HKWorkoutTypeIdentifier';
11
+ exports.HKWorkoutTypeIdentifier = HKWorkoutTypeIdentifier;
12
+ const HKAudiogramTypeIdentifier = 'HKAudiogramTypeIdentifier';
13
+ exports.HKAudiogramTypeIdentifier = HKAudiogramTypeIdentifier;
14
+ const HKWorkoutRouteTypeIdentifier = 'HKWorkoutRouteTypeIdentifier';
15
+ exports.HKWorkoutRouteTypeIdentifier = HKWorkoutRouteTypeIdentifier;
16
+ const HKDataTypeIdentifierHeartbeatSeries = 'HKDataTypeIdentifierHeartbeatSeries';
17
+ exports.HKDataTypeIdentifierHeartbeatSeries = HKDataTypeIdentifierHeartbeatSeries;
10
18
  let HKHeartRateMotionContext;
11
19
  exports.HKHeartRateMotionContext = HKHeartRateMotionContext;
12
20