@kingstinct/react-native-healthkit 6.1.0 → 7.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 (268) hide show
  1. package/README.md +7 -5
  2. package/app.plugin.js +69 -0
  3. package/ios/Constants.swift +28 -0
  4. package/ios/Helpers.swift +152 -0
  5. package/ios/ReactNativeHealthkit.m +24 -0
  6. package/ios/ReactNativeHealthkit.swift +534 -728
  7. package/ios/Serializers.swift +206 -0
  8. package/lib/commonjs/hooks/useHealthkitAuthorization.js +0 -6
  9. package/lib/commonjs/hooks/useHealthkitAuthorization.js.map +1 -1
  10. package/lib/commonjs/hooks/useHealthkitAuthorization.test.js +2 -9
  11. package/lib/commonjs/hooks/useHealthkitAuthorization.test.js.map +1 -1
  12. package/lib/commonjs/hooks/useIsHealthDataAvailable.js +0 -6
  13. package/lib/commonjs/hooks/useIsHealthDataAvailable.js.map +1 -1
  14. package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js +1 -6
  15. package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js.map +1 -1
  16. package/lib/commonjs/hooks/useMostRecentCategorySample.js +1 -7
  17. package/lib/commonjs/hooks/useMostRecentCategorySample.js.map +1 -1
  18. package/lib/commonjs/hooks/useMostRecentQuantitySample.js +0 -10
  19. package/lib/commonjs/hooks/useMostRecentQuantitySample.js.map +1 -1
  20. package/lib/commonjs/hooks/useMostRecentWorkout.js +0 -10
  21. package/lib/commonjs/hooks/useMostRecentWorkout.js.map +1 -1
  22. package/lib/commonjs/hooks/useSources.js +0 -5
  23. package/lib/commonjs/hooks/useSources.js.map +1 -1
  24. package/lib/commonjs/hooks/useStatisticsForQuantity.js +1 -7
  25. package/lib/commonjs/hooks/useStatisticsForQuantity.js.map +1 -1
  26. package/lib/commonjs/hooks/useSubscribeToChanges.js +0 -8
  27. package/lib/commonjs/hooks/useSubscribeToChanges.js.map +1 -1
  28. package/lib/commonjs/index.ios.js +6 -33
  29. package/lib/commonjs/index.ios.js.map +1 -1
  30. package/lib/commonjs/index.js +7 -11
  31. package/lib/commonjs/index.js.map +1 -1
  32. package/lib/commonjs/jest.setup.js +3 -1
  33. package/lib/commonjs/jest.setup.js.map +1 -1
  34. package/lib/commonjs/native-types.js +166 -250
  35. package/lib/commonjs/native-types.js.map +1 -1
  36. package/lib/commonjs/test-utils.js +1 -3
  37. package/lib/commonjs/test-utils.js.map +1 -1
  38. package/lib/commonjs/types.js +0 -2
  39. package/lib/commonjs/types.js.map +1 -1
  40. package/lib/commonjs/utils/deleteQuantitySample.js +0 -4
  41. package/lib/commonjs/utils/deleteQuantitySample.js.map +1 -1
  42. package/lib/commonjs/utils/deleteSamples.js +0 -4
  43. package/lib/commonjs/utils/deleteSamples.js.map +1 -1
  44. package/lib/commonjs/utils/deserializeCategorySample.js +2 -3
  45. package/lib/commonjs/utils/deserializeCategorySample.js.map +1 -1
  46. package/lib/commonjs/utils/deserializeCategorySample.test.js +3 -5
  47. package/lib/commonjs/utils/deserializeCategorySample.test.js.map +1 -1
  48. package/lib/commonjs/utils/deserializeCorrelation.js +2 -7
  49. package/lib/commonjs/utils/deserializeCorrelation.js.map +1 -1
  50. package/lib/commonjs/utils/deserializeHeartbeatSeriesSample.js +2 -3
  51. package/lib/commonjs/utils/deserializeHeartbeatSeriesSample.js.map +1 -1
  52. package/lib/commonjs/utils/deserializeSample.js +2 -3
  53. package/lib/commonjs/utils/deserializeSample.js.map +1 -1
  54. package/lib/commonjs/utils/deserializeWorkout.js +2 -3
  55. package/lib/commonjs/utils/deserializeWorkout.js.map +1 -1
  56. package/lib/commonjs/utils/ensureMetadata.js +0 -2
  57. package/lib/commonjs/utils/ensureMetadata.js.map +1 -1
  58. package/lib/commonjs/utils/ensureUnit.js +0 -5
  59. package/lib/commonjs/utils/ensureUnit.js.map +1 -1
  60. package/lib/commonjs/utils/getDateOfBirth.js +0 -4
  61. package/lib/commonjs/utils/getDateOfBirth.js.map +1 -1
  62. package/lib/commonjs/utils/getMostRecentCategorySample.js +1 -5
  63. package/lib/commonjs/utils/getMostRecentCategorySample.js.map +1 -1
  64. package/lib/commonjs/utils/getMostRecentQuantitySample.js +1 -5
  65. package/lib/commonjs/utils/getMostRecentQuantitySample.js.map +1 -1
  66. package/lib/commonjs/utils/getMostRecentWorkout.js +0 -4
  67. package/lib/commonjs/utils/getMostRecentWorkout.js.map +1 -1
  68. package/lib/commonjs/utils/getPreferredUnit.js +0 -4
  69. package/lib/commonjs/utils/getPreferredUnit.js.map +1 -1
  70. package/lib/commonjs/utils/getPreferredUnits.js +0 -4
  71. package/lib/commonjs/utils/getPreferredUnits.js.map +1 -1
  72. package/lib/commonjs/utils/getPreferredUnitsTyped.js +0 -11
  73. package/lib/commonjs/utils/getPreferredUnitsTyped.js.map +1 -1
  74. package/lib/commonjs/utils/getRequestStatusForAuthorization.js +4 -6
  75. package/lib/commonjs/utils/getRequestStatusForAuthorization.js.map +1 -1
  76. package/lib/commonjs/utils/prepareOptions.js +0 -4
  77. package/lib/commonjs/utils/prepareOptions.js.map +1 -1
  78. package/lib/commonjs/utils/queryCategorySamples.js +3 -14
  79. package/lib/commonjs/utils/queryCategorySamples.js.map +1 -1
  80. package/lib/commonjs/utils/queryCategorySamplesWithAnchor.js +22 -0
  81. package/lib/commonjs/utils/queryCategorySamplesWithAnchor.js.map +1 -0
  82. package/lib/commonjs/utils/queryCorrelationSamples.js +1 -7
  83. package/lib/commonjs/utils/queryCorrelationSamples.js.map +1 -1
  84. package/lib/commonjs/utils/queryHeartbeatSeriesSamples.js +3 -13
  85. package/lib/commonjs/utils/queryHeartbeatSeriesSamples.js.map +1 -1
  86. package/lib/commonjs/utils/queryHeartbeatSeriesSamplesWithAnchor.js +22 -0
  87. package/lib/commonjs/utils/queryHeartbeatSeriesSamplesWithAnchor.js.map +1 -0
  88. package/lib/commonjs/utils/queryQuantitySamples.js +3 -15
  89. package/lib/commonjs/utils/queryQuantitySamples.js.map +1 -1
  90. package/lib/commonjs/utils/queryQuantitySamplesWithAnchor.js +24 -0
  91. package/lib/commonjs/utils/queryQuantitySamplesWithAnchor.js.map +1 -0
  92. package/lib/commonjs/utils/querySources.js +0 -4
  93. package/lib/commonjs/utils/querySources.js.map +1 -1
  94. package/lib/commonjs/utils/queryStatisticsForQuantity.js +3 -7
  95. package/lib/commonjs/utils/queryStatisticsForQuantity.js.map +1 -1
  96. package/lib/commonjs/utils/queryWorkouts.js +1 -8
  97. package/lib/commonjs/utils/queryWorkouts.js.map +1 -1
  98. package/lib/commonjs/utils/requestAuthorization.js +4 -6
  99. package/lib/commonjs/utils/requestAuthorization.js.map +1 -1
  100. package/lib/commonjs/utils/saveCategorySample.js +0 -4
  101. package/lib/commonjs/utils/saveCategorySample.js.map +1 -1
  102. package/lib/commonjs/utils/saveCorrelationSample.js +3 -7
  103. package/lib/commonjs/utils/saveCorrelationSample.js.map +1 -1
  104. package/lib/commonjs/utils/saveQuantitySample.js +0 -4
  105. package/lib/commonjs/utils/saveQuantitySample.js.map +1 -1
  106. package/lib/commonjs/utils/saveWorkoutSample.js +3 -8
  107. package/lib/commonjs/utils/saveWorkoutSample.js.map +1 -1
  108. package/lib/commonjs/utils/serializeDate.js +0 -2
  109. package/lib/commonjs/utils/serializeDate.js.map +1 -1
  110. package/lib/commonjs/utils/serializeDate.test.js +0 -2
  111. package/lib/commonjs/utils/serializeDate.test.js.map +1 -1
  112. package/lib/commonjs/utils/subscribeToChanges.js +0 -7
  113. package/lib/commonjs/utils/subscribeToChanges.js.map +1 -1
  114. package/lib/module/hooks/useHealthkitAuthorization.js +0 -2
  115. package/lib/module/hooks/useHealthkitAuthorization.js.map +1 -1
  116. package/lib/module/hooks/useHealthkitAuthorization.test.js +1 -1
  117. package/lib/module/hooks/useHealthkitAuthorization.test.js.map +1 -1
  118. package/lib/module/hooks/useIsHealthDataAvailable.js +0 -3
  119. package/lib/module/hooks/useIsHealthDataAvailable.js.map +1 -1
  120. package/lib/module/hooks/useIsHealthDataAvailable.test.js +1 -1
  121. package/lib/module/hooks/useIsHealthDataAvailable.test.js.map +1 -1
  122. package/lib/module/hooks/useMostRecentCategorySample.js +1 -3
  123. package/lib/module/hooks/useMostRecentCategorySample.js.map +1 -1
  124. package/lib/module/hooks/useMostRecentQuantitySample.js +0 -5
  125. package/lib/module/hooks/useMostRecentQuantitySample.js.map +1 -1
  126. package/lib/module/hooks/useMostRecentWorkout.js +0 -5
  127. package/lib/module/hooks/useMostRecentWorkout.js.map +1 -1
  128. package/lib/module/hooks/useSources.js +0 -2
  129. package/lib/module/hooks/useSources.js.map +1 -1
  130. package/lib/module/hooks/useStatisticsForQuantity.js +1 -3
  131. package/lib/module/hooks/useStatisticsForQuantity.js.map +1 -1
  132. package/lib/module/hooks/useSubscribeToChanges.js +0 -5
  133. package/lib/module/hooks/useSubscribeToChanges.js.map +1 -1
  134. package/lib/module/index.ios.js +6 -0
  135. package/lib/module/index.ios.js.map +1 -1
  136. package/lib/module/index.js +8 -8
  137. package/lib/module/index.js.map +1 -1
  138. package/lib/module/jest.setup.js +3 -0
  139. package/lib/module/jest.setup.js.map +1 -1
  140. package/lib/module/native-types.js +134 -201
  141. package/lib/module/native-types.js.map +1 -1
  142. package/lib/module/test-utils.js +0 -2
  143. package/lib/module/test-utils.js.map +1 -1
  144. package/lib/module/types.js.map +1 -1
  145. package/lib/module/utils/deleteQuantitySample.js +0 -2
  146. package/lib/module/utils/deleteQuantitySample.js.map +1 -1
  147. package/lib/module/utils/deleteSamples.js +0 -2
  148. package/lib/module/utils/deleteSamples.js.map +1 -1
  149. package/lib/module/utils/deserializeCategorySample.js +2 -2
  150. package/lib/module/utils/deserializeCategorySample.js.map +1 -1
  151. package/lib/module/utils/deserializeCategorySample.test.js +3 -2
  152. package/lib/module/utils/deserializeCategorySample.test.js.map +1 -1
  153. package/lib/module/utils/deserializeCorrelation.js +2 -4
  154. package/lib/module/utils/deserializeCorrelation.js.map +1 -1
  155. package/lib/module/utils/deserializeHeartbeatSeriesSample.js +2 -2
  156. package/lib/module/utils/deserializeHeartbeatSeriesSample.js.map +1 -1
  157. package/lib/module/utils/deserializeSample.js +2 -2
  158. package/lib/module/utils/deserializeSample.js.map +1 -1
  159. package/lib/module/utils/deserializeWorkout.js +2 -2
  160. package/lib/module/utils/deserializeWorkout.js.map +1 -1
  161. package/lib/module/utils/ensureMetadata.js +0 -1
  162. package/lib/module/utils/ensureMetadata.js.map +1 -1
  163. package/lib/module/utils/ensureUnit.js +0 -3
  164. package/lib/module/utils/ensureUnit.js.map +1 -1
  165. package/lib/module/utils/getDateOfBirth.js +0 -2
  166. package/lib/module/utils/getDateOfBirth.js.map +1 -1
  167. package/lib/module/utils/getMostRecentCategorySample.js +1 -3
  168. package/lib/module/utils/getMostRecentCategorySample.js.map +1 -1
  169. package/lib/module/utils/getMostRecentQuantitySample.js +1 -3
  170. package/lib/module/utils/getMostRecentQuantitySample.js.map +1 -1
  171. package/lib/module/utils/getMostRecentWorkout.js +0 -2
  172. package/lib/module/utils/getMostRecentWorkout.js.map +1 -1
  173. package/lib/module/utils/getPreferredUnit.js +0 -2
  174. package/lib/module/utils/getPreferredUnit.js.map +1 -1
  175. package/lib/module/utils/getPreferredUnits.js +0 -2
  176. package/lib/module/utils/getPreferredUnits.js.map +1 -1
  177. package/lib/module/utils/getPreferredUnitsTyped.js +0 -8
  178. package/lib/module/utils/getPreferredUnitsTyped.js.map +1 -1
  179. package/lib/module/utils/getRequestStatusForAuthorization.js +4 -4
  180. package/lib/module/utils/getRequestStatusForAuthorization.js.map +1 -1
  181. package/lib/module/utils/prepareOptions.js +0 -2
  182. package/lib/module/utils/prepareOptions.js.map +1 -1
  183. package/lib/module/utils/queryCategorySamples.js +3 -10
  184. package/lib/module/utils/queryCategorySamples.js.map +1 -1
  185. package/lib/module/utils/queryCategorySamplesWithAnchor.js +14 -0
  186. package/lib/module/utils/queryCategorySamplesWithAnchor.js.map +1 -0
  187. package/lib/module/utils/queryCorrelationSamples.js +1 -3
  188. package/lib/module/utils/queryCorrelationSamples.js.map +1 -1
  189. package/lib/module/utils/queryHeartbeatSeriesSamples.js +3 -9
  190. package/lib/module/utils/queryHeartbeatSeriesSamples.js.map +1 -1
  191. package/lib/module/utils/queryHeartbeatSeriesSamplesWithAnchor.js +14 -0
  192. package/lib/module/utils/queryHeartbeatSeriesSamplesWithAnchor.js.map +1 -0
  193. package/lib/module/utils/queryQuantitySamples.js +3 -10
  194. package/lib/module/utils/queryQuantitySamples.js.map +1 -1
  195. package/lib/module/utils/queryQuantitySamplesWithAnchor.js +16 -0
  196. package/lib/module/utils/queryQuantitySamplesWithAnchor.js.map +1 -0
  197. package/lib/module/utils/querySources.js +0 -2
  198. package/lib/module/utils/querySources.js.map +1 -1
  199. package/lib/module/utils/queryStatisticsForQuantity.js +3 -4
  200. package/lib/module/utils/queryStatisticsForQuantity.js.map +1 -1
  201. package/lib/module/utils/queryWorkouts.js +1 -3
  202. package/lib/module/utils/queryWorkouts.js.map +1 -1
  203. package/lib/module/utils/requestAuthorization.js +4 -4
  204. package/lib/module/utils/requestAuthorization.js.map +1 -1
  205. package/lib/module/utils/saveCategorySample.js +0 -2
  206. package/lib/module/utils/saveCategorySample.js.map +1 -1
  207. package/lib/module/utils/saveCorrelationSample.js +3 -4
  208. package/lib/module/utils/saveCorrelationSample.js.map +1 -1
  209. package/lib/module/utils/saveQuantitySample.js +0 -2
  210. package/lib/module/utils/saveQuantitySample.js.map +1 -1
  211. package/lib/module/utils/saveWorkoutSample.js +3 -5
  212. package/lib/module/utils/saveWorkoutSample.js.map +1 -1
  213. package/lib/module/utils/serializeDate.js +0 -1
  214. package/lib/module/utils/serializeDate.js.map +1 -1
  215. package/lib/module/utils/serializeDate.test.js.map +1 -1
  216. package/lib/module/utils/subscribeToChanges.js +0 -3
  217. package/lib/module/utils/subscribeToChanges.js.map +1 -1
  218. package/lib/typescript/src/hooks/useMostRecentCategorySample.d.ts +2 -3
  219. package/lib/typescript/src/hooks/useMostRecentQuantitySample.d.ts +2 -3
  220. package/lib/typescript/src/index.ios.d.ts +4 -1
  221. package/lib/typescript/src/native-types.d.ts +66 -63
  222. package/lib/typescript/src/types.d.ts +3 -3
  223. package/lib/typescript/src/utils/deleteQuantitySample.d.ts +1 -1
  224. package/lib/typescript/src/utils/deleteSamples.d.ts +1 -1
  225. package/lib/typescript/src/utils/getMostRecentCategorySample.d.ts +1 -1
  226. package/lib/typescript/src/utils/getMostRecentQuantitySample.d.ts +1 -1
  227. package/lib/typescript/src/utils/getMostRecentWorkout.d.ts +1 -1
  228. package/lib/typescript/src/utils/getPreferredUnit.d.ts +1 -1
  229. package/lib/typescript/src/utils/getPreferredUnits.d.ts +1 -1
  230. package/lib/typescript/src/utils/queryCategorySamples.d.ts +3 -8
  231. package/lib/typescript/src/utils/queryCategorySamplesWithAnchor.d.ts +10 -0
  232. package/lib/typescript/src/utils/queryCorrelationSamples.d.ts +1 -1
  233. package/lib/typescript/src/utils/queryHeartbeatSeriesSamples.d.ts +2 -2
  234. package/lib/typescript/src/utils/queryHeartbeatSeriesSamplesWithAnchor.d.ts +10 -0
  235. package/lib/typescript/src/utils/queryQuantitySamples.d.ts +4 -9
  236. package/lib/typescript/src/utils/queryQuantitySamplesWithAnchor.d.ts +12 -0
  237. package/lib/typescript/src/utils/querySources.d.ts +1 -1
  238. package/package.json +20 -18
  239. package/src/hooks/useHealthkitAuthorization.test.ts +1 -1
  240. package/src/hooks/useIsHealthDataAvailable.test.ts +1 -1
  241. package/src/hooks/useMostRecentCategorySample.ts +3 -4
  242. package/src/hooks/useMostRecentQuantitySample.ts +2 -3
  243. package/src/hooks/useStatisticsForQuantity.ts +1 -1
  244. package/src/index.ios.tsx +6 -0
  245. package/src/index.tsx +10 -5
  246. package/src/jest.setup.ts +3 -0
  247. package/src/native-types.ts +28 -7
  248. package/src/utils/deserializeCategorySample.test.ts +1 -1
  249. package/src/utils/getMostRecentCategorySample.ts +1 -1
  250. package/src/utils/getMostRecentQuantitySample.ts +1 -1
  251. package/src/utils/queryCategorySamples.ts +6 -18
  252. package/src/utils/queryCategorySamplesWithAnchor.ts +39 -0
  253. package/src/utils/queryCorrelationSamples.ts +2 -2
  254. package/src/utils/queryHeartbeatSeriesSamples.ts +3 -8
  255. package/src/utils/queryHeartbeatSeriesSamplesWithAnchor.ts +33 -0
  256. package/src/utils/queryQuantitySamples.ts +8 -18
  257. package/src/utils/queryQuantitySamplesWithAnchor.ts +46 -0
  258. package/src/utils/queryStatisticsForQuantity.ts +1 -1
  259. package/src/utils/queryWorkouts.ts +1 -1
  260. package/src/utils/saveCorrelationSample.ts +1 -1
  261. package/src/utils/saveWorkoutSample.ts +1 -1
  262. package/android/.project +0 -34
  263. package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
  264. package/android/build.gradle +0 -130
  265. package/android/gradle.properties +0 -4
  266. package/android/src/main/AndroidManifest.xml +0 -4
  267. package/android/src/main/java/com/kingstinctreactnativehealthkit/ReactNativeHealthkitModule.kt +0 -24
  268. package/android/src/main/java/com/kingstinctreactnativehealthkit/ReactNativeHealthkitPackage.kt +0 -20
