@kingstinct/react-native-healthkit 7.3.1 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/README.md +1 -1
  2. package/ios/Constants.swift +1 -1
  3. package/ios/ReactNativeHealthkit.m +1 -1
  4. package/ios/ReactNativeHealthkit.swift +2 -2
  5. package/ios/Serializers.swift +12 -0
  6. package/lib/commonjs/hooks/useHealthkitAuthorization.js +2 -3
  7. package/lib/commonjs/hooks/useHealthkitAuthorization.js.map +1 -1
  8. package/lib/commonjs/hooks/useHealthkitAuthorization.test.js +42 -19
  9. package/lib/commonjs/hooks/useHealthkitAuthorization.test.js.map +1 -1
  10. package/lib/commonjs/hooks/useIsHealthDataAvailable.js +2 -3
  11. package/lib/commonjs/hooks/useIsHealthDataAvailable.js.map +1 -1
  12. package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js +17 -8
  13. package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js.map +1 -1
  14. package/lib/commonjs/hooks/useMostRecentCategorySample.js +2 -3
  15. package/lib/commonjs/hooks/useMostRecentCategorySample.js.map +1 -1
  16. package/lib/commonjs/hooks/useMostRecentQuantitySample.js +4 -3
  17. package/lib/commonjs/hooks/useMostRecentQuantitySample.js.map +1 -1
  18. package/lib/commonjs/hooks/useMostRecentWorkout.js +2 -3
  19. package/lib/commonjs/hooks/useMostRecentWorkout.js.map +1 -1
  20. package/lib/commonjs/hooks/useSources.js +2 -3
  21. package/lib/commonjs/hooks/useSources.js.map +1 -1
  22. package/lib/commonjs/hooks/useStatisticsForQuantity.js +2 -3
  23. package/lib/commonjs/hooks/useStatisticsForQuantity.js.map +1 -1
  24. package/lib/commonjs/hooks/useSubscribeToChanges.js +2 -3
  25. package/lib/commonjs/hooks/useSubscribeToChanges.js.map +1 -1
  26. package/lib/commonjs/index.ios.js +471 -0
  27. package/lib/commonjs/index.ios.js.map +1 -0
  28. package/lib/commonjs/index.js +9 -482
  29. package/lib/commonjs/index.js.map +1 -1
  30. package/lib/commonjs/index.native.js +46 -95
  31. package/lib/commonjs/index.native.js.map +1 -1
  32. package/lib/commonjs/index.web.js +7 -1
  33. package/lib/commonjs/index.web.js.map +1 -1
  34. package/lib/commonjs/native-types.js +65 -90
  35. package/lib/commonjs/native-types.js.map +1 -1
  36. package/lib/commonjs/test-setup.js +51 -0
  37. package/lib/commonjs/test-setup.js.map +1 -0
  38. package/lib/commonjs/test-utils.js +1 -2
  39. package/lib/commonjs/test-utils.js.map +1 -1
  40. package/lib/commonjs/types.js.map +1 -1
  41. package/lib/commonjs/utils/deleteQuantitySample.js +2 -3
  42. package/lib/commonjs/utils/deleteQuantitySample.js.map +1 -1
  43. package/lib/commonjs/utils/deleteSamples.js +2 -3
  44. package/lib/commonjs/utils/deleteSamples.js.map +1 -1
  45. package/lib/commonjs/utils/deserializeCategorySample.js +1 -2
  46. package/lib/commonjs/utils/deserializeCategorySample.js.map +1 -1
  47. package/lib/commonjs/utils/deserializeCategorySample.test.js +8 -4
  48. package/lib/commonjs/utils/deserializeCategorySample.test.js.map +1 -1
  49. package/lib/commonjs/utils/deserializeCorrelation.js +2 -3
  50. package/lib/commonjs/utils/deserializeCorrelation.js.map +1 -1
  51. package/lib/commonjs/utils/deserializeHeartbeatSeriesSample.js +1 -2
  52. package/lib/commonjs/utils/deserializeHeartbeatSeriesSample.js.map +1 -1
  53. package/lib/commonjs/utils/deserializeSample.js +1 -2
  54. package/lib/commonjs/utils/deserializeSample.js.map +1 -1
  55. package/lib/commonjs/utils/deserializeWorkout.js +1 -2
  56. package/lib/commonjs/utils/deserializeWorkout.js.map +1 -1
  57. package/lib/commonjs/utils/ensureMetadata.js +1 -2
  58. package/lib/commonjs/utils/ensureMetadata.js.map +1 -1
  59. package/lib/commonjs/utils/ensureTotals.js +1 -2
  60. package/lib/commonjs/utils/ensureTotals.js.map +1 -1
  61. package/lib/commonjs/utils/ensureUnit.js +2 -3
  62. package/lib/commonjs/utils/ensureUnit.js.map +1 -1
  63. package/lib/commonjs/utils/getDateOfBirth.js +2 -3
  64. package/lib/commonjs/utils/getDateOfBirth.js.map +1 -1
  65. package/lib/commonjs/utils/getMostRecentCategorySample.js +2 -3
  66. package/lib/commonjs/utils/getMostRecentCategorySample.js.map +1 -1
  67. package/lib/commonjs/utils/getMostRecentQuantitySample.js +2 -3
  68. package/lib/commonjs/utils/getMostRecentQuantitySample.js.map +1 -1
  69. package/lib/commonjs/utils/getMostRecentWorkout.js +2 -3
  70. package/lib/commonjs/utils/getMostRecentWorkout.js.map +1 -1
  71. package/lib/commonjs/utils/getPreferredUnit.js +2 -3
  72. package/lib/commonjs/utils/getPreferredUnit.js.map +1 -1
  73. package/lib/commonjs/utils/getPreferredUnits.js +2 -3
  74. package/lib/commonjs/utils/getPreferredUnits.js.map +1 -1
  75. package/lib/commonjs/utils/getPreferredUnitsTyped.js +3 -4
  76. package/lib/commonjs/utils/getPreferredUnitsTyped.js.map +1 -1
  77. package/lib/commonjs/utils/getRequestStatusForAuthorization.js +3 -5
  78. package/lib/commonjs/utils/getRequestStatusForAuthorization.js.map +1 -1
  79. package/lib/commonjs/utils/getWorkoutPlanById.js +2 -3
  80. package/lib/commonjs/utils/getWorkoutPlanById.js.map +1 -1
  81. package/lib/commonjs/utils/prepareOptions.js +3 -3
  82. package/lib/commonjs/utils/prepareOptions.js.map +1 -1
  83. package/lib/commonjs/utils/queryCategorySamples.js +2 -3
  84. package/lib/commonjs/utils/queryCategorySamples.js.map +1 -1
  85. package/lib/commonjs/utils/queryCategorySamplesWithAnchor.js +2 -3
  86. package/lib/commonjs/utils/queryCategorySamplesWithAnchor.js.map +1 -1
  87. package/lib/commonjs/utils/queryCorrelationSamples.js +2 -3
  88. package/lib/commonjs/utils/queryCorrelationSamples.js.map +1 -1
  89. package/lib/commonjs/utils/queryHeartbeatSeriesSamples.js +2 -3
  90. package/lib/commonjs/utils/queryHeartbeatSeriesSamples.js.map +1 -1
  91. package/lib/commonjs/utils/queryHeartbeatSeriesSamplesWithAnchor.js +2 -3
  92. package/lib/commonjs/utils/queryHeartbeatSeriesSamplesWithAnchor.js.map +1 -1
  93. package/lib/commonjs/utils/queryQuantitySamples.js +2 -3
  94. package/lib/commonjs/utils/queryQuantitySamples.js.map +1 -1
  95. package/lib/commonjs/utils/queryQuantitySamplesWithAnchor.js +2 -3
  96. package/lib/commonjs/utils/queryQuantitySamplesWithAnchor.js.map +1 -1
  97. package/lib/commonjs/utils/querySources.js +2 -3
  98. package/lib/commonjs/utils/querySources.js.map +1 -1
  99. package/lib/commonjs/utils/queryStatisticsForQuantity.js +2 -3
  100. package/lib/commonjs/utils/queryStatisticsForQuantity.js.map +1 -1
  101. package/lib/commonjs/utils/queryWorkouts.js +2 -3
  102. package/lib/commonjs/utils/queryWorkouts.js.map +1 -1
  103. package/lib/commonjs/utils/requestAuthorization.js +3 -5
  104. package/lib/commonjs/utils/requestAuthorization.js.map +1 -1
  105. package/lib/commonjs/utils/saveCategorySample.js +2 -3
  106. package/lib/commonjs/utils/saveCategorySample.js.map +1 -1
  107. package/lib/commonjs/utils/saveCorrelationSample.js +2 -3
  108. package/lib/commonjs/utils/saveCorrelationSample.js.map +1 -1
  109. package/lib/commonjs/utils/saveQuantitySample.js +2 -3
  110. package/lib/commonjs/utils/saveQuantitySample.js.map +1 -1
  111. package/lib/commonjs/utils/saveWorkoutRoute.js +2 -3
  112. package/lib/commonjs/utils/saveWorkoutRoute.js.map +1 -1
  113. package/lib/commonjs/utils/saveWorkoutSample.js +2 -3
  114. package/lib/commonjs/utils/saveWorkoutSample.js.map +1 -1
  115. package/lib/commonjs/utils/serializeDate.js +1 -2
  116. package/lib/commonjs/utils/serializeDate.js.map +1 -1
  117. package/lib/commonjs/utils/serializeDate.test.js +1 -1
  118. package/lib/commonjs/utils/serializeDate.test.js.map +1 -1
  119. package/lib/commonjs/utils/subscribeToChanges.js +6 -8
  120. package/lib/commonjs/utils/subscribeToChanges.js.map +1 -1
  121. package/lib/module/hooks/useHealthkitAuthorization.js.map +1 -1
  122. package/lib/module/hooks/useHealthkitAuthorization.test.js +26 -3
  123. package/lib/module/hooks/useHealthkitAuthorization.test.js.map +1 -1
  124. package/lib/module/hooks/useIsHealthDataAvailable.js.map +1 -1
  125. package/lib/module/hooks/useIsHealthDataAvailable.test.js +9 -2
  126. package/lib/module/hooks/useIsHealthDataAvailable.test.js.map +1 -1
  127. package/lib/module/hooks/useMostRecentCategorySample.js.map +1 -1
  128. package/lib/module/hooks/useMostRecentQuantitySample.js +2 -0
  129. package/lib/module/hooks/useMostRecentQuantitySample.js.map +1 -1
  130. package/lib/module/hooks/useMostRecentWorkout.js.map +1 -1
  131. package/lib/module/hooks/useSources.js.map +1 -1
  132. package/lib/module/hooks/useStatisticsForQuantity.js.map +1 -1
  133. package/lib/module/hooks/useSubscribeToChanges.js.map +1 -1
  134. package/lib/module/index.ios.js +188 -0
  135. package/lib/module/index.ios.js.map +1 -0
  136. package/lib/module/index.js +3 -198
  137. package/lib/module/index.js.map +1 -1
  138. package/lib/module/index.native.js +1 -3
  139. package/lib/module/index.native.js.map +1 -1
  140. package/lib/module/index.web.js +2 -0
  141. package/lib/module/index.web.js.map +1 -1
  142. package/lib/module/native-types.js +21 -2
  143. package/lib/module/native-types.js.map +1 -1
  144. package/lib/module/test-setup.js +48 -0
  145. package/lib/module/test-setup.js.map +1 -0
  146. package/lib/module/test-utils.js.map +1 -1
  147. package/lib/module/types.js.map +1 -1
  148. package/lib/module/utils/deleteQuantitySample.js.map +1 -1
  149. package/lib/module/utils/deleteSamples.js.map +1 -1
  150. package/lib/module/utils/deserializeCategorySample.js.map +1 -1
  151. package/lib/module/utils/deserializeCategorySample.test.js +4 -2
  152. package/lib/module/utils/deserializeCategorySample.test.js.map +1 -1
  153. package/lib/module/utils/deserializeCorrelation.js.map +1 -1
  154. package/lib/module/utils/deserializeHeartbeatSeriesSample.js.map +1 -1
  155. package/lib/module/utils/deserializeSample.js.map +1 -1
  156. package/lib/module/utils/deserializeWorkout.js.map +1 -1
  157. package/lib/module/utils/ensureMetadata.js.map +1 -1
  158. package/lib/module/utils/ensureTotals.js.map +1 -1
  159. package/lib/module/utils/ensureUnit.js.map +1 -1
  160. package/lib/module/utils/getDateOfBirth.js.map +1 -1
  161. package/lib/module/utils/getMostRecentCategorySample.js.map +1 -1
  162. package/lib/module/utils/getMostRecentQuantitySample.js.map +1 -1
  163. package/lib/module/utils/getMostRecentWorkout.js.map +1 -1
  164. package/lib/module/utils/getPreferredUnit.js.map +1 -1
  165. package/lib/module/utils/getPreferredUnits.js.map +1 -1
  166. package/lib/module/utils/getPreferredUnitsTyped.js.map +1 -1
  167. package/lib/module/utils/getRequestStatusForAuthorization.js +1 -2
  168. package/lib/module/utils/getRequestStatusForAuthorization.js.map +1 -1
  169. package/lib/module/utils/getWorkoutPlanById.js.map +1 -1
  170. package/lib/module/utils/prepareOptions.js +1 -0
  171. package/lib/module/utils/prepareOptions.js.map +1 -1
  172. package/lib/module/utils/queryCategorySamples.js.map +1 -1
  173. package/lib/module/utils/queryCategorySamplesWithAnchor.js.map +1 -1
  174. package/lib/module/utils/queryCorrelationSamples.js.map +1 -1
  175. package/lib/module/utils/queryHeartbeatSeriesSamples.js.map +1 -1
  176. package/lib/module/utils/queryHeartbeatSeriesSamplesWithAnchor.js.map +1 -1
  177. package/lib/module/utils/queryQuantitySamples.js.map +1 -1
  178. package/lib/module/utils/queryQuantitySamplesWithAnchor.js.map +1 -1
  179. package/lib/module/utils/querySources.js.map +1 -1
  180. package/lib/module/utils/queryStatisticsForQuantity.js.map +1 -1
  181. package/lib/module/utils/queryWorkouts.js.map +1 -1
  182. package/lib/module/utils/requestAuthorization.js +1 -2
  183. package/lib/module/utils/requestAuthorization.js.map +1 -1
  184. package/lib/module/utils/saveCategorySample.js.map +1 -1
  185. package/lib/module/utils/saveCorrelationSample.js.map +1 -1
  186. package/lib/module/utils/saveQuantitySample.js.map +1 -1
  187. package/lib/module/utils/saveWorkoutRoute.js.map +1 -1
  188. package/lib/module/utils/saveWorkoutSample.js.map +1 -1
  189. package/lib/module/utils/serializeDate.js.map +1 -1
  190. package/lib/module/utils/serializeDate.test.js.map +1 -1
  191. package/lib/module/utils/subscribeToChanges.js +3 -4
  192. package/lib/module/utils/subscribeToChanges.js.map +1 -1
  193. package/lib/typescript/src/index.d.ts +3 -180
  194. package/lib/typescript/src/index.ios.d.ts +172 -0
  195. package/lib/typescript/src/index.native.d.ts +3 -3
  196. package/lib/typescript/src/index.web.d.ts +2 -0
  197. package/lib/typescript/src/native-types.d.ts +86 -8
  198. package/package.json +16 -11
  199. package/src/hooks/useHealthkitAuthorization.test.ts +18 -4
  200. package/src/hooks/useIsHealthDataAvailable.test.ts +5 -2
  201. package/src/hooks/useIsHealthDataAvailable.ts +1 -1
  202. package/src/hooks/useMostRecentQuantitySample.ts +3 -0
  203. package/src/index.ios.tsx +263 -0
  204. package/src/index.native.tsx +1 -4
  205. package/src/index.tsx +3 -274
  206. package/src/index.web.tsx +4 -0
  207. package/src/native-types.ts +97 -9
  208. package/src/test-setup.ts +51 -0
  209. package/src/utils/deserializeCategorySample.test.ts +5 -2
  210. package/src/utils/prepareOptions.ts +1 -0
  211. package/lib/commonjs/jest.setup.js +0 -45
  212. package/lib/commonjs/jest.setup.js.map +0 -1
  213. package/lib/module/jest.setup.js +0 -43
  214. package/lib/module/jest.setup.js.map +0 -1
  215. package/src/jest.setup.ts +0 -46
  216. /package/lib/typescript/src/{jest.setup.d.ts → test-setup.d.ts} +0 -0
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![Test Status](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
  [![Latest version on NPM](https://img.shields.io/npm/v/@kingstinct/react-native-healthkit)](https://www.npmjs.com/package/@kingstinct/react-native-healthkit)
5
5
  [![Downloads on NPM](https://img.shields.io/npm/dt/@kingstinct/react-native-healthkit)](https://www.npmjs.com/package/@kingstinct/react-native-healthkit)
6
- [![Discord](https://dcbadge.vercel.app/api/server/EHScS93v?style=flat)](https://discord.gg/EHScS93v)
6
+ [![Discord](https://dcbadge.vercel.app/api/server/hrgnETpsJA?style=flat)](https://discord.gg/hrgnETpsJA)
7
7
 
8
8
 
9
9
  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).
@@ -25,4 +25,4 @@ let HKDataTypeIdentifierHeartbeatSeries = "HKDataTypeIdentifierHeartbeatSeries"
25
25
 
26
26
  let SpeedUnit = HKUnit(from: "m/s") // HKUnit.meter().unitDivided(by: HKUnit.second())
27
27
  // Support for MET data: HKAverageMETs 8.24046 kcal/hr·kg
28
- let METUnit = HKUnit(from: "kcal/hr·kg")
28
+ let METUnit = HKUnit(from: "kcal/hr·kg")
@@ -217,7 +217,7 @@ RCT_EXTERN_METHOD(getWorkoutPlanById:(NSString)workoutUUID
217
217
  reject:(RCTPromiseRejectBlock)reject
218
218
  )
219
219
 
220
- RCT_EXTERN_METHOD(canAccessProtectedData:(RCTPromiseResolveBlock)resolve
220
+ RCT_EXTERN_METHOD(isProtectedDataAvailable:(RCTPromiseResolveBlock)resolve
221
221
  withRejecter:(RCTPromiseRejectBlock)reject)
222
222
 
223
223
 
@@ -44,8 +44,8 @@ class ReactNativeHealthkit: RCTEventEmitter {
44
44
  self._hasListeners = true
45
45
  }
46
46
 
47
- @objc(canAccessProtectedData:withRejecter:)
48
- func canAccessProtectedData(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
47
+ @objc(isProtectedDataAvailable:withRejecter:)
48
+ func isProtectedDataAvailable(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
49
49
  resolve(UIApplication.shared.isProtectedDataAvailable)
50
50
  }
51
51
 
@@ -107,6 +107,18 @@ func serializeUnknownQuantity(quantity: HKQuantity) -> [String: Any]? {
107
107
  }
108
108
  }
109
109
 
110
+ if #available(iOS 17.0, *) {
111
+ if quantity.is(compatibleWith: HKUnit.lux()) {
112
+ return serializeQuantity(unit: HKUnit.lux(), quantity: quantity)
113
+ }
114
+ }
115
+
116
+ if #available(iOS 18.0, *) {
117
+ if quantity.is(compatibleWith: HKUnit.appleEffortScore()) {
118
+ return serializeQuantity(unit: HKUnit.appleEffortScore(), quantity: quantity)
119
+ }
120
+ }
121
+
110
122
  if quantity.is(compatibleWith: SpeedUnit) {
111
123
  return serializeQuantity(unit: SpeedUnit, quantity: quantity)
112
124
  }
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _getRequestStatusForAuthorization = _interopRequireDefault(require("../utils/getRequestStatusForAuthorization"));
9
9
  var _requestAuthorization = _interopRequireDefault(require("../utils/requestAuthorization"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  /**
12
12
  * @description Hook to retrieve the current authorization status for the given types, and request authorization if needed.
13
13
  * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614152-requestauthorization Apple Docs - requestAuthorization}
@@ -35,6 +35,5 @@ const useHealthkitAuthorization = (read, write) => {
35
35
  }, [refreshAuthStatus]);
36
36
  return [status, request];
37
37
  };
38
- var _default = useHealthkitAuthorization;
39
- exports.default = _default;
38
+ var _default = exports.default = useHealthkitAuthorization;
40
39
  //# sourceMappingURL=useHealthkitAuthorization.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_getRequestStatusForAuthorization","_interopRequireDefault","_requestAuthorization","obj","__esModule","default","useHealthkitAuthorization","read","write","status","setStatus","useState","readMemo","useRef","writeMemo","useEffect","current","refreshAuthStatus","useCallback","auth","getRequestStatusForAuthorization","request","requestAuthorization","_default","exports"],"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\n/**\n * @description Hook to retrieve the current authorization status for the given types, and request authorization if needed.\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614152-requestauthorization Apple Docs - requestAuthorization}\n * @see {@link https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data Apple Docs - Authorizing access to health data}\n */\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,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,iCAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAgE,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAIhE;AACA;AACA;AACA;AACA;AACA,MAAMG,yBAAyB,GAAGA,CAACC,IAA2C,EAAEC,KAA8C,KAAK;EACjI,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAsC,IAAI,CAAC;EAE/E,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAACN,IAAI,CAAC;EAC7B,MAAMO,SAAS,GAAG,IAAAD,aAAM,EAACL,KAAK,CAAC;EAE/B,IAAAO,gBAAS,EAAC,MAAM;IACdH,QAAQ,CAACI,OAAO,GAAGT,IAAI;IACvBO,SAAS,CAACE,OAAO,GAAGR,KAAK;EAC3B,CAAC,EAAE,CAACD,IAAI,EAAEC,KAAK,CAAC,CAAC;EAEjB,MAAMS,iBAAiB,GAAG,IAAAC,kBAAW,EAAC,YAAY;IAChD,MAAMC,IAAI,GAAG,MAAM,IAAAC,yCAAgC,EAACR,QAAQ,CAACI,OAAO,EAAEF,SAAS,CAACE,OAAO,CAAC;IAExFN,SAAS,CAACS,IAAI,CAAC;IACf,OAAOA,IAAI;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,OAAO,GAAG,IAAAH,kBAAW,EAAC,YAAY;IACtC,MAAM,IAAAI,6BAAoB,EAACV,QAAQ,CAACI,OAAO,EAAEF,SAAS,CAACE,OAAO,CAAC;IAC/D,OAAOC,iBAAiB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,IAAAF,gBAAS,EAAC,MAAM;IACd,KAAKE,iBAAiB,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,OAAO,CAACR,MAAM,EAAEY,OAAO,CAAC;AAC1B,CAAC;AAAA,IAAAE,QAAA,GAEcjB,yBAAyB;AAAAkB,OAAA,CAAAnB,OAAA,GAAAkB,QAAA"}
1
+ {"version":3,"names":["_react","require","_getRequestStatusForAuthorization","_interopRequireDefault","_requestAuthorization","e","__esModule","default","useHealthkitAuthorization","read","write","status","setStatus","useState","readMemo","useRef","writeMemo","useEffect","current","refreshAuthStatus","useCallback","auth","getRequestStatusForAuthorization","request","requestAuthorization","_default","exports"],"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\n/**\n * @description Hook to retrieve the current authorization status for the given types, and request authorization if needed.\n * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614152-requestauthorization Apple Docs - requestAuthorization}\n * @see {@link https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data Apple Docs - Authorizing access to health data}\n */\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,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,iCAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAgE,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAIhE;AACA;AACA;AACA;AACA;AACA,MAAMG,yBAAyB,GAAGA,CAACC,IAA2C,EAAEC,KAA8C,KAAK;EACjI,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAsC,IAAI,CAAC;EAE/E,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAACN,IAAI,CAAC;EAC7B,MAAMO,SAAS,GAAG,IAAAD,aAAM,EAACL,KAAK,CAAC;EAE/B,IAAAO,gBAAS,EAAC,MAAM;IACdH,QAAQ,CAACI,OAAO,GAAGT,IAAI;IACvBO,SAAS,CAACE,OAAO,GAAGR,KAAK;EAC3B,CAAC,EAAE,CAACD,IAAI,EAAEC,KAAK,CAAC,CAAC;EAEjB,MAAMS,iBAAiB,GAAG,IAAAC,kBAAW,EAAC,YAAY;IAChD,MAAMC,IAAI,GAAG,MAAM,IAAAC,yCAAgC,EAACR,QAAQ,CAACI,OAAO,EAAEF,SAAS,CAACE,OAAO,CAAC;IAExFN,SAAS,CAACS,IAAI,CAAC;IACf,OAAOA,IAAI;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,OAAO,GAAG,IAAAH,kBAAW,EAAC,YAAY;IACtC,MAAM,IAAAI,6BAAoB,EAACV,QAAQ,CAACI,OAAO,EAAEF,SAAS,CAACE,OAAO,CAAC;IAC/D,OAAOC,iBAAiB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,IAAAF,gBAAS,EAAC,MAAM;IACd,KAAKE,iBAAiB,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,OAAO,CAACR,MAAM,EAAEY,OAAO,CAAC;AAC1B,CAAC;AAAA,IAAAE,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAEcC,yBAAyB","ignoreList":[]}
@@ -1,48 +1,71 @@
1
1
  "use strict";
2
2
 
3
3
  var _reactNative = require("@testing-library/react-native");
4
- var _useHealthkitAuthorization = _interopRequireDefault(require("./useHealthkitAuthorization"));
5
- var _nativeTypes = _interopRequireWildcard(require("../native-types"));
6
4
  var _testUtils = _interopRequireDefault(require("../test-utils"));
7
- 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); }
8
- 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; }
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
6
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
7
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
8
  describe('useHealthkitAuthorization', () => {
9
+ let NativeTypes;
10
+ let useHealthkitAuthorization;
11
+ beforeAll(async () => {
12
+ NativeTypes = await Promise.resolve().then(() => _interopRequireWildcard(require('../native-types')));
13
+ useHealthkitAuthorization = (await Promise.resolve().then(() => _interopRequireWildcard(require('./useHealthkitAuthorization')))).default;
14
+ });
11
15
  test('should return shouldRequest', async () => {
12
- jest.spyOn(_nativeTypes.default, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.shouldRequest));
16
+ const {
17
+ HKAuthorizationRequestStatus,
18
+ HKCategoryTypeIdentifier,
19
+ default: Native
20
+ } = NativeTypes;
21
+ jest.spyOn(Native, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.shouldRequest));
13
22
  const {
14
23
  result
15
- } = (0, _reactNative.renderHook)(() => (0, _useHealthkitAuthorization.default)([_nativeTypes.HKCategoryTypeIdentifier.abdominalCramps]));
24
+ } = (0, _reactNative.renderHook)(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]));
16
25
  await (0, _testUtils.default)();
17
- expect(result.current[0]).toBe(_nativeTypes.HKAuthorizationRequestStatus.shouldRequest);
26
+ expect(result.current[0]).toBe(HKAuthorizationRequestStatus.shouldRequest);
18
27
  });
19
28
  test('should request permissions', async () => {
20
- const spy = jest.spyOn(_nativeTypes.default, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.shouldRequest));
21
- jest.spyOn(_nativeTypes.default, 'requestAuthorization').mockReturnValue(Promise.resolve(true));
29
+ const {
30
+ HKAuthorizationRequestStatus,
31
+ HKCategoryTypeIdentifier,
32
+ default: Native
33
+ } = NativeTypes;
34
+ const spy = jest.spyOn(Native, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.shouldRequest));
35
+ jest.spyOn(Native, 'requestAuthorization').mockReturnValue(Promise.resolve(true));
22
36
  const {
23
37
  result
24
- } = (0, _reactNative.renderHook)(() => (0, _useHealthkitAuthorization.default)([_nativeTypes.HKCategoryTypeIdentifier.abdominalCramps]));
38
+ } = (0, _reactNative.renderHook)(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]));
25
39
  await (0, _testUtils.default)();
