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 v5.1.0 (82d1ce), with Swift 6.1 for macOS (SPM) on 31 May 2025 13:05:17 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

280 |                 let result = flagVariant ?? fallback
    |                                             `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
281 |                 if flagVariant != nil, needsTrackingCheck {
282 |                     // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:286:44: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
284 |                     self._trackFlagIfNeeded(flagName: flagName, variant: result)
285 |                 }
286 |                 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'
287 |
288 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:280:45: 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
    :
278 |
279 |             if flagsAreCurrentlyReady {
280 |                 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
281 |                 if flagVariant != nil, needsTrackingCheck {
282 |                     // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:297:74: 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
    :
295 |                     if success {
296 |                         // Fetch succeeded, get the flag SYNCHRONOUSLY
297 |                         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
298 |                     } else {
299 |                         print("Warning: Failed to fetch flags, returning fallback for \(flagName).")
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:303:48: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
301 |                     }
302 |                     // Call original completion (on main thread)
303 |                     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'
304 |                 }
305 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:375:17: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
373 |             // Dispatch the network request initiation to a global queue.
374 |             DispatchQueue.global(qos: .utility).async { [weak self] in
375 |                 self?._performFetchRequest()
    |                 `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
376 |             }
377 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:421:21: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
419 |                 // Update state and call completions via _completeFetch on the serial queue
420 |                 self?.accessQueue.async { // Dispatch completion handling to serial queue
421 |                     self?._completeFetch(success: false)
    |                     `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
422 |                 }
423 |             },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:421:21: warning: reference to captured var 'self' in concurrently-executing code
419 |                 // Update state and call completions via _completeFetch on the serial queue
420 |                 self?.accessQueue.async { // Dispatch completion handling to serial queue
421 |                     self?._completeFetch(success: false)
    |                     `- warning: reference to captured var 'self' in concurrently-executing code
422 |                 }
423 |             },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:429:38: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
427 |                 // Update state and call completions via _completeFetch on the serial queue
428 |                 self.accessQueue.async { [weak self] in
429 |                     guard let self = self else { return }
    |                                      `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
430 |                     // already on accessQueue – write directly
431 |                     self.flags = flagsResponse.flags ?? [:]
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:431:34: 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 | }
    :
429 |                     guard let self = self else { return }
430 |                     // already on accessQueue – write directly
431 |                     self.flags = flagsResponse.flags ?? [:]
    |                                  `- warning: capture of 'flagsResponse' with non-sendable type 'FlagsResponse' in a '@Sendable' closure
432 |                     print("Flags updated: \(self.flags ?? [:])")
433 |                     self._completeFetch(success: true)   // still on accessQueue
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:478:13: warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
476 |         // Dispatch delegate call asynchronously to main thread for safety
477 |         DispatchQueue.main.async {
478 |             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
479 |             print("Tracked $experiment_started for \(flagName) (dispatched to main)")
480 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:303:48: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
301 |                     }
302 |                     // Call original completion (on main thread)
303 |                     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
304 |                 }
305 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:303:59: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
301 |                     }
302 |                     // Call original completion (on main thread)
303 |                     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
304 |                 }
305 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:446:13: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
444 |
445 |         DispatchQueue.main.async {
446 |             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
447 |         }
448 |     }
[17/29] Compiling Mixpanel Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: 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:16: 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:16: 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:212:13: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
210 |         // Using the serial queue itself for this background task is fine
211 |         accessQueue.async { [weak self] in
212 |             self?._fetchFlagsIfNeeded(completion: nil)
    |             `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
213 |         }
214 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:261:30: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
259 |     func getVariant(_ flagName: String, fallback: MixpanelFlagVariant, completion: @escaping (MixpanelFlagVariant) -> Void) {
260 |         accessQueue.async { [weak self] in // Block A runs serially on accessQueue
261 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
262 |
263 |             var flagVariant: MixpanelFlagVariant?
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:280:45: 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
    :
278 |
279 |             if flagsAreCurrentlyReady {
280 |                 let result = flagVariant ?? fallback
    |                                             `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
281 |                 if flagVariant != nil, needsTrackingCheck {
282 |                     // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:286:44: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
284 |                     self._trackFlagIfNeeded(flagName: flagName, variant: result)
285 |                 }
286 |                 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'
287 |
288 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:280:45: 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
    :
278 |
279 |             if flagsAreCurrentlyReady {
280 |                 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
281 |                 if flagVariant != nil, needsTrackingCheck {
282 |                     // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:297:74: 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
    :
295 |                     if success {
296 |                         // Fetch succeeded, get the flag SYNCHRONOUSLY
297 |                         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
298 |                     } else {
299 |                         print("Warning: Failed to fetch flags, returning fallback for \(flagName).")
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:303:48: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
301 |                     }
302 |                     // Call original completion (on main thread)
303 |                     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'
304 |                 }
305 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:375:17: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
373 |             // Dispatch the network request initiation to a global queue.
374 |             DispatchQueue.global(qos: .utility).async { [weak self] in
375 |                 self?._performFetchRequest()
    |                 `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
376 |             }
377 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:421:21: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
419 |                 // Update state and call completions via _completeFetch on the serial queue
420 |                 self?.accessQueue.async { // Dispatch completion handling to serial queue
421 |                     self?._completeFetch(success: false)
    |                     `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
422 |                 }
423 |             },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:421:21: warning: reference to captured var 'self' in concurrently-executing code
419 |                 // Update state and call completions via _completeFetch on the serial queue
420 |                 self?.accessQueue.async { // Dispatch completion handling to serial queue
421 |                     self?._completeFetch(success: false)
    |                     `- warning: reference to captured var 'self' in concurrently-executing code
422 |                 }
423 |             },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:429:38: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
427 |                 // Update state and call completions via _completeFetch on the serial queue
428 |                 self.accessQueue.async { [weak self] in
429 |                     guard let self = self else { return }
    |                                      `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
430 |                     // already on accessQueue – write directly
431 |                     self.flags = flagsResponse.flags ?? [:]
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:431:34: 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 | }
    :
429 |                     guard let self = self else { return }
430 |                     // already on accessQueue – write directly
431 |                     self.flags = flagsResponse.flags ?? [:]
    |                                  `- warning: capture of 'flagsResponse' with non-sendable type 'FlagsResponse' in a '@Sendable' closure
432 |                     print("Flags updated: \(self.flags ?? [:])")
433 |                     self._completeFetch(success: true)   // still on accessQueue
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:478:13: warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
476 |         // Dispatch delegate call asynchronously to main thread for safety
477 |         DispatchQueue.main.async {
478 |             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
479 |             print("Tracked $experiment_started for \(flagName) (dispatched to main)")
480 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:303:48: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
301 |                     }
302 |                     // Call original completion (on main thread)
303 |                     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
304 |                 }
305 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:303:59: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
301 |                     }
302 |                     // Call original completion (on main thread)
303 |                     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
304 |                 }
305 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:446:13: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
444 |
445 |         DispatchQueue.main.async {
446 |             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
447 |         }
448 |     }
[18/29] Compiling Mixpanel FeatureFlags.swift
/Users/admin/builder/spi-builder-workspace/Sources/Error.swift:12:10: 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:16: 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:16: 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:212:13: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
210 |         // Using the serial queue itself for this background task is fine
211 |         accessQueue.async { [weak self] in
212 |             self?._fetchFlagsIfNeeded(completion: nil)
    |             `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
213 |         }
214 |     }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:261:30: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
259 |     func getVariant(_ flagName: String, fallback: MixpanelFlagVariant, completion: @escaping (MixpanelFlagVariant) -> Void) {
260 |         accessQueue.async { [weak self] in // Block A runs serially on accessQueue
261 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
262 |
263 |             var flagVariant: MixpanelFlagVariant?
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:280:45: 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
    :
278 |
279 |             if flagsAreCurrentlyReady {
280 |                 let result = flagVariant ?? fallback
    |                                             `- warning: capture of 'fallback' with non-sendable type 'MixpanelFlagVariant' in a '@Sendable' closure
281 |                 if flagVariant != nil, needsTrackingCheck {
282 |                     // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:286:44: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in a '@Sendable' closure
284 |                     self._trackFlagIfNeeded(flagName: flagName, variant: result)
285 |                 }
286 |                 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'
287 |
288 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:280:45: 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
    :
278 |
279 |             if flagsAreCurrentlyReady {
280 |                 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
281 |                 if flagVariant != nil, needsTrackingCheck {
282 |                     // Perform atomic check-and-track. _trackFeatureIfNeeded uses its
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:297:74: 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
    :
295 |                     if success {
296 |                         // Fetch succeeded, get the flag SYNCHRONOUSLY
297 |                         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
298 |                     } else {
299 |                         print("Warning: Failed to fetch flags, returning fallback for \(flagName).")
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:303:48: warning: capture of 'completion' with non-sendable type '(MixpanelFlagVariant) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
301 |                     }
302 |                     // Call original completion (on main thread)
303 |                     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'
304 |                 }
305 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:375:17: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
373 |             // Dispatch the network request initiation to a global queue.
374 |             DispatchQueue.global(qos: .utility).async { [weak self] in
375 |                 self?._performFetchRequest()
    |                 `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
376 |             }
377 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:421:21: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
419 |                 // Update state and call completions via _completeFetch on the serial queue
420 |                 self?.accessQueue.async { // Dispatch completion handling to serial queue
421 |                     self?._completeFetch(success: false)
    |                     `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
422 |                 }
423 |             },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:421:21: warning: reference to captured var 'self' in concurrently-executing code
419 |                 // Update state and call completions via _completeFetch on the serial queue
420 |                 self?.accessQueue.async { // Dispatch completion handling to serial queue
421 |                     self?._completeFetch(success: false)
    |                     `- warning: reference to captured var 'self' in concurrently-executing code
422 |                 }
423 |             },
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:429:38: warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
177 | // --- FeatureFlagManager Class ---
178 |
179 | class FeatureFlagManager: Network, MixpanelFlags {
    |       `- note: class 'FeatureFlagManager' does not conform to the 'Sendable' protocol
180 |
181 |     weak var delegate: MixpanelFlagDelegate?
    :
427 |                 // Update state and call completions via _completeFetch on the serial queue
428 |                 self.accessQueue.async { [weak self] in
429 |                     guard let self = self else { return }
    |                                      `- warning: capture of 'self' with non-sendable type 'FeatureFlagManager?' in a '@Sendable' closure
430 |                     // already on accessQueue – write directly
431 |                     self.flags = flagsResponse.flags ?? [:]
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:431:34: 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 | }
    :
429 |                     guard let self = self else { return }
430 |                     // already on accessQueue – write directly
431 |                     self.flags = flagsResponse.flags ?? [:]
    |                                  `- warning: capture of 'flagsResponse' with non-sendable type 'FlagsResponse' in a '@Sendable' closure
432 |                     print("Flags updated: \(self.flags ?? [:])")
433 |                     self._completeFetch(success: true)   // still on accessQueue
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:478:13: warning: sending 'delegate' risks causing data races; this is an error in the Swift 6 language mode
476 |         // Dispatch delegate call asynchronously to main thread for safety
477 |         DispatchQueue.main.async {
478 |             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
479 |             print("Tracked $experiment_started for \(flagName) (dispatched to main)")
480 |         }
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:303:48: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
301 |                     }
302 |                     // Call original completion (on main thread)
303 |                     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
304 |                 }
305 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:303:59: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
301 |                     }
302 |                     // Call original completion (on main thread)
303 |                     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
304 |                 }
305 |
/Users/admin/builder/spi-builder-workspace/Sources/FeatureFlags.swift:446:13: warning: sending 'handlers' risks causing data races; this is an error in the Swift 6 language mode
444 |
445 |         DispatchQueue.main.async {
446 |             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
447 |         }
448 |     }
[19/29] Compiling Mixpanel People.swift
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:51:30: 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.
    :
 49 |
 50 |         serialQueue.async { [weak self, action, properties] in
 51 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 52 |
 53 |             var r = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:63:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 61 |                 // $unset takes an array of property names which is supplied to this method
 62 |                 // in the properties parameter under the key "$properties"
 63 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 64 |             } else {
 65 |                 if action == "$set" || action == "$set_once" {
[20/29] Compiling Mixpanel PrintLogging.swift
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:51:30: 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.
    :
 49 |
 50 |         serialQueue.async { [weak self, action, properties] in
 51 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'People?' in a '@Sendable' closure
 52 |
 53 |             var r = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/People.swift:63:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 61 |                 // $unset takes an array of property names which is supplied to this method
 62 |                 // in the properties parameter under the key "$properties"
 63 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 64 |             } else {
 65 |                 if action == "$set" || action == "$set_once" {
[21/29] Compiling Mixpanel AutomaticEvents.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: 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:16: 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:16: 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:15:16: 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
13 |
14 | struct QueueConstants {
15 |     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
16 | }
17 |
[22/29] Compiling Mixpanel AutomaticProperties.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: 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:16: 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:16: 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:15:16: 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
13 |
14 | struct QueueConstants {
15 |     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
16 | }
17 |
[23/29] Compiling Mixpanel Constants.swift
/Users/admin/builder/spi-builder-workspace/Sources/AutomaticProperties.swift:20:16: 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:16: 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:16: 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:15:16: 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
13 |
14 | struct QueueConstants {
15 |     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
16 | }
17 |
[24/29] Compiling Mixpanel Mixpanel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:271:16: 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
267 | }
268 |
269 | final class MixpanelManager {
    |             `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
270 |
271 |     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
272 |     private var instances: [String: MixpanelInstance]
273 |     private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:758:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 756 |         if hasOptedOutTracking() {
 757 |             if let completion = completion {
 758 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 759 |             }
 760 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:765:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 763 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 764 |             if let completion = completion {
 765 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 766 |             }
 767 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:813:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 811 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 812 |             if let completion = completion {
 813 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 814 |             }
 815 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:770:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
 768 |         }
 769 |         trackingQueue.async { [weak self, distinctId, usePeople] in
 770 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 771 |
 772 |             // 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:812:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 810 |                 alias: self.alias,
 811 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 812 |             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'
 813 |                 DispatchQueue.main.async(execute: completion)
 814 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:848:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 846 |         if hasOptedOutTracking() {
 847 |             if let completion = completion {
 848 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 849 |             }
 850 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:856:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 854 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 855 |             if let completion = completion {
 856 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 857 |             }
 858 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:864:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 862 |             MixpanelLogger.error(message: "\(self) create alias called with empty alias")
 863 |             if let completion = completion {
 864 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 865 |             }
 866 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:873:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 871 |                 guard let self = self else {
 872 |                     if let completion = completion {
 873 |                         DispatchQueue.main.async(execute: completion)
     |                                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 874 |                     }
 875 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:915:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 913 |             MixpanelLogger.error(message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
 914 |             if let completion = completion {
 915 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 916 |             }
 917 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:871:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
 869 |         if alias != distinctId {
 870 |             trackingQueue.async { [weak self, alias] in
 871 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 872 |                     if let completion = completion {
 873 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:872:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 870 |             trackingQueue.async { [weak self, alias] in
 871 |                 guard let self = self else {
 872 |                     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'
 873 |                         DispatchQueue.main.async(execute: completion)
 874 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:948:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 946 |             self.archive()
 947 |             if let completion = completion {
 948 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 949 |             }
 950 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:929:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
 927 |         flush()
 928 |         trackingQueue.async { [weak self] in
 929 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 930 |                 return
 931 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:947:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 945 |             self.mixpanelPersistence.resetEntities()
 946 |             self.archive()
 947 |             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'
 948 |                 DispatchQueue.main.async(execute: completion)
 949 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1027:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1025 |         if hasOptedOutTracking() {
1026 |             if let completion = completion {
1027 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1028 |             }
1029 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1034:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1032 |             guard let self = self else {
1033 |                 if let completion = completion {
1034 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1035 |                 }
1036 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1041:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1039 |             if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
1040 |                 if let completion = completion {
1041 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1042 |                 }
1043 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1064:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1062 |                 guard let self = self else {
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:1073:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1071 |
1072 |                 if let completion = completion {
1073 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1074 |                 }
1075 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1032:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1030 |         }
1031 |         trackingQueue.async { [weak self, completion] in
1032 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1033 |                 if let completion = completion {
1034 |                     DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1033:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1031 |         trackingQueue.async { [weak self, completion] in
1032 |             guard let self = self else {
1033 |                 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'
1034 |                     DispatchQueue.main.async(execute: completion)
1035 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1062:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1060 |
1061 |             self.networkQueue.async { [weak self, completion] in
1062 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1063 |                     if let completion = completion {
1064 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1063:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1061 |             self.networkQueue.async { [weak self, completion] in
1062 |                 guard let self = self else {
1063 |                     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'
1064 |                         DispatchQueue.main.async(execute: completion)
1065 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1068:33: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1066 |                     return
1067 |                 }
1068 |                 self.flushQueue(eventQueue, type: .events)
     |                                 `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1069 |                 self.flushQueue(peopleQueue, type: .people)
1070 |                 self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1069:33: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1067 |                 }
1068 |                 self.flushQueue(eventQueue, type: .events)
1069 |                 self.flushQueue(peopleQueue, type: .people)
     |                                 `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1070 |                 self.flushQueue(groupsQueue, type: .groups)
1071 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1070:33: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1068 |                 self.flushQueue(eventQueue, type: .events)
1069 |                 self.flushQueue(peopleQueue, type: .people)
1070 |                 self.flushQueue(groupsQueue, type: .groups)
     |                                 `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1071 |
1072 |                 if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1103:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1101 |     func flushSuccess(type: FlushType, ids: [Int32]) {
1102 |         trackingQueue.async { [weak self] in
1103 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1104 |                 return
1105 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1131:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1129 |
1130 |         trackingQueue.async { [weak self, event, properties, epochInterval] in
1131 |             guard let self else {
     |                       `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1132 |                 return
1133 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1152:76: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1150 |                                                          hadPersistedDistinctId: self.hadPersistedDistinctId)
1151 |             let timedEventsSnapshot = self.trackInstance.track(event: event,
1152 |                                                                properties: properties,
     |                                                                            `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1153 |                                                                timedEvents: shadowTimedEvents,
1154 |                                                                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:1248:23: warning: result of call to 'write(closure:)' is unused
1246 |
1247 |     func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1248 |         readWriteLock.write {
     |                       `- warning: result of call to 'write(closure:)' is unused
1249 |             groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1250 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1282:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1280 |         let startTime = Date().timeIntervalSince1970
1281 |         trackingQueue.async { [weak self, startTime, event] in
1282 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1283 |             let timedEvents = self.trackInstance.time(event: event, timedEvents: self.timedEvents, startTime: startTime)
1284 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1313:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1311 |     public func clearTimedEvents() {
1312 |         trackingQueue.async { [weak self] in
1313 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1314 |             self.readWriteLock.write {
1315 |                 self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1328:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1326 |     public func clearTimedEvent(event: String) {
1327 |         trackingQueue.async { [weak self, event] in
1328 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1329 |
1330 |             let updatedTimedEvents = self.trackInstance.clearTimedEvent(event: event, timedEvents: self.timedEvents)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1353:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1351 |     public func clearSuperProperties() {
1352 |         trackingQueue.async { [weak self] in
1353 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1354 |             self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1355 |             MixpanelPersistence.saveSuperProperties(superProperties: self.superProperties, instanceName: self.name)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1372:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1370 |     public func registerSuperProperties(_ properties: Properties) {
1371 |         trackingQueue.async { [weak self] in
1372 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1373 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
1374 |                                                                                     superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1373:85: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1371 |         trackingQueue.async { [weak self] in
1372 |             guard let self = self else { return }
1373 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
     |                                                                                     `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1374 |                                                                                     superProperties: self.superProperties)
1375 |             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:1401:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1399 |                                           defaultValue: MixpanelType? = nil) {
1400 |         trackingQueue.async { [weak self] in
1401 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1402 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1403 |                                                                                         superProperties: self.superProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1402:89: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1400 |         trackingQueue.async { [weak self] in
1401 |             guard let self = self else { return }
1402 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
     |                                                                                         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1403 |                                                                                         superProperties: self.superProperties,
1404 |                                                                                         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:1404:103: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1402 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1403 |                                                                                         superProperties: self.superProperties,
1404 |                                                                                         defaultValue: defaultValue)
     |                                                                                                       `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1405 |             self.readWriteLock.write {
1406 |                 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:1429:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1427 |     public func unregisterSuperProperty(_ propertyName: String) {
1428 |         trackingQueue.async { [weak self] in
1429 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1430 |             let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(propertyName,
1431 |                                                                               superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1448:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1446 |     func updateSuperProperty(_ update: @escaping (_ superproperties: inout InternalProperties) -> Void) {
1447 |         trackingQueue.async { [weak self] in
1448 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1449 |             var superPropertiesShadow = self.superProperties
1450 |             self.trackInstance.updateSuperProperty(update,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1450:52: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1448 |             guard let self = self else { return }
1449 |             var superPropertiesShadow = self.superProperties
1450 |             self.trackInstance.updateSuperProperty(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'
1451 |                                                    superProperties: &superPropertiesShadow)
1452 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1565:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1563 |     public func optOutTracking() {
1564 |         trackingQueue.async { [weak self] in
1565 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1566 |             if self.people.distinctId != nil {
1567 |                 self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1610:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1608 |     public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1609 |         trackingQueue.async { [weak self] in
1610 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1611 |             self.readWriteLock.write {
1612 |                 self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1620:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1618 |                 self.identify(distinctId: distinctId)
1619 |             }
1620 |             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
1621 |         }
1622 |
/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:24: 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:24: 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:24: 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:23: 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:23: 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 |         }
[25/29] Compiling Mixpanel MixpanelInstance.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:271:16: 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
267 | }
268 |
269 | final class MixpanelManager {
    |             `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
270 |
271 |     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
272 |     private var instances: [String: MixpanelInstance]
273 |     private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:758:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 756 |         if hasOptedOutTracking() {
 757 |             if let completion = completion {
 758 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 759 |             }
 760 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:765:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 763 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 764 |             if let completion = completion {
 765 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 766 |             }
 767 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:813:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 811 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 812 |             if let completion = completion {
 813 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 814 |             }
 815 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:770:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
 768 |         }
 769 |         trackingQueue.async { [weak self, distinctId, usePeople] in
 770 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 771 |
 772 |             // 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:812:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 810 |                 alias: self.alias,
 811 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 812 |             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'
 813 |                 DispatchQueue.main.async(execute: completion)
 814 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:848:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 846 |         if hasOptedOutTracking() {
 847 |             if let completion = completion {
 848 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 849 |             }
 850 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:856:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 854 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 855 |             if let completion = completion {
 856 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 857 |             }
 858 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:864:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 862 |             MixpanelLogger.error(message: "\(self) create alias called with empty alias")
 863 |             if let completion = completion {
 864 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 865 |             }
 866 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:873:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 871 |                 guard let self = self else {
 872 |                     if let completion = completion {
 873 |                         DispatchQueue.main.async(execute: completion)
     |                                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 874 |                     }
 875 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:915:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 913 |             MixpanelLogger.error(message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
 914 |             if let completion = completion {
 915 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 916 |             }
 917 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:871:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
 869 |         if alias != distinctId {
 870 |             trackingQueue.async { [weak self, alias] in
 871 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 872 |                     if let completion = completion {
 873 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:872:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 870 |             trackingQueue.async { [weak self, alias] in
 871 |                 guard let self = self else {
 872 |                     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'
 873 |                         DispatchQueue.main.async(execute: completion)
 874 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:948:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 946 |             self.archive()
 947 |             if let completion = completion {
 948 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 949 |             }
 950 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:929:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
 927 |         flush()
 928 |         trackingQueue.async { [weak self] in
 929 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 930 |                 return
 931 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:947:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 945 |             self.mixpanelPersistence.resetEntities()
 946 |             self.archive()
 947 |             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'
 948 |                 DispatchQueue.main.async(execute: completion)
 949 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1027:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1025 |         if hasOptedOutTracking() {
1026 |             if let completion = completion {
1027 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1028 |             }
1029 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1034:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1032 |             guard let self = self else {
1033 |                 if let completion = completion {
1034 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1035 |                 }
1036 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1041:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1039 |             if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
1040 |                 if let completion = completion {
1041 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1042 |                 }
1043 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1064:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1062 |                 guard let self = self else {
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:1073:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1071 |
1072 |                 if let completion = completion {
1073 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1074 |                 }
1075 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1032:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1030 |         }
1031 |         trackingQueue.async { [weak self, completion] in
1032 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1033 |                 if let completion = completion {
1034 |                     DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1033:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1031 |         trackingQueue.async { [weak self, completion] in
1032 |             guard let self = self else {
1033 |                 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'
1034 |                     DispatchQueue.main.async(execute: completion)
1035 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1062:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1060 |
1061 |             self.networkQueue.async { [weak self, completion] in
1062 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1063 |                     if let completion = completion {
1064 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1063:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1061 |             self.networkQueue.async { [weak self, completion] in
1062 |                 guard let self = self else {
1063 |                     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'
1064 |                         DispatchQueue.main.async(execute: completion)
1065 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1068:33: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1066 |                     return
1067 |                 }
1068 |                 self.flushQueue(eventQueue, type: .events)
     |                                 `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1069 |                 self.flushQueue(peopleQueue, type: .people)
1070 |                 self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1069:33: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1067 |                 }
1068 |                 self.flushQueue(eventQueue, type: .events)
1069 |                 self.flushQueue(peopleQueue, type: .people)
     |                                 `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1070 |                 self.flushQueue(groupsQueue, type: .groups)
1071 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1070:33: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1068 |                 self.flushQueue(eventQueue, type: .events)
1069 |                 self.flushQueue(peopleQueue, type: .people)
1070 |                 self.flushQueue(groupsQueue, type: .groups)
     |                                 `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1071 |
1072 |                 if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1103:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1101 |     func flushSuccess(type: FlushType, ids: [Int32]) {
1102 |         trackingQueue.async { [weak self] in
1103 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1104 |                 return
1105 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1131:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1129 |
1130 |         trackingQueue.async { [weak self, event, properties, epochInterval] in
1131 |             guard let self else {
     |                       `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1132 |                 return
1133 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1152:76: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1150 |                                                          hadPersistedDistinctId: self.hadPersistedDistinctId)
1151 |             let timedEventsSnapshot = self.trackInstance.track(event: event,
1152 |                                                                properties: properties,
     |                                                                            `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1153 |                                                                timedEvents: shadowTimedEvents,
1154 |                                                                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:1248:23: warning: result of call to 'write(closure:)' is unused
1246 |
1247 |     func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1248 |         readWriteLock.write {
     |                       `- warning: result of call to 'write(closure:)' is unused
1249 |             groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1250 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1282:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1280 |         let startTime = Date().timeIntervalSince1970
1281 |         trackingQueue.async { [weak self, startTime, event] in
1282 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1283 |             let timedEvents = self.trackInstance.time(event: event, timedEvents: self.timedEvents, startTime: startTime)
1284 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1313:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1311 |     public func clearTimedEvents() {
1312 |         trackingQueue.async { [weak self] in
1313 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1314 |             self.readWriteLock.write {
1315 |                 self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1328:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1326 |     public func clearTimedEvent(event: String) {
1327 |         trackingQueue.async { [weak self, event] in
1328 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1329 |
1330 |             let updatedTimedEvents = self.trackInstance.clearTimedEvent(event: event, timedEvents: self.timedEvents)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1353:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1351 |     public func clearSuperProperties() {
1352 |         trackingQueue.async { [weak self] in
1353 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1354 |             self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1355 |             MixpanelPersistence.saveSuperProperties(superProperties: self.superProperties, instanceName: self.name)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1372:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1370 |     public func registerSuperProperties(_ properties: Properties) {
1371 |         trackingQueue.async { [weak self] in
1372 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1373 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
1374 |                                                                                     superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1373:85: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1371 |         trackingQueue.async { [weak self] in
1372 |             guard let self = self else { return }
1373 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
     |                                                                                     `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1374 |                                                                                     superProperties: self.superProperties)
1375 |             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:1401:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1399 |                                           defaultValue: MixpanelType? = nil) {
1400 |         trackingQueue.async { [weak self] in
1401 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1402 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1403 |                                                                                         superProperties: self.superProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1402:89: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1400 |         trackingQueue.async { [weak self] in
1401 |             guard let self = self else { return }
1402 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
     |                                                                                         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1403 |                                                                                         superProperties: self.superProperties,
1404 |                                                                                         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:1404:103: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1402 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1403 |                                                                                         superProperties: self.superProperties,
1404 |                                                                                         defaultValue: defaultValue)
     |                                                                                                       `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1405 |             self.readWriteLock.write {
1406 |                 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:1429:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1427 |     public func unregisterSuperProperty(_ propertyName: String) {
1428 |         trackingQueue.async { [weak self] in
1429 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1430 |             let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(propertyName,
1431 |                                                                               superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1448:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1446 |     func updateSuperProperty(_ update: @escaping (_ superproperties: inout InternalProperties) -> Void) {
1447 |         trackingQueue.async { [weak self] in
1448 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1449 |             var superPropertiesShadow = self.superProperties
1450 |             self.trackInstance.updateSuperProperty(update,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1450:52: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1448 |             guard let self = self else { return }
1449 |             var superPropertiesShadow = self.superProperties
1450 |             self.trackInstance.updateSuperProperty(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'
1451 |                                                    superProperties: &superPropertiesShadow)
1452 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1565:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1563 |     public func optOutTracking() {
1564 |         trackingQueue.async { [weak self] in
1565 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1566 |             if self.people.distinctId != nil {
1567 |                 self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1610:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1608 |     public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1609 |         trackingQueue.async { [weak self] in
1610 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1611 |             self.readWriteLock.write {
1612 |                 self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1620:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1618 |                 self.identify(distinctId: distinctId)
1619 |             }
1620 |             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
1621 |         }
1622 |
/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:24: 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:24: 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:24: 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:23: 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:23: 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 |         }
[26/29] Compiling Mixpanel MixpanelLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/Mixpanel.swift:271:16: 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
267 | }
268 |
269 | final class MixpanelManager {
    |             `- note: class 'MixpanelManager' does not conform to the 'Sendable' protocol
270 |
271 |     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
272 |     private var instances: [String: MixpanelInstance]
273 |     private var mainInstance: MixpanelInstance?
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:758:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 756 |         if hasOptedOutTracking() {
 757 |             if let completion = completion {
 758 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 759 |             }
 760 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:765:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 763 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 764 |             if let completion = completion {
 765 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 766 |             }
 767 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:813:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 811 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 812 |             if let completion = completion {
 813 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 814 |             }
 815 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:770:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
 768 |         }
 769 |         trackingQueue.async { [weak self, distinctId, usePeople] in
 770 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 771 |
 772 |             // 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:812:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 810 |                 alias: self.alias,
 811 |                 hadPersistedDistinctId: self.hadPersistedDistinctId), instanceName: self.name)
 812 |             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'
 813 |                 DispatchQueue.main.async(execute: completion)
 814 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:848:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 846 |         if hasOptedOutTracking() {
 847 |             if let completion = completion {
 848 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 849 |             }
 850 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:856:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 854 |             MixpanelLogger.error(message: "\(self) cannot identify blank distinct id")
 855 |             if let completion = completion {
 856 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 857 |             }
 858 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:864:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 862 |             MixpanelLogger.error(message: "\(self) create alias called with empty alias")
 863 |             if let completion = completion {
 864 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 865 |             }
 866 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:873:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 871 |                 guard let self = self else {
 872 |                     if let completion = completion {
 873 |                         DispatchQueue.main.async(execute: completion)
     |                                                           `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 874 |                     }
 875 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:915:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 913 |             MixpanelLogger.error(message: "alias: \(alias) matches distinctId: \(distinctId) - skipping api call.")
 914 |             if let completion = completion {
 915 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 916 |             }
 917 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:871:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
 869 |         if alias != distinctId {
 870 |             trackingQueue.async { [weak self, alias] in
 871 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 872 |                     if let completion = completion {
 873 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:872:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 870 |             trackingQueue.async { [weak self, alias] in
 871 |                 guard let self = self else {
 872 |                     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'
 873 |                         DispatchQueue.main.async(execute: completion)
 874 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:948:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 946 |             self.archive()
 947 |             if let completion = completion {
 948 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
 949 |             }
 950 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:929:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
 927 |         flush()
 928 |         trackingQueue.async { [weak self] in
 929 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
 930 |                 return
 931 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:947:33: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
 945 |             self.mixpanelPersistence.resetEntities()
 946 |             self.archive()
 947 |             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'
 948 |                 DispatchQueue.main.async(execute: completion)
 949 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1027:51: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1025 |         if hasOptedOutTracking() {
1026 |             if let completion = completion {
1027 |                 DispatchQueue.main.async(execute: completion)
     |                                                   `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1028 |             }
1029 |             return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1034:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1032 |             guard let self = self else {
1033 |                 if let completion = completion {
1034 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1035 |                 }
1036 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1041:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1039 |             if let shouldFlush = self.delegate?.mixpanelWillFlush(self), !shouldFlush {
1040 |                 if let completion = completion {
1041 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1042 |                 }
1043 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1064:59: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1062 |                 guard let self = self else {
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:1073:55: warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1071 |
1072 |                 if let completion = completion {
1073 |                     DispatchQueue.main.async(execute: completion)
     |                                                       `- warning: converting non-sendable function value to '@MainActor @Sendable @convention(block) () -> Void' may introduce data races
1074 |                 }
1075 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1032:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1030 |         }
1031 |         trackingQueue.async { [weak self, completion] in
1032 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1033 |                 if let completion = completion {
1034 |                     DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1033:37: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1031 |         trackingQueue.async { [weak self, completion] in
1032 |             guard let self = self else {
1033 |                 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'
1034 |                     DispatchQueue.main.async(execute: completion)
1035 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1062:34: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1060 |
1061 |             self.networkQueue.async { [weak self, completion] in
1062 |                 guard let self = self else {
     |                                  `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1063 |                     if let completion = completion {
1064 |                         DispatchQueue.main.async(execute: completion)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1063:41: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
1061 |             self.networkQueue.async { [weak self, completion] in
1062 |                 guard let self = self else {
1063 |                     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'
1064 |                         DispatchQueue.main.async(execute: completion)
1065 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1068:33: warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1066 |                     return
1067 |                 }
1068 |                 self.flushQueue(eventQueue, type: .events)
     |                                 `- warning: capture of 'eventQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1069 |                 self.flushQueue(peopleQueue, type: .people)
1070 |                 self.flushQueue(groupsQueue, type: .groups)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1069:33: warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1067 |                 }
1068 |                 self.flushQueue(eventQueue, type: .events)
1069 |                 self.flushQueue(peopleQueue, type: .people)
     |                                 `- warning: capture of 'peopleQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1070 |                 self.flushQueue(groupsQueue, type: .groups)
1071 |
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1070:33: warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1068 |                 self.flushQueue(eventQueue, type: .events)
1069 |                 self.flushQueue(peopleQueue, type: .people)
1070 |                 self.flushQueue(groupsQueue, type: .groups)
     |                                 `- warning: capture of 'groupsQueue' with non-sendable type '[InternalProperties]' (aka 'Array<Dictionary<String, Any>>') in a '@Sendable' closure
1071 |
1072 |                 if let completion = completion {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1103:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1101 |     func flushSuccess(type: FlushType, ids: [Int32]) {
1102 |         trackingQueue.async { [weak self] in
1103 |             guard let self = self else {
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1104 |                 return
1105 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1131:23: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1129 |
1130 |         trackingQueue.async { [weak self, event, properties, epochInterval] in
1131 |             guard let self else {
     |                       `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1132 |                 return
1133 |             }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1152:76: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1150 |                                                          hadPersistedDistinctId: self.hadPersistedDistinctId)
1151 |             let timedEventsSnapshot = self.trackInstance.track(event: event,
1152 |                                                                properties: properties,
     |                                                                            `- warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1153 |                                                                timedEvents: shadowTimedEvents,
1154 |                                                                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:1248:23: warning: result of call to 'write(closure:)' is unused
1246 |
1247 |     func removeCachedGroup(groupKey: String, groupID: MixpanelType) {
1248 |         readWriteLock.write {
     |                       `- warning: result of call to 'write(closure:)' is unused
1249 |             groups.removeValue(forKey: makeMapKey(groupKey: groupKey, groupID: groupID))
1250 |         }
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1282:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1280 |         let startTime = Date().timeIntervalSince1970
1281 |         trackingQueue.async { [weak self, startTime, event] in
1282 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1283 |             let timedEvents = self.trackInstance.time(event: event, timedEvents: self.timedEvents, startTime: startTime)
1284 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1313:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1311 |     public func clearTimedEvents() {
1312 |         trackingQueue.async { [weak self] in
1313 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1314 |             self.readWriteLock.write {
1315 |                 self.timedEvents = InternalProperties()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1328:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1326 |     public func clearTimedEvent(event: String) {
1327 |         trackingQueue.async { [weak self, event] in
1328 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1329 |
1330 |             let updatedTimedEvents = self.trackInstance.clearTimedEvent(event: event, timedEvents: self.timedEvents)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1353:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1351 |     public func clearSuperProperties() {
1352 |         trackingQueue.async { [weak self] in
1353 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1354 |             self.superProperties = self.trackInstance.clearSuperProperties(self.superProperties)
1355 |             MixpanelPersistence.saveSuperProperties(superProperties: self.superProperties, instanceName: self.name)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1372:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1370 |     public func registerSuperProperties(_ properties: Properties) {
1371 |         trackingQueue.async { [weak self] in
1372 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1373 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
1374 |                                                                                     superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1373:85: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1371 |         trackingQueue.async { [weak self] in
1372 |             guard let self = self else { return }
1373 |             let updatedSuperProperties = self.trackInstance.registerSuperProperties(properties,
     |                                                                                     `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1374 |                                                                                     superProperties: self.superProperties)
1375 |             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:1401:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1399 |                                           defaultValue: MixpanelType? = nil) {
1400 |         trackingQueue.async { [weak self] in
1401 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1402 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1403 |                                                                                         superProperties: self.superProperties,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1402:89: warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1400 |         trackingQueue.async { [weak self] in
1401 |             guard let self = self else { return }
1402 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
     |                                                                                         `- warning: capture of 'properties' with non-sendable type 'Properties' (aka 'Dictionary<String, any MixpanelType>') in a '@Sendable' closure
1403 |                                                                                         superProperties: self.superProperties,
1404 |                                                                                         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:1404:103: warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1402 |             let updatedSuperProperties = self.trackInstance.registerSuperPropertiesOnce(properties,
1403 |                                                                                         superProperties: self.superProperties,
1404 |                                                                                         defaultValue: defaultValue)
     |                                                                                                       `- warning: capture of 'defaultValue' with non-sendable type '(any MixpanelType)?' in a '@Sendable' closure
1405 |             self.readWriteLock.write {
1406 |                 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:1429:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1427 |     public func unregisterSuperProperty(_ propertyName: String) {
1428 |         trackingQueue.async { [weak self] in
1429 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1430 |             let updatedSuperProperties = self.trackInstance.unregisterSuperProperty(propertyName,
1431 |                                                                               superProperties: self.superProperties)
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1448:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1446 |     func updateSuperProperty(_ update: @escaping (_ superproperties: inout InternalProperties) -> Void) {
1447 |         trackingQueue.async { [weak self] in
1448 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1449 |             var superPropertiesShadow = self.superProperties
1450 |             self.trackInstance.updateSuperProperty(update,
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1450:52: warning: capture of 'update' with non-sendable type '(inout InternalProperties) -> Void' (aka '(inout Dictionary<String, Any>) -> ()') in a '@Sendable' closure
1448 |             guard let self = self else { return }
1449 |             var superPropertiesShadow = self.superProperties
1450 |             self.trackInstance.updateSuperProperty(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'
1451 |                                                    superProperties: &superPropertiesShadow)
1452 |             self.readWriteLock.write {
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1565:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1563 |     public func optOutTracking() {
1564 |         trackingQueue.async { [weak self] in
1565 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1566 |             if self.people.distinctId != nil {
1567 |                 self.people.deleteUser()
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1610:30: warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
  76 |
  77 | /// The class that represents the Mixpanel Instance
  78 | open class MixpanelInstance: CustomDebugStringConvertible, FlushDelegate, AEDelegate, MixpanelFlagDelegate {
     |            `- note: class 'MixpanelInstance' does not conform to the 'Sendable' protocol
  79 |
  80 |     private let options: MixpanelOptions
     :
1608 |     public func optInTracking(distinctId: String? = nil, properties: Properties? = nil) {
1609 |         trackingQueue.async { [weak self] in
1610 |             guard let self = self else { return }
     |                              `- warning: capture of 'self' with non-sendable type 'MixpanelInstance?' in a '@Sendable' closure
1611 |             self.readWriteLock.write {
1612 |                 self.optOutStatus = false
/Users/admin/builder/spi-builder-workspace/Sources/MixpanelInstance.swift:1620:54: warning: capture of 'properties' with non-sendable type 'Properties?' (aka 'Optional<Dictionary<String, any MixpanelType>>') in a '@Sendable' closure
1618 |                 self.identify(distinctId: distinctId)
1619 |             }
1620 |             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
1621 |         }
1622 |
/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:24: 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:24: 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:24: 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:23: 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:23: 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 |         }
[27/29] Compiling Mixpanel Group.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:52:27: 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
    :
 50 |             var r = InternalProperties()
 51 |             var p = InternalProperties()
 52 |             r["$token"] = self.apiToken
    |                           `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 53 |             r["$time"] = epochMilliseconds
 54 |             if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:57:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 55 |                 // $unset takes an array of property names which is supplied to this method
 56 |                 // in the properties parameter under the key "$properties"
 57 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 58 |             } else {
 59 |                 p += properties
[28/29] Compiling Mixpanel JSONHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:52:27: 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
    :
 50 |             var r = InternalProperties()
 51 |             var p = InternalProperties()
 52 |             r["$token"] = self.apiToken
    |                           `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 53 |             r["$time"] = epochMilliseconds
 54 |             if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:57:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 55 |                 // $unset takes an array of property names which is supplied to this method
 56 |                 // in the properties parameter under the key "$properties"
 57 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 58 |             } else {
 59 |                 p += properties
[29/29] Compiling Mixpanel MPDB.swift
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:52:27: 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
    :
 50 |             var r = InternalProperties()
 51 |             var p = InternalProperties()
 52 |             r["$token"] = self.apiToken
    |                           `- warning: capture of 'self' with non-sendable type 'Group' in a '@Sendable' closure
 53 |             r["$time"] = epochMilliseconds
 54 |             if action == "$unset" {
/Users/admin/builder/spi-builder-workspace/Sources/Group.swift:57:29: warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 55 |                 // $unset takes an array of property names which is supplied to this method
 56 |                 // in the properties parameter under the key "$properties"
 57 |                 r[action] = properties["$properties"]
    |                             `- warning: capture of 'properties' with non-sendable type 'InternalProperties' (aka 'Dictionary<String, Any>') in a '@Sendable' closure
 58 |             } else {
 59 |                 p += properties
Build complete! (8.16s)
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.