@kingstinct/react-native-healthkit 12.1.2 → 12.2.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 (266) hide show
  1. package/ios/CategoryTypeModule.swift +49 -97
  2. package/ios/CharacteristicTypeModule.swift +77 -63
  3. package/ios/CoreModule.swift +324 -280
  4. package/ios/CorrelationTypeModule.swift +192 -144
  5. package/ios/ElectrocardiogramModule.swift +185 -194
  6. package/ios/HeartbeatSeriesModule.swift +123 -171
  7. package/ios/Helpers.swift +312 -571
  8. package/ios/MedicationModule.swift +259 -0
  9. package/ios/PredicateHelpers.swift +334 -0
  10. package/ios/QuantityTypeModule.swift +297 -378
  11. package/ios/Serializers.swift +273 -210
  12. package/ios/SourceProxy.swift +2 -2
  13. package/ios/StateOfMindModule.swift +179 -125
  14. package/ios/WorkoutProxy.swift +235 -112
  15. package/ios/WorkoutsModule.swift +214 -262
  16. package/lib/commonjs/healthkit.ios.js +22 -2
  17. package/lib/commonjs/healthkit.js +35 -5
  18. package/lib/commonjs/hooks/useStatisticsForQuantity.js +1 -1
  19. package/lib/commonjs/hooks/useSubscribeToCategorySamples.js +20 -0
  20. package/lib/commonjs/modules.js +2 -1
  21. package/lib/commonjs/specs/MedicationModule.nitro.js +27 -0
  22. package/lib/commonjs/types/Constants.js +2 -1
  23. package/lib/commonjs/types/QuantityType.js +8 -1
  24. package/lib/commonjs/types/QueryOptions.js +18 -0
  25. package/lib/commonjs/types/WeatherCondition.js +32 -32
  26. package/lib/commonjs/types/Workouts.js +1 -50
  27. package/lib/commonjs/utils/getCategorySampleById.js +1 -1
  28. package/lib/commonjs/utils/getQuantitySampleById.js +1 -1
  29. package/lib/commonjs/utils/getWorkoutById.js +1 -1
  30. package/lib/commonjs/utils/subscribeToCategorySamples.js +29 -0
  31. package/lib/commonjs/utils/subscribeToQuantitySamples.js +8 -25
  32. package/lib/module/healthkit.ios.js +20 -2
  33. package/lib/module/healthkit.js +32 -2
  34. package/lib/module/hooks/useStatisticsForQuantity.js +1 -1
  35. package/lib/module/hooks/useSubscribeToCategorySamples.js +17 -0
  36. package/lib/module/modules.js +1 -0
  37. package/lib/module/specs/MedicationModule.nitro.js +26 -0
  38. package/lib/module/types/Constants.js +1 -0
  39. package/lib/module/types/QuantityType.js +7 -0
  40. package/lib/module/types/QueryOptions.js +17 -1
  41. package/lib/module/types/WeatherCondition.js +31 -31
  42. package/lib/module/types/Workouts.js +0 -49
  43. package/lib/module/utils/getCategorySampleById.js +1 -1
  44. package/lib/module/utils/getQuantitySampleById.js +1 -1
  45. package/lib/module/utils/getWorkoutById.js +1 -1
  46. package/lib/module/utils/subscribeToCategorySamples.js +26 -0
  47. package/lib/module/utils/subscribeToQuantitySamples.js +8 -25
  48. package/lib/typescript/healthkit.d.ts +18 -9
  49. package/lib/typescript/healthkit.ios.d.ts +33 -15
  50. package/lib/typescript/hooks/useSubscribeToCategorySamples.d.ts +3 -0
  51. package/lib/typescript/modules.d.ts +2 -0
  52. package/lib/typescript/specs/CategoryTypeModule.nitro.d.ts +2 -2
  53. package/lib/typescript/specs/CoreModule.nitro.d.ts +2 -1
  54. package/lib/typescript/specs/CorrelationTypeModule.nitro.d.ts +4 -2
  55. package/lib/typescript/specs/ElectrocardiogramModule.nitro.d.ts +1 -1
  56. package/lib/typescript/specs/HeartbeatSeriesModule.nitro.d.ts +1 -1
  57. package/lib/typescript/specs/MedicationModule.nitro.d.ts +56 -0
  58. package/lib/typescript/specs/QuantityTypeModule.nitro.d.ts +4 -4
  59. package/lib/typescript/specs/StateOfMindModule.nitro.d.ts +4 -3
  60. package/lib/typescript/types/CategoryType.d.ts +10 -20
  61. package/lib/typescript/types/Constants.d.ts +1 -0
  62. package/lib/typescript/types/CorrelationType.d.ts +8 -10
  63. package/lib/typescript/types/ElectrocardiogramSample.d.ts +2 -12
  64. package/lib/typescript/types/HeartbeatSeries.d.ts +2 -14
  65. package/lib/typescript/types/QuantitySample.d.ts +2 -8
  66. package/lib/typescript/types/QuantityType.d.ts +7 -8
  67. package/lib/typescript/types/QuantityTypeIdentifier.d.ts +23 -23
  68. package/lib/typescript/types/QueryOptions.d.ts +43 -28
  69. package/lib/typescript/types/Shared.d.ts +52 -7
  70. package/lib/typescript/types/StateOfMind.d.ts +7 -10
  71. package/lib/typescript/types/Subscriptions.d.ts +12 -3
  72. package/lib/typescript/types/WeatherCondition.d.ts +1 -1
  73. package/lib/typescript/types/Workouts.d.ts +28 -81
  74. package/lib/typescript/utils/subscribeToCategorySamples.d.ts +5 -0
  75. package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Bridge.cpp +57 -0
  76. package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Bridge.hpp +592 -389
  77. package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Umbrella.hpp +65 -30
  78. package/nitrogen/generated/ios/ReactNativeHealthkitAutolinking.mm +8 -0
  79. package/nitrogen/generated/ios/ReactNativeHealthkitAutolinking.swift +15 -0
  80. package/nitrogen/generated/ios/c++/HybridCategoryTypeModuleSpecSwift.hpp +32 -26
  81. package/nitrogen/generated/ios/c++/HybridCoreModuleSpecSwift.hpp +36 -37
  82. package/nitrogen/generated/ios/c++/HybridCorrelationTypeModuleSpecSwift.hpp +55 -2
  83. package/nitrogen/generated/ios/c++/HybridElectrocardiogramModuleSpecSwift.hpp +36 -30
  84. package/nitrogen/generated/ios/c++/HybridHeartbeatSeriesModuleSpecSwift.hpp +35 -29
  85. package/nitrogen/generated/ios/c++/HybridMedicationModuleSpecSwift.cpp +11 -0
  86. package/nitrogen/generated/ios/c++/HybridMedicationModuleSpecSwift.hpp +181 -0
  87. package/nitrogen/generated/ios/c++/HybridQuantityTypeModuleSpecSwift.hpp +48 -42
  88. package/nitrogen/generated/ios/c++/HybridStateOfMindModuleSpecSwift.hpp +59 -36
  89. package/nitrogen/generated/ios/c++/HybridWorkoutProxySpecSwift.hpp +150 -29
  90. package/nitrogen/generated/ios/c++/HybridWorkoutsModuleSpecSwift.hpp +13 -28
  91. package/nitrogen/generated/ios/swift/AggregationStyle.swift +48 -0
  92. package/nitrogen/generated/ios/swift/CategorySample.swift +571 -24
  93. package/nitrogen/generated/ios/swift/ComparisonPredicateOperator.swift +2 -2
  94. package/nitrogen/generated/ios/swift/CorrelationSample.swift +640 -17
  95. package/nitrogen/generated/ios/swift/{PredicateWithStartAndEnd.swift → DateFilter.swift} +5 -5
  96. package/nitrogen/generated/ios/swift/ECGQueryOptionsWithAnchor.swift +11 -91
  97. package/nitrogen/generated/ios/swift/ECGQueryOptionsWithSortOrder.swift +11 -91
  98. package/nitrogen/generated/ios/swift/ElectrocardiogramSample.swift +570 -72
  99. package/nitrogen/generated/ios/swift/FilterForSamples.swift +349 -12
  100. package/nitrogen/generated/ios/swift/FilterForSamplesBase.swift +234 -0
  101. package/nitrogen/generated/ios/swift/FilterForWorkouts.swift +366 -0
  102. package/nitrogen/generated/ios/swift/FilterForWorkoutsBase.swift +240 -0
  103. package/nitrogen/generated/ios/swift/Func_void_MedicationDoseEventsWithAnchorResponse.swift +47 -0
  104. package/nitrogen/generated/ios/swift/Func_void_QueryCorrelationSamplesWithAnchorResponse.swift +47 -0
  105. package/nitrogen/generated/ios/swift/Func_void_StateOfMindSamplesWithAnchorResponse.swift +47 -0
  106. package/nitrogen/generated/ios/swift/Func_void_std__vector_MedicationDoseEvent_.swift +47 -0
  107. package/nitrogen/generated/ios/swift/Func_void_std__vector_UserAnnotatedMedication_.swift +47 -0
  108. package/nitrogen/generated/ios/swift/GeneralForm.swift +104 -0
  109. package/nitrogen/generated/ios/swift/HeartRateMotionContext.swift +44 -0
  110. package/nitrogen/generated/ios/swift/HeartbeatSeriesSample.swift +565 -37
  111. package/nitrogen/generated/ios/swift/HybridCategoryTypeModuleSpec.swift +1 -1
  112. package/nitrogen/generated/ios/swift/HybridCategoryTypeModuleSpec_cxx.swift +2 -2
  113. package/nitrogen/generated/ios/swift/HybridCoreModuleSpec.swift +2 -1
  114. package/nitrogen/generated/ios/swift/HybridCoreModuleSpec_cxx.swift +19 -31
  115. package/nitrogen/generated/ios/swift/HybridCorrelationTypeModuleSpec.swift +2 -1
  116. package/nitrogen/generated/ios/swift/HybridCorrelationTypeModuleSpec_cxx.swift +21 -2
  117. package/nitrogen/generated/ios/swift/HybridElectrocardiogramModuleSpec.swift +1 -1
  118. package/nitrogen/generated/ios/swift/HybridElectrocardiogramModuleSpec_cxx.swift +2 -2
  119. package/nitrogen/generated/ios/swift/HybridHeartbeatSeriesModuleSpec.swift +1 -1
  120. package/nitrogen/generated/ios/swift/HybridHeartbeatSeriesModuleSpec_cxx.swift +2 -2
  121. package/nitrogen/generated/ios/swift/HybridMedicationModuleSpec.swift +60 -0
  122. package/nitrogen/generated/ios/swift/HybridMedicationModuleSpec_cxx.swift +208 -0
  123. package/nitrogen/generated/ios/swift/HybridQuantityTypeModuleSpec.swift +2 -2
  124. package/nitrogen/generated/ios/swift/HybridQuantityTypeModuleSpec_cxx.swift +9 -43
  125. package/nitrogen/generated/ios/swift/HybridStateOfMindModuleSpec.swift +2 -1
  126. package/nitrogen/generated/ios/swift/HybridStateOfMindModuleSpec_cxx.swift +21 -2
  127. package/nitrogen/generated/ios/swift/HybridWorkoutProxySpec.swift +34 -6
  128. package/nitrogen/generated/ios/swift/HybridWorkoutProxySpec_cxx.swift +376 -36
  129. package/nitrogen/generated/ios/swift/InsulinDeliveryReason.swift +40 -0
  130. package/nitrogen/generated/ios/swift/MedicationConcept.swift +80 -0
  131. package/nitrogen/generated/ios/swift/MedicationDoseEvent.swift +781 -0
  132. package/nitrogen/generated/ios/swift/MedicationDoseEventLogStatus.swift +56 -0
  133. package/nitrogen/generated/ios/swift/MedicationDoseEventScheduleType.swift +40 -0
  134. package/nitrogen/generated/ios/swift/MedicationDoseEventsWithAnchorResponse.swift +81 -0
  135. package/nitrogen/generated/ios/swift/ObjectTypeIdentifier.swift +16 -16
  136. package/nitrogen/generated/ios/swift/PredicateWithMetadataKey.swift +7 -7
  137. package/nitrogen/generated/ios/swift/QuantitySample.swift +574 -27
  138. package/nitrogen/generated/ios/swift/QuantityTypeIdentifier.swift +16 -16
  139. package/nitrogen/generated/ios/swift/QueryCorrelationSamplesWithAnchorResponse.swift +81 -0
  140. package/nitrogen/generated/ios/swift/QueryOptionsWithAnchor.swift +11 -91
  141. package/nitrogen/generated/ios/swift/QueryOptionsWithAnchorAndUnit.swift +11 -91
  142. package/nitrogen/generated/ios/swift/QueryOptionsWithSortOrder.swift +11 -91
  143. package/nitrogen/generated/ios/swift/QueryOptionsWithSortOrderAndUnit.swift +11 -91
  144. package/nitrogen/generated/ios/swift/RelatedCoding.swift +76 -0
  145. package/nitrogen/generated/ios/swift/SampleType.swift +68 -0
  146. package/nitrogen/generated/ios/swift/SampleTypeIdentifier.swift +16 -16
  147. package/nitrogen/generated/ios/swift/SampleTypeIdentifierWriteable.swift +0 -16
  148. package/nitrogen/generated/ios/swift/StateOfMindSample.swift +586 -58
  149. package/nitrogen/generated/ios/swift/StateOfMindSamplesWithAnchorResponse.swift +81 -0
  150. package/nitrogen/generated/ios/swift/StatisticsQueryOptions.swift +7 -75
  151. package/nitrogen/generated/ios/swift/UserAnnotatedMedication.swift +87 -0
  152. package/nitrogen/generated/ios/swift/WeatherCondition.swift +144 -0
  153. package/nitrogen/generated/ios/swift/WorkoutQueryOptions.swift +11 -105
  154. package/nitrogen/generated/ios/swift/WorkoutQueryOptionsWithAnchor.swift +11 -105
  155. package/nitrogen/generated/ios/swift/WorkoutSample.swift +751 -78
  156. package/nitrogen/generated/shared/c++/AggregationStyle.hpp +64 -0
  157. package/nitrogen/generated/shared/c++/CategorySample.hpp +126 -23
  158. package/nitrogen/generated/shared/c++/CorrelationSample.hpp +134 -12
  159. package/nitrogen/generated/shared/c++/{PredicateWithStartAndEnd.hpp → DateFilter.hpp} +10 -10
  160. package/nitrogen/generated/shared/c++/ECGQueryOptionsWithAnchor.hpp +12 -31
  161. package/nitrogen/generated/shared/c++/ECGQueryOptionsWithSortOrder.hpp +12 -31
  162. package/nitrogen/generated/shared/c++/ElectrocardiogramSample.hpp +135 -36
  163. package/nitrogen/generated/shared/c++/FilterForSamples.hpp +124 -0
  164. package/nitrogen/generated/shared/c++/FilterForSamplesBase.hpp +109 -0
  165. package/nitrogen/generated/shared/c++/FilterForWorkouts.hpp +131 -0
  166. package/nitrogen/generated/shared/c++/FilterForWorkoutsBase.hpp +116 -0
  167. package/nitrogen/generated/shared/c++/GeneralForm.hpp +140 -0
  168. package/nitrogen/generated/shared/c++/HeartRateMotionContext.hpp +67 -0
  169. package/nitrogen/generated/shared/c++/HeartbeatSeriesSample.hpp +131 -28
  170. package/nitrogen/generated/shared/c++/HybridCategoryTypeModuleSpec.hpp +1 -2
  171. package/nitrogen/generated/shared/c++/HybridCoreModuleSpec.cpp +1 -0
  172. package/nitrogen/generated/shared/c++/HybridCoreModuleSpec.hpp +10 -28
  173. package/nitrogen/generated/shared/c++/HybridCorrelationTypeModuleSpec.cpp +1 -0
  174. package/nitrogen/generated/shared/c++/HybridCorrelationTypeModuleSpec.hpp +11 -1
  175. package/nitrogen/generated/shared/c++/HybridElectrocardiogramModuleSpec.hpp +1 -2
  176. package/nitrogen/generated/shared/c++/HybridHeartbeatSeriesModuleSpec.hpp +1 -2
  177. package/nitrogen/generated/shared/c++/HybridMedicationModuleSpec.cpp +24 -0
  178. package/nitrogen/generated/shared/c++/HybridMedicationModuleSpec.hpp +80 -0
  179. package/nitrogen/generated/shared/c++/HybridQuantityTypeModuleSpec.cpp +1 -1
  180. package/nitrogen/generated/shared/c++/HybridQuantityTypeModuleSpec.hpp +6 -25
  181. package/nitrogen/generated/shared/c++/HybridStateOfMindModuleSpec.cpp +1 -0
  182. package/nitrogen/generated/shared/c++/HybridStateOfMindModuleSpec.hpp +9 -2
  183. package/nitrogen/generated/shared/c++/HybridWorkoutProxySpec.cpp +33 -5
  184. package/nitrogen/generated/shared/c++/HybridWorkoutProxySpec.hpp +56 -16
  185. package/nitrogen/generated/shared/c++/InsulinDeliveryReason.hpp +62 -0
  186. package/nitrogen/generated/shared/c++/MedicationConcept.hpp +93 -0
  187. package/nitrogen/generated/shared/c++/MedicationDoseEvent.hpp +240 -0
  188. package/nitrogen/generated/shared/c++/MedicationDoseEventLogStatus.hpp +66 -0
  189. package/nitrogen/generated/shared/c++/MedicationDoseEventScheduleType.hpp +62 -0
  190. package/nitrogen/generated/shared/c++/MedicationDoseEventsWithAnchorResponse.hpp +89 -0
  191. package/nitrogen/generated/shared/c++/ObjectTypeIdentifier.hpp +105 -105
  192. package/nitrogen/generated/shared/c++/PredicateWithMetadataKey.hpp +8 -8
  193. package/nitrogen/generated/shared/c++/QuantitySample.hpp +130 -27
  194. package/nitrogen/generated/shared/c++/QuantityTypeIdentifier.hpp +105 -105
  195. package/nitrogen/generated/shared/c++/QueryCorrelationSamplesWithAnchorResponse.hpp +89 -0
  196. package/nitrogen/generated/shared/c++/QueryOptionsWithAnchor.hpp +12 -31
  197. package/nitrogen/generated/shared/c++/QueryOptionsWithAnchorAndUnit.hpp +12 -31
  198. package/nitrogen/generated/shared/c++/QueryOptionsWithSortOrder.hpp +12 -31
  199. package/nitrogen/generated/shared/c++/QueryOptionsWithSortOrderAndUnit.hpp +12 -31
  200. package/nitrogen/generated/shared/c++/RelatedCoding.hpp +84 -0
  201. package/nitrogen/generated/shared/c++/SampleType.hpp +87 -0
  202. package/nitrogen/generated/shared/c++/SampleTypeIdentifier.hpp +105 -105
  203. package/nitrogen/generated/shared/c++/SampleTypeIdentifierWriteable.hpp +105 -121
  204. package/nitrogen/generated/shared/c++/StateOfMindSample.hpp +139 -36
  205. package/nitrogen/generated/shared/c++/StateOfMindSamplesWithAnchorResponse.hpp +89 -0
  206. package/nitrogen/generated/shared/c++/StatisticsQueryOptions.hpp +8 -27
  207. package/nitrogen/generated/shared/c++/UserAnnotatedMedication.hpp +90 -0
  208. package/nitrogen/generated/shared/c++/WeatherCondition.hpp +88 -0
  209. package/nitrogen/generated/shared/c++/WorkoutQueryOptions.hpp +12 -37
  210. package/nitrogen/generated/shared/c++/WorkoutQueryOptionsWithAnchor.hpp +12 -37
  211. package/nitrogen/generated/shared/c++/WorkoutSample.hpp +159 -35
  212. package/package.json +1 -1
  213. package/src/healthkit.ios.ts +30 -0
  214. package/src/healthkit.ts +68 -3
  215. package/src/hooks/useStatisticsForQuantity.ts +1 -1
  216. package/src/hooks/useSubscribeToCategorySamples.ts +31 -0
  217. package/src/modules.ts +4 -0
  218. package/src/specs/CategoryTypeModule.nitro.ts +2 -2
  219. package/src/specs/CoreModule.nitro.ts +3 -0
  220. package/src/specs/CorrelationTypeModule.nitro.ts +11 -3
  221. package/src/specs/ElectrocardiogramModule.nitro.ts +1 -1
  222. package/src/specs/HeartbeatSeriesModule.nitro.ts +1 -1
  223. package/src/specs/MedicationModule.nitro.ts +140 -0
  224. package/src/specs/QuantityTypeModule.nitro.ts +4 -7
  225. package/src/specs/StateOfMindModule.nitro.ts +10 -2
  226. package/src/types/CategoryType.ts +15 -22
  227. package/src/types/Constants.ts +3 -0
  228. package/src/types/CorrelationType.ts +10 -15
  229. package/src/types/ElectrocardiogramSample.ts +2 -14
  230. package/src/types/HeartbeatSeries.ts +2 -15
  231. package/src/types/QuantitySample.ts +2 -8
  232. package/src/types/QuantityType.ts +8 -17
  233. package/src/types/QuantityTypeIdentifier.ts +25 -25
  234. package/src/types/QueryOptions.ts +54 -43
  235. package/src/types/Shared.ts +74 -17
  236. package/src/types/StateOfMind.ts +8 -10
  237. package/src/types/Subscriptions.ts +19 -3
  238. package/src/types/WeatherCondition.ts +1 -1
  239. package/src/types/Workouts.ts +28 -91
  240. package/src/utils/getCategorySampleById.ts +1 -1
  241. package/src/utils/getQuantitySampleById.ts +1 -1
  242. package/src/utils/getWorkoutById.ts +1 -2
  243. package/src/utils/subscribeToCategorySamples.ts +38 -0
  244. package/src/utils/subscribeToQuantitySamples.ts +12 -37
  245. package/nitrogen/generated/ios/swift/FilterForSamplesAnd.swift +0 -94
  246. package/nitrogen/generated/ios/swift/FilterForSamplesOr.swift +0 -94
  247. package/nitrogen/generated/ios/swift/PredicateForSamples.swift +0 -21
  248. package/nitrogen/generated/ios/swift/PredicateForWorkouts.swift +0 -23
  249. package/nitrogen/generated/ios/swift/PredicateForWorkoutsAnd.swift +0 -108
  250. package/nitrogen/generated/ios/swift/PredicateForWorkoutsOr.swift +0 -108
  251. package/nitrogen/generated/ios/swift/PredicateFromWorkout.swift +0 -45
  252. package/nitrogen/generated/ios/swift/PredicateWithMetadataOperator.swift +0 -48
  253. package/nitrogen/generated/ios/swift/PredicateWithUUID.swift +0 -35
  254. package/nitrogen/generated/ios/swift/PredicateWithUUIDs.swift +0 -47
  255. package/nitrogen/generated/ios/swift/Variant_PredicateWithUUID_PredicateWithUUIDs_PredicateWithMetadataKey_PredicateWithStartAndEnd_PredicateFromWorkout_FilterForSamplesAnd_FilterForSamplesOr.swift +0 -23
  256. package/nitrogen/generated/ios/swift/Variant_PredicateWithUUID_PredicateWithUUIDs_PredicateWithMetadataKey_PredicateWithStartAndEnd_PredicateFromWorkout_WorkoutActivityTypePredicate_WorkoutDurationPredicate_PredicateForWorkoutsOr_PredicateForWorkoutsAnd.swift +0 -25
  257. package/nitrogen/generated/ios/swift/WorkoutActivityTypePredicate.swift +0 -35
  258. package/nitrogen/generated/shared/c++/FilterForSamplesAnd.hpp +0 -90
  259. package/nitrogen/generated/shared/c++/FilterForSamplesOr.hpp +0 -90
  260. package/nitrogen/generated/shared/c++/PredicateForWorkoutsAnd.hpp +0 -96
  261. package/nitrogen/generated/shared/c++/PredicateForWorkoutsOr.hpp +0 -96
  262. package/nitrogen/generated/shared/c++/PredicateFromWorkout.hpp +0 -77
  263. package/nitrogen/generated/shared/c++/PredicateWithMetadataOperator.hpp +0 -84
  264. package/nitrogen/generated/shared/c++/PredicateWithUUID.hpp +0 -75
  265. package/nitrogen/generated/shared/c++/PredicateWithUUIDs.hpp +0 -76
  266. package/nitrogen/generated/shared/c++/WorkoutActivityTypePredicate.hpp +0 -76
