@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
@@ -23,31 +23,12 @@
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
25
 
26
- // Forward declaration of `PredicateWithUUID` to properly resolve imports.
27
- namespace margelo::nitro::healthkit { struct PredicateWithUUID; }
28
- // Forward declaration of `PredicateWithUUIDs` to properly resolve imports.
29
- namespace margelo::nitro::healthkit { struct PredicateWithUUIDs; }
30
- // Forward declaration of `PredicateWithMetadataKey` to properly resolve imports.
31
- namespace margelo::nitro::healthkit { struct PredicateWithMetadataKey; }
32
- // Forward declaration of `PredicateWithStartAndEnd` to properly resolve imports.
33
- namespace margelo::nitro::healthkit { struct PredicateWithStartAndEnd; }
34
- // Forward declaration of `PredicateFromWorkout` to properly resolve imports.
35
- namespace margelo::nitro::healthkit { struct PredicateFromWorkout; }
36
- // Forward declaration of `FilterForSamplesAnd` to properly resolve imports.
37
- namespace margelo::nitro::healthkit { struct FilterForSamplesAnd; }
38
- // Forward declaration of `FilterForSamplesOr` to properly resolve imports.
39
- namespace margelo::nitro::healthkit { struct FilterForSamplesOr; }
26
+ // Forward declaration of `FilterForSamples` to properly resolve imports.
27
+ namespace margelo::nitro::healthkit { struct FilterForSamples; }
40
28
 
41
29
  #include <string>
42
30
  #include <optional>
43
- #include "PredicateWithUUID.hpp"
44
- #include "PredicateWithUUIDs.hpp"
45
- #include "PredicateWithMetadataKey.hpp"
46
- #include "PredicateWithStartAndEnd.hpp"
47
- #include "PredicateFromWorkout.hpp"
48
- #include "FilterForSamplesAnd.hpp"
49
- #include "FilterForSamplesOr.hpp"
50
- #include <variant>
31
+ #include "FilterForSamples.hpp"
51
32
 
52
33
  namespace margelo::nitro::healthkit {
53
34
 
@@ -58,12 +39,12 @@ namespace margelo::nitro::healthkit {
58
39
  public:
59
40
  bool includeVoltages SWIFT_PRIVATE;
60
41
  std::optional<std::string> anchor SWIFT_PRIVATE;
61
- std::optional<std::variant<PredicateWithUUID, PredicateWithUUIDs, PredicateWithMetadataKey, PredicateWithStartAndEnd, PredicateFromWorkout, FilterForSamplesAnd, FilterForSamplesOr>> filter SWIFT_PRIVATE;
62
- std::optional<double> limit SWIFT_PRIVATE;
42
+ std::optional<FilterForSamples> filter SWIFT_PRIVATE;
43
+ double limit SWIFT_PRIVATE;
63
44
 
64
45
  public:
65
46
  ECGQueryOptionsWithAnchor() = default;
66
- explicit ECGQueryOptionsWithAnchor(bool includeVoltages, std::optional<std::string> anchor, std::optional<std::variant<PredicateWithUUID, PredicateWithUUIDs, PredicateWithMetadataKey, PredicateWithStartAndEnd, PredicateFromWorkout, FilterForSamplesAnd, FilterForSamplesOr>> filter, std::optional<double> limit): includeVoltages(includeVoltages), anchor(anchor), filter(filter), limit(limit) {}
47
+ explicit ECGQueryOptionsWithAnchor(bool includeVoltages, std::optional<std::string> anchor, std::optional<FilterForSamples> filter, double limit): includeVoltages(includeVoltages), anchor(anchor), filter(filter), limit(limit) {}
67
48
  };
68
49
 
69
50
  } // namespace margelo::nitro::healthkit
@@ -78,16 +59,16 @@ namespace margelo::nitro {
78
59
  return margelo::nitro::healthkit::ECGQueryOptionsWithAnchor(
79
60
  JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "includeVoltages")),
80
61
  JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "anchor")),
81
- JSIConverter<std::optional<std::variant<margelo::nitro::healthkit::PredicateWithUUID, margelo::nitro::healthkit::PredicateWithUUIDs, margelo::nitro::healthkit::PredicateWithMetadataKey, margelo::nitro::healthkit::PredicateWithStartAndEnd, margelo::nitro::healthkit::PredicateFromWorkout, margelo::nitro::healthkit::FilterForSamplesAnd, margelo::nitro::healthkit::FilterForSamplesOr>>>::fromJSI(runtime, obj.getProperty(runtime, "filter")),
82
- JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "limit"))
62
+ JSIConverter<std::optional<margelo::nitro::healthkit::FilterForSamples>>::fromJSI(runtime, obj.getProperty(runtime, "filter")),
63
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "limit"))
83
64
  );
84
65
  }
85
66
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::healthkit::ECGQueryOptionsWithAnchor& arg) {
86
67
  jsi::Object obj(runtime);
87
68
  obj.setProperty(runtime, "includeVoltages", JSIConverter<bool>::toJSI(runtime, arg.includeVoltages));
88
69
  obj.setProperty(runtime, "anchor", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.anchor));
89
- obj.setProperty(runtime, "filter", JSIConverter<std::optional<std::variant<margelo::nitro::healthkit::PredicateWithUUID, margelo::nitro::healthkit::PredicateWithUUIDs, margelo::nitro::healthkit::PredicateWithMetadataKey, margelo::nitro::healthkit::PredicateWithStartAndEnd, margelo::nitro::healthkit::PredicateFromWorkout, margelo::nitro::healthkit::FilterForSamplesAnd, margelo::nitro::healthkit::FilterForSamplesOr>>>::toJSI(runtime, arg.filter));
90
- obj.setProperty(runtime, "limit", JSIConverter<std::optional<double>>::toJSI(runtime, arg.limit));
70
+ obj.setProperty(runtime, "filter", JSIConverter<std::optional<margelo::nitro::healthkit::FilterForSamples>>::toJSI(runtime, arg.filter));
71
+ obj.setProperty(runtime, "limit", JSIConverter<double>::toJSI(runtime, arg.limit));
91
72
  return obj;
92
73
  }
93
74
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -100,8 +81,8 @@ namespace margelo::nitro {
100
81
  }
