@kingstinct/react-native-healthkit 7.2.0 → 7.3.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.
- package/ios/Constants.swift +1 -1
- package/ios/ReactNativeHealthkit.m +2 -1
- package/ios/ReactNativeHealthkit.swift +74 -23
- package/lib/commonjs/index.ios.js +2 -0
- package/lib/commonjs/index.ios.js.map +1 -1
- package/lib/commonjs/index.js +1 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/jest.setup.js +2 -1
- package/lib/commonjs/jest.setup.js.map +1 -1
- package/lib/commonjs/native-types.js +5 -5
- package/lib/commonjs/native-types.js.map +1 -1
- package/lib/commonjs/utils/ensureTotals.js +12 -0
- package/lib/commonjs/utils/ensureTotals.js.map +1 -0
- package/lib/commonjs/utils/getWorkoutPlanById.js +14 -0
- package/lib/commonjs/utils/getWorkoutPlanById.js.map +1 -0
- package/lib/commonjs/utils/saveWorkoutSample.js +2 -1
- package/lib/commonjs/utils/saveWorkoutSample.js.map +1 -1
- package/lib/module/index.ios.js +2 -0
- package/lib/module/index.ios.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/jest.setup.js +2 -1
- package/lib/module/jest.setup.js.map +1 -1
- package/lib/module/native-types.js +3 -3
- package/lib/module/native-types.js.map +1 -1
- package/lib/module/utils/ensureTotals.js +5 -0
- package/lib/module/utils/ensureTotals.js.map +1 -0
- package/lib/module/utils/getWorkoutPlanById.js +6 -0
- package/lib/module/utils/getWorkoutPlanById.js.map +1 -0
- package/lib/module/utils/saveWorkoutSample.js +2 -1
- package/lib/module/utils/saveWorkoutSample.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.ios.d.ts +2 -0
- package/lib/typescript/src/native-types.d.ts +82 -75
- package/lib/typescript/src/utils/ensureTotals.d.ts +2 -0
- package/lib/typescript/src/utils/getWorkoutPlanById.d.ts +5 -0
- package/lib/typescript/src/utils/saveWorkoutSample.d.ts +4 -0
- package/package.json +1 -1
- package/src/index.ios.tsx +2 -0
- package/src/index.tsx +1 -0
- package/src/jest.setup.ts +2 -1
- package/src/native-types.ts +143 -116
- package/src/utils/ensureTotals.ts +5 -0
- package/src/utils/getWorkoutPlanById.ts +7 -0
- package/src/utils/saveWorkoutSample.ts +6 -0
package/ios/Constants.swift
CHANGED
|
@@ -25,4 +25,4 @@ let HKDataTypeIdentifierHeartbeatSeries = "HKDataTypeIdentifierHeartbeatSeries"
|
|
|
25
25
|
|
|
26
26
|
let SpeedUnit = HKUnit(from: "m/s") // HKUnit.meter().unitDivided(by: HKUnit.second())
|
|
27
27
|
// Support for MET data: HKAverageMETs 8.24046 kcal/hr·kg
|
|
28
|
-
let METUnit = HKUnit(from: "kcal/hr·kg")
|
|
28
|
+
let METUnit = HKUnit(from: "kcal/hr·kg")
|
|
@@ -146,6 +146,7 @@ RCT_EXTERN_METHOD(saveWorkoutSample:(NSInteger)typeIdentifier
|
|
|
146
146
|
quantities:(NSArray)quantities
|
|
147
147
|
start:(NSDate)start
|
|
148
148
|
end:(NSDate)end
|
|
149
|
+
totals:(NSDictionary)totals
|
|
149
150
|
metadata:(NSDictionary)metadata
|
|
150
151
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
151
152
|
reject:(RCTPromiseRejectBlock)reject
|
|
@@ -211,7 +212,7 @@ RCT_EXTERN_METHOD(getWorkoutRoutes:(NSString)workoutUUID
|
|
|
211
212
|
reject:(RCTPromiseRejectBlock)reject
|
|
212
213
|
)
|
|
213
214
|
|
|
214
|
-
RCT_EXTERN_METHOD(
|
|
215
|
+
RCT_EXTERN_METHOD(getWorkoutPlanById:(NSString)workoutUUID
|
|
215
216
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
216
217
|
reject:(RCTPromiseRejectBlock)reject
|
|
217
218
|
)
|
|
@@ -17,7 +17,6 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
17
17
|
self._runningQueries = [String: HKQuery]()
|
|
18
18
|
self._dateFormatter = ISO8601DateFormatter()
|
|
19
19
|
self._dateFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds]
|
|
20
|
-
|
|
21
20
|
if HKHealthStore.isHealthDataAvailable() {
|
|
22
21
|
self._store = HKHealthStore.init()
|
|
23
22
|
}
|
|
@@ -297,7 +296,6 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
297
296
|
if let type = HKSampleType.categoryType(forIdentifier: typeId) {
|
|
298
297
|
let value = sample["value"] as! Int
|
|
299
298
|
let metadata = sample["metadata"] as? [String: Any]
|
|
300
|
-
|
|
301
299
|
let categorySample = HKCategorySample.init(type: type, value: value, start: start, end: end, metadata: metadata)
|
|
302
300
|
initializedSamples.insert(categorySample)
|
|
303
301
|
}
|
|
@@ -315,8 +313,8 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
315
313
|
}
|
|
316
314
|
}
|
|
317
315
|
|
|
318
|
-
@objc(saveWorkoutSample:quantities:start:end:metadata:resolve:reject:)
|
|
319
|
-
func saveWorkoutSample(typeIdentifier: UInt, quantities: [[String: Any]], start: Date, end: Date, metadata: [String: Any], resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
316
|
+
@objc(saveWorkoutSample:quantities:start:end:totals:metadata:resolve:reject:)
|
|
317
|
+
func saveWorkoutSample(typeIdentifier: UInt, quantities: [[String: Any]], start: Date, end: Date, totals: [String: Any], metadata: [String: Any], resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
320
318
|
guard let store = _store else {
|
|
321
319
|
return reject(INIT_ERROR, INIT_ERROR_MESSAGE, nil)
|
|
322
320
|
}
|
|
@@ -337,7 +335,6 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
337
335
|
var totalDistance: HKQuantity?
|
|
338
336
|
var totalSwimmingStrokeCount: HKQuantity?
|
|
339
337
|
var totalFlightsClimbed: HKQuantity?
|
|
340
|
-
|
|
341
338
|
// generating quantity samples
|
|
342
339
|
for quantity in quantities {
|
|
343
340
|
let typeId = HKQuantityTypeIdentifier.init(rawValue: quantity["quantityType"] as! String)
|
|
@@ -362,7 +359,6 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
362
359
|
if typeId == HKQuantityTypeIdentifier.flightsClimbed {
|
|
363
360
|
totalFlightsClimbed = quantity
|
|
364
361
|
}
|
|
365
|
-
|
|
366
362
|
if let quantityStart, let quantityEnd {
|
|
367
363
|
let quantityStartDate = self._dateFormatter.date(from: quantityStart) ?? start
|
|
368
364
|
let quantityEndDate = self._dateFormatter.date(from: quantityEnd) ?? end
|
|
@@ -376,6 +372,17 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
376
372
|
}
|
|
377
373
|
}
|
|
378
374
|
|
|
375
|
+
// if totals are provided override samples
|
|
376
|
+
let rawTotalDistance = totals["distance"] as? Double ?? 0.0
|
|
377
|
+
let rawTotalEnergy = totals["energyBurned"] as? Double ?? 0.0
|
|
378
|
+
|
|
379
|
+
if rawTotalDistance != 0.0 {
|
|
380
|
+
totalDistance = HKQuantity(unit: .meter(), doubleValue: rawTotalDistance)
|
|
381
|
+
}
|
|
382
|
+
if rawTotalEnergy != 0.0 {
|
|
383
|
+
totalEnergyBurned = HKQuantity(unit: .kilocalorie(), doubleValue: rawTotalEnergy)
|
|
384
|
+
}
|
|
385
|
+
|
|
379
386
|
// creating workout
|
|
380
387
|
var workout: HKWorkout?
|
|
381
388
|
|
|
@@ -405,6 +412,10 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
405
412
|
return
|
|
406
413
|
}
|
|
407
414
|
|
|
415
|
+
if initializedSamples.isEmpty {
|
|
416
|
+
return resolve(workout.uuid.uuidString)
|
|
417
|
+
}
|
|
418
|
+
|
|
408
419
|
store.add(initializedSamples, to: workout) { (_, error: Error?) in
|
|
409
420
|
guard error == nil else {
|
|
410
421
|
reject(GENERIC_ERROR, error!.localizedDescription, error)
|
|
@@ -454,7 +465,6 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
454
465
|
if clLocations.isEmpty {
|
|
455
466
|
return reject(GENERIC_ERROR, "No locations provided", nil)
|
|
456
467
|
}
|
|
457
|
-
|
|
458
468
|
// create route
|
|
459
469
|
let routeBuilder = HKWorkoutRouteBuilder(healthStore: store, device: nil)
|
|
460
470
|
try await routeBuilder.insertRouteData(clLocations)
|
|
@@ -706,7 +716,6 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
706
716
|
|
|
707
717
|
@objc(queryWorkoutSamples:distanceUnitString:from:to:limit:ascending:resolve:reject:)
|
|
708
718
|
func queryWorkoutSamples(energyUnitString: String, distanceUnitString: String, from: Date, to: Date, limit: Int, ascending: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
709
|
-
|
|
710
719
|
guard let store = _store else {
|
|
711
720
|
return reject(INIT_ERROR, INIT_ERROR_MESSAGE, nil)
|
|
712
721
|
}
|
|
@@ -797,21 +806,6 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
797
806
|
dict.setValue(serializeQuantity(unit: HKUnit.count(), quantity: workout.totalFlightsClimbed), forKey: "totalFlightsClimbed")
|
|
798
807
|
}
|
|
799
808
|
|
|
800
|
-
#if canImport(WorkoutKit)
|
|
801
|
-
if #available(iOS 17.0, *) {
|
|
802
|
-
Task {
|
|
803
|
-
do {
|
|
804
|
-
let workoutplan = try await workout.workoutPlan
|
|
805
|
-
if let workoutplanId = workoutplan?.id {
|
|
806
|
-
dict["workoutPlanId"] = workoutplanId.uuidString
|
|
807
|
-
}
|
|
808
|
-
} catch {
|
|
809
|
-
// handle error
|
|
810
|
-
}
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
|
-
#endif
|
|
814
|
-
|
|
815
809
|
arr.add(dict)
|
|
816
810
|
}
|
|
817
811
|
}
|
|
@@ -1263,6 +1257,63 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
1263
1257
|
return allRoutes
|
|
1264
1258
|
}
|
|
1265
1259
|
|
|
1260
|
+
@available(iOS 17.0.0, *)
|
|
1261
|
+
func getWorkoutPlan(workout: HKWorkout) async -> [String: Any]? {
|
|
1262
|
+
#if canImport(WorkoutKit)
|
|
1263
|
+
do {
|
|
1264
|
+
let workoutPlan = try await workout.workoutPlan
|
|
1265
|
+
|
|
1266
|
+
var dict = [String: Any]()
|
|
1267
|
+
if (workoutPlan?.id) != nil {
|
|
1268
|
+
dict["id"] = workoutPlan?.id.uuidString
|
|
1269
|
+
|
|
1270
|
+
}
|
|
1271
|
+
if (workoutPlan?.workout.activity) != nil {
|
|
1272
|
+
dict["activityType"] = workoutPlan?.workout.activity.rawValue
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
if dict.isEmpty {
|
|
1276
|
+
return nil
|
|
1277
|
+
}
|
|
1278
|
+
return dict
|
|
1279
|
+
} catch {
|
|
1280
|
+
return nil
|
|
1281
|
+
}
|
|
1282
|
+
#else
|
|
1283
|
+
return nil
|
|
1284
|
+
#endif
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
@objc(getWorkoutPlanById:resolve:reject:)
|
|
1288
|
+
func getWorkoutPlanById(workoutUUID: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
1289
|
+
if #available(iOS 17.0, *) {
|
|
1290
|
+
#if canImport(WorkoutKit)
|
|
1291
|
+
guard let store = _store else {
|
|
1292
|
+
return reject(INIT_ERROR, INIT_ERROR_MESSAGE, nil)
|
|
1293
|
+
}
|
|
1294
|
+
|
|
1295
|
+
Task {
|
|
1296
|
+
if let uuid = UUID(uuidString: workoutUUID) {
|
|
1297
|
+
let workout = await self.getWorkoutByID(store: store, workoutUUID: uuid)
|
|
1298
|
+
if let workout {
|
|
1299
|
+
let workoutPlan = await self.getWorkoutPlan(workout: workout)
|
|
1300
|
+
|
|
1301
|
+
return resolve(workoutPlan)
|
|
1302
|
+
} else {
|
|
1303
|
+
return reject(GENERIC_ERROR, "No workout found", nil)
|
|
1304
|
+
}
|
|
1305
|
+
} else {
|
|
1306
|
+
return reject(GENERIC_ERROR, "Invalid UUID", nil)
|
|
1307
|
+
}
|
|
1308
|
+
}
|
|
1309
|
+
#else
|
|
1310
|
+
return resolve(nil)
|
|
1311
|
+
#endif
|
|
1312
|
+
} else {
|
|
1313
|
+
return resolve(nil)
|
|
1314
|
+
}
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1266
1317
|
func serializeLocation(location: CLLocation, previousLocation: CLLocation?) -> [String: Any] {
|
|
1267
1318
|
var distance: CLLocationDistance?
|
|
1268
1319
|
if let previousLocation = previousLocation {
|
|
@@ -22,6 +22,7 @@ var _getMostRecentWorkout = _interopRequireDefault(require("./utils/getMostRecen
|
|
|
22
22
|
var _getPreferredUnit = _interopRequireDefault(require("./utils/getPreferredUnit"));
|
|
23
23
|
var _getPreferredUnits = _interopRequireDefault(require("./utils/getPreferredUnits"));
|
|
24
24
|
var _getRequestStatusForAuthorization = _interopRequireDefault(require("./utils/getRequestStatusForAuthorization"));
|
|
25
|
+
var _getWorkoutPlanById = _interopRequireDefault(require("./utils/getWorkoutPlanById"));
|
|
25
26
|
var _queryCategorySamples = _interopRequireDefault(require("./utils/queryCategorySamples"));
|
|
26
27
|
var _queryCategorySamplesWithAnchor = _interopRequireDefault(require("./utils/queryCategorySamplesWithAnchor"));
|
|
27
28
|
var _queryCorrelationSamples = _interopRequireDefault(require("./utils/queryCorrelationSamples"));
|
|
@@ -153,6 +154,7 @@ var _default = {
|
|
|
153
154
|
* @see {@link https://developer.apple.com/documentation/healthkit/hkworkoutroutequery HKWorkoutRouteQuery (Apple Docs)}
|
|
154
155
|
*/
|
|
155
156
|
getWorkoutRoutes,
|
|
157
|
+
getWorkoutPlanById: _getWorkoutPlanById.default,
|
|
156
158
|
getPreferredUnit: _getPreferredUnit.default,
|
|
157
159
|
getPreferredUnits: _getPreferredUnits.default,
|
|
158
160
|
getRequestStatusForAuthorization: _getRequestStatusForAuthorization.default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_useHealthkitAuthorization","_interopRequireDefault","_useIsHealthDataAvailable","_useMostRecentCategorySample","_useMostRecentQuantitySample","_useMostRecentWorkout","_useSubscribeToChanges","_nativeTypes","_interopRequireWildcard","_deleteQuantitySample","_deleteSamples","_getDateOfBirth","_getMostRecentCategorySample","_getMostRecentQuantitySample","_getMostRecentWorkout","_getPreferredUnit","_getPreferredUnits","_getRequestStatusForAuthorization","_queryCategorySamples","_queryCategorySamplesWithAnchor","_queryCorrelationSamples","_queryHeartbeatSeriesSamples","_queryHeartbeatSeriesSamplesWithAnchor","_queryQuantitySamples","_queryQuantitySamplesWithAnchor","_querySources","_queryStatisticsForQuantity","_queryWorkouts","_requestAuthorization","_saveCategorySample","_saveCorrelationSample","_saveQuantitySample","_saveWorkoutRoute","_saveWorkoutSample","_subscribeToChanges","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","currentMajorVersionIOS","Platform","OS","parseInt","Version","allQuantityTypesList","values","HKQuantityTypeIdentifier","availableQuantityTypes","majorVersionIOS","arguments","length","undefined","filter","type","cyclingCadence","cyclingFunctionalThresholdPower","cyclingPower","cyclingSpeed","physicalEffort","timeInDaylight","includes","authorizationStatusFor","Native","bind","isHealthDataAvailable","canAccessProtectedData","disableBackgroundDelivery","disableAllBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType","getWorkoutRoutes","_default","isProtectedDataAvailable","getDateOfBirth","getMostRecentQuantitySample","getMostRecentCategorySample","getMostRecentWorkout","getPreferredUnit","getPreferredUnits","getRequestStatusForAuthorization","queryCategorySamples","queryCategorySamplesWithAnchor","queryCorrelationSamples","queryHeartbeatSeriesSamples","queryHeartbeatSeriesSamplesWithAnchor","queryQuantitySamples","queryQuantitySamplesWithAnchor","queryStatisticsForQuantity","queryWorkouts","querySources","requestAuthorization","deleteQuantitySample","deleteSamples","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","saveWorkoutRoute","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useIsHealthDataAvailable","useHealthkitAuthorization"],"sources":["index.ios.tsx"],"sourcesContent":["import { Platform } from 'react-native'\n\nimport useHealthkitAuthorization from './hooks/useHealthkitAuthorization'\nimport useIsHealthDataAvailable from './hooks/useIsHealthDataAvailable'\nimport useMostRecentCategorySample from './hooks/useMostRecentCategorySample'\nimport useMostRecentQuantitySample from './hooks/useMostRecentQuantitySample'\nimport useMostRecentWorkout from './hooks/useMostRecentWorkout'\nimport useSubscribeToChanges from './hooks/useSubscribeToChanges'\nimport Native, { HKQuantityTypeIdentifier } from './native-types'\nimport deleteQuantitySample from './utils/deleteQuantitySample'\nimport deleteSamples from './utils/deleteSamples'\nimport getDateOfBirth from './utils/getDateOfBirth'\nimport getMostRecentCategorySample from './utils/getMostRecentCategorySample'\nimport getMostRecentQuantitySample from './utils/getMostRecentQuantitySample'\nimport getMostRecentWorkout from './utils/getMostRecentWorkout'\nimport getPreferredUnit from './utils/getPreferredUnit'\nimport getPreferredUnits from './utils/getPreferredUnits'\nimport getRequestStatusForAuthorization from './utils/getRequestStatusForAuthorization'\nimport queryCategorySamples from './utils/queryCategorySamples'\nimport queryCategorySamplesWithAnchor from './utils/queryCategorySamplesWithAnchor'\nimport queryCorrelationSamples from './utils/queryCorrelationSamples'\nimport queryHeartbeatSeriesSamples from './utils/queryHeartbeatSeriesSamples'\nimport queryHeartbeatSeriesSamplesWithAnchor from './utils/queryHeartbeatSeriesSamplesWithAnchor'\nimport queryQuantitySamples from './utils/queryQuantitySamples'\nimport queryQuantitySamplesWithAnchor from './utils/queryQuantitySamplesWithAnchor'\nimport querySources from './utils/querySources'\nimport queryStatisticsForQuantity from './utils/queryStatisticsForQuantity'\nimport queryWorkouts from './utils/queryWorkouts'\nimport requestAuthorization from './utils/requestAuthorization'\nimport saveCategorySample from './utils/saveCategorySample'\nimport saveCorrelationSample from './utils/saveCorrelationSample'\nimport saveQuantitySample from './utils/saveQuantitySample'\nimport saveWorkoutRoute from './utils/saveWorkoutRoute'\nimport saveWorkoutSample from './utils/saveWorkoutSample'\nimport subscribeToChanges from './utils/subscribeToChanges'\n\nconst currentMajorVersionIOS = Platform.OS === 'ios' ? parseInt(Platform.Version, 10) : 0\n\nconst allQuantityTypesList = [...Object.values(HKQuantityTypeIdentifier)]\n\nconst availableQuantityTypes = (majorVersionIOS = currentMajorVersionIOS) => {\n if (majorVersionIOS >= 17) {\n return allQuantityTypesList\n }\n\n // remove types that are not available before iOS 17\n return allQuantityTypesList.filter((type) => ![\n HKQuantityTypeIdentifier.cyclingCadence,\n HKQuantityTypeIdentifier.cyclingFunctionalThresholdPower,\n HKQuantityTypeIdentifier.cyclingPower,\n HKQuantityTypeIdentifier.cyclingSpeed,\n HKQuantityTypeIdentifier.physicalEffort,\n HKQuantityTypeIdentifier.timeInDaylight,\n ].includes(type))\n}\n\nconst authorizationStatusFor = Native.authorizationStatusFor.bind(Native)\nconst isHealthDataAvailable = Native.isHealthDataAvailable.bind(Native)\n// Todo [>8]: Rename to align with Apple function name (isProtectedDataAvailable)\nconst canAccessProtectedData = Native.canAccessProtectedData.bind(Native)\nconst disableBackgroundDelivery = Native.disableBackgroundDelivery.bind(Native)\nconst disableAllBackgroundDelivery = Native.disableAllBackgroundDelivery.bind(Native)\nconst enableBackgroundDelivery = Native.enableBackgroundDelivery.bind(Native)\nconst getBiologicalSex = Native.getBiologicalSex.bind(Native)\nconst getFitzpatrickSkinType = Native.getFitzpatrickSkinType.bind(Native)\nconst getWheelchairUse = Native.getWheelchairUse.bind(Native)\nconst getBloodType = Native.getBloodType.bind(Native)\nconst getWorkoutRoutes = Native.getWorkoutRoutes.bind(Native)\n\n/**\n * @see {@link https://developer.apple.com/documentation/healthkit/about_the_healthkit_framework About the HealthKit Framework (Apple Docs)}\n */\nexport default {\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614154-authorizationstatus authorizationStatus(for:) (Apple Docs) }\n * @see {@link https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data Authorizing access to health data (Apple Docs) }\n */\n authorizationStatusFor,\n\n /**\n *\n * @returns All available quantity types for the current iOS version (currently excluding types that are not available before iOS 17)\n */\n availableQuantityTypes,\n\n /**\n * @description By default, HealthKit data is available on iOS and watchOS. HealthKit data is also available on iPadOS 17 or later. However, devices running in an enterprise environment may restrict access to HealthKit data.\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable isHealthDataAvailable() (Apple Docs)}\n * @returns {boolean} true if HealthKit is available; otherwise, false.\n */\n isHealthDataAvailable,\n\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614181-isprotecteddataavailable isProtectedDataAvailable() (Apple Docs)}\n * @see {@link https://developer.apple.com/documentation/healthkit/protecting_user_privacy#3705074 Protecting User Privacy - Access encrypted data (Apple Docs)}\n * @returns {boolean} A Boolean value that indicates whether content protection is active.\n */\n isProtectedDataAvailable: canAccessProtectedData,\n\n // Todo [>8]: Remove to align with Apple function name (isProtectedDataAvailable)\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614181-isprotecteddataavailable isProtectedDataAvailable() (Apple Docs)}\n * @see {@link https://developer.apple.com/documentation/healthkit/protecting_user_privacy#3705074 Protecting User Privacy - Access encrypted data (Apple Docs)}\n * @deprecated Use {@link isProtectedDataAvailable} instead. Will be removed in next major version.\n * @returns {boolean} A Boolean value that indicates whether content protection is active.\n */\n canAccessProtectedData,\n\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614158-disableallbackgrounddelivery disableAllBackgroundDelivery(completion:) (Apple Docs)}\n */\n disableAllBackgroundDelivery,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614177-disablebackgrounddelivery disableBackgroundDelivery(for:withCompletion:) (Apple Docs)}\n */\n disableBackgroundDelivery,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614175-enablebackgrounddelivery enableBackgroundDelivery(for:frequency:withCompletion:) (Apple Docs)}\n */\n enableBackgroundDelivery,\n\n // simple convenience getters\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614171-biologicalsex biologicalSex() (Apple Docs)}\n */\n getBiologicalSex,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614161-fitzpatrickskintype fitzpatrickSkinType() (Apple Docs)}\n */\n getFitzpatrickSkinType,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1648356-wheelchairuse wheelchairUse() (Apple Docs)}\n */\n getWheelchairUse,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614164-bloodtype bloodType() (Apple Docs)}\n */\n getBloodType,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1648357-dateofbirthcomponents dateOfBirthComponents() (Apple Docs)}\n */\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/workouts_and_activity_rings/reading_route_data Reading route data (Apple Docs)}\n * @see {@link https://developer.apple.com/documentation/healthkit/hkworkoutroutequery HKWorkoutRouteQuery (Apple Docs)}\n */\n getWorkoutRoutes,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n // query methods\n queryCategorySamples,\n queryCategorySamplesWithAnchor,\n queryCorrelationSamples,\n queryHeartbeatSeriesSamples,\n queryHeartbeatSeriesSamplesWithAnchor,\n queryQuantitySamples,\n queryQuantitySamplesWithAnchor,\n queryStatisticsForQuantity,\n queryWorkouts,\n querySources,\n\n requestAuthorization,\n\n // delete methods\n deleteQuantitySample,\n deleteSamples,\n\n // save methods\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614168-savecategorysample save(_:withCompletion:) (Apple Docs)}\n * @see {@link https://developer.apple.com/documentation/healthkit/saving_data_to_healthkit Saving data to HealthKit (Apple Docs)}\n */\n saveCategorySample,\n saveCorrelationSample,\n saveQuantitySample,\n saveWorkoutSample,\n saveWorkoutRoute,\n\n // subscriptions\n subscribeToChanges,\n\n /**\n * @returns the most recent sample for the given category type.\n */\n useMostRecentCategorySample,\n /**\n * @returns the most recent sample for the given quantity type.\n */\n useMostRecentQuantitySample,\n /**\n * @returns the most recent workout sample.\n */\n useMostRecentWorkout,\n useSubscribeToChanges,\n /**\n * @description By default, HealthKit data is available on iOS and watchOS. HealthKit data is also available on iPadOS 17 or later. However, devices running in an enterprise environment may restrict access to HealthKit data.\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable Apple Docs}\n * @returns {boolean | null} true if HealthKit is available; otherwise, false. null while initializing.\n */\n useIsHealthDataAvailable,\n /**\n * @description Hook to retrieve the current authorization status for the given types, and request authorization if needed.\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614152-requestauthorization Apple Docs - requestAuthorization}\n * @see {@link https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data Apple Docs - Authorizing access to health data}\n */\n useHealthkitAuthorization,\n}\n\nexport * from './types'\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_useHealthkitAuthorization","_interopRequireDefault","_useIsHealthDataAvailable","_useMostRecentCategorySample","_useMostRecentQuantitySample","_useMostRecentWorkout","_useSubscribeToChanges","_nativeTypes","_interopRequireWildcard","_deleteQuantitySample","_deleteSamples","_getDateOfBirth","_getMostRecentCategorySample","_getMostRecentQuantitySample","_getMostRecentWorkout","_getPreferredUnit","_getPreferredUnits","_getRequestStatusForAuthorization","_getWorkoutPlanById","_queryCategorySamples","_queryCategorySamplesWithAnchor","_queryCorrelationSamples","_queryHeartbeatSeriesSamples","_queryHeartbeatSeriesSamplesWithAnchor","_queryQuantitySamples","_queryQuantitySamplesWithAnchor","_querySources","_queryStatisticsForQuantity","_queryWorkouts","_requestAuthorization","_saveCategorySample","_saveCorrelationSample","_saveQuantitySample","_saveWorkoutRoute","_saveWorkoutSample","_subscribeToChanges","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","currentMajorVersionIOS","Platform","OS","parseInt","Version","allQuantityTypesList","values","HKQuantityTypeIdentifier","availableQuantityTypes","majorVersionIOS","arguments","length","undefined","filter","type","cyclingCadence","cyclingFunctionalThresholdPower","cyclingPower","cyclingSpeed","physicalEffort","timeInDaylight","includes","authorizationStatusFor","Native","bind","isHealthDataAvailable","canAccessProtectedData","disableBackgroundDelivery","disableAllBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType","getWorkoutRoutes","_default","isProtectedDataAvailable","getDateOfBirth","getMostRecentQuantitySample","getMostRecentCategorySample","getMostRecentWorkout","getWorkoutPlanById","getPreferredUnit","getPreferredUnits","getRequestStatusForAuthorization","queryCategorySamples","queryCategorySamplesWithAnchor","queryCorrelationSamples","queryHeartbeatSeriesSamples","queryHeartbeatSeriesSamplesWithAnchor","queryQuantitySamples","queryQuantitySamplesWithAnchor","queryStatisticsForQuantity","queryWorkouts","querySources","requestAuthorization","deleteQuantitySample","deleteSamples","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","saveWorkoutRoute","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useIsHealthDataAvailable","useHealthkitAuthorization"],"sources":["index.ios.tsx"],"sourcesContent":["import { Platform } from 'react-native'\n\nimport useHealthkitAuthorization from './hooks/useHealthkitAuthorization'\nimport useIsHealthDataAvailable from './hooks/useIsHealthDataAvailable'\nimport useMostRecentCategorySample from './hooks/useMostRecentCategorySample'\nimport useMostRecentQuantitySample from './hooks/useMostRecentQuantitySample'\nimport useMostRecentWorkout from './hooks/useMostRecentWorkout'\nimport useSubscribeToChanges from './hooks/useSubscribeToChanges'\nimport Native, { HKQuantityTypeIdentifier } from './native-types'\nimport deleteQuantitySample from './utils/deleteQuantitySample'\nimport deleteSamples from './utils/deleteSamples'\nimport getDateOfBirth from './utils/getDateOfBirth'\nimport getMostRecentCategorySample from './utils/getMostRecentCategorySample'\nimport getMostRecentQuantitySample from './utils/getMostRecentQuantitySample'\nimport getMostRecentWorkout from './utils/getMostRecentWorkout'\nimport getPreferredUnit from './utils/getPreferredUnit'\nimport getPreferredUnits from './utils/getPreferredUnits'\nimport getRequestStatusForAuthorization from './utils/getRequestStatusForAuthorization'\nimport getWorkoutPlanById from './utils/getWorkoutPlanById'\nimport queryCategorySamples from './utils/queryCategorySamples'\nimport queryCategorySamplesWithAnchor from './utils/queryCategorySamplesWithAnchor'\nimport queryCorrelationSamples from './utils/queryCorrelationSamples'\nimport queryHeartbeatSeriesSamples from './utils/queryHeartbeatSeriesSamples'\nimport queryHeartbeatSeriesSamplesWithAnchor from './utils/queryHeartbeatSeriesSamplesWithAnchor'\nimport queryQuantitySamples from './utils/queryQuantitySamples'\nimport queryQuantitySamplesWithAnchor from './utils/queryQuantitySamplesWithAnchor'\nimport querySources from './utils/querySources'\nimport queryStatisticsForQuantity from './utils/queryStatisticsForQuantity'\nimport queryWorkouts from './utils/queryWorkouts'\nimport requestAuthorization from './utils/requestAuthorization'\nimport saveCategorySample from './utils/saveCategorySample'\nimport saveCorrelationSample from './utils/saveCorrelationSample'\nimport saveQuantitySample from './utils/saveQuantitySample'\nimport saveWorkoutRoute from './utils/saveWorkoutRoute'\nimport saveWorkoutSample from './utils/saveWorkoutSample'\nimport subscribeToChanges from './utils/subscribeToChanges'\n\nconst currentMajorVersionIOS = Platform.OS === 'ios' ? parseInt(Platform.Version, 10) : 0\n\nconst allQuantityTypesList = [...Object.values(HKQuantityTypeIdentifier)]\n\nconst availableQuantityTypes = (majorVersionIOS = currentMajorVersionIOS) => {\n if (majorVersionIOS >= 17) {\n return allQuantityTypesList\n }\n\n // remove types that are not available before iOS 17\n return allQuantityTypesList.filter((type) => ![\n HKQuantityTypeIdentifier.cyclingCadence,\n HKQuantityTypeIdentifier.cyclingFunctionalThresholdPower,\n HKQuantityTypeIdentifier.cyclingPower,\n HKQuantityTypeIdentifier.cyclingSpeed,\n HKQuantityTypeIdentifier.physicalEffort,\n HKQuantityTypeIdentifier.timeInDaylight,\n ].includes(type))\n}\n\nconst authorizationStatusFor = Native.authorizationStatusFor.bind(Native)\nconst isHealthDataAvailable = Native.isHealthDataAvailable.bind(Native)\n// Todo [>8]: Rename to align with Apple function name (isProtectedDataAvailable)\nconst canAccessProtectedData = Native.canAccessProtectedData.bind(Native)\nconst disableBackgroundDelivery = Native.disableBackgroundDelivery.bind(Native)\nconst disableAllBackgroundDelivery = Native.disableAllBackgroundDelivery.bind(Native)\nconst enableBackgroundDelivery = Native.enableBackgroundDelivery.bind(Native)\nconst getBiologicalSex = Native.getBiologicalSex.bind(Native)\nconst getFitzpatrickSkinType = Native.getFitzpatrickSkinType.bind(Native)\nconst getWheelchairUse = Native.getWheelchairUse.bind(Native)\nconst getBloodType = Native.getBloodType.bind(Native)\nconst getWorkoutRoutes = Native.getWorkoutRoutes.bind(Native)\n\n/**\n * @see {@link https://developer.apple.com/documentation/healthkit/about_the_healthkit_framework About the HealthKit Framework (Apple Docs)}\n */\nexport default {\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614154-authorizationstatus authorizationStatus(for:) (Apple Docs) }\n * @see {@link https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data Authorizing access to health data (Apple Docs) }\n */\n authorizationStatusFor,\n\n /**\n *\n * @returns All available quantity types for the current iOS version (currently excluding types that are not available before iOS 17)\n */\n availableQuantityTypes,\n\n /**\n * @description By default, HealthKit data is available on iOS and watchOS. HealthKit data is also available on iPadOS 17 or later. However, devices running in an enterprise environment may restrict access to HealthKit data.\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable isHealthDataAvailable() (Apple Docs)}\n * @returns {boolean} true if HealthKit is available; otherwise, false.\n */\n isHealthDataAvailable,\n\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614181-isprotecteddataavailable isProtectedDataAvailable() (Apple Docs)}\n * @see {@link https://developer.apple.com/documentation/healthkit/protecting_user_privacy#3705074 Protecting User Privacy - Access encrypted data (Apple Docs)}\n * @returns {boolean} A Boolean value that indicates whether content protection is active.\n */\n isProtectedDataAvailable: canAccessProtectedData,\n\n // Todo [>8]: Remove to align with Apple function name (isProtectedDataAvailable)\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614181-isprotecteddataavailable isProtectedDataAvailable() (Apple Docs)}\n * @see {@link https://developer.apple.com/documentation/healthkit/protecting_user_privacy#3705074 Protecting User Privacy - Access encrypted data (Apple Docs)}\n * @deprecated Use {@link isProtectedDataAvailable} instead. Will be removed in next major version.\n * @returns {boolean} A Boolean value that indicates whether content protection is active.\n */\n canAccessProtectedData,\n\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614158-disableallbackgrounddelivery disableAllBackgroundDelivery(completion:) (Apple Docs)}\n */\n disableAllBackgroundDelivery,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614177-disablebackgrounddelivery disableBackgroundDelivery(for:withCompletion:) (Apple Docs)}\n */\n disableBackgroundDelivery,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614175-enablebackgrounddelivery enableBackgroundDelivery(for:frequency:withCompletion:) (Apple Docs)}\n */\n enableBackgroundDelivery,\n\n // simple convenience getters\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614171-biologicalsex biologicalSex() (Apple Docs)}\n */\n getBiologicalSex,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614161-fitzpatrickskintype fitzpatrickSkinType() (Apple Docs)}\n */\n getFitzpatrickSkinType,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1648356-wheelchairuse wheelchairUse() (Apple Docs)}\n */\n getWheelchairUse,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614164-bloodtype bloodType() (Apple Docs)}\n */\n getBloodType,\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1648357-dateofbirthcomponents dateOfBirthComponents() (Apple Docs)}\n */\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/workouts_and_activity_rings/reading_route_data Reading route data (Apple Docs)}\n * @see {@link https://developer.apple.com/documentation/healthkit/hkworkoutroutequery HKWorkoutRouteQuery (Apple Docs)}\n */\n getWorkoutRoutes,\n getWorkoutPlanById,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n // query methods\n queryCategorySamples,\n queryCategorySamplesWithAnchor,\n queryCorrelationSamples,\n queryHeartbeatSeriesSamples,\n queryHeartbeatSeriesSamplesWithAnchor,\n queryQuantitySamples,\n queryQuantitySamplesWithAnchor,\n queryStatisticsForQuantity,\n queryWorkouts,\n querySources,\n\n requestAuthorization,\n\n // delete methods\n deleteQuantitySample,\n deleteSamples,\n\n // save methods\n /**\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614168-savecategorysample save(_:withCompletion:) (Apple Docs)}\n * @see {@link https://developer.apple.com/documentation/healthkit/saving_data_to_healthkit Saving data to HealthKit (Apple Docs)}\n */\n saveCategorySample,\n saveCorrelationSample,\n saveQuantitySample,\n saveWorkoutSample,\n saveWorkoutRoute,\n\n // subscriptions\n subscribeToChanges,\n\n /**\n * @returns the most recent sample for the given category type.\n */\n useMostRecentCategorySample,\n /**\n * @returns the most recent sample for the given quantity type.\n */\n useMostRecentQuantitySample,\n /**\n * @returns the most recent workout sample.\n */\n useMostRecentWorkout,\n useSubscribeToChanges,\n /**\n * @description By default, HealthKit data is available on iOS and watchOS. HealthKit data is also available on iPadOS 17 or later. However, devices running in an enterprise environment may restrict access to HealthKit data.\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable Apple Docs}\n * @returns {boolean | null} true if HealthKit is available; otherwise, false. null while initializing.\n */\n useIsHealthDataAvailable,\n /**\n * @description Hook to retrieve the current authorization status for the given types, and request authorization if needed.\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614152-requestauthorization Apple Docs - requestAuthorization}\n * @see {@link https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data Apple Docs - Authorizing access to health data}\n */\n useHealthkitAuthorization,\n}\n\nexport * from './types'\n"],"mappings":"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"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -83,6 +83,7 @@ const Healthkit = {
|
|
|
83
83
|
requestAuthorization: UnavailableFn(Promise.resolve(false)),
|
|
84
84
|
deleteQuantitySample: UnavailableFn(Promise.resolve(false)),
|
|
85
85
|
deleteSamples: UnavailableFn(Promise.resolve(false)),
|
|
86
|
+
getWorkoutPlanById: UnavailableFn(Promise.resolve(null)),
|
|
86
87
|
saveCategorySample: UnavailableFn(Promise.resolve(false)),
|
|
87
88
|
saveCorrelationSample: UnavailableFn(Promise.resolve(false)),
|
|
88
89
|
saveQuantitySample: UnavailableFn(Promise.resolve(false)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_nativeTypes","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","notAvailableError","Platform","OS","hasWarned","UnavailableFn","retVal","console","warn","Healthkit","authorizationStatusFor","Promise","resolve","HKAuthorizationStatus","notDetermined","availableQuantityTypes","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","HKBiologicalSex","notSet","getBloodType","HKBloodType","getDateOfBirth","Date","getFitzpatrickSkinType","HKFitzpatrickSkinType","getMostRecentCategorySample","getMostRecentQuantitySample","getMostRecentWorkout","getPreferredUnit","HKUnits","Count","getPreferredUnits","getRequestStatusForAuthorization","HKAuthorizationRequestStatus","unknown","getWheelchairUse","HKWheelchairUse","getWorkoutRoutes","isHealthDataAvailable","queryCategorySamples","queryCategorySamplesWithAnchor","samples","deletedSamples","newAnchor","queryCorrelationSamples","queryHeartbeatSeriesSamples","queryHeartbeatSeriesSamplesWithAnchor","queryQuantitySamples","queryQuantitySamplesWithAnchor","queryStatisticsForQuantity","averageQuantity","undefined","maximumQuantity","minimumQuantity","sumQuantity","mostRecentQuantity","mostRecentQuantityDateInterval","duration","queryWorkouts","querySources","requestAuthorization","deleteQuantitySample","deleteSamples","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","saveWorkoutRoute","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useHealthkitAuthorization","useIsHealthDataAvailable","canAccessProtectedData","isProtectedDataAvailable","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { Platform } from 'react-native'\n\nimport {\n HKAuthorizationRequestStatus, HKAuthorizationStatus, HKBiologicalSex, HKBloodType, HKFitzpatrickSkinType, HKUnits, HKWheelchairUse,\n} from './native-types'\n\nimport type ReactNativeHealthkit from './index.ios'\nimport type { QueryCategorySamplesFn } from './utils/queryCategorySamples'\nimport type { QueryQuantitySamplesFn } from './utils/queryQuantitySamples'\n\nconst notAvailableError = `[@kingstinct/react-native-healthkit] Platform \"${\n Platform.OS\n}\" not supported`\n\nlet hasWarned = false\n\nfunction UnavailableFn<T = unknown>(retVal: T) {\n return () => {\n if (!hasWarned) {\n // eslint-disable-next-line no-console\n console.warn(notAvailableError)\n hasWarned = true\n }\n return retVal\n }\n}\n\nconst Healthkit = {\n authorizationStatusFor: UnavailableFn(Promise.resolve(HKAuthorizationStatus.notDetermined)),\n availableQuantityTypes: UnavailableFn([]),\n disableAllBackgroundDelivery: UnavailableFn(Promise.resolve(false)),\n disableBackgroundDelivery: UnavailableFn(Promise.resolve(false)),\n enableBackgroundDelivery: UnavailableFn(Promise.resolve(false)),\n getBiologicalSex: UnavailableFn(Promise.resolve(HKBiologicalSex.notSet)),\n getBloodType: UnavailableFn(Promise.resolve(HKBloodType.notSet)),\n getDateOfBirth: UnavailableFn(Promise.resolve(new Date(0))),\n getFitzpatrickSkinType: UnavailableFn(Promise.resolve(HKFitzpatrickSkinType.notSet)),\n getMostRecentCategorySample: UnavailableFn(Promise.resolve(null)),\n getMostRecentQuantitySample: UnavailableFn(Promise.resolve(null)),\n getMostRecentWorkout: UnavailableFn(Promise.resolve(null)),\n getPreferredUnit: UnavailableFn(Promise.resolve(HKUnits.Count)),\n getPreferredUnits: UnavailableFn(Promise.resolve([])),\n getRequestStatusForAuthorization: UnavailableFn(Promise.resolve(HKAuthorizationRequestStatus.unknown)),\n getWheelchairUse: UnavailableFn(Promise.resolve(HKWheelchairUse.notSet)),\n getWorkoutRoutes: UnavailableFn(Promise.resolve([])),\n isHealthDataAvailable: async () => Promise.resolve(false),\n queryCategorySamples: UnavailableFn(Promise.resolve([])) as unknown as QueryCategorySamplesFn,\n queryCategorySamplesWithAnchor: UnavailableFn(Promise.resolve({\n samples: [],\n deletedSamples: [],\n newAnchor: '',\n })),\n queryCorrelationSamples: UnavailableFn(Promise.resolve([])),\n queryHeartbeatSeriesSamples: UnavailableFn(Promise.resolve([])),\n queryHeartbeatSeriesSamplesWithAnchor: UnavailableFn(Promise.resolve({\n samples: [],\n deletedSamples: [],\n newAnchor: '',\n })),\n queryQuantitySamples: UnavailableFn(Promise.resolve([])) as unknown as QueryQuantitySamplesFn,\n queryQuantitySamplesWithAnchor: UnavailableFn(Promise.resolve({\n samples: [],\n deletedSamples: [],\n newAnchor: '',\n })),\n queryStatisticsForQuantity: UnavailableFn(Promise.resolve({\n averageQuantity: undefined,\n maximumQuantity: undefined,\n minimumQuantity: undefined,\n sumQuantity: undefined,\n mostRecentQuantity: undefined,\n mostRecentQuantityDateInterval: undefined,\n duration: undefined,\n })),\n queryWorkouts: UnavailableFn(Promise.resolve([])),\n querySources: UnavailableFn(Promise.resolve([])),\n requestAuthorization: UnavailableFn(Promise.resolve(false)),\n deleteQuantitySample: UnavailableFn(Promise.resolve(false)),\n deleteSamples: UnavailableFn(Promise.resolve(false)),\n saveCategorySample: UnavailableFn(Promise.resolve(false)),\n saveCorrelationSample: UnavailableFn(Promise.resolve(false)),\n saveQuantitySample: UnavailableFn(Promise.resolve(false)),\n saveWorkoutSample: UnavailableFn(Promise.resolve(null)),\n saveWorkoutRoute: UnavailableFn(Promise.resolve(false)),\n subscribeToChanges: UnavailableFn(Promise.resolve(async () => Promise.resolve(false))),\n useMostRecentCategorySample: UnavailableFn(null),\n useMostRecentQuantitySample: UnavailableFn(null),\n useMostRecentWorkout: UnavailableFn(null),\n useSubscribeToChanges: UnavailableFn([null, () => null]),\n useHealthkitAuthorization: UnavailableFn([null, async () => Promise.resolve(HKAuthorizationRequestStatus.unknown)] as const),\n useIsHealthDataAvailable: () => false,\n canAccessProtectedData: async () => Promise.resolve(false),\n isProtectedDataAvailable: async () => Promise.resolve(false),\n} as typeof ReactNativeHealthkit\n\nexport * from './types'\n\nexport default Healthkit as typeof ReactNativeHealthkit\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_nativeTypes","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","notAvailableError","Platform","OS","hasWarned","UnavailableFn","retVal","console","warn","Healthkit","authorizationStatusFor","Promise","resolve","HKAuthorizationStatus","notDetermined","availableQuantityTypes","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","HKBiologicalSex","notSet","getBloodType","HKBloodType","getDateOfBirth","Date","getFitzpatrickSkinType","HKFitzpatrickSkinType","getMostRecentCategorySample","getMostRecentQuantitySample","getMostRecentWorkout","getPreferredUnit","HKUnits","Count","getPreferredUnits","getRequestStatusForAuthorization","HKAuthorizationRequestStatus","unknown","getWheelchairUse","HKWheelchairUse","getWorkoutRoutes","isHealthDataAvailable","queryCategorySamples","queryCategorySamplesWithAnchor","samples","deletedSamples","newAnchor","queryCorrelationSamples","queryHeartbeatSeriesSamples","queryHeartbeatSeriesSamplesWithAnchor","queryQuantitySamples","queryQuantitySamplesWithAnchor","queryStatisticsForQuantity","averageQuantity","undefined","maximumQuantity","minimumQuantity","sumQuantity","mostRecentQuantity","mostRecentQuantityDateInterval","duration","queryWorkouts","querySources","requestAuthorization","deleteQuantitySample","deleteSamples","getWorkoutPlanById","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","saveWorkoutRoute","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useHealthkitAuthorization","useIsHealthDataAvailable","canAccessProtectedData","isProtectedDataAvailable","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { Platform } from 'react-native'\n\nimport {\n HKAuthorizationRequestStatus, HKAuthorizationStatus, HKBiologicalSex, HKBloodType, HKFitzpatrickSkinType, HKUnits, HKWheelchairUse,\n} from './native-types'\n\nimport type ReactNativeHealthkit from './index.ios'\nimport type { QueryCategorySamplesFn } from './utils/queryCategorySamples'\nimport type { QueryQuantitySamplesFn } from './utils/queryQuantitySamples'\n\nconst notAvailableError = `[@kingstinct/react-native-healthkit] Platform \"${\n Platform.OS\n}\" not supported`\n\nlet hasWarned = false\n\nfunction UnavailableFn<T = unknown>(retVal: T) {\n return () => {\n if (!hasWarned) {\n // eslint-disable-next-line no-console\n console.warn(notAvailableError)\n hasWarned = true\n }\n return retVal\n }\n}\n\nconst Healthkit = {\n authorizationStatusFor: UnavailableFn(Promise.resolve(HKAuthorizationStatus.notDetermined)),\n availableQuantityTypes: UnavailableFn([]),\n disableAllBackgroundDelivery: UnavailableFn(Promise.resolve(false)),\n disableBackgroundDelivery: UnavailableFn(Promise.resolve(false)),\n enableBackgroundDelivery: UnavailableFn(Promise.resolve(false)),\n getBiologicalSex: UnavailableFn(Promise.resolve(HKBiologicalSex.notSet)),\n getBloodType: UnavailableFn(Promise.resolve(HKBloodType.notSet)),\n getDateOfBirth: UnavailableFn(Promise.resolve(new Date(0))),\n getFitzpatrickSkinType: UnavailableFn(Promise.resolve(HKFitzpatrickSkinType.notSet)),\n getMostRecentCategorySample: UnavailableFn(Promise.resolve(null)),\n getMostRecentQuantitySample: UnavailableFn(Promise.resolve(null)),\n getMostRecentWorkout: UnavailableFn(Promise.resolve(null)),\n getPreferredUnit: UnavailableFn(Promise.resolve(HKUnits.Count)),\n getPreferredUnits: UnavailableFn(Promise.resolve([])),\n getRequestStatusForAuthorization: UnavailableFn(Promise.resolve(HKAuthorizationRequestStatus.unknown)),\n getWheelchairUse: UnavailableFn(Promise.resolve(HKWheelchairUse.notSet)),\n getWorkoutRoutes: UnavailableFn(Promise.resolve([])),\n isHealthDataAvailable: async () => Promise.resolve(false),\n queryCategorySamples: UnavailableFn(Promise.resolve([])) as unknown as QueryCategorySamplesFn,\n queryCategorySamplesWithAnchor: UnavailableFn(Promise.resolve({\n samples: [],\n deletedSamples: [],\n newAnchor: '',\n })),\n queryCorrelationSamples: UnavailableFn(Promise.resolve([])),\n queryHeartbeatSeriesSamples: UnavailableFn(Promise.resolve([])),\n queryHeartbeatSeriesSamplesWithAnchor: UnavailableFn(Promise.resolve({\n samples: [],\n deletedSamples: [],\n newAnchor: '',\n })),\n queryQuantitySamples: UnavailableFn(Promise.resolve([])) as unknown as QueryQuantitySamplesFn,\n queryQuantitySamplesWithAnchor: UnavailableFn(Promise.resolve({\n samples: [],\n deletedSamples: [],\n newAnchor: '',\n })),\n queryStatisticsForQuantity: UnavailableFn(Promise.resolve({\n averageQuantity: undefined,\n maximumQuantity: undefined,\n minimumQuantity: undefined,\n sumQuantity: undefined,\n mostRecentQuantity: undefined,\n mostRecentQuantityDateInterval: undefined,\n duration: undefined,\n })),\n queryWorkouts: UnavailableFn(Promise.resolve([])),\n querySources: UnavailableFn(Promise.resolve([])),\n requestAuthorization: UnavailableFn(Promise.resolve(false)),\n deleteQuantitySample: UnavailableFn(Promise.resolve(false)),\n deleteSamples: UnavailableFn(Promise.resolve(false)),\n getWorkoutPlanById: UnavailableFn(Promise.resolve(null)),\n saveCategorySample: UnavailableFn(Promise.resolve(false)),\n saveCorrelationSample: UnavailableFn(Promise.resolve(false)),\n saveQuantitySample: UnavailableFn(Promise.resolve(false)),\n saveWorkoutSample: UnavailableFn(Promise.resolve(null)),\n saveWorkoutRoute: UnavailableFn(Promise.resolve(false)),\n subscribeToChanges: UnavailableFn(Promise.resolve(async () => Promise.resolve(false))),\n useMostRecentCategorySample: UnavailableFn(null),\n useMostRecentQuantitySample: UnavailableFn(null),\n useMostRecentWorkout: UnavailableFn(null),\n useSubscribeToChanges: UnavailableFn([null, () => null]),\n useHealthkitAuthorization: UnavailableFn([null, async () => Promise.resolve(HKAuthorizationRequestStatus.unknown)] as const),\n useIsHealthDataAvailable: () => false,\n canAccessProtectedData: async () => Promise.resolve(false),\n isProtectedDataAvailable: async () => Promise.resolve(false),\n} as typeof ReactNativeHealthkit\n\nexport * from './types'\n\nexport default Healthkit as typeof ReactNativeHealthkit\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AA8FA,IAAAE,MAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAtFA,MAAMS,iBAAiB,GAAI,kDACzBC,qBAAQ,CAACC,EACV,iBAAgB;AAEjB,IAAIC,SAAS,GAAG,KAAK;AAErB,SAASC,aAAaA,CAAcC,MAAS,EAAE;EAC7C,OAAO,MAAM;IACX,IAAI,CAACF,SAAS,EAAE;MACd;MACAG,OAAO,CAACC,IAAI,CAACP,iBAAiB,CAAC;MAC/BG,SAAS,GAAG,IAAI;IAClB;IACA,OAAOE,MAAM;EACf,CAAC;AACH;AAEA,MAAMG,SAAS,GAAG;EAChBC,sBAAsB,EAAEL,aAAa,CAACM,OAAO,CAACC,OAAO,CAACC,kCAAqB,CAACC,aAAa,CAAC,CAAC;EAC3FC,sBAAsB,EAAEV,aAAa,CAAC,EAAE,CAAC;EACzCW,4BAA4B,EAAEX,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EACnEK,yBAAyB,EAAEZ,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EAChEM,wBAAwB,EAAEb,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EAC/DO,gBAAgB,EAAEd,aAAa,CAACM,OAAO,CAACC,OAAO,CAACQ,4BAAe,CAACC,MAAM,CAAC,CAAC;EACxEC,YAAY,EAAEjB,aAAa,CAACM,OAAO,CAACC,OAAO,CAACW,wBAAW,CAACF,MAAM,CAAC,CAAC;EAChEG,cAAc,EAAEnB,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,IAAIa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;EAC3DC,sBAAsB,EAAErB,aAAa,CAACM,OAAO,CAACC,OAAO,CAACe,kCAAqB,CAACN,MAAM,CAAC,CAAC;EACpFO,2BAA2B,EAAEvB,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC,CAAC;EACjEiB,2BAA2B,EAAExB,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC,CAAC;EACjEkB,oBAAoB,EAAEzB,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC,CAAC;EAC1DmB,gBAAgB,EAAE1B,aAAa,CAACM,OAAO,CAACC,OAAO,CAACoB,oBAAO,CAACC,KAAK,CAAC,CAAC;EAC/DC,iBAAiB,EAAE7B,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC,CAAC;EACrDuB,gCAAgC,EAAE9B,aAAa,CAACM,OAAO,CAACC,OAAO,CAACwB,yCAA4B,CAACC,OAAO,CAAC,CAAC;EACtGC,gBAAgB,EAAEjC,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC2B,4BAAe,CAAClB,MAAM,CAAC,CAAC;EACxEmB,gBAAgB,EAAEnC,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC,CAAC;EACpD6B,qBAAqB,EAAE,MAAAA,CAAA,KAAY9B,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;EACzD8B,oBAAoB,EAAErC,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC,CAAsC;EAC7F+B,8BAA8B,EAAEtC,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC;IAC5DgC,OAAO,EAAE,EAAE;IACXC,cAAc,EAAE,EAAE;IAClBC,SAAS,EAAE;EACb,CAAC,CAAC,CAAC;EACHC,uBAAuB,EAAE1C,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC,CAAC;EAC3DoC,2BAA2B,EAAE3C,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC,CAAC;EAC/DqC,qCAAqC,EAAE5C,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC;IACnEgC,OAAO,EAAE,EAAE;IACXC,cAAc,EAAE,EAAE;IAClBC,SAAS,EAAE;EACb,CAAC,CAAC,CAAC;EACHI,oBAAoB,EAAE7C,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC,CAAsC;EAC7FuC,8BAA8B,EAAE9C,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC;IAC5DgC,OAAO,EAAE,EAAE;IACXC,cAAc,EAAE,EAAE;IAClBC,SAAS,EAAE;EACb,CAAC,CAAC,CAAC;EACHM,0BAA0B,EAAE/C,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC;IACxDyC,eAAe,EAAEC,SAAS;IAC1BC,eAAe,EAAED,SAAS;IAC1BE,eAAe,EAAEF,SAAS;IAC1BG,WAAW,EAAEH,SAAS;IACtBI,kBAAkB,EAAEJ,SAAS;IAC7BK,8BAA8B,EAAEL,SAAS;IACzCM,QAAQ,EAAEN;EACZ,CAAC,CAAC,CAAC;EACHO,aAAa,EAAExD,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC,CAAC;EACjDkD,YAAY,EAAEzD,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC,CAAC;EAChDmD,oBAAoB,EAAE1D,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EAC3DoD,oBAAoB,EAAE3D,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EAC3DqD,aAAa,EAAE5D,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EACpDsD,kBAAkB,EAAE7D,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC,CAAC;EACxDuD,kBAAkB,EAAE9D,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EACzDwD,qBAAqB,EAAE/D,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EAC5DyD,kBAAkB,EAAEhE,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EACzD0D,iBAAiB,EAAEjE,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC,CAAC;EACvD2D,gBAAgB,EAAElE,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;EACvD4D,kBAAkB,EAAEnE,aAAa,CAACM,OAAO,CAACC,OAAO,CAAC,YAAYD,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;EACtF6D,2BAA2B,EAAEpE,aAAa,CAAC,IAAI,CAAC;EAChDqE,2BAA2B,EAAErE,aAAa,CAAC,IAAI,CAAC;EAChDsE,oBAAoB,EAAEtE,aAAa,CAAC,IAAI,CAAC;EACzCuE,qBAAqB,EAAEvE,aAAa,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;EACxDwE,yBAAyB,EAAExE,aAAa,CAAC,CAAC,IAAI,EAAE,YAAYM,OAAO,CAACC,OAAO,CAACwB,yCAA4B,CAACC,OAAO,CAAC,CAAU,CAAC;EAC5HyC,wBAAwB,EAAEA,CAAA,KAAM,KAAK;EACrCC,sBAAsB,EAAE,MAAAA,CAAA,KAAYpE,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;EAC1DoE,wBAAwB,EAAE,MAAAA,CAAA,KAAYrE,OAAO,CAACC,OAAO,CAAC,KAAK;AAC7D,CAAgC;AAAA,IAAAqE,QAAA,GAIjBxE,SAAS;AAAAZ,OAAA,CAAAqF,OAAA,GAAAD,QAAA"}
|
|
@@ -38,7 +38,8 @@ const mockModule = {
|
|
|
38
38
|
unsubscribeQuery: jest.fn(),
|
|
39
39
|
// Todo [>8]: Remove to align with Apple function name (isProtectedDataAvailable)
|
|
40
40
|
canAccessProtectedData: jest.fn(),
|
|
41
|
-
saveWorkoutRoute: jest.fn()
|
|
41
|
+
saveWorkoutRoute: jest.fn(),
|
|
42
|
+
getWorkoutPlanById: jest.fn()
|
|
42
43
|
};
|
|
43
44
|
_reactNative.NativeModules.ReactNativeHealthkit = mockModule;
|
|
44
45
|
//# sourceMappingURL=jest.setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","mockModule","isHealthDataAvailable","jest","fn","addListener","removeListeners","authorizationStatusFor","requestAuthorization","saveQuantitySample","deleteQuantitySample","deleteSamples","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","queryCategorySamplesWithAnchor","queryQuantitySamplesWithAnchor","getBiologicalSex","getBloodType","getDateOfBirth","getFitzpatrickSkinType","getPreferredUnits","getRequestStatusForAuthorization","getWheelchairUse","getWorkoutRoutes","queryCategorySamples","queryCorrelationSamples","queryHeartbeatSeriesSamples","queryHeartbeatSeriesSamplesWithAnchor","queryQuantitySamples","querySources","queryStatisticsForQuantity","queryWorkoutSamples","saveCategorySample","saveCorrelationSample","saveWorkoutSample","subscribeToObserverQuery","unsubscribeQuery","canAccessProtectedData","saveWorkoutRoute","NativeModules","ReactNativeHealthkit"],"sources":["jest.setup.ts"],"sourcesContent":["import { NativeModule, NativeModules } from 'react-native'\n\nimport type Native from './native-types'\n\nconst mockModule:
|
|
1
|
+
{"version":3,"names":["_reactNative","require","mockModule","isHealthDataAvailable","jest","fn","addListener","removeListeners","authorizationStatusFor","requestAuthorization","saveQuantitySample","deleteQuantitySample","deleteSamples","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","queryCategorySamplesWithAnchor","queryQuantitySamplesWithAnchor","getBiologicalSex","getBloodType","getDateOfBirth","getFitzpatrickSkinType","getPreferredUnits","getRequestStatusForAuthorization","getWheelchairUse","getWorkoutRoutes","queryCategorySamples","queryCorrelationSamples","queryHeartbeatSeriesSamples","queryHeartbeatSeriesSamplesWithAnchor","queryQuantitySamples","querySources","queryStatisticsForQuantity","queryWorkoutSamples","saveCategorySample","saveCorrelationSample","saveWorkoutSample","subscribeToObserverQuery","unsubscribeQuery","canAccessProtectedData","saveWorkoutRoute","getWorkoutPlanById","NativeModules","ReactNativeHealthkit"],"sources":["jest.setup.ts"],"sourcesContent":["import { NativeModule, NativeModules } from 'react-native'\n\nimport type Native from './native-types'\n\nconst mockModule: NativeModule & typeof Native = {\n isHealthDataAvailable: jest.fn(),\n addListener: jest.fn(),\n removeListeners: jest.fn(),\n authorizationStatusFor: jest.fn(),\n requestAuthorization: jest.fn(),\n saveQuantitySample: jest.fn(),\n deleteQuantitySample: jest.fn(),\n deleteSamples: jest.fn(),\n disableAllBackgroundDelivery: jest.fn(),\n disableBackgroundDelivery: jest.fn(),\n enableBackgroundDelivery: jest.fn(),\n queryCategorySamplesWithAnchor: jest.fn(),\n queryQuantitySamplesWithAnchor: jest.fn(),\n getBiologicalSex: jest.fn(),\n getBloodType: jest.fn(),\n getDateOfBirth: jest.fn(),\n getFitzpatrickSkinType: jest.fn(),\n getPreferredUnits: jest.fn(),\n getRequestStatusForAuthorization: jest.fn(),\n getWheelchairUse: jest.fn(),\n getWorkoutRoutes: jest.fn(),\n queryCategorySamples: jest.fn(),\n queryCorrelationSamples: jest.fn(),\n queryHeartbeatSeriesSamples: jest.fn(),\n queryHeartbeatSeriesSamplesWithAnchor: jest.fn(),\n queryQuantitySamples: jest.fn(),\n querySources: jest.fn(),\n queryStatisticsForQuantity: jest.fn(),\n queryWorkoutSamples: jest.fn(),\n saveCategorySample: jest.fn(),\n saveCorrelationSample: jest.fn(),\n saveWorkoutSample: jest.fn(),\n subscribeToObserverQuery: jest.fn(),\n unsubscribeQuery: jest.fn(),\n // Todo [>8]: Remove to align with Apple function name (isProtectedDataAvailable)\n canAccessProtectedData: jest.fn(),\n saveWorkoutRoute: jest.fn(),\n getWorkoutPlanById: jest.fn(),\n}\n\nNativeModules.ReactNativeHealthkit = mockModule\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIA,MAAMC,UAAwC,GAAG;EAC/CC,qBAAqB,EAAEC,IAAI,CAACC,EAAE,CAAC,CAAC;EAChCC,WAAW,EAAEF,IAAI,CAACC,EAAE,CAAC,CAAC;EACtBE,eAAe,EAAEH,IAAI,CAACC,EAAE,CAAC,CAAC;EAC1BG,sBAAsB,EAAEJ,IAAI,CAACC,EAAE,CAAC,CAAC;EACjCI,oBAAoB,EAAEL,IAAI,CAACC,EAAE,CAAC,CAAC;EAC/BK,kBAAkB,EAAEN,IAAI,CAACC,EAAE,CAAC,CAAC;EAC7BM,oBAAoB,EAAEP,IAAI,CAACC,EAAE,CAAC,CAAC;EAC/BO,aAAa,EAAER,IAAI,CAACC,EAAE,CAAC,CAAC;EACxBQ,4BAA4B,EAAET,IAAI,CAACC,EAAE,CAAC,CAAC;EACvCS,yBAAyB,EAAEV,IAAI,CAACC,EAAE,CAAC,CAAC;EACpCU,wBAAwB,EAAEX,IAAI,CAACC,EAAE,CAAC,CAAC;EACnCW,8BAA8B,EAAEZ,IAAI,CAACC,EAAE,CAAC,CAAC;EACzCY,8BAA8B,EAAEb,IAAI,CAACC,EAAE,CAAC,CAAC;EACzCa,gBAAgB,EAAEd,IAAI,CAACC,EAAE,CAAC,CAAC;EAC3Bc,YAAY,EAAEf,IAAI,CAACC,EAAE,CAAC,CAAC;EACvBe,cAAc,EAAEhB,IAAI,CAACC,EAAE,CAAC,CAAC;EACzBgB,sBAAsB,EAAEjB,IAAI,CAACC,EAAE,CAAC,CAAC;EACjCiB,iBAAiB,EAAElB,IAAI,CAACC,EAAE,CAAC,CAAC;EAC5BkB,gCAAgC,EAAEnB,IAAI,CAACC,EAAE,CAAC,CAAC;EAC3CmB,gBAAgB,EAAEpB,IAAI,CAACC,EAAE,CAAC,CAAC;EAC3BoB,gBAAgB,EAAErB,IAAI,CAACC,EAAE,CAAC,CAAC;EAC3BqB,oBAAoB,EAAEtB,IAAI,CAACC,EAAE,CAAC,CAAC;EAC/BsB,uBAAuB,EAAEvB,IAAI,CAACC,EAAE,CAAC,CAAC;EAClCuB,2BAA2B,EAAExB,IAAI,CAACC,EAAE,CAAC,CAAC;EACtCwB,qCAAqC,EAAEzB,IAAI,CAACC,EAAE,CAAC,CAAC;EAChDyB,oBAAoB,EAAE1B,IAAI,CAACC,EAAE,CAAC,CAAC;EAC/B0B,YAAY,EAAE3B,IAAI,CAACC,EAAE,CAAC,CAAC;EACvB2B,0BAA0B,EAAE5B,IAAI,CAACC,EAAE,CAAC,CAAC;EACrC4B,mBAAmB,EAAE7B,IAAI,CAACC,EAAE,CAAC,CAAC;EAC9B6B,kBAAkB,EAAE9B,IAAI,CAACC,EAAE,CAAC,CAAC;EAC7B8B,qBAAqB,EAAE/B,IAAI,CAACC,EAAE,CAAC,CAAC;EAChC+B,iBAAiB,EAAEhC,IAAI,CAACC,EAAE,CAAC,CAAC;EAC5BgC,wBAAwB,EAAEjC,IAAI,CAACC,EAAE,CAAC,CAAC;EACnCiC,gBAAgB,EAAElC,IAAI,CAACC,EAAE,CAAC,CAAC;EAC3B;EACAkC,sBAAsB,EAAEnC,IAAI,CAACC,EAAE,CAAC,CAAC;EACjCmC,gBAAgB,EAAEpC,IAAI,CAACC,EAAE,CAAC,CAAC;EAC3BoC,kBAAkB,EAAErC,IAAI,CAACC,EAAE,CAAC;AAC9B,CAAC;AAEDqC,0BAAa,CAACC,oBAAoB,GAAGzC,UAAU"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = exports.UnitOfVolume = exports.UnitOfTime = exports.UnitOfPressure = exports.UnitOfMass = exports.UnitOfLength = exports.UnitOfEnergy = exports.TemperatureUnit = exports.HKWorkoutTypeIdentifier = exports.HKWorkoutRouteTypeIdentifier = exports.HKWorkoutEventType = exports.HKWorkoutActivityType = exports.HKWheelchairUse = exports.HKWeatherCondition = exports.HKUpdateFrequency = exports.HKUnits = exports.HKUnitMetric = exports.HKStatisticsOptions = exports.HKQuantityTypeIdentifier = exports.HKMetricPrefix = exports.HKInsulinDeliveryReason = exports.HKHeartRateMotionContext = exports.HKFitzpatrickSkinType = exports.HKCorrelationTypeIdentifier = exports.HKCharacteristicTypeIdentifier = exports.HKCategoryValueSleepAnalysis = exports.HKCategoryValueSeverity = exports.HKCategoryValuePresence = exports.HKCategoryValueOvulationTestResult = exports.HKCategoryValueNotApplicable = exports.HKCategoryValueMenstrualFlow = exports.HKCategoryValueLowCardioFitnessEvent = exports.HKCategoryValueCervicalMucusQuality = exports.HKCategoryValueAppleStandHour = exports.HKCategoryValueAppetiteChanges = exports.HKCategoryTypeIdentifier = exports.HKBloodType = exports.HKBiologicalSex = exports.HKAuthorizationStatus = exports.HKAuthorizationRequestStatus = exports.HKAudiogramTypeIdentifier = exports.
|
|
6
|
+
exports.default = exports.UnitOfVolume = exports.UnitOfTime = exports.UnitOfPressure = exports.UnitOfMass = exports.UnitOfLength = exports.UnitOfEnergy = exports.TemperatureUnit = exports.HKWorkoutTypeIdentifier = exports.HKWorkoutRouteTypeIdentifier = exports.HKWorkoutEventType = exports.HKWorkoutActivityType = exports.HKWheelchairUse = exports.HKWeatherCondition = exports.HKUpdateFrequency = exports.HKUnits = exports.HKUnitMetric = exports.HKStatisticsOptions = exports.HKQuantityTypeIdentifier = exports.HKMetricPrefix = exports.HKInsulinDeliveryReason = exports.HKHeartRateMotionContext = exports.HKFitzpatrickSkinType = exports.HKCorrelationTypeIdentifier = exports.HKCharacteristicTypeIdentifier = exports.HKCategoryValueSleepAnalysis = exports.HKCategoryValueSeverity = exports.HKCategoryValuePresence = exports.HKCategoryValueOvulationTestResult = exports.HKCategoryValueNotApplicable = exports.HKCategoryValueMenstrualFlow = exports.HKCategoryValueLowCardioFitnessEvent = exports.HKCategoryValueCervicalMucusQuality = exports.HKCategoryValueAppleStandHour = exports.HKCategoryValueAppetiteChanges = exports.HKCategoryTypeIdentifier = exports.HKBloodType = exports.HKBiologicalSex = exports.HKAuthorizationStatus = exports.HKAuthorizationRequestStatus = exports.HKAudiogramTypeIdentifier = exports.HKActivitySummaryTypeIdentifier = exports.EventEmitter = exports.BloodGlucoseUnit = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
/**
|
|
9
9
|
* Represents a workout type identifier.
|
|
@@ -16,13 +16,13 @@ const HKWorkoutTypeIdentifier = 'HKWorkoutTypeIdentifier';
|
|
|
16
16
|
* @see {@link https://developer.apple.com/documentation/healthkit/hkactivitysummarytype Apple Docs HKActivitySummaryType}
|
|
17
17
|
*/
|
|
18
18
|
exports.HKWorkoutTypeIdentifier = HKWorkoutTypeIdentifier;
|
|
19
|
-
const
|
|
19
|
+
const HKActivitySummaryTypeIdentifier = 'HKActivitySummaryTypeIdentifier';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Represents an audiogram type identifier.
|
|
23
23
|
* @see {@link https://developer.apple.com/documentation/healthkit/HKAudiogramSampleType Apple Docs HKAudiogramSampleType}
|
|
24
24
|
*/
|
|
25
|
-
exports.
|
|
25
|
+
exports.HKActivitySummaryTypeIdentifier = HKActivitySummaryTypeIdentifier;
|
|
26
26
|
const HKAudiogramTypeIdentifier = 'HKAudiogramSampleType';
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -754,8 +754,8 @@ let HKCharacteristicTypeIdentifier = /*#__PURE__*/function (HKCharacteristicType
|
|
|
754
754
|
}({}); // HKActivityMoveModeObject
|
|
755
755
|
exports.HKCharacteristicTypeIdentifier = HKCharacteristicTypeIdentifier;
|
|
756
756
|
/**
|
|
757
|
-
* @see {@link https://developer.apple.com/documentation/healthkit/hkupdatefrequency Apple Docs }
|
|
758
|
-
*/
|
|
757
|
+
* @see {@link https://developer.apple.com/documentation/healthkit/hkupdatefrequency Apple Docs }
|
|
758
|
+
*/
|
|
759
759
|
let HKUpdateFrequency = /*#__PURE__*/function (HKUpdateFrequency) {
|
|
760
760
|
HKUpdateFrequency[HKUpdateFrequency["immediate"] = 1] = "immediate";
|
|
761
761
|
HKUpdateFrequency[HKUpdateFrequency["hourly"] = 2] = "hourly";
|