@@ -8,118 +8,70 @@ class CategoryTypeModule: HybridCategoryTypeModuleSpec {
8
8
  startDate: Date,
9
9
  endDate: Date,
10
10
  metadata: AnyMap
11
- ) throws -> Promise<Bool> {
12
- let type = try initializeCategoryType(identifier.stringValue)
11
+ ) -> Promise<Bool> {
12
+ return Promise.async {
13
+ let type = try initializeCategoryType(identifier.stringValue)
13
14
 
14
- let sample = HKCategorySample(
15
- type: type,
16
- value: Int(value),
17
- start: startDate,
18
- end: endDate,
19
- metadata: anyMapToDictionary(metadata)
20
- )
15
+ let sample = HKCategorySample(
16
+ type: type,
17
+ value: Int(value),
18
+ start: startDate,
19
+ end: endDate,
20
+ metadata: anyMapToDictionary(metadata)
21
+ )
21
22
 
22
- return Promise.async {
23
- try await withCheckedThrowingContinuation { continuation in
24
- store.save(sample) { (success: Bool, error: Error?) in
25
- if let error = error {
26
- continuation.resume(throwing: error)
27
- } else {
28
- continuation.resume(returning: success)
29
- }
30
- }
31
- }
23
+ return try await saveAsync(sample: sample)
32
24
  }
33
25
  }
34
26
 
35
27
  func queryCategorySamples(
36
28
  identifier: CategoryTypeIdentifier,
37
- options: QueryOptionsWithSortOrder?
38
- ) throws -> Promise<[CategorySample]> {
39
- let sampleType = try initializeCategoryType(identifier.stringValue)
40
- let predicate = try createPredicate(filter: options?.filter)
41
- let queryLimit = getQueryLimit(options?.limit)
42
-
29
+ options: QueryOptionsWithSortOrder
30
+ ) -> Promise<[CategorySample]> {
43
31
  return Promise.async {
44
- try await withCheckedThrowingContinuation { continuation in
45
- let query = HKSampleQuery(
46
- sampleType: sampleType,
47
- predicate: predicate,
48
- limit: queryLimit,
49
- sortDescriptors: getSortDescriptors(ascending: options?.ascending)
50
- ) { (_: HKSampleQuery, samples: [HKSample]?, error: Error?) in
51
- if let error = error {
52
- continuation.resume(throwing: error)
53
- return
54
- }
55
-
56
- guard let samples = samples else {
57
- continuation.resume(returning: [])
58
- return
59
- }
60
-
61
- let categorySamples = samples.compactMap { sample -> CategorySample? in
62
- guard let categorySample = sample as? HKCategorySample else { return nil }
63
- return serializeCategorySample(sample: categorySample)
64
- }
65
-
66
- continuation.resume(returning: categorySamples)
67
- }
68
-
69
- store.execute(query)
70
- }
32
+ let sampleType = try initializeCategoryType(identifier.stringValue)
33
+ let predicate = createPredicateForSamples(options.filter)
34
+ let sortDescriptors = getSortDescriptors(ascending: options.ascending)
35
+
36
+ let samples = try await sampleQueryAsync(
37
+ sampleType: sampleType,
38
+ limit: options.limit,
39
+ predicate: predicate,
40
+ sortDescriptors: sortDescriptors
41
+ )
42
+
43
+ return samples.compactMap { sample -> CategorySample? in
44
+ guard let categorySample = sample as? HKCategorySample else { return nil }
45
+ return serializeCategorySample(sample: categorySample)
46
+ }
71
47
  }
72
48
  }
73
49
 
74
50
  func queryCategorySamplesWithAnchor(
75
51
  identifier: CategoryTypeIdentifier,
76
52
  options: QueryOptionsWithAnchor
77
- ) throws -> Promise<CategorySamplesWithAnchorResponse> {
78
- let sampleType = try initializeCategoryType(identifier.stringValue)
79
-
80
- let predicate = try createPredicate(filter: options.filter)
81
- let queryLimit = getQueryLimit(options.limit)
82
- let queryAnchor = try deserializeHKQueryAnchor(base64String: options.anchor)
83
-
53
+ ) -> Promise<CategorySamplesWithAnchorResponse> {
84
54
  return Promise.async {
85
- try await withCheckedThrowingContinuation { continuation in
86
- let query = HKAnchoredObjectQuery(
87
- type: sampleType,
88
- predicate: predicate,
89
- anchor: queryAnchor,
90
- limit: queryLimit
91
- ) { (_: HKAnchoredObjectQuery, samples: [HKSample]?, deletedSamples: [HKDeletedObject]?, newAnchor: HKQueryAnchor?, error: Error?) in
92
- if let error = error {
93
- continuation.resume(throwing: error)
94
- return
95
- }
96
-
97
- guard let samples = samples else {
98
- let response = CategorySamplesWithAnchorResponse(
99
- samples: [],
100
- deletedSamples: deletedSamples?.map { serializeDeletedSample(sample: $0) } ?? [],
101
- newAnchor: serializeAnchor(anchor: newAnchor) ?? ""
102
- )
103
- continuation.resume(returning: response)
104
- return
105
- }
106
-
107
- let categorySamples = samples.compactMap { sample -> CategorySample? in
108
- guard let categorySample = sample as? HKCategorySample else { return nil }
109
- return serializeCategorySample(sample: categorySample)
110
- }
111
-
112
- let response = CategorySamplesWithAnchorResponse(
113
- samples: categorySamples,
114
- deletedSamples: deletedSamples?.map { serializeDeletedSample(sample: $0) } ?? [],
115
- newAnchor: serializeAnchor(anchor: newAnchor) ?? ""
116
- )
117
-
118
- continuation.resume(returning: response)
119
- }
120
-
121
- store.execute(query)
122
- }
55
+ let sampleType = try initializeCategoryType(identifier.stringValue)
56
+ let predicate = createPredicateForSamples(options.filter)
57
+
58
+ let response = try await sampleAnchoredQueryAsync(
59
+ sampleType: sampleType,
60
+ limit: options.limit,
61
+ queryAnchor: options.anchor,
62
+ predicate: predicate
63
+ )
64
+
65
+ let categorySamples = response.samples.compactMap { sample -> CategorySample? in
66
+ guard let categorySample = sample as? HKCategorySample else { return nil }
67
+ return serializeCategorySample(sample: categorySample)
68
+ }
69
+
70
+ return CategorySamplesWithAnchorResponse(
71
+ samples: categorySamples,
72
+ deletedSamples: response.deletedSamples,
73
+ newAnchor: response.newAnchor
74
+ )
123
75
  }
124
76
  }
125
77
  }