101
82
  if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "includeVoltages"))) return false;
102
83
  if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "anchor"))) return false;
103
- if (!JSIConverter<std::optional<std::variant<margelo::nitro::healthkit::PredicateWithUUID, margelo::nitro::healthkit::PredicateWithUUIDs, margelo::nitro::healthkit::PredicateWithMetadataKey, margelo::nitro::healthkit::PredicateWithStartAndEnd, margelo::nitro::healthkit::PredicateFromWorkout, margelo::nitro::healthkit::FilterForSamplesAnd, margelo::nitro::healthkit::FilterForSamplesOr>>>::canConvert(runtime, obj.getProperty(runtime, "filter"))) return false;
104
- if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "limit"))) return false;
84
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::FilterForSamples>>::canConvert(runtime, obj.getProperty(runtime, "filter"))) return false;
85
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "limit"))) return false;
105
86
  return true;
106
87
  }
107
88
  };
@@ -23,30 +23,11 @@
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
25
 
26
- // Forward declaration of `PredicateWithUUID` to properly resolve imports.
27
- namespace margelo::nitro::healthkit { struct PredicateWithUUID; }
28
- // Forward declaration of `PredicateWithUUIDs` to properly resolve imports.
29
- namespace margelo::nitro::healthkit { struct PredicateWithUUIDs; }
30
- // Forward declaration of `PredicateWithMetadataKey` to properly resolve imports.
31
- namespace margelo::nitro::healthkit { struct PredicateWithMetadataKey; }
32
- // Forward declaration of `PredicateWithStartAndEnd` to properly resolve imports.
33
- namespace margelo::nitro::healthkit { struct PredicateWithStartAndEnd; }
34
- // Forward declaration of `PredicateFromWorkout` to properly resolve imports.
35
- namespace margelo::nitro::healthkit { struct PredicateFromWorkout; }
36
- // Forward declaration of `FilterForSamplesAnd` to properly resolve imports.
37
- namespace margelo::nitro::healthkit { struct FilterForSamplesAnd; }
38
- // Forward declaration of `FilterForSamplesOr` to properly resolve imports.
39
- namespace margelo::nitro::healthkit { struct FilterForSamplesOr; }
26
+ // Forward declaration of `FilterForSamples` to properly resolve imports.
27
+ namespace margelo::nitro::healthkit { struct FilterForSamples; }
40
28
 
41
29
  #include <optional>
42
- #include "PredicateWithUUID.hpp"
43
- #include "PredicateWithUUIDs.hpp"
44
- #include "PredicateWithMetadataKey.hpp"
45
- #include "PredicateWithStartAndEnd.hpp"
46
- #include "PredicateFromWorkout.hpp"
47
- #include "FilterForSamplesAnd.hpp"
48
- #include "FilterForSamplesOr.hpp"
49
- #include <variant>
30
+ #include "FilterForSamples.hpp"
50
31
 
51
32
  namespace margelo::nitro::healthkit {
52
33
 
@@ -57,12 +38,12 @@ namespace margelo::nitro::healthkit {
57
38
  public:
58
39
  std::optional<bool> includeVoltages SWIFT_PRIVATE;
59
40
  std::optional<bool> ascending SWIFT_PRIVATE;
60
- std::optional<std::variant<PredicateWithUUID, PredicateWithUUIDs, PredicateWithMetadataKey, PredicateWithStartAndEnd, PredicateFromWorkout, FilterForSamplesAnd, FilterForSamplesOr>> filter SWIFT_PRIVATE;
61
- std::optional<double> limit SWIFT_PRIVATE;
41
+ std::optional<FilterForSamples> filter SWIFT_PRIVATE;
42
+ double limit SWIFT_PRIVATE;
62
43
 
63
44
  public:
64
45
  ECGQueryOptionsWithSortOrder() = default;
65
- explicit ECGQueryOptionsWithSortOrder(std::optional<bool> includeVoltages, std::optional<bool> ascending, std::optional<std::variant<PredicateWithUUID, PredicateWithUUIDs, PredicateWithMetadataKey, PredicateWithStartAndEnd, PredicateFromWorkout, FilterForSamplesAnd, FilterForSamplesOr>> filter, std::optional<double> limit): includeVoltages(includeVoltages), ascending(ascending), filter(filter), limit(limit) {}
46
+ explicit ECGQueryOptionsWithSortOrder(std::optional<bool> includeVoltages, std::optional<bool> ascending, std::optional<FilterForSamples> filter, double limit): includeVoltages(includeVoltages), ascending(ascending), filter(filter), limit(limit) {}
66
47
  };
67
48
 
68
49
  } // namespace margelo::nitro::healthkit
@@ -77,16 +58,16 @@ namespace margelo::nitro {
77
58
  return margelo::nitro::healthkit::ECGQueryOptionsWithSortOrder(
78
59
  JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "includeVoltages")),
79
60
  JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "ascending")),
80
- JSIConverter<std::optional<std::variant<margelo::nitro::healthkit::PredicateWithUUID, margelo::nitro::healthkit::PredicateWithUUIDs, margelo::nitro::healthkit::PredicateWithMetadataKey, margelo::nitro::healthkit::PredicateWithStartAndEnd, margelo::nitro::healthkit::PredicateFromWorkout, margelo::nitro::healthkit::FilterForSamplesAnd, margelo::nitro::healthkit::FilterForSamplesOr>>>::fromJSI(runtime, obj.getProperty(runtime, "filter")),
81
- JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "limit"))
61
+ JSIConverter<std::optional<margelo::nitro::healthkit::FilterForSamples>>::fromJSI(runtime, obj.getProperty(runtime, "filter")),
62
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "limit"))
82
63
  );
83
64
  }
84
65
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::healthkit::ECGQueryOptionsWithSortOrder& arg) {
85
66
  jsi::Object obj(runtime);
86
67
  obj.setProperty(runtime, "includeVoltages", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.includeVoltages));
87
68
  obj.setProperty(runtime, "ascending", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.ascending));
