@kingstinct/react-native-healthkit 7.0.5 → 7.1.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 (37) hide show
  1. package/README.md +7 -31
  2. package/ios/ReactNativeHealthkit.swift +68 -2
  3. package/lib/commonjs/hooks/useIsHealthDataAvailable.js +5 -0
  4. package/lib/commonjs/hooks/useIsHealthDataAvailable.js.map +1 -1
  5. package/lib/commonjs/index.ios.js +121 -15
  6. package/lib/commonjs/index.ios.js.map +1 -1
  7. package/lib/commonjs/index.js +3 -1
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/jest.setup.js +1 -0
  10. package/lib/commonjs/jest.setup.js.map +1 -1
  11. package/lib/commonjs/native-types.js +68 -32
  12. package/lib/commonjs/native-types.js.map +1 -1
  13. package/lib/commonjs/types.js.map +1 -1
  14. package/lib/module/hooks/useIsHealthDataAvailable.js +6 -0
  15. package/lib/module/hooks/useIsHealthDataAvailable.js.map +1 -1
  16. package/lib/module/index.ios.js +119 -15
  17. package/lib/module/index.ios.js.map +1 -1
  18. package/lib/module/index.js +3 -1
  19. package/lib/module/index.js.map +1 -1
  20. package/lib/module/jest.setup.js +1 -0
  21. package/lib/module/jest.setup.js.map +1 -1
  22. package/lib/module/native-types.js +65 -29
  23. package/lib/module/native-types.js.map +1 -1
  24. package/lib/module/types.js +59 -0
  25. package/lib/module/types.js.map +1 -1
  26. package/lib/typescript/src/hooks/useIsHealthDataAvailable.d.ts +5 -0
  27. package/lib/typescript/src/index.d.ts +50 -3
  28. package/lib/typescript/src/index.ios.d.ts +84 -3
  29. package/lib/typescript/src/native-types.d.ts +583 -38
  30. package/lib/typescript/src/types.d.ts +49 -0
  31. package/package.json +1 -1
  32. package/src/hooks/useIsHealthDataAvailable.ts +5 -0
  33. package/src/index.ios.tsx +132 -21
  34. package/src/index.tsx +6 -4
  35. package/src/jest.setup.ts +1 -0
  36. package/src/native-types.ts +692 -93
  37. package/src/types.ts +51 -2
package/README.md CHANGED
@@ -23,10 +23,10 @@ This library is provided as-is without any warranty and is not affiliated with A
23
23
 
24
24
  ## Installation
25
25
 
