@kingstinct/react-native-healthkit 4.1.1 → 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.
Files changed (41) hide show
  1. package/README.md +1 -1
  2. package/ios/ReactNativeHealthkit.m +15 -10
  3. package/ios/ReactNativeHealthkit.swift +365 -177
  4. package/lib/commonjs/index.ios.js +104 -106
  5. package/lib/commonjs/index.ios.js.map +1 -1
  6. package/lib/commonjs/index.js +11 -10
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/native-types.js +25 -1
  9. package/lib/commonjs/native-types.js.map +1 -1
  10. package/lib/commonjs/types.js +4 -0
  11. package/lib/commonjs/types.js.map +1 -1
  12. package/lib/example/App.js +197 -0
  13. package/lib/index.ios.js +310 -0
  14. package/lib/index.js +44 -0
  15. package/lib/module/index.ios.js +104 -106
  16. package/lib/module/index.ios.js.map +1 -1
  17. package/lib/module/index.js +4 -3
  18. package/lib/module/index.js.map +1 -1
  19. package/lib/module/native-types.js +20 -1
  20. package/lib/module/native-types.js.map +1 -1
  21. package/lib/module/types.js +1 -1
  22. package/lib/module/types.js.map +1 -1
  23. package/lib/native-types.js +447 -0
  24. package/lib/src/index.ios.js +314 -0
  25. package/lib/src/index.js +45 -0
  26. package/lib/src/native-types.js +453 -0
  27. package/lib/src/types.js +1 -0
  28. package/lib/types.js +1 -0
  29. package/lib/typescript/src/index.d.ts +1 -1
  30. package/lib/typescript/src/index.ios.d.ts +1 -1
  31. package/lib/typescript/src/native-types.d.ts +142 -108
  32. package/lib/typescript/src/types.d.ts +80 -78
  33. package/package.json +25 -39
  34. package/src/index.ios.tsx +260 -264
  35. package/src/index.tsx +14 -13
  36. package/src/native-types.ts +213 -179
  37. package/src/types.ts +106 -100
  38. package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
  39. package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  40. package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/xcuserdata/robertherber.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  41. package/ios/ReactNativeHealthkit.xcodeproj/xcuserdata/robertherber.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
@@ -1,4 +1,4 @@
1
- import { useState, useEffect, useCallback } from 'react';
1
+ import { useCallback, useEffect, useState } from 'react';
2
2
  import Native, { EventEmitter, HKQuantityTypeIdentifier, HKUnit } from './native-types';
3
3
 
4
4
  const getPreferredUnit = async type => {
@@ -29,22 +29,16 @@ function deserializeWorkout(sample) {
29
29
  };
30
30
  }
31
31
 
32
- const deserializCategorySample = sample => {
33
- return { ...sample,
34
- startDate: new Date(sample.startDate),
35
- endDate: new Date(sample.endDate)
36
- };
37
- };
32
+ const deserializCategorySample = sample => ({ ...sample,
33
+ startDate: new Date(sample.startDate),
34
+ endDate: new Date(sample.endDate)
35
+ });
38
36
 
39
- const serializeDate = date => {
40
- return date ? date.toISOString() : new Date(0).toISOString();
41
- };
37
+ const serializeDate = date => date ? date.toISOString() : new Date(0).toISOString();
42
38
 