@@ -1,6 +1,6 @@
1
- import Native from '../native-types'
2
1
  import deserializeHeartbeatSeriesSample from './deserializeHeartbeatSeriesSample'
3
2
  import prepareOptions from './prepareOptions'
3
+ import Native from '../native-types'
4
4
 
5
5
  import type { DeletedHeartbeatSeriesSampleRaw } from '../native-types'
6
6
  import type { GenericQueryOptions, HKHeartbeatSeriesSample } from '../types'
@@ -11,7 +11,7 @@ export type QueryHeartbeatSeriesSamplesResponse = {
11
11
  readonly newAnchor: string
12
12
  }
13
13
 
14
- export type QueryHeartbeatSeriesSamplesFn = (options: GenericQueryOptions) => Promise<QueryHeartbeatSeriesSamplesResponse>;
14
+ export type QueryHeartbeatSeriesSamplesFn = (options: Omit<GenericQueryOptions, 'anchor'>) => Promise<readonly HKHeartbeatSeriesSample[]>;
15
15
 
16
16
  const queryHeartbeatSeriesSamples: QueryHeartbeatSeriesSamplesFn = async (options) => {
17
17
  const opts = prepareOptions(options)
@@ -21,14 +21,9 @@ const queryHeartbeatSeriesSamples: QueryHeartbeatSeriesSamplesFn = async (option
21
21
  opts.to,
22
22
  opts.limit,
23
23
  opts.ascending,
24
- opts.anchor,
25
24
  )
26
25
 
27
- return {
28
- deletedSamples: result.deletedSamples,
29
- newAnchor: result.newAnchor,
30
- samples: result.samples.map(deserializeHeartbeatSeriesSample),
31
- }
26
+ return result.map(deserializeHeartbeatSeriesSample)
32
27
  }