88
- obj.setProperty(runtime, "filter", JSIConverter<std::optional<std::variant<margelo::nitro::healthkit::PredicateWithUUID, margelo::nitro::healthkit::PredicateWithUUIDs, margelo::nitro::healthkit::PredicateWithMetadataKey, margelo::nitro::healthkit::PredicateWithStartAndEnd, margelo::nitro::healthkit::PredicateFromWorkout, margelo::nitro::healthkit::FilterForSamplesAnd, margelo::nitro::healthkit::FilterForSamplesOr>>>::toJSI(runtime, arg.filter));
89
- obj.setProperty(runtime, "limit", JSIConverter<std::optional<double>>::toJSI(runtime, arg.limit));
69
+ obj.setProperty(runtime, "filter", JSIConverter<std::optional<margelo::nitro::healthkit::FilterForSamples>>::toJSI(runtime, arg.filter));
70
+ obj.setProperty(runtime, "limit", JSIConverter<double>::toJSI(runtime, arg.limit));
90
71
  return obj;
91
72
  }
92
73
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -99,8 +80,8 @@ namespace margelo::nitro {
99
80
  }
100
81
  if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "includeVoltages"))) return false;
101
82
  if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "ascending"))) return false;
102
- if (!JSIConverter<std::optional<std::variant<margelo::nitro::healthkit::PredicateWithUUID, margelo::nitro::healthkit::PredicateWithUUIDs, margelo::nitro::healthkit::PredicateWithMetadataKey, margelo::nitro::healthkit::PredicateWithStartAndEnd, margelo::nitro::healthkit::PredicateFromWorkout, margelo::nitro::healthkit::FilterForSamplesAnd, margelo::nitro::healthkit::FilterForSamplesOr>>>::canConvert(runtime, obj.getProperty(runtime, "filter"))) return false;
103
- if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "limit"))) return false;
83
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::FilterForSamples>>::canConvert(runtime, obj.getProperty(runtime, "filter"))) return false;
84
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "limit"))) return false;
104
85
  return true;
105
86
  }
106
87
  };
@@ -23,27 +23,42 @@
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
25
 
26
- // Forward declaration of `Device` to properly resolve imports.
27
- namespace margelo::nitro::healthkit { struct Device; }
28
26
  // Forward declaration of `ElectrocardiogramClassification` to properly resolve imports.
29
27
  namespace margelo::nitro::healthkit { enum class ElectrocardiogramClassification; }
30
28
  // Forward declaration of `ElectrocardiogramSymptomsStatus` to properly resolve imports.
31
29
  namespace margelo::nitro::healthkit { enum class ElectrocardiogramSymptomsStatus; }
32
30
  // Forward declaration of `ElectrocardiogramVoltage` to properly resolve imports.
33
31
  namespace margelo::nitro::healthkit { struct ElectrocardiogramVoltage; }
32
+ // Forward declaration of `SampleType` to properly resolve imports.
33
+ namespace margelo::nitro::healthkit { struct SampleType; }
34
+ // Forward declaration of `WeatherCondition` to properly resolve imports.
35
+ namespace margelo::nitro::healthkit { enum class WeatherCondition; }
36
+ // Forward declaration of `Quantity` to properly resolve imports.
37
+ namespace margelo::nitro::healthkit { struct Quantity; }
38
+ // Forward declaration of `InsulinDeliveryReason` to properly resolve imports.
39
+ namespace margelo::nitro::healthkit { enum class InsulinDeliveryReason; }
40
+ // Forward declaration of `HeartRateMotionContext` to properly resolve imports.
41
+ namespace margelo::nitro::healthkit { enum class HeartRateMotionContext; }
34
42
  // Forward declaration of `SourceRevision` to properly resolve imports.
35
43
  namespace margelo::nitro::healthkit { struct SourceRevision; }
44
+ // Forward declaration of `Device` to properly resolve imports.
45
+ namespace margelo::nitro::healthkit { struct Device; }
36
46
 
37
- #include <string>
38
- #include "Device.hpp"
39
- #include <optional>
40
- #include <chrono>
41
47
  #include "ElectrocardiogramClassification.hpp"
42
48
  #include "ElectrocardiogramSymptomsStatus.hpp"
49
+ #include <optional>
43
50
  #include "ElectrocardiogramVoltage.hpp"
44
51
  #include <vector>
45
- #include <NitroModules/AnyMap.hpp>
52
+ #include "SampleType.hpp"
53
+ #include <chrono>
54
+ #include "WeatherCondition.hpp"
55
+ #include "Quantity.hpp"
56
+ #include "InsulinDeliveryReason.hpp"
57
+ #include "HeartRateMotionContext.hpp"
58
+ #include <string>
46
59
  #include "SourceRevision.hpp"
60
+ #include "Device.hpp"
61
+ #include <NitroModules/AnyMap.hpp>
47
62
 
