The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of Mixpanel, reference master (e8c878), with Swift 6.1 for macOS (SPM) on 31 May 2025 13:05:11 UTC.

Swift 6 data race errors: 11

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 63 |
 64 |   /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |   private let concurrentQueue: DispatchQueue
12 |
[5/29] Compiling Mixpanel Track.swift
[6/29] Compiling Mixpanel resource_bundle_accessor.swift
[7/29] Compiling Mixpanel Group.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:54:21: warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 11 | /// Access to the Mixpanel Groups API, available through the getGroup function from
 12 | /// the main Mixpanel instance.
 13 | open class Group {
    |            `- note: class 'Group' does not conform to the 'Sendable' protocol
 14 |
 15 |   let apiToken: String
    :
 52 |       var r = InternalProperties()
 53 |       var p = InternalProperties()
 54 |       r["$token"] = self.apiToken
    |                     `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 55 |       r["$time"] = epochMilliseconds
 56 |       if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:59:21: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 57 |         // $unset takes an array of property names which is supplied to this method
 58 |         // in the properties parameter under the key "$properties"
 59 |         r[action] = properties["$properties"]
    |                     `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 60 |       } else {
 61 |         p += properties
[8/29] Compiling Mixpanel JSONHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:54:21: warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 11 | /// Access to the Mixpanel Groups API, available through the getGroup function from
 12 | /// the main Mixpanel instance.
 13 | open class Group {
    |            `- note: class 'Group' does not conform to the 'Sendable' protocol
 14 |
 15 |   let apiToken: String
    :
 52 |       var r = InternalProperties()
 53 |       var p = InternalProperties()
 54 |       r["$token"] = self.apiToken
    |                     `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 55 |       r["$time"] = epochMilliseconds
 56 |       if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:59:21: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 57 |         // $unset takes an array of property names which is supplied to this method
 58 |         // in the properties parameter under the key "$properties"
 59 |         r[action] = properties["$properties"]
    |                     `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 60 |       } else {
 61 |         p += properties
[9/29] Compiling Mixpanel MPDB.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:54:21: warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 11 | /// Access to the Mixpanel Groups API, available through the getGroup function from
 12 | /// the main Mixpanel instance.
 13 | open class Group {
    |            `- note: class 'Group' does not conform to the 'Sendable' protocol
 14 |
 15 |   let apiToken: String
    :
 52 |       var r = InternalProperties()
 53 |       var p = InternalProperties()
 54 |       r["$token"] = self.apiToken
    |                     `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 55 |       r["$time"] = epochMilliseconds
 56 |       if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:59:21: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 57 |         // $unset takes an array of property names which is supplied to this method
 58 |         // in the properties parameter under the key "$properties"
 59 |         r[action] = properties["$properties"]
    |                     `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 60 |       } else {
 61 |         p += properties
[10/29] Compiling Mixpanel Data+Compression.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:8: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 |   case invalidType(type: Any)
   |        `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:14: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 |   static var assertClosure = swiftAssertClosure
   |              |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |   static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:14: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 |   static var assertClosure = swiftAssertClosure
17 |   static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
   |              |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:214:7: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
212 |     // Using the serial queue itself for this background task is fine
213 |     accessQueue.async { [weak self] in
214 |       self?._fetchFlagsIfNeeded(completion: nil)
    |       `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
215 |     }
216 |   }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:266:24: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
264 |   ) {
265 |     accessQueue.async { [weak self] in  // Block A runs serially on accessQueue
266 |       guard let self = self else { return }
    |                        `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
267 |
268 |       var flagVariant: MixpanelFlagVariant?
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:285:37: warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
 31 |
 32 | // Represents the variant associated with a feature flag
 33 | public struct MixpanelFlagVariant: Decodable {
    |               `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
 34 |   public let key: String  // Corresponds to 'variant_key' from API
 35 |   public let value: Any?  // Corresponds to 'variant_value' from API
    :
283 |
284 |       if flagsAreCurrentlyReady {
285 |         let result = flagVariant ?? fallback
    |                                     `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
286 |         if flagVariant != nil, needsTrackingCheck {
287 |           // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:291:36: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
289 |           self._trackFlagIfNeeded(flagName: flagName, variant: result)
290 |         }
291 |         DispatchQueue.main.async { completion(result) }
    |                                    |- warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
292 |
293 |       } else {
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:285:37: warning: implicit capture of 'fallback' requires that 'MixpanelFlagVariant' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 31 |
 32 | // Represents the variant associated with a feature flag
 33 | public struct MixpanelFlagVariant: Decodable {
    |               `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
 34 |   public let key: String  // Corresponds to 'variant_key' from API
 35 |   public let value: Any?  // Corresponds to 'variant_value' from API
    :
283 |
284 |       if flagsAreCurrentlyReady {
285 |         let result = flagVariant ?? fallback
    |                                     `- warning: implicit capture of 'fallback' requires that 'MixpanelFlagVariant' conforms to 'Sendable'; this is an error in the Swift 6 language mode
286 |         if flagVariant != nil, needsTrackingCheck {
287 |           // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:302:62: warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in an isolated closure; this is an error in the Swift 6 language mode
 31 |
 32 | // Represents the variant associated with a feature flag
 33 | public struct MixpanelFlagVariant: Decodable {
    |               `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
 34 |   public let key: String  // Corresponds to 'variant_key' from API
 35 |   public let value: Any?  // Corresponds to 'variant_value' from API
    :
300 |           if success {
301 |             // Fetch succeeded, get the flag SYNCHRONOUSLY
302 |             result = self.getVariantSync(flagName, fallback: fallback)
    |                                                              `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in an isolated closure; this is an error in the Swift 6 language mode
303 |           } else {
304 |             print("Warning: Failed to fetch flags, returning fallback for \(flagName).")
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:308:38: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
306 |           }
307 |           // Call original completion (on main thread)
308 |           DispatchQueue.main.async { completion(result) }
    |                                      |- warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
    |                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
309 |         }
310 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:385:9: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
383 |       // Dispatch the network request initiation to a global queue.
384 |       DispatchQueue.global(qos: .utility).async { [weak self] in
385 |         self?._performFetchRequest()
    |         `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
386 |       }
387 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:440:11: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
438 |         // Update state and call completions via _completeFetch on the serial queue
439 |         self?.accessQueue.async {  // Dispatch completion handling to serial queue
440 |           self?._completeFetch(success: false)
    |           `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
441 |         }
442 |       },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:440:11: warning: reference to captured var 'self' in concurrently-executing code
438 |         // Update state and call completions via _completeFetch on the serial queue
439 |         self?.accessQueue.async {  // Dispatch completion handling to serial queue
440 |           self?._completeFetch(success: false)
    |           `- warning: reference to captured var 'self' in concurrently-executing code
441 |         }
442 |       },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:448:28: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
446 |         // Update state and call completions via _completeFetch on the serial queue
447 |         self.accessQueue.async { [weak self] in
448 |           guard let self = self else { return }
    |                            `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
449 |           // already on accessQueue – write directly
450 |           self.flags = flagsResponse.flags ?? [:]
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:450:24: warning: capture of 'flagsResponse' with non-sendable type 'FlagsResponse' in a '@Sendable' closure
 64 |
 65 | // Response structure for the /flags endpoint
 66 | struct FlagsResponse: Decodable {
    |        `- note: consider making struct 'FlagsResponse' conform to the 'Sendable' protocol
 67 |   let flags: [String: MixpanelFlagVariant]?  // Dictionary where key is flag name
 68 | }
    :
448 |           guard let self = self else { return }
449 |           // already on accessQueue – write directly
450 |           self.flags = flagsResponse.flags ?? [:]
    |                        `- warning: capture of 'flagsResponse' with non-sendable type 'FlagsResponse' in a '@Sendable' closure
451 |           print("Flags updated: \(self.flags ?? [:])")
452 |           self._completeFetch(success: true)  // still on accessQueue
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:496:7: warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
494 |     // Dispatch delegate call asynchronously to main thread for safety
495 |     DispatchQueue.main.async {
496 |       delegate.track(event: "$experiment_started", properties: properties)
    |       |- warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
    |       `- note: task-isolated 'delegate' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
497 |       print("Tracked $experiment_started for \(flagName) (dispatched to main)")
498 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:308:38: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
306 |           }
307 |           // Call original completion (on main thread)
308 |           DispatchQueue.main.async { completion(result) }
    |                                      |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
309 |         }
310 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:308:49: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
306 |           }
307 |           // Call original completion (on main thread)
308 |           DispatchQueue.main.async { completion(result) }
    |                                                 |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                                 `- note: task-isolated 'result' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
309 |         }
310 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:465:7: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
463 |
464 |     DispatchQueue.main.async {
465 |       handlers.forEach { $0(success) }
    |       |- warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
    |       `- note: task-isolated 'handlers' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
466 |     }
467 |   }
[11/29] Compiling Mixpanel Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:8: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 |   case invalidType(type: Any)
   |        `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:14: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 |   static var assertClosure = swiftAssertClosure
   |              |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |   static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:14: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 |   static var assertClosure = swiftAssertClosure
17 |   static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
   |              |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:214:7: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
212 |     // Using the serial queue itself for this background task is fine
213 |     accessQueue.async { [weak self] in
214 |       self?._fetchFlagsIfNeeded(completion: nil)
    |       `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
215 |     }
216 |   }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:266:24: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
264 |   ) {
265 |     accessQueue.async { [weak self] in  // Block A runs serially on accessQueue
266 |       guard let self = self else { return }
    |                        `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
267 |
268 |       var flagVariant: MixpanelFlagVariant?
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:285:37: warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
 31 |
 32 | // Represents the variant associated with a feature flag
 33 | public struct MixpanelFlagVariant: Decodable {
    |               `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
 34 |   public let key: String  // Corresponds to 'variant_key' from API
 35 |   public let value: Any?  // Corresponds to 'variant_value' from API
    :
283 |
284 |       if flagsAreCurrentlyReady {
285 |         let result = flagVariant ?? fallback
    |                                     `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
286 |         if flagVariant != nil, needsTrackingCheck {
287 |           // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:291:36: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
289 |           self._trackFlagIfNeeded(flagName: flagName, variant: result)
290 |         }
291 |         DispatchQueue.main.async { completion(result) }
    |                                    |- warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
292 |
293 |       } else {
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:285:37: warning: implicit capture of 'fallback' requires that 'MixpanelFlagVariant' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 31 |
 32 | // Represents the variant associated with a feature flag
 33 | public struct MixpanelFlagVariant: Decodable {
    |               `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
 34 |   public let key: String  // Corresponds to 'variant_key' from API
 35 |   public let value: Any?  // Corresponds to 'variant_value' from API
    :
283 |
284 |       if flagsAreCurrentlyReady {
285 |         let result = flagVariant ?? fallback
    |                                     `- warning: implicit capture of 'fallback' requires that 'MixpanelFlagVariant' conforms to 'Sendable'; this is an error in the Swift 6 language mode
286 |         if flagVariant != nil, needsTrackingCheck {
287 |           // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:302:62: warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in an isolated closure; this is an error in the Swift 6 language mode
 31 |
 32 | // Represents the variant associated with a feature flag
 33 | public struct MixpanelFlagVariant: Decodable {
    |               `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
 34 |   public let key: String  // Corresponds to 'variant_key' from API
 35 |   public let value: Any?  // Corresponds to 'variant_value' from API
    :
300 |           if success {
301 |             // Fetch succeeded, get the flag SYNCHRONOUSLY
302 |             result = self.getVariantSync(flagName, fallback: fallback)
    |                                                              `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in an isolated closure; this is an error in the Swift 6 language mode
303 |           } else {
304 |             print("Warning: Failed to fetch flags, returning fallback for \(flagName).")
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:308:38: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
306 |           }
307 |           // Call original completion (on main thread)
308 |           DispatchQueue.main.async { completion(result) }
    |                                      |- warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
    |                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
309 |         }
310 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:385:9: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
383 |       // Dispatch the network request initiation to a global queue.
384 |       DispatchQueue.global(qos: .utility).async { [weak self] in
385 |         self?._performFetchRequest()
    |         `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
386 |       }
387 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:440:11: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
438 |         // Update state and call completions via _completeFetch on the serial queue
439 |         self?.accessQueue.async {  // Dispatch completion handling to serial queue
440 |           self?._completeFetch(success: false)
    |           `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
441 |         }
442 |       },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:440:11: warning: reference to captured var 'self' in concurrently-executing code
438 |         // Update state and call completions via _completeFetch on the serial queue
439 |         self?.accessQueue.async {  // Dispatch completion handling to serial queue
440 |           self?._completeFetch(success: false)
    |           `- warning: reference to captured var 'self' in concurrently-executing code
441 |         }
442 |       },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:448:28: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
446 |         // Update state and call completions via _completeFetch on the serial queue
447 |         self.accessQueue.async { [weak self] in
448 |           guard let self = self else { return }
    |                            `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
449 |           // already on accessQueue – write directly
450 |           self.flags = flagsResponse.flags ?? [:]
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:450:24: warning: capture of 'flagsResponse' with non-sendable type 'FlagsResponse' in a '@Sendable' closure
 64 |
 65 | // Response structure for the /flags endpoint
 66 | struct FlagsResponse: Decodable {
    |        `- note: consider making struct 'FlagsResponse' conform to the 'Sendable' protocol
 67 |   let flags: [String: MixpanelFlagVariant]?  // Dictionary where key is flag name
 68 | }
    :
448 |           guard let self = self else { return }
449 |           // already on accessQueue – write directly
450 |           self.flags = flagsResponse.flags ?? [:]
    |                        `- warning: capture of 'flagsResponse' with non-sendable type 'FlagsResponse' in a '@Sendable' closure
451 |           print("Flags updated: \(self.flags ?? [:])")
452 |           self._completeFetch(success: true)  // still on accessQueue
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:496:7: warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
494 |     // Dispatch delegate call asynchronously to main thread for safety
495 |     DispatchQueue.main.async {
496 |       delegate.track(event: "$experiment_started", properties: properties)
    |       |- warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
    |       `- note: task-isolated 'delegate' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
497 |       print("Tracked $experiment_started for \(flagName) (dispatched to main)")
498 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:308:38: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
306 |           }
307 |           // Call original completion (on main thread)
308 |           DispatchQueue.main.async { completion(result) }
    |                                      |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
309 |         }
310 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:308:49: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
306 |           }
307 |           // Call original completion (on main thread)
308 |           DispatchQueue.main.async { completion(result) }
    |                                                 |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                                 `- note: task-isolated 'result' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
309 |         }
310 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:465:7: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
463 |
464 |     DispatchQueue.main.async {
465 |       handlers.forEach { $0(success) }
    |       |- warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
    |       `- note: task-isolated 'handlers' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
466 |     }
467 |   }
[12/29] Compiling Mixpanel FeatureFlags.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:8: warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
10 |
11 | enum PropertyError: Error {
12 |   case invalidType(type: Any)
   |        `- warning: associated value 'invalidType(type:)' of 'Sendable'-conforming enum 'PropertyError' has non-sendable type 'Any'; this is an error in the Swift 6 language mode
13 | }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:16:14: warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | class Assertions {
16 |   static var assertClosure = swiftAssertClosure
   |              |- warning: static property 'assertClosure' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'assertClosure' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'assertClosure' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |   static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
18 | }
<unknown>:0: note: a function type must be marked '@Sendable' to conform to 'Sendable'
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:17:14: warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
15 | class Assertions {
16 |   static var assertClosure = swiftAssertClosure
17 |   static let swiftAssertClosure = { Swift.assert($0, $1, file: $2, line: $3) }
   |              |- warning: static property 'swiftAssertClosure' is not concurrency-safe because non-'Sendable' type '(Bool, String, StaticString, UInt) -> ()' may have shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: add '@MainActor' to make static property 'swiftAssertClosure' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:214:7: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
212 |     // Using the serial queue itself for this background task is fine
213 |     accessQueue.async { [weak self] in
214 |       self?._fetchFlagsIfNeeded(completion: nil)
    |       `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
215 |     }
216 |   }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:266:24: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
264 |   ) {
265 |     accessQueue.async { [weak self] in  // Block A runs serially on accessQueue
266 |       guard let self = self else { return }
    |                        `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
267 |
268 |       var flagVariant: MixpanelFlagVariant?
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:285:37: warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
 31 |
 32 | // Represents the variant associated with a feature flag
 33 | public struct MixpanelFlagVariant: Decodable {
    |               `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
 34 |   public let key: String  // Corresponds to 'variant_key' from API
 35 |   public let value: Any?  // Corresponds to 'variant_value' from API
    :
283 |
284 |       if flagsAreCurrentlyReady {
285 |         let result = flagVariant ?? fallback
    |                                     `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
286 |         if flagVariant != nil, needsTrackingCheck {
287 |           // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:291:36: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
289 |           self._trackFlagIfNeeded(flagName: flagName, variant: result)
290 |         }
291 |         DispatchQueue.main.async { completion(result) }
    |                                    |- warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
    |                                    `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
292 |
293 |       } else {
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:285:37: warning: implicit capture of 'fallback' requires that 'MixpanelFlagVariant' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 31 |
 32 | // Represents the variant associated with a feature flag
 33 | public struct MixpanelFlagVariant: Decodable {
    |               `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
 34 |   public let key: String  // Corresponds to 'variant_key' from API
 35 |   public let value: Any?  // Corresponds to 'variant_value' from API
    :
283 |
284 |       if flagsAreCurrentlyReady {
285 |         let result = flagVariant ?? fallback
    |                                     `- warning: implicit capture of 'fallback' requires that 'MixpanelFlagVariant' conforms to 'Sendable'; this is an error in the Swift 6 language mode
286 |         if flagVariant != nil, needsTrackingCheck {
287 |           // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:302:62: warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in an isolated closure; this is an error in the Swift 6 language mode
 31 |
 32 | // Represents the variant associated with a feature flag
 33 | public struct MixpanelFlagVariant: Decodable {
    |               `- note: consider making struct 'MixpanelFlagVariant' conform to the 'Sendable' protocol
 34 |   public let key: String  // Corresponds to 'variant_key' from API
 35 |   public let value: Any?  // Corresponds to 'variant_value' from API
    :
300 |           if success {
301 |             // Fetch succeeded, get the flag SYNCHRONOUSLY
302 |             result = self.getVariantSync(flagName, fallback: fallback)
    |                                                              `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in an isolated closure; this is an error in the Swift 6 language mode
303 |           } else {
304 |             print("Warning: Failed to fetch flags, returning fallback for \(flagName).")
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:308:38: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
306 |           }
307 |           // Call original completion (on main thread)
308 |           DispatchQueue.main.async { completion(result) }
    |                                      |- warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
    |                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
309 |         }
310 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:385:9: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
383 |       // Dispatch the network request initiation to a global queue.
384 |       DispatchQueue.global(qos: .utility).async { [weak self] in
385 |         self?._performFetchRequest()
    |         `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
386 |       }
387 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:440:11: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
438 |         // Update state and call completions via _completeFetch on the serial queue
439 |         self?.accessQueue.async {  // Dispatch completion handling to serial queue
440 |           self?._completeFetch(success: false)
    |           `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
441 |         }
442 |       },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:440:11: warning: reference to captured var 'self' in concurrently-executing code
438 |         // Update state and call completions via _completeFetch on the serial queue
439 |         self?.accessQueue.async {  // Dispatch completion handling to serial queue
440 |           self?._completeFetch(success: false)
    |           `- warning: reference to captured var 'self' in concurrently-executing code
441 |         }
442 |       },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:448:28: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
179 | // --- FeatureFlagManager Class ---
180 |
181 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
182 |
183 |   weak var delegate: MixpanelFlagDelegate?
    :
446 |         // Update state and call completions via _completeFetch on the serial queue
447 |         self.accessQueue.async { [weak self] in
448 |           guard let self = self else { return }
    |                            `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
449 |           // already on accessQueue – write directly
450 |           self.flags = flagsResponse.flags ?? [:]
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:450:24: warning: capture of 'flagsResponse' with non-sendable type 'FlagsResponse' in a '@Sendable' closure
 64 |
 65 | // Response structure for the /flags endpoint
 66 | struct FlagsResponse: Decodable {
    |        `- note: consider making struct 'FlagsResponse' conform to the 'Sendable' protocol
 67 |   let flags: [String: MixpanelFlagVariant]?  // Dictionary where key is flag name
 68 | }
    :
448 |           guard let self = self else { return }
449 |           // already on accessQueue – write directly
450 |           self.flags = flagsResponse.flags ?? [:]
    |                        `- warning: capture of 'flagsResponse' with non-sendable type 'FlagsResponse' in a '@Sendable' closure
451 |           print("Flags updated: \(self.flags ?? [:])")
452 |           self._completeFetch(success: true)  // still on accessQueue
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:496:7: warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
494 |     // Dispatch delegate call asynchronously to main thread for safety
495 |     DispatchQueue.main.async {
496 |       delegate.track(event: "$experiment_started", properties: properties)
    |       |- warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
    |       `- note: task-isolated 'delegate' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
497 |       print("Tracked $experiment_started for \(flagName) (dispatched to main)")
498 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:308:38: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
306 |           }
307 |           // Call original completion (on main thread)
308 |           DispatchQueue.main.async { completion(result) }
    |                                      |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
309 |         }
310 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:308:49: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
306 |           }
307 |           // Call original completion (on main thread)
308 |           DispatchQueue.main.async { completion(result) }
    |                                                 |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                                 `- note: task-isolated 'result' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
309 |         }
310 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:465:7: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
463 |
464 |     DispatchQueue.main.async {
465 |       handlers.forEach { $0(success) }
    |       |- warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
    |       `- note: task-isolated 'handlers' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
466 |     }
467 |   }
[13/29] Compiling Mixpanel ReadWriteLock.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionMetadata.swift:24:24: warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
 9 | import Foundation
10 |
11 | class SessionMetadata {
   |       `- note: class 'SessionMetadata' does not conform to the 'Sendable' protocol
12 |   var eventsCounter: UInt64 = 0
13 |   var peopleCounter: UInt64 = 0
   :
22 |   func applicationWillEnterForeground() {
23 |     trackingQueue.async { [weak self] in
24 |       guard let self = self else { return }
   |                        `- warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
25 |
26 |       self.eventsCounter = 0
[14/29] Compiling Mixpanel SessionMetadata.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionMetadata.swift:24:24: warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
 9 | import Foundation
10 |
11 | class SessionMetadata {
   |       `- note: class 'SessionMetadata' does not conform to the 'Sendable' protocol
12 |   var eventsCounter: UInt64 = 0
13 |   var peopleCounter: UInt64 = 0
   :
22 |   func applicationWillEnterForeground() {
23 |     trackingQueue.async { [weak self] in
24 |       guard let self = self else { return }
   |                        `- warning: capture of 'self' with non-sendable type 'SessionMetadata?' in a '@Sendable' closure
25 |
26 |       self.eventsCounter = 0
[15/29] Compiling Mixpanel AutomaticEvents.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:14: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | class AutomaticProperties {
 20 |   static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
    |              |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 |   static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |   private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:14: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 20 |   static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
 21 |
 22 |   static var properties: InternalProperties = {
    |              |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
    |              |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |     var p = InternalProperties()
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:14: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |   }()
 77 |
 78 |   static var peopleProperties: InternalProperties = {
    |              |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
    |              |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |     var p = InternalProperties()
 80 |     let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:16:14: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | struct QueueConstants {
16 |   static var queueSize = 5000
   |              |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | }
18 |
[16/29] Compiling Mixpanel AutomaticProperties.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:14: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | class AutomaticProperties {
 20 |   static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
    |              |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 |   static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |   private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:14: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 20 |   static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
 21 |
 22 |   static var properties: InternalProperties = {
    |              |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
    |              |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |     var p = InternalProperties()
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:14: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |   }()
 77 |
 78 |   static var peopleProperties: InternalProperties = {
    |              |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
    |              |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |     var p = InternalProperties()
 80 |     let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:16:14: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | struct QueueConstants {
16 |   static var queueSize = 5000
   |              |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | }
18 |
[17/29] Compiling Mixpanel Constants.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:14: warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | class AutomaticProperties {
 20 |   static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
    |              |- warning: static property 'automaticPropertiesLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'automaticPropertiesLock' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 21 |
 22 |   static var properties: InternalProperties = {
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |   private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:22:14: warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 20 |   static let automaticPropertiesLock = ReadWriteLock(label: "automaticPropertiesLock")
 21 |
 22 |   static var properties: InternalProperties = {
    |              |- warning: static property 'properties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: convert 'properties' to a 'let' constant to make 'Sendable' shared state immutable
    |              |- note: add '@MainActor' to make static property 'properties' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |     var p = InternalProperties()
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:78:14: warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 76 |   }()
 77 |
 78 |   static var peopleProperties: InternalProperties = {
    |              |- warning: static property 'peopleProperties' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: convert 'peopleProperties' to a 'let' constant to make 'Sendable' shared state immutable
    |              |- note: add '@MainActor' to make static property 'peopleProperties' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 79 |     var p = InternalProperties()
 80 |     let infoDict = Bundle.main.infoDictionary
/Users/admin/builder/spi-builder-workspace/Sources/Constants.swift:16:14: warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | struct QueueConstants {
16 |   static var queueSize = 5000
   |              |- warning: static property 'queueSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |              |- note: convert 'queueSize' to a 'let' constant to make 'Sendable' shared state immutable
   |              |- note: add '@MainActor' to make static property 'queueSize' part of global actor 'MainActor'
   |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | }
18 |
[18/29] Compiling Mixpanel MixpanelType.swift
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:83:11: warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
 81 |
 82 |         if let hasError = error {
 83 |           failure(.other(hasError), data, response)
    |           |- warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
    |           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 84 |         } else {
 85 |           failure(.noData, data, response)
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:97:26: warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
 33 | }
 34 |
 35 | struct Resource<A> {
    |        `- note: consider making generic struct 'Resource' conform to the 'Sendable' protocol
 36 |   let path: String
 37 |   let method: RequestMethod
    :
 95 |         return
 96 |       }
 97 |       guard let result = resource.parse(responseData) else {
    |                          `- warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
 98 |         failure(.parseError, data, response)
 99 |         return
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:102:7: warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
100 |       }
101 |
102 |       success(result, response)
    |       |- warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
    |       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
103 |     }.resume()
104 |   }
[19/29] Compiling Mixpanel Network.swift
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:83:11: warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
 81 |
 82 |         if let hasError = error {
 83 |           failure(.other(hasError), data, response)
    |           |- warning: capture of 'failure' with non-sendable type '(Reason, Data?, URLResponse?) -> Void' in a '@Sendable' closure
    |           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 84 |         } else {
 85 |           failure(.noData, data, response)
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:97:26: warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
 33 | }
 34 |
 35 | struct Resource<A> {
    |        `- note: consider making generic struct 'Resource' conform to the 'Sendable' protocol
 36 |   let path: String
 37 |   let method: RequestMethod
    :
 95 |         return
 96 |       }
 97 |       guard let result = resource.parse(responseData) else {
    |                          `- warning: capture of 'resource' with non-sendable type 'Resource<A>' in a '@Sendable' closure
 98 |         failure(.parseError, data, response)
 99 |         return
/Users/admin/builder/spi-builder-workspace/Sources/Network.swift:102:7: warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
100 |       }
101 |
102 |       success(result, response)
    |       |- warning: capture of 'success' with non-sendable type '(A, URLResponse?) -> Void' in a '@Sendable' closure
    |       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
103 |     }.resume()
104 |   }
[20/29] Compiling Mixpanel People.swift
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:53:24: warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 11 | /// Access to the Mixpanel People API, available as an accessible variable from
 12 | /// the main Mixpanel instance.
 13 | open class People {
    |            `- note: class 'People' does not conform to the 'Sendable' protocol
 14 |
 15 |   /// controls the $ignore_time property in any subsequent MixpanelPeople operation.
    :
 51 |
 52 |     serialQueue.async { [weak self, action, properties] in
 53 |       guard let self = self else { return }
    |                        `- warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 54 |
 55 |       var r = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:65:21: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 63 |         // $unset takes an array of property names which is supplied to this method
 64 |         // in the properties parameter under the key "$properties"
 65 |         r[action] = properties["$properties"]
    |                     `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 66 |       } else {
 67 |         if action == "$set" || action == "$set_once" {
[21/29] Compiling Mixpanel PrintLogging.swift
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:53:24: warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 11 | /// Access to the Mixpanel People API, available as an accessible variable from
 12 | /// the main Mixpanel instance.
 13 | open class People {
    |            `- note: class 'People' does not conform to the 'Sendable' protocol
 14 |
 15 |   /// controls the $ignore_time property in any subsequent MixpanelPeople operation.
    :
 51 |
 52 |     serialQueue.async { [weak self, action, properties] in
 53 |       guard let self = self else { return }
    |                        `- warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 54 |
 55 |       var r = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:65:21: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 63 |         // $unset takes an array of property names which is supplied to this method
 64 |         // in the properties parameter under the key "$properties"
 65 |         r[action] = properties["$properties"]
    |                     `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 66 |       } else {
 67 |         if action == "$set" || action == "$set_once" {
[22/29] Compiling Mixpanel MixpanelOptions.swift
[23/29] Compiling Mixpanel MixpanelPersistence.swift
[24/29] Compiling Mixpanel FileLogging.swift
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:120:9: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
118 |     if let timer = timer {
119 |       DispatchQueue.main.async { [weak self, timer] in
120 |         timer.invalidate()
    |         |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'timer' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 |         self?.timer = nil
122 |       }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:121:9: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
119 |       DispatchQueue.main.async { [weak self, timer] in
120 |         timer.invalidate()
121 |         self?.timer = nil
    |         |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
122 |       }
123 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:97:24: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 95 |     stopFlushTimer()
 96 |     DispatchQueue.main.async { [weak self] in
 97 |       guard let self = self else {
    |                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 98 |         return
 99 |       }
[25/29] Compiling Mixpanel Flush.swift
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:120:9: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
118 |     if let timer = timer {
119 |       DispatchQueue.main.async { [weak self, timer] in
120 |         timer.invalidate()
    |         |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'timer' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 |         self?.timer = nil
122 |       }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:121:9: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
119 |       DispatchQueue.main.async { [weak self, timer] in
120 |         timer.invalidate()
121 |         self?.timer = nil
    |         |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
122 |       }
123 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:97:24: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 95 |     stopFlushTimer()
 96 |     DispatchQueue.main.async { [weak self] in
 97 |       guard let self = self else {
    |                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 98 |         return
 99 |       }
[26/29] Compiling Mixpanel FlushRequest.swift
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:120:9: warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
118 |     if let timer = timer {
119 |       DispatchQueue.main.async { [weak self, timer] in
120 |         timer.invalidate()
    |         |- warning: sending 'timer' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'timer' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
121 |         self?.timer = nil
122 |       }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:121:9: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
119 |       DispatchQueue.main.async { [weak self, timer] in
120 |         timer.invalidate()
121 |         self?.timer = nil
    |         |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
122 |       }
123 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Flush.swift:97:24: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 95 |     stopFlushTimer()
 96 |     DispatchQueue.main.async { [weak self] in
 97 |       guard let self = self else {
    |                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 98 |         return
 99 |       }
[27/29] Compiling Mixpanel Mixpanel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:289:14: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
285 | }
286 |
287 | final class MixpanelManager {
    |             `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
288 |
289 |   static let sharedInstance = MixpanelManager()
    |              |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
290 |   private var instances: [String: MixpanelInstance]
291 |   private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:786:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 784 |     if hasOptedOutTracking() {
 785 |       if let completion = completion {
 786 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 787 |       }
 788 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:793:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 791 |       MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 792 |       if let completion = completion {
 793 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 794 |       }
 795 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:842:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 840 |           hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 841 |       if let completion = completion {
 842 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 843 |       }
 844 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:798:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
 796 |     }
 797 |     trackingQueue.async { [weak self, distinctId, usePeople] in
 798 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 799 |
 800 |       // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:841:27: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 839 |           alias: self.alias,
 840 |           hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 841 |       if let completion = completion {
     |                           |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 842 |         DispatchQueue.main.async(execute: completion)
 843 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:880:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 878 |     if hasOptedOutTracking() {
 879 |       if let completion = completion {
 880 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 881 |       }
 882 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:888:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 886 |       MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 887 |       if let completion = completion {
 888 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 889 |       }
 890 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:896:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 894 |       MixpanelLogger.error(message: "\(self) create alias called with empty alias")
 895 |       if let completion = completion {
 896 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 897 |       }
 898 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:905:47: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 903 |         guard let self = self else {
 904 |           if let completion = completion {
 905 |             DispatchQueue.main.async(execute: completion)
     |                                               `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 906 |           }
 907 |           return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:949:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 947 |         message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
 948 |       if let completion = completion {
 949 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 950 |       }
 951 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:903:26: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
 901 |     if alias != distinctId {
 902 |       trackingQueue.async { [weak self, alias] in
 903 |         guard let self = self else {
     |                          `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 904 |           if let completion = completion {
 905 |             DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:904:31: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 902 |       trackingQueue.async { [weak self, alias] in
 903 |         guard let self = self else {
 904 |           if let completion = completion {
     |                               |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 905 |             DispatchQueue.main.async(execute: completion)
 906 |           }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 980 |       self.archive()
 981 |       if let completion = completion {
 982 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 983 |       }
 984 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:963:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
 961 |     flush()
 962 |     trackingQueue.async { [weak self] in
 963 |       guard let self = self else {
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 964 |         return
 965 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:981:27: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 979 |       self.mixpanelPersistence.resetEntities()
 980 |       self.archive()
 981 |       if let completion = completion {
     |                           |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 982 |         DispatchQueue.main.async(execute: completion)
 983 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1064:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1062 |     if hasOptedOutTracking() {
1063 |       if let completion = completion {
1064 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1065 |       }
1066 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1071:45: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1069 |       guard let self = self else {
1070 |         if let completion = completion {
1071 |           DispatchQueue.main.async(execute: completion)
     |                                             `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1072 |         }
1073 |         return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1078:45: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1076 |       if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
1077 |         if let completion = completion {
1078 |           DispatchQueue.main.async(execute: completion)
     |                                             `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1079 |         }
1080 |         return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1101:47: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1099 |         guard let self = self else {
1100 |           if let completion = completion {
1101 |             DispatchQueue.main.async(execute: completion)
     |                                               `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1102 |           }
1103 |           return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1110:45: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1108 |
1109 |         if let completion = completion {
1110 |           DispatchQueue.main.async(execute: completion)
     |                                             `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1111 |         }
1112 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1069:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1067 |     }
1068 |     trackingQueue.async { [weak self, completion] in
1069 |       guard let self = self else {
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1070 |         if let completion = completion {
1071 |           DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1070:29: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1068 |     trackingQueue.async { [weak self, completion] in
1069 |       guard let self = self else {
1070 |         if let completion = completion {
     |                             |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1071 |           DispatchQueue.main.async(execute: completion)
1072 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1099:26: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1097 |
1098 |       self.networkQueue.async { [weak self, completion] in
1099 |         guard let self = self else {
     |                          `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1100 |           if let completion = completion {
1101 |             DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1100:31: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1098 |       self.networkQueue.async { [weak self, completion] in
1099 |         guard let self = self else {
1100 |           if let completion = completion {
     |                               |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |             DispatchQueue.main.async(execute: completion)
1102 |           }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1105:25: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1103 |           return
1104 |         }
1105 |         self.flushQueue(eventQueue, type: .events)
     |                         `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1106 |         self.flushQueue(peopleQueue, type: .people)
1107 |         self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1106:25: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1104 |         }
1105 |         self.flushQueue(eventQueue, type: .events)
1106 |         self.flushQueue(peopleQueue, type: .people)
     |                         `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1107 |         self.flushQueue(groupsQueue, type: .groups)
1108 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:25: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1105 |         self.flushQueue(eventQueue, type: .events)
1106 |         self.flushQueue(peopleQueue, type: .people)
1107 |         self.flushQueue(groupsQueue, type: .groups)
     |                         `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1108 |
1109 |         if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1140:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1138 |   func flushSuccess(type: FlushType, ids: [Int32]) {
1139 |     trackingQueue.async { [weak self] in
1140 |       guard let self = self else {
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1141 |         return
1142 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1169:17: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1167 |
1168 |     trackingQueue.async { [weak self, event, properties, epochInterval] in
1169 |       guard let self else {
     |                 `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1170 |         return
1171 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1192:21: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1190 |       let timedEventsSnapshot = self.trackInstance.track(
1191 |         event: event,
1192 |         properties: properties,
     |                     `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1193 |         timedEvents: shadowTimedEvents,
1194 |         superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1290:19: warning: result of call to 'write(closure:)' is unused
1288 |
1289 |   func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1290 |     readWriteLock.write {
     |                   `- warning: result of call to 'write(closure:)' is unused
1291 |       groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1292 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1324:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1322 |     let startTime = Date().timeIntervalSince1970
1323 |     trackingQueue.async { [weak self, startTime, event] in
1324 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1325 |       let timedEvents = self.trackInstance.time(
1326 |         event: event, timedEvents: self.timedEvents, startTime: startTime)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1356:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1354 |   public func clearTimedEvents() {
1355 |     trackingQueue.async { [weak self] in
1356 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1357 |       self.readWriteLock.write {
1358 |         self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1372:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1370 |   public func clearTimedEvent(event: String) {
1371 |     trackingQueue.async { [weak self, event] in
1372 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1373 |
1374 |       let updatedTimedEvents = self.trackInstance.clearTimedEvent(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1398:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1396 |   public func clearSuperProperties() {
1397 |     trackingQueue.async { [weak self] in
1398 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1399 |       self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1400 |       MixpanelPersistence.saveSuperProperties(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1418:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1416 |   public func registerSuperProperties(_ properties: Properties) {
1417 |     trackingQueue.async { [weak self] in
1418 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1419 |       let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1420 |         properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1420:9: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1418 |       guard let self = self else { return }
1419 |       let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1420 |         properties,
     |         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1421 |         superProperties: self.superProperties)
1422 |       self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1447:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1445 |   ) {
1446 |     trackingQueue.async { [weak self] in
1447 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1448 |       let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1449 |         properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1449:9: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1447 |       guard let self = self else { return }
1448 |       let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1449 |         properties,
     |         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1450 |         superProperties: self.superProperties,
1451 |         defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1451:23: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1449 |         properties,
1450 |         superProperties: self.superProperties,
1451 |         defaultValue: defaultValue)
     |                       `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1452 |       self.readWriteLock.write {
1453 |         self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1477:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1475 |   public func unregisterSuperProperty(_ propertyName: String) {
1476 |     trackingQueue.async { [weak self] in
1477 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1478 |       let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(
1479 |         propertyName,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1500:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1498 |   ) {
1499 |     trackingQueue.async { [weak self] in
1500 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1501 |       var superPropertiesShadow = self.superProperties
1502 |       self.trackInstance.updateSuperProperty(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1503:9: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1501 |       var superPropertiesShadow = self.superProperties
1502 |       self.trackInstance.updateSuperProperty(
1503 |         update,
     |         |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
     |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1504 |         superProperties: &superPropertiesShadow)
1505 |       self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1619:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1617 |   public func optOutTracking() {
1618 |     trackingQueue.async { [weak self] in
1619 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1620 |       if self.people.distinctId != nil {
1621 |         self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1665:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1663 |   public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1664 |     trackingQueue.async { [weak self] in
1665 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1666 |       self.readWriteLock.write {
1667 |         self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1675:48: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1673 |         self.identify(distinctId: distinctId)
1674 |       }
1675 |       self.track(event: "$opt_in", properties: properties)
     |                                                `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1676 |     }
1677 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:22: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 58 |
 59 | public class MixpanelLogger {
 60 |   private static var loggers = [MixpanelLogging]()
    |                      |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
    |                      |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 61 |   private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |   private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:22: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 59 | public class MixpanelLogger {
 60 |   private static var loggers = [MixpanelLogging]()
 61 |   private static var enabledLevels = Set<MixpanelLogLevel>()
    |                      |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
    |                      |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |   private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:22: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 60 |   private static var loggers = [MixpanelLogging]()
 61 |   private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |   private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
    |                      |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 63 |
 64 |   /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |   private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:19: warning: result of call to 'write(closure:)' is unused
 71 |   /// Enable log messages of a specific `LogLevel` to be added to the log
 72 |   class func enableLevel(_ level: MixpanelLogLevel) {
 73 |     readWriteLock.write {
    |                   `- warning: result of call to 'write(closure:)' is unused
 74 |       enabledLevels.insert(level)
 75 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:19: warning: result of call to 'write(closure:)' is unused
 78 |   /// Disable log messages of a specific `LogLevel` to prevent them from being logged
 79 |   class func disableLevel(_ level: MixpanelLogLevel) {
 80 |     readWriteLock.write {
    |                   `- warning: result of call to 'write(closure:)' is unused
 81 |       enabledLevels.remove(level)
 82 |     }
[28/29] Compiling Mixpanel MixpanelInstance.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:289:14: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
285 | }
286 |
287 | final class MixpanelManager {
    |             `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
288 |
289 |   static let sharedInstance = MixpanelManager()
    |              |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
290 |   private var instances: [String: MixpanelInstance]
291 |   private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:786:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 784 |     if hasOptedOutTracking() {
 785 |       if let completion = completion {
 786 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 787 |       }
 788 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:793:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 791 |       MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 792 |       if let completion = completion {
 793 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 794 |       }
 795 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:842:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 840 |           hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 841 |       if let completion = completion {
 842 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 843 |       }
 844 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:798:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
 796 |     }
 797 |     trackingQueue.async { [weak self, distinctId, usePeople] in
 798 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 799 |
 800 |       // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:841:27: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 839 |           alias: self.alias,
 840 |           hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 841 |       if let completion = completion {
     |                           |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 842 |         DispatchQueue.main.async(execute: completion)
 843 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:880:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 878 |     if hasOptedOutTracking() {
 879 |       if let completion = completion {
 880 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 881 |       }
 882 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:888:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 886 |       MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 887 |       if let completion = completion {
 888 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 889 |       }
 890 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:896:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 894 |       MixpanelLogger.error(message: "\(self) create alias called with empty alias")
 895 |       if let completion = completion {
 896 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 897 |       }
 898 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:905:47: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 903 |         guard let self = self else {
 904 |           if let completion = completion {
 905 |             DispatchQueue.main.async(execute: completion)
     |                                               `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 906 |           }
 907 |           return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:949:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 947 |         message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
 948 |       if let completion = completion {
 949 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 950 |       }
 951 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:903:26: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
 901 |     if alias != distinctId {
 902 |       trackingQueue.async { [weak self, alias] in
 903 |         guard let self = self else {
     |                          `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 904 |           if let completion = completion {
 905 |             DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:904:31: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 902 |       trackingQueue.async { [weak self, alias] in
 903 |         guard let self = self else {
 904 |           if let completion = completion {
     |                               |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 905 |             DispatchQueue.main.async(execute: completion)
 906 |           }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 980 |       self.archive()
 981 |       if let completion = completion {
 982 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 983 |       }
 984 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:963:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
 961 |     flush()
 962 |     trackingQueue.async { [weak self] in
 963 |       guard let self = self else {
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 964 |         return
 965 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:981:27: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 979 |       self.mixpanelPersistence.resetEntities()
 980 |       self.archive()
 981 |       if let completion = completion {
     |                           |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 982 |         DispatchQueue.main.async(execute: completion)
 983 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1064:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1062 |     if hasOptedOutTracking() {
1063 |       if let completion = completion {
1064 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1065 |       }
1066 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1071:45: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1069 |       guard let self = self else {
1070 |         if let completion = completion {
1071 |           DispatchQueue.main.async(execute: completion)
     |                                             `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1072 |         }
1073 |         return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1078:45: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1076 |       if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
1077 |         if let completion = completion {
1078 |           DispatchQueue.main.async(execute: completion)
     |                                             `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1079 |         }
1080 |         return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1101:47: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1099 |         guard let self = self else {
1100 |           if let completion = completion {
1101 |             DispatchQueue.main.async(execute: completion)
     |                                               `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1102 |           }
1103 |           return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1110:45: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1108 |
1109 |         if let completion = completion {
1110 |           DispatchQueue.main.async(execute: completion)
     |                                             `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1111 |         }
1112 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1069:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1067 |     }
1068 |     trackingQueue.async { [weak self, completion] in
1069 |       guard let self = self else {
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1070 |         if let completion = completion {
1071 |           DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1070:29: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1068 |     trackingQueue.async { [weak self, completion] in
1069 |       guard let self = self else {
1070 |         if let completion = completion {
     |                             |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1071 |           DispatchQueue.main.async(execute: completion)
1072 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1099:26: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1097 |
1098 |       self.networkQueue.async { [weak self, completion] in
1099 |         guard let self = self else {
     |                          `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1100 |           if let completion = completion {
1101 |             DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1100:31: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1098 |       self.networkQueue.async { [weak self, completion] in
1099 |         guard let self = self else {
1100 |           if let completion = completion {
     |                               |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |             DispatchQueue.main.async(execute: completion)
1102 |           }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1105:25: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1103 |           return
1104 |         }
1105 |         self.flushQueue(eventQueue, type: .events)
     |                         `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1106 |         self.flushQueue(peopleQueue, type: .people)
1107 |         self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1106:25: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1104 |         }
1105 |         self.flushQueue(eventQueue, type: .events)
1106 |         self.flushQueue(peopleQueue, type: .people)
     |                         `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1107 |         self.flushQueue(groupsQueue, type: .groups)
1108 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:25: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1105 |         self.flushQueue(eventQueue, type: .events)
1106 |         self.flushQueue(peopleQueue, type: .people)
1107 |         self.flushQueue(groupsQueue, type: .groups)
     |                         `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1108 |
1109 |         if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1140:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1138 |   func flushSuccess(type: FlushType, ids: [Int32]) {
1139 |     trackingQueue.async { [weak self] in
1140 |       guard let self = self else {
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1141 |         return
1142 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1169:17: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1167 |
1168 |     trackingQueue.async { [weak self, event, properties, epochInterval] in
1169 |       guard let self else {
     |                 `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1170 |         return
1171 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1192:21: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1190 |       let timedEventsSnapshot = self.trackInstance.track(
1191 |         event: event,
1192 |         properties: properties,
     |                     `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1193 |         timedEvents: shadowTimedEvents,
1194 |         superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1290:19: warning: result of call to 'write(closure:)' is unused
1288 |
1289 |   func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1290 |     readWriteLock.write {
     |                   `- warning: result of call to 'write(closure:)' is unused
1291 |       groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1292 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1324:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1322 |     let startTime = Date().timeIntervalSince1970
1323 |     trackingQueue.async { [weak self, startTime, event] in
1324 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1325 |       let timedEvents = self.trackInstance.time(
1326 |         event: event, timedEvents: self.timedEvents, startTime: startTime)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1356:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1354 |   public func clearTimedEvents() {
1355 |     trackingQueue.async { [weak self] in
1356 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1357 |       self.readWriteLock.write {
1358 |         self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1372:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1370 |   public func clearTimedEvent(event: String) {
1371 |     trackingQueue.async { [weak self, event] in
1372 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1373 |
1374 |       let updatedTimedEvents = self.trackInstance.clearTimedEvent(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1398:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1396 |   public func clearSuperProperties() {
1397 |     trackingQueue.async { [weak self] in
1398 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1399 |       self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1400 |       MixpanelPersistence.saveSuperProperties(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1418:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1416 |   public func registerSuperProperties(_ properties: Properties) {
1417 |     trackingQueue.async { [weak self] in
1418 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1419 |       let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1420 |         properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1420:9: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1418 |       guard let self = self else { return }
1419 |       let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1420 |         properties,
     |         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1421 |         superProperties: self.superProperties)
1422 |       self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1447:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1445 |   ) {
1446 |     trackingQueue.async { [weak self] in
1447 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1448 |       let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1449 |         properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1449:9: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1447 |       guard let self = self else { return }
1448 |       let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1449 |         properties,
     |         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1450 |         superProperties: self.superProperties,
1451 |         defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1451:23: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1449 |         properties,
1450 |         superProperties: self.superProperties,
1451 |         defaultValue: defaultValue)
     |                       `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1452 |       self.readWriteLock.write {
1453 |         self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1477:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1475 |   public func unregisterSuperProperty(_ propertyName: String) {
1476 |     trackingQueue.async { [weak self] in
1477 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1478 |       let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(
1479 |         propertyName,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1500:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1498 |   ) {
1499 |     trackingQueue.async { [weak self] in
1500 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1501 |       var superPropertiesShadow = self.superProperties
1502 |       self.trackInstance.updateSuperProperty(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1503:9: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1501 |       var superPropertiesShadow = self.superProperties
1502 |       self.trackInstance.updateSuperProperty(
1503 |         update,
     |         |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
     |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1504 |         superProperties: &superPropertiesShadow)
1505 |       self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1619:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1617 |   public func optOutTracking() {
1618 |     trackingQueue.async { [weak self] in
1619 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1620 |       if self.people.distinctId != nil {
1621 |         self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1665:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1663 |   public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1664 |     trackingQueue.async { [weak self] in
1665 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1666 |       self.readWriteLock.write {
1667 |         self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1675:48: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1673 |         self.identify(distinctId: distinctId)
1674 |       }
1675 |       self.track(event: "$opt_in", properties: properties)
     |                                                `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1676 |     }
1677 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:22: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 58 |
 59 | public class MixpanelLogger {
 60 |   private static var loggers = [MixpanelLogging]()
    |                      |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
    |                      |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 61 |   private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |   private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:22: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 59 | public class MixpanelLogger {
 60 |   private static var loggers = [MixpanelLogging]()
 61 |   private static var enabledLevels = Set<MixpanelLogLevel>()
    |                      |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
    |                      |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |   private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:22: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 60 |   private static var loggers = [MixpanelLogging]()
 61 |   private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |   private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
    |                      |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 63 |
 64 |   /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |   private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:19: warning: result of call to 'write(closure:)' is unused
 71 |   /// Enable log messages of a specific `LogLevel` to be added to the log
 72 |   class func enableLevel(_ level: MixpanelLogLevel) {
 73 |     readWriteLock.write {
    |                   `- warning: result of call to 'write(closure:)' is unused
 74 |       enabledLevels.insert(level)
 75 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:19: warning: result of call to 'write(closure:)' is unused
 78 |   /// Disable log messages of a specific `LogLevel` to prevent them from being logged
 79 |   class func disableLevel(_ level: MixpanelLogLevel) {
 80 |     readWriteLock.write {
    |                   `- warning: result of call to 'write(closure:)' is unused
 81 |       enabledLevels.remove(level)
 82 |     }
[29/29] Compiling Mixpanel MixpanelLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:289:14: warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
285 | }
286 |
287 | final class MixpanelManager {
    |             `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
288 |
289 |   static let sharedInstance = MixpanelManager()
    |              |- warning: static property 'sharedInstance' is not concurrency-safe because non-'Sendable' type 'MixpanelManager' may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'sharedInstance' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
290 |   private var instances: [String: MixpanelInstance]
291 |   private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:786:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 784 |     if hasOptedOutTracking() {
 785 |       if let completion = completion {
 786 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 787 |       }
 788 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:793:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 791 |       MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 792 |       if let completion = completion {
 793 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 794 |       }
 795 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:842:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 840 |           hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 841 |       if let completion = completion {
 842 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 843 |       }
 844 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:798:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
 796 |     }
 797 |     trackingQueue.async { [weak self, distinctId, usePeople] in
 798 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 799 |
 800 |       // If there's no anonymousId assigned yet, that means distinctId is stored in the storage. Assigning already stored
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:841:27: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 839 |           alias: self.alias,
 840 |           hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 841 |       if let completion = completion {
     |                           |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 842 |         DispatchQueue.main.async(execute: completion)
 843 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:880:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 878 |     if hasOptedOutTracking() {
 879 |       if let completion = completion {
 880 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 881 |       }
 882 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:888:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 886 |       MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 887 |       if let completion = completion {
 888 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 889 |       }
 890 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:896:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 894 |       MixpanelLogger.error(message: "\(self) create alias called with empty alias")
 895 |       if let completion = completion {
 896 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 897 |       }
 898 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:905:47: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 903 |         guard let self = self else {
 904 |           if let completion = completion {
 905 |             DispatchQueue.main.async(execute: completion)
     |                                               `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 906 |           }
 907 |           return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:949:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 947 |         message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
 948 |       if let completion = completion {
 949 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 950 |       }
 951 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:903:26: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
 901 |     if alias != distinctId {
 902 |       trackingQueue.async { [weak self, alias] in
 903 |         guard let self = self else {
     |                          `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 904 |           if let completion = completion {
 905 |             DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:904:31: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 902 |       trackingQueue.async { [weak self, alias] in
 903 |         guard let self = self else {
 904 |           if let completion = completion {
     |                               |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 905 |             DispatchQueue.main.async(execute: completion)
 906 |           }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:982:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 980 |       self.archive()
 981 |       if let completion = completion {
 982 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 983 |       }
 984 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:963:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
 961 |     flush()
 962 |     trackingQueue.async { [weak self] in
 963 |       guard let self = self else {
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 964 |         return
 965 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:981:27: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 979 |       self.mixpanelPersistence.resetEntities()
 980 |       self.archive()
 981 |       if let completion = completion {
     |                           |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                           `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 982 |         DispatchQueue.main.async(execute: completion)
 983 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1064:43: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1062 |     if hasOptedOutTracking() {
1063 |       if let completion = completion {
1064 |         DispatchQueue.main.async(execute: completion)
     |                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1065 |       }
1066 |       return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1071:45: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1069 |       guard let self = self else {
1070 |         if let completion = completion {
1071 |           DispatchQueue.main.async(execute: completion)
     |                                             `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1072 |         }
1073 |         return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1078:45: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1076 |       if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
1077 |         if let completion = completion {
1078 |           DispatchQueue.main.async(execute: completion)
     |                                             `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1079 |         }
1080 |         return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1101:47: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1099 |         guard let self = self else {
1100 |           if let completion = completion {
1101 |             DispatchQueue.main.async(execute: completion)
     |                                               `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1102 |           }
1103 |           return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1110:45: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1108 |
1109 |         if let completion = completion {
1110 |           DispatchQueue.main.async(execute: completion)
     |                                             `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1111 |         }
1112 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1069:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1067 |     }
1068 |     trackingQueue.async { [weak self, completion] in
1069 |       guard let self = self else {
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1070 |         if let completion = completion {
1071 |           DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1070:29: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1068 |     trackingQueue.async { [weak self, completion] in
1069 |       guard let self = self else {
1070 |         if let completion = completion {
     |                             |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1071 |           DispatchQueue.main.async(execute: completion)
1072 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1099:26: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1097 |
1098 |       self.networkQueue.async { [weak self, completion] in
1099 |         guard let self = self else {
     |                          `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1100 |           if let completion = completion {
1101 |             DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1100:31: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1098 |       self.networkQueue.async { [weak self, completion] in
1099 |         guard let self = self else {
1100 |           if let completion = completion {
     |                               |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
     |                               `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1101 |             DispatchQueue.main.async(execute: completion)
1102 |           }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1105:25: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1103 |           return
1104 |         }
1105 |         self.flushQueue(eventQueue, type: .events)
     |                         `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1106 |         self.flushQueue(peopleQueue, type: .people)
1107 |         self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1106:25: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1104 |         }
1105 |         self.flushQueue(eventQueue, type: .events)
1106 |         self.flushQueue(peopleQueue, type: .people)
     |                         `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1107 |         self.flushQueue(groupsQueue, type: .groups)
1108 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1107:25: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1105 |         self.flushQueue(eventQueue, type: .events)
1106 |         self.flushQueue(peopleQueue, type: .people)
1107 |         self.flushQueue(groupsQueue, type: .groups)
     |                         `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1108 |
1109 |         if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1140:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1138 |   func flushSuccess(type: FlushType, ids: [Int32]) {
1139 |     trackingQueue.async { [weak self] in
1140 |       guard let self = self else {
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1141 |         return
1142 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1169:17: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1167 |
1168 |     trackingQueue.async { [weak self, event, properties, epochInterval] in
1169 |       guard let self else {
     |                 `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1170 |         return
1171 |       }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1192:21: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1190 |       let timedEventsSnapshot = self.trackInstance.track(
1191 |         event: event,
1192 |         properties: properties,
     |                     `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1193 |         timedEvents: shadowTimedEvents,
1194 |         superProperties: shadowSuperProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1290:19: warning: result of call to 'write(closure:)' is unused
1288 |
1289 |   func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1290 |     readWriteLock.write {
     |                   `- warning: result of call to 'write(closure:)' is unused
1291 |       groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1292 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1324:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1322 |     let startTime = Date().timeIntervalSince1970
1323 |     trackingQueue.async { [weak self, startTime, event] in
1324 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1325 |       let timedEvents = self.trackInstance.time(
1326 |         event: event, timedEvents: self.timedEvents, startTime: startTime)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1356:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1354 |   public func clearTimedEvents() {
1355 |     trackingQueue.async { [weak self] in
1356 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1357 |       self.readWriteLock.write {
1358 |         self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1372:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1370 |   public func clearTimedEvent(event: String) {
1371 |     trackingQueue.async { [weak self, event] in
1372 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1373 |
1374 |       let updatedTimedEvents = self.trackInstance.clearTimedEvent(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1398:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1396 |   public func clearSuperProperties() {
1397 |     trackingQueue.async { [weak self] in
1398 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1399 |       self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1400 |       MixpanelPersistence.saveSuperProperties(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1418:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1416 |   public func registerSuperProperties(_ properties: Properties) {
1417 |     trackingQueue.async { [weak self] in
1418 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1419 |       let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1420 |         properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1420:9: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1418 |       guard let self = self else { return }
1419 |       let updatedSuperProperties = self.trackInstance.registerSuperProperties(
1420 |         properties,
     |         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1421 |         superProperties: self.superProperties)
1422 |       self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1447:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1445 |   ) {
1446 |     trackingQueue.async { [weak self] in
1447 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1448 |       let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1449 |         properties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1449:9: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1447 |       guard let self = self else { return }
1448 |       let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(
1449 |         properties,
     |         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1450 |         superProperties: self.superProperties,
1451 |         defaultValue: defaultValue)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1451:23: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1449 |         properties,
1450 |         superProperties: self.superProperties,
1451 |         defaultValue: defaultValue)
     |                       `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1452 |       self.readWriteLock.write {
1453 |         self.superProperties = updatedSuperProperties
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1477:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1475 |   public func unregisterSuperProperty(_ propertyName: String) {
1476 |     trackingQueue.async { [weak self] in
1477 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1478 |       let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(
1479 |         propertyName,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1500:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1498 |   ) {
1499 |     trackingQueue.async { [weak self] in
1500 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1501 |       var superPropertiesShadow = self.superProperties
1502 |       self.trackInstance.updateSuperProperty(
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1503:9: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1501 |       var superPropertiesShadow = self.superProperties
1502 |       self.trackInstance.updateSuperProperty(
1503 |         update,
     |         |- warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
     |         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
1504 |         superProperties: &superPropertiesShadow)
1505 |       self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1619:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1617 |   public func optOutTracking() {
1618 |     trackingQueue.async { [weak self] in
1619 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1620 |       if self.people.distinctId != nil {
1621 |         self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1665:24: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  73 |
  74 | /// The class that represents the Mixpanel Instance
  75 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate,
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  76 |   MixpanelFlagDelegate
  77 | {
     :
1663 |   public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1664 |     trackingQueue.async { [weak self] in
1665 |       guard let self = self else { return }
     |                        `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1666 |       self.readWriteLock.write {
1667 |         self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1675:48: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1673 |         self.identify(distinctId: distinctId)
1674 |       }
1675 |       self.track(event: "$opt_in", properties: properties)
     |                                                `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1676 |     }
1677 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelType.swift:14:17: note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 12 | /// MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.
 13 | /// Numbers are not NaN or infinity
 14 | public protocol MixpanelType: Any {
    |                 `- note: protocol 'MixpanelType' does not conform to the 'Sendable' protocol
 15 |   /**
 16 |      Checks if this object has nested object types that Mixpanel supports.
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:60:22: warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 58 |
 59 | public class MixpanelLogger {
 60 |   private static var loggers = [MixpanelLogging]()
    |                      |- warning: static property 'loggers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: convert 'loggers' to a 'let' constant to make 'Sendable' shared state immutable
    |                      |- note: add '@MainActor' to make static property 'loggers' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 61 |   private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |   private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:61:22: warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 59 | public class MixpanelLogger {
 60 |   private static var loggers = [MixpanelLogging]()
 61 |   private static var enabledLevels = Set<MixpanelLogLevel>()
    |                      |- warning: static property 'enabledLevels' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: convert 'enabledLevels' to a 'let' constant to make 'Sendable' shared state immutable
    |                      |- note: add '@MainActor' to make static property 'enabledLevels' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |   private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
 63 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:62:22: warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
 60 |   private static var loggers = [MixpanelLogging]()
 61 |   private static var enabledLevels = Set<MixpanelLogLevel>()
 62 |   private static let readWriteLock: ReadWriteLock = ReadWriteLock(label: "loggerLock")
    |                      |- warning: static property 'readWriteLock' is not concurrency-safe because non-'Sendable' type 'ReadWriteLock' may have shared mutable state; this is an error in the Swift 6 language mode
    |                      |- note: add '@MainActor' to make static property 'readWriteLock' part of global actor 'MainActor'
    |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 63 |
 64 |   /// Add a `MixpanelLogging` object to receive all log messages
/Users/admin/builder/spi-builder-workspace/Sources/ReadWriteLock.swift:10:7: note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | class ReadWriteLock {
   |       `- note: class 'ReadWriteLock' does not conform to the 'Sendable' protocol
11 |   private let concurrentQueue: DispatchQueue
12 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:73:19: warning: result of call to 'write(closure:)' is unused
 71 |   /// Enable log messages of a specific `LogLevel` to be added to the log
 72 |   class func enableLevel(_ level: MixpanelLogLevel) {
 73 |     readWriteLock.write {
    |                   `- warning: result of call to 'write(closure:)' is unused
 74 |       enabledLevels.insert(level)
 75 |     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelLogger.swift:80:19: warning: result of call to 'write(closure:)' is unused
 78 |   /// Disable log messages of a specific `LogLevel` to prevent them from being logged
 79 |   class func disableLevel(_ level: MixpanelLogLevel) {
 80 |     readWriteLock.write {
    |                   `- warning: result of call to 'write(closure:)' is unused
 81 |       enabledLevels.remove(level)
 82 |     }
Build complete! (8.12s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Mixpanel",
  "name" : "Mixpanel",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    }
  ],
  "products" : [
    {
      "name" : "Mixpanel",
      "targets" : [
        "Mixpanel"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Mixpanel",
      "module_type" : "SwiftTarget",
      "name" : "Mixpanel",
      "path" : "Sources",
      "product_memberships" : [
        "Mixpanel"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AutomaticEvents.swift",
        "AutomaticProperties.swift",
        "Constants.swift",
        "Data+Compression.swift",
        "Error.swift",
        "FeatureFlags.swift",
        "FileLogging.swift",
        "Flush.swift",
        "FlushRequest.swift",
        "Group.swift",
        "JSONHandler.swift",
        "MPDB.swift",
        "Mixpanel.swift",
        "MixpanelInstance.swift",
        "MixpanelLogger.swift",
        "MixpanelOptions.swift",
        "MixpanelPersistence.swift",
        "MixpanelType.swift",
        "Network.swift",
        "People.swift",
        "PrintLogging.swift",
        "ReadWriteLock.swift",
        "SessionMetadata.swift",
        "Track.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.