33
28
 
34
29
  export default queryHeartbeatSeriesSamples
@@ -0,0 +1,33 @@
1
+ import deserializeHeartbeatSeriesSample from './deserializeHeartbeatSeriesSample'
2
+ import prepareOptions from './prepareOptions'
3
+ import Native from '../native-types'
4
+
5
+ import type { DeletedHeartbeatSeriesSampleRaw } from '../native-types'
6
+ import type { GenericQueryOptions, HKHeartbeatSeriesSample } from '../types'
7
+
8
+ export type QueryHeartbeatSeriesSamplesResponse = {
9
+ readonly samples: readonly HKHeartbeatSeriesSample[],
10
+ readonly deletedSamples: readonly DeletedHeartbeatSeriesSampleRaw[],
11
+ readonly newAnchor: string
12
+ }
13
+
14
+ export type QueryHeartbeatSeriesSamplesFn = (options: Omit<GenericQueryOptions, 'ascending'>) => Promise<QueryHeartbeatSeriesSamplesResponse>;
15
+
16
+ const queryHeartbeatSeriesSamplesWithAnchor: QueryHeartbeatSeriesSamplesFn = async (options) => {
17
+ const opts = prepareOptions(options)
18
+
19
+ const result = await Native.queryHeartbeatSeriesSamplesWithAnchor(
20
+ opts.from,
21
+ opts.to,
22
+ opts.limit,
23
+ opts.anchor,
24
+ )
25
+
26
+ return {
27
+ deletedSamples: result.deletedSamples,
28
+ newAnchor: result.newAnchor,
29
+ samples: result.samples.map(deserializeHeartbeatSeriesSample),
30
+ }
31
+ }
32
+
33
+ export default queryHeartbeatSeriesSamplesWithAnchor
@@ -1,24 +1,19 @@
1
- import Native from '../native-types'
2
- import deserializeQuantitySample from './deserializeSample'
3
1
  import ensureUnit from './ensureUnit'
