@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
@@ -10,38 +10,95 @@ import HealthKit
10
10
  import NitroModules
11
11
 
12
12
  func serializeQuantityTyped(unit: HKUnit, quantityNullable: HKQuantity?) -> Quantity? {
13
- guard let q = quantityNullable else {
14
- return nil
15
- }
13
+ guard let q = quantityNullable else {
14
+ return nil
15
+ }
16
16
 
17
- return Quantity(
18
- unit: unit.unitString,
19
- quantity: q.doubleValue(for: unit)
20
- )
17
+ return Quantity(
18
+ unit: unit.unitString,
19
+ quantity: q.doubleValue(for: unit)
20
+ )
21
+ }
22
+
23
+ func serializeWeatherCondition(_ hkWeatherCondition: HKWeatherCondition?) -> WeatherCondition? {
24
+ guard let hkWeatherCondition = hkWeatherCondition else {
25
+ return nil
26
+ }
27
+ return WeatherCondition(rawValue: Int32(hkWeatherCondition.rawValue))
28
+ }
29
+
30
+ func serializeInsulinDeliveryReason(_ hkReason: HKInsulinDeliveryReason?) -> InsulinDeliveryReason? {
31
+ guard let hkReason = hkReason else {
32
+ return nil
33
+ }
34
+ return InsulinDeliveryReason(rawValue: Int32(hkReason.rawValue))
35
+ }
36
+
37
+ func serializeHeartRateMotionContext(_ hkContext: HKHeartRateMotionContext?)
38
+ -> HeartRateMotionContext? {
39
+ guard let hkContext = hkContext else {
40
+ return nil
41
+ }
42
+ return HeartRateMotionContext(rawValue: Int32(hkContext.rawValue))
21
43
  }
22
44
 
23
45
  func serializeQuantityTyped(unit: HKUnit, quantity: HKQuantity) -> Quantity {
24
- return Quantity(
25
- unit: unit.unitString,
26
- quantity: quantity.doubleValue(for: unit)
27
- )
46
+ return Quantity(
47
+ unit: unit.unitString,
48
+ quantity: quantity.doubleValue(for: unit)
49
+ )
28
50
  }
29
51
 
