@kingstinct/react-native-healthkit 9.0.7 → 9.0.9

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 (37) hide show
  1. package/ios/CategoryTypeModule.swift +18 -21
  2. package/ios/CorrelationTypeModule.swift +18 -18
  3. package/ios/HeartbeatSeriesModule.swift +32 -32
  4. package/ios/QuantityTypeModule.swift +71 -59
  5. package/ios/Serializers.swift +12 -16
  6. package/ios/StateOfMindModule.swift +17 -17
  7. package/ios/WorkoutsModule.swift +59 -110
  8. package/lib/commonjs/healthkit.js +1 -1
  9. package/lib/module/healthkit.js +1 -1
  10. package/lib/typescript/healthkit.d.ts +3 -2
  11. package/lib/typescript/specs/WorkoutsModule.nitro.d.ts +3 -0
  12. package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Bridge.cpp +3 -44
  13. package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Bridge.hpp +24 -124
  14. package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Umbrella.hpp +0 -14
  15. package/package.json +2 -2
  16. package/src/healthkit.ts +2 -0
  17. package/src/specs/WorkoutsModule.nitro.ts +3 -0
  18. package/ios/WorkoutSessionModule.swift +0 -182
  19. package/lib/commonjs/specs/WorkoutSessionModule.nitro.js +0 -19
  20. package/lib/module/specs/WorkoutSessionModule.nitro.js +0 -16
  21. package/lib/typescript/specs/WorkoutSessionModule.nitro.d.ts +0 -47
  22. package/nitrogen/generated/ios/c++/HybridWorkoutSessionModuleSpecSwift.cpp +0 -11
  23. package/nitrogen/generated/ios/c++/HybridWorkoutSessionModuleSpecSwift.hpp +0 -107
  24. package/nitrogen/generated/ios/swift/Func_void_WorkoutEventType.swift +0 -46
  25. package/nitrogen/generated/ios/swift/Func_void_WorkoutSessionState_WorkoutSessionState_std__chrono__system_clock__time_point.swift +0 -46
  26. package/nitrogen/generated/ios/swift/Func_void_std__vector_RemoteSessionSharableData_.swift +0 -46
  27. package/nitrogen/generated/ios/swift/HybridWorkoutSessionModuleSpec.swift +0 -49
  28. package/nitrogen/generated/ios/swift/HybridWorkoutSessionModuleSpec_cxx.swift +0 -133
  29. package/nitrogen/generated/ios/swift/RemoteSessionSharableData.swift +0 -46
  30. package/nitrogen/generated/ios/swift/WorkoutSessionMirroringStartHandlerOptions.swift +0 -118
  31. package/nitrogen/generated/ios/swift/WorkoutSessionState.swift +0 -56
  32. package/nitrogen/generated/shared/c++/HybridWorkoutSessionModuleSpec.cpp +0 -22
  33. package/nitrogen/generated/shared/c++/HybridWorkoutSessionModuleSpec.hpp +0 -68
  34. package/nitrogen/generated/shared/c++/RemoteSessionSharableData.hpp +0 -75
  35. package/nitrogen/generated/shared/c++/WorkoutSessionMirroringStartHandlerOptions.hpp +0 -92
  36. package/nitrogen/generated/shared/c++/WorkoutSessionState.hpp +0 -68
  37. package/src/specs/WorkoutSessionModule.nitro.ts +0 -71
@@ -6,55 +6,6 @@ import NitroModules
6
6
  import WorkoutKit
7
7
  #endif
8
8
 