48
63
  namespace margelo::nitro::healthkit {
49
64
 
@@ -52,23 +67,44 @@ namespace margelo::nitro::healthkit {
52
67
  */
53
68
  struct ElectrocardiogramSample {
54
69
  public:
55
- std::string uuid SWIFT_PRIVATE;
56
- std::optional<Device> device SWIFT_PRIVATE;
57
- std::chrono::system_clock::time_point startDate SWIFT_PRIVATE;
58
- std::chrono::system_clock::time_point endDate SWIFT_PRIVATE;
59
70
  ElectrocardiogramClassification classification SWIFT_PRIVATE;
60
71
  ElectrocardiogramSymptomsStatus symptomsStatus SWIFT_PRIVATE;
61
72
  std::optional<double> averageHeartRateBpm SWIFT_PRIVATE;
62
73
  std::optional<double> samplingFrequencyHz SWIFT_PRIVATE;
63
74
  double numberOfVoltageMeasurements SWIFT_PRIVATE;
64
- std::optional<std::string> algorithmVersion SWIFT_PRIVATE;
65
75
  std::optional<std::vector<ElectrocardiogramVoltage>> voltages SWIFT_PRIVATE;
66
- std::optional<std::shared_ptr<AnyMap>> metadata SWIFT_PRIVATE;
67
- std::optional<SourceRevision> sourceRevision SWIFT_PRIVATE;
76
+ SampleType sampleType SWIFT_PRIVATE;
77
+ std::chrono::system_clock::time_point startDate SWIFT_PRIVATE;
78
+ std::chrono::system_clock::time_point endDate SWIFT_PRIVATE;
79
+ bool hasUndeterminedDuration SWIFT_PRIVATE;
80
+ std::optional<WeatherCondition> metadataWeatherCondition SWIFT_PRIVATE;
81
+ std::optional<Quantity> metadataWeatherHumidity SWIFT_PRIVATE;
82
+ std::optional<Quantity> metadataWeatherTemperature SWIFT_PRIVATE;
83
+ std::optional<InsulinDeliveryReason> metadataInsulinDeliveryReason SWIFT_PRIVATE;
84
+ std::optional<HeartRateMotionContext> metadataHeartRateMotionContext SWIFT_PRIVATE;
85
+ std::string uuid SWIFT_PRIVATE;
86
+ SourceRevision sourceRevision SWIFT_PRIVATE;
87
+ std::optional<Device> device SWIFT_PRIVATE;
88
+ std::shared_ptr<AnyMap> metadata SWIFT_PRIVATE;
89
+ std::optional<std::string> metadataExternalUUID SWIFT_PRIVATE;
90
+ std::optional<std::string> metadataTimeZone SWIFT_PRIVATE;
91
+ std::optional<bool> metadataWasUserEntered SWIFT_PRIVATE;
92
+ std::optional<std::string> metadataDeviceSerialNumber SWIFT_PRIVATE;
93
+ std::optional<std::string> metadataUdiDeviceIdentifier SWIFT_PRIVATE;
94
+ std::optional<std::string> metadataUdiProductionIdentifier SWIFT_PRIVATE;
95
+ std::optional<std::string> metadataDigitalSignature SWIFT_PRIVATE;
96
+ std::optional<std::string> metadataDeviceName SWIFT_PRIVATE;
97
+ std::optional<std::string> metadataDeviceManufacturerName SWIFT_PRIVATE;
98
+ std::optional<std::string> metadataSyncIdentifier SWIFT_PRIVATE;
99
+ std::optional<double> metadataSyncVersion SWIFT_PRIVATE;
100
+ std::optional<bool> metadataWasTakenInLab SWIFT_PRIVATE;
101
+ std::optional<double> metadataReferenceRangeLowerLimit SWIFT_PRIVATE;
102
+ std::optional<double> metadataReferenceRangeUpperLimit SWIFT_PRIVATE;
103
+ std::optional<double> metadataAlgorithmVersion SWIFT_PRIVATE;
68
104
 
69
105
  public:
70
106
  ElectrocardiogramSample() = default;
71
- explicit ElectrocardiogramSample(std::string uuid, std::optional<Device> device, std::chrono::system_clock::time_point startDate, std::chrono::system_clock::time_point endDate, ElectrocardiogramClassification classification, ElectrocardiogramSymptomsStatus symptomsStatus, std::optional<double> averageHeartRateBpm, std::optional<double> samplingFrequencyHz, double numberOfVoltageMeasurements, std::optional<std::string> algorithmVersion, std::optional<std::vector<ElectrocardiogramVoltage>> voltages, std::optional<std::shared_ptr<AnyMap>> metadata, std::optional<SourceRevision> sourceRevision): uuid(uuid), device(device), startDate(startDate), endDate(endDate), classification(classification), symptomsStatus(symptomsStatus), averageHeartRateBpm(averageHeartRateBpm), samplingFrequencyHz(samplingFrequencyHz), numberOfVoltageMeasurements(numberOfVoltageMeasurements), algorithmVersion(algorithmVersion), voltages(voltages), metadata(metadata), sourceRevision(sourceRevision) {}
107
+ explicit ElectrocardiogramSample(ElectrocardiogramClassification classification, ElectrocardiogramSymptomsStatus symptomsStatus, std::optional<double> averageHeartRateBpm, std::optional<double> samplingFrequencyHz, double numberOfVoltageMeasurements, std::optional<std::vector<ElectrocardiogramVoltage>> voltages, SampleType sampleType, std::chrono::system_clock::time_point startDate, std::chrono::system_clock::time_point endDate, bool hasUndeterminedDuration, std::optional<WeatherCondition> metadataWeatherCondition, std::optional<Quantity> metadataWeatherHumidity, std::optional<Quantity> metadataWeatherTemperature, std::optional<InsulinDeliveryReason> metadataInsulinDeliveryReason, std::optional<HeartRateMotionContext> metadataHeartRateMotionContext, std::string uuid, SourceRevision sourceRevision, std::optional<Device> device, std::shared_ptr<AnyMap> metadata, std::optional<std::string> metadataExternalUUID, std::optional<std::string> metadataTimeZone, std::optional<bool> metadataWasUserEntered, std::optional<std::string> metadataDeviceSerialNumber, std::optional<std::string> metadataUdiDeviceIdentifier, std::optional<std::string> metadataUdiProductionIdentifier, std::optional<std::string> metadataDigitalSignature, std::optional<std::string> metadataDeviceName, std::optional<std::string> metadataDeviceManufacturerName, std::optional<std::string> metadataSyncIdentifier, std::optional<double> metadataSyncVersion, std::optional<bool> metadataWasTakenInLab, std::optional<double> metadataReferenceRangeLowerLimit, std::optional<double> metadataReferenceRangeUpperLimit, std::optional<double> metadataAlgorithmVersion): classification(classification), symptomsStatus(symptomsStatus), averageHeartRateBpm(averageHeartRateBpm), samplingFrequencyHz(samplingFrequencyHz), numberOfVoltageMeasurements(numberOfVoltageMeasurements), voltages(voltages), sampleType(sampleType), startDate(startDate), endDate(endDate), hasUndeterminedDuration(hasUndeterminedDuration), metadataWeatherCondition(metadataWeatherCondition), metadataWeatherHumidity(metadataWeatherHumidity), metadataWeatherTemperature(metadataWeatherTemperature), metadataInsulinDeliveryReason(metadataInsulinDeliveryReason), metadataHeartRateMotionContext(metadataHeartRateMotionContext), uuid(uuid), sourceRevision(sourceRevision), device(device), metadata(metadata), metadataExternalUUID(metadataExternalUUID), metadataTimeZone(metadataTimeZone), metadataWasUserEntered(metadataWasUserEntered), metadataDeviceSerialNumber(metadataDeviceSerialNumber), metadataUdiDeviceIdentifier(metadataUdiDeviceIdentifier), metadataUdiProductionIdentifier(metadataUdiProductionIdentifier), metadataDigitalSignature(metadataDigitalSignature), metadataDeviceName(metadataDeviceName), metadataDeviceManufacturerName(metadataDeviceManufacturerName), metadataSyncIdentifier(metadataSyncIdentifier), metadataSyncVersion(metadataSyncVersion), metadataWasTakenInLab(metadataWasTakenInLab), metadataReferenceRangeLowerLimit(metadataReferenceRangeLowerLimit), metadataReferenceRangeUpperLimit(metadataReferenceRangeUpperLimit), metadataAlgorithmVersion(metadataAlgorithmVersion) {}
72
108
  };
73
109
 
74
110
  } // namespace margelo::nitro::healthkit
@@ -81,36 +117,78 @@ namespace margelo::nitro {
81
117
  static inline margelo::nitro::healthkit::ElectrocardiogramSample fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
82
118
  jsi::Object obj = arg.asObject(runtime);
83
119
  return margelo::nitro::healthkit::ElectrocardiogramSample(
84
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "uuid")),
85
- JSIConverter<std::optional<margelo::nitro::healthkit::Device>>::fromJSI(runtime, obj.getProperty(runtime, "device")),
86
- JSIConverter<std::chrono::system_clock::time_point>::fromJSI(runtime, obj.getProperty(runtime, "startDate")),
87
- JSIConverter<std::chrono::system_clock::time_point>::fromJSI(runtime, obj.getProperty(runtime, "endDate")),
88
120
  JSIConverter<margelo::nitro::healthkit::ElectrocardiogramClassification>::fromJSI(runtime, obj.getProperty(runtime, "classification")),
89
121
  JSIConverter<margelo::nitro::healthkit::ElectrocardiogramSymptomsStatus>::fromJSI(runtime, obj.getProperty(runtime, "symptomsStatus")),
90
122
  JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "averageHeartRateBpm")),