4
2
  import prepareOptions from './prepareOptions'
3
+ import Native from '../native-types'
5
4
 
6
- import type { HKQuantityTypeIdentifier, UnitForIdentifier, DeletedQuantitySampleRaw } from '../native-types'
7
- import type { GenericQueryOptions, HKQuantitySample } from '../types'
8
-
9
- export type QueryQuantitySamplesResponse<T extends HKQuantityTypeIdentifier> = {
10
- readonly samples: readonly HKQuantitySample<T>[],
11
- readonly deletedSamples: readonly DeletedQuantitySampleRaw<T>[],
12
- readonly newAnchor: string
13
- }
5
+ import type {
6
+ HKQuantityTypeIdentifier, UnitForIdentifier, HKQuantitySampleRaw,
7
+ } from '../native-types'
8
+ import type { GenericQueryOptions } from '../types'
14
9
 
15
10
  export type QueryQuantitySamplesFn = <
16
11
  TIdentifier extends HKQuantityTypeIdentifier,
17
12
  TUnit extends UnitForIdentifier<TIdentifier>
18
13
  >(
19
14
  identifier: TIdentifier,
20
- options: GenericQueryOptions & { readonly unit?: TUnit }
21
- ) => Promise<QueryQuantitySamplesResponse<TIdentifier>>;
15
+ options: Omit<GenericQueryOptions, 'anchor'> & { readonly unit?: TUnit }
16
+ ) => Promise<readonly HKQuantitySampleRaw<TIdentifier>[]>;
22
17
 