30
52
  func serializeQuantitySample(sample: HKQuantitySample, unit: HKUnit) throws -> QuantitySample {
31
- if let quantityType = QuantityTypeIdentifier(fromString: sample.quantityType.identifier) {
32
- return QuantitySample(
33
- uuid: sample.uuid.uuidString,
34
- device: serializeDevice(hkDevice: sample.device),
35
- quantityType: quantityType,
36
- startDate: sample.startDate,
37
- endDate: sample.endDate,
38
- quantity: sample.quantity.doubleValue(for: unit),
39
- unit: unit.unitString,
40
- metadata: serializeMetadata(sample.metadata),
41
- sourceRevision: serializeSourceRevision(sample.sourceRevision)
42
- )
43
- }
44
- throw RuntimeError.error(withMessage: "[react-native-healthkit] Unable to recognize quantityType: \(sample.quantityType.identifier)")
53
+ if let quantityType = QuantityTypeIdentifier(fromString: sample.quantityType.identifier) {
54
+ return QuantitySample(
55
+ quantityType: quantityType,
56
+ quantity: sample.quantity.doubleValue(for: unit),
57
+ unit: unit.unitString,
58
+ sampleType: serializeSampleType(sample.sampleType),
59
+ startDate: sample.startDate,
60
+ endDate: sample.endDate,
61
+ hasUndeterminedDuration: sample.hasUndeterminedDuration,
62
+
63
+ metadataWeatherCondition: serializeWeatherCondition(
64
+ sample.metadata?[HKMetadataKeyWeatherCondition] as? HKWeatherCondition),
65
+ metadataWeatherHumidity: serializeUnknownQuantityTyped(
66
+ quantity: sample.metadata?[HKMetadataKeyWeatherHumidity] as? HKQuantity),
67
+ metadataWeatherTemperature: serializeUnknownQuantityTyped(
68
+ quantity: sample.metadata?[HKMetadataKeyWeatherTemperature] as? HKQuantity),
69
+ metadataInsulinDeliveryReason: serializeInsulinDeliveryReason(
70
+ sample.metadata?[HKMetadataKeyInsulinDeliveryReason] as? HKInsulinDeliveryReason),
71
+ metadataHeartRateMotionContext: serializeHeartRateMotionContext(
72
+ sample.metadata?[HKMetadataKeyHeartRateMotionContext] as? HKHeartRateMotionContext),
73
+
74
+ uuid: sample.uuid.uuidString,
75
+ sourceRevision: serializeSourceRevision(sample.sourceRevision),
76
+ device: serializeDevice(hkDevice: sample.device),
77
+ metadata: serializeMetadata(sample.metadata),
78
+
79
+ metadataExternalUUID: sample.metadata?[HKMetadataKeyExternalUUID] as? String,
80
+ metadataTimeZone: sample.metadata?[HKMetadataKeyTimeZone] as? String,
81
+ metadataWasUserEntered: sample.metadata?[HKMetadataKeyWasUserEntered] as? Bool,
82
+ metadataDeviceSerialNumber: sample.metadata?[HKMetadataKeyDeviceSerialNumber] as? String,
83
+ metadataUdiDeviceIdentifier: sample.metadata?[HKMetadataKeyUDIDeviceIdentifier] as? String,
84
+ metadataUdiProductionIdentifier: sample.metadata?[HKMetadataKeyUDIProductionIdentifier]
85
+ as? String,
86
+ metadataDigitalSignature: sample.metadata?[HKMetadataKeyDigitalSignature] as? String,
87
+ metadataDeviceName: sample.metadata?[HKMetadataKeyDeviceName] as? String,
88
+ metadataDeviceManufacturerName: sample.metadata?[HKMetadataKeyDeviceManufacturerName]
89
+ as? String,
90
+ metadataSyncIdentifier: sample.metadata?[HKMetadataKeySyncIdentifier] as? String,
91
+ metadataSyncVersion: sample.metadata?[HKMetadataKeySyncVersion] as? Double,
92
+ metadataWasTakenInLab: sample.metadata?[HKMetadataKeyWasTakenInLab] as? Bool,
93
+ metadataReferenceRangeLowerLimit: sample.metadata?[HKMetadataKeyReferenceRangeLowerLimit]
94
+ as? Double,
95
+ metadataReferenceRangeUpperLimit: sample.metadata?[HKMetadataKeyReferenceRangeUpperLimit]
96
+ as? Double,
97
+ metadataAlgorithmVersion: sample.metadata?[HKMetadataKeyAlgorithmVersion] as? Double
98
+ )
99
+ }
100
+ throw runtimeErrorWithPrefix(
101
+ "Unable to recognize quantityType: \(sample.quantityType.identifier)")
45
102
  }
46
103
 