26
- spy.mockReturnValue(Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.unnecessary));
40
+ spy.mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.unnecessary));
27
41
  let retVal;
28
42
  await (0, _reactNative.act)(async () => {
29
- retVal = await result.current[1]();
43
+ const r = await result.current[1]();
44
+ retVal = r;
30
45
  });
31
- expect(result.current[0]).toBe(_nativeTypes.HKAuthorizationRequestStatus.unnecessary);
32
- expect(retVal).toBe(_nativeTypes.HKAuthorizationRequestStatus.unnecessary);
46
+ expect(result.current[0]).toBe(HKAuthorizationRequestStatus.unnecessary);
47
+ expect(retVal).toBe(HKAuthorizationRequestStatus.unnecessary);
33
48
  });
34
49
  test('should return unnecessary', async () => {
35
- jest.spyOn(_nativeTypes.default, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(_nativeTypes.HKAuthorizationRequestStatus.unnecessary));
50
+ const {
51
+ HKAuthorizationRequestStatus,
52
+ HKCategoryTypeIdentifier,
53
+ default: Native
54
+ } = NativeTypes;
55
+ jest.spyOn(Native, 'getRequestStatusForAuthorization').mockReturnValue(Promise.resolve(HKAuthorizationRequestStatus.unnecessary));
36
56
  const {
37
57
  result
38
- } = (0, _reactNative.renderHook)(() => (0, _useHealthkitAuthorization.default)([_nativeTypes.HKCategoryTypeIdentifier.abdominalCramps]));
58
+ } = (0, _reactNative.renderHook)(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]));
39
59
  await (0, _testUtils.default)();