23
18
  const queryQuantitySamples: QueryQuantitySamplesFn = async (
24
19
  identifier,
@@ -34,14 +29,9 @@ const queryQuantitySamples: QueryQuantitySamplesFn = async (
34
29
  opts.to,
35
30
  opts.limit,
36
31
  opts.ascending,
37
- opts.anchor,
38
32
  )
39
33
 
40
- return {
41
- deletedSamples: result.deletedSamples,
42
- newAnchor: result.newAnchor,
43
- samples: result.samples.map(deserializeQuantitySample),
44
- }
34
+ return result
45
35
  }
46
36
 
47
37
  export default queryQuantitySamples
@@ -0,0 +1,46 @@
1
+ import deserializeQuantitySample from './deserializeSample'
2
+ import ensureUnit from './ensureUnit'
3
+ import prepareOptions from './prepareOptions'
4
+ import Native from '../native-types'
5
+
6
+ import type { HKQuantityTypeIdentifier, UnitForIdentifier, DeletedQuantitySampleRaw } from '../native-types'
7
+ import type { GenericQueryOptions, HKQuantitySample } from '../types'
8
+
9
+ export type QueryQuantitySamplesWithAnchorResponse<T extends HKQuantityTypeIdentifier> = {
10
+ readonly samples: readonly HKQuantitySample<T>[],
11
+ readonly deletedSamples: readonly DeletedQuantitySampleRaw<T>[],
12
+ readonly newAnchor: string
13
+ }
14
+
15
+ export type QueryQuantitySamplesWithAnchorFn = <
16
+ TIdentifier extends HKQuantityTypeIdentifier,
17
+ TUnit extends UnitForIdentifier<TIdentifier>
18
+ >(
19
+ identifier: TIdentifier,
20
+ options: Omit<GenericQueryOptions, 'ascending'> & { readonly unit?: TUnit }
21
+ ) => Promise<QueryQuantitySamplesWithAnchorResponse<TIdentifier>>;
22
+
23
+ const queryQuantitySamplesWithAnchor: QueryQuantitySamplesWithAnchorFn = async (
24
+ identifier,
25
+ options,
26
+ ) => {
27
+ const unit = await ensureUnit(identifier, options.unit)
28
+ const opts = prepareOptions(options)
29
+
30
+ const result = await Native.queryQuantitySamplesWithAnchor(
31
+ identifier,
32
+ unit,
33
+ opts.from,
34
+ opts.to,
35
+ opts.limit,
36
+ opts.anchor,
37
+ )
38
+
39
+ return {
40
+ deletedSamples: result.deletedSamples,
41
+ newAnchor: result.newAnchor,
42
+ samples: result.samples.map(deserializeQuantitySample),
43
+ }
44
+ }
45
+
46
+ export default queryQuantitySamplesWithAnchor
@@ -1,5 +1,5 @@
1
- import Native from '../native-types'
2
1
  import ensureUnit from './ensureUnit'