47
104
  func serializeDeletedSample(sample: HKDeletedObject) -> DeletedSample {
@@ -52,243 +109,249 @@ func serializeDeletedSample(sample: HKDeletedObject) -> DeletedSample {
52
109
  }
53
110
 
54
111
  func serializeCategorySample(sample: HKCategorySample) -> CategorySample {
55
- return CategorySample(
56
- uuid: sample.uuid.uuidString,
57
- device: serializeDevice(hkDevice: sample.device),
58
- categoryType: CategoryTypeIdentifier(fromString: sample.categoryType.identifier)!,
59
- startDate: sample.startDate,
60
- endDate: sample.endDate,
61
- value: Double(sample.value),
62
- metadata: serializeMetadata(sample.metadata),
63
- sourceRevision: serializeSourceRevision(sample.sourceRevision)
64
- )
112
+ return CategorySample(
113
+ categoryType: CategoryTypeIdentifier(fromString: sample.categoryType.identifier)!,
114
+ value: Double(sample.value),
115
+ sampleType: serializeSampleType(sample.sampleType),
116
+ startDate: sample.startDate,
117
+ endDate: sample.endDate,
118
+ hasUndeterminedDuration: sample.hasUndeterminedDuration,
119
+
120
+ metadataWeatherCondition: serializeWeatherCondition(
121
+ sample.metadata?[HKMetadataKeyWeatherCondition] as? HKWeatherCondition),
122
+ metadataWeatherHumidity: serializeUnknownQuantityTyped(
123
+ quantity: sample.metadata?[HKMetadataKeyWeatherHumidity] as? HKQuantity),
124
+ metadataWeatherTemperature: serializeUnknownQuantityTyped(
125
+ quantity: sample.metadata?[HKMetadataKeyWeatherTemperature] as? HKQuantity),
126
+ metadataInsulinDeliveryReason: serializeInsulinDeliveryReason(
127
+ sample.metadata?[HKMetadataKeyInsulinDeliveryReason] as? HKInsulinDeliveryReason),
128
+ metadataHeartRateMotionContext: serializeHeartRateMotionContext(
129
+ sample.metadata?[HKMetadataKeyHeartRateMotionContext] as? HKHeartRateMotionContext),
130
+
131
+ uuid: sample.uuid.uuidString,
132
+ sourceRevision: serializeSourceRevision(sample.sourceRevision),
133
+ device: serializeDevice(hkDevice: sample.device),
134
+ metadata: serializeMetadata(sample.metadata),
135
+
136
+ metadataExternalUUID: sample.metadata?[HKMetadataKeyExternalUUID] as? String,
137
+ metadataTimeZone: sample.metadata?[HKMetadataKeyTimeZone] as? String,
138
+ metadataWasUserEntered: sample.metadata?[HKMetadataKeyWasUserEntered] as? Bool,
139
+ metadataDeviceSerialNumber: sample.metadata?[HKMetadataKeyDeviceSerialNumber] as? String,
140
+ metadataUdiDeviceIdentifier: sample.metadata?[HKMetadataKeyUDIDeviceIdentifier] as? String,
141
+ metadataUdiProductionIdentifier: sample.metadata?[HKMetadataKeyUDIProductionIdentifier]
142
+ as? String,
143
+ metadataDigitalSignature: sample.metadata?[HKMetadataKeyDigitalSignature] as? String,
144
+ metadataDeviceName: sample.metadata?[HKMetadataKeyDeviceName] as? String,
145
+ metadataDeviceManufacturerName: sample.metadata?[HKMetadataKeyDeviceManufacturerName]
146
+ as? String,
147
+ metadataSyncIdentifier: sample.metadata?[HKMetadataKeySyncIdentifier] as? String,
148
+ metadataSyncVersion: sample.metadata?[HKMetadataKeySyncVersion] as? Double,
149
+ metadataWasTakenInLab: sample.metadata?[HKMetadataKeyWasTakenInLab] as? Bool,
150
+ metadataReferenceRangeLowerLimit: sample.metadata?[HKMetadataKeyReferenceRangeLowerLimit]
151
+ as? Double,
152
+ metadataReferenceRangeUpperLimit: sample.metadata?[HKMetadataKeyReferenceRangeUpperLimit]
153
+ as? Double,
154
+ metadataAlgorithmVersion: sample.metadata?[HKMetadataKeyAlgorithmVersion] as? Double
155
+ )
65
156
  }
66
157
 
67
158
  func serializeSource(_ source: HKSource) -> SourceProxy {
68
- return SourceProxy(
69
- source: source
70
- )
159
+ return SourceProxy(
160
+ source: source
161
+ )
71
162
  }
72
163
 
73
164
  func serializeUnknownQuantityTyped(quantity: HKQuantity?) -> Quantity? {
74
- guard let quantity = quantity else {
75
- return nil
76
- }
165
+ guard let quantity = quantity else {
166
+ return nil
167
+ }
77
168
 
78
- if quantity.is(compatibleWith: HKUnit.percent()) {
79
- return serializeQuantityTyped(unit: HKUnit.percent(), quantity: quantity)
80
- }
169
+ if quantity.is(compatibleWith: HKUnit.percent()) {
170
+ return serializeQuantityTyped(unit: HKUnit.percent(), quantity: quantity)
171
+ }
81
172
 
82
- if quantity.is(compatibleWith: HKUnit.second()) {
83
- return serializeQuantityTyped(unit: HKUnit.second(), quantity: quantity)
84
- }
173
+ if quantity.is(compatibleWith: HKUnit.second()) {
174
+ return serializeQuantityTyped(unit: HKUnit.second(), quantity: quantity)
175
+ }
85
176
 
86
- if quantity.is(compatibleWith: HKUnit.kilocalorie()) {
87
- return serializeQuantityTyped(unit: HKUnit.kilocalorie(), quantity: quantity)
88
- }
177
+ if quantity.is(compatibleWith: HKUnit.kilocalorie()) {
178
+ return serializeQuantityTyped(unit: HKUnit.kilocalorie(), quantity: quantity)
179
+ }
89
180
 
90
- if quantity.is(compatibleWith: HKUnit.count()) {
91
- return serializeQuantityTyped(unit: HKUnit.count(), quantity: quantity)
92
- }
181
+ if quantity.is(compatibleWith: HKUnit.count()) {
182
+ return serializeQuantityTyped(unit: HKUnit.count(), quantity: quantity)
183
+ }
93
184
 
94
- if quantity.is(compatibleWith: HKUnit.meter()) {
95
- return serializeQuantityTyped(unit: HKUnit.meter(), quantity: quantity)
96
- }
185
+ if quantity.is(compatibleWith: HKUnit.meter()) {
186
+ return serializeQuantityTyped(unit: HKUnit.meter(), quantity: quantity)
187
+ }
97
188
 
98
- if quantity.is(compatibleWith: HKUnit.degreeCelsius()) {
99
- return serializeQuantityTyped(unit: HKUnit.degreeCelsius(), quantity: quantity)
100
- }
189
+ if quantity.is(compatibleWith: HKUnit.degreeCelsius()) {
190
+ return serializeQuantityTyped(unit: HKUnit.degreeCelsius(), quantity: quantity)
191
+ }
101
192
 
102
- if quantity.is(compatibleWith: HKUnit.atmosphere()) {
103
- return serializeQuantityTyped(unit: HKUnit.atmosphere(), quantity: quantity)
104
- }
193
+ if quantity.is(compatibleWith: HKUnit.atmosphere()) {
194
+ return serializeQuantityTyped(unit: HKUnit.atmosphere(), quantity: quantity)
195
+ }
105
196
 
106
- if quantity.is(compatibleWith: HKUnit.gram()) {
107
- return serializeQuantityTyped(unit: HKUnit.gram(), quantity: quantity)
108
- }
197
+ if quantity.is(compatibleWith: HKUnit.gram()) {
198
+ return serializeQuantityTyped(unit: HKUnit.gram(), quantity: quantity)
199
+ }
109
200
 
110
- if quantity.is(compatibleWith: HKUnit.liter()) {
111
- return serializeQuantityTyped(unit: HKUnit.liter(), quantity: quantity)
112
- }
201
+ if quantity.is(compatibleWith: HKUnit.liter()) {
202
+ return serializeQuantityTyped(unit: HKUnit.liter(), quantity: quantity)
203
+ }
113
204
 
114
- if quantity.is(compatibleWith: HKUnit.volt()) {
115
- return serializeQuantityTyped(unit: HKUnit.volt(), quantity: quantity)
116
- }
205
+ if quantity.is(compatibleWith: HKUnit.volt()) {
206
+ return serializeQuantityTyped(unit: HKUnit.volt(), quantity: quantity)
207
+ }
117
208
 
118
- if quantity.is(compatibleWith: HKUnit.hertz()) {
119
- return serializeQuantityTyped(unit: HKUnit.hertz(), quantity: quantity)
120
- }
209
+ if quantity.is(compatibleWith: HKUnit.hertz()) {
210
+ return serializeQuantityTyped(unit: HKUnit.hertz(), quantity: quantity)
211
+ }
121
212
 
122
- if quantity.is(compatibleWith: SpeedUnit) {
123
- return serializeQuantityTyped(unit: SpeedUnit, quantity: quantity)
124
- }
213
+ if quantity.is(compatibleWith: SpeedUnit) {
214
+ return serializeQuantityTyped(unit: SpeedUnit, quantity: quantity)
215
+ }
125
216
 
126
- if quantity.is(compatibleWith: METUnit) {
127
- return serializeQuantityTyped(unit: METUnit, quantity: quantity)
128
- }
217
+ if quantity.is(compatibleWith: METUnit) {
218
+ return serializeQuantityTyped(unit: METUnit, quantity: quantity)
219
+ }
129
220
 
130
- if #available(iOS 11, *) {
131
- if quantity.is(compatibleWith: HKUnit.internationalUnit()) {
132
- return serializeQuantityTyped(unit: HKUnit.internationalUnit(), quantity: quantity)
133
- }
221
+ if #available(iOS 11, *) {
222
+ if quantity.is(compatibleWith: HKUnit.internationalUnit()) {
223
+ return serializeQuantityTyped(unit: HKUnit.internationalUnit(), quantity: quantity)
134
224
  }
225
+ }
135
226
 
136
- if #available(iOS 13, *) {
137
- if quantity.is(compatibleWith: HKUnit.hertz()) {
138
- return serializeQuantityTyped(unit: HKUnit.hertz(), quantity: quantity)
139
- }
140
- if quantity.is(compatibleWith: HKUnit.decibelHearingLevel()) {
141
- return serializeQuantityTyped(unit: HKUnit.decibelHearingLevel(), quantity: quantity)
142
- }
227
+ if #available(iOS 13, *) {
228
+ if quantity.is(compatibleWith: HKUnit.hertz()) {
229
+ return serializeQuantityTyped(unit: HKUnit.hertz(), quantity: quantity)
230
+ }
231
+ if quantity.is(compatibleWith: HKUnit.decibelHearingLevel()) {
232
+ return serializeQuantityTyped(unit: HKUnit.decibelHearingLevel(), quantity: quantity)
143
233
  }
234
+ }
144
235
 
