@kingstinct/react-native-healthkit 5.0.0 → 5.1.2

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 (63) hide show
  1. package/README.md +39 -12
  2. package/ios/ReactNativeHealthkit.m +6 -0
  3. package/ios/ReactNativeHealthkit.swift +23 -0
  4. package/lib/commonjs/hooks/useIsHealthDataAvailable.js.map +1 -1
  5. package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js +45 -0
  6. package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js.map +1 -0
  7. package/lib/commonjs/hooks/useMostRecentWorkout.js +0 -4
  8. package/lib/commonjs/hooks/useMostRecentWorkout.js.map +1 -1
  9. package/lib/commonjs/index.ios.js +4 -0
  10. package/lib/commonjs/index.ios.js.map +1 -1
  11. package/lib/commonjs/index.js +1 -0
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/jest.setup.js +10 -0
  14. package/lib/commonjs/jest.setup.js.map +1 -0
  15. package/lib/commonjs/native-types.js.map +1 -1
  16. package/lib/commonjs/utils/deleteQuantitySample.js +16 -0
  17. package/lib/commonjs/utils/deleteQuantitySample.js.map +1 -0
  18. package/lib/commonjs/utils/deserializeCategorySample.js +2 -2
  19. package/lib/commonjs/utils/deserializeCategorySample.js.map +1 -1
  20. package/lib/commonjs/utils/deserializeCategorySample.test.js +25 -0
  21. package/lib/commonjs/utils/deserializeCategorySample.test.js.map +1 -0
  22. package/lib/commonjs/utils/serializeDate.test.js +19 -0
  23. package/lib/commonjs/utils/serializeDate.test.js.map +1 -0
  24. package/lib/module/hooks/useIsHealthDataAvailable.js.map +1 -1
  25. package/lib/module/hooks/useIsHealthDataAvailable.test.js +38 -0
  26. package/lib/module/hooks/useIsHealthDataAvailable.test.js.map +1 -0
  27. package/lib/module/hooks/useMostRecentWorkout.js +0 -4
  28. package/lib/module/hooks/useMostRecentWorkout.js.map +1 -1
  29. package/lib/module/index.ios.js +3 -0
  30. package/lib/module/index.ios.js.map +1 -1
  31. package/lib/module/index.js +1 -0
  32. package/lib/module/index.js.map +1 -1
  33. package/lib/module/jest.setup.js +7 -0
  34. package/lib/module/jest.setup.js.map +1 -0
  35. package/lib/module/native-types.js.map +1 -1
  36. package/lib/module/utils/deleteQuantitySample.js +6 -0
  37. package/lib/module/utils/deleteQuantitySample.js.map +1 -0
  38. package/lib/module/utils/deserializeCategorySample.js +2 -2
  39. package/lib/module/utils/deserializeCategorySample.js.map +1 -1
  40. package/lib/module/utils/deserializeCategorySample.test.js +19 -0
  41. package/lib/module/utils/deserializeCategorySample.test.js.map +1 -0
  42. package/lib/module/utils/serializeDate.test.js +14 -0
  43. package/lib/module/utils/serializeDate.test.js.map +1 -0
  44. package/lib/typescript/src/hooks/useIsHealthDataAvailable.test.d.ts +1 -0
  45. package/lib/typescript/src/index.ios.d.ts +1 -0
  46. package/lib/typescript/src/jest.setup.d.ts +1 -0
  47. package/lib/typescript/src/native-types.d.ts +1 -0
  48. package/lib/typescript/src/utils/deleteQuantitySample.d.ts +4 -0
  49. package/lib/typescript/src/utils/deserializeCategorySample.d.ts +2 -2
  50. package/lib/typescript/src/utils/deserializeCategorySample.test.d.ts +1 -0
  51. package/lib/typescript/src/utils/serializeDate.test.d.ts +1 -0
  52. package/package.json +3 -8
  53. package/src/hooks/useIsHealthDataAvailable.test.ts +40 -0
  54. package/src/hooks/useIsHealthDataAvailable.ts +2 -0
  55. package/src/hooks/useMostRecentWorkout.ts +0 -2
  56. package/src/index.ios.tsx +4 -0
  57. package/src/index.tsx +1 -0
  58. package/src/jest.setup.ts +7 -0
  59. package/src/native-types.ts +21 -5
  60. package/src/utils/deleteQuantitySample.ts +14 -0
  61. package/src/utils/deserializeCategorySample.test.ts +21 -0
  62. package/src/utils/deserializeCategorySample.ts +2 -2
  63. package/src/utils/serializeDate.test.ts +16 -0