43
39
  const prepareOptions = options => {
44
- var _options$ascending;
45
-
46
40
  const limit = !options.limit || options.limit === Infinity ? 0 : options.limit;
47
- const ascending = (_options$ascending = options.ascending) !== null && _options$ascending !== void 0 ? _options$ascending : limit === 0;
41
+ const ascending = options.ascending ?? limit === 0;
48
42
  const from = serializeDate(options.from);
49
43
  const to = serializeDate(options.to);
50
44
  return {
@@ -62,19 +56,51 @@ const queryQuantitySamples = async (identifier, options) => {
62
56
  return quantitySamples.map(deserializeSample);
63
57
  };
64
58
 
59
+ async function getPreferredUnitsTyped(options) {
60
+ let energyUnit = options === null || options === void 0 ? void 0 : options.energyUnit;
61
+ let distanceUnit = options === null || options === void 0 ? void 0 : options.distanceUnit;
62
+
63
+ if (!energyUnit || !distanceUnit) {
64
+ const units = await Native.getPreferredUnits([HKQuantityTypeIdentifier.distanceWalkingRunning, HKQuantityTypeIdentifier.activeEnergyBurned]);
65
+
66
+ if (!energyUnit) {
67
+ energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning];
68
+ }
69
+
70
+ if (!distanceUnit) {
71
+ distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned];
72
+ }
73
+ }
74
+
75
+ if (!energyUnit) {
76
+ energyUnit = HKUnit.Kilocalories;
77
+ }
78
+
79
+ if (!distanceUnit) {
80
+ distanceUnit = HKUnit.Meters;
81
+ }
82
+
83
+ return {
84
+ energyUnit,
85
+ distanceUnit
86
+ };
87
+ }
88
+
65
89
  const subscribeToChanges = async (identifier, callback) => {
66
- const subscription = EventEmitter.addListener('onChange', ({
67
- typeIdentifier
68
- }) => {
90
+ const subscription = EventEmitter.addListener('onChange', _ref => {
91
+ let {
92
+ typeIdentifier
93
+ } = _ref;
94
+
69
95
  if (typeIdentifier === identifier) {
70
96
  callback();
71
97
  }
72
98
  });
73
- const queryId = await Native.subscribeToObserverQuery(identifier).catch(error => {
99
+ const queryId = await Native.subscribeToObserverQuery(identifier).catch(async error => {
74
100
  subscription.remove();
75
101
  return Promise.reject(error);
76
102
  });
77
- return () => {
103
+ return async () => {
78
104
  subscription.remove();
79
105
  return Native.unsubscribeQuery(queryId);
80
106
  };
@@ -83,7 +109,7 @@ const subscribeToChanges = async (identifier, callback) => {
83
109
  const getMostRecentQuantitySample = async (identifier, unit) => {
84
110
  const samples = await queryQuantitySamples(identifier, {
85
111
  limit: 1,
86
- unit: unit
112
+ unit
87
113
  });
88
114
  return samples[0];
89
115
  };
@@ -98,23 +124,26 @@ function useMostRecentWorkout(options) {
98
124
  energyUnit,
99
125
  distanceUnit
100
126
  } = await getPreferredUnitsTyped(options);
101
- cancelSubscription = await subscribeToChanges('HKWorkoutTypeIdentifier', () => {
102
- getMostRecentWorkout({
127
+ cancelSubscription = await subscribeToChanges('HKWorkoutTypeIdentifier', async () => {
128
+ const w = await getMostRecentWorkout({
103
129
  energyUnit,
104
130
  distanceUnit
105
- }).then(setWorkout);
131
+ });
132
+ setWorkout(w);
106
133
  });
107
134
  };
108
135
 
109
- init();
136
+ void init();
110
137
  return () => {
111
- cancelSubscription && cancelSubscription();
138
+ var _cancelSubscription;
139
+
140
+ void ((_cancelSubscription = cancelSubscription) === null || _cancelSubscription === void 0 ? void 0 : _cancelSubscription());
112
141
  };
113
142
  }, [options]);
114
143
  return workout;
115
144
  }
116
145
 
117
- const getMostRecentCategorySample = async (identifier) => {
146
+ const getMostRecentCategorySample = async identifier => {
118
147
  const samples = await queryCategorySamples(identifier, {
119
148
  limit: 1,
120
149
  ascending: false
@@ -122,15 +151,6 @@ const getMostRecentCategorySample = async (identifier) => {
122
151
  return samples[0];
123
152
  };
124
153
 
125
- function useMostRecentCategorySample(identifier) {
126
- const [category, setCategory] = useState(null);
127
- const updater = useCallback(() => {
128
- getMostRecentCategorySample(identifier).then(setCategory);
129
- }, [identifier]);
130
- useSubscribeToChanges(identifier, updater);
131
- return category;
132
- }
133
-
134
154
  function useSubscribeToChanges(identifier, onChange) {
135
155
  useEffect(() => {
136
156
  let cancelSubscription;
@@ -139,13 +159,24 @@ function useSubscribeToChanges(identifier, onChange) {
139
159
  cancelSubscription = await subscribeToChanges(identifier, onChange);
140
160
  };
141
161
 
142
- init();
162
+ void init();
143
163
  return () => {
144
- cancelSubscription && cancelSubscription();
164
+ var _cancelSubscription2;
165
+
166
+ void ((_cancelSubscription2 = cancelSubscription) === null || _cancelSubscription2 === void 0 ? void 0 : _cancelSubscription2());
145
167
  };
146
168
  }, [identifier, onChange]);
147
169
  }
148
170
 
171
+ function useMostRecentCategorySample(identifier) {
172
+ const [category, setCategory] = useState(null);
173
+ const updater = useCallback(() => {
174
+ void getMostRecentCategorySample(identifier).then(setCategory);
175
+ }, [identifier]);
176
+ useSubscribeToChanges(identifier, updater);
177
+ return category;
178
+ }
179
+
149
180
  function useMostRecentQuantitySample(identifier, unit) {
150
181
  const [lastSample, setLastSample] = useState(null);
151
182
  useEffect(() => {
@@ -153,22 +184,23 @@ function useMostRecentQuantitySample(identifier, unit) {
153
184
 
154
185
  const init = async () => {
155
186
  const actualUnit = await ensureUnit(identifier, unit);
156
- cancelSubscription = await subscribeToChanges(identifier, () => {
157
- getMostRecentQuantitySample(identifier, actualUnit).then(value => {
158
- setLastSample(value);
159
- });
187
+ cancelSubscription = await subscribeToChanges(identifier, async () => {
188
+ const value = await getMostRecentQuantitySample(identifier, actualUnit);
189
+ setLastSample(value);
160
190
  });
161
191
  };
162
192
 
163
- init();
193
+ void init();
164
194
  return () => {
165
- cancelSubscription && cancelSubscription();
195
+ var _cancelSubscription3;
196
+
197
+ void ((_cancelSubscription3 = cancelSubscription) === null || _cancelSubscription3 === void 0 ? void 0 : _cancelSubscription3());
166
198
  };
167
199
  }, [identifier, unit]);
168
200
  return lastSample;
169
201
  }
170
202
 
171
- const saveQuantitySample = (identifier, unit, value, options) => {
203
+ const saveQuantitySample = async (identifier, unit, value, options) => {
172
204
  const start = (options === null || options === void 0 ? void 0 : options.start) || (options === null || options === void 0 ? void 0 : options.end) || new Date();
173
205
  const end = (options === null || options === void 0 ? void 0 : options.end) || (options === null || options === void 0 ? void 0 : options.start) || new Date();
174
206
  const metadata = (options === null || options === void 0 ? void 0 : options.metadata) || {};
@@ -193,17 +225,14 @@ const queryStatisticsForQuantity = async (identifier, options, from, to, unit) =
193
225
  return response;
194
226
  };
195
227
 
196
- const requestAuthorization = (read, write = []) => {
197
- const readPermissions = read.reduce((obj, cur) => {
198
- return { ...obj,
199
- [cur]: true
200
- };
201
- }, {});
202
- const writePermissions = write.reduce((obj, cur) => {
203
- return { ...obj,
204
- [cur]: true
205
- };
206
- }, {});
228
+ const requestAuthorization = async function (read) {
229
+ let write = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
230
+ const readPermissions = read.reduce((obj, cur) => ({ ...obj,
231
+ [cur]: true
232
+ }), {});
233
+ const writePermissions = write.reduce((obj, cur) => ({ ...obj,
234
+ [cur]: true
235
+ }), {});
207
236
  return Native.requestAuthorization(writePermissions, readPermissions);
208
237
  };
209
238
 
@@ -212,17 +241,14 @@ const getDateOfBirth = async () => {
212
241
  return new Date(dateOfBirth);
213
242
  };
214
243
 
215
- const getRequestStatusForAuthorization = (read, write = []) => {
216
- const readPermissions = read.reduce((obj, cur) => {
217
- return { ...obj,
218
- [cur]: true
219
- };
220
- }, {});
221
- const writePermissions = write.reduce((obj, cur) => {
222
- return { ...obj,
223
- [cur]: true
224
- };
225
- }, {});
244
+ const getRequestStatusForAuthorization = async function (read) {
245
+ let write = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
246
+ const readPermissions = read.reduce((obj, cur) => ({ ...obj,
247
+ [cur]: true
248
+ }), {});
249
+ const writePermissions = write.reduce((obj, cur) => ({ ...obj,
250
+ [cur]: true
251
+ }), {});
226
252
  return Native.getRequestStatusForAuthorization(writePermissions, readPermissions);
227
253
  };
228
254
 
@@ -232,36 +258,6 @@ const queryCategorySamples = async (identifier, options) => {
232
258
  return results.map(deserializCategorySample);
233
259
  };
234
260
 
235
- async function getPreferredUnitsTyped(options) {
236
- let energyUnit = options === null || options === void 0 ? void 0 : options.energyUnit;
237
- let distanceUnit = options === null || options === void 0 ? void 0 : options.distanceUnit;
238
-
239
- if (!energyUnit || !distanceUnit) {
240
- const units = await Native.getPreferredUnits([HKQuantityTypeIdentifier.distanceWalkingRunning, HKQuantityTypeIdentifier.activeEnergyBurned]);
241
-
242
- if (!energyUnit) {
243
- energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning];
244
- }
245
-
246
- if (!distanceUnit) {
247
- distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned];
248
- }
249
- }
250
-
251
- if (!energyUnit) {
252
- energyUnit = HKUnit.Kilocalories;
253
- }
254
-
255
- if (!distanceUnit) {
256
- distanceUnit = HKUnit.Meters;
257
- }
258
-
259
- return {
260
- energyUnit,
261
- distanceUnit
262
- };
263
- }
264
-
265
261
  const queryWorkouts = async options => {
266
262
  const {
267
263
  energyUnit,
@@ -282,7 +278,7 @@ const getMostRecentWorkout = async options => {
282
278
  return workouts[0];
283
279
  };
284
280
 
285
- function saveCategorySample(identifier, value, options) {
281
+ async function saveCategorySample(identifier, value, options) {
286
282
  const start = (options === null || options === void 0 ? void 0 : options.start) || (options === null || options === void 0 ? void 0 : options.end) || new Date();
287
283
  const end = (options === null || options === void 0 ? void 0 : options.end) || (options === null || options === void 0 ? void 0 : options.start) || new Date();
288
284
  const metadata = (options === null || options === void 0 ? void 0 : options.metadata) || {};
@@ -294,13 +290,12 @@ const getPreferredUnits = async identifiers => {
294
290
  return identifiers.map(i => units[i]);
295
291
  };
296
292
 
297
- const buildUnitWithPrefix = (prefix, unit) => {
298
- return `${prefix}${unit}`;
299
- };
293
+ const buildUnitWithPrefix = (prefix, unit) => `${prefix}${unit}`;
300
294
 
301
295
  function deserializeCorrelation(s) {
302
296
  return { ...s,
303
297
  objects: s.objects.map(o => {
298
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
304
299
  // @ts-ignore
305
300
  if (o.quantity !== undefined) {
306
301
  return deserializeSample(o);
@@ -329,25 +324,27 @@ const saveCorrelationSample = async (typeIdentifier, samples, options) => {
329
324
  return Native.saveCorrelationSample(typeIdentifier, samples, start, end, ensureMetadata(options === null || options === void 0 ? void 0 : options.metadata));
330
325
  };
331
326
 
332
- const saveWorkoutSample = (typeIdentifier, quantities, _start, options) => {
327
+ const saveWorkoutSample = async (typeIdentifier, quantities, _start, options) => {
333
328
  const start = _start.toISOString();
334
329
 
335
330
  const end = ((options === null || options === void 0 ? void 0 : options.end) || new Date()).toISOString();
336
331
  return Native.saveWorkoutSample(typeIdentifier, quantities, start, end, ensureMetadata(options === null || options === void 0 ? void 0 : options.metadata));
337
332
  };
338
333
 
334
+ const getWorkoutRoutes = async workoutUUID => Native.getWorkoutRoutes(workoutUUID);
335
+
339
336
  const Healthkit = {
340
- authorizationStatusFor: Native.authorizationStatusFor,
341
- isHealthDataAvailable: Native.isHealthDataAvailable,
337
+ authorizationStatusFor: Native.authorizationStatusFor.bind(Native),
338
+ isHealthDataAvailable: Native.isHealthDataAvailable.bind(Native),
342
339
  buildUnitWithPrefix,
343
340
  disableAllBackgroundDelivery: Native.disableAllBackgroundDelivery,
344
341
  disableBackgroundDelivery: Native.disableBackgroundDelivery,
345
342
  enableBackgroundDelivery: Native.enableBackgroundDelivery,
346
343
  // simple convenience getters
347
- getBiologicalSex: Native.getBiologicalSex,
348
- getFitzpatrickSkinType: Native.getFitzpatrickSkinType,
344
+ getBiologicalSex: Native.getBiologicalSex.bind(Native),
345
+ getFitzpatrickSkinType: Native.getFitzpatrickSkinType.bind(Native),
349
346
  getWheelchairUse: Native.getWheelchairUse,
350
- getBloodType: Native.getBloodType,
347
+ getBloodType: Native.getBloodType.bind(Native),
351
348
  getDateOfBirth,
352
349
  getMostRecentQuantitySample,
353
350
  getMostRecentCategorySample,
@@ -355,6 +352,7 @@ const Healthkit = {
355
352
  getPreferredUnit,
356
353
  getPreferredUnits,
357
354
  getRequestStatusForAuthorization,
355
+ getWorkoutRoutes,
358
356
  // query methods
359
357
  queryCategorySamples,
360
358
  queryCorrelationSamples,
@@ -375,7 +373,7 @@ const Healthkit = {
375
373
  useMostRecentWorkout,
376
374
  useSubscribeToChanges
377
375
  };
378
- export * from './types';
379
376
  export * from './native-types';
377
+ export * from './types';
380
378
  export default Healthkit;
381
379
  //# sourceMappingURL=index.ios.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ios.tsx"],"names":["useState","useEffect","useCallback","Native","EventEmitter","HKQuantityTypeIdentifier","HKUnit","getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","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","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","cancelSubscription","init","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","then","getMostRecentCategorySample","queryCategorySamples","useMostRecentCategorySample","category","setCategory","updater","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","distanceWalkingRunning","activeEnergyBurned","Kilocalories","Meters","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","Healthkit","authorizationStatusFor","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType"],"mappings":"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","sourcesContent":["import { useState, useEffect, useCallback } 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 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 {\n mostRecentQuantityDateInterval,\n ...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 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 // 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 './types';\nexport * from './native-types';\n\nexport default Healthkit;\n"]}
1
+ {"version":3,"names":["useCallback","useEffect","useState","Native","EventEmitter","HKQuantityTypeIdentifier","HKUnit","getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","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","distanceWalkingRunning","activeEnergyBurned","Kilocalories","Meters","subscribeToChanges","callback","subscription","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","cancelSubscription","init","w","getMostRecentWorkout","getMostRecentCategorySample","queryCategorySamples","useSubscribeToChanges","onChange","useMostRecentCategorySample","category","setCategory","updater","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,SAASA,WAAT,EAAsBC,SAAtB,EAAiCC,QAAjC,QAAiD,OAAjD;AAEA,OAAOC,MAAP,IACEC,YADF,EAEEC,wBAFF,EAGEC,MAHF,QAIO,gBAJP;;AA8CA,MAAMC,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,MAAMN,MAAM,CAACO,iBAAP,CAAyB,CAACF,IAAD,CAAzB,CAAnB;EACA,OAAOC,IAAI,CAACD,IAAD,CAAX;AACD,CATD;;AAWA,SAASK,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,MAAMf,IAAI,GAAG,MAAME,UAAU,CAACoB,UAAD,EAAaP,OAAO,CAACf,IAArB,CAA7B;EACA,MAAMuB,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;EAEA,MAAMS,eAAe,GAAG,MAAM9B,MAAM,CAAC2B,oBAAP,CAC5BC,UAD4B,EAE5BtB,IAF4B,EAG5BuB,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,MAAMnC,MAAM,CAACO,iBAAP,CAAyB,CAC3CL,wBAAwB,CAACkC,sBADkB,EAE3ClC,wBAAwB,CAACmC,kBAFkB,CAAzB,CAApB;;IAIA,IAAI,CAACJ,UAAL,EAAiB;MACfA,UAAU,GAAGE,KAAK,CAACjC,wBAAwB,CAACkC,sBAA1B,CAAlB;IAGD;;IACD,IAAI,CAACF,YAAL,EAAmB;MACjBA,YAAY,GAAGC,KAAK,CAACjC,wBAAwB,CAACmC,kBAA1B,CAApB;IAGD;EACF;;EACD,IAAI,CAACJ,UAAL,EAAiB;IACfA,UAAU,GAAG9B,MAAM,CAACmC,YAApB;EACD;;EACD,IAAI,CAACJ,YAAL,EAAmB;IACjBA,YAAY,GAAG/B,MAAM,CAACoC,MAAtB;EACD;;EACD,OAAO;IAAEN,UAAF;IAAcC;EAAd,CAAP;AACD;;AAED,MAAMM,kBAAwC,GAAG,OAC/CZ,UAD+C,EAE/Ca,QAF+C,KAG5C;EACH,MAAMC,YAAY,GAAGzC,YAAY,CAAC0C,WAAb,CACnB,UADmB,EAEnB,QAAwB;IAAA,IAAvB;MAAEC;IAAF,CAAuB;;IACtB,IAAIA,cAAc,KAAKhB,UAAvB,EAAmC;MACjCa,QAAQ;IACT;EACF,CANkB,CAArB;EASA,MAAMI,OAAO,GAAG,MAAM7C,MAAM,CAAC8C,wBAAP,CAAgClB,UAAhC,EAA4CmB,KAA5C,CACpB,MAAOC,KAAP,IAAiB;IACfN,YAAY,CAACO,MAAb;IACA,OAAOC,OAAO,CAACC,MAAR,CAAeH,KAAf,CAAP;EACD,CAJmB,CAAtB;EAOA,OAAO,YAAY;IACjBN,YAAY,CAACO,MAAb;IACA,OAAOjD,MAAM,CAACoD,gBAAP,CAAwBP,OAAxB,CAAP;EACD,CAHD;AAID,CAxBD;;AA0BA,MAAMQ,2BAA0D,GAAG,OACjEzB,UADiE,EAEjEtB,IAFiE,KAG9D;EACH,MAAMgD,OAAO,GAAG,MAAM3B,oBAAoB,CAACC,UAAD,EAAa;IACrDN,KAAK,EAAE,CAD8C;IAErDhB;EAFqD,CAAb,CAA1C;EAIA,OAAOgD,OAAO,CAAC,CAAD,CAAd;AACD,CATD;;AAWA,SAASC,oBAAT,CAGElC,OAHF,EAGkF;EAChF,MAAM,CAACmC,OAAD,EAAUC,UAAV,IAAwB1D,QAAQ,CACpC,IADoC,CAAtC;EAGAD,SAAS,CAAC,MAAM;IACd,IAAI4D,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvB,MAAM;QAAE1B,UAAF;QAAcC;MAAd,IAA+B,MAAMF,sBAAsB,CAC/DX,OAD+D,CAAjE;MAIAqC,kBAAkB,GAAG,MAAMlB,kBAAkB,CAC3C,yBAD2C,EAE3C,YAAY;QACV,MAAMoB,CAAC,GAAG,MAAMC,oBAAoB,CAAC;UAAE5B,UAAF;UAAcC;QAAd,CAAD,CAApC;QACAuB,UAAU,CAACG,CAAD,CAAV;MACD,CAL0C,CAA7C;IAOD,CAZD;;IAaA,KAAKD,IAAI,EAAT;IACA,OAAO,MAAM;MAAA;;MACX,6BAAKD,kBAAL,wDAAK,qBAAL;IACD,CAFD;EAGD,CApBQ,EAoBN,CAACrC,OAAD,CApBM,CAAT;EAqBA,OAAOmC,OAAP;AACD;;AAED,MAAMM,2BAA0D,GAAG,MACjElC,UADiE,IAE9D;EACH,MAAM0B,OAAO,GAAG,MAAMS,oBAAoB,CAACnC,UAAD,EAAa;IACrDN,KAAK,EAAE,CAD8C;IAErDE,SAAS,EAAE;EAF0C,CAAb,CAA1C;EAKA,OAAO8B,OAAO,CAAC,CAAD,CAAd;AACD,CATD;;AAWA,SAASU,qBAAT,CACEpC,UADF,EAEEqC,QAFF,EAGQ;EACNnE,SAAS,CAAC,MAAM;IACd,IAAI4D,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvBD,kBAAkB,GAAG,MAAMlB,kBAAkB,CAACZ,UAAD,EAAaqC,QAAb,CAA7C;IACD,CAFD;;IAGA,KAAKN,IAAI,EAAT;IAEA,OAAO,MAAM;MAAA;;MACX,8BAAKD,kBAAL,yDAAK,sBAAL;IACD,CAFD;EAGD,CAXQ,EAWN,CAAC9B,UAAD,EAAaqC,QAAb,CAXM,CAAT;AAYD;;AAED,SAASC,2BAAT,CAEEtC,UAFF,EAEyB;EACvB,MAAM,CAACuC,QAAD,EAAWC,WAAX,IAA0BrE,QAAQ,CACtC,IADsC,CAAxC;EAGA,MAAMsE,OAAO,GAAGxE,WAAW,CAAC,MAAM;IAChC,KAAKiE,2BAA2B,CAAClC,UAAD,CAA3B,CAAwC0C,IAAxC,CAA6CF,WAA7C,CAAL;EACD,CAF0B,EAExB,CAACxC,UAAD,CAFwB,CAA3B;EAIAoC,qBAAqB,CAACpC,UAAD,EAAayC,OAAb,CAArB;EAEA,OAAOF,QAAP;AACD;;AAED,SAASI,2BAAT,CAGE3C,UAHF,EAG2BtB,IAH3B,EAGyC;EACvC,MAAM,CAACkE,UAAD,EAAaC,aAAb,IAA8B1E,QAAQ,CAGlC,IAHkC,CAA5C;EAKAD,SAAS,CAAC,MAAM;IACd,IAAI4D,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvB,MAAMe,UAAU,GAAG,MAAMlE,UAAU,CAACoB,UAAD,EAAatB,IAAb,CAAnC;MAEAoD,kBAAkB,GAAG,MAAMlB,kBAAkB,CAACZ,UAAD,EAAa,YAAY;QACpE,MAAM+C,KAAK,GAAG,MAAMtB,2BAA2B,CAACzB,UAAD,EAAa8C,UAAb,CAA/C;QACAD,aAAa,CAACE,KAAD,CAAb;MACD,CAH4C,CAA7C;IAID,CAPD;;IAQA,KAAKhB,IAAI,EAAT;IAEA,OAAO,MAAM;MAAA;;MACX,8BAAKD,kBAAL,yDAAK,sBAAL;IACD,CAFD;EAGD,CAhBQ,EAgBN,CAAC9B,UAAD,EAAatB,IAAb,CAhBM,CAAT;EAkBA,OAAOkE,UAAP;AACD;;AAED,MAAMI,kBAAwC,GAAG,OAC/ChD,UAD+C,EAE/CtB,IAF+C,EAG/CqE,KAH+C,EAI/CtD,OAJ+C,KAK5C;EACH,MAAMwD,KAAK,GAAG,CAAAxD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEwD,KAAT,MAAkBxD,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEyD,GAA3B,KAAkC,IAAIjE,IAAJ,EAAhD;EACA,MAAMiE,GAAG,GAAG,CAAAzD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEyD,GAAT,MAAgBzD,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAEwD,KAAzB,KAAkC,IAAIhE,IAAJ,EAA9C;EACA,MAAMkE,QAAQ,GAAG,CAAA1D,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE0D,QAAT,KAAqB,EAAtC;EAEA,OAAO/E,MAAM,CAAC4E,kBAAP,CACLhD,UADK,EAELtB,IAFK,EAGLqE,KAHK,EAILE,KAAK,CAAC1D,WAAN,EAJK,EAKL2D,GAAG,CAAC3D,WAAJ,EALK,EAML4D,QANK,CAAP;AAQD,CAlBD;;AAoBA,MAAMC,0BAAwD,GAAG,OAC/DpD,UAD+D,EAE/DP,OAF+D,EAG/DI,IAH+D,EAI/DC,EAJ+D,EAK/DpB,IAL+D,KAM5D;EACH,MAAMoE,UAAU,GAAG,MAAMlE,UAAU,CAACoB,UAAD,EAAatB,IAAb,CAAnC;EACA,MAAM2E,MAAM,GAAGvD,EAAE,IAAI,IAAIb,IAAJ,EAArB;EACA,MAAM;IAAEqE,8BAAF;IAAkC,GAAGC;EAArC,IAAqD,MAAMnF,MAAM,CAACgF,0BAAP,CAC/DpD,UAD+D,EAE/D8C,UAF+D,EAG/DjD,IAAI,CAACN,WAAL,EAH+D,EAI/D8D,MAAM,CAAC9D,WAAP,EAJ+D,EAK/DE,OAL+D,CAAjE;EAQA,MAAM+D,QAAQ,GAAG,EACf,GAAGD,WADY;IAEf,IAAID,8BAA8B,GAC9B;MACAA,8BAA8B,EAAE;QAC9BzD,IAAI,EAAE,IAAIZ,IAAJ,CAASqE,8BAA8B,CAACzD,IAAxC,CADwB;QAE9BC,EAAE,EAAE,IAAIb,IAAJ,CAASqE,8BAA8B,CAACxD,EAAxC;MAF0B;IADhC,CAD8B,GAO9B,EAPJ;EAFe,CAAjB;EAYA,OAAO0D,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,OAAO3F,MAAM,CAACqF,oBAAP,CAA4BO,gBAA5B,EAA8CJ,eAA9C,CAAP;AACD,CATD;;AAWA,MAAMK,cAAc,GAAG,YAAY;EACjC,MAAMC,WAAW,GAAG,MAAM9F,MAAM,CAAC6F,cAAP,EAA1B;EACA,OAAO,IAAIhF,IAAJ,CAASiF,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,OAAO3F,MAAM,CAAC+F,gCAAP,CACLH,gBADK,EAELJ,eAFK,CAAP;AAID,CAZD;;AAcA,MAAMzB,oBAA4C,GAAG,OACnDnC,UADmD,EAEnDP,OAFmD,KAGhD;EACH,MAAMQ,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;EACA,MAAM2E,OAAO,GAAG,MAAMhG,MAAM,CAAC+D,oBAAP,CACpBnC,UADoB,EAEpBC,IAAI,CAACJ,IAFe,EAGpBI,IAAI,CAACH,EAHe,EAIpBG,IAAI,CAACP,KAJe,EAKpBO,IAAI,CAACL,SALe,CAAtB;EAQA,OAAOwE,OAAO,CAACjE,GAAR,CAAYf,wBAAZ,CAAP;AACD,CAdD;;AAgBA,MAAMiF,aAA8B,GAAG,MAAO5E,OAAP,IAAmB;EACxD,MAAM;IAAEY,UAAF;IAAcC;EAAd,IAA+B,MAAMF,sBAAsB,CAACX,OAAD,CAAjE;EACA,MAAMQ,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;EAEA,MAAM6E,QAAQ,GAAG,MAAMlG,MAAM,CAACmG,mBAAP,CACrBlE,UADqB,EAErBC,YAFqB,EAGrBL,IAAI,CAACJ,IAHgB,EAIrBI,IAAI,CAACH,EAJgB,EAKrBG,IAAI,CAACP,KALgB,EAMrBO,IAAI,CAACL,SANgB,CAAvB;EASA,OAAO0E,QAAQ,CAACnE,GAAT,CAAahB,kBAAb,CAAP;AACD,CAdD;;AAgBA,MAAM8C,oBAA4C,GAAG,MAAOxC,OAAP,IAAmB;EACtE,MAAM6E,QAAQ,GAAG,MAAMD,aAAa,CAAC;IACnC3E,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,OAAOgE,QAAQ,CAAC,CAAD,CAAf;AACD,CATD;;AAWA,eAAeE,kBAAf,CACExE,UADF,EAEE+C,KAFF,EAGEtD,OAHF,EAQE;EACA,MAAMwD,KAAK,GAAG,CAAAxD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEwD,KAAT,MAAkBxD,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEyD,GAA3B,KAAkC,IAAIjE,IAAJ,EAAhD;EACA,MAAMiE,GAAG,GAAG,CAAAzD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEyD,GAAT,MAAgBzD,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAEwD,KAAzB,KAAkC,IAAIhE,IAAJ,EAA9C;EACA,MAAMkE,QAAQ,GAAG,CAAA1D,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE0D,QAAT,KAAqB,EAAtC;EAEA,OAAO/E,MAAM,CAACoG,kBAAP,CACLxE,UADK,EAEL+C,KAFK,EAGLE,KAAK,CAAC1D,WAAN,EAHK,EAIL2D,GAAG,CAAC3D,WAAJ,EAJK,EAKL4D,QAAQ,IAAI,EALP,CAAP;AAOD;;AAED,MAAMxE,iBAAsC,GAAG,MAAO8F,WAAP,IAAuB;EACpE,MAAMlE,KAAK,GAAG,MAAMnC,MAAM,CAACO,iBAAP,CAAyB8F,WAAzB,CAApB;EACA,OAAOA,WAAW,CAACtE,GAAZ,CAAiBuE,CAAD,IAAOnE,KAAK,CAACmE,CAAD,CAA5B,CAAP;AACD,CAHD;;AAKA,MAAMC,mBAAmB,GAAG,CAACC,MAAD,EAAyBlG,IAAzB,KAA6C,GAAEkG,MAAO,GAAElG,IAAK,EAAzF;;AAEA,SAASmG,sBAAT,CAEEC,CAFF,EAEgE;EAC9D,OAAO,EACL,GAAGA,CADE;IAELC,OAAO,EAAED,CAAC,CAACC,OAAF,CAAU5E,GAAV,CAAe6E,CAAD,IAAO;MAC5B;MACA;MACA,IAAIA,CAAC,CAACC,QAAF,KAAeC,SAAnB,EAA8B;QAC5B,OAAOpG,iBAAiB,CAACkG,CAAD,CAAxB;MACD;;MAED,OAAO5F,wBAAwB,CAAC4F,CAAD,CAA/B;IACD,CARQ,CAFJ;IAWL9F,OAAO,EAAE,IAAID,IAAJ,CAAS6F,CAAC,CAAC5F,OAAX,CAXJ;IAYLF,SAAS,EAAE,IAAIC,IAAJ,CAAS6F,CAAC,CAAC9F,SAAX;EAZN,CAAP;AAcD;;AAED,SAASmG,cAAT,CAAmChC,QAAnC,EAAyD;EACvD,OAAOA,QAAQ,IAAK,EAApB;AACD;;AAED,MAAMiC,uBAAkD,GAAG,OACzDpE,cADyD,EAEzDvB,OAFyD,KAGtD;EACH,MAAMQ,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;EACA,MAAM4F,YAAY,GAAG,MAAMjH,MAAM,CAACgH,uBAAP,CACzBpE,cADyB,EAEzBf,IAAI,CAACJ,IAFoB,EAGzBI,IAAI,CAACH,EAHoB,CAA3B;EAMA,OAAOuF,YAAY,CAAClF,GAAb,CAAiB0E,sBAAjB,CAAP;AACD,CAZD;;AAcA,MAAMS,qBAA8C,GAAG,OACrDtE,cADqD,EAErDU,OAFqD,EAGrDjC,OAHqD,KAIlD;EACH,MAAMwD,KAAK,GAAG,CAAC,CAAAxD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEwD,KAAT,KAAkB,IAAIhE,IAAJ,EAAnB,EAA+BM,WAA/B,EAAd;EACA,MAAM2D,GAAG,GAAG,CAAC,CAAAzD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEyD,GAAT,KAAgB,IAAIjE,IAAJ,EAAjB,EAA6BM,WAA7B,EAAZ;EAEA,OAAOnB,MAAM,CAACkH,qBAAP,CACLtE,cADK,EAELU,OAFK,EAGLuB,KAHK,EAILC,GAJK,EAKLiC,cAAc,CAAC1F,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAE0D,QAAV,CALT,CAAP;AAOD,CAfD;;AAiBA,MAAMoC,iBAAsC,GAAG,OAC7CvE,cAD6C,EAE7CwE,UAF6C,EAG7CC,MAH6C,EAI7ChG,OAJ6C,KAK1C;EACH,MAAMwD,KAAK,GAAGwC,MAAM,CAAClG,WAAP,EAAd;;EACA,MAAM2D,GAAG,GAAG,CAAC,CAAAzD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEyD,GAAT,KAAgB,IAAIjE,IAAJ,EAAjB,EAA6BM,WAA7B,EAAZ;EAEA,OAAOnB,MAAM,CAACmH,iBAAP,CACLvE,cADK,EAELwE,UAFK,EAGLvC,KAHK,EAILC,GAJK,EAKLiC,cAAc,CAAC1F,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAE0D,QAAV,CALT,CAAP;AAOD,CAhBD;;AAkBA,MAAMuC,gBAAoC,GAAG,MAAOC,WAAP,IAA+BvH,MAAM,CAACsH,gBAAP,CAAwBC,WAAxB,CAA5E;;AAEA,MAAMC,SAA+B,GAAG;EACtCC,sBAAsB,EAAEzH,MAAM,CAACyH,sBAAP,CAA8BC,IAA9B,CAAmC1H,MAAnC,CADc;EAGtC2H,qBAAqB,EAAE3H,MAAM,CAAC2H,qBAAP,CAA6BD,IAA7B,CAAkC1H,MAAlC,CAHe;EAKtCuG,mBALsC;EAOtCqB,4BAA4B,EAAE5H,MAAM,CAAC4H,4BAPC;EAQtCC,yBAAyB,EAAE7H,MAAM,CAAC6H,yBARI;EAStCC,wBAAwB,EAAE9H,MAAM,CAAC8H,wBATK;EAWtC;EACAC,gBAAgB,EAAE/H,MAAM,CAAC+H,gBAAP,CAAwBL,IAAxB,CAA6B1H,MAA7B,CAZoB;EAatCgI,sBAAsB,EAAEhI,MAAM,CAACgI,sBAAP,CAA8BN,IAA9B,CAAmC1H,MAAnC,CAbc;EActCiI,gBAAgB,EAAEjI,MAAM,CAACiI,gBAda;EAetCC,YAAY,EAAElI,MAAM,CAACkI,YAAP,CAAoBR,IAApB,CAAyB1H,MAAzB,CAfwB;EAgBtC6F,cAhBsC;EAkBtCxC,2BAlBsC;EAmBtCS,2BAnBsC;EAoBtCD,oBApBsC;EAsBtCzD,gBAtBsC;EAuBtCG,iBAvBsC;EAwBtCwF,gCAxBsC;EA0BtCuB,gBA1BsC;EA4BtC;EACAvD,oBA7BsC;EA8BtCiD,uBA9BsC;EA+BtCrF,oBA/BsC;EAgCtCqD,0BAhCsC;EAiCtCiB,aAjCsC;EAmCtCZ,oBAnCsC;EAqCtC;EACAe,kBAtCsC;EAuCtCc,qBAvCsC;EAwCtCtC,kBAxCsC;EAyCtCuC,iBAzCsC;EA2CtC;EACA3E,kBA5CsC;EA8CtC;EACA0B,2BA/CsC;EAiDtCK,2BAjDsC;EAkDtChB,oBAlDsC;EAoDtCS;AApDsC,CAAxC;AAuDA,cAAc,gBAAd;AACA,cAAc,SAAd;AAEA,eAAewD,SAAf"}
@@ -1,5 +1,5 @@
1
1
  import { Platform } from 'react-native';
2
- const notAvailableError = 'Platform "' + Platform.OS + '" not supported, use isHealthDataAvailable to check for availability before using it';
2
+ const notAvailableError = `Platform "${Platform.OS}" not supported, use isHealthDataAvailable to check for availability before using it`;
3
3
 
4
4
  const UnavailableFn = () => {
5
5
  throw new Error(notAvailableError);
@@ -22,7 +22,8 @@ const Healthkit = {
22
22
  getPreferredUnits: UnavailableFn,
23
23
  getRequestStatusForAuthorization: UnavailableFn,
24
24
  getWheelchairUse: UnavailableFn,
25
- isHealthDataAvailable: () => Promise.resolve(false),
25
+ getWorkoutRoutes: UnavailableFn,
26
+ isHealthDataAvailable: async () => Promise.resolve(false),
26
27
  queryCategorySamples: UnavailableFn,
27
28
  queryCorrelationSamples: UnavailableFn,
28
29
  queryQuantitySamples: UnavailableFn,
@@ -39,7 +40,7 @@ const Healthkit = {
39
40
  useMostRecentWorkout: UnavailableFn,
40
41
  useSubscribeToChanges: UnavailableFn
41
42
  };
42
- export * from './types';
43
43
  export * from './native-types';
44
+ export * from './types';
44
45
  export default Healthkit;
45
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["Platform","notAvailableError","OS","UnavailableFn","Error","Healthkit","authorizationStatusFor","buildUnitWithPrefix","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getBloodType","getDateOfBirth","getFitzpatrickSkinType","getMostRecentCategorySample","getMostRecentQuantitySample","getMostRecentWorkout","getPreferredUnit","getPreferredUnits","getRequestStatusForAuthorization","getWheelchairUse","isHealthDataAvailable","Promise","resolve","queryCategorySamples","queryCorrelationSamples","queryQuantitySamples","queryStatisticsForQuantity","queryWorkouts","requestAuthorization","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges"],"mappings":"AAAA,SAASA,QAAT,QAAyB,cAAzB;AAGA,MAAMC,iBAAiB,GACrB,eACAD,QAAQ,CAACE,EADT,GAEA,sFAHF;;AAKA,MAAMC,aAAa,GAAG,MAAM;AAC1B,QAAM,IAAIC,KAAJ,CAAUH,iBAAV,CAAN;AACD,CAFD;;AAIA,MAAMI,SAA+B,GAAG;AACtCC,EAAAA,sBAAsB,EAAEH,aADc;AAEtCI,EAAAA,mBAAmB,EAAEJ,aAFiB;AAGtCK,EAAAA,4BAA4B,EAAEL,aAHQ;AAItCM,EAAAA,yBAAyB,EAAEN,aAJW;AAKtCO,EAAAA,wBAAwB,EAAEP,aALY;AAMtCQ,EAAAA,gBAAgB,EAAER,aANoB;AAOtCS,EAAAA,YAAY,EAAET,aAPwB;AAQtCU,EAAAA,cAAc,EAAEV,aARsB;AAStCW,EAAAA,sBAAsB,EAAEX,aATc;AAUtCY,EAAAA,2BAA2B,EAAEZ,aAVS;AAWtCa,EAAAA,2BAA2B,EAAEb,aAXS;AAYtCc,EAAAA,oBAAoB,EAAEd,aAZgB;AAatCe,EAAAA,gBAAgB,EAAEf,aAboB;AActCgB,EAAAA,iBAAiB,EAAEhB,aAdmB;AAetCiB,EAAAA,gCAAgC,EAAEjB,aAfI;AAgBtCkB,EAAAA,gBAAgB,EAAElB,aAhBoB;AAiBtCmB,EAAAA,qBAAqB,EAAE,MAAMC,OAAO,CAACC,OAAR,CAAgB,KAAhB,CAjBS;AAkBtCC,EAAAA,oBAAoB,EAAEtB,aAlBgB;AAmBtCuB,EAAAA,uBAAuB,EAAEvB,aAnBa;AAoBtCwB,EAAAA,oBAAoB,EAAExB,aApBgB;AAqBtCyB,EAAAA,0BAA0B,EAAEzB,aArBU;AAsBtC0B,EAAAA,aAAa,EAAE1B,aAtBuB;AAuBtC2B,EAAAA,oBAAoB,EAAE3B,aAvBgB;AAwBtC4B,EAAAA,kBAAkB,EAAE5B,aAxBkB;AAyBtC6B,EAAAA,qBAAqB,EAAE7B,aAzBe;AA0BtC8B,EAAAA,kBAAkB,EAAE9B,aA1BkB;AA2BtC+B,EAAAA,iBAAiB,EAAE/B,aA3BmB;AA4BtCgC,EAAAA,kBAAkB,EAAEhC,aA5BkB;AA6BtCiC,EAAAA,2BAA2B,EAAEjC,aA7BS;AA8BtCkC,EAAAA,2BAA2B,EAAElC,aA9BS;AA+BtCmC,EAAAA,oBAAoB,EAAEnC,aA/BgB;AAgCtCoC,EAAAA,qBAAqB,EAAEpC;AAhCe,CAAxC;AAmCA,cAAc,SAAd;AACA,cAAc,gBAAd;AAEA,eAAeE,SAAf","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 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 './types';\nexport * from './native-types';\n\nexport default Healthkit;\n"]}
1
+ {"version":3,"names":["Platform","notAvailableError","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,SAASA,QAAT,QAAyB,cAAzB;AAIA,MAAMC,iBAAiB,GAAI,aACzBD,QAAQ,CAACE,EACV,sFAFD;;AAIA,MAAMC,aAAa,GAAG,MAAM;EAC1B,MAAM,IAAIC,KAAJ,CAAUH,iBAAV,CAAN;AACD,CAFD;;AAIA,MAAMI,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;AAoCA,cAAc,gBAAd;AACA,cAAc,SAAd;AAEA,eAAeE,SAAf"}
@@ -1,4 +1,8 @@
1
- import { NativeModules, NativeEventEmitter } from 'react-native';
1
+ import { NativeEventEmitter, NativeModules } from 'react-native';
2
+ export const HKWorkoutTypeIdentifier = 'HKWorkoutTypeIdentifier';
3
+ export const HKAudiogramTypeIdentifier = 'HKAudiogramTypeIdentifier';
4
+ export const HKWorkoutRouteTypeIdentifier = 'HKWorkoutRouteTypeIdentifier';
5
+ export const HKDataTypeIdentifierHeartbeatSeries = 'HKDataTypeIdentifierHeartbeatSeries';
2
6
  export let HKHeartRateMotionContext;
3
7
 
4
8
  (function (HKHeartRateMotionContext) {
@@ -234,6 +238,13 @@ export let HKQuantityTypeIdentifier;
234
238
  HKQuantityTypeIdentifier["dietaryPotassium"] = "HKQuantityTypeIdentifierDietaryPotassium";
235
239
  HKQuantityTypeIdentifier["dietaryCaffeine"] = "HKQuantityTypeIdentifierDietaryCaffeine";
236
240
  HKQuantityTypeIdentifier["dietaryWater"] = "HKQuantityTypeIdentifierDietaryWater";
241
+ HKQuantityTypeIdentifier["sixMinuteWalkTestDistance"] = "HKQuantityTypeIdentifierSixMinuteWalkTestDistance";
242
+ HKQuantityTypeIdentifier["walkingSpeed"] = "HKQuantityTypeIdentifierWalkingSpeed";
243
+ HKQuantityTypeIdentifier["walkingStepLength"] = "HKQuantityTypeIdentifierWalkingStepLength";
244
+ HKQuantityTypeIdentifier["walkingAsymmetryPercentage"] = "HKQuantityTypeIdentifierWalkingAsymmetryPercentage";
245
+ HKQuantityTypeIdentifier["walkingDoubleSupportPercentage"] = "HKQuantityTypeIdentifierWalkingDoubleSupportPercentage";
246
+ HKQuantityTypeIdentifier["stairAscentSpeed"] = "HKQuantityTypeIdentifierStairAscentSpeed";
247
+ HKQuantityTypeIdentifier["stairDescentSpeed"] = "HKQuantityTypeIdentifierStairDescentSpeed";
237
248
  HKQuantityTypeIdentifier["uvExposure"] = "HKQuantityTypeIdentifierUvExposure";
238
249
  })(HKQuantityTypeIdentifier || (HKQuantityTypeIdentifier = {}));
239
250
 
@@ -245,6 +256,14 @@ export let HKAuthorizationRequestStatus;
245
256
  HKAuthorizationRequestStatus[HKAuthorizationRequestStatus["unnecessary"] = 2] = "unnecessary";
246
257
  })(HKAuthorizationRequestStatus || (HKAuthorizationRequestStatus = {}));
247
258
 
259
+ export let HKAuthorizationStatus;
260
+
261
+ (function (HKAuthorizationStatus) {
262
+ HKAuthorizationStatus[HKAuthorizationStatus["notDetermined"] = 0] = "notDetermined";
263
+ HKAuthorizationStatus[HKAuthorizationStatus["sharingDenied"] = 1] = "sharingDenied";
264
+ HKAuthorizationStatus[HKAuthorizationStatus["sharingAuthorized"] = 2] = "sharingAuthorized";
265
+ })(HKAuthorizationStatus || (HKAuthorizationStatus = {}));
266
+
248
267
  export let HKBloodType;
249
268
 
250
269
  (function (HKBloodType) {