40
- expect(result.current[0]).toBe(_nativeTypes.HKAuthorizationRequestStatus.unnecessary);
60
+ expect(result.current[0]).toBe(HKAuthorizationRequestStatus.unnecessary);
41
61
  });
42
62
  test('should return null before initalizing', async () => {
63
+ const {
64
+ HKCategoryTypeIdentifier
65
+ } = NativeTypes;
43
66
  const {
44
67
  result
45
- } = (0, _reactNative.renderHook)(() => (0, _useHealthkitAuthorization.default)([_nativeTypes.HKCategoryTypeIdentifier.abdominalCramps]));
68
+ } = (0, _reactNative.renderHook)(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]));
46
69
  expect(result.current[0]).toBe(null);
47
70
  await (0, _testUtils.default)();
48
71
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_useHealthkitAuthorization","_interopRequireDefault","_nativeTypes","_interopRequireWildcard","_testUtils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","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 useHealthkitAuthorization from './useHealthkitAuthorization'\nimport Native, { HKAuthorizationRequestStatus, HKCategoryTypeIdentifier } from '../native-types'\nimport waitForNextUpdate from '../test-utils'\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":"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"}
1
+ {"version":3,"names":["_reactNative","require","_testUtils","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","_interopRequireWildcard","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","describe","NativeTypes","useHealthkitAuthorization","beforeAll","Promise","resolve","then","test","HKAuthorizationRequestStatus","HKCategoryTypeIdentifier","Native","jest","spyOn","mockReturnValue","shouldRequest","result","renderHook","abdominalCramps","waitForNextUpdate","expect","current","toBe","spy","unnecessary","retVal","act"],"sources":["useHealthkitAuthorization.test.ts"],"sourcesContent":["import { renderHook, act } from '@testing-library/react-native'\n\nimport waitForNextUpdate from '../test-utils'\n\ndescribe('useHealthkitAuthorization', () => {\n let NativeTypes: typeof import('../native-types')\n let useHealthkitAuthorization: typeof import('./useHealthkitAuthorization').default\n beforeAll(async () => {\n NativeTypes = await import('../native-types')\n useHealthkitAuthorization = (await import('./useHealthkitAuthorization')).default\n })\n\n test('should return shouldRequest', async () => {\n const { HKAuthorizationRequestStatus, HKCategoryTypeIdentifier, default: Native } = NativeTypes\n\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 { HKAuthorizationRequestStatus, HKCategoryTypeIdentifier, default: Native } = NativeTypes\n\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: typeof HKAuthorizationRequestStatus | undefined\n await act(async () => {\n const r = await result.current[1]() as unknown as typeof HKAuthorizationRequestStatus\n retVal = r\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 const { HKAuthorizationRequestStatus, HKCategoryTypeIdentifier, default: Native } = NativeTypes\n\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 { HKCategoryTypeIdentifier } = NativeTypes\n\n const { result } = renderHook(() => useHealthkitAuthorization([HKCategoryTypeIdentifier.abdominalCramps]))\n\n expect(result.current[0]).toBe(null)\n\n await waitForNextUpdate()\n })\n})\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _nativeTypes = _interopRequireDefault(require("../native-types"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  /**
11
11
  * @description By default, HealthKit data is available on iOS and watchOS. HealthKit data is also available on iPadOS 17 or later. However, devices running in an enterprise environment may restrict access to HealthKit data.
12
12
  * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable Apple HealthKit isHealthDataAvailable}
@@ -23,6 +23,5 @@ const useIsHealthDataAvailable = () => {
23
23
  }, []);