145
- if #available(iOS 16.0, *) {
146
- if quantity.is(compatibleWith: HKUnit.watt()) {
147
- return serializeQuantityTyped(unit: HKUnit.watt(), quantity: quantity)
148
- }
236
+ if #available(iOS 16.0, *) {
237
+ if quantity.is(compatibleWith: HKUnit.watt()) {
238
+ return serializeQuantityTyped(unit: HKUnit.watt(), quantity: quantity)
239
+ }
149
240
 
150
- if quantity.is(compatibleWith: HKUnit.degreeAngle()) {
151
- return serializeQuantityTyped(unit: HKUnit.degreeAngle(), quantity: quantity)
152
- }
241
+ if quantity.is(compatibleWith: HKUnit.degreeAngle()) {
242
+ return serializeQuantityTyped(unit: HKUnit.degreeAngle(), quantity: quantity)
153
243
  }
244
+ }
154
245
 
155
- if #available(iOS 17.0, *) {
156
- if quantity.is(compatibleWith: HKUnit.lux()) {
157
- return serializeQuantityTyped(unit: HKUnit.lux(), quantity: quantity)
158
- }
246
+ if #available(iOS 17.0, *) {
247
+ if quantity.is(compatibleWith: HKUnit.lux()) {
248
+ return serializeQuantityTyped(unit: HKUnit.lux(), quantity: quantity)
159
249
  }