9
- /*func tryParseWeatherCondition(_ weatherCondition: Int?) -> WeatherCondition? {
10
- if let weatherCondition = weatherCondition {
11
- return WeatherCondition.init(rawValue: Int32(weatherCondition))
12
- }
13
- return nil
14
- }
15
-
16
- func deserializeWorkoutMetadata(_ metadata: WorkoutMetadata?) -> [String: Any]? {
17
- if let metadata = metadata {
18
- var dict = metadata.allMetadata != nil
19
- ? anyMapToDictionary(metadata.allMetadata!)
20
- : Dictionary<String, Any>()
21
- // todo (important): hmm, not sure about the typed props here
22
- // dict[""]
23
- return dict
24
- }
25
- return nil
26
- }
27
-
28
- func serializeWorkoutMetadata(_ metadata: [String: Any]?) -> WorkoutMetadata? {
29
- if let metadata = metadata {
30
- return WorkoutMetadata(
31
- // todo: figure out conversions here
32
- HKWeatherCondition: tryParseWeatherCondition(metadata["HKWeatherCondition"] as? Int),
33
- HKWeatherHumidity: serializeUnknownQuantityTyped(quantity: metadata["HKWeatherHumidity"] as? HKQuantity),
34
- HKWeatherTemperature: serializeUnknownQuantityTyped(quantity: metadata["HKWeatherTemperature"] as? HKQuantity),
35
- HKAverageMETs: serializeUnknownQuantityTyped(quantity: metadata["HKAverageMETs"] as? HKQuantity),
36
- HKElevationAscended: serializeUnknownQuantityTyped(quantity: metadata["HKElevationAscended"] as? HKQuantity),
37
- HKIndoorWorkout: metadata["HKIndoorWorkout"] as? Bool,
38
- HKExternalUUID: metadata["HKExternalUUID"] as? String,
39
- HKTimeZone: metadata["HKTimeZone"] as? String,
40
- HKWasUserEntered: metadata["HKWasUserEntered"] as? Bool,
41
- HKDeviceSerialNumber: metadata["HKDeviceSerialNumber"] as? String,
42
- HKUDIDeviceIdentifier: metadata["HKUDIDeviceIdentifier"] as? String,
43
- HKUDIProductionIdentifier: metadata["HKUDIProductionIdentifier"] as? String,
44
- HKDigitalSignature: metadata["HKDigitalSignature"] as? String,
45
- HKDeviceName: metadata["HKDeviceName"] as? String,
46
- HKDeviceManufacturerName: metadata["HKDeviceManufacturerName"] as? String,
47
- HKSyncIdentifier: metadata["HKSyncIdentifier"] as? String,
48
- HKSyncVersion: metadata["HKSyncVersion"] as? Double,
49
- HKWasTakenInLab: metadata["HKWasTakenInLab"] as? Bool,
50
- HKReferenceRangeLowerLimit: metadata["HKReferenceRangeLowerLimit"] as? Double,
51
- HKReferenceRangeUpperLimit: metadata["HKReferenceRangeUpperLimit"] as? Double,
52
- allMetadata: serializeAllMetadata(metadata)
53
- )
54
- }
55
- return nil
56
- }*/
57
-
58
9
  func mapLocations(from locations: [LocationForSaving]) -> [CLLocation] {
59
10
  return locations.compactMap { location in
60
11
  let latitude = location.latitude
@@ -65,7 +16,7 @@ func mapLocations(from locations: [LocationForSaving]) -> [CLLocation] {
65
16
  let course = location.course
66
17
  let speed = location.speed
67
18
  let timestamp = location.date
68
-
19
+
69
20
  let clLocation = CLLocation(
70
21
  coordinate: CLLocationCoordinate2D(
71
22
  latitude: latitude,
@@ -76,24 +27,40 @@ func mapLocations(from locations: [LocationForSaving]) -> [CLLocation] {
76
27
  verticalAccuracy: verticalAccuracy,
77
28
  course: course,
78
29
  speed: speed,
79
- timestamp: timestamp,
30
+ timestamp: timestamp
80
31
  )
81
-
32
+
82
33
  return clLocation
83
34
  }
84
35
  }
85
36
 
86
- class WorkoutsModule : HybridWorkoutsModuleSpec {
37
+ class WorkoutsModule: HybridWorkoutsModuleSpec {
38
+ func startWatchAppWithWorkoutConfiguration(workoutConfiguration: WorkoutConfiguration) throws -> Promise<Bool> {
39
+ let configuration = parseWorkoutConfiguration(workoutConfiguration)
40
+
41
+ return Promise.async {
42
+ try await withCheckedThrowingContinuation { continuation in
43
+ store.startWatchApp(with: configuration) { success, error in
44
+ if let error {
45
+ continuation.resume(throwing: RuntimeError.error(withMessage: error.localizedDescription))
46
+ }
47
+
48
+ continuation.resume(returning: success)
49
+ }
50
+ }
51
+ }
52
+ }
53
+
87
54
  func queryWorkoutSamples(options: WorkoutQueryOptions) throws -> Promise<[HybridWorkoutProxySpec]> {
88
55
  let predicate = try createPredicateForWorkout(filter: options.filter)
89
-
56
+
90
57
  let limit = getQueryLimit(options.limit)
91
-
58
+
92
59
  return Promise.async {
93
60
  let energyUnit = try await getUnitToUse(unitOverride: options.energyUnit, quantityType: HKQuantityType(.activeEnergyBurned))
94
-
61
+
95
62
  let distanceUnit = try await getUnitToUse(unitOverride: options.distanceUnit, quantityType: HKQuantityType(.distanceWalkingRunning))
96
-
63
+
97
64
  return try await withCheckedThrowingContinuation { continuation in
98
65
  let q = HKSampleQuery(
99
66
  sampleType: .workoutType(),
@@ -104,11 +71,11 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
104
71
  if let error = error {
105
72
  return continuation.resume(throwing: error)
106
73
  }
107
-
74
+
108
75
  guard let samples = samples else {
109
76
  return continuation.resume(throwing: RuntimeError.error(withMessage: "Empty response"))
110
77
  }
111
-
78
+
112
79
  let workoutProxies = samples.compactMap { s in
113
80
  if let workout = s as? HKWorkout {
114
81
  return WorkoutProxy.init(
@@ -119,15 +86,15 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
119
86
  }
120
87
  return nil
121
88
  }
122
-
89
+
123
90
  return continuation.resume(returning: workoutProxies)
124
91
  }
125
-
92
+
126
93
  store.execute(q)
127
94
  }
128
95
  }
129
96
  }
130
-
97
+
131
98
  func saveWorkoutSample(
132
99
  workoutActivityType: WorkoutActivityType,
133
100
  quantities: [QuantitySampleForSaving],
@@ -136,18 +103,18 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
136
103
  totals: WorkoutTotals,
137
104
  metadata: AnyMapHolder
138
105
  ) throws -> Promise<String> {
139
-
106
+
140
107
  let type = try initializeWorkoutActivityType(UInt(workoutActivityType.rawValue))
141
-
108
+
142
109
  // if start and end both exist, ensure that start date is before end date
143
110
  if let startDate = startDate as Date?, let endDate = endDate as Date? {
144
111
  if startDate > endDate {
145
112
  throw RuntimeError.error(withMessage: "endDate must not be less than startDate")
146
113
  }
147
114
  }
148
-
115
+
149
116
  let metadataDeserialized = anyMapToDictionary(metadata)
150
-
117
+
151
118
  var totalEnergyBurned: HKQuantity?
152
119
  var totalDistance: HKQuantity?
153
120
  var totalSwimmingStrokeCount: HKQuantity?
@@ -161,23 +128,23 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
161
128
  let quantityEnd = quantity.endDate
162
129
  let unit = HKUnit.init(from: unitStr)
163
130
  let quantity = HKQuantity.init(unit: unit, doubleValue: quantityVal)
164
-
131
+
165
132
  if quantity.is(compatibleWith: HKUnit.kilocalorie()) {
166
133
  totalEnergyBurned = quantity
167
134
  }
168
-
135
+
169
136
  if quantity.is(compatibleWith: HKUnit.meter()) {
170
137
  totalDistance = quantity
171
138
  }
172
-
139
+
173
140
  if type.identifier == HKWorkoutSortIdentifierTotalSwimmingStrokeCount {
174
141
  totalSwimmingStrokeCount = quantity
175
142
  }
176
-
143
+
177
144
  if type.identifier == HKWorkoutSortIdentifierTotalFlightsClimbed {
178
145
  totalFlightsClimbed = quantity
179
146
  }
180
-
147
+
181
148
  return HKQuantitySample.init(
182
149
  type: type,
183
150
  quantity: quantity,
@@ -186,21 +153,21 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
186
153
  metadata: metadataDeserialized
187
154
  )
188
155
  }
189
-
156
+
190
157
  // if totals are provided override samples
191
158
  let rawTotalDistance = totals.distance ?? 0.0
192
159
  let rawTotalEnergy = totals.energyBurned ?? 0.0
193
-
160
+
194
161
  if rawTotalDistance != 0.0 {
195
162
  totalDistance = HKQuantity(unit: .meter(), doubleValue: rawTotalDistance)
196
163
  }
197
164
  if rawTotalEnergy != 0.0 {
198
165
  totalEnergyBurned = HKQuantity(unit: .kilocalorie(), doubleValue: rawTotalEnergy)
199
166
  }
200
-
167
+
201
168
  // creating workout
202
169
  var workout: HKWorkout?
203
-
170
+
204
171
  if totalSwimmingStrokeCount != nil {
205
172
  workout = HKWorkout.init(
206
173
  activityType: type,
@@ -230,7 +197,7 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
230
197
  }
231
198
  }
232
199
  }
233
-
200
+
234
201
  if workout == nil {
235
202
  workout = HKWorkout.init(
236
203
  activityType: type,
@@ -242,11 +209,11 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
242
209
  metadata: metadataDeserialized
243
210
  )
244
211
  }
245
-
212
+
246
213
  guard let workout = workout else {
247
214
  throw RuntimeError.error(withMessage: "Could not create workout")
248
215
  }
249
-
216
+
250
217
  return Promise.async {
251
218
  try await withCheckedThrowingContinuation { continuation in
252
219
  // saving workout, samples and route
@@ -254,11 +221,11 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
254
221
  if let error = error {
255
222
  return continuation.resume(throwing: error)
256
223
  }
257
-
224
+
258
225
  if initializedSamples.isEmpty {
259
226
  return continuation.resume(returning: workout.uuid.uuidString)
260
227
  }
261
-
228
+
262
229
  store.add(initializedSamples, to: workout) { (_, error: Error?) in
263
230
  if let error = error {
264
231
  return continuation.resume(throwing: error)
@@ -269,37 +236,19 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
269
236
  }
270
237
  }
271
238
  }
272
-
273
-
274
- func startWatchAppWithWorkoutConfiguration(workoutConfiguration: WorkoutConfiguration) -> Promise<Bool>
275
- {
276
- let configuration = parseWorkoutConfiguration(workoutConfiguration)
277
-
278
- return Promise.async {
279
- try await withCheckedThrowingContinuation { continuation in
280
- store.startWatchApp(with: configuration) { success, error in
281
- if let error {
282
- continuation.resume(throwing: error)
283
- } else {
284
- continuation.resume(returning: success)
285
- }
286
- }
287
- }
288
- }
289
- }
290
-
239
+
291
240
  func queryWorkoutSamplesWithAnchor(options: WorkoutQueryOptionsWithAnchor) throws -> Promise<QueryWorkoutSamplesWithAnchorResponse> {
292
241
  let predicate = try createPredicateForWorkout(filter: options.filter)
293
-
242
+
294
243
  let limit = getQueryLimit(options.limit)
295
-
244
+
296
245
  let actualAnchor = try deserializeHKQueryAnchor(base64String: options.anchor)
297
-
246
+
298
247
  return Promise.async {
299
248
  let energyUnit = try await getUnitToUse(unitOverride: options.energyUnit, quantityType: HKQuantityType(.activeEnergyBurned))
300
-
249
+
301
250
  let distanceUnit = try await getUnitToUse(unitOverride: options.energyUnit, quantityType: HKQuantityType(.distanceWalkingRunning))
302
-
251
+
303
252
  return try await withCheckedThrowingContinuation { continuation in
304
253
  let q = HKAnchoredObjectQuery(
305
254
  type: .workoutType(),
@@ -317,7 +266,7 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
317
266
  if let error = error {
318
267
  return continuation.resume(throwing: error)
319
268
  }
320
-
269
+
321
270
  guard let samples = s, let newAnchor = newAnchor else {
322
271
  return continuation.resume(
323
272
  throwing: RuntimeError.error(
@@ -325,7 +274,7 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
325
274
  )
326
275
  )
327
276
  }
328
-
277
+
329
278
  let workoutProxies = samples.compactMap { s in
330
279
  if let workout = s as? HKWorkout {
331
280
  return WorkoutProxy.init(
@@ -336,20 +285,20 @@ class WorkoutsModule : HybridWorkoutsModuleSpec {
336
285
  }
337
286
  return nil
338
287
  }
339
-
288
+
340
289
  let deletedSamples = deletedSamples?.map({ sample in
341
290
  return serializeDeletedSample(sample: sample)
342
291
  }) ?? []
343
-
292
+
344
293
  let returnValue = QueryWorkoutSamplesWithAnchorResponse(
345
294
  workouts: workoutProxies,
346
295
  deletedSamples: deletedSamples,
347
296
  newAnchor: serializeAnchor(anchor: newAnchor)!
348
297
  )
349
-
298
+
350
299
  return continuation.resume(returning: returnValue)
351
300
  }
352
-
301
+
353
302
  store.execute(q)
354
303
  }
355
304
  }
@@ -81,7 +81,7 @@ function queryCategorySamples(_categoryTypeIdentifier) {
81
81
  }
82
82
  return Promise.resolve([]);
83
83
  }
84
- function queryCategorySamplesWithAnchor(_categoryTypeIdentifier) {
84
+ function queryCategorySamplesWithAnchor(_categoryTypeIdentifier, _options) {
85
85
  if (react_native_1.Platform.OS !== 'ios' && !hasWarned) {
86
86
  console.warn(notAvailableError);
87
87
  hasWarned = true;
@@ -59,7 +59,7 @@ export function queryCategorySamples(_categoryTypeIdentifier) {
59
59
  }
60
60
  return Promise.resolve([]);
61
61
  }
62
- export function queryCategorySamplesWithAnchor(_categoryTypeIdentifier) {
62
+ export function queryCategorySamplesWithAnchor(_categoryTypeIdentifier, _options) {
63
63
  if (Platform.OS !== 'ios' && !hasWarned) {
64
64
  console.warn(notAvailableError);
65
65
  hasWarned = true;
@@ -5,6 +5,7 @@ import type { CategorySamplesWithAnchorResponseTyped, CategorySampleTyped } from
5
5
  import type { CategoryTypeIdentifier } from './types/CategoryTypeIdentifier';
6
6
  import { BiologicalSex, BloodType, FitzpatrickSkinType, WheelchairUse } from './types/Characteristics';
7
7
  import type { QuantitySample } from './types/QuantitySample';
8
+ import type { QueryOptionsWithAnchor } from './types/QueryOptions';
8
9
  export * from './types';
9
10
  export declare const authorizationStatusFor: (type: import("./types").ObjectTypeIdentifier) => AuthorizationStatus;
10
11
  export declare const disableAllBackgroundDelivery: () => Promise<boolean>;
@@ -35,12 +36,12 @@ export declare const queryStatisticsCollectionForQuantity: (identifier: import("
35
36
  export declare const saveQuantitySample: (identifier: import("./types").QuantityTypeIdentifier, unit: string, value: number, start: Date, end: Date, metadata: import("react-native-nitro-modules").AnyMap) => Promise<boolean>;
36
37
  export declare const isQuantityCompatibleWithUnit: (identifier: import("./types").QuantityTypeIdentifier, unit: string) => boolean;
37
38
  export declare function queryCategorySamples<T extends CategoryTypeIdentifier>(_categoryTypeIdentifier: T): Promise<CategorySampleTyped<T>[]>;
38
- export declare function queryCategorySamplesWithAnchor<T extends CategoryTypeIdentifier>(_categoryTypeIdentifier: T): Promise<CategorySamplesWithAnchorResponseTyped<T>>;
39
+ export declare function queryCategorySamplesWithAnchor<T extends CategoryTypeIdentifier>(_categoryTypeIdentifier: T, _options: QueryOptionsWithAnchor): Promise<CategorySamplesWithAnchorResponseTyped<T>>;
39
40
  export declare const saveCategorySample: <T extends CategoryTypeIdentifier>(identifier: T, value: import("./types").CategoryValueForIdentifier, startDate: Date, endDate: Date, metadata: import("./types").MetadataForCategoryIdentifier<T>) => Promise<boolean>;
40
41
  export declare const queryCorrelationSamples: (typeIdentifier: import("./types").CorrelationTypeIdentifier, from: Date, to: Date) => Promise<readonly import("./types").CorrelationSample[]>;
41
42
  export declare const saveCorrelationSample: (typeIdentifier: import("./types").CorrelationTypeIdentifier, samples: import("./types").SampleForSaving[], start: Date, end: Date, metadata: import("react-native-nitro-modules").AnyMap) => Promise<boolean>;
42
43
  export declare const queryHeartbeatSeriesSamples: (options?: import("./types").QueryOptionsWithSortOrder) => Promise<readonly import("./types").HeartbeatSeriesSample[]>;
43
- export declare const queryHeartbeatSeriesSamplesWithAnchor: (options: import("./types").QueryOptionsWithAnchor) => Promise<import("./types").HeartbeatSeriesSamplesWithAnchorResponse>;
44
+ export declare const queryHeartbeatSeriesSamplesWithAnchor: (options: QueryOptionsWithAnchor) => Promise<import("./types").HeartbeatSeriesSamplesWithAnchorResponse>;
44
45
  export declare const queryWorkoutSamples: (options: import("./types").WorkoutQueryOptions) => Promise<WorkoutProxy[]>;
45
46
  export declare const queryWorkoutSamplesWithAnchor: (options: import("./types").WorkoutQueryOptionsWithAnchor) => Promise<import("./types").QueryWorkoutSamplesWithAnchorResponse>;
46
47
  export declare const saveWorkoutSample: (workoutActivityType: import("./types").WorkoutActivityType, quantities: readonly import("./types").QuantitySampleForSaving[], startDate: Date, endDate: Date, totals: import("./types").WorkoutTotals, metadata: import("react-native-nitro-modules").AnyMap) => Promise<string>;
@@ -9,5 +9,8 @@ export interface WorkoutsModule extends HybridObject<{
9
9
  saveWorkoutSample(workoutActivityType: WorkoutActivityType, quantities: readonly QuantitySampleForSaving[], startDate: Date, endDate: Date, totals: WorkoutTotals, metadata: AnyMap): Promise<string>;
10
10
  queryWorkoutSamplesWithAnchor(options: WorkoutQueryOptionsWithAnchor): Promise<QueryWorkoutSamplesWithAnchorResponse>;
11
11
  queryWorkoutSamples(options: WorkoutQueryOptions): Promise<WorkoutProxy[]>;
12
+ /**
13
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1648358-startwatchapp Apple Docs }
14
+ */
12
15
  startWatchAppWithWorkoutConfiguration(workoutConfiguration: WorkoutConfiguration): Promise<boolean>;
13
16
  }
@@ -17,7 +17,6 @@
17
17
  #include "HybridSourceProxySpecSwift.hpp"
18
18
  #include "HybridStateOfMindModuleSpecSwift.hpp"
19
19
  #include "HybridWorkoutProxySpecSwift.hpp"
20
- #include "HybridWorkoutSessionModuleSpecSwift.hpp"
21
20
  #include "HybridWorkoutsModuleSpecSwift.hpp"
22
21
  #include "ReactNativeHealthkit-Swift-Cxx-Umbrella.hpp"
23
22
 
@@ -367,54 +366,14 @@ namespace margelo::nitro::healthkit::bridge::swift {
367
366
  };
368
367
  }
369
368
 
370
- // pragma MARK: std::function<void(const std::string& /* errorMessage */)>
369
+ // pragma MARK: std::function<void(const std::string& /* result */)>
371
370
  Func_void_std__string create_Func_void_std__string(void* _Nonnull swiftClosureWrapper) {
372
371
  auto swiftClosure = ReactNativeHealthkit::Func_void_std__string::fromUnsafe(swiftClosureWrapper);
373
- return [swiftClosure = std::move(swiftClosure)](const std::string& errorMessage) mutable -> void {
374
- swiftClosure.call(errorMessage);
375
- };
376
- }
377
-
378
- // pragma MARK: std::function<void(WorkoutSessionState /* toState */, WorkoutSessionState /* fromState */, std::chrono::system_clock::time_point /* date */)>
379
- Func_void_WorkoutSessionState_WorkoutSessionState_std__chrono__system_clock__time_point create_Func_void_WorkoutSessionState_WorkoutSessionState_std__chrono__system_clock__time_point(void* _Nonnull swiftClosureWrapper) {
380
- auto swiftClosure = ReactNativeHealthkit::Func_void_WorkoutSessionState_WorkoutSessionState_std__chrono__system_clock__time_point::fromUnsafe(swiftClosureWrapper);
381
- return [swiftClosure = std::move(swiftClosure)](WorkoutSessionState toState, WorkoutSessionState fromState, std::chrono::system_clock::time_point date) mutable -> void {
382
- swiftClosure.call(static_cast<int>(toState), static_cast<int>(fromState), date);
383
- };
384
- }
385
-
386
- // pragma MARK: std::function<void(const std::vector<RemoteSessionSharableData>& /* data */)>
387
- Func_void_std__vector_RemoteSessionSharableData_ create_Func_void_std__vector_RemoteSessionSharableData_(void* _Nonnull swiftClosureWrapper) {
388
- auto swiftClosure = ReactNativeHealthkit::Func_void_std__vector_RemoteSessionSharableData_::fromUnsafe(swiftClosureWrapper);
389
- return [swiftClosure = std::move(swiftClosure)](const std::vector<RemoteSessionSharableData>& data) mutable -> void {
390
- swiftClosure.call(data);
391
- };
392
- }
393
-
394
- // pragma MARK: std::function<void(WorkoutEventType /* type */)>
395
- Func_void_WorkoutEventType create_Func_void_WorkoutEventType(void* _Nonnull swiftClosureWrapper) {
396
- auto swiftClosure = ReactNativeHealthkit::Func_void_WorkoutEventType::fromUnsafe(swiftClosureWrapper);
397
- return [swiftClosure = std::move(swiftClosure)](WorkoutEventType type) mutable -> void {
398
- swiftClosure.call(static_cast<int>(type));
372
+ return [swiftClosure = std::move(swiftClosure)](const std::string& result) mutable -> void {
373
+ swiftClosure.call(result);
399
374
  };
400
375
  }
401
376
 
402
- // pragma MARK: std::shared_ptr<margelo::nitro::healthkit::HybridWorkoutSessionModuleSpec>
403
- std::shared_ptr<margelo::nitro::healthkit::HybridWorkoutSessionModuleSpec> create_std__shared_ptr_margelo__nitro__healthkit__HybridWorkoutSessionModuleSpec_(void* _Nonnull swiftUnsafePointer) {
404
- ReactNativeHealthkit::HybridWorkoutSessionModuleSpec_cxx swiftPart = ReactNativeHealthkit::HybridWorkoutSessionModuleSpec_cxx::fromUnsafe(swiftUnsafePointer);
405
- return std::make_shared<margelo::nitro::healthkit::HybridWorkoutSessionModuleSpecSwift>(swiftPart);
406
- }
407
- void* _Nonnull get_std__shared_ptr_margelo__nitro__healthkit__HybridWorkoutSessionModuleSpec_(std__shared_ptr_margelo__nitro__healthkit__HybridWorkoutSessionModuleSpec_ cppType) {
408
- std::shared_ptr<margelo::nitro::healthkit::HybridWorkoutSessionModuleSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::healthkit::HybridWorkoutSessionModuleSpecSwift>(cppType);
409
- #ifdef NITRO_DEBUG
410
- if (swiftWrapper == nullptr) [[unlikely]] {
411
- throw std::runtime_error("Class \"HybridWorkoutSessionModuleSpec\" is not implemented in Swift!");
412
- }
413
- #endif
414
- ReactNativeHealthkit::HybridWorkoutSessionModuleSpec_cxx& swiftPart = swiftWrapper->getSwiftPart();
415
- return swiftPart.toUnsafe();
416
- }
417
-
418
377
  // pragma MARK: std::function<void(const QueryWorkoutSamplesWithAnchorResponse& /* result */)>
419
378
  Func_void_QueryWorkoutSamplesWithAnchorResponse create_Func_void_QueryWorkoutSamplesWithAnchorResponse(void* _Nonnull swiftClosureWrapper) {
420
379
  auto swiftClosure = ReactNativeHealthkit::Func_void_QueryWorkoutSamplesWithAnchorResponse::fromUnsafe(swiftClosureWrapper);