24
24
  return isAvailable;
25
25
  };
26
- var _default = useIsHealthDataAvailable;
27
- exports.default = _default;
26
+ var _default = exports.default = useIsHealthDataAvailable;
28
27
  //# sourceMappingURL=useIsHealthDataAvailable.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_nativeTypes","_interopRequireDefault","obj","__esModule","default","useIsHealthDataAvailable","isAvailable","setIsAvailable","useState","useEffect","init","res","Native","isHealthDataAvailable","_default","exports"],"sources":["useIsHealthDataAvailable.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport Native from '../native-types'\n\n/**\n * @description By default, HealthKit data is available on iOS and watchOS. HealthKit data is also available on iPadOS 17 or later. However, devices running in an enterprise environment may restrict access to HealthKit data.\n* @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable Apple HealthKit isHealthDataAvailable}\n* @returns {boolean | null} true if HealthKit is available; otherwise, false. null while initializing.\n*/\nconst useIsHealthDataAvailable = () => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n\n return isAvailable\n}\n\nexport default useIsHealthDataAvailable\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAoC,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEpC;AACA;AACA;AACA;AACA;AACA,MAAMG,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAiB,IAAI,CAAC;EAEpE,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,MAAMC,GAAG,GAAG,MAAMC,oBAAM,CAACC,qBAAqB,CAAC,CAAC;MAChDN,cAAc,CAACI,GAAG,CAAC;IACrB,CAAC;IACD,KAAKD,IAAI,CAAC,CAAC;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOJ,WAAW;AACpB,CAAC;AAAA,IAAAQ,QAAA,GAEcT,wBAAwB;AAAAU,OAAA,CAAAX,OAAA,GAAAU,QAAA"}
1
+ {"version":3,"names":["_react","require","_nativeTypes","_interopRequireDefault","e","__esModule","default","useIsHealthDataAvailable","isAvailable","setIsAvailable","useState","useEffect","init","res","Native","isHealthDataAvailable","_default","exports"],"sources":["useIsHealthDataAvailable.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport Native from '../native-types'\n\n/**\n * @description By default, HealthKit data is available on iOS and watchOS. HealthKit data is also available on iPadOS 17 or later. However, devices running in an enterprise environment may restrict access to HealthKit data.\n* @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1614180-ishealthdataavailable Apple HealthKit isHealthDataAvailable}\n* @returns {boolean | null} true if HealthKit is available; otherwise, false. null while initializing.\n*/\nconst useIsHealthDataAvailable = (): boolean | null => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n\n return isAvailable\n}\n\nexport default useIsHealthDataAvailable\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAoC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpC;AACA;AACA;AACA;AACA;AACA,MAAMG,wBAAwB,GAAGA,CAAA,KAAsB;EACrD,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAiB,IAAI,CAAC;EAEpE,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,MAAMC,GAAG,GAAG,MAAMC,oBAAM,CAACC,qBAAqB,CAAC,CAAC;MAChDN,cAAc,CAACI,GAAG,CAAC;IACrB,CAAC;IACD,KAAKD,IAAI,CAAC,CAAC;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOJ,WAAW;AACpB,CAAC;AAAA,IAAAQ,QAAA,GAAAC,OAAA,CAAAX,OAAA,GAEcC,wBAAwB","ignoreList":[]}
@@ -1,31 +1,40 @@
1
1
  "use strict";
2
2
 
3
3
  var _reactNative = require("@testing-library/react-native");
4
- var _useIsHealthDataAvailable = _interopRequireDefault(require("./useIsHealthDataAvailable"));
5
- var _nativeTypes = _interopRequireDefault(require("../native-types"));
6
4
  var _testUtils = _interopRequireDefault(require("../test-utils"));
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
6
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
7
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
8
8
  describe('useIsHealthDataAvailable', () => {
9
9
  test('should return false', async () => {
10
- jest.spyOn(_nativeTypes.default, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(false));
10
+ const useIsHealthDataAvailable = (await Promise.resolve().then(() => _interopRequireWildcard(require('./useIsHealthDataAvailable')))).default;
11
+ const {
12
+ default: Native
13
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require('../native-types')));
14
+ jest.spyOn(Native, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(false));
11
15
  const {
12
16
  result
13
- } = (0, _reactNative.renderHook)(_useIsHealthDataAvailable.default);
17
+ } = (0, _reactNative.renderHook)(useIsHealthDataAvailable);
14
18
  await (0, _testUtils.default)();
15
19
  expect(result.current).toBe(false);
16
20
  });
17
21
  test('should return true', async () => {
18
- jest.spyOn(_nativeTypes.default, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(true));
22
+ const useIsHealthDataAvailable = (await Promise.resolve().then(() => _interopRequireWildcard(require('./useIsHealthDataAvailable')))).default;
23
+ const {
24
+ default: Native
25
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require('../native-types')));
26
+ jest.spyOn(Native, 'isHealthDataAvailable').mockReturnValue(Promise.resolve(true));
19
27
  const {
20
28
  result
21
- } = (0, _reactNative.renderHook)(_useIsHealthDataAvailable.default);
29
+ } = (0, _reactNative.renderHook)(useIsHealthDataAvailable);
22
30
  await (0, _testUtils.default)();
23
31
  expect(result.current).toBe(true);
24
32
  });