250
+ }
160
251
 
161
- #if compiler(>=6)
252
+ #if compiler(>=6)
162
253
  if #available(iOS 18.0, *) {
163
- if quantity.is(compatibleWith: HKUnit.appleEffortScore()) {
164
- return serializeQuantityTyped(unit: HKUnit.appleEffortScore(), quantity: quantity)
165
- }
254
+ if quantity.is(compatibleWith: HKUnit.appleEffortScore()) {
255
+ return serializeQuantityTyped(unit: HKUnit.appleEffortScore(), quantity: quantity)
256
+ }
166
257
  }
167
- #endif
258
+ #endif
168
259
 
169
- return nil
260
+ return nil
170
261
  }
171
262
 
172
263
  func serializeUnknownQuantity(quantity: HKQuantity) -> [String: AnyValue]? {
173
- if let quantityTyped = serializeUnknownQuantityTyped(quantity: quantity) {
174
- return [
175
- "quantity": AnyValue.number(quantityTyped.quantity),
176
- "unit": AnyValue.string(quantityTyped.unit)
177
- ]
178
- }
179
-
180
- return nil
264
+ if let quantityTyped = serializeUnknownQuantityTyped(quantity: quantity) {
265
+ return [
266
+ "quantity": AnyValue.number(quantityTyped.quantity),
267
+ "unit": AnyValue.string(quantityTyped.unit),
268
+ ]
269
+ }
270
+
271
+ return nil
181
272
  }
