@kingstinct/react-native-healthkit 4.4.6 → 5.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 (231) hide show
  1. package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/xcuserdata/robertherber.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  2. package/lib/commonjs/hooks/useHealthkitAuthorization.js +41 -0
  3. package/lib/commonjs/hooks/useHealthkitAuthorization.js.map +1 -0
  4. package/lib/commonjs/hooks/useIsHealthDataAvailable.js +29 -0
  5. package/lib/commonjs/hooks/useIsHealthDataAvailable.js.map +1 -0
  6. package/lib/commonjs/hooks/useMostRecentCategorySample.js +27 -0
  7. package/lib/commonjs/hooks/useMostRecentCategorySample.js.map +1 -0
  8. package/lib/commonjs/hooks/useMostRecentQuantitySample.js +43 -0
  9. package/lib/commonjs/hooks/useMostRecentQuantitySample.js.map +1 -0
  10. package/lib/commonjs/hooks/useMostRecentWorkout.js +60 -0
  11. package/lib/commonjs/hooks/useMostRecentWorkout.js.map +1 -0
  12. package/lib/commonjs/hooks/useStatisticsForQuantity.js +35 -0
  13. package/lib/commonjs/hooks/useStatisticsForQuantity.js.map +1 -0
  14. package/lib/commonjs/hooks/useSubscribeToChanges.js +37 -0
  15. package/lib/commonjs/hooks/useSubscribeToChanges.js.map +1 -0
  16. package/lib/commonjs/index.ios.js +66 -394
  17. package/lib/commonjs/index.ios.js.map +1 -1
  18. package/lib/commonjs/index.js +2 -15
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/commonjs/native-types.js +170 -78
  21. package/lib/commonjs/native-types.js.map +1 -1
  22. package/lib/commonjs/types.js +13 -0
  23. package/lib/commonjs/types.js.map +1 -1
  24. package/lib/commonjs/utils/deserializeCategorySample.js +15 -0
  25. package/lib/commonjs/utils/deserializeCategorySample.js.map +1 -0
  26. package/lib/commonjs/utils/deserializeCorrelation.js +32 -0
  27. package/lib/commonjs/utils/deserializeCorrelation.js.map +1 -0
  28. package/lib/commonjs/utils/deserializeSample.js +17 -0
  29. package/lib/commonjs/utils/deserializeSample.js.map +1 -0
  30. package/lib/commonjs/utils/deserializeWorkout.js +17 -0
  31. package/lib/commonjs/utils/deserializeWorkout.js.map +1 -0
  32. package/lib/commonjs/utils/ensureMetadata.js +14 -0
  33. package/lib/commonjs/utils/ensureMetadata.js.map +1 -0
  34. package/lib/commonjs/utils/ensureUnit.js +23 -0
  35. package/lib/commonjs/utils/ensureUnit.js.map +1 -0
  36. package/lib/commonjs/utils/getDateOfBirth.js +19 -0
  37. package/lib/commonjs/utils/getDateOfBirth.js.map +1 -0
  38. package/lib/commonjs/utils/getMostRecentCategorySample.js +22 -0
  39. package/lib/commonjs/utils/getMostRecentCategorySample.js.map +1 -0
  40. package/lib/commonjs/utils/getMostRecentQuantitySample.js +22 -0
  41. package/lib/commonjs/utils/getMostRecentQuantitySample.js.map +1 -0
  42. package/lib/commonjs/utils/getMostRecentWorkout.js +24 -0
  43. package/lib/commonjs/utils/getMostRecentWorkout.js.map +1 -0
  44. package/lib/commonjs/utils/getPreferredUnit.js +19 -0
  45. package/lib/commonjs/utils/getPreferredUnit.js.map +1 -0
  46. package/lib/commonjs/utils/getPreferredUnits.js +19 -0
  47. package/lib/commonjs/utils/getPreferredUnits.js.map +1 -0
  48. package/lib/commonjs/utils/getPreferredUnitsTyped.js +46 -0
  49. package/lib/commonjs/utils/getPreferredUnitsTyped.js.map +1 -0
  50. package/lib/commonjs/utils/getRequestStatusForAuthorization.js +25 -0
  51. package/lib/commonjs/utils/getRequestStatusForAuthorization.js.map +1 -0
  52. package/lib/commonjs/utils/prepareOptions.js +27 -0
  53. package/lib/commonjs/utils/prepareOptions.js.map +1 -0
  54. package/lib/commonjs/utils/queryCategorySamples.js +24 -0
  55. package/lib/commonjs/utils/queryCategorySamples.js.map +1 -0
  56. package/lib/commonjs/utils/queryCorrelationSamples.js +24 -0
  57. package/lib/commonjs/utils/queryCorrelationSamples.js.map +1 -0
  58. package/lib/commonjs/utils/queryQuantitySamples.js +27 -0
  59. package/lib/commonjs/utils/queryQuantitySamples.js.map +1 -0
  60. package/lib/commonjs/utils/queryStatisticsForQuantity.js +34 -0
  61. package/lib/commonjs/utils/queryStatisticsForQuantity.js.map +1 -0
  62. package/lib/commonjs/utils/queryWorkouts.js +30 -0
  63. package/lib/commonjs/utils/queryWorkouts.js.map +1 -0
  64. package/lib/commonjs/utils/requestAuthorization.js +25 -0
  65. package/lib/commonjs/utils/requestAuthorization.js.map +1 -0
  66. package/lib/commonjs/utils/saveCategorySample.js +21 -0
  67. package/lib/commonjs/utils/saveCategorySample.js.map +1 -0
  68. package/lib/commonjs/utils/saveCorrelationSample.js +24 -0
  69. package/lib/commonjs/utils/saveCorrelationSample.js.map +1 -0
  70. package/lib/commonjs/utils/saveQuantitySample.js +21 -0
  71. package/lib/commonjs/utils/saveQuantitySample.js.map +1 -0
  72. package/lib/commonjs/utils/saveWorkoutSample.js +25 -0
  73. package/lib/commonjs/utils/saveWorkoutSample.js.map +1 -0
  74. package/lib/commonjs/utils/serializeDate.js +12 -0
  75. package/lib/commonjs/utils/serializeDate.js.map +1 -0
  76. package/lib/commonjs/utils/subscribeToChanges.js +37 -0
  77. package/lib/commonjs/utils/subscribeToChanges.js.map +1 -0
  78. package/lib/module/hooks/useHealthkitAuthorization.js +29 -0
  79. package/lib/module/hooks/useHealthkitAuthorization.js.map +1 -0
  80. package/lib/module/hooks/useIsHealthDataAvailable.js +18 -0
  81. package/lib/module/hooks/useIsHealthDataAvailable.js.map +1 -0
  82. package/lib/module/hooks/useMostRecentCategorySample.js +15 -0
  83. package/lib/module/hooks/useMostRecentCategorySample.js.map +1 -0
  84. package/lib/module/hooks/useMostRecentQuantitySample.js +30 -0
  85. package/lib/module/hooks/useMostRecentQuantitySample.js.map +1 -0
  86. package/lib/module/hooks/useMostRecentWorkout.js +47 -0
  87. package/lib/module/hooks/useMostRecentWorkout.js.map +1 -0
  88. package/lib/module/hooks/useStatisticsForQuantity.js +23 -0
  89. package/lib/module/hooks/useStatisticsForQuantity.js.map +1 -0
  90. package/lib/module/hooks/useSubscribeToChanges.js +26 -0
  91. package/lib/module/hooks/useSubscribeToChanges.js.map +1 -0
  92. package/lib/module/index.ios.js +32 -370
  93. package/lib/module/index.ios.js.map +1 -1
  94. package/lib/module/index.js +3 -5
  95. package/lib/module/index.js.map +1 -1
  96. package/lib/module/native-types.js +154 -74
  97. package/lib/module/native-types.js.map +1 -1
  98. package/lib/module/types.js +15 -0
  99. package/lib/module/types.js.map +1 -1
  100. package/lib/module/utils/deserializeCategorySample.js +7 -0
  101. package/lib/module/utils/deserializeCategorySample.js.map +1 -0
  102. package/lib/module/utils/deserializeCorrelation.js +21 -0
  103. package/lib/module/utils/deserializeCorrelation.js.map +1 -0
  104. package/lib/module/utils/deserializeSample.js +9 -0
  105. package/lib/module/utils/deserializeSample.js.map +1 -0
  106. package/lib/module/utils/deserializeWorkout.js +9 -0
  107. package/lib/module/utils/deserializeWorkout.js.map +1 -0
  108. package/lib/module/utils/ensureMetadata.js +6 -0
  109. package/lib/module/utils/ensureMetadata.js.map +1 -0
  110. package/lib/module/utils/ensureUnit.js +13 -0
  111. package/lib/module/utils/ensureUnit.js.map +1 -0
  112. package/lib/module/utils/getDateOfBirth.js +9 -0
  113. package/lib/module/utils/getDateOfBirth.js.map +1 -0
  114. package/lib/module/utils/getMostRecentCategorySample.js +12 -0
  115. package/lib/module/utils/getMostRecentCategorySample.js.map +1 -0
  116. package/lib/module/utils/getMostRecentQuantitySample.js +12 -0
  117. package/lib/module/utils/getMostRecentQuantitySample.js.map +1 -0
  118. package/lib/module/utils/getMostRecentWorkout.js +14 -0
  119. package/lib/module/utils/getMostRecentWorkout.js.map +1 -0
  120. package/lib/module/utils/getPreferredUnit.js +9 -0
  121. package/lib/module/utils/getPreferredUnit.js.map +1 -0
  122. package/lib/module/utils/getPreferredUnits.js +9 -0
  123. package/lib/module/utils/getPreferredUnits.js.map +1 -0
  124. package/lib/module/utils/getPreferredUnitsTyped.js +34 -0
  125. package/lib/module/utils/getPreferredUnitsTyped.js.map +1 -0
  126. package/lib/module/utils/getRequestStatusForAuthorization.js +15 -0
  127. package/lib/module/utils/getRequestStatusForAuthorization.js.map +1 -0
  128. package/lib/module/utils/prepareOptions.js +17 -0
  129. package/lib/module/utils/prepareOptions.js.map +1 -0
  130. package/lib/module/utils/queryCategorySamples.js +12 -0
  131. package/lib/module/utils/queryCategorySamples.js.map +1 -0
  132. package/lib/module/utils/queryCorrelationSamples.js +12 -0
  133. package/lib/module/utils/queryCorrelationSamples.js.map +1 -0
  134. package/lib/module/utils/queryQuantitySamples.js +14 -0
  135. package/lib/module/utils/queryQuantitySamples.js.map +1 -0
  136. package/lib/module/utils/queryStatisticsForQuantity.js +23 -0
  137. package/lib/module/utils/queryStatisticsForQuantity.js.map +1 -0
  138. package/lib/module/utils/queryWorkouts.js +17 -0
  139. package/lib/module/utils/queryWorkouts.js.map +1 -0
  140. package/lib/module/utils/requestAuthorization.js +15 -0
  141. package/lib/module/utils/requestAuthorization.js.map +1 -0
  142. package/lib/module/utils/saveCategorySample.js +11 -0
  143. package/lib/module/utils/saveCategorySample.js.map +1 -0
  144. package/lib/module/utils/saveCorrelationSample.js +13 -0
  145. package/lib/module/utils/saveCorrelationSample.js.map +1 -0
  146. package/lib/module/utils/saveQuantitySample.js +11 -0
  147. package/lib/module/utils/saveQuantitySample.js.map +1 -0
  148. package/lib/module/utils/saveWorkoutSample.js +14 -0
  149. package/lib/module/utils/saveWorkoutSample.js.map +1 -0
  150. package/lib/module/utils/serializeDate.js +4 -0
  151. package/lib/module/utils/serializeDate.js.map +1 -0
  152. package/lib/module/utils/subscribeToChanges.js +25 -0
  153. package/lib/module/utils/subscribeToChanges.js.map +1 -0
  154. package/lib/typescript/example-expo/App.d.ts +2 -0
  155. package/lib/typescript/src/hooks/useHealthkitAuthorization.d.ts +3 -0
  156. package/lib/typescript/src/hooks/useIsHealthDataAvailable.d.ts +2 -0
  157. package/lib/typescript/src/hooks/useMostRecentCategorySample.d.ts +4 -0
  158. package/lib/typescript/src/hooks/useMostRecentQuantitySample.d.ts +4 -0
  159. package/lib/typescript/src/hooks/useMostRecentWorkout.d.ts +7 -0
  160. package/lib/typescript/src/hooks/useStatisticsForQuantity.d.ts +4 -0
  161. package/lib/typescript/src/hooks/useSubscribeToChanges.d.ts +3 -0
  162. package/lib/typescript/src/index.d.ts +2 -3
  163. package/lib/typescript/src/index.ios.d.ts +48 -3
  164. package/lib/typescript/src/native-types.d.ts +169 -65
  165. package/lib/typescript/src/types.d.ts +14 -90
  166. package/lib/typescript/src/utils/deserializeCategorySample.d.ts +4 -0
  167. package/lib/typescript/src/utils/deserializeCorrelation.d.ts +4 -0
  168. package/lib/typescript/src/utils/deserializeSample.d.ts +4 -0
  169. package/lib/typescript/src/utils/deserializeWorkout.d.ts +4 -0
  170. package/lib/typescript/src/utils/ensureMetadata.d.ts +2 -0
  171. package/lib/typescript/src/utils/ensureUnit.d.ts +3 -0
  172. package/lib/typescript/src/utils/getDateOfBirth.d.ts +2 -0
  173. package/lib/typescript/src/utils/getMostRecentCategorySample.d.ts +3 -0
  174. package/lib/typescript/src/utils/getMostRecentQuantitySample.d.ts +3 -0
  175. package/lib/typescript/src/utils/getMostRecentWorkout.d.ts +5 -0
  176. package/lib/typescript/src/utils/getPreferredUnit.d.ts +4 -0
  177. package/lib/typescript/src/utils/getPreferredUnits.d.ts +4 -0
  178. package/lib/typescript/src/utils/getPreferredUnitsTyped.d.ts +9 -0
  179. package/lib/typescript/src/utils/getRequestStatusForAuthorization.d.ts +3 -0
  180. package/lib/typescript/src/utils/prepareOptions.d.ts +8 -0
  181. package/lib/typescript/src/utils/queryCategorySamples.d.ts +5 -0
  182. package/lib/typescript/src/utils/queryCorrelationSamples.d.ts +5 -0
  183. package/lib/typescript/src/utils/queryQuantitySamples.d.ts +7 -0
  184. package/lib/typescript/src/utils/queryStatisticsForQuantity.d.ts +14 -0
  185. package/lib/typescript/src/utils/queryWorkouts.d.ts +4 -0
  186. package/lib/typescript/src/utils/requestAuthorization.d.ts +3 -0
  187. package/lib/typescript/src/utils/saveCategorySample.d.ts +7 -0
  188. package/lib/typescript/src/utils/saveCorrelationSample.d.ts +8 -0
  189. package/lib/typescript/src/utils/saveQuantitySample.d.ts +7 -0
  190. package/lib/typescript/src/utils/saveWorkoutSample.d.ts +7 -0
  191. package/lib/typescript/src/utils/serializeDate.d.ts +2 -0
  192. package/lib/typescript/src/utils/subscribeToChanges.d.ts +3 -0
  193. package/package.json +17 -6
  194. package/src/hooks/useHealthkitAuthorization.ts +39 -0
  195. package/src/hooks/useIsHealthDataAvailable.ts +17 -0
  196. package/src/hooks/useMostRecentCategorySample.ts +24 -0
  197. package/src/hooks/useMostRecentQuantitySample.ts +39 -0
  198. package/src/hooks/useMostRecentWorkout.ts +60 -0
  199. package/src/hooks/useStatisticsForQuantity.ts +42 -0
  200. package/src/hooks/useSubscribeToChanges.ts +31 -0
  201. package/src/index.ios.tsx +36 -569
  202. package/src/index.tsx +5 -7
  203. package/src/native-types.ts +213 -74
  204. package/src/types.ts +41 -152
  205. package/src/utils/deserializeCategorySample.ts +12 -0
  206. package/src/utils/deserializeCorrelation.ts +28 -0
  207. package/src/utils/deserializeSample.ts +17 -0
  208. package/src/utils/deserializeWorkout.ts +14 -0
  209. package/src/utils/ensureMetadata.ts +5 -0
  210. package/src/utils/ensureUnit.ts +19 -0
  211. package/src/utils/getDateOfBirth.ts +8 -0
  212. package/src/utils/getMostRecentCategorySample.ts +18 -0
  213. package/src/utils/getMostRecentQuantitySample.ts +19 -0
  214. package/src/utils/getMostRecentWorkout.ts +27 -0
  215. package/src/utils/getPreferredUnit.ts +14 -0
  216. package/src/utils/getPreferredUnits.ts +14 -0
  217. package/src/utils/getPreferredUnitsTyped.ts +38 -0
  218. package/src/utils/getRequestStatusForAuthorization.ts +21 -0
  219. package/src/utils/prepareOptions.ts +15 -0
  220. package/src/utils/queryCategorySamples.ts +29 -0
  221. package/src/utils/queryCorrelationSamples.ts +29 -0
  222. package/src/utils/queryQuantitySamples.ts +36 -0
  223. package/src/utils/queryStatisticsForQuantity.ts +38 -0
  224. package/src/utils/queryWorkouts.ts +28 -0
  225. package/src/utils/requestAuthorization.ts +18 -0
  226. package/src/utils/saveCategorySample.ts +27 -0
  227. package/src/utils/saveCorrelationSample.ts +34 -0
  228. package/src/utils/saveQuantitySample.ts +29 -0
  229. package/src/utils/saveWorkoutSample.ts +28 -0
  230. package/src/utils/serializeDate.ts +3 -0
  231. package/src/utils/subscribeToChanges.ts +32 -0
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _nativeTypes = _interopRequireDefault(require("../native-types"));
9
+
10
+ var _deserializeWorkout = _interopRequireDefault(require("./deserializeWorkout"));
11
+
12
+ var _getPreferredUnitsTyped = _interopRequireDefault(require("./getPreferredUnitsTyped"));
13
+
14
+ var _prepareOptions = _interopRequireDefault(require("./prepareOptions"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ async function queryWorkouts(options) {
19
+ const {
20
+ energyUnit,
21
+ distanceUnit
22
+ } = await (0, _getPreferredUnitsTyped.default)(options);
23
+ const opts = (0, _prepareOptions.default)(options);
24
+ const workouts = await _nativeTypes.default.queryWorkoutSamples(energyUnit, distanceUnit, opts.from, opts.to, opts.limit, opts.ascending);
25
+ return workouts.map(_deserializeWorkout.default);
26
+ }
27
+
28
+ var _default = queryWorkouts;
29
+ exports.default = _default;
30
+ //# sourceMappingURL=queryWorkouts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["queryWorkouts","options","energyUnit","distanceUnit","getPreferredUnitsTyped","opts","prepareOptions","workouts","Native","queryWorkoutSamples","from","to","limit","ascending","map","deserializeWorkout"],"sources":["queryWorkouts.ts"],"sourcesContent":["import Native from '../native-types'\nimport deserializeWorkout from './deserializeWorkout'\nimport getPreferredUnitsTyped from './getPreferredUnitsTyped'\nimport prepareOptions from './prepareOptions'\n\nimport type { EnergyUnit, LengthUnit } from '../native-types'\nimport type { QueryWorkoutsOptions } from '../types'\n\nasync function queryWorkouts<\n TEnergy extends EnergyUnit,\n TDistance extends LengthUnit\n>(options: QueryWorkoutsOptions<TEnergy, TDistance>) {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(options)\n const opts = prepareOptions(options)\n\n const workouts = await Native.queryWorkoutSamples(\n energyUnit,\n distanceUnit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending,\n )\n\n return workouts.map(deserializeWorkout)\n}\n\nexport default queryWorkouts\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAKA,eAAeA,aAAf,CAGEC,OAHF,EAGqD;EACnD,MAAM;IAAEC,UAAF;IAAcC;EAAd,IAA+B,MAAM,IAAAC,+BAAA,EAAuBH,OAAvB,CAA3C;EACA,MAAMI,IAAI,GAAG,IAAAC,uBAAA,EAAeL,OAAf,CAAb;EAEA,MAAMM,QAAQ,GAAG,MAAMC,oBAAA,CAAOC,mBAAP,CACrBP,UADqB,EAErBC,YAFqB,EAGrBE,IAAI,CAACK,IAHgB,EAIrBL,IAAI,CAACM,EAJgB,EAKrBN,IAAI,CAACO,KALgB,EAMrBP,IAAI,CAACQ,SANgB,CAAvB;EASA,OAAON,QAAQ,CAACO,GAAT,CAAaC,2BAAb,CAAP;AACD;;eAEcf,a"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _nativeTypes = _interopRequireDefault(require("../native-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const requestAuthorization = async function (read) {
13
+ let write = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
14
+ const readPermissions = read.reduce((obj, cur) => ({ ...obj,
15
+ [cur]: true
16
+ }), {});
17
+ const writePermissions = write.reduce((obj, cur) => ({ ...obj,
18
+ [cur]: true
19
+ }), {});
20
+ return _nativeTypes.default.requestAuthorization(writePermissions, readPermissions);
21
+ };
22
+
23
+ var _default = requestAuthorization;
24
+ exports.default = _default;
25
+ //# sourceMappingURL=requestAuthorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["requestAuthorization","read","write","readPermissions","reduce","obj","cur","writePermissions","Native"],"sources":["requestAuthorization.ts"],"sourcesContent":["import Native from '../native-types'\n\nimport type {\n HealthkitReadAuthorization, HealthkitWriteAuthorization, ReadPermissions, WritePermissions,\n} from '../native-types'\n\nconst requestAuthorization = async (\n read: readonly HealthkitReadAuthorization[],\n write: readonly HealthkitWriteAuthorization[] = [],\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\n\n return Native.requestAuthorization(writePermissions, readPermissions)\n}\n\nexport default requestAuthorization\n"],"mappings":";;;;;;;AAAA;;;;AAMA,MAAMA,oBAAoB,GAAG,gBAC3BC,IAD2B,EAGN;EAAA,IADrBC,KACqB,uEAD2B,EAC3B;EACrB,MAAMC,eAAe,GAAGF,IAAI,CAACG,MAAL,CAAY,CAACC,GAAD,EAAMC,GAAN,MAAe,EAAE,GAAGD,GAAL;IAAU,CAACC,GAAD,GAAO;EAAjB,CAAf,CAAZ,EAAqD,EAArD,CAAxB;EAEA,MAAMC,gBAAgB,GAAGL,KAAK,CAACE,MAAN,CAAa,CAACC,GAAD,EAAMC,GAAN,MAAe,EAAE,GAAGD,GAAL;IAAU,CAACC,GAAD,GAAO;EAAjB,CAAf,CAAb,EAAsD,EAAtD,CAAzB;EAEA,OAAOE,oBAAA,CAAOR,oBAAP,CAA4BO,gBAA5B,EAA8CJ,eAA9C,CAAP;AACD,CATD;;eAWeH,oB"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _nativeTypes = _interopRequireDefault(require("../native-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ async function saveCategorySample(identifier, value, options) {
13
+ const start = (options === null || options === void 0 ? void 0 : options.start) || (options === null || options === void 0 ? void 0 : options.end) || new Date();
14
+ const end = (options === null || options === void 0 ? void 0 : options.end) || (options === null || options === void 0 ? void 0 : options.start) || new Date();
15
+ const metadata = (options === null || options === void 0 ? void 0 : options.metadata) || {};
16
+ return _nativeTypes.default.saveCategorySample(identifier, value, start.toISOString(), end.toISOString(), metadata || {});
17
+ }
18
+
19
+ var _default = saveCategorySample;
20
+ exports.default = _default;
21
+ //# sourceMappingURL=saveCategorySample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["saveCategorySample","identifier","value","options","start","end","Date","metadata","Native","toISOString"],"sources":["saveCategorySample.ts"],"sourcesContent":["import Native from '../native-types'\n\nimport type { HKCategoryTypeIdentifier, HKCategoryValueForIdentifier, MetadataMapperForCategoryIdentifier } from '../native-types'\n\nasync function saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n readonly start?: Date;\n readonly end?: Date;\n readonly metadata?: MetadataMapperForCategoryIdentifier<T>;\n },\n) {\n const start = options?.start || options?.end || new Date()\n const end = options?.end || options?.start || new Date()\n const metadata = options?.metadata || {}\n\n return Native.saveCategorySample(\n identifier,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata || {},\n )\n}\n\nexport default saveCategorySample\n"],"mappings":";;;;;;;AAAA;;;;AAIA,eAAeA,kBAAf,CACEC,UADF,EAEEC,KAFF,EAGEC,OAHF,EAQE;EACA,MAAMC,KAAK,GAAG,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEC,KAAT,MAAkBD,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEE,GAA3B,KAAkC,IAAIC,IAAJ,EAAhD;EACA,MAAMD,GAAG,GAAG,CAAAF,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEE,GAAT,MAAgBF,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAEC,KAAzB,KAAkC,IAAIE,IAAJ,EAA9C;EACA,MAAMC,QAAQ,GAAG,CAAAJ,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEI,QAAT,KAAqB,EAAtC;EAEA,OAAOC,oBAAA,CAAOR,kBAAP,CACLC,UADK,EAELC,KAFK,EAGLE,KAAK,CAACK,WAAN,EAHK,EAILJ,GAAG,CAACI,WAAJ,EAJK,EAKLF,QAAQ,IAAI,EALP,CAAP;AAOD;;eAEcP,kB"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _nativeTypes = _interopRequireDefault(require("../native-types"));
9
+
10
+ var _ensureMetadata = _interopRequireDefault(require("./ensureMetadata"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ async function saveCorrelationSample(typeIdentifier, samples, options) {
15
+ const start = ((options === null || options === void 0 ? void 0 : options.start) || new Date()).toISOString();
16
+ const end = ((options === null || options === void 0 ? void 0 : options.end) || new Date()).toISOString();
17
+ return _nativeTypes.default.saveCorrelationSample(typeIdentifier, samples.map(s => ({ ...s,
18
+ metadata: (0, _ensureMetadata.default)(s.metadata)
19
+ })), start, end, (0, _ensureMetadata.default)(options === null || options === void 0 ? void 0 : options.metadata));
20
+ }
21
+
22
+ var _default = saveCorrelationSample;
23
+ exports.default = _default;
24
+ //# sourceMappingURL=saveCorrelationSample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["saveCorrelationSample","typeIdentifier","samples","options","start","Date","toISOString","end","Native","map","s","metadata","ensureMetadata"],"sources":["saveCorrelationSample.ts"],"sourcesContent":["import Native from '../native-types'\nimport ensureMetadata from './ensureMetadata'\n\nimport type { MetadataMapperForCorrelationIdentifier, HKCorrelationTypeIdentifier } from '../native-types'\nimport type { HKCategorySampleForSaving, HKQuantitySampleForSaving } from '../types'\n\nasync function saveCorrelationSample<\n TIdentifier extends HKCorrelationTypeIdentifier,\n TSamples extends readonly(\n | HKCategorySampleForSaving\n | HKQuantitySampleForSaving\n )[]\n>(\n typeIdentifier: TIdentifier,\n samples: TSamples,\n options?: {\n readonly start?: Date;\n readonly end?: Date;\n readonly metadata?: MetadataMapperForCorrelationIdentifier<TIdentifier>;\n },\n) {\n const start = (options?.start || new Date()).toISOString()\n const end = (options?.end || new Date()).toISOString()\n\n return Native.saveCorrelationSample(\n typeIdentifier,\n samples.map((s) => ({ ...s, metadata: ensureMetadata(s.metadata) })),\n start,\n end,\n ensureMetadata(options?.metadata),\n )\n}\n\nexport default saveCorrelationSample\n"],"mappings":";;;;;;;AAAA;;AACA;;;;AAKA,eAAeA,qBAAf,CAOEC,cAPF,EAQEC,OARF,EASEC,OATF,EAcE;EACA,MAAMC,KAAK,GAAG,CAAC,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEC,KAAT,KAAkB,IAAIC,IAAJ,EAAnB,EAA+BC,WAA/B,EAAd;EACA,MAAMC,GAAG,GAAG,CAAC,CAAAJ,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEI,GAAT,KAAgB,IAAIF,IAAJ,EAAjB,EAA6BC,WAA7B,EAAZ;EAEA,OAAOE,oBAAA,CAAOR,qBAAP,CACLC,cADK,EAELC,OAAO,CAACO,GAAR,CAAaC,CAAD,KAAQ,EAAE,GAAGA,CAAL;IAAQC,QAAQ,EAAE,IAAAC,uBAAA,EAAeF,CAAC,CAACC,QAAjB;EAAlB,CAAR,CAAZ,CAFK,EAGLP,KAHK,EAILG,GAJK,EAKL,IAAAK,uBAAA,EAAeT,OAAf,aAAeA,OAAf,uBAAeA,OAAO,CAAEQ,QAAxB,CALK,CAAP;AAOD;;eAEcX,qB"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _nativeTypes = _interopRequireDefault(require("../native-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ async function saveQuantitySample(identifier, unit, value, options) {
13
+ const start = (options === null || options === void 0 ? void 0 : options.start) || (options === null || options === void 0 ? void 0 : options.end) || new Date();
14
+ const end = (options === null || options === void 0 ? void 0 : options.end) || (options === null || options === void 0 ? void 0 : options.start) || new Date();
15
+ const metadata = (options === null || options === void 0 ? void 0 : options.metadata) || {};
16
+ return _nativeTypes.default.saveQuantitySample(identifier, unit, value, start.toISOString(), end.toISOString(), metadata);
17
+ }
18
+
19
+ var _default = saveQuantitySample;
20
+ exports.default = _default;
21
+ //# sourceMappingURL=saveQuantitySample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["saveQuantitySample","identifier","unit","value","options","start","end","Date","metadata","Native","toISOString"],"sources":["saveQuantitySample.ts"],"sourcesContent":["import Native from '../native-types'\n\nimport type { MetadataMapperForQuantityIdentifier, HKQuantityTypeIdentifier, UnitForIdentifier } from '../native-types'\n\nasync function saveQuantitySample<TType extends HKQuantityTypeIdentifier>(\n identifier: TType,\n unit: UnitForIdentifier<TType>,\n value: number,\n options?: {\n readonly start?: Date;\n readonly end?: Date;\n readonly metadata?: MetadataMapperForQuantityIdentifier<TType>;\n },\n) {\n const start = options?.start || options?.end || new Date()\n const end = options?.end || options?.start || new Date()\n const metadata = options?.metadata || {}\n\n return Native.saveQuantitySample(\n identifier,\n unit,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata,\n )\n}\n\nexport default saveQuantitySample\n"],"mappings":";;;;;;;AAAA;;;;AAIA,eAAeA,kBAAf,CACEC,UADF,EAEEC,IAFF,EAGEC,KAHF,EAIEC,OAJF,EASE;EACA,MAAMC,KAAK,GAAG,CAAAD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEC,KAAT,MAAkBD,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEE,GAA3B,KAAkC,IAAIC,IAAJ,EAAhD;EACA,MAAMD,GAAG,GAAG,CAAAF,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEE,GAAT,MAAgBF,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAEC,KAAzB,KAAkC,IAAIE,IAAJ,EAA9C;EACA,MAAMC,QAAQ,GAAG,CAAAJ,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEI,QAAT,KAAqB,EAAtC;EAEA,OAAOC,oBAAA,CAAOT,kBAAP,CACLC,UADK,EAELC,IAFK,EAGLC,KAHK,EAILE,KAAK,CAACK,WAAN,EAJK,EAKLJ,GAAG,CAACI,WAAJ,EALK,EAMLF,QANK,CAAP;AAQD;;eAEcR,kB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _nativeTypes = _interopRequireDefault(require("../native-types"));
9
+
10
+ var _ensureMetadata = _interopRequireDefault(require("./ensureMetadata"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ async function saveWorkoutSample(typeIdentifier, quantities, _start, options) {
15
+ const start = _start.toISOString();
16
+
17
+ const end = ((options === null || options === void 0 ? void 0 : options.end) || new Date()).toISOString();
18
+ return _nativeTypes.default.saveWorkoutSample(typeIdentifier, quantities.map(s => ({ ...s,
19
+ metadata: (0, _ensureMetadata.default)(s.metadata)
20
+ })), start, end, (0, _ensureMetadata.default)(options === null || options === void 0 ? void 0 : options.metadata));
21
+ }
22
+
23
+ var _default = saveWorkoutSample;
24
+ exports.default = _default;
25
+ //# sourceMappingURL=saveWorkoutSample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["saveWorkoutSample","typeIdentifier","quantities","_start","options","start","toISOString","end","Date","Native","map","s","metadata","ensureMetadata"],"sources":["saveWorkoutSample.ts"],"sourcesContent":["import Native from '../native-types'\nimport ensureMetadata from './ensureMetadata'\n\nimport type { HKWorkoutActivityType, HKWorkoutMetadata } from '../native-types'\nimport type { HKQuantitySampleForSaving } from '../types'\n\nasync function saveWorkoutSample<TIdentifier extends HKWorkoutActivityType>(\n typeIdentifier: TIdentifier,\n quantities: readonly HKQuantitySampleForSaving[],\n _start: Date,\n options?: {\n readonly end?: Date;\n readonly metadata?: HKWorkoutMetadata;\n },\n) {\n const start = _start.toISOString()\n const end = (options?.end || new Date()).toISOString()\n\n return Native.saveWorkoutSample(\n typeIdentifier,\n quantities.map(((s) => ({ ...s, metadata: ensureMetadata(s.metadata) }))),\n start,\n end,\n ensureMetadata(options?.metadata),\n )\n}\n\nexport default saveWorkoutSample\n"],"mappings":";;;;;;;AAAA;;AACA;;;;AAKA,eAAeA,iBAAf,CACEC,cADF,EAEEC,UAFF,EAGEC,MAHF,EAIEC,OAJF,EAQE;EACA,MAAMC,KAAK,GAAGF,MAAM,CAACG,WAAP,EAAd;;EACA,MAAMC,GAAG,GAAG,CAAC,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEG,GAAT,KAAgB,IAAIC,IAAJ,EAAjB,EAA6BF,WAA7B,EAAZ;EAEA,OAAOG,oBAAA,CAAOT,iBAAP,CACLC,cADK,EAELC,UAAU,CAACQ,GAAX,CAAiBC,CAAD,KAAQ,EAAE,GAAGA,CAAL;IAAQC,QAAQ,EAAE,IAAAC,uBAAA,EAAeF,CAAC,CAACC,QAAjB;EAAlB,CAAR,CAAhB,CAFK,EAGLP,KAHK,EAILE,GAJK,EAKL,IAAAM,uBAAA,EAAeT,OAAf,aAAeA,OAAf,uBAAeA,OAAO,CAAEQ,QAAxB,CALK,CAAP;AAOD;;eAEcZ,iB"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ const serializeDate = date => date ? date.toISOString() : new Date(0).toISOString();
9
+
10
+ var _default = serializeDate;
11
+ exports.default = _default;
12
+ //# sourceMappingURL=serializeDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["serializeDate","date","toISOString","Date"],"sources":["serializeDate.ts"],"sourcesContent":["const serializeDate = (date?: Date | null): string => (date ? date.toISOString() : new Date(0).toISOString())\n\nexport default serializeDate\n"],"mappings":";;;;;;;AAAA,MAAMA,aAAa,GAAIC,IAAD,IAAiCA,IAAI,GAAGA,IAAI,CAACC,WAAL,EAAH,GAAwB,IAAIC,IAAJ,CAAS,CAAT,EAAYD,WAAZ,EAAnF;;eAEeF,a"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _ = require("..");
9
+
10
+ var _nativeTypes = _interopRequireDefault(require("../native-types"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ const subscribeToChanges = async (identifier, callback) => {
15
+ const subscription = _.EventEmitter.addListener('onChange', _ref => {
16
+ let {
17
+ typeIdentifier
18
+ } = _ref;
19
+
20
+ if (typeIdentifier === identifier) {
21
+ callback();
22
+ }
23
+ });
24
+
25
+ const queryId = await _nativeTypes.default.subscribeToObserverQuery(identifier).catch(async error => {
26
+ subscription.remove();
27
+ return Promise.reject(error);
28
+ });
29
+ return async () => {
30
+ subscription.remove();
31
+ return _nativeTypes.default.unsubscribeQuery(queryId);
32
+ };
33
+ };
34
+
35
+ var _default = subscribeToChanges;
36
+ exports.default = _default;
37
+ //# sourceMappingURL=subscribeToChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["subscribeToChanges","identifier","callback","subscription","EventEmitter","addListener","typeIdentifier","queryId","Native","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery"],"sources":["subscribeToChanges.ts"],"sourcesContent":["import { EventEmitter } from '..'\nimport Native from '../native-types'\n\nimport type { HKSampleTypeIdentifier } from '..'\n\nconst subscribeToChanges = async (\n identifier: HKSampleTypeIdentifier,\n callback: () => void,\n) => {\n const subscription = EventEmitter.addListener(\n 'onChange',\n ({ typeIdentifier }) => {\n if (typeIdentifier === identifier) {\n callback()\n }\n },\n )\n\n const queryId = await Native.subscribeToObserverQuery(identifier).catch(\n async (error) => {\n subscription.remove()\n return Promise.reject(error)\n },\n )\n\n return async () => {\n subscription.remove()\n return Native.unsubscribeQuery(queryId)\n }\n}\n\nexport default subscribeToChanges\n"],"mappings":";;;;;;;AAAA;;AACA;;;;AAIA,MAAMA,kBAAkB,GAAG,OACzBC,UADyB,EAEzBC,QAFyB,KAGtB;EACH,MAAMC,YAAY,GAAGC,cAAA,CAAaC,WAAb,CACnB,UADmB,EAEnB,QAAwB;IAAA,IAAvB;MAAEC;IAAF,CAAuB;;IACtB,IAAIA,cAAc,KAAKL,UAAvB,EAAmC;MACjCC,QAAQ;IACT;EACF,CANkB,CAArB;;EASA,MAAMK,OAAO,GAAG,MAAMC,oBAAA,CAAOC,wBAAP,CAAgCR,UAAhC,EAA4CS,KAA5C,CACpB,MAAOC,KAAP,IAAiB;IACfR,YAAY,CAACS,MAAb;IACA,OAAOC,OAAO,CAACC,MAAR,CAAeH,KAAf,CAAP;EACD,CAJmB,CAAtB;EAOA,OAAO,YAAY;IACjBR,YAAY,CAACS,MAAb;IACA,OAAOJ,oBAAA,CAAOO,gBAAP,CAAwBR,OAAxB,CAAP;EACD,CAHD;AAID,CAxBD;;eA0BeP,kB"}
@@ -0,0 +1,29 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import getRequestStatusForAuthorization from '../utils/getRequestStatusForAuthorization';
3
+ import requestAuthorization from '../utils/requestAuthorization';
4
+
5
+ const useHealthkitAuthorization = (read, write) => {
6
+ const [status, setStatus] = useState(null);
7
+ const readMemo = useRef(read);
8
+ const writeMemo = useRef(write);
9
+ useEffect(() => {
10
+ readMemo.current = read;
11
+ writeMemo.current = write;
12
+ }, [read, write]);
13
+ const refreshAuthStatus = useCallback(async () => {
14
+ const auth = await getRequestStatusForAuthorization(readMemo.current, writeMemo.current);
15
+ setStatus(auth);
16
+ return auth;
17
+ }, []);
18
+ const request = useCallback(async () => {
19
+ await requestAuthorization(readMemo.current, writeMemo.current);
20
+ return refreshAuthStatus();
21
+ }, [refreshAuthStatus]);
22
+ useEffect(() => {
23
+ void refreshAuthStatus();
24
+ }, [refreshAuthStatus]);
25
+ return [status, request];
26
+ };
27
+
28
+ export default useHealthkitAuthorization;
29
+ //# sourceMappingURL=useHealthkitAuthorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","getRequestStatusForAuthorization","requestAuthorization","useHealthkitAuthorization","read","write","status","setStatus","readMemo","writeMemo","current","refreshAuthStatus","auth","request"],"sources":["useHealthkitAuthorization.ts"],"sourcesContent":["import {\n useCallback, useEffect, useRef, useState,\n} from 'react'\n\nimport getRequestStatusForAuthorization from '../utils/getRequestStatusForAuthorization'\nimport requestAuthorization from '../utils/requestAuthorization'\n\nimport type { HealthkitReadAuthorization, HealthkitWriteAuthorization, HKAuthorizationRequestStatus } from '../native-types'\n\nconst useHealthkitAuthorization = (read: readonly HealthkitReadAuthorization[], write?: readonly HealthkitWriteAuthorization[]) => {\n const [status, setStatus] = useState<HKAuthorizationRequestStatus | null>(null)\n\n const readMemo = useRef(read)\n const writeMemo = useRef(write)\n\n useEffect(() => {\n readMemo.current = read\n writeMemo.current = write\n }, [read, write])\n\n const refreshAuthStatus = useCallback(async () => {\n const auth = await getRequestStatusForAuthorization(readMemo.current, writeMemo.current)\n setStatus(auth)\n return auth\n }, [])\n\n const request = useCallback(async () => {\n await requestAuthorization(readMemo.current, writeMemo.current)\n return refreshAuthStatus()\n }, [refreshAuthStatus])\n\n useEffect(() => {\n void refreshAuthStatus()\n }, [refreshAuthStatus])\n\n return [status, request] as const\n}\n\nexport default useHealthkitAuthorization\n"],"mappings":"AAAA,SACEA,WADF,EACeC,SADf,EAC0BC,MAD1B,EACkCC,QADlC,QAEO,OAFP;AAIA,OAAOC,gCAAP,MAA6C,2CAA7C;AACA,OAAOC,oBAAP,MAAiC,+BAAjC;;AAIA,MAAMC,yBAAyB,GAAG,CAACC,IAAD,EAA8CC,KAA9C,KAAiG;EACjI,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsBP,QAAQ,CAAsC,IAAtC,CAApC;EAEA,MAAMQ,QAAQ,GAAGT,MAAM,CAACK,IAAD,CAAvB;EACA,MAAMK,SAAS,GAAGV,MAAM,CAACM,KAAD,CAAxB;EAEAP,SAAS,CAAC,MAAM;IACdU,QAAQ,CAACE,OAAT,GAAmBN,IAAnB;IACAK,SAAS,CAACC,OAAV,GAAoBL,KAApB;EACD,CAHQ,EAGN,CAACD,IAAD,EAAOC,KAAP,CAHM,CAAT;EAKA,MAAMM,iBAAiB,GAAGd,WAAW,CAAC,YAAY;IAChD,MAAMe,IAAI,GAAG,MAAMX,gCAAgC,CAACO,QAAQ,CAACE,OAAV,EAAmBD,SAAS,CAACC,OAA7B,CAAnD;IACAH,SAAS,CAACK,IAAD,CAAT;IACA,OAAOA,IAAP;EACD,CAJoC,EAIlC,EAJkC,CAArC;EAMA,MAAMC,OAAO,GAAGhB,WAAW,CAAC,YAAY;IACtC,MAAMK,oBAAoB,CAACM,QAAQ,CAACE,OAAV,EAAmBD,SAAS,CAACC,OAA7B,CAA1B;IACA,OAAOC,iBAAiB,EAAxB;EACD,CAH0B,EAGxB,CAACA,iBAAD,CAHwB,CAA3B;EAKAb,SAAS,CAAC,MAAM;IACd,KAAKa,iBAAiB,EAAtB;EACD,CAFQ,EAEN,CAACA,iBAAD,CAFM,CAAT;EAIA,OAAO,CAACL,MAAD,EAASO,OAAT,CAAP;AACD,CA3BD;;AA6BA,eAAeV,yBAAf"}
@@ -0,0 +1,18 @@
1
+ import { useEffect, useState } from 'react';
2
+ import Native from '../native-types';
3
+
4
+ const useIsHealthDataAvailable = () => {
5
+ const [isAvailable, setIsAvailable] = useState(null);
6
+ useEffect(() => {
7
+ const init = async () => {
8
+ const res = await Native.isHealthDataAvailable();
9
+ setIsAvailable(res);
10
+ };
11
+
12
+ void init();
13
+ }, []);
14
+ return isAvailable;
15
+ };
16
+
17
+ export default useIsHealthDataAvailable;
18
+ //# sourceMappingURL=useIsHealthDataAvailable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","Native","useIsHealthDataAvailable","isAvailable","setIsAvailable","init","res","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,SAASA,SAAT,EAAoBC,QAApB,QAAoC,OAApC;AAEA,OAAOC,MAAP,MAAmB,iBAAnB;;AAEA,MAAMC,wBAAwB,GAAG,MAAM;EACrC,MAAM,CAACC,WAAD,EAAcC,cAAd,IAAgCJ,QAAQ,CAAiB,IAAjB,CAA9C;EACAD,SAAS,CAAC,MAAM;IACd,MAAMM,IAAI,GAAG,YAAY;MACvB,MAAMC,GAAG,GAAG,MAAML,MAAM,CAACM,qBAAP,EAAlB;MACAH,cAAc,CAACE,GAAD,CAAd;IACD,CAHD;;IAIA,KAAKD,IAAI,EAAT;EACD,CANQ,EAMN,EANM,CAAT;EAOA,OAAOF,WAAP;AACD,CAVD;;AAYA,eAAeD,wBAAf"}
@@ -0,0 +1,15 @@
1
+ import { useCallback, useState } from 'react';
2
+ import getMostRecentCategorySample from '../utils/getMostRecentCategorySample';
3
+ import useSubscribeToChanges from './useSubscribeToChanges';
4
+
5
+ function useMostRecentCategorySample(identifier) {
6
+ const [category, setCategory] = useState(null);
7
+ const updater = useCallback(() => {
8
+ void getMostRecentCategorySample(identifier).then(setCategory);
9
+ }, [identifier]);
10
+ useSubscribeToChanges(identifier, updater);
11
+ return category;
12
+ }
13
+
14
+ export default useMostRecentCategorySample;
15
+ //# sourceMappingURL=useMostRecentCategorySample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useState","getMostRecentCategorySample","useSubscribeToChanges","useMostRecentCategorySample","identifier","category","setCategory","updater","then"],"sources":["useMostRecentCategorySample.ts"],"sourcesContent":["import { useCallback, useState } from 'react'\n\nimport getMostRecentCategorySample from '../utils/getMostRecentCategorySample'\nimport useSubscribeToChanges from './useSubscribeToChanges'\n\nimport type { HKCategoryTypeIdentifier } from '../native-types'\nimport type { HKCategorySample } from '../types'\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,SAASA,WAAT,EAAsBC,QAAtB,QAAsC,OAAtC;AAEA,OAAOC,2BAAP,MAAwC,sCAAxC;AACA,OAAOC,qBAAP,MAAkC,yBAAlC;;AAKA,SAASC,2BAAT,CAEEC,UAFF,EAEyB;EACvB,MAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BN,QAAQ,CACtC,IADsC,CAAxC;EAGA,MAAMO,OAAO,GAAGR,WAAW,CAAC,MAAM;IAChC,KAAKE,2BAA2B,CAACG,UAAD,CAA3B,CAAwCI,IAAxC,CAA6CF,WAA7C,CAAL;EACD,CAF0B,EAExB,CAACF,UAAD,CAFwB,CAA3B;EAIAF,qBAAqB,CAACE,UAAD,EAAaG,OAAb,CAArB;EAEA,OAAOF,QAAP;AACD;;AAED,eAAeF,2BAAf"}
@@ -0,0 +1,30 @@
1
+ import { useEffect, useState } from 'react';
2
+ import ensureUnit from '../utils/ensureUnit';
3
+ import getMostRecentQuantitySample from '../utils/getMostRecentQuantitySample';
4
+ import subscribeToChanges from '../utils/subscribeToChanges';
5
+
6
+ function useMostRecentQuantitySample(identifier, unit) {
7
+ const [lastSample, setLastSample] = useState(null);
8
+ useEffect(() => {
9
+ let cancelSubscription;
10
+
11
+ const init = async () => {
12
+ const actualUnit = await ensureUnit(identifier, unit);
13
+ cancelSubscription = await subscribeToChanges(identifier, async () => {
14
+ const value = await getMostRecentQuantitySample(identifier, actualUnit);
15
+ setLastSample(value);
16
+ });
17
+ };
18
+
19
+ void init();
20
+ return () => {
21
+ var _cancelSubscription;
22
+
23
+ void ((_cancelSubscription = cancelSubscription) === null || _cancelSubscription === void 0 ? void 0 : _cancelSubscription());
24
+ };
25
+ }, [identifier, unit]);
26
+ return lastSample;
27
+ }
28
+
29
+ export default useMostRecentQuantitySample;
30
+ //# sourceMappingURL=useMostRecentQuantitySample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","ensureUnit","getMostRecentQuantitySample","subscribeToChanges","useMostRecentQuantitySample","identifier","unit","lastSample","setLastSample","cancelSubscription","init","actualUnit","value"],"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\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,SAASA,SAAT,EAAoBC,QAApB,QAAoC,OAApC;AAEA,OAAOC,UAAP,MAAuB,qBAAvB;AACA,OAAOC,2BAAP,MAAwC,sCAAxC;AACA,OAAOC,kBAAP,MAA+B,6BAA/B;;AAKA,SAASC,2BAAT,CAGEC,UAHF,EAG2BC,IAH3B,EAGyC;EACvC,MAAM,CAACC,UAAD,EAAaC,aAAb,IAA8BR,QAAQ,CAElC,IAFkC,CAA5C;EAIAD,SAAS,CAAC,MAAM;IACd,IAAIU,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvB,MAAMC,UAAU,GAAG,MAAMV,UAAU,CAACI,UAAD,EAAaC,IAAb,CAAnC;MAEAG,kBAAkB,GAAG,MAAMN,kBAAkB,CAACE,UAAD,EAAa,YAAY;QACpE,MAAMO,KAAK,GAAG,MAAMV,2BAA2B,CAACG,UAAD,EAAaM,UAAb,CAA/C;QACAH,aAAa,CAACI,KAAD,CAAb;MACD,CAH4C,CAA7C;IAID,CAPD;;IAQA,KAAKF,IAAI,EAAT;IAEA,OAAO,MAAM;MAAA;;MACX,6BAAKD,kBAAL,wDAAK,qBAAL;IACD,CAFD;EAGD,CAhBQ,EAgBN,CAACJ,UAAD,EAAaC,IAAb,CAhBM,CAAT;EAkBA,OAAOC,UAAP;AACD;;AAED,eAAeH,2BAAf"}
@@ -0,0 +1,47 @@
1
+ import { useEffect, useState, useRef, useCallback } from 'react';
2
+ import getMostRecentWorkout from '../utils/getMostRecentWorkout';
3
+ import getPreferredUnitsTyped from '../utils/getPreferredUnitsTyped';
4
+ import subscribeToChanges from '../utils/subscribeToChanges';
5
+
6
+ function useMostRecentWorkout(options) {
7
+ const [workout, setWorkout] = useState(null);
8
+ const optionsRef = useRef(options);
9
+ useEffect(() => {
10
+ optionsRef.current = options;
11
+ }, [options]);
12
+ const update = useCallback(async () => {
13
+ const {
14
+ energyUnit,
15
+ distanceUnit
16
+ } = await getPreferredUnitsTyped(optionsRef.current);
17
+ console.log({
18
+ energyUnit,
19
+ distanceUnit
20
+ });
21
+ setWorkout(await getMostRecentWorkout({
22
+ energyUnit,
23
+ distanceUnit
24
+ }));
25
+ }, []);
26
+ useEffect(() => {
27
+ void update();
28
+ }, [update]);
29
+ useEffect(() => {
30
+ let cancelSubscription;
31
+
32
+ const init = async () => {
33
+ cancelSubscription = await subscribeToChanges('HKWorkoutTypeIdentifier', update);
34
+ };
35
+
36
+ void init();
37
+ return () => {
38
+ var _cancelSubscription;
39
+
40
+ void ((_cancelSubscription = cancelSubscription) === null || _cancelSubscription === void 0 ? void 0 : _cancelSubscription());
41
+ };
42
+ }, [update]);
43
+ return workout;
44
+ }
45
+
46
+ export default useMostRecentWorkout;
47
+ //# sourceMappingURL=useMostRecentWorkout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","useRef","useCallback","getMostRecentWorkout","getPreferredUnitsTyped","subscribeToChanges","useMostRecentWorkout","options","workout","setWorkout","optionsRef","current","update","energyUnit","distanceUnit","console","log","cancelSubscription","init"],"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,SACEA,SADF,EACaC,QADb,EACuBC,MADvB,EAC+BC,WAD/B,QAEO,OAFP;AAIA,OAAOC,oBAAP,MAAiC,+BAAjC;AACA,OAAOC,sBAAP,MAAmC,iCAAnC;AACA,OAAOC,kBAAP,MAA+B,6BAA/B;;AAKA,SAASC,oBAAT,CAGEC,OAHF,EAGkF;EAChF,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwBT,QAAQ,CAAuC,IAAvC,CAAtC;EAEA,MAAMU,UAAU,GAAGT,MAAM,CAACM,OAAD,CAAzB;EAEAR,SAAS,CAAC,MAAM;IACdW,UAAU,CAACC,OAAX,GAAqBJ,OAArB;EACD,CAFQ,EAEN,CAACA,OAAD,CAFM,CAAT;EAIA,MAAMK,MAAM,GAAGV,WAAW,CAAC,YAAY;IACrC,MAAM;MAAEW,UAAF;MAAcC;IAAd,IAA+B,MAAMV,sBAAsB,CAC/DM,UAAU,CAACC,OADoD,CAAjE;IAIAI,OAAO,CAACC,GAAR,CAAY;MAAEH,UAAF;MAAcC;IAAd,CAAZ;IAEAL,UAAU,CAAC,MAAMN,oBAAoB,CAAC;MACpCU,UADoC;MAEpCC;IAFoC,CAAD,CAA3B,CAAV;EAID,CAXyB,EAWvB,EAXuB,CAA1B;EAaAf,SAAS,CAAC,MAAM;IACd,KAAKa,MAAM,EAAX;EACD,CAFQ,EAEN,CAACA,MAAD,CAFM,CAAT;EAIAb,SAAS,CAAC,MAAM;IACd,IAAIkB,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvBD,kBAAkB,GAAG,MAAMZ,kBAAkB,CAC3C,yBAD2C,EAE3CO,MAF2C,CAA7C;IAID,CALD;;IAMA,KAAKM,IAAI,EAAT;IAEA,OAAO,MAAM;MAAA;;MACX,6BAAKD,kBAAL,wDAAK,qBAAL;IACD,CAFD;EAGD,CAdQ,EAcN,CAACL,MAAD,CAdM,CAAT;EAgBA,OAAOJ,OAAP;AACD;;AAED,eAAeF,oBAAf"}
@@ -0,0 +1,23 @@
1
+ import { useState, useEffect, useCallback, useRef } from 'react';
2
+ import queryStatisticsForQuantity from '../utils/queryStatisticsForQuantity';
3
+ import useSubscribeToChanges from './useSubscribeToChanges';
4
+
5
+ function useStatisticsForQuantity(identifier, options, from, to, unit) {
6
+ const [result, setResult] = useState(null);
7
+ const optionsRef = useRef(options);
8
+ useEffect(() => {
9
+ optionsRef.current = options;
10
+ }, [options]);
11
+ const update = useCallback(async () => {
12
+ const res = await queryStatisticsForQuantity(identifier, optionsRef.current, from, to, unit);
13
+ setResult(res);
14
+ }, [identifier, from, to, unit]);
15
+ useEffect(() => {
16
+ void update();
17
+ }, [update]);
18
+ useSubscribeToChanges(identifier, update);
19
+ return result;
20
+ }
21
+
22
+ export default useStatisticsForQuantity;
23
+ //# sourceMappingURL=useStatisticsForQuantity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useEffect","useCallback","useRef","queryStatisticsForQuantity","useSubscribeToChanges","useStatisticsForQuantity","identifier","options","from","to","unit","result","setResult","optionsRef","current","update","res"],"sources":["useStatisticsForQuantity.ts"],"sourcesContent":["import {\n useState, useEffect, useCallback, useRef,\n} from 'react'\n\nimport queryStatisticsForQuantity from '../utils/queryStatisticsForQuantity'\nimport useSubscribeToChanges from './useSubscribeToChanges'\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,SACEA,QADF,EACYC,SADZ,EACuBC,WADvB,EACoCC,MADpC,QAEO,OAFP;AAIA,OAAOC,0BAAP,MAAuC,qCAAvC;AACA,OAAOC,qBAAP,MAAkC,yBAAlC;;AAKA,SAASC,wBAAT,CACEC,UADF,EAEEC,OAFF,EAGEC,IAHF,EAIEC,EAJF,EAKEC,IALF,EAME;EACA,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsBb,QAAQ,CAAqD,IAArD,CAApC;EAEA,MAAMc,UAAU,GAAGX,MAAM,CAACK,OAAD,CAAzB;EAEAP,SAAS,CAAC,MAAM;IACda,UAAU,CAACC,OAAX,GAAqBP,OAArB;EACD,CAFQ,EAEN,CAACA,OAAD,CAFM,CAAT;EAIA,MAAMQ,MAAM,GAAGd,WAAW,CAAC,YAAY;IACrC,MAAMe,GAAG,GAAG,MAAMb,0BAA0B,CAACG,UAAD,EAAaO,UAAU,CAACC,OAAxB,EAAiCN,IAAjC,EAAuCC,EAAvC,EAA2CC,IAA3C,CAA5C;IACAE,SAAS,CAACI,GAAD,CAAT;EACD,CAHyB,EAGvB,CACDV,UADC,EACWE,IADX,EACiBC,EADjB,EACqBC,IADrB,CAHuB,CAA1B;EAOAV,SAAS,CAAC,MAAM;IACd,KAAKe,MAAM,EAAX;EACD,CAFQ,EAEN,CAACA,MAAD,CAFM,CAAT;EAIAX,qBAAqB,CAACE,UAAD,EAAaS,MAAb,CAArB;EAEA,OAAOJ,MAAP;AACD;;AAED,eAAeN,wBAAf"}
@@ -0,0 +1,26 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import subscribeToChanges from '../utils/subscribeToChanges';
3
+
4
+ function useSubscribeToChanges(identifier, onChange) {
5
+ const onChangeRef = useRef(onChange);
6
+ useEffect(() => {
7
+ onChangeRef.current = onChange;
8
+ }, [onChange]);
9
+ useEffect(() => {
10
+ let cancelSubscription;
11
+
12
+ const init = async () => {
13
+ cancelSubscription = await subscribeToChanges(identifier, onChangeRef.current);
14
+ };
15
+
16
+ void init();
17
+ return () => {
18
+ var _cancelSubscription;
19
+
20
+ void ((_cancelSubscription = cancelSubscription) === null || _cancelSubscription === void 0 ? void 0 : _cancelSubscription());
21
+ };
22
+ }, [identifier]);
23
+ }
24
+
25
+ export default useSubscribeToChanges;
26
+ //# sourceMappingURL=useSubscribeToChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","subscribeToChanges","useSubscribeToChanges","identifier","onChange","onChangeRef","current","cancelSubscription","init"],"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,SAASA,SAAT,EAAoBC,MAApB,QAAkC,OAAlC;AAEA,OAAOC,kBAAP,MAA+B,6BAA/B;;AAIA,SAASC,qBAAT,CACEC,UADF,EAEEC,QAFF,EAGQ;EACN,MAAMC,WAAW,GAAGL,MAAM,CAACI,QAAD,CAA1B;EAEAL,SAAS,CAAC,MAAM;IACdM,WAAW,CAACC,OAAZ,GAAsBF,QAAtB;EACD,CAFQ,EAEN,CAACA,QAAD,CAFM,CAAT;EAIAL,SAAS,CAAC,MAAM;IACd,IAAIQ,kBAAJ;;IAEA,MAAMC,IAAI,GAAG,YAAY;MACvBD,kBAAkB,GAAG,MAAMN,kBAAkB,CAACE,UAAD,EAAaE,WAAW,CAACC,OAAzB,CAA7C;IACD,CAFD;;IAGA,KAAKE,IAAI,EAAT;IAEA,OAAO,MAAM;MAAA;;MACX,6BAAKD,kBAAL,wDAAK,qBAAL;IACD,CAFD;EAGD,CAXQ,EAWN,CAACJ,UAAD,CAXM,CAAT;AAYD;;AAED,eAAeD,qBAAf"}