91
123
  JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "samplingFrequencyHz")),
92
124
  JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "numberOfVoltageMeasurements")),
93
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "algorithmVersion")),
94
125
  JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::ElectrocardiogramVoltage>>>::fromJSI(runtime, obj.getProperty(runtime, "voltages")),
95
- JSIConverter<std::optional<std::shared_ptr<AnyMap>>>::fromJSI(runtime, obj.getProperty(runtime, "metadata")),
96
- JSIConverter<std::optional<margelo::nitro::healthkit::SourceRevision>>::fromJSI(runtime, obj.getProperty(runtime, "sourceRevision"))
126
+ JSIConverter<margelo::nitro::healthkit::SampleType>::fromJSI(runtime, obj.getProperty(runtime, "sampleType")),
127
+ JSIConverter<std::chrono::system_clock::time_point>::fromJSI(runtime, obj.getProperty(runtime, "startDate")),
128
+ JSIConverter<std::chrono::system_clock::time_point>::fromJSI(runtime, obj.getProperty(runtime, "endDate")),
129
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "hasUndeterminedDuration")),
130
+ JSIConverter<std::optional<margelo::nitro::healthkit::WeatherCondition>>::fromJSI(runtime, obj.getProperty(runtime, "metadataWeatherCondition")),
131
+ JSIConverter<std::optional<margelo::nitro::healthkit::Quantity>>::fromJSI(runtime, obj.getProperty(runtime, "metadataWeatherHumidity")),
132
+ JSIConverter<std::optional<margelo::nitro::healthkit::Quantity>>::fromJSI(runtime, obj.getProperty(runtime, "metadataWeatherTemperature")),
133
+ JSIConverter<std::optional<margelo::nitro::healthkit::InsulinDeliveryReason>>::fromJSI(runtime, obj.getProperty(runtime, "metadataInsulinDeliveryReason")),
134
+ JSIConverter<std::optional<margelo::nitro::healthkit::HeartRateMotionContext>>::fromJSI(runtime, obj.getProperty(runtime, "metadataHeartRateMotionContext")),
135
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "uuid")),
136
+ JSIConverter<margelo::nitro::healthkit::SourceRevision>::fromJSI(runtime, obj.getProperty(runtime, "sourceRevision")),
137
+ JSIConverter<std::optional<margelo::nitro::healthkit::Device>>::fromJSI(runtime, obj.getProperty(runtime, "device")),
138
+ JSIConverter<std::shared_ptr<AnyMap>>::fromJSI(runtime, obj.getProperty(runtime, "metadata")),
139
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "metadataExternalUUID")),
140
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "metadataTimeZone")),
141
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "metadataWasUserEntered")),
142
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "metadataDeviceSerialNumber")),
143
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "metadataUdiDeviceIdentifier")),
144
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "metadataUdiProductionIdentifier")),
145
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "metadataDigitalSignature")),
146
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "metadataDeviceName")),
147
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "metadataDeviceManufacturerName")),
148
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "metadataSyncIdentifier")),
149
+ JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "metadataSyncVersion")),
150
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "metadataWasTakenInLab")),
151
+ JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "metadataReferenceRangeLowerLimit")),
152
+ JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "metadataReferenceRangeUpperLimit")),
153
+ JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "metadataAlgorithmVersion"))
97
154
  );
98
155
  }