25
33
  test('should return null before initalizing', async () => {
34
+ const useIsHealthDataAvailable = (await Promise.resolve().then(() => _interopRequireWildcard(require('./useIsHealthDataAvailable')))).default;
26
35
  const {
27
36
  result
28
- } = (0, _reactNative.renderHook)(_useIsHealthDataAvailable.default);
37
+ } = (0, _reactNative.renderHook)(useIsHealthDataAvailable);
29
38
  expect(result.current).toBe(null);
30
39
  await (0, _testUtils.default)();
31
40
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_useIsHealthDataAvailable","_interopRequireDefault","_nativeTypes","_testUtils","obj","__esModule","default","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 useIsHealthDataAvailable from './useIsHealthDataAvailable'\nimport Native from '../native-types'\nimport waitForNextUpdate from '../test-utils'\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,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,yBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,UAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA6C,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE7CG,QAAQ,CAAC,0BAA0B,EAAE,MAAM;EACzCC,IAAI,CAAC,qBAAqB,EAAE,YAAY;IACtCC,IAAI,CAACC,KAAK,CAACC,oBAAM,EAAE,uBAAuB,CAAC,CAACC,eAAe,CAACC,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEnF,MAAM;MAAEC;IAAO,CAAC,GAAG,IAAAC,uBAAU,EAACC,iCAAwB,CAAC;IAEvD,MAAM,IAAAC,kBAAiB,EAAC,CAAC;IAEzBC,MAAM,CAACJ,MAAM,CAACK,OAAO,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EACpC,CAAC,CAAC;EAEFb,IAAI,CAAC,oBAAoB,EAAE,YAAY;IACrCC,IAAI,CAACC,KAAK,CAACC,oBAAM,EAAE,uBAAuB,CAAC,CAACC,eAAe,CAACC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC,CAAC;IAElF,MAAM;MAAEC;IAAO,CAAC,GAAG,IAAAC,uBAAU,EAACC,iCAAwB,CAAC;IAEvD,MAAM,IAAAC,kBAAiB,EAAC,CAAC;IAEzBC,MAAM,CAACJ,MAAM,CAACK,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EACnC,CAAC,CAAC;EAEFb,IAAI,CAAC,uCAAuC,EAAE,YAAY;IACxD,MAAM;MAAEO;IAAO,CAAC,GAAG,IAAAC,uBAAU,EAACC,iCAAwB,CAAC;IAEvDE,MAAM,CAACJ,MAAM,CAACK,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IAEjC,MAAM,IAAAH,kBAAiB,EAAC,CAAC;EAC3B,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"names":["_reactNative","require","_testUtils","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","_interopRequireWildcard","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","describe","test","useIsHealthDataAvailable","Promise","resolve","then","Native","jest","spyOn","mockReturnValue","result","renderHook","waitForNextUpdate","expect","current","toBe"],"sources":["useIsHealthDataAvailable.test.ts"],"sourcesContent":["import { renderHook } from '@testing-library/react-native'\n\nimport waitForNextUpdate from '../test-utils'\n\ndescribe('useIsHealthDataAvailable', () => {\n test('should return false', async () => {\n const useIsHealthDataAvailable = (await import('./useIsHealthDataAvailable')).default\n const { default: Native } = await import('../native-types')\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 const useIsHealthDataAvailable = (await import('./useIsHealthDataAvailable')).default\n const { default: Native } = await import('../native-types')\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 useIsHealthDataAvailable = (await import('./useIsHealthDataAvailable')).default\n const { result } = renderHook(useIsHealthDataAvailable)\n\n expect(result.current).toBe(null)\n\n await waitForNextUpdate()\n })\n})\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _useSubscribeToChanges = _interopRequireDefault(require("./useSubscribeToChanges"));
9
9
  var _getMostRecentCategorySample = _interopRequireDefault(require("../utils/getMostRecentCategorySample"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  /**
12
12
  * @returns the most recent sample for the given category type.
13
13
  */
@@ -19,6 +19,5 @@ function useMostRecentCategorySample(identifier) {
19
19
  (0, _useSubscribeToChanges.default)(identifier, updater);
20
20
  return category;
21
21
  }
22
- var _default = useMostRecentCategorySample;
23
- exports.default = _default;
22
+ var _default = exports.default = useMostRecentCategorySample;
24
23
  //# sourceMappingURL=useMostRecentCategorySample.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_useSubscribeToChanges","_interopRequireDefault","_getMostRecentCategorySample","obj","__esModule","default","useMostRecentCategorySample","identifier","category","setCategory","useState","updater","useCallback","getMostRecentCategorySample","then","useSubscribeToChanges","_default","exports"],"sources":["useMostRecentCategorySample.ts"],"sourcesContent":["import { useCallback, useState } from 'react'\n\nimport useSubscribeToChanges from './useSubscribeToChanges'\nimport getMostRecentCategorySample from '../utils/getMostRecentCategorySample'\n\nimport type { HKCategoryTypeIdentifier } from '../native-types'\nimport type { HKCategorySample } from '../types'\n\n/**\n * @returns the most recent sample for the given category type.\n */\nfunction useMostRecentCategorySample<\n TCategory extends HKCategoryTypeIdentifier\n>(identifier: TCategory) {\n const [category, setCategory] = useState<HKCategorySample<TCategory> | null>(\n null,\n )\n const updater = useCallback(() => {\n void getMostRecentCategorySample(identifier).then(setCategory)\n }, [identifier])\n\n useSubscribeToChanges(identifier, updater)\n\n return category\n}\n\nexport default useMostRecentCategorySample\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,4BAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA8E,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAK9E;AACA;AACA;AACA,SAASG,2BAA2BA,CAElCC,UAAqB,EAAE;EACvB,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EACtC,IACF,CAAC;EACD,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAChC,KAAK,IAAAC,oCAA2B,EAACN,UAAU,CAAC,CAACO,IAAI,CAACL,WAAW,CAAC;EAChE,CAAC,EAAE,CAACF,UAAU,CAAC,CAAC;EAEhB,IAAAQ,8BAAqB,EAACR,UAAU,EAAEI,OAAO,CAAC;EAE1C,OAAOH,QAAQ;AACjB;AAAC,IAAAQ,QAAA,GAEcV,2BAA2B;AAAAW,OAAA,CAAAZ,OAAA,GAAAW,QAAA"}
1
+ {"version":3,"names":["_react","require","_useSubscribeToChanges","_interopRequireDefault","_getMostRecentCategorySample","e","__esModule","default","useMostRecentCategorySample","identifier","category","setCategory","useState","updater","useCallback","getMostRecentCategorySample","then","useSubscribeToChanges","_default","exports"],"sources":["useMostRecentCategorySample.ts"],"sourcesContent":["import { useCallback, useState } from 'react'\n\nimport useSubscribeToChanges from './useSubscribeToChanges'\nimport getMostRecentCategorySample from '../utils/getMostRecentCategorySample'\n\nimport type { HKCategoryTypeIdentifier } from '../native-types'\nimport type { HKCategorySample } from '../types'\n\n/**\n * @returns the most recent sample for the given category type.\n */\nfunction useMostRecentCategorySample<\n TCategory extends HKCategoryTypeIdentifier\n>(identifier: TCategory) {\n const [category, setCategory] = useState<HKCategorySample<TCategory> | null>(\n null,\n )\n const updater = useCallback(() => {\n void getMostRecentCategorySample(identifier).then(setCategory)\n }, [identifier])\n\n useSubscribeToChanges(identifier, updater)\n\n return category\n}\n\nexport default useMostRecentCategorySample\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,4BAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA8E,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAK9E;AACA;AACA;AACA,SAASG,2BAA2BA,CAElCC,UAAqB,EAAE;EACvB,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EACtC,IACF,CAAC;EACD,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAChC,KAAK,IAAAC,oCAA2B,EAACN,UAAU,CAAC,CAACO,IAAI,CAACL,WAAW,CAAC;EAChE,CAAC,EAAE,CAACF,UAAU,CAAC,CAAC;EAEhB,IAAAQ,8BAAqB,EAACR,UAAU,EAAEI,OAAO,CAAC;EAE1C,OAAOH,QAAQ;AACjB;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAZ,OAAA,GAEcC,2BAA2B","ignoreList":[]}
@@ -8,7 +8,7 @@ var _react = require("react");
8
8
  var _ensureUnit = _interopRequireDefault(require("../utils/ensureUnit"));
9
9
  var _getMostRecentQuantitySample = _interopRequireDefault(require("../utils/getMostRecentQuantitySample"));
10
10
  var _subscribeToChanges = _interopRequireDefault(require("../utils/subscribeToChanges"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  /**
13
13
  * @returns the most recent sample for the given quantity type.
14
14
  */
@@ -18,6 +18,8 @@ function useMostRecentQuantitySample(identifier, unit) {
18
18
  let cancelSubscription;
19
19
  const init = async () => {
20
20
  const actualUnit = await (0, _ensureUnit.default)(identifier, unit);
21
+ const value = await (0, _getMostRecentQuantitySample.default)(identifier, actualUnit);
22
+ setLastSample(value);
21
23
  cancelSubscription = await (0, _subscribeToChanges.default)(identifier, async () => {
22
24
  const value = await (0, _getMostRecentQuantitySample.default)(identifier, actualUnit);
23
25
  setLastSample(value);
@@ -31,6 +33,5 @@ function useMostRecentQuantitySample(identifier, unit) {
31
33
  }, [identifier, unit]);
32
34
  return lastSample;
33
35
  }
34
- var _default = useMostRecentQuantitySample;
35
- exports.default = _default;
36
+ var _default = exports.default = useMostRecentQuantitySample;
36
37
  //# sourceMappingURL=useMostRecentQuantitySample.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_ensureUnit","_interopRequireDefault","_getMostRecentQuantitySample","_subscribeToChanges","obj","__esModule","default","useMostRecentQuantitySample","identifier","unit","lastSample","setLastSample","useState","useEffect","cancelSubscription","init","actualUnit","ensureUnit","subscribeToChanges","value","getMostRecentQuantitySample","_cancelSubscription","_default","exports"],"sources":["useMostRecentQuantitySample.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport ensureUnit from '../utils/ensureUnit'\nimport getMostRecentQuantitySample from '../utils/getMostRecentQuantitySample'\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { HKQuantityTypeIdentifier, UnitForIdentifier } from '../native-types'\nimport type { HKQuantitySample } from '../types'\n\n/**\n * @returns the most recent sample for the given quantity type.\n */\nfunction useMostRecentQuantitySample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends UnitForIdentifier<TIdentifier>\n>(identifier: TIdentifier, unit?: TUnit) {\n const [lastSample, setLastSample] = useState<HKQuantitySample<\n TIdentifier\n > | null>(null)\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n const actualUnit = await ensureUnit(identifier, unit)\n\n cancelSubscription = await subscribeToChanges(identifier, async () => {\n const value = await getMostRecentQuantitySample(identifier, actualUnit)\n setLastSample(value)\n })\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, unit])\n\n return lastSample\n}\n\nexport default useMostRecentQuantitySample\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,4BAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA4D,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAK5D;AACA;AACA;AACA,SAASG,2BAA2BA,CAGlCC,UAAuB,EAAEC,IAAY,EAAE;EACvC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAElC,IAAI,CAAC;EAEf,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,kBAAwD;IAE5D,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,MAAMC,UAAU,GAAG,MAAM,IAAAC,mBAAU,EAACT,UAAU,EAAEC,IAAI,CAAC;MAErDK,kBAAkB,GAAG,MAAM,IAAAI,2BAAkB,EAACV,UAAU,EAAE,YAAY;QACpE,MAAMW,KAAK,GAAG,MAAM,IAAAC,oCAA2B,EAACZ,UAAU,EAAEQ,UAAU,CAAC;QACvEL,aAAa,CAACQ,KAAK,CAAC;MACtB,CAAC,CAAC;IACJ,CAAC;IACD,KAAKJ,IAAI,CAAC,CAAC;IAEX,OAAO,MAAM;MAAA,IAAAM,mBAAA;MACX,OAAAA,mBAAA,GAAKP,kBAAkB,cAAAO,mBAAA,uBAAlBA,mBAAA,CAAqB,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACb,UAAU,EAAEC,IAAI,CAAC,CAAC;EAEtB,OAAOC,UAAU;AACnB;AAAC,IAAAY,QAAA,GAEcf,2BAA2B;AAAAgB,OAAA,CAAAjB,OAAA,GAAAgB,QAAA"}
1
+ {"version":3,"names":["_react","require","_ensureUnit","_interopRequireDefault","_getMostRecentQuantitySample","_subscribeToChanges","e","__esModule","default","useMostRecentQuantitySample","identifier","unit","lastSample","setLastSample","useState","useEffect","cancelSubscription","init","actualUnit","ensureUnit","value","getMostRecentQuantitySample","subscribeToChanges","_cancelSubscription","_default","exports"],"sources":["useMostRecentQuantitySample.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nimport ensureUnit from '../utils/ensureUnit'\nimport getMostRecentQuantitySample from '../utils/getMostRecentQuantitySample'\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { HKQuantityTypeIdentifier, UnitForIdentifier } from '../native-types'\nimport type { HKQuantitySample } from '../types'\n\n/**\n * @returns the most recent sample for the given quantity type.\n */\nfunction useMostRecentQuantitySample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends UnitForIdentifier<TIdentifier>\n>(identifier: TIdentifier, unit?: TUnit) {\n const [lastSample, setLastSample] = useState<HKQuantitySample<\n TIdentifier\n > | null>(null)\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n const actualUnit = await ensureUnit(identifier, unit)\n\n const value = await getMostRecentQuantitySample(identifier, actualUnit)\n setLastSample(value)\n\n cancelSubscription = await subscribeToChanges(identifier, async () => {\n const value = await getMostRecentQuantitySample(identifier, actualUnit)\n setLastSample(value)\n })\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, unit])\n\n return lastSample\n}\n\nexport default useMostRecentQuantitySample\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,4BAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA4D,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAK5D;AACA;AACA;AACA,SAASG,2BAA2BA,CAGlCC,UAAuB,EAAEC,IAAY,EAAE;EACvC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAElC,IAAI,CAAC;EAEf,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,kBAAwD;IAE5D,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvB,MAAMC,UAAU,GAAG,MAAM,IAAAC,mBAAU,EAACT,UAAU,EAAEC,IAAI,CAAC;MAErD,MAAMS,KAAK,GAAG,MAAM,IAAAC,oCAA2B,EAACX,UAAU,EAAEQ,UAAU,CAAC;MACvEL,aAAa,CAACO,KAAK,CAAC;MAEpBJ,kBAAkB,GAAG,MAAM,IAAAM,2BAAkB,EAACZ,UAAU,EAAE,YAAY;QACpE,MAAMU,KAAK,GAAG,MAAM,IAAAC,oCAA2B,EAACX,UAAU,EAAEQ,UAAU,CAAC;QACvEL,aAAa,CAACO,KAAK,CAAC;MACtB,CAAC,CAAC;IACJ,CAAC;IACD,KAAKH,IAAI,CAAC,CAAC;IAEX,OAAO,MAAM;MAAA,IAAAM,mBAAA;MACX,OAAAA,mBAAA,GAAKP,kBAAkB,cAAAO,mBAAA,uBAAlBA,mBAAA,CAAqB,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACb,UAAU,EAAEC,IAAI,CAAC,CAAC;EAEtB,OAAOC,UAAU;AACnB;AAAC,IAAAY,QAAA,GAAAC,OAAA,CAAAjB,OAAA,GAEcC,2BAA2B","ignoreList":[]}
@@ -8,7 +8,7 @@ var _react = require("react");
8
8
  var _getMostRecentWorkout = _interopRequireDefault(require("../utils/getMostRecentWorkout"));
9
9
  var _getPreferredUnitsTyped = _interopRequireDefault(require("../utils/getPreferredUnitsTyped"));
10
10
  var _subscribeToChanges = _interopRequireDefault(require("../utils/subscribeToChanges"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  /**
13
13
  * @returns the most recent workout sample.
14
14
  */
@@ -44,6 +44,5 @@ function useMostRecentWorkout(options) {
44
44
  }, [update]);
45
45
  return workout;
46
46
  }
47
- var _default = useMostRecentWorkout;
48
- exports.default = _default;
47
+ var _default = exports.default = useMostRecentWorkout;
49
48
  //# sourceMappingURL=useMostRecentWorkout.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_getMostRecentWorkout","_interopRequireDefault","_getPreferredUnitsTyped","_subscribeToChanges","obj","__esModule","default","useMostRecentWorkout","options","workout","setWorkout","useState","optionsRef","useRef","useEffect","current","update","useCallback","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","cancelSubscription","init","subscribeToChanges","_cancelSubscription","_default","exports"],"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\n/**\n * @returns the most recent workout sample.\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,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA4D,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAK5D;AACA;AACA;AACA,SAASG,oBAAoBA,CAG3BC,OAA8E,EAAE;EAChF,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAuC,IAAI,CAAC;EAElF,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACL,OAAO,CAAC;EAElC,IAAAM,gBAAS,EAAC,MAAM;IACdF,UAAU,CAACG,OAAO,GAAGP,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAMQ,MAAM,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACrC,MAAM;MAAEC,UAAU;MAAEC;IAAa,CAAC,GAAG,MAAM,IAAAC,+BAAsB,EAC/DR,UAAU,CAACG,OACb,CAAC;IAEDL,UAAU,CAAC,MAAM,IAAAW,6BAAoB,EAAC;MACpCH,UAAU;MACVC;IACF,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAL,gBAAS,EAAC,MAAM;IACd,KAAKE,MAAM,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,IAAAF,gBAAS,EAAC,MAAM;IACd,IAAIQ,kBAAwD;IAE5D,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvBD,kBAAkB,GAAG,MAAM,IAAAE,2BAAkB,EAC3C,yBAAyB,EACzBR,MACF,CAAC;IACH,CAAC;IACD,KAAKO,IAAI,CAAC,CAAC;IAEX,OAAO,MAAM;MAAA,IAAAE,mBAAA;MACX,OAAAA,mBAAA,GAAKH,kBAAkB,cAAAG,mBAAA,uBAAlBA,mBAAA,CAAqB,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACT,MAAM,CAAC,CAAC;EAEZ,OAAOP,OAAO;AAChB;AAAC,IAAAiB,QAAA,GAEcnB,oBAAoB;AAAAoB,OAAA,CAAArB,OAAA,GAAAoB,QAAA"}
1
+ {"version":3,"names":["_react","require","_getMostRecentWorkout","_interopRequireDefault","_getPreferredUnitsTyped","_subscribeToChanges","e","__esModule","default","useMostRecentWorkout","options","workout","setWorkout","useState","optionsRef","useRef","useEffect","current","update","useCallback","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","cancelSubscription","init","subscribeToChanges","_cancelSubscription","_default","exports"],"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\n/**\n * @returns the most recent workout sample.\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,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA4D,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAK5D;AACA;AACA;AACA,SAASG,oBAAoBA,CAG3BC,OAA8E,EAAE;EAChF,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAuC,IAAI,CAAC;EAElF,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACL,OAAO,CAAC;EAElC,IAAAM,gBAAS,EAAC,MAAM;IACdF,UAAU,CAACG,OAAO,GAAGP,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAMQ,MAAM,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACrC,MAAM;MAAEC,UAAU;MAAEC;IAAa,CAAC,GAAG,MAAM,IAAAC,+BAAsB,EAC/DR,UAAU,CAACG,OACb,CAAC;IAEDL,UAAU,CAAC,MAAM,IAAAW,6BAAoB,EAAC;MACpCH,UAAU;MACVC;IACF,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAL,gBAAS,EAAC,MAAM;IACd,KAAKE,MAAM,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,IAAAF,gBAAS,EAAC,MAAM;IACd,IAAIQ,kBAAwD;IAE5D,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvBD,kBAAkB,GAAG,MAAM,IAAAE,2BAAkB,EAC3C,yBAAyB,EACzBR,MACF,CAAC;IACH,CAAC;IACD,KAAKO,IAAI,CAAC,CAAC;IAEX,OAAO,MAAM;MAAA,IAAAE,mBAAA;MACX,OAAAA,mBAAA,GAAKH,kBAAkB,cAAAG,mBAAA,uBAAlBA,mBAAA,CAAqB,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACT,MAAM,CAAC,CAAC;EAEZ,OAAOP,OAAO;AAChB;AAAC,IAAAiB,QAAA,GAAAC,OAAA,CAAArB,OAAA,GAEcC,oBAAoB","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _querySources = _interopRequireDefault(require("../utils/querySources"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  function useSources(identifier) {
11
11
  const [result, setResult] = (0, _react.useState)(null);
12
12
  const update = (0, _react.useCallback)(async () => {
@@ -18,6 +18,5 @@ function useSources(identifier) {
18
18
  }, [update]);
19
19
  return result;
20
20
  }
21
- var _default = useSources;
22
- exports.default = _default;
21
+ var _default = exports.default = useSources;
23
22
  //# sourceMappingURL=useSources.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_querySources","_interopRequireDefault","obj","__esModule","default","useSources","identifier","result","setResult","useState","update","useCallback","res","querySources","useEffect","_default","exports"],"sources":["useSources.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport querySources from '../utils/querySources'\n\nimport type {\n HKCategoryTypeIdentifier,\n HKQuantityTypeIdentifier,\n HKSource,\n} from '../native-types'\n\nfunction useSources<\n TIdentifier extends HKCategoryTypeIdentifier | HKQuantityTypeIdentifier\n>(identifier: TIdentifier) {\n const [result, setResult] = useState<readonly HKSource[] | null>(null)\n\n const update = useCallback(async () => {\n const res = await querySources(identifier)\n setResult(res)\n }, [identifier])\n\n useEffect(() => {\n void update()\n }, [update])\n\n return result\n}\n\nexport default useSources\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAgD,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAQhD,SAASG,UAAUA,CAEjBC,UAAuB,EAAE;EACzB,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAA6B,IAAI,CAAC;EAEtE,MAAMC,MAAM,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACrC,MAAMC,GAAG,GAAG,MAAM,IAAAC,qBAAY,EAACP,UAAU,CAAC;IAC1CE,SAAS,CAACI,GAAG,CAAC;EAChB,CAAC,EAAE,CAACN,UAAU,CAAC,CAAC;EAEhB,IAAAQ,gBAAS,EAAC,MAAM;IACd,KAAKJ,MAAM,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,OAAOH,MAAM;AACf;AAAC,IAAAQ,QAAA,GAEcV,UAAU;AAAAW,OAAA,CAAAZ,OAAA,GAAAW,QAAA"}
1
+ {"version":3,"names":["_react","require","_querySources","_interopRequireDefault","e","__esModule","default","useSources","identifier","result","setResult","useState","update","useCallback","res","querySources","useEffect","_default","exports"],"sources":["useSources.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport querySources from '../utils/querySources'\n\nimport type {\n HKCategoryTypeIdentifier,\n HKQuantityTypeIdentifier,\n HKSource,\n} from '../native-types'\n\nfunction useSources<\n TIdentifier extends HKCategoryTypeIdentifier | HKQuantityTypeIdentifier\n>(identifier: TIdentifier) {\n const [result, setResult] = useState<readonly HKSource[] | null>(null)\n\n const update = useCallback(async () => {\n const res = await querySources(identifier)\n setResult(res)\n }, [identifier])\n\n useEffect(() => {\n void update()\n }, [update])\n\n return result\n}\n\nexport default useSources\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAgD,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQhD,SAASG,UAAUA,CAEjBC,UAAuB,EAAE;EACzB,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAA6B,IAAI,CAAC;EAEtE,MAAMC,MAAM,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACrC,MAAMC,GAAG,GAAG,MAAM,IAAAC,qBAAY,EAACP,UAAU,CAAC;IAC1CE,SAAS,CAACI,GAAG,CAAC;EAChB,CAAC,EAAE,CAACN,UAAU,CAAC,CAAC;EAEhB,IAAAQ,gBAAS,EAAC,MAAM;IACd,KAAKJ,MAAM,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,OAAOH,MAAM;AACf;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAZ,OAAA,GAEcC,UAAU","ignoreList":[]}
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _useSubscribeToChanges = _interopRequireDefault(require("./useSubscribeToChanges"));
9
9
  var _queryStatisticsForQuantity = _interopRequireDefault(require("../utils/queryStatisticsForQuantity"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  function useStatisticsForQuantity(identifier, options, from, to, unit) {
12
12
  const [result, setResult] = (0, _react.useState)(null);
13
13
  const optionsRef = (0, _react.useRef)(options);
@@ -24,6 +24,5 @@ function useStatisticsForQuantity(identifier, options, from, to, unit) {
24
24
  (0, _useSubscribeToChanges.default)(identifier, update);
25
25
  return result;
26
26
  }
27
- var _default = useStatisticsForQuantity;
28
- exports.default = _default;
27
+ var _default = exports.default = useStatisticsForQuantity;
29
28
  //# sourceMappingURL=useStatisticsForQuantity.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_useSubscribeToChanges","_interopRequireDefault","_queryStatisticsForQuantity","obj","__esModule","default","useStatisticsForQuantity","identifier","options","from","to","unit","result","setResult","useState","optionsRef","useRef","useEffect","current","update","useCallback","res","queryStatisticsForQuantity","useSubscribeToChanges","_default","exports"],"sources":["useStatisticsForQuantity.ts"],"sourcesContent":["import {\n useState, useEffect, useCallback, useRef,\n} from 'react'\n\nimport useSubscribeToChanges from './useSubscribeToChanges'\nimport queryStatisticsForQuantity from '../utils/queryStatisticsForQuantity'\n\nimport type { HKQuantityTypeIdentifier, HKStatisticsOptions, UnitForIdentifier } from '../native-types'\nimport type { QueryStatisticsResponse } from '../types'\n\nfunction useStatisticsForQuantity<TIdentifier extends HKQuantityTypeIdentifier, TUnit extends UnitForIdentifier<TIdentifier> = UnitForIdentifier<TIdentifier>>(\n identifier: TIdentifier,\n options: readonly HKStatisticsOptions[],\n from: Date,\n to?: Date,\n unit?: TUnit,\n) {\n const [result, setResult] = useState<QueryStatisticsResponse<TIdentifier, TUnit> | 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 res = await queryStatisticsForQuantity(identifier, optionsRef.current, from, to, unit)\n setResult(res)\n }, [\n identifier, from, to, unit,\n ])\n\n useEffect(() => {\n void update()\n }, [update])\n\n useSubscribeToChanges(identifier, update)\n\n return result\n}\n\nexport default useStatisticsForQuantity\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,2BAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA4E,SAAAE,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAK5E,SAASG,wBAAwBA,CAC/BC,UAAuB,EACvBC,OAAuC,EACvCC,IAAU,EACVC,EAAS,EACTC,IAAY,EACZ;EACA,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAqD,IAAI,CAAC;EAE9F,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACR,OAAO,CAAC;EAElC,IAAAS,gBAAS,EAAC,MAAM;IACdF,UAAU,CAACG,OAAO,GAAGV,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAMW,MAAM,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACrC,MAAMC,GAAG,GAAG,MAAM,IAAAC,mCAA0B,EAACf,UAAU,EAAEQ,UAAU,CAACG,OAAO,EAAET,IAAI,EAAEC,EAAE,EAAEC,IAAI,CAAC;IAC5FE,SAAS,CAACQ,GAAG,CAAC;EAChB,CAAC,EAAE,CACDd,UAAU,EAAEE,IAAI,EAAEC,EAAE,EAAEC,IAAI,CAC3B,CAAC;EAEF,IAAAM,gBAAS,EAAC,MAAM;IACd,KAAKE,MAAM,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,IAAAI,8BAAqB,EAAChB,UAAU,EAAEY,MAAM,CAAC;EAEzC,OAAOP,MAAM;AACf;AAAC,IAAAY,QAAA,GAEclB,wBAAwB;AAAAmB,OAAA,CAAApB,OAAA,GAAAmB,QAAA"}
1
+ {"version":3,"names":["_react","require","_useSubscribeToChanges","_interopRequireDefault","_queryStatisticsForQuantity","e","__esModule","default","useStatisticsForQuantity","identifier","options","from","to","unit","result","setResult","useState","optionsRef","useRef","useEffect","current","update","useCallback","res","queryStatisticsForQuantity","useSubscribeToChanges","_default","exports"],"sources":["useStatisticsForQuantity.ts"],"sourcesContent":["import {\n useState, useEffect, useCallback, useRef,\n} from 'react'\n\nimport useSubscribeToChanges from './useSubscribeToChanges'\nimport queryStatisticsForQuantity from '../utils/queryStatisticsForQuantity'\n\nimport type { HKQuantityTypeIdentifier, HKStatisticsOptions, UnitForIdentifier } from '../native-types'\nimport type { QueryStatisticsResponse } from '../types'\n\nfunction useStatisticsForQuantity<TIdentifier extends HKQuantityTypeIdentifier, TUnit extends UnitForIdentifier<TIdentifier> = UnitForIdentifier<TIdentifier>>(\n identifier: TIdentifier,\n options: readonly HKStatisticsOptions[],\n from: Date,\n to?: Date,\n unit?: TUnit,\n) {\n const [result, setResult] = useState<QueryStatisticsResponse<TIdentifier, TUnit> | 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 res = await queryStatisticsForQuantity(identifier, optionsRef.current, from, to, unit)\n setResult(res)\n }, [\n identifier, from, to, unit,\n ])\n\n useEffect(() => {\n void update()\n }, [update])\n\n useSubscribeToChanges(identifier, update)\n\n return result\n}\n\nexport default useStatisticsForQuantity\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,2BAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA4E,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAK5E,SAASG,wBAAwBA,CAC/BC,UAAuB,EACvBC,OAAuC,EACvCC,IAAU,EACVC,EAAS,EACTC,IAAY,EACZ;EACA,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAqD,IAAI,CAAC;EAE9F,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAACR,OAAO,CAAC;EAElC,IAAAS,gBAAS,EAAC,MAAM;IACdF,UAAU,CAACG,OAAO,GAAGV,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAMW,MAAM,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACrC,MAAMC,GAAG,GAAG,MAAM,IAAAC,mCAA0B,EAACf,UAAU,EAAEQ,UAAU,CAACG,OAAO,EAAET,IAAI,EAAEC,EAAE,EAAEC,IAAI,CAAC;IAC5FE,SAAS,CAACQ,GAAG,CAAC;EAChB,CAAC,EAAE,CACDd,UAAU,EAAEE,IAAI,EAAEC,EAAE,EAAEC,IAAI,CAC3B,CAAC;EAEF,IAAAM,gBAAS,EAAC,MAAM;IACd,KAAKE,MAAM,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,IAAAI,8BAAqB,EAAChB,UAAU,EAAEY,MAAM,CAAC;EAEzC,OAAOP,MAAM;AACf;AAAC,IAAAY,QAAA,GAAAC,OAAA,CAAApB,OAAA,GAEcC,wBAAwB","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _subscribeToChanges = _interopRequireDefault(require("../utils/subscribeToChanges"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  function useSubscribeToChanges(identifier, onChange) {
11
11
  const onChangeRef = (0, _react.useRef)(onChange);
12
12
  (0, _react.useEffect)(() => {
@@ -24,6 +24,5 @@ function useSubscribeToChanges(identifier, onChange) {
24
24
  };
25
25
  }, [identifier]);
26
26
  }
27
- var _default = useSubscribeToChanges;
28
- exports.default = _default;
27
+ var _default = exports.default = useSubscribeToChanges;
29
28
  //# sourceMappingURL=useSubscribeToChanges.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_subscribeToChanges","_interopRequireDefault","obj","__esModule","default","useSubscribeToChanges","identifier","onChange","onChangeRef","useRef","useEffect","current","cancelSubscription","init","subscribeToChanges","_cancelSubscription","_default","exports"],"sources":["useSubscribeToChanges.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\n\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { HKSampleTypeIdentifier } from '..'\n\nfunction useSubscribeToChanges<TIdentifier extends HKSampleTypeIdentifier>(\n identifier: TIdentifier,\n onChange: () => void,\n): void {\n const onChangeRef = useRef(onChange)\n\n useEffect(() => {\n onChangeRef.current = onChange\n }, [onChange])\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(identifier, onChangeRef.current)\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier])\n}\n\nexport default useSubscribeToChanges\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA4D,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAI5D,SAASG,qBAAqBA,CAC5BC,UAAuB,EACvBC,QAAoB,EACd;EACN,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACF,QAAQ,CAAC;EAEpC,IAAAG,gBAAS,EAAC,MAAM;IACdF,WAAW,CAACG,OAAO,GAAGJ,QAAQ;EAChC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAAG,gBAAS,EAAC,MAAM;IACd,IAAIE,kBAAwD;IAE5D,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvBD,kBAAkB,GAAG,MAAM,IAAAE,2BAAkB,EAACR,UAAU,EAAEE,WAAW,CAACG,OAAO,CAAC;IAChF,CAAC;IACD,KAAKE,IAAI,CAAC,CAAC;IAEX,OAAO,MAAM;MAAA,IAAAE,mBAAA;MACX,OAAAA,mBAAA,GAAKH,kBAAkB,cAAAG,mBAAA,uBAAlBA,mBAAA,CAAqB,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACT,UAAU,CAAC,CAAC;AAClB;AAAC,IAAAU,QAAA,GAEcX,qBAAqB;AAAAY,OAAA,CAAAb,OAAA,GAAAY,QAAA"}
1
+ {"version":3,"names":["_react","require","_subscribeToChanges","_interopRequireDefault","e","__esModule","default","useSubscribeToChanges","identifier","onChange","onChangeRef","useRef","useEffect","current","cancelSubscription","init","subscribeToChanges","_cancelSubscription","_default","exports"],"sources":["useSubscribeToChanges.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\n\nimport subscribeToChanges from '../utils/subscribeToChanges'\n\nimport type { HKSampleTypeIdentifier } from '..'\n\nfunction useSubscribeToChanges<TIdentifier extends HKSampleTypeIdentifier>(\n identifier: TIdentifier,\n onChange: () => void,\n): void {\n const onChangeRef = useRef(onChange)\n\n useEffect(() => {\n onChangeRef.current = onChange\n }, [onChange])\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(identifier, onChangeRef.current)\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier])\n}\n\nexport default useSubscribeToChanges\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA4D,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAI5D,SAASG,qBAAqBA,CAC5BC,UAAuB,EACvBC,QAAoB,EACd;EACN,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACF,QAAQ,CAAC;EAEpC,IAAAG,gBAAS,EAAC,MAAM;IACdF,WAAW,CAACG,OAAO,GAAGJ,QAAQ;EAChC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAAG,gBAAS,EAAC,MAAM;IACd,IAAIE,kBAAwD;IAE5D,MAAMC,IAAI,GAAG,MAAAA,CAAA,KAAY;MACvBD,kBAAkB,GAAG,MAAM,IAAAE,2BAAkB,EAACR,UAAU,EAAEE,WAAW,CAACG,OAAO,CAAC;IAChF,CAAC;IACD,KAAKE,IAAI,CAAC,CAAC;IAEX,OAAO,MAAM;MAAA,IAAAE,mBAAA;MACX,OAAAA,mBAAA,GAAKH,kBAAkB,cAAAG,mBAAA,uBAAlBA,mBAAA,CAAqB,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACT,UAAU,CAAC,CAAC;AAClB;AAAC,IAAAU,QAAA,GAAAC,OAAA,CAAAb,OAAA,GAEcC,qBAAqB","ignoreList":[]}