package/README.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # @kingstinct/react-native-healthkit
2
2
 
3
- [![Test](https://github.com/Kingstinct/react-native-healthkit/actions/workflows/main.yml/badge.svg)](https://github.com/Kingstinct/react-native-healthkit/actions/workflows/main.yml)
3
+ [![Test](https://github.com/Kingstinct/react-native-healthkit/actions/workflows/test.yml/badge.svg)](https://github.com/Kingstinct/react-native-healthkit/actions/workflows/test.yml)
4
4
  [![@kingstinct/react-native-healthkit on NPM](https://img.shields.io/npm/v/@kingstinct/react-native-healthkit)](https://www.npmjs.com/package/@kingstinct/react-native-healthkit)
5
+ ![npm](https://img.shields.io/npm/dt/@kingstinct/react-native-healthkit)
5
6
 
6
- React Native bindings for HealthKit with full TypeScript and Promise support covering almost everything. Keeping TypeScript mappings as close as possible to HealthKit - both in regards to naming and serialization. This will make it easier to keep this library up-to-date with HealthKit as well as browsing the official documentation (and if something - metadata properties for example - is not typed it will still be accessible).
7
+ React Native bindings for HealthKit with full TypeScript and Promise support covering about any kind of data. Keeping TypeScript mappings as close as possible to HealthKit - both in regards to naming and serialization. This will make it easier to keep this library up-to-date with HealthKit as well as browsing [the official documentation](https://developer.apple.com/documentation/healthkit) (and if something - metadata properties for example - is not typed it will still be accessible).
7
8
 
8
9
  | Data Types | Query | Save | Subscribe | Examples |
9
10
  | ----------------------------|:------|:------|:----------|:---------------------------------------|
@@ -14,28 +15,54 @@ React Native bindings for HealthKit with full TypeScript and Promise support cov
14
15
  | Document Types | ✅ | ❌ | ✅ | [CDA documents](https://developer.apple.com/documentation/healthkit/hkcdadocument) exposed as Base64 data |
15
16
  | Clinical Records | ✅ | ❌ | ✅ | Lab results etc in [FHIR JSON format](https://www.hl7.org/fhir/json.html) |
16
17
 
18
+ ## Disclaimer
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.
21
+
17
22
  ## Installation
18
23
 
24
+ ### Native App
25
+ 1. Install package
19
26
  ```sh
20
- npm install @kingstinct/react-native-healthkit
21
- cd ios
22
- pod install
27
+ yarn add @kingstinct/react-native-healthkit # or npm install @kingstinct/react-native-healthkit
28
+ npx pod-install
23
29
  ```
24
30
 
25
- or
31
+ 2. Remember to set `NSHealthUpdateUsageDescription` and `NSHealthShareUsageDescription` in your `Info.plist`
26
32
 
27
- ```sh
28
- yarn add @kingstinct/react-native-healthkit
29
- cd ios
30
- pod install
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.
38
+
39
+ ### Expo Managed Workflow
40
+ 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
+
42
+ 1. Install package
43
+ ```sh
44
+ yarn add @kingstinct/react-native-healthkit # or npm install @kingstinct/react-native-healthkit
31
45
  ```
32
46
 
33
- Remember to set `NSHealthUpdateUsageDescription` and `NSHealthShareUsageDescription` in your `Info.plist` as well as enable the HealthKit capability for the project in Xcode. During runtime you need to check if HealthKit is available on the device with `isHealthDataAvailable` and request permissions with `requestAuthorization`. The example has been migrated to **Expo** for easy-of-use and maintainability. See the [example app.json](https://github.com/Kingstinct/react-native-healthkit/blob/8e82d921f57c9bc0912af5f52f53c181ee8e4b5a/example/app.json#L24-L31) for how to apply this to your project. Just keep in mind this will not work in Expo Go since there is native iOS code involved - you'll have to use EAS to [build your own client](https://docs.expo.dev/development/getting-started/).
47
+ 2. See the [example app.json](https://github.com/Kingstinct/react-native-healthkit/blob/8e82d921f57c9bc0912af5f52f53c181ee8e4b5a/example/app.json#L24-L31) for how to apply this to your project.
34
48
 
35
- 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)
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.
36
50
 
37
51
  ## Usage
38
52
 
53
+ Some hook examples:
54
+ ```TypeScript
55
+ import { HKQuantityTypeIdentifier, useHealthkitAuthorization } from '@kingstinct/react-native-healthkit';
56
+
57
+ const [authorizationStatus, requestAuthorization] = useHealthkitAuthorization([HKQuantityTypeIdentifier.bloodGlucose])
58
+
59
+ // make sure that you've requested authorization before requesting data, otherwise your app will crash
60
+ import { useMostRecentQuantitySample, HKQuantityTypeIdentifier } from '@kingstinct/react-native-healthkit';
61
+
62
+ const mostRecentBloodGlucoseSample = useMostRecentQuantitySample(HKQuantityTypeIdentifier.bloodGlucose)
63
+ ```
64
+
65
+ Some imperative examples:
39
66
  ```TypeScript
40
67
  import HealthKit, { HKUnit, HKQuantityTypeIdentifier, HKInsulinDeliveryReason, HKCategoryTypeIdentifier } from '@kingstinct/react-native-healthkit';
41
68
 
@@ -62,6 +62,12 @@ RCT_EXTERN_METHOD(saveQuantitySample:(NSString)typeIdentifier
62
62
  reject:(RCTPromiseRejectBlock)reject
63
63
  )
64
64
 
65
+ RCT_EXTERN_METHOD(deleteQuantitySample:(NSString)typeIdentifier
66
+ uuid:(NSString)uuid
67
+ resolve:(RCTPromiseResolveBlock)resolve
68
+ reject:(RCTPromiseRejectBlock)reject
69
+ )
70
+
65
71
  RCT_EXTERN_METHOD(subscribeToObserverQuery:(NSString)typeIdentifier
66
72
  resolve:(RCTPromiseResolveBlock)resolve
67
73
  reject:(RCTPromiseRejectBlock)reject
@@ -379,6 +379,29 @@ class ReactNativeHealthkit: RCTEventEmitter {
379
379
  }
380
380
  }
381
381
 
382
+ @objc(deleteQuantitySample:uuid:resolve:reject:)
383
+ func deleteQuantitySample(typeIdentifier: String, uuid: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){
384
+ guard let store = _store else {
385
+ return reject(INIT_ERROR, INIT_ERROR_MESSAGE, nil);
386
+ }
387
+
388
+ let identifier = HKQuantityTypeIdentifier.init(rawValue: typeIdentifier);
389
+ let sampleUuid = UUID.init(uuidString: uuid) as! UUID;
390
+
391
+ guard let sampleType = HKObjectType.quantityType(forIdentifier: identifier) else {
392
+ return reject(TYPE_IDENTIFIER_ERROR, typeIdentifier, nil);
393
+ }
394
+
395
+ let samplePredicate = HKQuery.predicateForObject(with: sampleUuid);
396
+
397
+ store.deleteObjects(of: sampleType, predicate: samplePredicate) { (success: Bool, deletedObjectCount: Int, error: Error?) in
398
+ guard let err = error else {
399
+ return resolve(success);
400
+ }
401
+ reject(GENERIC_ERROR, err.localizedDescription, error);
402
+ }
403
+ }
404
+
382
405
  @objc(saveCorrelationSample:samples:start:end:metadata:resolve:reject:)
383
406
  func saveCorrelationSample(typeIdentifier: String, samples: Array<Dictionary<String, Any>>, start: Date, end: Date, metadata: Dictionary<String, Any>, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock){
384
407
  guard let store = _store else {
@@ -1 +1 @@
1
- {"version":3,"names":["useIsHealthDataAvailable","isAvailable","setIsAvailable","useState","useEffect","init","res","Native","isHealthDataAvailable"],"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 useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n return isAvailable\n}\n\nexport default useIsHealthDataAvailable\n"],"mappings":";;;;;;;AAAA;;AAEA;;;;AAEA,MAAMA,wBAAwB,GAAG,MAAM;EACrC,MAAM,CAACC,WAAD,EAAcC,cAAd,IAAgC,IAAAC,eAAA,EAAyB,IAAzB,CAAtC;EACA,IAAAC,gBAAA,EAAU,MAAM;IACd,MAAMC,IAAI,GAAG,YAAY;MACvB,MAAMC,GAAG,GAAG,MAAMC,oBAAA,CAAOC,qBAAP,EAAlB;MACAN,cAAc,CAACI,GAAD,CAAd;IACD,CAHD;;IAIA,KAAKD,IAAI,EAAT;EACD,CAND,EAMG,EANH;EAOA,OAAOJ,WAAP;AACD,CAVD;;eAYeD,wB"}
1
+ {"version":3,"names":["useIsHealthDataAvailable","isAvailable","setIsAvailable","useState","useEffect","init","res","Native","isHealthDataAvailable"],"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;;AAEA;;;;AAEA,MAAMA,wBAAwB,GAAG,MAAM;EACrC,MAAM,CAACC,WAAD,EAAcC,cAAd,IAAgC,IAAAC,eAAA,EAAyB,IAAzB,CAAtC;EAEA,IAAAC,gBAAA,EAAU,MAAM;IACd,MAAMC,IAAI,GAAG,YAAY;MACvB,MAAMC,GAAG,GAAG,MAAMC,oBAAA,CAAOC,qBAAP,EAAlB;MACAN,cAAc,CAACI,GAAD,CAAd;IACD,CAHD;;IAIA,KAAKD,IAAI,EAAT;EACD,CAND,EAMG,EANH;EAQA,OAAOJ,WAAP;AACD,CAZD;;eAceD,wB"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _reactHooks = require("@testing-library/react-hooks");
4
+
5
+ var _nativeTypes = _interopRequireDefault(require("../native-types"));
6
+
7
+ var _useIsHealthDataAvailable = _interopRequireDefault(require("./useIsHealthDataAvailable"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
11
+ describe('useIsHealthDataAvailable', () => {
12
+ test('should return false', async () => {
13
+ jest.spyOn(_nativeTypes.default, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(false));
14
+ const {
15
+ result,
16
+ waitForNextUpdate,
17
+ unmount
18
+ } = (0, _reactHooks.renderHook)(_useIsHealthDataAvailable.default);
19
+ await (0, _reactHooks.act)(async () => {
20
+ await waitForNextUpdate();
21
+ });
22
+ expect(result.current).toBe(false);
23
+ unmount();
24
+ });
25
+ test('should return true', async () => {
26
+ jest.spyOn(_nativeTypes.default, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(true));
27
+ const {
28
+ result,
29
+ waitForNextUpdate,
30
+ unmount
31
+ } = (0, _reactHooks.renderHook)(_useIsHealthDataAvailable.default);
32
+ await (0, _reactHooks.act)(async () => {
33
+ await waitForNextUpdate();
34
+ });
35
+ expect(result.current).toBe(true);
36
+ unmount();
37
+ });
38
+ test('should return null before initalizing', () => {
39
+ const {
40
+ result
41
+ } = (0, _reactHooks.renderHook)(_useIsHealthDataAvailable.default);
42
+ expect(result.current).toBe(null);
43
+ });
44
+ });
45
+ //# sourceMappingURL=useIsHealthDataAvailable.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","test","jest","spyOn","Native","mockReturnValue","Promise","resolve","result","waitForNextUpdate","unmount","renderHook","useIsHealthDataAvailable","act","expect","current","toBe"],"sources":["useIsHealthDataAvailable.test.ts"],"sourcesContent":["import { act, renderHook } from '@testing-library/react-hooks'\n\nimport Native from '../native-types'\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, waitForNextUpdate, unmount } = renderHook(useIsHealthDataAvailable)\n\n await act(async () => {\n await waitForNextUpdate()\n })\n\n expect(result.current).toBe(false)\n\n unmount()\n })\n\n test('should return true', async () => {\n jest.spyOn(Native, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(true))\n\n const { result, waitForNextUpdate, unmount } = renderHook(useIsHealthDataAvailable)\n\n await act(async () => {\n await waitForNextUpdate()\n })\n\n expect(result.current).toBe(true)\n\n unmount()\n })\n\n test('should return null before initalizing', () => {\n const { result } = renderHook(useIsHealthDataAvailable)\n\n expect(result.current).toBe(null)\n })\n})\n"],"mappings":";;AAAA;;AAEA;;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,MAAF;MAAUC,iBAAV;MAA6BC;IAA7B,IAAyC,IAAAC,sBAAA,EAAWC,iCAAX,CAA/C;IAEA,MAAM,IAAAC,eAAA,EAAI,YAAY;MACpB,MAAMJ,iBAAiB,EAAvB;IACD,CAFK,CAAN;IAIAK,MAAM,CAACN,MAAM,CAACO,OAAR,CAAN,CAAuBC,IAAvB,CAA4B,KAA5B;IAEAN,OAAO;EACR,CAZG,CAAJ;EAcAT,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,MAAF;MAAUC,iBAAV;MAA6BC;IAA7B,IAAyC,IAAAC,sBAAA,EAAWC,iCAAX,CAA/C;IAEA,MAAM,IAAAC,eAAA,EAAI,YAAY;MACpB,MAAMJ,iBAAiB,EAAvB;IACD,CAFK,CAAN;IAIAK,MAAM,CAACN,MAAM,CAACO,OAAR,CAAN,CAAuBC,IAAvB,CAA4B,IAA5B;IAEAN,OAAO;EACR,CAZG,CAAJ;EAcAT,IAAI,CAAC,uCAAD,EAA0C,MAAM;IAClD,MAAM;MAAEO;IAAF,IAAa,IAAAG,sBAAA,EAAWC,iCAAX,CAAnB;IAEAE,MAAM,CAACN,MAAM,CAACO,OAAR,CAAN,CAAuBC,IAAvB,CAA4B,IAA5B;EACD,CAJG,CAAJ;AAKD,CAlCO,CAAR"}
@@ -26,10 +26,6 @@ function useMostRecentWorkout(options) {
26
26
  energyUnit,
27
27
  distanceUnit
28
28
  } = await (0, _getPreferredUnitsTyped.default)(optionsRef.current);
29
- console.log({
30
- energyUnit,
31
- distanceUnit
32
- });
33
29
  setWorkout(await (0, _getMostRecentWorkout.default)({
34
30
  energyUnit,
35
31
  distanceUnit
@@ -1 +1 @@
1
- {"version":3,"names":["useMostRecentWorkout","options","workout","setWorkout","useState","optionsRef","useRef","useEffect","current","update","useCallback","energyUnit","distanceUnit","getPreferredUnitsTyped","console","log","getMostRecentWorkout","cancelSubscription","init","subscribeToChanges"],"sources":["useMostRecentWorkout.ts"],"sourcesContent":["import {\n useEffect, useState, useRef, useCallback,\n} from 'react'\n\nimport getMostRecentWorkout from '../utils/getMostRecentWorkout'\nimport getPreferredUnitsTyped from '../utils/getPreferredUnitsTyped'\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { EnergyUnit, LengthUnit } from '../native-types'\nimport type { HKWorkout } from '../types'\n\nfunction useMostRecentWorkout<\n TEnergy extends EnergyUnit,\n TDistance extends LengthUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(null)\n\n const optionsRef = useRef(options)\n\n useEffect(() => {\n optionsRef.current = options\n }, [options])\n\n const update = useCallback(async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n optionsRef.current,\n )\n\n console.log({ energyUnit, distanceUnit })\n\n setWorkout(await getMostRecentWorkout({\n energyUnit,\n distanceUnit,\n }))\n }, [])\n\n useEffect(() => {\n void update()\n }, [update])\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n update,\n )\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [update])\n\n return workout\n}\n\nexport default useMostRecentWorkout\n"],"mappings":";;;;;;;AAAA;;AAIA;;AACA;;AACA;;;;AAKA,SAASA,oBAAT,CAGEC,OAHF,EAGkF;EAChF,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwB,IAAAC,eAAA,EAA+C,IAA/C,CAA9B;EAEA,MAAMC,UAAU,GAAG,IAAAC,aAAA,EAAOL,OAAP,CAAnB;EAEA,IAAAM,gBAAA,EAAU,MAAM;IACdF,UAAU,CAACG,OAAX,GAAqBP,OAArB;EACD,CAFD,EAEG,CAACA,OAAD,CAFH;EAIA,MAAMQ,MAAM,GAAG,IAAAC,kBAAA,EAAY,YAAY;IACrC,MAAM;MAAEC,UAAF;MAAcC;IAAd,IAA+B,MAAM,IAAAC,+BAAA,EACzCR,UAAU,CAACG,OAD8B,CAA3C;IAIAM,OAAO,CAACC,GAAR,CAAY;MAAEJ,UAAF;MAAcC;IAAd,CAAZ;IAEAT,UAAU,CAAC,MAAM,IAAAa,6BAAA,EAAqB;MACpCL,UADoC;MAEpCC;IAFoC,CAArB,CAAP,CAAV;EAID,CAXc,EAWZ,EAXY,CAAf;EAaA,IAAAL,gBAAA,EAAU,MAAM;IACd,KAAKE,MAAM,EAAX;EACD,CAFD,EAEG,CAACA,MAAD,CAFH;EAIA,IAAAF,gBAAA,EAAU,MAAM;IACd,IAAIU,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvBD,kBAAkB,GAAG,MAAM,IAAAE,2BAAA,EACzB,yBADyB,EAEzBV,MAFyB,CAA3B;IAID,CALD;;IAMA,KAAKS,IAAI,EAAT;IAEA,OAAO,MAAM;MAAA;;MACX,6BAAKD,kBAAL,wDAAK,qBAAL;IACD,CAFD;EAGD,CAdD,EAcG,CAACR,MAAD,CAdH;EAgBA,OAAOP,OAAP;AACD;;eAEcF,oB"}
1
+ {"version":3,"names":["useMostRecentWorkout","options","workout","setWorkout","useState","optionsRef","useRef","useEffect","current","update","useCallback","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","cancelSubscription","init","subscribeToChanges"],"sources":["useMostRecentWorkout.ts"],"sourcesContent":["import {\n useEffect, useState, useRef, useCallback,\n} from 'react'\n\nimport getMostRecentWorkout from '../utils/getMostRecentWorkout'\nimport getPreferredUnitsTyped from '../utils/getPreferredUnitsTyped'\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { EnergyUnit, LengthUnit } from '../native-types'\nimport type { HKWorkout } from '../types'\n\nfunction useMostRecentWorkout<\n TEnergy extends EnergyUnit,\n TDistance extends LengthUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(null)\n\n const optionsRef = useRef(options)\n\n useEffect(() => {\n optionsRef.current = options\n }, [options])\n\n const update = useCallback(async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n optionsRef.current,\n )\n\n setWorkout(await getMostRecentWorkout({\n energyUnit,\n distanceUnit,\n }))\n }, [])\n\n useEffect(() => {\n void update()\n }, [update])\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n update,\n )\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [update])\n\n return workout\n}\n\nexport default useMostRecentWorkout\n"],"mappings":";;;;;;;AAAA;;AAIA;;AACA;;AACA;;;;AAKA,SAASA,oBAAT,CAGEC,OAHF,EAGkF;EAChF,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwB,IAAAC,eAAA,EAA+C,IAA/C,CAA9B;EAEA,MAAMC,UAAU,GAAG,IAAAC,aAAA,EAAOL,OAAP,CAAnB;EAEA,IAAAM,gBAAA,EAAU,MAAM;IACdF,UAAU,CAACG,OAAX,GAAqBP,OAArB;EACD,CAFD,EAEG,CAACA,OAAD,CAFH;EAIA,MAAMQ,MAAM,GAAG,IAAAC,kBAAA,EAAY,YAAY;IACrC,MAAM;MAAEC,UAAF;MAAcC;IAAd,IAA+B,MAAM,IAAAC,+BAAA,EACzCR,UAAU,CAACG,OAD8B,CAA3C;IAIAL,UAAU,CAAC,MAAM,IAAAW,6BAAA,EAAqB;MACpCH,UADoC;MAEpCC;IAFoC,CAArB,CAAP,CAAV;EAID,CATc,EASZ,EATY,CAAf;EAWA,IAAAL,gBAAA,EAAU,MAAM;IACd,KAAKE,MAAM,EAAX;EACD,CAFD,EAEG,CAACA,MAAD,CAFH;EAIA,IAAAF,gBAAA,EAAU,MAAM;IACd,IAAIQ,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvBD,kBAAkB,GAAG,MAAM,IAAAE,2BAAA,EACzB,yBADyB,EAEzBR,MAFyB,CAA3B;IAID,CALD;;IAMA,KAAKO,IAAI,EAAT;IAEA,OAAO,MAAM;MAAA;;MACX,6BAAKD,kBAAL,wDAAK,qBAAL;IACD,CAFD;EAGD,CAdD,EAcG,CAACN,MAAD,CAdH;EAgBA,OAAOP,OAAP;AACD;;eAEcF,oB"}
@@ -20,6 +20,8 @@ var _useSubscribeToChanges = _interopRequireDefault(require("./hooks/useSubscrib
20
20
 
21
21
  var _nativeTypes = _interopRequireDefault(require("./native-types"));
22
22
 
23
+ var _deleteQuantitySample = _interopRequireDefault(require("./utils/deleteQuantitySample"));
24
+
23
25
  var _getDateOfBirth = _interopRequireDefault(require("./utils/getDateOfBirth"));
24
26
 
25
27
  var _getMostRecentCategorySample = _interopRequireDefault(require("./utils/getMostRecentCategorySample"));
@@ -98,6 +100,8 @@ const Healthkit = {
98
100
  queryStatisticsForQuantity: _queryStatisticsForQuantity.default,
99
101
  queryWorkouts: _queryWorkouts.default,
100
102
  requestAuthorization: _requestAuthorization.default,
103
+ // delete methods
104
+ deleteQuantitySample: _deleteQuantitySample.default,
101
105
  // save methods
102
106
  saveCategorySample: _saveCategorySample.default,
103
107
  saveCorrelationSample: _saveCorrelationSample.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","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 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: 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 // 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;;AA2DA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;;;AAzDA,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;EAKhBG,4BAA4B,EAAEH,oBAAA,CAAOG,4BAAP,CAAoCF,IAApC,CAAyCD,oBAAzC,CALd;EAMhBI,yBAAyB,EAAEJ,oBAAA,CAAOI,yBAAP,CAAiCH,IAAjC,CAAsCD,oBAAtC,CANX;EAOhBK,wBAAwB,EAAEL,oBAAA,CAAOK,wBAAP,CAAgCJ,IAAhC,CAAqCD,oBAArC,CAPV;EAShB;EACAM,gBAAgB,EAAEN,oBAAA,CAAOM,gBAAP,CAAwBL,IAAxB,CAA6BD,oBAA7B,CAVF;EAWhBO,sBAAsB,EAAEP,oBAAA,CAAOO,sBAAP,CAA8BN,IAA9B,CAAmCD,oBAAnC,CAXR;EAYhBQ,gBAAgB,EAAER,oBAAA,CAAOQ,gBAAP,CAAwBP,IAAxB,CAA6BD,oBAA7B,CAZF;EAahBS,YAAY,EAAET,oBAAA,CAAOS,YAAP,CAAoBR,IAApB,CAAyBD,oBAAzB,CAbE;EAehBU,gBAAgB,EAAEV,oBAAA,CAAOU,gBAAP,CAAwBT,IAAxB,CAA6BD,oBAA7B,CAfF;EAiBhBW,cAAc,EAAdA,uBAjBgB;EAmBhBC,2BAA2B,EAA3BA,oCAnBgB;EAoBhBC,2BAA2B,EAA3BA,oCApBgB;EAqBhBC,oBAAoB,EAApBA,6BArBgB;EAuBhBC,gBAAgB,EAAhBA,yBAvBgB;EAwBhBC,iBAAiB,EAAjBA,0BAxBgB;EAyBhBC,gCAAgC,EAAhCA,yCAzBgB;EA2BhB;EACAC,oBAAoB,EAApBA,6BA5BgB;EA6BhBC,uBAAuB,EAAvBA,gCA7BgB;EA8BhBC,oBAAoB,EAApBA,6BA9BgB;EA+BhBC,0BAA0B,EAA1BA,mCA/BgB;EAgChBC,aAAa,EAAbA,sBAhCgB;EAkChBC,oBAAoB,EAApBA,6BAlCgB;EAoChB;EACAC,kBAAkB,EAAlBA,2BArCgB;EAsChBC,qBAAqB,EAArBA,8BAtCgB;EAuChBC,kBAAkB,EAAlBA,2BAvCgB;EAwChBC,iBAAiB,EAAjBA,0BAxCgB;EA0ChB;EACAC,kBAAkB,EAAlBA,2BA3CgB;EA6ChB;EACAC,2BAA2B,EAA3BA,oCA9CgB;EAgDhBC,2BAA2B,EAA3BA,oCAhDgB;EAiDhBC,oBAAoB,EAApBA,6BAjDgB;EAmDhBC,qBAAqB,EAArBA,8BAnDgB;EAqDhBC,wBAAwB,EAAxBA,iCArDgB;EAsDhBC,yBAAyB,EAAzBA;AAtDgB,CAAlB;eA2DepC,S"}
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: 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;;AA8DA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;;;AA5DA,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;EAKhBG,4BAA4B,EAAEH,oBAAA,CAAOG,4BAAP,CAAoCF,IAApC,CAAyCD,oBAAzC,CALd;EAMhBI,yBAAyB,EAAEJ,oBAAA,CAAOI,yBAAP,CAAiCH,IAAjC,CAAsCD,oBAAtC,CANX;EAOhBK,wBAAwB,EAAEL,oBAAA,CAAOK,wBAAP,CAAgCJ,IAAhC,CAAqCD,oBAArC,CAPV;EAShB;EACAM,gBAAgB,EAAEN,oBAAA,CAAOM,gBAAP,CAAwBL,IAAxB,CAA6BD,oBAA7B,CAVF;EAWhBO,sBAAsB,EAAEP,oBAAA,CAAOO,sBAAP,CAA8BN,IAA9B,CAAmCD,oBAAnC,CAXR;EAYhBQ,gBAAgB,EAAER,oBAAA,CAAOQ,gBAAP,CAAwBP,IAAxB,CAA6BD,oBAA7B,CAZF;EAahBS,YAAY,EAAET,oBAAA,CAAOS,YAAP,CAAoBR,IAApB,CAAyBD,oBAAzB,CAbE;EAehBU,gBAAgB,EAAEV,oBAAA,CAAOU,gBAAP,CAAwBT,IAAxB,CAA6BD,oBAA7B,CAfF;EAiBhBW,cAAc,EAAdA,uBAjBgB;EAmBhBC,2BAA2B,EAA3BA,oCAnBgB;EAoBhBC,2BAA2B,EAA3BA,oCApBgB;EAqBhBC,oBAAoB,EAApBA,6BArBgB;EAuBhBC,gBAAgB,EAAhBA,yBAvBgB;EAwBhBC,iBAAiB,EAAjBA,0BAxBgB;EAyBhBC,gCAAgC,EAAhCA,yCAzBgB;EA2BhB;EACAC,oBAAoB,EAApBA,6BA5BgB;EA6BhBC,uBAAuB,EAAvBA,gCA7BgB;EA8BhBC,oBAAoB,EAApBA,6BA9BgB;EA+BhBC,0BAA0B,EAA1BA,mCA/BgB;EAgChBC,aAAa,EAAbA,sBAhCgB;EAkChBC,oBAAoB,EAApBA,6BAlCgB;EAoChB;EACAC,oBAAoB,EAApBA,6BArCgB;EAuChB;EACAC,kBAAkB,EAAlBA,2BAxCgB;EAyChBC,qBAAqB,EAArBA,8BAzCgB;EA0ChBC,kBAAkB,EAAlBA,2BA1CgB;EA2ChBC,iBAAiB,EAAjBA,0BA3CgB;EA6ChB;EACAC,kBAAkB,EAAlBA,2BA9CgB;EAgDhB;EACAC,2BAA2B,EAA3BA,oCAjDgB;EAmDhBC,2BAA2B,EAA3BA,oCAnDgB;EAoDhBC,oBAAoB,EAApBA,6BApDgB;EAsDhBC,qBAAqB,EAArBA,8BAtDgB;EAwDhBC,wBAAwB,EAAxBA,iCAxDgB;EAyDhBC,yBAAyB,EAAzBA;AAzDgB,CAAlB;eA8DerC,S"}
@@ -69,6 +69,7 @@ const Healthkit = {
69
69
  })),
70
70
  queryWorkouts: UnavailableFn(Promise.resolve([])),
71
71
  requestAuthorization: UnavailableFn(Promise.resolve(false)),
72
+ deleteQuantitySample: UnavailableFn(Promise.resolve(false)),
72
73
  saveCategorySample: UnavailableFn(Promise.resolve(false)),
73
74
  saveCorrelationSample: UnavailableFn(Promise.resolve(false)),
74
75
  saveQuantitySample: UnavailableFn(Promise.resolve(false)),
@@ -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","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 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":"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"}
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":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ var _reactNative = require("react-native");
4
+
5
+ _reactNative.NativeModules.ReactNativeHealthkit = {
6
+ isHealthDataAvailable: jest.fn(),
7
+ addListener: jest.fn(),
8
+ removeListeners: jest.fn()
9
+ };
10
+ //# sourceMappingURL=jest.setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","ReactNativeHealthkit","isHealthDataAvailable","jest","fn","addListener","removeListeners"],"sources":["jest.setup.ts"],"sourcesContent":["import { NativeModules } from 'react-native'\n\nNativeModules.ReactNativeHealthkit = {\n isHealthDataAvailable: jest.fn(),\n addListener: jest.fn(),\n removeListeners: jest.fn(),\n}\n"],"mappings":";;AAAA;;AAEAA,0BAAA,CAAcC,oBAAd,GAAqC;EACnCC,qBAAqB,EAAEC,IAAI,CAACC,EAAL,EADY;EAEnCC,WAAW,EAAEF,IAAI,CAACC,EAAL,EAFsB;EAGnCE,eAAe,EAAEH,IAAI,CAACC,EAAL;AAHkB,CAArC"}