99
156
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::healthkit::ElectrocardiogramSample& arg) {
100
157
  jsi::Object obj(runtime);
101
- obj.setProperty(runtime, "uuid", JSIConverter<std::string>::toJSI(runtime, arg.uuid));
102
- obj.setProperty(runtime, "device", JSIConverter<std::optional<margelo::nitro::healthkit::Device>>::toJSI(runtime, arg.device));
103
- obj.setProperty(runtime, "startDate", JSIConverter<std::chrono::system_clock::time_point>::toJSI(runtime, arg.startDate));
104
- obj.setProperty(runtime, "endDate", JSIConverter<std::chrono::system_clock::time_point>::toJSI(runtime, arg.endDate));
105
158
  obj.setProperty(runtime, "classification", JSIConverter<margelo::nitro::healthkit::ElectrocardiogramClassification>::toJSI(runtime, arg.classification));
106
159
  obj.setProperty(runtime, "symptomsStatus", JSIConverter<margelo::nitro::healthkit::ElectrocardiogramSymptomsStatus>::toJSI(runtime, arg.symptomsStatus));
107
160
  obj.setProperty(runtime, "averageHeartRateBpm", JSIConverter<std::optional<double>>::toJSI(runtime, arg.averageHeartRateBpm));
108
161
  obj.setProperty(runtime, "samplingFrequencyHz", JSIConverter<std::optional<double>>::toJSI(runtime, arg.samplingFrequencyHz));
109
162
  obj.setProperty(runtime, "numberOfVoltageMeasurements", JSIConverter<double>::toJSI(runtime, arg.numberOfVoltageMeasurements));
110
- obj.setProperty(runtime, "algorithmVersion", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.algorithmVersion));
111
163
  obj.setProperty(runtime, "voltages", JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::ElectrocardiogramVoltage>>>::toJSI(runtime, arg.voltages));
112
- obj.setProperty(runtime, "metadata", JSIConverter<std::optional<std::shared_ptr<AnyMap>>>::toJSI(runtime, arg.metadata));
113
- obj.setProperty(runtime, "sourceRevision", JSIConverter<std::optional<margelo::nitro::healthkit::SourceRevision>>::toJSI(runtime, arg.sourceRevision));
164
+ obj.setProperty(runtime, "sampleType", JSIConverter<margelo::nitro::healthkit::SampleType>::toJSI(runtime, arg.sampleType));
165
+ obj.setProperty(runtime, "startDate", JSIConverter<std::chrono::system_clock::time_point>::toJSI(runtime, arg.startDate));
166
+ obj.setProperty(runtime, "endDate", JSIConverter<std::chrono::system_clock::time_point>::toJSI(runtime, arg.endDate));
167
+ obj.setProperty(runtime, "hasUndeterminedDuration", JSIConverter<bool>::toJSI(runtime, arg.hasUndeterminedDuration));
168
+ obj.setProperty(runtime, "metadataWeatherCondition", JSIConverter<std::optional<margelo::nitro::healthkit::WeatherCondition>>::toJSI(runtime, arg.metadataWeatherCondition));
169
+ obj.setProperty(runtime, "metadataWeatherHumidity", JSIConverter<std::optional<margelo::nitro::healthkit::Quantity>>::toJSI(runtime, arg.metadataWeatherHumidity));
170
+ obj.setProperty(runtime, "metadataWeatherTemperature", JSIConverter<std::optional<margelo::nitro::healthkit::Quantity>>::toJSI(runtime, arg.metadataWeatherTemperature));
171
+ obj.setProperty(runtime, "metadataInsulinDeliveryReason", JSIConverter<std::optional<margelo::nitro::healthkit::InsulinDeliveryReason>>::toJSI(runtime, arg.metadataInsulinDeliveryReason));
172
+ obj.setProperty(runtime, "metadataHeartRateMotionContext", JSIConverter<std::optional<margelo::nitro::healthkit::HeartRateMotionContext>>::toJSI(runtime, arg.metadataHeartRateMotionContext));
173
+ obj.setProperty(runtime, "uuid", JSIConverter<std::string>::toJSI(runtime, arg.uuid));
174
+ obj.setProperty(runtime, "sourceRevision", JSIConverter<margelo::nitro::healthkit::SourceRevision>::toJSI(runtime, arg.sourceRevision));
175
+ obj.setProperty(runtime, "device", JSIConverter<std::optional<margelo::nitro::healthkit::Device>>::toJSI(runtime, arg.device));
176
+ obj.setProperty(runtime, "metadata", JSIConverter<std::shared_ptr<AnyMap>>::toJSI(runtime, arg.metadata));
177
+ obj.setProperty(runtime, "metadataExternalUUID", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.metadataExternalUUID));
178
+ obj.setProperty(runtime, "metadataTimeZone", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.metadataTimeZone));
179
+ obj.setProperty(runtime, "metadataWasUserEntered", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.metadataWasUserEntered));
180
+ obj.setProperty(runtime, "metadataDeviceSerialNumber", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.metadataDeviceSerialNumber));
181
+ obj.setProperty(runtime, "metadataUdiDeviceIdentifier", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.metadataUdiDeviceIdentifier));
182
+ obj.setProperty(runtime, "metadataUdiProductionIdentifier", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.metadataUdiProductionIdentifier));
183
+ obj.setProperty(runtime, "metadataDigitalSignature", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.metadataDigitalSignature));
184
+ obj.setProperty(runtime, "metadataDeviceName", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.metadataDeviceName));
185
+ obj.setProperty(runtime, "metadataDeviceManufacturerName", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.metadataDeviceManufacturerName));
186
+ obj.setProperty(runtime, "metadataSyncIdentifier", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.metadataSyncIdentifier));
187
+ obj.setProperty(runtime, "metadataSyncVersion", JSIConverter<std::optional<double>>::toJSI(runtime, arg.metadataSyncVersion));
188
+ obj.setProperty(runtime, "metadataWasTakenInLab", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.metadataWasTakenInLab));
189
+ obj.setProperty(runtime, "metadataReferenceRangeLowerLimit", JSIConverter<std::optional<double>>::toJSI(runtime, arg.metadataReferenceRangeLowerLimit));
190
+ obj.setProperty(runtime, "metadataReferenceRangeUpperLimit", JSIConverter<std::optional<double>>::toJSI(runtime, arg.metadataReferenceRangeUpperLimit));
191
+ obj.setProperty(runtime, "metadataAlgorithmVersion", JSIConverter<std::optional<double>>::toJSI(runtime, arg.metadataAlgorithmVersion));
114
192
  return obj;
115
193
  }
116
194
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -121,19 +199,40 @@ namespace margelo::nitro {
121
199
  if (!nitro::isPlainObject(runtime, obj)) {
122
200
  return false;
123
201
  }
124
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "uuid"))) return false;
125
- if (!JSIConverter<std::optional<margelo::nitro::healthkit::Device>>::canConvert(runtime, obj.getProperty(runtime, "device"))) return false;
126
- if (!JSIConverter<std::chrono::system_clock::time_point>::canConvert(runtime, obj.getProperty(runtime, "startDate"))) return false;
127
- if (!JSIConverter<std::chrono::system_clock::time_point>::canConvert(runtime, obj.getProperty(runtime, "endDate"))) return false;
128
202
  if (!JSIConverter<margelo::nitro::healthkit::ElectrocardiogramClassification>::canConvert(runtime, obj.getProperty(runtime, "classification"))) return false;