@@ -2,92 +2,106 @@ import HealthKit
2
2
  import NitroModules
3
3
 
4
4
  class CharacteristicTypeModule: HybridCharacteristicTypeModuleSpec {
5
- func getBloodTypeAsync() throws -> Promise<BloodType> {
6
- return Promise.resolved(withResult: try self.getBloodType())
5
+ func getBloodTypeAsync() -> Promise<BloodType> {
6
+ return Promise.async {
7
+ return try self.getBloodType()
7
8
  }
9
+ }
8
10
 
9
- func getDateOfBirthAsync() throws -> Promise<Date?> {
10
- return Promise.resolved(withResult: try self.getDateOfBirth())
11
+ func getDateOfBirthAsync() -> Promise<Date?> {
12
+ return Promise.async {
13
+ return try self.getDateOfBirth()
11
14
  }
15
+ }
12
16
 
13
- func getBiologicalSexAsync() throws -> Promise<BiologicalSex> {
14
- return Promise.resolved(withResult: try self.getBiologicalSex())
17
+ func getBiologicalSexAsync() -> Promise<BiologicalSex> {
18
+ return Promise.async {
19
+ return try self.getBiologicalSex()
15
20
  }
21
+ }
16
22
 
17
- func getFitzpatrickSkinTypeAsync() throws -> Promise<FitzpatrickSkinType> {
18
- return Promise.resolved(withResult: try self.getFitzpatrickSkinType())
23
+ func getFitzpatrickSkinTypeAsync() -> Promise<FitzpatrickSkinType> {
24
+ return Promise.async {
25
+ return try self.getFitzpatrickSkinType()
19
26
  }
27
+ }
20
28
 
21
- func getWheelchairUseAsync() throws -> Promise<WheelchairUse> {
22
- return Promise.resolved(withResult: try self.getWheelchairUse())
29
+ func getWheelchairUseAsync() -> Promise<WheelchairUse> {
30
+ return Promise.async {
31
+ return try self.getWheelchairUse()
23
32
  }
33
+ }
24
34
 
25
- // Using the global 'store' instance defined in Auth.swift
35
+ // Using the global 'store' instance defined in Auth.swift
26
36
 
27
- func getBiologicalSex() throws -> BiologicalSex {
28
- let biologicalSexObject = try store.biologicalSex()
29
- if let biologicalSex = BiologicalSex(rawValue: Int32(biologicalSexObject.biologicalSex.rawValue)) {
30
- return biologicalSex
31
- }
32
- throw RuntimeError.error(withMessage: "[react-native-healthkit] Got unknown biological sex value: \(biologicalSexObject.biologicalSex.rawValue)")
37
+ func getBiologicalSex() throws -> BiologicalSex {
38
+ let biologicalSexObject = try store.biologicalSex()
39
+ if let biologicalSex = BiologicalSex(
40
+ rawValue: Int32(biologicalSexObject.biologicalSex.rawValue)) {
41
+ return biologicalSex
33
42
  }
43
+ throw runtimeErrorWithPrefix(
44
+ "Got unknown biological sex value: \(biologicalSexObject.biologicalSex.rawValue)")
45
+ }
34
46
 
35
47
  func getDateOfBirth() throws -> Date? {
36
- do {
37
- let components = try store.dateOfBirthComponents()
38
- return components.date
39
- } catch {
40
- let nsError = error as NSError
41
-
42
- // 1️⃣ HealthKit’s documented “no data” error
43
- if nsError.domain == HKError.errorDomain,
44
- nsError.code == HKError.Code.errorNoData.rawValue {
45
- return nil
46
- }
47
-
48
- // 2️⃣ The undocumented generic Obj-C error some OS versions emit
49
- if nsError.domain == "Foundation._GenericObjCError",
50
- nsError.code == 0 {
51
- return nil
52
- }
53
-
54
- // Anything else is a real failure – surface it to JS
55
- throw RuntimeError.error(
56
- withMessage: "[react-native-healthkit] Failed to get date of birth: \(nsError.localizedDescription)"
57
- )
48
+ do {
49
+ let components = try store.dateOfBirthComponents()
50
+ return components.date
51
+ } catch {
52
+ let nsError = error as NSError
53
+
54
+ // 1️⃣ HealthKit’s documented “no data” error
55
+ if nsError.domain == HKError.errorDomain,
56
+ nsError.code == HKError.Code.errorNoData.rawValue {
57
+ return nil
58
+ }
59
+
60
+ // 2️⃣ The undocumented generic Obj-C error some OS versions emit
61
+ if nsError.domain == "Foundation._GenericObjCError",
62
+ nsError.code == 0 {
63
+ return nil
58
64
  }
59
- }
60
65
 
61
- func getBloodType() throws -> BloodType {
62
- let bloodTypeObject = try store.bloodType()
66
+ // Anything else is a real failure – surface it to JS
67
+ throw runtimeErrorWithPrefix("Failed to get date of birth: \(nsError.localizedDescription)")
68
+ }
69
+ }
63
70
 
64
- if let bloodType = BloodType(rawValue: Int32(bloodTypeObject.bloodType.rawValue)) {
65
- return bloodType
66
- }
71
+ func getBloodType() throws -> BloodType {
72
+ let bloodTypeObject = try store.bloodType()
67
73
 
68
- throw RuntimeError.error(withMessage: "[react-native-healthkit] Got unknown blood type value: \(bloodTypeObject.bloodType.rawValue)")
74
+ if let bloodType = BloodType(rawValue: Int32(bloodTypeObject.bloodType.rawValue)) {
75
+ return bloodType
69
76
  }
70
77
 
71
- func getFitzpatrickSkinType() throws -> FitzpatrickSkinType {
72
- if #available(iOS 9.0, *) {
73
- let skinTypeObject = try store.fitzpatrickSkinType()
78
+ throw runtimeErrorWithPrefix(
79
+ "Got unknown blood type value: \(bloodTypeObject.bloodType.rawValue)")
80
+ }
81
+
82
+ func getFitzpatrickSkinType() throws -> FitzpatrickSkinType {
83
+ if #available(iOS 9.0, *) {
84
+ let skinTypeObject = try store.fitzpatrickSkinType()
74
85
 
75
- if let skinType = FitzpatrickSkinType(rawValue: Int32(skinTypeObject.skinType.rawValue)) {
76
- return skinType
77
- }
86
+ if let skinType = FitzpatrickSkinType(rawValue: Int32(skinTypeObject.skinType.rawValue)) {
87
+ return skinType
88
+ }
78
89
 
79
- throw RuntimeError.error(withMessage: "[react-native-healthkit] Got unknown Fitzpatrick skin type value: \(skinTypeObject.skinType.rawValue)")
80
- } else {
81
- throw RuntimeError.error(withMessage: "Fitzpatrick skin type is not available before iOS 9.0")
82
- }
90
+ throw runtimeErrorWithPrefix(
91
+ "Got unknown Fitzpatrick skin type value: \(skinTypeObject.skinType.rawValue)")
83
92
  }
93
+ throw runtimeErrorWithPrefix("Fitzpatrick skin type is not available before iOS 9.0")
94
+ }
84
95
 
85
- @available(iOS 10.0, *)
86
- func getWheelchairUse() throws -> WheelchairUse {
87
- let wheelchairUseObject = try store.wheelchairUse()
88
- if let wheelChairUse = WheelchairUse(rawValue: Int32(wheelchairUseObject.wheelchairUse.rawValue)) {
89
- return wheelChairUse
90
- }
91
- throw RuntimeError.error(withMessage: "[react-native-healthkit] Got unknown wheelchair use value: \(wheelchairUseObject.wheelchairUse.rawValue)")
96
+ @available(iOS 10.0, *)
97
+ func getWheelchairUse() throws -> WheelchairUse {
98
+ let wheelchairUseObject = try store.wheelchairUse()
99
+ if let wheelChairUse = WheelchairUse(
100
+ rawValue: Int32(wheelchairUseObject.wheelchairUse.rawValue)) {
101
+ return wheelChairUse
92
102
  }
103
+ throw runtimeErrorWithPrefix(
104
+ "Got unknown wheelchair use value: \(wheelchairUseObject.wheelchairUse.rawValue)"
105
+ )
106
+ }
93
107
  }