2
+ import Native from '../native-types'
3
3
 
4
4
  import type { HKQuantityTypeIdentifier, HKStatisticsOptions, UnitForIdentifier } from '../native-types'
5
5
 
@@ -1,7 +1,7 @@
1
- import Native from '../native-types'
2
1
  import deserializeWorkout from './deserializeWorkout'
3
2
  import getPreferredUnitsTyped from './getPreferredUnitsTyped'
4
3
  import prepareOptions from './prepareOptions'
4
+ import Native from '../native-types'
5
5
 
6
6
  import type { EnergyUnit, LengthUnit } from '../native-types'
7
7
  import type { QueryWorkoutsOptions } from '../types'
@@ -1,5 +1,5 @@
1
- import Native from '../native-types'
2
1
  import ensureMetadata from './ensureMetadata'
2
+ import Native from '../native-types'
3
3
 
4
4
  import type { MetadataMapperForCorrelationIdentifier, HKCorrelationTypeIdentifier } from '../native-types'
5
5
  import type { HKCategorySampleForSaving, HKQuantitySampleForSaving } from '../types'
@@ -1,5 +1,5 @@
1
- import Native from '../native-types'
2
1
  import ensureMetadata from './ensureMetadata'
2
+ import Native from '../native-types'
3
3
 