129
203
  if (!JSIConverter<margelo::nitro::healthkit::ElectrocardiogramSymptomsStatus>::canConvert(runtime, obj.getProperty(runtime, "symptomsStatus"))) return false;
130
204
  if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "averageHeartRateBpm"))) return false;
131
205
  if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "samplingFrequencyHz"))) return false;
132
206
  if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "numberOfVoltageMeasurements"))) return false;
133
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "algorithmVersion"))) return false;
134
207
  if (!JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::ElectrocardiogramVoltage>>>::canConvert(runtime, obj.getProperty(runtime, "voltages"))) return false;
135
- if (!JSIConverter<std::optional<std::shared_ptr<AnyMap>>>::canConvert(runtime, obj.getProperty(runtime, "metadata"))) return false;
136
- if (!JSIConverter<std::optional<margelo::nitro::healthkit::SourceRevision>>::canConvert(runtime, obj.getProperty(runtime, "sourceRevision"))) return false;
208
+ if (!JSIConverter<margelo::nitro::healthkit::SampleType>::canConvert(runtime, obj.getProperty(runtime, "sampleType"))) return false;
209
+ if (!JSIConverter<std::chrono::system_clock::time_point>::canConvert(runtime, obj.getProperty(runtime, "startDate"))) return false;
210
+ if (!JSIConverter<std::chrono::system_clock::time_point>::canConvert(runtime, obj.getProperty(runtime, "endDate"))) return false;
211
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "hasUndeterminedDuration"))) return false;
212
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::WeatherCondition>>::canConvert(runtime, obj.getProperty(runtime, "metadataWeatherCondition"))) return false;
213
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::Quantity>>::canConvert(runtime, obj.getProperty(runtime, "metadataWeatherHumidity"))) return false;
214
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::Quantity>>::canConvert(runtime, obj.getProperty(runtime, "metadataWeatherTemperature"))) return false;
215
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::InsulinDeliveryReason>>::canConvert(runtime, obj.getProperty(runtime, "metadataInsulinDeliveryReason"))) return false;
216
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::HeartRateMotionContext>>::canConvert(runtime, obj.getProperty(runtime, "metadataHeartRateMotionContext"))) return false;
217
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "uuid"))) return false;
218
+ if (!JSIConverter<margelo::nitro::healthkit::SourceRevision>::canConvert(runtime, obj.getProperty(runtime, "sourceRevision"))) return false;
219
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::Device>>::canConvert(runtime, obj.getProperty(runtime, "device"))) return false;
220
+ if (!JSIConverter<std::shared_ptr<AnyMap>>::canConvert(runtime, obj.getProperty(runtime, "metadata"))) return false;
221
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "metadataExternalUUID"))) return false;
222
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "metadataTimeZone"))) return false;
223
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "metadataWasUserEntered"))) return false;
224
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "metadataDeviceSerialNumber"))) return false;
225
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "metadataUdiDeviceIdentifier"))) return false;
226
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "metadataUdiProductionIdentifier"))) return false;
227
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "metadataDigitalSignature"))) return false;
228
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "metadataDeviceName"))) return false;
229
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "metadataDeviceManufacturerName"))) return false;
230
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "metadataSyncIdentifier"))) return false;
231
+ if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "metadataSyncVersion"))) return false;
232
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "metadataWasTakenInLab"))) return false;
233
+ if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "metadataReferenceRangeLowerLimit"))) return false;
234
+ if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "metadataReferenceRangeUpperLimit"))) return false;
235
+ if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "metadataAlgorithmVersion"))) return false;
137
236
  return true;
138
237
  }
139
238
  };