26
- ### Expo Managed Workflow (easiest - with config plugin)
26
+ ### Expo
27
27
  Usage with Expo is possible - just keep in mind it will not work in Expo Go and [you'll need to roll your own Dev Client](https://docs.expo.dev/development/getting-started/).
28
28
 
29
- 1. `yarn add @kingstinct/react-native-healthkit` (or `npm install @kingstinct/react-native-healthkit`)
29
+ 1. `yarn add @kingstinct/react-native-healthkit`
30
30
  2. Update your app.json with the config plugin:
31
31
  ```json
32
32
  {
@@ -42,50 +42,26 @@ this will give you defaults that make the app build without any further configur
42
42
  "plugins": [
43
43
  ["@kingstinct/react-native-healthkit", {
44
44
  "NSHealthShareUsageDescription": "Your own custom usage description",
45
- "NSHealthUpdateUsageDescription": false, // if you have no plans to update data, you can skip adding it to your info.plist
46
- "background": false // if you have no plans to use it in background mode, skip adding it to the entitlements
45
+ "NSHealthUpdateUsageDescription": false, // if you have no plans to update data, you could skip adding it to your info.plist
46
+ "background": false // if you have no plans to use it in background mode, you could skip adding it to the entitlements
47
47
  }]
48
48
  ]
49
49
  }
50
50
  }
51
51
  ```
52
52
  3. Build a new Dev Client
53
- 4. During runtime check and request permissions with `requestAuthorization`. Failing to request authorization, or requesting a permission you haven't requested yet, will result in the app crashing.
54
-
55
- ### Expo Managed Workflow (manual)
56
- Usage with Expo is possible - just keep in mind it will not work in Expo Go and [you'll need to roll your own Dev Client](https://docs.expo.dev/development/getting-started/).
57
-
58
- 1. `yarn add @kingstinct/react-native-healthkit` (or `npm install @kingstinct/react-native-healthkit`)
59
- 2. Update your app.json:
60
- ```json
61
- {
62
- "expo": {
63
- "ios": {
64
- "infoPlist": {
65
- "NSHealthShareUsageDescription": "<< your usage description here >>", // (optional) if you want to read healthkit data
66
- "NSHealthUpdateUsageDescription": "<< your usage description here >>" // (optional) if you want to write healthkit data
67
- },
68
- "entitlements": {
69
- "com.apple.developer.healthkit": true, // required to use healthkit
70
- "com.apple.developer.healthkit.background-delivery": true // (optional) if you want to use background delivery
71
- }
72
- }
73
- }
74
- }
75
- ```
76
- 3. Build a new Dev Client
77
- 4. During runtime check and request permissions with `requestAuthorization`. Failing to request authorization, or requesting a permission you haven't requested yet, will result in the app crashing.
78
53
 
79
54
  ### Native or Expo Bare Workflow
80
- 1. `yarn add @kingstinct/react-native-healthkit` (or `npm install @kingstinct/react-native-healthkit`)
55
+ 1. `yarn add @kingstinct/react-native-healthkit`
81
56
  2. `npx pod-install`
82
57
  3. Set `NSHealthUpdateUsageDescription` and `NSHealthShareUsageDescription` in your `Info.plist`
83
58
  4. Enable the HealthKit capability for the project in Xcode.
84
59
  5. Since this package is using Swift you might also need to add a bridging header in your project if you haven't already, you can [find more about that in the official React Native docs](https://reactnative.dev/docs/native-modules-ios#exporting-swift)
85
- 6. During runtime check and request permissions with `requestAuthorization`. Failing to request authorization, or requesting a permission you haven't requested yet, will result in the app crashing.
86
60
 
87
61
  ## Usage
88
62
 
63
+ During runtime check and request permissions with `requestAuthorization`. Failing to request authorization, or requesting a permission you haven't requested yet, will result in the app crashing. This is easy to miss - for example by requesting authorization in the same component where you have a hook trying to fetch data right away.. :)
64
+
89
65
  Some hook examples:
90
66
  ```TypeScript
91
67
  import { HKQuantityTypeIdentifier, useHealthkitAuthorization } from '@kingstinct/react-native-healthkit';
@@ -1,6 +1,10 @@
1
1
  import HealthKit
2
2
  import CoreLocation
3
3
 
4
+ #if canImport(WorkoutKit)
5
+ import WorkoutKit
6
+ #endif
7
+
4
8
  @objc(ReactNativeHealthkit)
5
9
  @available(iOS 10.0, *)
6
10
  class ReactNativeHealthkit: RCTEventEmitter {
@@ -504,6 +508,8 @@ class ReactNativeHealthkit: RCTEventEmitter {
504
508
  store.execute(query)
505
509
 
506
510
  self._runningQueries.updateValue(query, forKey: queryId)
511
+
512
+ resolve(queryId)
507
513
  }
508
514
 
509
515
  @objc(unsubscribeQuery:resolve:reject:)
@@ -617,6 +623,7 @@ class ReactNativeHealthkit: RCTEventEmitter {
617
623
 
618
624
  @objc(queryWorkoutSamples:distanceUnitString:from:to:limit:ascending:resolve:reject:)
619
625
  func queryWorkoutSamples(energyUnitString: String, distanceUnitString: String, from: Date, to: Date, limit: Int, ascending: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
626
+
620
627
  guard let store = _store else {
621
628
  return reject(INIT_ERROR, INIT_ERROR_MESSAGE, nil)
622
629
  }
@@ -656,11 +663,70 @@ class ReactNativeHealthkit: RCTEventEmitter {
656
663
  "metadata": serializeMetadata(metadata: workout.metadata),
657
664
  "sourceRevision": serializeSourceRevision(_sourceRevision: workout.sourceRevision) as Any
658
665
  ]
659
-
666
+
667
+ //this is used for our laps functionality to get markers
668
+ //https://developer.apple.com/documentation/healthkit/hkworkoutevent
669
+ var eventArray: [[String: Any]] = []
670
+ if let events = workout.workoutEvents {
671
+ for event in events {
672
+ let eventStartDate = self._dateFormatter.string(from: event.dateInterval.start)
673
+ let eventEndDate = self._dateFormatter.string(from: event.dateInterval.end)
674
+ let eventDict: [String: Any] = [
675
+ "type": event.type.rawValue, //https://developer.apple.com/documentation/healthkit/hkworkouteventtype
676
+ "startDate": eventStartDate,
677
+ "endDate": eventEndDate
678
+ ]
679
+ eventArray.append(eventDict)
680
+ }
681
+ }
682
+ dict["events"] = eventArray
683
+
684
+ //also used for our laps functionality to get activities for custom workouts defined by the user
685
+ //https://developer.apple.com/documentation/healthkit/hkworkout/1615340-init
686
+ //it seems this might be depricated in the latest beta so this might need updating!
687
+ var activitiesArray: [[String: Any]] = []
688
+ if #available(iOS 16.0, *) {
689
+ let activities: [HKWorkoutActivity] = workout.workoutActivities
690
+
691
+ if !activities.isEmpty{
692
+ for activity in activities {
693
+ var activityStartDate = ""
694
+ var activityEndDate = ""
695
+ if let start = activity.startDate as Date? {
696
+ activityStartDate = self._dateFormatter.string(from: activity.startDate)
697
+ }
698
+ if let end = activity.endDate as Date? {
699
+ activityEndDate = self._dateFormatter.string(from: activity.endDate!)
700
+ }
701
+ let activityDict: [String: Any] = [
702
+ "startDate": activityStartDate,
703
+ "endDate": activityEndDate,
704
+ "uuid": activity.uuid.uuidString,
705
+ "duration": activity.duration
706
+ ]
707
+ activitiesArray.append(activityDict)
708
+ }
709
+ }
710
+ }
711
+ dict["activities"] = activitiesArray
712
+
660
713
  if #available(iOS 11, *) {
661
714
  dict.setValue(serializeQuantity(unit: HKUnit.count(), quantity: workout.totalFlightsClimbed), forKey: "totalFlightsClimbed")
662
715
  }
663
-
716
+
717
+ #if canImport(WorkoutKit)
718
+ if #available(iOS 17.0, *) {
719
+ do {
720
+ let workoutplan = try await workout.workoutPlan
721
+ if let workoutplanId = workoutplan?.id {
722
+ dict["workoutPlanId"] = workoutplanId.uuidString
723
+ }
724
+ } catch {
725
+ // handle error
726
+ }
727
+ }
728
+ #endif
729
+
664
730
  arr.add(dict)
665
731
  }
666
732
  }
@@ -7,6 +7,11 @@ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _nativeTypes = _interopRequireDefault(require("../native-types"));
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ /**
11
+ * @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.
12
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable Apple HealthKit isHealthDataAvailable}
13
+ * @returns {boolean | null} true if HealthKit is available; otherwise, false. null while initializing.
14
+ */
10
15
  const useIsHealthDataAvailable = () => {
11
16
  const [isAvailable, setIsAvailable] = (0, _react.useState)(null);
12
17
  (0, _react.useEffect)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_nativeTypes","_interopRequireDefault","obj","__esModule","default","useIsHealthDataAvailable","isAvailable","setIsAvailable","useState","useEffect","init","res","Native","isHealthDataAvailable","_default","exports"],"sources":["useIsHealthDataAvailable.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport Native from '../native-types'\n\nconst useIsHealthDataAvailable = () => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n\n return isAvailable\n}\n\nexport default useIsHealthDataAvailable\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAoC,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEpC,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAiB,IAAI,CAAC;EAEpE,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,MAAMC,GAAG,GAAG,MAAMC,oBAAM,CAACC,qBAAqB,CAAC,CAAC;MAChDN,cAAc,CAACI,GAAG,CAAC;IACrB,CAAC;IACD,KAAKD,IAAI,CAAC,CAAC;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOJ,WAAW;AACpB,CAAC;AAAA,IAAAQ,QAAA,GAEcT,wBAAwB;AAAAU,OAAA,CAAAX,OAAA,GAAAU,QAAA"}
1
+ {"version":3,"names":["_react","require","_nativeTypes","_interopRequireDefault","obj","__esModule","default","useIsHealthDataAvailable","isAvailable","setIsAvailable","useState","useEffect","init","res","Native","isHealthDataAvailable","_default","exports"],"sources":["useIsHealthDataAvailable.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport Native from '../native-types'\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 Apple HealthKit isHealthDataAvailable}\n* @returns {boolean | null} true if HealthKit is available; otherwise, false. null while initializing.\n*/\nconst useIsHealthDataAvailable = () => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n\n return isAvailable\n}\n\nexport default useIsHealthDataAvailable\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAoC,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEpC;AACA;AACA;AACA;AACA;AACA,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAiB,IAAI,CAAC;EAEpE,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,MAAMC,GAAG,GAAG,MAAMC,oBAAM,CAACC,qBAAqB,CAAC,CAAC;MAChDN,cAAc,CAACI,GAAG,CAAC;IACrB,CAAC;IACD,KAAKD,IAAI,CAAC,CAAC;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOJ,WAAW;AACpB,CAAC;AAAA,IAAAQ,QAAA,GAEcT,wBAAwB;AAAAU,OAAA,CAAAX,OAAA,GAAAU,QAAA"}
@@ -5,13 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  var _exportNames = {};
7
7
  exports.default = void 0;
8
+ var _reactNative = require("react-native");
8
9
  var _useHealthkitAuthorization = _interopRequireDefault(require("./hooks/useHealthkitAuthorization"));
9
10
  var _useIsHealthDataAvailable = _interopRequireDefault(require("./hooks/useIsHealthDataAvailable"));
10
11
  var _useMostRecentCategorySample = _interopRequireDefault(require("./hooks/useMostRecentCategorySample"));
11
12
  var _useMostRecentQuantitySample = _interopRequireDefault(require("./hooks/useMostRecentQuantitySample"));
12
13
  var _useMostRecentWorkout = _interopRequireDefault(require("./hooks/useMostRecentWorkout"));
13
14
  var _useSubscribeToChanges = _interopRequireDefault(require("./hooks/useSubscribeToChanges"));
14
- var _nativeTypes = _interopRequireDefault(require("./native-types"));
15
+ var _nativeTypes = _interopRequireWildcard(require("./native-types"));
15
16
  var _deleteQuantitySample = _interopRequireDefault(require("./utils/deleteQuantitySample"));
16
17
  var _deleteSamples = _interopRequireDefault(require("./utils/deleteSamples"));
17
18
  var _getDateOfBirth = _interopRequireDefault(require("./utils/getDateOfBirth"));
@@ -49,24 +50,108 @@ Object.keys(_types).forEach(function (key) {
49
50
  }
50
51
  });
51
52
  });
53
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
54
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
52
55
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
53
- const Healthkit = {
54
- authorizationStatusFor: _nativeTypes.default.authorizationStatusFor.bind(_nativeTypes.default),
55
- isHealthDataAvailable: _nativeTypes.default.isHealthDataAvailable.bind(_nativeTypes.default),
56
- canAccessProtectedData: _nativeTypes.default.canAccessProtectedData.bind(_nativeTypes.default),
57
- disableAllBackgroundDelivery: _nativeTypes.default.disableAllBackgroundDelivery.bind(_nativeTypes.default),
58
- disableBackgroundDelivery: _nativeTypes.default.disableBackgroundDelivery.bind(_nativeTypes.default),
59
- enableBackgroundDelivery: _nativeTypes.default.enableBackgroundDelivery.bind(_nativeTypes.default),
56
+ const currentMajorVersionIOS = _reactNative.Platform.OS === 'ios' ? parseInt(_reactNative.Platform.Version, 10) : 0;
57
+ const allQuantityTypesList = [...Object.values(_nativeTypes.HKQuantityTypeIdentifier)];
58
+ const availableQuantityTypes = function () {
59
+ let majorVersionIOS = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : currentMajorVersionIOS;
60
+ if (majorVersionIOS >= 17) {
61
+ return allQuantityTypesList;
62
+ }
63
+
64
+ // remove types that are not available before iOS 17
65
+ return allQuantityTypesList.filter(type => ![_nativeTypes.HKQuantityTypeIdentifier.cyclingCadence, _nativeTypes.HKQuantityTypeIdentifier.cyclingFunctionalThresholdPower, _nativeTypes.HKQuantityTypeIdentifier.cyclingPower, _nativeTypes.HKQuantityTypeIdentifier.cyclingSpeed, _nativeTypes.HKQuantityTypeIdentifier.physicalEffort, _nativeTypes.HKQuantityTypeIdentifier.timeInDaylight].includes(type));
66
+ };
67
+ const authorizationStatusFor = _nativeTypes.default.authorizationStatusFor.bind(_nativeTypes.default);
68
+ const isHealthDataAvailable = _nativeTypes.default.isHealthDataAvailable.bind(_nativeTypes.default);
69
+ // Todo [>8]: Rename to align with Apple function name (isProtectedDataAvailable)
70
+ const canAccessProtectedData = _nativeTypes.default.canAccessProtectedData.bind(_nativeTypes.default);
71
+ const disableBackgroundDelivery = _nativeTypes.default.disableBackgroundDelivery.bind(_nativeTypes.default);
72
+ const disableAllBackgroundDelivery = _nativeTypes.default.disableAllBackgroundDelivery.bind(_nativeTypes.default);
73
+ const enableBackgroundDelivery = _nativeTypes.default.enableBackgroundDelivery.bind(_nativeTypes.default);
74
+ const getBiologicalSex = _nativeTypes.default.getBiologicalSex.bind(_nativeTypes.default);
75
+ const getFitzpatrickSkinType = _nativeTypes.default.getFitzpatrickSkinType.bind(_nativeTypes.default);
76
+ const getWheelchairUse = _nativeTypes.default.getWheelchairUse.bind(_nativeTypes.default);
77
+ const getBloodType = _nativeTypes.default.getBloodType.bind(_nativeTypes.default);
78
+ const getWorkoutRoutes = _nativeTypes.default.getWorkoutRoutes.bind(_nativeTypes.default);
79
+
80
+ /**
81
+ * @see {@link https://developer.apple.com/documentation/healthkit/about_the_healthkit_framework About the HealthKit Framework (Apple Docs)}
82
+ */
83
+ var _default = {
84
+ /**
85
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614154-authorizationstatus authorizationStatus(for:) (Apple Docs) }
86
+ * @see {@link https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data Authorizing access to health data (Apple Docs) }
87
+ */
88
+ authorizationStatusFor,
89
+ /**
90
+ *
91
+ * @returns All available quantity types for the current iOS version (currently excluding types that are not available before iOS 17)
92
+ */
93
+ availableQuantityTypes,
94
+ /**
95
+ * @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.
96
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable isHealthDataAvailable() (Apple Docs)}
97
+ * @returns {boolean} true if HealthKit is available; otherwise, false.
98
+ */
99
+ isHealthDataAvailable,
100
+ /**
101
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614181-isprotecteddataavailable isProtectedDataAvailable() (Apple Docs)}
102
+ * @see {@link https://developer.apple.com/documentation/healthkit/protecting_user_privacy#3705074 Protecting User Privacy - Access encrypted data (Apple Docs)}
103
+ * @returns {boolean} A Boolean value that indicates whether content protection is active.
104
+ */
105
+ isProtectedDataAvailable: canAccessProtectedData,
106
+ // Todo [>8]: Remove to align with Apple function name (isProtectedDataAvailable)
107
+ /**
108
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614181-isprotecteddataavailable isProtectedDataAvailable() (Apple Docs)}
109
+ * @see {@link https://developer.apple.com/documentation/healthkit/protecting_user_privacy#3705074 Protecting User Privacy - Access encrypted data (Apple Docs)}
110
+ * @deprecated Use {@link isProtectedDataAvailable} instead. Will be removed in next major version.
111
+ * @returns {boolean} A Boolean value that indicates whether content protection is active.
112
+ */
113
+ canAccessProtectedData,
114
+ /**
115
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614158-disableallbackgrounddelivery disableAllBackgroundDelivery(completion:) (Apple Docs)}
116
+ */
117
+ disableAllBackgroundDelivery,
118
+ /**
119
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614177-disablebackgrounddelivery disableBackgroundDelivery(for:withCompletion:) (Apple Docs)}
120
+ */
121
+ disableBackgroundDelivery,
122
+ /**
123
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614175-enablebackgrounddelivery enableBackgroundDelivery(for:frequency:withCompletion:) (Apple Docs)}
124
+ */
125
+ enableBackgroundDelivery,
60
126
  // simple convenience getters
61
- getBiologicalSex: _nativeTypes.default.getBiologicalSex.bind(_nativeTypes.default),
62
- getFitzpatrickSkinType: _nativeTypes.default.getFitzpatrickSkinType.bind(_nativeTypes.default),
63
- getWheelchairUse: _nativeTypes.default.getWheelchairUse.bind(_nativeTypes.default),
64
- getBloodType: _nativeTypes.default.getBloodType.bind(_nativeTypes.default),
65
- getWorkoutRoutes: _nativeTypes.default.getWorkoutRoutes.bind(_nativeTypes.default),
127
+ /**
128
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614171-biologicalsex biologicalSex() (Apple Docs)}
129
+ */
130
+ getBiologicalSex,
131
+ /**
132
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614161-fitzpatrickskintype fitzpatrickSkinType() (Apple Docs)}
133
+ */
134
+ getFitzpatrickSkinType,
135
+ /**
136
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1648356-wheelchairuse wheelchairUse() (Apple Docs)}
137
+ */
138
+ getWheelchairUse,
139
+ /**
140
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614164-bloodtype bloodType() (Apple Docs)}
141
+ */
142
+ getBloodType,
143
+ /**
144
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1648357-dateofbirthcomponents dateOfBirthComponents() (Apple Docs)}
145
+ */
66
146
  getDateOfBirth: _getDateOfBirth.default,
67
147
  getMostRecentQuantitySample: _getMostRecentQuantitySample.default,
68
148
  getMostRecentCategorySample: _getMostRecentCategorySample.default,
69
149
  getMostRecentWorkout: _getMostRecentWorkout.default,
150
+ /**
151
+ * @see {@link https://developer.apple.com/documentation/healthkit/workouts_and_activity_rings/reading_route_data Reading route data (Apple Docs)}
152
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkworkoutroutequery HKWorkoutRouteQuery (Apple Docs)}
153
+ */
154
+ getWorkoutRoutes,
70
155
  getPreferredUnit: _getPreferredUnit.default,
71
156
  getPreferredUnits: _getPreferredUnits.default,
72
157
  getRequestStatusForAuthorization: _getRequestStatusForAuthorization.default,
@@ -86,20 +171,41 @@ const Healthkit = {
86
171
  deleteQuantitySample: _deleteQuantitySample.default,
87
172
  deleteSamples: _deleteSamples.default,
88
173
  // save methods
174
+ /**
175
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614168-savecategorysample save(_:withCompletion:) (Apple Docs)}
176
+ * @see {@link https://developer.apple.com/documentation/healthkit/saving_data_to_healthkit Saving data to HealthKit (Apple Docs)}
177
+ */
89
178
  saveCategorySample: _saveCategorySample.default,
90
179
  saveCorrelationSample: _saveCorrelationSample.default,
91
180
  saveQuantitySample: _saveQuantitySample.default,
92
181
  saveWorkoutSample: _saveWorkoutSample.default,
93
182
  // subscriptions
94
183
  subscribeToChanges: _subscribeToChanges.default,
95
- // hooks
184
+ /**
185
+ * @returns the most recent sample for the given category type.
186
+ */
96
187
  useMostRecentCategorySample: _useMostRecentCategorySample.default,
188
+ /**
189
+ * @returns the most recent sample for the given quantity type.
190
+ */
97
191
  useMostRecentQuantitySample: _useMostRecentQuantitySample.default,
192
+ /**
193
+ * @returns the most recent workout sample.
194
+ */
98
195
  useMostRecentWorkout: _useMostRecentWorkout.default,
99
196
  useSubscribeToChanges: _useSubscribeToChanges.default,
197
+ /**
198
+ * @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.
199
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable Apple Docs}
200
+ * @returns {boolean | null} true if HealthKit is available; otherwise, false. null while initializing.
201
+ */
100
202
  useIsHealthDataAvailable: _useIsHealthDataAvailable.default,
203
+ /**
204
+ * @description Hook to retrieve the current authorization status for the given types, and request authorization if needed.
205
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614152-requestauthorization Apple Docs - requestAuthorization}
206
+ * @see {@link https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data Apple Docs - Authorizing access to health data}
207
+ */
101
208
  useHealthkitAuthorization: _useHealthkitAuthorization.default
102
209
  };
103
- var _default = Healthkit;
104
210
  exports.default = _default;
105
211
  //# sourceMappingURL=index.ios.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_useHealthkitAuthorization","_interopRequireDefault","require","_useIsHealthDataAvailable","_useMostRecentCategorySample","_useMostRecentQuantitySample","_useMostRecentWorkout","_useSubscribeToChanges","_nativeTypes","_deleteQuantitySample","_deleteSamples","_getDateOfBirth","_getMostRecentCategorySample","_getMostRecentQuantitySample","_getMostRecentWorkout","_getPreferredUnit","_getPreferredUnits","_getRequestStatusForAuthorization","_queryCategorySamples","_queryCategorySamplesWithAnchor","_queryCorrelationSamples","_queryHeartbeatSeriesSamples","_queryHeartbeatSeriesSamplesWithAnchor","_queryQuantitySamples","_queryQuantitySamplesWithAnchor","_querySources","_queryStatisticsForQuantity","_queryWorkouts","_requestAuthorization","_saveCategorySample","_saveCorrelationSample","_saveQuantitySample","_saveWorkoutSample","_subscribeToChanges","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","obj","__esModule","default","Healthkit","authorizationStatusFor","Native","bind","isHealthDataAvailable","canAccessProtectedData","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType","getWorkoutRoutes","getDateOfBirth","getMostRecentQuantitySample","getMostRecentCategorySample","getMostRecentWorkout","getPreferredUnit","getPreferredUnits","getRequestStatusForAuthorization","queryCategorySamples","queryCategorySamplesWithAnchor","queryCorrelationSamples","queryHeartbeatSeriesSamples","queryHeartbeatSeriesSamplesWithAnchor","queryQuantitySamples","queryQuantitySamplesWithAnchor","queryStatisticsForQuantity","queryWorkouts","querySources","requestAuthorization","deleteQuantitySample","deleteSamples","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useIsHealthDataAvailable","useHealthkitAuthorization","_default"],"sources":["index.ios.tsx"],"sourcesContent":["import 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 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 saveWorkoutSample from './utils/saveWorkoutSample'\nimport subscribeToChanges from './utils/subscribeToChanges'\n\nconst Healthkit = {\n authorizationStatusFor: Native.authorizationStatusFor.bind(Native),\n\n isHealthDataAvailable: Native.isHealthDataAvailable.bind(Native),\n canAccessProtectedData: Native.canAccessProtectedData.bind(Native),\n\n disableAllBackgroundDelivery:\n Native.disableAllBackgroundDelivery.bind(Native),\n disableBackgroundDelivery: Native.disableBackgroundDelivery.bind(Native),\n enableBackgroundDelivery: Native.enableBackgroundDelivery.bind(Native),\n\n // simple convenience getters\n getBiologicalSex: Native.getBiologicalSex.bind(Native),\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType.bind(Native),\n getWheelchairUse: Native.getWheelchairUse.bind(Native),\n getBloodType: Native.getBloodType.bind(Native),\n\n getWorkoutRoutes: Native.getWorkoutRoutes.bind(Native),\n\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\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 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 useIsHealthDataAvailable,\n useHealthkitAuthorization,\n}\n\nexport * from './types'\n\nexport default Healthkit\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","_queryCategorySamples","_queryCategorySamplesWithAnchor","_queryCorrelationSamples","_queryHeartbeatSeriesSamples","_queryHeartbeatSeriesSamplesWithAnchor","_queryQuantitySamples","_queryQuantitySamplesWithAnchor","_querySources","_queryStatisticsForQuantity","_queryWorkouts","_requestAuthorization","_saveCategorySample","_saveCorrelationSample","_saveQuantitySample","_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","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 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\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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"}
@@ -33,6 +33,7 @@ function UnavailableFn(retVal) {
33
33
  }
34
34
  const Healthkit = {
35
35
  authorizationStatusFor: UnavailableFn(Promise.resolve(_nativeTypes.HKAuthorizationStatus.notDetermined)),
36
+ availableQuantityTypes: UnavailableFn([]),
36
37
  disableAllBackgroundDelivery: UnavailableFn(Promise.resolve(false)),
37
38
  disableBackgroundDelivery: UnavailableFn(Promise.resolve(false)),
38
39
  enableBackgroundDelivery: UnavailableFn(Promise.resolve(false)),
@@ -93,7 +94,8 @@ const Healthkit = {
93
94
  useSubscribeToChanges: UnavailableFn([null, () => null]),
94
95
  useHealthkitAuthorization: UnavailableFn([null, async () => Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.unknown)]),
95
96
  useIsHealthDataAvailable: () => false,
96
- canAccessProtectedData: async () => Promise.resolve(false)
97
+ canAccessProtectedData: async () => Promise.resolve(false),
98
+ isProtectedDataAvailable: async () => Promise.resolve(false)
97
99
  };
98
100
  var _default = Healthkit;
99
101
  exports.default = _default;
@@ -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","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","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useHealthkitAuthorization","useIsHealthDataAvailable","canAccessProtectedData","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { Platform } from 'react-native'\n\nimport {\n HKAuthorizationRequestStatus, HKAuthorizationStatus, HKBiologicalSex, HKBloodType, HKFitzpatrickSkinType, HKUnits, HKWheelchairUse, QueryQuantitySamplesResponseRaw,\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: typeof ReactNativeHealthkit = {\n authorizationStatusFor: UnavailableFn(Promise.resolve(HKAuthorizationStatus.notDetermined)),\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(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}\n\nexport * from './types'\n\nexport default Healthkit\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","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","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(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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"}
@@ -36,6 +36,7 @@ const mockModule = {
36
36
  saveWorkoutSample: jest.fn(),
37
37
  subscribeToObserverQuery: jest.fn(),
38
38
  unsubscribeQuery: jest.fn(),
39
+ // Todo [>8]: Remove to align with Apple function name (isProtectedDataAvailable)
39
40
  canAccessProtectedData: jest.fn()
40
41
  };
41
42
  _reactNative.NativeModules.ReactNativeHealthkit = mockModule;
@@ -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","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 canAccessProtectedData: jest.fn(),\n}\n\nNativeModules.ReactNativeHealthkit = mockModule\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIA,MAAMC,UAA0C,GAAG;EACjDC,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;EAC3BkC,sBAAsB,EAAEnC,IAAI,CAACC,EAAE,CAAC;AAClC,CAAC;AAEDmC,0BAAa,CAACC,oBAAoB,GAAGvC,UAAU"}
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","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}\n\nNativeModules.ReactNativeHealthkit = mockModule\n"],"mappings":";;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIA,MAAMC,UAA0C,GAAG;EACjDC,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;AAClC,CAAC;AAEDmC,0BAAa,CAACC,oBAAoB,GAAGvC,UAAU"}