@kingstinct/react-native-healthkit 5.1.2 → 5.2.1
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/README.md +28 -23
- package/android/.project +18 -1
- package/android/.settings/org.eclipse.buildship.core.prefs +4 -4
- package/ios/ReactNativeHealthkit.m +9 -0
- package/ios/ReactNativeHealthkit.swift +23 -7
- package/lib/commonjs/hooks/useHealthkitAuthorization.js.map +1 -1
- package/lib/commonjs/hooks/useHealthkitAuthorization.test.js +57 -0
- package/lib/commonjs/hooks/useHealthkitAuthorization.test.js.map +1 -0
- package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js +12 -19
- package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js.map +1 -1
- package/lib/commonjs/index.ios.js +1 -0
- package/lib/commonjs/index.ios.js.map +1 -1
- package/lib/commonjs/index.js +3 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/jest.setup.js +29 -2
- package/lib/commonjs/jest.setup.js.map +1 -1
- package/lib/commonjs/native-types.js +37 -30
- package/lib/commonjs/native-types.js.map +1 -1
- package/lib/commonjs/test-utils.js +21 -0
- package/lib/commonjs/test-utils.js.map +1 -0
- package/lib/commonjs/utils/getPreferredUnit.js.map +1 -1
- package/lib/commonjs/utils/subscribeToChanges.js +4 -4
- package/lib/commonjs/utils/subscribeToChanges.js.map +1 -1
- package/lib/module/hooks/useHealthkitAuthorization.js.map +1 -1
- package/lib/module/hooks/useHealthkitAuthorization.test.js +45 -0
- package/lib/module/hooks/useHealthkitAuthorization.test.js.map +1 -0
- package/lib/module/hooks/useIsHealthDataAvailable.test.js +8 -16
- package/lib/module/hooks/useIsHealthDataAvailable.test.js.map +1 -1
- package/lib/module/index.ios.js +1 -0
- package/lib/module/index.ios.js.map +1 -1
- package/lib/module/index.js +3 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/jest.setup.js +29 -2
- package/lib/module/jest.setup.js.map +1 -1
- package/lib/module/native-types.js +37 -30
- package/lib/module/native-types.js.map +1 -1
- package/lib/module/test-utils.js +13 -0
- package/lib/module/test-utils.js.map +1 -0
- package/lib/module/utils/getPreferredUnit.js.map +1 -1
- package/lib/module/utils/subscribeToChanges.js +1 -2
- package/lib/module/utils/subscribeToChanges.js.map +1 -1
- package/lib/{src/types.js → typescript/src/hooks/useHealthkitAuthorization.test.d.ts} +0 -0
- package/lib/typescript/src/index.ios.d.ts +1 -0
- package/lib/typescript/src/native-types.d.ts +60 -51
- package/lib/typescript/src/test-utils.d.ts +2 -0
- package/lib/typescript/src/utils/getPreferredUnit.d.ts +1 -1
- package/package.json +8 -4
- package/src/hooks/useHealthkitAuthorization.test.ts +54 -0
- package/src/hooks/useHealthkitAuthorization.ts +1 -0
- package/src/hooks/useIsHealthDataAvailable.test.ts +9 -14
- package/src/index.ios.tsx +3 -1
- package/src/index.tsx +2 -0
- package/src/jest.setup.ts +32 -2
- package/src/native-types.ts +364 -162
- package/src/test-utils.ts +10 -0
- package/src/utils/getPreferredUnit.ts +2 -2
- package/src/utils/subscribeToChanges.ts +1 -2
- package/lib/example/App.js +0 -197
- package/lib/index.ios.js +0 -310
- package/lib/index.js +0 -44
- package/lib/native-types.js +0 -447
- package/lib/src/index.ios.js +0 -314
- package/lib/src/index.js +0 -45
- package/lib/src/native-types.js +0 -453
- package/lib/types.js +0 -1
package/README.md
CHANGED
|
@@ -15,38 +15,43 @@ React Native bindings for HealthKit with full TypeScript and Promise support cov
|
|
|
15
15
|
| Document Types | ✅ | ❌ | ✅ | [CDA documents](https://developer.apple.com/documentation/healthkit/hkcdadocument) exposed as Base64 data |
|
|
16
16
|
| Clinical Records | ✅ | ❌ | ✅ | Lab results etc in [FHIR JSON format](https://www.hl7.org/fhir/json.html) |
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
### Disclaimer
|
|
19
19
|
|
|
20
|
-
This library is provided without any warranty and is not affiliated with Apple in any way. The data might be incomplete or inaccurate.
|
|
20
|
+
This library is provided as-is without any warranty and is not affiliated with Apple in any way. The data might be incomplete or inaccurate.
|
|
21
21
|
|
|
22
22
|
## Installation
|
|
23
23
|
|
|
24
|
-
### Native
|
|
25
|
-
1.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
2. Remember to set `NSHealthUpdateUsageDescription` and `NSHealthShareUsageDescription` in your `Info.plist`
|
|
32
|
-
|
|
33
|
-
3. Enable the HealthKit capability for the project in Xcode.
|
|
34
|
-
|
|
35
|
-
4. 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)
|
|
36
|
-
|
|
37
|
-
5. During runtime you can check if HealthKit is available on the device with `isHealthDataAvailable` and request permissions with `requestAuthorization`. Failing to request authorization will result in the app crashing.
|
|
24
|
+
### Native or Expo Bare Workflow
|
|
25
|
+
1. `yarn add @kingstinct/react-native-healthkit` (or `npm install @kingstinct/react-native-healthkit`)
|
|
26
|
+
2. `npx pod-install`
|
|
27
|
+
3. Set `NSHealthUpdateUsageDescription` and `NSHealthShareUsageDescription` in your `Info.plist`
|
|
28
|
+
4. Enable the HealthKit capability for the project in Xcode.
|
|
29
|
+
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)
|
|
30
|
+
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.
|
|
38
31
|
|
|
39
32
|
### Expo Managed Workflow
|
|
40
33
|
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/).
|
|
41
34
|
|
|
42
|
-
1.
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
1. `yarn add @kingstinct/react-native-healthkit` (or `npm install @kingstinct/react-native-healthkit`)
|
|
36
|
+
2. Update your app.json:
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"expo": {
|
|
40
|
+
"ios": {
|
|
41
|
+
"infoPlist": {
|
|
42
|
+
"NSHealthShareUsageDescription": "<< your usage description here >>",
|
|
43
|
+
"NSHealthUpdateUsageDescription": "<< your usage description here >>"
|
|
44
|
+
},
|
|
45
|
+
"entitlements": {
|
|
46
|
+
"com.apple.developer.healthkit": true,
|
|
47
|
+
"com.apple.developer.healthkit.background-delivery": true
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
45
52
|
```
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
3. During runtime you can check if HealthKit is available on the device with `isHealthDataAvailable` and request permissions with `requestAuthorization`. Failing to request authorization will result in the app crashing.
|
|
53
|
+
3. Build a new Dev Client
|
|
54
|
+
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.
|
|
50
55
|
|
|
51
56
|
## Usage
|
|
52
57
|
|
package/android/.project
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<projectDescription>
|
|
3
|
-
<name>
|
|
3
|
+
<name>kingstinct_react-native-healthkit</name>
|
|
4
4
|
<comment>Project android_ created by Buildship.</comment>
|
|
5
5
|
<projects>
|
|
6
6
|
</projects>
|
|
7
7
|
<buildSpec>
|
|
8
|
+
<buildCommand>
|
|
9
|
+
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
10
|
+
<arguments>
|
|
11
|
+
</arguments>
|
|
12
|
+
</buildCommand>
|
|
8
13
|
<buildCommand>
|
|
9
14
|
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
10
15
|
<arguments>
|
|
@@ -12,6 +17,18 @@
|
|
|
12
17
|
</buildCommand>
|
|
13
18
|
</buildSpec>
|
|
14
19
|
<natures>
|
|
20
|
+
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
15
21
|
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
|
16
22
|
</natures>
|
|
23
|
+
<filteredResources>
|
|
24
|
+
<filter>
|
|
25
|
+
<id>1663745272821</id>
|
|
26
|
+
<name></name>
|
|
27
|
+
<type>30</type>
|
|
28
|
+
<matcher>
|
|
29
|
+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
|
30
|
+
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
|
31
|
+
</matcher>
|
|
32
|
+
</filter>
|
|
33
|
+
</filteredResources>
|
|
17
34
|
</projectDescription>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
arguments
|
|
1
|
+
arguments=--init-script /var/folders/lb/4fb2wm497wq1_0vknwt43h3h0000gn/T/init5242912127258488867.gradle --init-script /var/folders/lb/4fb2wm497wq1_0vknwt43h3h0000gn/T/init4373878353927339792.gradle
|
|
2
2
|
auto.sync=false
|
|
3
3
|
build.scans.enabled=false
|
|
4
|
-
connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(
|
|
5
|
-
connection.project.dir
|
|
4
|
+
connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.4.2))
|
|
5
|
+
connection.project.dir=../example/android
|
|
6
6
|
eclipse.preferences.version=1
|
|
7
7
|
gradle.user.home=
|
|
8
|
-
java.home=/
|
|
8
|
+
java.home=/Users/andarius/.sdkman/candidates/java/11.0.2-open
|
|
9
9
|
jvm.arguments=
|
|
10
10
|
offline.mode=false
|
|
11
11
|
override.workspace.settings=true
|
|
@@ -158,4 +158,13 @@ RCT_EXTERN_METHOD(getWorkoutRoutes:(NSString)workoutUUID
|
|
|
158
158
|
reject:(RCTPromiseRejectBlock)reject
|
|
159
159
|
)
|
|
160
160
|
|
|
161
|
+
RCT_EXTERN_METHOD(getWorkoutRoutes:(NSString)workoutUUID
|
|
162
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
163
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
RCT_EXTERN_METHOD(canAccessProtectedData:(RCTPromiseResolveBlock)resolve
|
|
167
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
168
|
+
|
|
169
|
+
|
|
161
170
|
@end
|
|
@@ -59,6 +59,13 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
59
59
|
self._hasListeners = true
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
|
|
63
|
+
@objc(canAccessProtectedData:withRejecter:)
|
|
64
|
+
func canAccessProtectedData(resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
|
|
65
|
+
resolve(UIApplication.shared.isProtectedDataAvailable);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
62
69
|
func objectTypeFromString(typeIdentifier: String) -> HKObjectType? {
|
|
63
70
|
if(typeIdentifier.starts(with: HKCharacteristicTypeIdentifier_PREFIX)){
|
|
64
71
|
let identifier = HKCharacteristicTypeIdentifier.init(rawValue: typeIdentifier);
|
|
@@ -236,7 +243,7 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
236
243
|
|
|
237
244
|
return [
|
|
238
245
|
"uuid": sample.uuid.uuidString,
|
|
239
|
-
"device": self.serializeDevice(_device: sample.device),
|
|
246
|
+
"device": self.serializeDevice(_device: sample.device) as Any,
|
|
240
247
|
"quantityType": sample.quantityType.identifier,
|
|
241
248
|
"endDate": endDate,
|
|
242
249
|
"startDate": startDate,
|
|
@@ -253,7 +260,7 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
253
260
|
|
|
254
261
|
return [
|
|
255
262
|
"uuid": sample.uuid.uuidString,
|
|
256
|
-
"device": self.serializeDevice(_device: sample.device),
|
|
263
|
+
"device": self.serializeDevice(_device: sample.device) as Any,
|
|
257
264
|
"categoryType": sample.categoryType.identifier,
|
|
258
265
|
"endDate": endDate,
|
|
259
266
|
"startDate": startDate,
|
|
@@ -386,7 +393,7 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
386
393
|
}
|
|
387
394
|
|
|
388
395
|
let identifier = HKQuantityTypeIdentifier.init(rawValue: typeIdentifier);
|
|
389
|
-
let sampleUuid = UUID.init(uuidString: uuid)
|
|
396
|
+
let sampleUuid = UUID.init(uuidString: uuid)!;
|
|
390
397
|
|
|
391
398
|
guard let sampleType = HKObjectType.quantityType(forIdentifier: identifier) else {
|
|
392
399
|
return reject(TYPE_IDENTIFIER_ERROR, typeIdentifier, nil);
|
|
@@ -868,7 +875,7 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
868
875
|
"name": sourceRevision.source.name,
|
|
869
876
|
"bundleIdentifier": sourceRevision.source.bundleIdentifier
|
|
870
877
|
],
|
|
871
|
-
"version": sourceRevision.version
|
|
878
|
+
"version": sourceRevision.version as Any
|
|
872
879
|
] as [String : Any];
|
|
873
880
|
|
|
874
881
|
if #available(iOS 11, *) {
|
|
@@ -1215,14 +1222,22 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
1215
1222
|
}
|
|
1216
1223
|
for route in _routes {
|
|
1217
1224
|
let routeMetadata = self.serializeMetadata(metadata: route.metadata) as! Dictionary<String, Any>
|
|
1218
|
-
let
|
|
1225
|
+
let routeCLLocations = (await getRouteLocations(store: store, route: route))
|
|
1226
|
+
let routeLocations = routeCLLocations.enumerated().map{(i, loc) in serializeLocation(location: loc, previousLocation: i == 0 ? nil: routeCLLocations[i - 1])}
|
|
1219
1227
|
let routeInfos: Dictionary<String, Any> = ["locations": routeLocations]
|
|
1220
1228
|
allRoutes.append(routeInfos.merging(routeMetadata) { (current, _) in current })
|
|
1221
1229
|
}
|
|
1222
1230
|
return allRoutes
|
|
1223
1231
|
}
|
|
1224
1232
|
|
|
1225
|
-
func serializeLocation(location: CLLocation) -> Dictionary<String, Any> {
|
|
1233
|
+
func serializeLocation(location: CLLocation, previousLocation: CLLocation?) -> Dictionary<String, Any> {
|
|
1234
|
+
var distance: CLLocationDistance?
|
|
1235
|
+
if let previousLocation = previousLocation {
|
|
1236
|
+
distance = location.distance(from: previousLocation)
|
|
1237
|
+
}
|
|
1238
|
+
else {
|
|
1239
|
+
distance = nil
|
|
1240
|
+
}
|
|
1226
1241
|
return [
|
|
1227
1242
|
"longitude": location.coordinate.longitude,
|
|
1228
1243
|
"latitude": location.coordinate.latitude,
|
|
@@ -1232,6 +1247,7 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
1232
1247
|
"horizontalAccuracy": location.horizontalAccuracy,
|
|
1233
1248
|
"speedAccuracy": location.speedAccuracy,
|
|
1234
1249
|
"verticalAccuracy": location.verticalAccuracy,
|
|
1250
|
+
"distance": distance as Any
|
|
1235
1251
|
]
|
|
1236
1252
|
}
|
|
1237
1253
|
|
|
@@ -1250,7 +1266,7 @@ class ReactNativeHealthkit: RCTEventEmitter {
|
|
|
1250
1266
|
return reject("INVALID_UUID_ERROR", "Invalid UUID received", nil)
|
|
1251
1267
|
}
|
|
1252
1268
|
|
|
1253
|
-
|
|
1269
|
+
Task {
|
|
1254
1270
|
do {
|
|
1255
1271
|
let locations = await getSerializedWorkoutLocations(store: store, workoutUUID: _workoutUUID)
|
|
1256
1272
|
resolve(locations)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useHealthkitAuthorization","read","write","status","setStatus","useState","readMemo","useRef","writeMemo","useEffect","current","refreshAuthStatus","useCallback","auth","getRequestStatusForAuthorization","request","requestAuthorization"],"sources":["useHealthkitAuthorization.ts"],"sourcesContent":["import {\n useCallback, useEffect, useRef, useState,\n} from 'react'\n\nimport getRequestStatusForAuthorization from '../utils/getRequestStatusForAuthorization'\nimport requestAuthorization from '../utils/requestAuthorization'\n\nimport type { HealthkitReadAuthorization, HealthkitWriteAuthorization, HKAuthorizationRequestStatus } from '../native-types'\n\nconst useHealthkitAuthorization = (read: readonly HealthkitReadAuthorization[], write?: readonly HealthkitWriteAuthorization[]) => {\n const [status, setStatus] = useState<HKAuthorizationRequestStatus | null>(null)\n\n const readMemo = useRef(read)\n const writeMemo = useRef(write)\n\n useEffect(() => {\n readMemo.current = read\n writeMemo.current = write\n }, [read, write])\n\n const refreshAuthStatus = useCallback(async () => {\n const auth = await getRequestStatusForAuthorization(readMemo.current, writeMemo.current)\n setStatus(auth)\n return auth\n }, [])\n\n const request = useCallback(async () => {\n await requestAuthorization(readMemo.current, writeMemo.current)\n return refreshAuthStatus()\n }, [refreshAuthStatus])\n\n useEffect(() => {\n void refreshAuthStatus()\n }, [refreshAuthStatus])\n\n return [status, request] as const\n}\n\nexport default useHealthkitAuthorization\n"],"mappings":";;;;;;;AAAA;;AAIA;;AACA;;;;AAIA,MAAMA,yBAAyB,GAAG,CAACC,IAAD,EAA8CC,KAA9C,KAAiG;EACjI,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsB,IAAAC,eAAA,EAA8C,IAA9C,CAA5B;EAEA,MAAMC,QAAQ,GAAG,IAAAC,aAAA,EAAON,IAAP,CAAjB;EACA,MAAMO,SAAS,GAAG,IAAAD,aAAA,EAAOL,KAAP,CAAlB;EAEA,IAAAO,gBAAA,EAAU,MAAM;IACdH,QAAQ,CAACI,OAAT,GAAmBT,IAAnB;IACAO,SAAS,CAACE,OAAV,GAAoBR,KAApB;EACD,CAHD,EAGG,CAACD,IAAD,EAAOC,KAAP,CAHH;EAKA,MAAMS,iBAAiB,GAAG,IAAAC,kBAAA,EAAY,YAAY;IAChD,MAAMC,IAAI,GAAG,MAAM,IAAAC,yCAAA,EAAiCR,QAAQ,CAACI,OAA1C,EAAmDF,SAAS,CAACE,OAA7D,CAAnB;
|
|
1
|
+
{"version":3,"names":["useHealthkitAuthorization","read","write","status","setStatus","useState","readMemo","useRef","writeMemo","useEffect","current","refreshAuthStatus","useCallback","auth","getRequestStatusForAuthorization","request","requestAuthorization"],"sources":["useHealthkitAuthorization.ts"],"sourcesContent":["import {\n useCallback, useEffect, useRef, useState,\n} from 'react'\n\nimport getRequestStatusForAuthorization from '../utils/getRequestStatusForAuthorization'\nimport requestAuthorization from '../utils/requestAuthorization'\n\nimport type { HealthkitReadAuthorization, HealthkitWriteAuthorization, HKAuthorizationRequestStatus } from '../native-types'\n\nconst useHealthkitAuthorization = (read: readonly HealthkitReadAuthorization[], write?: readonly HealthkitWriteAuthorization[]) => {\n const [status, setStatus] = useState<HKAuthorizationRequestStatus | null>(null)\n\n const readMemo = useRef(read)\n const writeMemo = useRef(write)\n\n useEffect(() => {\n readMemo.current = read\n writeMemo.current = write\n }, [read, write])\n\n const refreshAuthStatus = useCallback(async () => {\n const auth = await getRequestStatusForAuthorization(readMemo.current, writeMemo.current)\n\n setStatus(auth)\n return auth\n }, [])\n\n const request = useCallback(async () => {\n await requestAuthorization(readMemo.current, writeMemo.current)\n return refreshAuthStatus()\n }, [refreshAuthStatus])\n\n useEffect(() => {\n void refreshAuthStatus()\n }, [refreshAuthStatus])\n\n return [status, request] as const\n}\n\nexport default useHealthkitAuthorization\n"],"mappings":";;;;;;;AAAA;;AAIA;;AACA;;;;AAIA,MAAMA,yBAAyB,GAAG,CAACC,IAAD,EAA8CC,KAA9C,KAAiG;EACjI,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsB,IAAAC,eAAA,EAA8C,IAA9C,CAA5B;EAEA,MAAMC,QAAQ,GAAG,IAAAC,aAAA,EAAON,IAAP,CAAjB;EACA,MAAMO,SAAS,GAAG,IAAAD,aAAA,EAAOL,KAAP,CAAlB;EAEA,IAAAO,gBAAA,EAAU,MAAM;IACdH,QAAQ,CAACI,OAAT,GAAmBT,IAAnB;IACAO,SAAS,CAACE,OAAV,GAAoBR,KAApB;EACD,CAHD,EAGG,CAACD,IAAD,EAAOC,KAAP,CAHH;EAKA,MAAMS,iBAAiB,GAAG,IAAAC,kBAAA,EAAY,YAAY;IAChD,MAAMC,IAAI,GAAG,MAAM,IAAAC,yCAAA,EAAiCR,QAAQ,CAACI,OAA1C,EAAmDF,SAAS,CAACE,OAA7D,CAAnB;IAEAN,SAAS,CAACS,IAAD,CAAT;IACA,OAAOA,IAAP;EACD,CALyB,EAKvB,EALuB,CAA1B;EAOA,MAAME,OAAO,GAAG,IAAAH,kBAAA,EAAY,YAAY;IACtC,MAAM,IAAAI,6BAAA,EAAqBV,QAAQ,CAACI,OAA9B,EAAuCF,SAAS,CAACE,OAAjD,CAAN;IACA,OAAOC,iBAAiB,EAAxB;EACD,CAHe,EAGb,CAACA,iBAAD,CAHa,CAAhB;EAKA,IAAAF,gBAAA,EAAU,MAAM;IACd,KAAKE,iBAAiB,EAAtB;EACD,CAFD,EAEG,CAACA,iBAAD,CAFH;EAIA,OAAO,CAACR,MAAD,EAASY,OAAT,CAAP;AACD,CA5BD;;eA8Bef,yB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _reactNative = require("@testing-library/react-native");
|
|
4
|
+
|
|
5
|
+
var _nativeTypes = _interopRequireWildcard(require("../native-types"));
|
|
6
|
+
|
|
7
|
+
var _testUtils = _interopRequireDefault(require("../test-utils"));
|
|
8
|
+
|
|
9
|
+
var _useHealthkitAuthorization = _interopRequireDefault(require("./useHealthkitAuthorization"));
|
|
10
|
+
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
|
|
13
|
+
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); }
|
|
14
|
+
|
|
15
|
+
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; }
|
|
16
|
+
|
|
17
|
+
describe('useHealthkitAuthorization', () => {
|
|
18
|
+
test('should return shouldRequest', async () => {
|
|
19
|
+
jest.spyOn(_nativeTypes.default, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.shouldRequest));
|
|
20
|
+
const {
|
|
21
|
+
result
|
|
22
|
+
} = (0, _reactNative.renderHook)(() => (0, _useHealthkitAuthorization.default)([_nativeTypes.HKCategoryTypeIdentifier.abdominalCramps]));
|
|
23
|
+
await (0, _testUtils.default)();
|
|
24
|
+
expect(result.current[0]).toBe(_nativeTypes.HKAuthorizationRequestStatus.shouldRequest);
|
|
25
|
+
});
|
|
26
|
+
test('should request permissions', async () => {
|
|
27
|
+
const spy = jest.spyOn(_nativeTypes.default, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.shouldRequest));
|
|
28
|
+
jest.spyOn(_nativeTypes.default, 'requestAuthorization').mockReturnValue(Promise.resolve(true));
|
|
29
|
+
const {
|
|
30
|
+
result
|
|
31
|
+
} = (0, _reactNative.renderHook)(() => (0, _useHealthkitAuthorization.default)([_nativeTypes.HKCategoryTypeIdentifier.abdominalCramps]));
|
|
32
|
+
await (0, _testUtils.default)();
|
|
33
|
+
spy.mockReturnValue(Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.unnecessary));
|
|
34
|
+
let retVal;
|
|
35
|
+
await (0, _reactNative.act)(async () => {
|
|
36
|
+
retVal = await result.current[1]();
|
|
37
|
+
});
|
|
38
|
+
expect(result.current[0]).toBe(_nativeTypes.HKAuthorizationRequestStatus.unnecessary);
|
|
39
|
+
expect(retVal).toBe(_nativeTypes.HKAuthorizationRequestStatus.unnecessary);
|
|
40
|
+
});
|
|
41
|
+
test('should return unnecessary', async () => {
|
|
42
|
+
jest.spyOn(_nativeTypes.default, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.unnecessary));
|
|
43
|
+
const {
|
|
44
|
+
result
|
|
45
|
+
} = (0, _reactNative.renderHook)(() => (0, _useHealthkitAuthorization.default)([_nativeTypes.HKCategoryTypeIdentifier.abdominalCramps]));
|
|
46
|
+
await (0, _testUtils.default)();
|
|
47
|
+
expect(result.current[0]).toBe(_nativeTypes.HKAuthorizationRequestStatus.unnecessary);
|
|
48
|
+
});
|
|
49
|
+
test('should return null before initalizing', async () => {
|
|
50
|
+
const {
|
|
51
|
+
result
|
|
52
|
+
} = (0, _reactNative.renderHook)(() => (0, _useHealthkitAuthorization.default)([_nativeTypes.HKCategoryTypeIdentifier.abdominalCramps]));
|
|
53
|
+
expect(result.current[0]).toBe(null);
|
|
54
|
+
await (0, _testUtils.default)();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=useHealthkitAuthorization.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["describe","test","jest","spyOn","Native","mockReturnValue","Promise","resolve","HKAuthorizationRequestStatus","shouldRequest","result","renderHook","useHealthkitAuthorization","HKCategoryTypeIdentifier","abdominalCramps","waitForNextUpdate","expect","current","toBe","spy","unnecessary","retVal","act"],"sources":["useHealthkitAuthorization.test.ts"],"sourcesContent":["import { renderHook, act } from '@testing-library/react-native'\n\nimport Native, { HKAuthorizationRequestStatus, HKCategoryTypeIdentifier } from '../native-types'\nimport waitForNextUpdate from '../test-utils'\nimport useHealthkitAuthorization from './useHealthkitAuthorization'\n\ndescribe('useHealthkitAuthorization', () => {\n test('should return shouldRequest', async () => {\n jest.spyOn(Native, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.shouldRequest))\n\n const { result } = renderHook(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]))\n\n await waitForNextUpdate()\n\n expect(result.current[0]).toBe(HKAuthorizationRequestStatus.shouldRequest)\n })\n\n test('should request permissions', async () => {\n const spy = jest.spyOn(Native, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.shouldRequest))\n jest.spyOn(Native, 'requestAuthorization').mockReturnValue(Promise.resolve(true))\n\n const { result } = renderHook(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]))\n\n await waitForNextUpdate()\n\n spy.mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.unnecessary))\n\n let retVal: HKAuthorizationRequestStatus | undefined\n await act(async () => {\n retVal = await result.current[1]()\n })\n\n expect(result.current[0]).toBe(HKAuthorizationRequestStatus.unnecessary)\n expect(retVal).toBe(HKAuthorizationRequestStatus.unnecessary)\n })\n\n test('should return unnecessary', async () => {\n jest.spyOn(Native, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.unnecessary))\n\n const { result } = renderHook(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]))\n\n await waitForNextUpdate()\n\n expect(result.current[0]).toBe(HKAuthorizationRequestStatus.unnecessary)\n })\n\n test('should return null before initalizing', async () => {\n const { result } = renderHook(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]))\n\n expect(result.current[0]).toBe(null)\n\n await waitForNextUpdate()\n })\n})\n"],"mappings":";;AAAA;;AAEA;;AACA;;AACA;;;;;;;;AAEAA,QAAQ,CAAC,2BAAD,EAA8B,MAAM;EAC1CC,IAAI,CAAC,6BAAD,EAAgC,YAAY;IAC9CC,IAAI,CAACC,KAAL,CAAWC,oBAAX,EAAmB,kCAAnB,EAAuDC,eAAvD,CAAuEC,OAAO,CAACC,OAAR,CAAgBC,yCAAA,CAA6BC,aAA7C,CAAvE;IAEA,MAAM;MAAEC;IAAF,IAAa,IAAAC,uBAAA,EAAW,MAAM,IAAAC,kCAAA,EAA0B,CAACC,qCAAA,CAAyBC,eAA1B,CAA1B,CAAjB,CAAnB;IAEA,MAAM,IAAAC,kBAAA,GAAN;IAEAC,MAAM,CAACN,MAAM,CAACO,OAAP,CAAe,CAAf,CAAD,CAAN,CAA0BC,IAA1B,CAA+BV,yCAAA,CAA6BC,aAA5D;EACD,CARG,CAAJ;EAUAR,IAAI,CAAC,4BAAD,EAA+B,YAAY;IAC7C,MAAMkB,GAAG,GAAGjB,IAAI,CAACC,KAAL,CAAWC,oBAAX,EAAmB,kCAAnB,EAAuDC,eAAvD,CAAuEC,OAAO,CAACC,OAAR,CAAgBC,yCAAA,CAA6BC,aAA7C,CAAvE,CAAZ;IACAP,IAAI,CAACC,KAAL,CAAWC,oBAAX,EAAmB,sBAAnB,EAA2CC,eAA3C,CAA2DC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAA3D;IAEA,MAAM;MAAEG;IAAF,IAAa,IAAAC,uBAAA,EAAW,MAAM,IAAAC,kCAAA,EAA0B,CAACC,qCAAA,CAAyBC,eAA1B,CAA1B,CAAjB,CAAnB;IAEA,MAAM,IAAAC,kBAAA,GAAN;IAEAI,GAAG,CAACd,eAAJ,CAAoBC,OAAO,CAACC,OAAR,CAAgBC,yCAAA,CAA6BY,WAA7C,CAApB;IAEA,IAAIC,MAAJ;IACA,MAAM,IAAAC,gBAAA,EAAI,YAAY;MACpBD,MAAM,GAAG,MAAMX,MAAM,CAACO,OAAP,CAAe,CAAf,GAAf;IACD,CAFK,CAAN;IAIAD,MAAM,CAACN,MAAM,CAACO,OAAP,CAAe,CAAf,CAAD,CAAN,CAA0BC,IAA1B,CAA+BV,yCAAA,CAA6BY,WAA5D;IACAJ,MAAM,CAACK,MAAD,CAAN,CAAeH,IAAf,CAAoBV,yCAAA,CAA6BY,WAAjD;EACD,CAjBG,CAAJ;EAmBAnB,IAAI,CAAC,2BAAD,EAA8B,YAAY;IAC5CC,IAAI,CAACC,KAAL,CAAWC,oBAAX,EAAmB,kCAAnB,EAAuDC,eAAvD,CAAuEC,OAAO,CAACC,OAAR,CAAgBC,yCAAA,CAA6BY,WAA7C,CAAvE;IAEA,MAAM;MAAEV;IAAF,IAAa,IAAAC,uBAAA,EAAW,MAAM,IAAAC,kCAAA,EAA0B,CAACC,qCAAA,CAAyBC,eAA1B,CAA1B,CAAjB,CAAnB;IAEA,MAAM,IAAAC,kBAAA,GAAN;IAEAC,MAAM,CAACN,MAAM,CAACO,OAAP,CAAe,CAAf,CAAD,CAAN,CAA0BC,IAA1B,CAA+BV,yCAAA,CAA6BY,WAA5D;EACD,CARG,CAAJ;EAUAnB,IAAI,CAAC,uCAAD,EAA0C,YAAY;IACxD,MAAM;MAAES;IAAF,IAAa,IAAAC,uBAAA,EAAW,MAAM,IAAAC,kCAAA,EAA0B,CAACC,qCAAA,CAAyBC,eAA1B,CAA1B,CAAjB,CAAnB;IAEAE,MAAM,CAACN,MAAM,CAACO,OAAP,CAAe,CAAf,CAAD,CAAN,CAA0BC,IAA1B,CAA+B,IAA/B;IAEA,MAAM,IAAAH,kBAAA,GAAN;EACD,CANG,CAAJ;AAOD,CA/CO,CAAR"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _reactNative = require("@testing-library/react-native");
|
|
4
4
|
|
|
5
5
|
var _nativeTypes = _interopRequireDefault(require("../native-types"));
|
|
6
6
|
|
|
7
|
+
var _testUtils = _interopRequireDefault(require("../test-utils"));
|
|
8
|
+
|
|
7
9
|
var _useIsHealthDataAvailable = _interopRequireDefault(require("./useIsHealthDataAvailable"));
|
|
8
10
|
|
|
9
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -12,34 +14,25 @@ describe('useIsHealthDataAvailable', () => {
|
|
|
12
14
|
test('should return false', async () => {
|
|
13
15
|
jest.spyOn(_nativeTypes.default, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(false));
|
|
14
16
|
const {
|
|
15
|
-
result
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} = (0, _reactHooks.renderHook)(_useIsHealthDataAvailable.default);
|
|
19
|
-
await (0, _reactHooks.act)(async () => {
|
|
20
|
-
await waitForNextUpdate();
|
|
21
|
-
});
|
|
17
|
+
result
|
|
18
|
+
} = (0, _reactNative.renderHook)(_useIsHealthDataAvailable.default);
|
|
19
|
+
await (0, _testUtils.default)();
|
|
22
20
|
expect(result.current).toBe(false);
|
|
23
|
-
unmount();
|
|
24
21
|
});
|
|
25
22
|
test('should return true', async () => {
|
|
26
23
|
jest.spyOn(_nativeTypes.default, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(true));
|
|
27
24
|
const {
|
|
28
|
-
result
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
} = (0, _reactHooks.renderHook)(_useIsHealthDataAvailable.default);
|
|
32
|
-
await (0, _reactHooks.act)(async () => {
|
|
33
|
-
await waitForNextUpdate();
|
|
34
|
-
});
|
|
25
|
+
result
|
|
26
|
+
} = (0, _reactNative.renderHook)(_useIsHealthDataAvailable.default);
|
|
27
|
+
await (0, _testUtils.default)();
|
|
35
28
|
expect(result.current).toBe(true);
|
|
36
|
-
unmount();
|
|
37
29
|
});
|
|
38
|
-
test('should return null before initalizing', () => {
|
|
30
|
+
test('should return null before initalizing', async () => {
|
|
39
31
|
const {
|
|
40
32
|
result
|
|
41
|
-
} = (0,
|
|
33
|
+
} = (0, _reactNative.renderHook)(_useIsHealthDataAvailable.default);
|
|
42
34
|
expect(result.current).toBe(null);
|
|
35
|
+
await (0, _testUtils.default)();
|
|
43
36
|
});
|
|
44
37
|
});
|
|
45
38
|
//# sourceMappingURL=useIsHealthDataAvailable.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["describe","test","jest","spyOn","Native","mockReturnValue","Promise","resolve","result","
|
|
1
|
+
{"version":3,"names":["describe","test","jest","spyOn","Native","mockReturnValue","Promise","resolve","result","renderHook","useIsHealthDataAvailable","waitForNextUpdate","expect","current","toBe"],"sources":["useIsHealthDataAvailable.test.ts"],"sourcesContent":["import { renderHook } from '@testing-library/react-native'\n\nimport Native from '../native-types'\nimport waitForNextUpdate from '../test-utils'\nimport useIsHealthDataAvailable from './useIsHealthDataAvailable'\n\ndescribe('useIsHealthDataAvailable', () => {\n test('should return false', async () => {\n jest.spyOn(Native, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(false))\n\n const { result } = renderHook(useIsHealthDataAvailable)\n\n await waitForNextUpdate()\n\n expect(result.current).toBe(false)\n })\n\n test('should return true', async () => {\n jest.spyOn(Native, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(true))\n\n const { result } = renderHook(useIsHealthDataAvailable)\n\n await waitForNextUpdate()\n\n expect(result.current).toBe(true)\n })\n\n test('should return null before initalizing', async () => {\n const { result } = renderHook(useIsHealthDataAvailable)\n\n expect(result.current).toBe(null)\n\n await waitForNextUpdate()\n })\n})\n"],"mappings":";;AAAA;;AAEA;;AACA;;AACA;;;;AAEAA,QAAQ,CAAC,0BAAD,EAA6B,MAAM;EACzCC,IAAI,CAAC,qBAAD,EAAwB,YAAY;IACtCC,IAAI,CAACC,KAAL,CAAWC,oBAAX,EAAmB,uBAAnB,EAA4CC,eAA5C,CAA4DC,OAAO,CAACC,OAAR,CAAgB,KAAhB,CAA5D;IAEA,MAAM;MAAEC;IAAF,IAAa,IAAAC,uBAAA,EAAWC,iCAAX,CAAnB;IAEA,MAAM,IAAAC,kBAAA,GAAN;IAEAC,MAAM,CAACJ,MAAM,CAACK,OAAR,CAAN,CAAuBC,IAAvB,CAA4B,KAA5B;EACD,CARG,CAAJ;EAUAb,IAAI,CAAC,oBAAD,EAAuB,YAAY;IACrCC,IAAI,CAACC,KAAL,CAAWC,oBAAX,EAAmB,uBAAnB,EAA4CC,eAA5C,CAA4DC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAA5D;IAEA,MAAM;MAAEC;IAAF,IAAa,IAAAC,uBAAA,EAAWC,iCAAX,CAAnB;IAEA,MAAM,IAAAC,kBAAA,GAAN;IAEAC,MAAM,CAACJ,MAAM,CAACK,OAAR,CAAN,CAAuBC,IAAvB,CAA4B,IAA5B;EACD,CARG,CAAJ;EAUAb,IAAI,CAAC,uCAAD,EAA0C,YAAY;IACxD,MAAM;MAAEO;IAAF,IAAa,IAAAC,uBAAA,EAAWC,iCAAX,CAAnB;IAEAE,MAAM,CAACJ,MAAM,CAACK,OAAR,CAAN,CAAuBC,IAAvB,CAA4B,IAA5B;IAEA,MAAM,IAAAH,kBAAA,GAAN;EACD,CANG,CAAJ;AAOD,CA5BO,CAAR"}
|
|
@@ -77,6 +77,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
77
77
|
const Healthkit = {
|
|
78
78
|
authorizationStatusFor: _nativeTypes.default.authorizationStatusFor.bind(_nativeTypes.default),
|
|
79
79
|
isHealthDataAvailable: _nativeTypes.default.isHealthDataAvailable.bind(_nativeTypes.default),
|
|
80
|
+
canAccessProtectedData: _nativeTypes.default.canAccessProtectedData.bind(_nativeTypes.default),
|
|
80
81
|
disableAllBackgroundDelivery: _nativeTypes.default.disableAllBackgroundDelivery.bind(_nativeTypes.default),
|
|
81
82
|
disableBackgroundDelivery: _nativeTypes.default.disableBackgroundDelivery.bind(_nativeTypes.default),
|
|
82
83
|
enableBackgroundDelivery: _nativeTypes.default.enableBackgroundDelivery.bind(_nativeTypes.default),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Healthkit","authorizationStatusFor","Native","bind","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType","getWorkoutRoutes","getDateOfBirth","getMostRecentQuantitySample","getMostRecentCategorySample","getMostRecentWorkout","getPreferredUnit","getPreferredUnits","getRequestStatusForAuthorization","queryCategorySamples","queryCorrelationSamples","queryQuantitySamples","queryStatisticsForQuantity","queryWorkouts","requestAuthorization","deleteQuantitySample","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useIsHealthDataAvailable","useHealthkitAuthorization"],"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 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 queryCorrelationSamples from './utils/queryCorrelationSamples'\nimport queryQuantitySamples from './utils/queryQuantitySamples'\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\n disableAllBackgroundDelivery
|
|
1
|
+
{"version":3,"names":["Healthkit","authorizationStatusFor","Native","bind","isHealthDataAvailable","canAccessProtectedData","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType","getWorkoutRoutes","getDateOfBirth","getMostRecentQuantitySample","getMostRecentCategorySample","getMostRecentWorkout","getPreferredUnit","getPreferredUnits","getRequestStatusForAuthorization","queryCategorySamples","queryCorrelationSamples","queryQuantitySamples","queryStatisticsForQuantity","queryWorkouts","requestAuthorization","deleteQuantitySample","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useIsHealthDataAvailable","useHealthkitAuthorization"],"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 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 queryCorrelationSamples from './utils/queryCorrelationSamples'\nimport queryQuantitySamples from './utils/queryQuantitySamples'\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 queryCorrelationSamples,\n queryQuantitySamples,\n queryStatisticsForQuantity,\n queryWorkouts,\n\n requestAuthorization,\n\n // delete methods\n deleteQuantitySample,\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":";;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAgEA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;;;AA9DA,MAAMA,SAAS,GAAG;EAChBC,sBAAsB,EAAEC,oBAAA,CAAOD,sBAAP,CAA8BE,IAA9B,CAAmCD,oBAAnC,CADR;EAGhBE,qBAAqB,EAAEF,oBAAA,CAAOE,qBAAP,CAA6BD,IAA7B,CAAkCD,oBAAlC,CAHP;EAIhBG,sBAAsB,EAAEH,oBAAA,CAAOG,sBAAP,CAA8BF,IAA9B,CAAmCD,oBAAnC,CAJR;EAMhBI,4BAA4B,EAC1BJ,oBAAA,CAAOI,4BAAP,CAAoCH,IAApC,CAAyCD,oBAAzC,CAPc;EAQhBK,yBAAyB,EAAEL,oBAAA,CAAOK,yBAAP,CAAiCJ,IAAjC,CAAsCD,oBAAtC,CARX;EAShBM,wBAAwB,EAAEN,oBAAA,CAAOM,wBAAP,CAAgCL,IAAhC,CAAqCD,oBAArC,CATV;EAWhB;EACAO,gBAAgB,EAAEP,oBAAA,CAAOO,gBAAP,CAAwBN,IAAxB,CAA6BD,oBAA7B,CAZF;EAahBQ,sBAAsB,EAAER,oBAAA,CAAOQ,sBAAP,CAA8BP,IAA9B,CAAmCD,oBAAnC,CAbR;EAchBS,gBAAgB,EAAET,oBAAA,CAAOS,gBAAP,CAAwBR,IAAxB,CAA6BD,oBAA7B,CAdF;EAehBU,YAAY,EAAEV,oBAAA,CAAOU,YAAP,CAAoBT,IAApB,CAAyBD,oBAAzB,CAfE;EAiBhBW,gBAAgB,EAAEX,oBAAA,CAAOW,gBAAP,CAAwBV,IAAxB,CAA6BD,oBAA7B,CAjBF;EAmBhBY,cAAc,EAAdA,uBAnBgB;EAqBhBC,2BAA2B,EAA3BA,oCArBgB;EAsBhBC,2BAA2B,EAA3BA,oCAtBgB;EAuBhBC,oBAAoB,EAApBA,6BAvBgB;EAyBhBC,gBAAgB,EAAhBA,yBAzBgB;EA0BhBC,iBAAiB,EAAjBA,0BA1BgB;EA2BhBC,gCAAgC,EAAhCA,yCA3BgB;EA6BhB;EACAC,oBAAoB,EAApBA,6BA9BgB;EA+BhBC,uBAAuB,EAAvBA,gCA/BgB;EAgChBC,oBAAoB,EAApBA,6BAhCgB;EAiChBC,0BAA0B,EAA1BA,mCAjCgB;EAkChBC,aAAa,EAAbA,sBAlCgB;EAoChBC,oBAAoB,EAApBA,6BApCgB;EAsChB;EACAC,oBAAoB,EAApBA,6BAvCgB;EAyChB;EACAC,kBAAkB,EAAlBA,2BA1CgB;EA2ChBC,qBAAqB,EAArBA,8BA3CgB;EA4ChBC,kBAAkB,EAAlBA,2BA5CgB;EA6ChBC,iBAAiB,EAAjBA,0BA7CgB;EA+ChB;EACAC,kBAAkB,EAAlBA,2BAhDgB;EAkDhB;EACAC,2BAA2B,EAA3BA,oCAnDgB;EAqDhBC,2BAA2B,EAA3BA,oCArDgB;EAsDhBC,oBAAoB,EAApBA,6BAtDgB;EAwDhBC,qBAAqB,EAArBA,8BAxDgB;EA0DhBC,wBAAwB,EAAxBA,iCA1DgB;EA2DhBC,yBAAyB,EAAzBA;AA3DgB,CAAlB;eAgEetC,S"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -29,6 +29,7 @@ let hasWarned = false;
|
|
|
29
29
|
function UnavailableFn(retVal) {
|
|
30
30
|
return () => {
|
|
31
31
|
if (!hasWarned) {
|
|
32
|
+
// eslint-disable-next-line no-console
|
|
32
33
|
console.warn(notAvailableError);
|
|
33
34
|
hasWarned = true;
|
|
34
35
|
}
|
|
@@ -80,7 +81,8 @@ const Healthkit = {
|
|
|
80
81
|
useMostRecentWorkout: UnavailableFn(null),
|
|
81
82
|
useSubscribeToChanges: UnavailableFn([null, () => null]),
|
|
82
83
|
useHealthkitAuthorization: UnavailableFn([null, async () => Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.unknown)]),
|
|
83
|
-
useIsHealthDataAvailable: () => false
|
|
84
|
+
useIsHealthDataAvailable: () => false,
|
|
85
|
+
canAccessProtectedData: async () => Promise.resolve(false)
|
|
84
86
|
};
|
|
85
87
|
var _default = Healthkit;
|
|
86
88
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["notAvailableError","Platform","OS","hasWarned","UnavailableFn","retVal","console","warn","Healthkit","authorizationStatusFor","Promise","resolve","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","queryCorrelationSamples","queryQuantitySamples","queryStatisticsForQuantity","averageQuantity","undefined","maximumQuantity","minimumQuantity","sumQuantity","mostRecentQuantity","mostRecentQuantityDateInterval","duration","queryWorkouts","requestAuthorization","deleteQuantitySample","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useHealthkitAuthorization","useIsHealthDataAvailable"],"sources":["index.tsx"],"sourcesContent":["import { Platform } from 'react-native'\n\nimport {\n HKAuthorizationRequestStatus, HKBiologicalSex, HKBloodType, HKFitzpatrickSkinType, HKUnits, HKWheelchairUse,\n} from './native-types'\n\nimport type ReactNativeHealthkit from './index.ios'\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 console.warn(notAvailableError)\n hasWarned = true\n }\n return retVal\n }\n}\n\nconst Healthkit: typeof ReactNativeHealthkit = {\n authorizationStatusFor: UnavailableFn(Promise.resolve(false)),\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([])),\n queryCorrelationSamples: UnavailableFn(Promise.resolve([])),\n queryQuantitySamples: UnavailableFn(Promise.resolve([])),\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 requestAuthorization: UnavailableFn(Promise.resolve(false)),\n deleteQuantitySample: 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}\n\nexport * from './types'\n\nexport default Healthkit\n"],"mappings":";;;;;;;;AAAA;;AAEA;;
|
|
1
|
+
{"version":3,"names":["notAvailableError","Platform","OS","hasWarned","UnavailableFn","retVal","console","warn","Healthkit","authorizationStatusFor","Promise","resolve","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","queryCorrelationSamples","queryQuantitySamples","queryStatisticsForQuantity","averageQuantity","undefined","maximumQuantity","minimumQuantity","sumQuantity","mostRecentQuantity","mostRecentQuantityDateInterval","duration","queryWorkouts","requestAuthorization","deleteQuantitySample","saveCategorySample","saveCorrelationSample","saveQuantitySample","saveWorkoutSample","subscribeToChanges","useMostRecentCategorySample","useMostRecentQuantitySample","useMostRecentWorkout","useSubscribeToChanges","useHealthkitAuthorization","useIsHealthDataAvailable","canAccessProtectedData"],"sources":["index.tsx"],"sourcesContent":["import { Platform } from 'react-native'\n\nimport {\n HKAuthorizationRequestStatus, HKBiologicalSex, HKBloodType, HKFitzpatrickSkinType, HKUnits, HKWheelchairUse,\n} from './native-types'\n\nimport type ReactNativeHealthkit from './index.ios'\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(false)),\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([])),\n queryCorrelationSamples: UnavailableFn(Promise.resolve([])),\n queryQuantitySamples: UnavailableFn(Promise.resolve([])),\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 requestAuthorization: UnavailableFn(Promise.resolve(false)),\n deleteQuantitySample: 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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"}
|
|
@@ -2,9 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
var _reactNative = require("react-native");
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
const mockModule = {
|
|
6
6
|
isHealthDataAvailable: jest.fn(),
|
|
7
7
|
addListener: jest.fn(),
|
|
8
|
-
removeListeners: jest.fn()
|
|
8
|
+
removeListeners: jest.fn(),
|
|
9
|
+
authorizationStatusFor: jest.fn(),
|
|
10
|
+
requestAuthorization: jest.fn(),
|
|
11
|
+
saveQuantitySample: jest.fn(),
|
|
12
|
+
deleteQuantitySample: jest.fn(),
|
|
13
|
+
disableAllBackgroundDelivery: jest.fn(),
|
|
14
|
+
disableBackgroundDelivery: jest.fn(),
|
|
15
|
+
enableBackgroundDelivery: jest.fn(),
|
|
16
|
+
getBiologicalSex: jest.fn(),
|
|
17
|
+
getBloodType: jest.fn(),
|
|
18
|
+
getDateOfBirth: jest.fn(),
|
|
19
|
+
getFitzpatrickSkinType: jest.fn(),
|
|
20
|
+
getPreferredUnits: jest.fn(),
|
|
21
|
+
getRequestStatusForAuthorization: jest.fn(),
|
|
22
|
+
getWheelchairUse: jest.fn(),
|
|
23
|
+
getWorkoutRoutes: jest.fn(),
|
|
24
|
+
queryCategorySamples: jest.fn(),
|
|
25
|
+
queryCorrelationSamples: jest.fn(),
|
|
26
|
+
queryQuantitySamples: jest.fn(),
|
|
27
|
+
queryStatisticsForQuantity: jest.fn(),
|
|
28
|
+
queryWorkoutSamples: jest.fn(),
|
|
29
|
+
saveCategorySample: jest.fn(),
|
|
30
|
+
saveCorrelationSample: jest.fn(),
|
|
31
|
+
saveWorkoutSample: jest.fn(),
|
|
32
|
+
subscribeToObserverQuery: jest.fn(),
|
|
33
|
+
unsubscribeQuery: jest.fn(),
|
|
34
|
+
canAccessProtectedData: jest.fn()
|
|
9
35
|
};
|
|
36
|
+
_reactNative.NativeModules.ReactNativeHealthkit = mockModule;
|
|
10
37
|
//# sourceMappingURL=jest.setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["mockModule","isHealthDataAvailable","jest","fn","addListener","removeListeners","authorizationStatusFor","requestAuthorization","saveQuantitySample","deleteQuantitySample","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getBloodType","getDateOfBirth","getFitzpatrickSkinType","getPreferredUnits","getRequestStatusForAuthorization","getWheelchairUse","getWorkoutRoutes","queryCategorySamples","queryCorrelationSamples","queryQuantitySamples","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 disableAllBackgroundDelivery: jest.fn(),\n disableBackgroundDelivery: jest.fn(),\n enableBackgroundDelivery: 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 queryQuantitySamples: 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;;AAIA,MAAMA,UAA0C,GAAG;EACjDC,qBAAqB,EAAEC,IAAI,CAACC,EAAL,EAD0B;EAEjDC,WAAW,EAAEF,IAAI,CAACC,EAAL,EAFoC;EAGjDE,eAAe,EAAEH,IAAI,CAACC,EAAL,EAHgC;EAIjDG,sBAAsB,EAAEJ,IAAI,CAACC,EAAL,EAJyB;EAKjDI,oBAAoB,EAAEL,IAAI,CAACC,EAAL,EAL2B;EAMjDK,kBAAkB,EAAEN,IAAI,CAACC,EAAL,EAN6B;EAOjDM,oBAAoB,EAAEP,IAAI,CAACC,EAAL,EAP2B;EAQjDO,4BAA4B,EAAER,IAAI,CAACC,EAAL,EARmB;EASjDQ,yBAAyB,EAAET,IAAI,CAACC,EAAL,EATsB;EAUjDS,wBAAwB,EAAEV,IAAI,CAACC,EAAL,EAVuB;EAWjDU,gBAAgB,EAAEX,IAAI,CAACC,EAAL,EAX+B;EAYjDW,YAAY,EAAEZ,IAAI,CAACC,EAAL,EAZmC;EAajDY,cAAc,EAAEb,IAAI,CAACC,EAAL,EAbiC;EAcjDa,sBAAsB,EAAEd,IAAI,CAACC,EAAL,EAdyB;EAejDc,iBAAiB,EAAEf,IAAI,CAACC,EAAL,EAf8B;EAgBjDe,gCAAgC,EAAEhB,IAAI,CAACC,EAAL,EAhBe;EAiBjDgB,gBAAgB,EAAEjB,IAAI,CAACC,EAAL,EAjB+B;EAkBjDiB,gBAAgB,EAAElB,IAAI,CAACC,EAAL,EAlB+B;EAmBjDkB,oBAAoB,EAAEnB,IAAI,CAACC,EAAL,EAnB2B;EAoBjDmB,uBAAuB,EAAEpB,IAAI,CAACC,EAAL,EApBwB;EAqBjDoB,oBAAoB,EAAErB,IAAI,CAACC,EAAL,EArB2B;EAsBjDqB,0BAA0B,EAAEtB,IAAI,CAACC,EAAL,EAtBqB;EAuBjDsB,mBAAmB,EAAEvB,IAAI,CAACC,EAAL,EAvB4B;EAwBjDuB,kBAAkB,EAAExB,IAAI,CAACC,EAAL,EAxB6B;EAyBjDwB,qBAAqB,EAAEzB,IAAI,CAACC,EAAL,EAzB0B;EA0BjDyB,iBAAiB,EAAE1B,IAAI,CAACC,EAAL,EA1B8B;EA2BjD0B,wBAAwB,EAAE3B,IAAI,CAACC,EAAL,EA3BuB;EA4BjD2B,gBAAgB,EAAE5B,IAAI,CAACC,EAAL,EA5B+B;EA6BjD4B,sBAAsB,EAAE7B,IAAI,CAACC,EAAL;AA7ByB,CAAnD;AAgCA6B,0BAAA,CAAcC,oBAAd,GAAqCjC,UAArC"}
|