@@ -0,0 +1,124 @@
1
+ ///
2
+ /// FilterForSamples.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ // Forward declaration of `FilterForSamplesBase` to properly resolve imports.
27
+ namespace margelo::nitro::healthkit { struct FilterForSamplesBase; }
28
+ // Forward declaration of `PredicateWithMetadataKey` to properly resolve imports.
29
+ namespace margelo::nitro::healthkit { struct PredicateWithMetadataKey; }
30
+ // Forward declaration of `DateFilter` to properly resolve imports.
31
+ namespace margelo::nitro::healthkit { struct DateFilter; }
32
+ // Forward declaration of `HybridWorkoutProxySpec` to properly resolve imports.
33
+ namespace margelo::nitro::healthkit { class HybridWorkoutProxySpec; }
34
+ // Forward declaration of `HybridSourceProxySpec` to properly resolve imports.
35
+ namespace margelo::nitro::healthkit { class HybridSourceProxySpec; }
36
+
37
+ #include "FilterForSamplesBase.hpp"
38
+ #include <vector>
39
+ #include <optional>
40
+ #include <string>
41
+ #include "PredicateWithMetadataKey.hpp"
42
+ #include "DateFilter.hpp"
43
+ #include <memory>
44
+ #include "HybridWorkoutProxySpec.hpp"
45
+ #include "HybridSourceProxySpec.hpp"
46
+
47
+ namespace margelo::nitro::healthkit {
48
+
49
+ /**
50
+ * A struct which can be represented as a JavaScript object (FilterForSamples).
51
+ */
52
+ struct FilterForSamples {
53
+ public:
54
+ std::optional<std::vector<FilterForSamplesBase>> OR SWIFT_PRIVATE;
55
+ std::optional<std::vector<FilterForSamplesBase>> NOT SWIFT_PRIVATE;
56
+ std::optional<std::vector<FilterForSamplesBase>> AND SWIFT_PRIVATE;
57
+ std::optional<std::string> uuid SWIFT_PRIVATE;
58
+ std::optional<std::vector<std::string>> uuids SWIFT_PRIVATE;
59
+ std::optional<PredicateWithMetadataKey> metadata SWIFT_PRIVATE;
60
+ std::optional<DateFilter> date SWIFT_PRIVATE;
61
+ std::optional<std::shared_ptr<HybridWorkoutProxySpec>> workout SWIFT_PRIVATE;
62
+ std::optional<std::vector<std::shared_ptr<HybridSourceProxySpec>>> sources SWIFT_PRIVATE;
63
+
64
+ public:
65
+ FilterForSamples() = default;
66
+ explicit FilterForSamples(std::optional<std::vector<FilterForSamplesBase>> OR, std::optional<std::vector<FilterForSamplesBase>> NOT, std::optional<std::vector<FilterForSamplesBase>> AND, std::optional<std::string> uuid, std::optional<std::vector<std::string>> uuids, std::optional<PredicateWithMetadataKey> metadata, std::optional<DateFilter> date, std::optional<std::shared_ptr<HybridWorkoutProxySpec>> workout, std::optional<std::vector<std::shared_ptr<HybridSourceProxySpec>>> sources): OR(OR), NOT(NOT), AND(AND), uuid(uuid), uuids(uuids), metadata(metadata), date(date), workout(workout), sources(sources) {}
67
+ };
68
+
69
+ } // namespace margelo::nitro::healthkit
70
+
71
+ namespace margelo::nitro {
72
+
73
+ // C++ FilterForSamples <> JS FilterForSamples (object)
74
+ template <>
75
+ struct JSIConverter<margelo::nitro::healthkit::FilterForSamples> final {
76
+ static inline margelo::nitro::healthkit::FilterForSamples fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
77
+ jsi::Object obj = arg.asObject(runtime);
78
+ return margelo::nitro::healthkit::FilterForSamples(
79
+ JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::FilterForSamplesBase>>>::fromJSI(runtime, obj.getProperty(runtime, "OR")),
80
+ JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::FilterForSamplesBase>>>::fromJSI(runtime, obj.getProperty(runtime, "NOT")),
81
+ JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::FilterForSamplesBase>>>::fromJSI(runtime, obj.getProperty(runtime, "AND")),
82
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "uuid")),
83
+ JSIConverter<std::optional<std::vector<std::string>>>::fromJSI(runtime, obj.getProperty(runtime, "uuids")),
84
+ JSIConverter<std::optional<margelo::nitro::healthkit::PredicateWithMetadataKey>>::fromJSI(runtime, obj.getProperty(runtime, "metadata")),
85
+ JSIConverter<std::optional<margelo::nitro::healthkit::DateFilter>>::fromJSI(runtime, obj.getProperty(runtime, "date")),
86
+ JSIConverter<std::optional<std::shared_ptr<margelo::nitro::healthkit::HybridWorkoutProxySpec>>>::fromJSI(runtime, obj.getProperty(runtime, "workout")),
87
+ JSIConverter<std::optional<std::vector<std::shared_ptr<margelo::nitro::healthkit::HybridSourceProxySpec>>>>::fromJSI(runtime, obj.getProperty(runtime, "sources"))
88
+ );
89
+ }
90
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::healthkit::FilterForSamples& arg) {
91
+ jsi::Object obj(runtime);
92
+ obj.setProperty(runtime, "OR", JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::FilterForSamplesBase>>>::toJSI(runtime, arg.OR));
93
+ obj.setProperty(runtime, "NOT", JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::FilterForSamplesBase>>>::toJSI(runtime, arg.NOT));
94
+ obj.setProperty(runtime, "AND", JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::FilterForSamplesBase>>>::toJSI(runtime, arg.AND));
95
+ obj.setProperty(runtime, "uuid", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.uuid));
96
+ obj.setProperty(runtime, "uuids", JSIConverter<std::optional<std::vector<std::string>>>::toJSI(runtime, arg.uuids));
97
+ obj.setProperty(runtime, "metadata", JSIConverter<std::optional<margelo::nitro::healthkit::PredicateWithMetadataKey>>::toJSI(runtime, arg.metadata));
98
+ obj.setProperty(runtime, "date", JSIConverter<std::optional<margelo::nitro::healthkit::DateFilter>>::toJSI(runtime, arg.date));
99
+ obj.setProperty(runtime, "workout", JSIConverter<std::optional<std::shared_ptr<margelo::nitro::healthkit::HybridWorkoutProxySpec>>>::toJSI(runtime, arg.workout));
100
+ obj.setProperty(runtime, "sources", JSIConverter<std::optional<std::vector<std::shared_ptr<margelo::nitro::healthkit::HybridSourceProxySpec>>>>::toJSI(runtime, arg.sources));
101
+ return obj;
102
+ }
103
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
104
+ if (!value.isObject()) {
105
+ return false;
106
+ }
107
+ jsi::Object obj = value.getObject(runtime);
108
+ if (!nitro::isPlainObject(runtime, obj)) {
109
+ return false;
110
+ }
111
+ if (!JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::FilterForSamplesBase>>>::canConvert(runtime, obj.getProperty(runtime, "OR"))) return false;
112
+ if (!JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::FilterForSamplesBase>>>::canConvert(runtime, obj.getProperty(runtime, "NOT"))) return false;
113
+ if (!JSIConverter<std::optional<std::vector<margelo::nitro::healthkit::FilterForSamplesBase>>>::canConvert(runtime, obj.getProperty(runtime, "AND"))) return false;
114
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "uuid"))) return false;
115
+ if (!JSIConverter<std::optional<std::vector<std::string>>>::canConvert(runtime, obj.getProperty(runtime, "uuids"))) return false;
116
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::PredicateWithMetadataKey>>::canConvert(runtime, obj.getProperty(runtime, "metadata"))) return false;
117
+ if (!JSIConverter<std::optional<margelo::nitro::healthkit::DateFilter>>::canConvert(runtime, obj.getProperty(runtime, "date"))) return false;
118
+ if (!JSIConverter<std::optional<std::shared_ptr<margelo::nitro::healthkit::HybridWorkoutProxySpec>>>::canConvert(runtime, obj.getProperty(runtime, "workout"))) return false;
119
+ if (!JSIConverter<std::optional<std::vector<std::shared_ptr<margelo::nitro::healthkit::HybridSourceProxySpec>>>>::canConvert(runtime, obj.getProperty(runtime, "sources"))) return false;
120
+ return true;
121
+ }
122
+ };
123
+
124
+ } // namespace margelo::nitro