182
273
 
183
274
  func serializeMetadata(_ metadata: [String: Any]?) -> AnyMap {
184
- let serialized = AnyMap()
185
- if let m = metadata {
186
- for item in m {
187
- if let bool = item.value as? Bool {
188
- serialized.setBoolean(key: item.key, value: bool)
189
- }
190
-
191
- if let str = item.value as? String {
192
- serialized.setString(key: item.key, value: str)
193
- }
194
-
195
- if let double = item.value as? Double {
196
- serialized.setDouble(key: item.key, value: double)
197
- }
198
-
199
- if let quantity = item.value as? HKQuantity {
200
- if let s = serializeUnknownQuantity(quantity: quantity) {
201
- serialized.setObject(key: item.key, value: s)
202
- }
203
- }
204
-
205
- if let dict = item.value as? [String: AnyValue] {
206
- serialized.setObject(key: item.key, value: dict)
207
- }
275
+ let serialized = AnyMap()
276
+ if let m = metadata {
277
+ for item in m {
278
+ if let bool = item.value as? Bool {
279
+ serialized.setBoolean(key: item.key, value: bool)
280
+ }
281
+
282
+ if let str = item.value as? String {
283
+ serialized.setString(key: item.key, value: str)
284
+ }
285
+
286
+ if let double = item.value as? Double {
287
+ serialized.setDouble(key: item.key, value: double)
288
+ }
289
+
290
+ if let quantity = item.value as? HKQuantity {
291
+ if let s = serializeUnknownQuantity(quantity: quantity) {
292
+ serialized.setObject(key: item.key, value: s)
208
293
  }
209
- }
210
- return serialized
211
- }
294
+ }
212
295
 
213
- /*func serializeGenericMetadata(_ metadata: [String: Any]?) -> GenericMetadata? {
214
- if let metadata = metadata {
215
- return GenericMetadata(
216
- HKExternalUUID: metadata["HKExternalUUID"] as? String,
217
- HKTimeZone: metadata["HKTimeZone"] as? String,
218
- HKWasUserEntered: metadata["HKWasUserEntered"] as? Bool,
219
- HKDeviceSerialNumber: metadata["HKDeviceSerialNumber"] as? String,
220
- HKUDIDeviceIdentifier: metadata["HKUDIDeviceIdentifier"] as? String,
221
- HKUDIProductionIdentifier: metadata["HKUDIProductionIdentifier"] as? String,
222
- HKDigitalSignature: metadata["HKDigitalSignature"] as? String,
223
- HKDeviceName: metadata["HKDeviceName"] as? String,
224
- HKDeviceManufacturerName: metadata["HKDeviceManufacturerName"] as? String,
225
- HKSyncIdentifier: metadata["HKSyncIdentifier"] as? String,
226
- HKSyncVersion: metadata["HKSyncVersion"] as? Double,
227
- HKWasTakenInLab: metadata["HKWasTakenInLab"] as? Bool,
228
- HKReferenceRangeLowerLimit: metadata["HKReferenceRangeLowerLimit"] as? Double,
229
- HKReferenceRangeUpperLimit: metadata["HKReferenceRangeUpperLimit"] as? Double,
230
- allMetadata: serializeAllMetadata(metadata)
231
- )
296
+ if let dict = item.value as? [String: AnyValue] {
297
+ serialized.setObject(key: item.key, value: dict)
298
+ }
232
299
  }
233
- return nil
234
- }*/
300
+ }
301
+ return serialized
302
+ }
235
303
 
236
304
  func serializeDevice(hkDevice: HKDevice?) -> Device? {
237
- guard let hkDevice = hkDevice else {
238
- return nil
239
- }
240
-
241
- return Device(
242
- name: hkDevice.name,
243
- firmwareVersion: hkDevice.firmwareVersion,
244
- hardwareVersion: hkDevice.hardwareVersion,
245
- localIdentifier: hkDevice.localIdentifier,
246
- manufacturer: hkDevice.manufacturer,
247
- model: hkDevice.model,
248
- softwareVersion: hkDevice.softwareVersion,
249
- udiDeviceIdentifier: hkDevice.udiDeviceIdentifier
250
- )
305
+ guard let hkDevice = hkDevice else {
306
+ return nil
307
+ }
308
+
309
+ return Device(
310
+ name: hkDevice.name,
311
+ firmwareVersion: hkDevice.firmwareVersion,
312
+ hardwareVersion: hkDevice.hardwareVersion,
313
+ localIdentifier: hkDevice.localIdentifier,
314
+ manufacturer: hkDevice.manufacturer,
315
+ model: hkDevice.model,
316
+ softwareVersion: hkDevice.softwareVersion,
317
+ udiDeviceIdentifier: hkDevice.udiDeviceIdentifier
318
+ )
251
319
  }
252
320
 
253
321
  func serializeOperatingSystemVersion(_ version: OperatingSystemVersion?) -> String? {
254
- guard let version = version else {
255
- return nil
256
- }
322
+ guard let version = version else {
323
+ return nil
324
+ }
257
325
 
258
- let versionString = "\(version.majorVersion).\(version.minorVersion).\(version.patchVersion)"
326
+ let versionString = "\(version.majorVersion).\(version.minorVersion).\(version.patchVersion)"
259
327
 
260
- return versionString
328
+ return versionString
261
329
  }
262
330
 
263
- func serializeSourceRevision(_ hkSourceRevision: HKSourceRevision?) -> SourceRevision? {
264
- guard let hkSourceRevision = hkSourceRevision else {
265
- return nil
266
- }
267
-
268
- if #available(iOS 11, *) {
269
- return SourceRevision(
270
- source: serializeSource(hkSourceRevision.source),
271
- version: hkSourceRevision.version,
272
- operatingSystemVersion: serializeOperatingSystemVersion( hkSourceRevision.operatingSystemVersion),
273
- productType: hkSourceRevision.productType
274
- )
275
- }
276
-
331
+ func serializeSourceRevision(_ hkSourceRevision: HKSourceRevision) -> SourceRevision {
332
+ if #available(iOS 11, *) {
277
333
  return SourceRevision(
278
- source: serializeSource(hkSourceRevision.source),
279
- version: hkSourceRevision.version,
280
- operatingSystemVersion: nil,
281
- productType: nil
334
+ source: serializeSource(hkSourceRevision.source),
335
+ version: hkSourceRevision.version,
336
+ operatingSystemVersion: serializeOperatingSystemVersion(
337
+ hkSourceRevision.operatingSystemVersion),
338
+ productType: hkSourceRevision.productType
282
339
  )
283
- }
340
+ }
284
341
 