4
4
  import type { HKWorkoutActivityType, HKWorkoutMetadata } from '../native-types'
5
5
  import type { HKQuantitySampleForSaving } from '../types'
package/android/.project DELETED
@@ -1,34 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <projectDescription>
3
- <name>kingstinct_react-native-healthkit</name>
4
- <comment>Project android_ created by Buildship.</comment>
5
- <projects>
6
- </projects>
7
- <buildSpec>
8
- <buildCommand>
9
- <name>org.eclipse.jdt.core.javabuilder</name>
10
- <arguments>
11
- </arguments>
12
- </buildCommand>
13
- <buildCommand>
14
- <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
15
- <arguments>
16
- </arguments>
17
- </buildCommand>
18
- </buildSpec>
19
- <natures>
20
- <nature>org.eclipse.jdt.core.javanature</nature>
21
- <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
22
- </natures>
23
- <filteredResources>
24
- <filter>
25
- <id>1663745272821</id>
26
- <name></name>
27
- <type>30</type>
28
- <matcher>
29
- <id>org.eclipse.core.resources.regexFilterMatcher</id>
30
- <arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
31
- </matcher>
32
- </filter>
33
- </filteredResources>
34
- </projectDescription>
@@ -1,13 +0,0 @@
1
- arguments=--init-script /var/folders/lb/4fb2wm497wq1_0vknwt43h3h0000gn/T/init5242912127258488867.gradle --init-script /var/folders/lb/4fb2wm497wq1_0vknwt43h3h0000gn/T/init4373878353927339792.gradle
2
- auto.sync=false
3
- build.scans.enabled=false
4
- connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.4.2))
5
- connection.project.dir=../example/android
6
- eclipse.preferences.version=1
7
- gradle.user.home=
8
- java.home=/Users/andarius/.sdkman/candidates/java/11.0.2-open
9
- jvm.arguments=
10
- offline.mode=false
11
- override.workspace.settings=true
12
- show.console.view=true
13
- show.executions.view=true
@@ -1,130 +0,0 @@
1
- buildscript {
2
- // Buildscript is evaluated before everything else so we can't use getExtOrDefault
3
- def kotlin_version = rootProject.ext.has('kotlinVersion') ? rootProject.ext.get('kotlinVersion') : project.properties['ReactNativeHealthkit_kotlinVersion']
4
-
5
- repositories {
6
- google()
7
- jcenter()
8
- }
9
-
10
- dependencies {
11
- classpath 'com.android.tools.build:gradle:3.2.1'
12
- // noinspection DifferentKotlinGradleVersion
13
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
14
- }
15
- }
16
-
17
- apply plugin: 'com.android.library'
18
- apply plugin: 'kotlin-android'
19
-
20
- def getExtOrDefault(name) {
21
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['ReactNativeHealthkit_' + name]
22
- }
23
-
24
- def getExtOrIntegerDefault(name) {
25
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties['ReactNativeHealthkit_' + name]).toInteger()
26
- }
27
-
28
- android {
29
- compileSdkVersion getExtOrIntegerDefault('compileSdkVersion')
30
- buildToolsVersion getExtOrDefault('buildToolsVersion')
31
- defaultConfig {
32
- minSdkVersion 16
33
- targetSdkVersion getExtOrIntegerDefault('targetSdkVersion')
34
- versionCode 1
35
- versionName "1.0"
36
-
37
- }
38
-
39
- buildTypes {
40
- release {
41
- minifyEnabled false
42
- }
43
- }
44
- lintOptions {
45
- disable 'GradleCompatible'
46
- }
47
- compileOptions {
48
- sourceCompatibility JavaVersion.VERSION_1_8
49
- targetCompatibility JavaVersion.VERSION_1_8
50
- }
51
- }
52
-
53
- repositories {
54
- mavenCentral()
55
- jcenter()
56
- google()
57
-
58
- def found = false
59
- def defaultDir = null
60
- def androidSourcesName = 'React Native sources'
61
-
62
- if (rootProject.ext.has('reactNativeAndroidRoot')) {
63
- defaultDir = rootProject.ext.get('reactNativeAndroidRoot')
64
- } else {
65
- defaultDir = new File(
66
- projectDir,
67
- '/../../../node_modules/react-native/android'
68
- )
69
- }
70
-
71
- if (defaultDir.exists()) {
72
- maven {
73
- url defaultDir.toString()
74
- name androidSourcesName
75
- }
76
-
77
- logger.info(":${project.name}:reactNativeAndroidRoot ${defaultDir.canonicalPath}")
78
- found = true
79
- } else {
80
- def parentDir = rootProject.projectDir
81
-
82
- 1.upto(5, {
83
- if (found) return true
84
- parentDir = parentDir.parentFile
85
-
86
- def androidSourcesDir = new File(
87
- parentDir,
88
- 'node_modules/react-native'
89
- )
90
-
91
- def androidPrebuiltBinaryDir = new File(
92
- parentDir,
93
- 'node_modules/react-native/android'
94
- )
95
-
96
- if (androidPrebuiltBinaryDir.exists()) {
97
- maven {
98
- url androidPrebuiltBinaryDir.toString()
99
- name androidSourcesName
100
- }
101
-
102
- logger.info(":${project.name}:reactNativeAndroidRoot ${androidPrebuiltBinaryDir.canonicalPath}")
103
- found = true
104
- } else if (androidSourcesDir.exists()) {
105
- maven {
106
- url androidSourcesDir.toString()
107
- name androidSourcesName
108
- }
109
-
110
- logger.info(":${project.name}:reactNativeAndroidRoot ${androidSourcesDir.canonicalPath}")
111
- found = true
112
- }
113
- })
114
- }
115
-
116
- if (!found) {
117
- throw new GradleException(
118
- "${project.name}: unable to locate React Native android sources. " +
119
- "Ensure you have you installed React Native as a dependency in your project and try again."
120
- )
121
- }
122
- }
123
-
124
- def kotlin_version = getExtOrDefault('kotlinVersion')
125
-
126
- dependencies {
127
- // noinspection GradleDynamicVersion
128
- api 'com.facebook.react:react-native:+'
129
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
130
- }
@@ -1,4 +0,0 @@
1
- ReactNativeHealthkit_kotlinVersion=1.3.50
2
- ReactNativeHealthkit_compileSdkVersion=28
3
- ReactNativeHealthkit_buildToolsVersion=28.0.3
4
- ReactNativeHealthkit_targetSdkVersion=28
@@ -1,4 +0,0 @@
1
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
- package="com.kingstinctreactnativehealthkit">
3
-
4
- </manifest>
@@ -1,24 +0,0 @@
1
- package com.kingstinctreactnativehealthkit
2
-
3
- import com.facebook.react.bridge.ReactApplicationContext
4
- import com.facebook.react.bridge.ReactContextBaseJavaModule
5
- import com.facebook.react.bridge.ReactMethod
6
- import com.facebook.react.bridge.Promise
7
-
8
- class ReactNativeHealthkitModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
9
-
10
- override fun getName(): String {
11
- return "ReactNativeHealthkit"
12
- }
13
-
14
- // Example method
15
- // See https://facebook.github.io/react-native/docs/native-modules-android
16
- @ReactMethod
17
- fun multiply(a: Int, b: Int, promise: Promise) {
18
-
19
- promise.resolve(a * b)
20
-
21
- }
22
-
23
-
24
- }
@@ -1,20 +0,0 @@
1
- package com.kingstinctreactnativehealthkit
2
-
3
- import java.util.Arrays
4
- import java.util.Collections
5
-
6
- import com.facebook.react.ReactPackage
7
- import com.facebook.react.bridge.NativeModule
8
- import com.facebook.react.bridge.ReactApplicationContext
9
- import com.facebook.react.uimanager.ViewManager
10
- import com.facebook.react.bridge.JavaScriptModule
11
-
12
- class ReactNativeHealthkitPackage : ReactPackage {
13
- override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
14
- return Arrays.asList<NativeModule>(ReactNativeHealthkitModule(reactContext))
15
- }
16
-
17
- override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
18
- return emptyList<ViewManager<*, *>>()
19
- }
20
- }