285
- func serializeAnchor(anchor: HKQueryAnchor?) -> String? {
286
- if let anchor = anchor {
287
- let data = NSKeyedArchiver.archivedData(withRootObject: anchor)
288
- let encoded = data.base64EncodedString()
342
+ return SourceRevision(
343
+ source: serializeSource(hkSourceRevision.source),
344
+ version: hkSourceRevision.version,
345
+ operatingSystemVersion: nil,
346
+ productType: nil
347
+ )
348
+ }
289
349
 
290
- return encoded
291
- } else {
292
- return nil
293
- }
350
+ func serializeSampleType(_ sampleType: HKSampleType) -> SampleType {
351
+ return SampleType(
352
+ identifier: sampleType.identifier,
353
+ allowsRecalibrationForEstimates: sampleType.allowsRecalibrationForEstimates,
354
+ isMinimumDurationRestricted: sampleType.isMinimumDurationRestricted,
355
+ isMaximumDurationRestricted: sampleType.isMaximumDurationRestricted
356
+ )
294
357
  }
@@ -11,7 +11,7 @@ import NitroModules
11
11
  class SourceProxy: HybridSourceProxySpec {
12
12
  func toJSON(key: String?) throws -> Source {
13
13
  if key != nil && key?.isEmpty != true {
14
- print("SourceProxy does not support toJSON with key: \(key!)")
14
+ warnWithPrefix("SourceProxy does not support toJSON with key: \(key!)")
15
15
  }
16
16
 
17
17
  return Source(
@@ -21,7 +21,7 @@ class SourceProxy: HybridSourceProxySpec {
21
21
 
22
22
  }
23
23
 
24
- private let source: HKSource
24
+ let source: HKSource
25
25
 
26
26
  let name: String
27
27