The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of PusherSwift, reference master (48e71f), with Swift 6.0 for macOS (SPM) on 12 Dec 2024 14:39:15 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.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

========================================
RunAll
========================================
Builder version: 4.59.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/pusher/pusher-websocket-swift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/pusher/pusher-websocket-swift
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 48e71f9 Merge pull request #438 from pusher/chore/actions-ca
Cloned https://github.com/pusher/pusher-websocket-swift.git
Revision (git rev-parse @):
48e71f918754df0c7e714f35d88e62c1b125ff6e
SUCCESS checkout https://github.com/pusher/pusher-websocket-swift.git at master
Fetching https://github.com/pusher/NWWebSocket.git
Fetching https://github.com/bitmark-inc/tweetnacl-swiftwrap
[1/404] Fetching tweetnacl-swiftwrap
[86/1015] Fetching tweetnacl-swiftwrap, nwwebsocket
Fetched https://github.com/pusher/NWWebSocket.git from cache (1.19s)
Fetched https://github.com/bitmark-inc/tweetnacl-swiftwrap from cache (1.19s)
Computing version for https://github.com/bitmark-inc/tweetnacl-swiftwrap
Computed https://github.com/bitmark-inc/tweetnacl-swiftwrap at 1.0.2 (2.38s)
Computing version for https://github.com/pusher/NWWebSocket.git
Computed https://github.com/pusher/NWWebSocket.git at 0.5.4 (0.55s)
Creating working copy for https://github.com/pusher/NWWebSocket.git
Working copy of https://github.com/pusher/NWWebSocket.git resolved at 0.5.4
Creating working copy for https://github.com/bitmark-inc/tweetnacl-swiftwrap
Working copy of https://github.com/bitmark-inc/tweetnacl-swiftwrap resolved at 1.0.2
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "pusher-websocket-swift",
      "name": "PusherSwift",
      "url": "https://github.com/pusher/pusher-websocket-swift.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/pusher-websocket-swift",
      "dependencies": [
        {
          "identity": "nwwebsocket",
          "name": "NWWebSocket",
          "url": "https://github.com/pusher/NWWebSocket.git",
          "version": "0.5.4",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/NWWebSocket",
          "dependencies": [
          ]
        },
        {
          "identity": "tweetnacl-swiftwrap",
          "name": "TweetNacl",
          "url": "https://github.com/bitmark-inc/tweetnacl-swiftwrap",
          "version": "1.1.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/tweetnacl-swiftwrap",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/pusher/pusher-websocket-swift.git
[1/9932] Fetching pusher-websocket-swift
Fetched https://github.com/pusher/pusher-websocket-swift.git from cache (1.48s)
Fetching https://github.com/pusher/NWWebSocket.git from cache
Fetching https://github.com/bitmark-inc/tweetnacl-swiftwrap from cache
Fetched https://github.com/bitmark-inc/tweetnacl-swiftwrap from cache (0.47s)
Fetched https://github.com/pusher/NWWebSocket.git from cache (0.47s)
Computing version for https://github.com/pusher/NWWebSocket.git
Computed https://github.com/pusher/NWWebSocket.git at 0.5.4 (0.02s)
Computing version for https://github.com/bitmark-inc/tweetnacl-swiftwrap
Computed https://github.com/bitmark-inc/tweetnacl-swiftwrap at 1.1.0 (0.02s)
Creating working copy for https://github.com/pusher/NWWebSocket.git
Working copy of https://github.com/pusher/NWWebSocket.git resolved at 0.5.4
Creating working copy for https://github.com/bitmark-inc/tweetnacl-swiftwrap
Working copy of https://github.com/bitmark-inc/tweetnacl-swiftwrap resolved at 1.1.0
Creating working copy for https://github.com/pusher/pusher-websocket-swift.git
Working copy of https://github.com/pusher/pusher-websocket-swift.git resolved at master (48e71f9)
warning: '.resolve-product-dependencies': dependency 'pusher-websocket-swift' is not used by any target
Found 2 product dependencies
  - NWWebSocket
  - TweetNacl
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/pusher/pusher-websocket-swift.git
https://github.com/pusher/pusher-websocket-swift.git
{
  "dependencies" : [
    {
      "identity" : "nwwebsocket",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.5.4",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/pusher/NWWebSocket.git"
    },
    {
      "identity" : "tweetnacl-swiftwrap",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/bitmark-inc/tweetnacl-swiftwrap"
    }
  ],
  "manifest_display_name" : "PusherSwift",
  "name" : "PusherSwift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "PusherSwift",
      "targets" : [
        "PusherSwift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "PusherSwiftTests",
      "module_type" : "SwiftTarget",
      "name" : "PusherSwiftTests",
      "path" : "Tests",
      "sources" : [
        "Extensions/String+Extensions.swift",
        "Extensions/XCTest+Assertions.swift",
        "Helpers/Helpers.swift",
        "Helpers/Mocks.swift",
        "Helpers/TestObjects.swift",
        "Integration/AuthenticationTests.swift",
        "Integration/PusherClientInitializationTests.swift",
        "Integration/PusherIncomingEventHandlingTests.swift",
        "Integration/PusherTopLevelAPITests.swift",
        "Unit/Helpers/ChannelEventFactory+DecryptionTests.swift",
        "Unit/Helpers/ChannelEventFactoryTests.swift",
        "Unit/Helpers/CryptoTests.swift",
        "Unit/Models/ClientEventTests.swift",
        "Unit/Models/PresenceChannelTests.swift",
        "Unit/Models/PrivateEncryptedChannelTests.swift",
        "Unit/Models/PusherChannelTests.swift",
        "Unit/Protocols/PusherConnectionDelegateTests.swift",
        "Unit/Services/ChannelEventQueue+DecryptionTests.swift",
        "Unit/Services/ChannelEventQueueTests.swift",
        "Unit/Services/PusherConnectionTests.swift"
      ],
      "target_dependencies" : [
        "PusherSwift"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PusherSwift",
      "module_type" : "SwiftTarget",
      "name" : "PusherSwift",
      "path" : "Sources",
      "product_dependencies" : [
        "NWWebSocket",
        "TweetNacl"
      ],
      "product_memberships" : [
        "PusherSwift"
      ],
      "sources" : [
        "Extensions/PusherChannel+EncryptionHelpers.swift",
        "Extensions/PusherConnection+WebsocketDelegate.swift",
        "Extensions/URL+Pusher.swift",
        "Helpers/Crypto.swift",
        "Helpers/EventParser.swift",
        "Helpers/Logger.swift",
        "Models/AuthError.swift",
        "Models/AuthMethod.swift",
        "Models/ChannelsProtocolCloseCode.swift",
        "Models/ConnectionState.swift",
        "Models/Constants.swift",
        "Models/EventError.swift",
        "Models/EventHandler.swift",
        "Models/PusherAuth.swift",
        "Models/PusherChannel.swift",
        "Models/PusherChannelType.swift",
        "Models/PusherChannels.swift",
        "Models/PusherClientOptions.swift",
        "Models/PusherError.swift",
        "Models/PusherEvent.swift",
        "Models/PusherGlobalChannel.swift",
        "Models/PusherHost.swift",
        "Models/PusherPresenceChannel.swift",
        "Models/PusherPresenceChannelMember.swift",
        "Models/QueuedClientEvent.swift",
        "ObjC/AuthMethod+ObjectiveC.swift",
        "ObjC/OCAuthMethod.swift",
        "ObjC/OCPusherHost.swift",
        "ObjC/Pusher+ObjectiveC.swift",
        "ObjC/PusherClientOptions+ObjectiveC.swift",
        "ObjC/PusherConnection+ObjectiveC.swift",
        "ObjC/PusherError+ObjectiveC.swift",
        "ObjC/PusherHost+ObjectiveC.swift",
        "Protocols/AuthRequestBuilderProtocol.swift",
        "Protocols/Authorizer.swift",
        "Protocols/EventFactory.swift",
        "Protocols/EventQueue.swift",
        "Protocols/EventQueueDelegate.swift",
        "Protocols/PusherDelegate.swift",
        "PusherSwift.swift",
        "Services/ChannelEventFactory.swift",
        "Services/ChannelEventQueue.swift",
        "Services/PusherConnection.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.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
Building for debugging...
[0/5] Write sources
[3/5] Compiling CTweetNacl ctweetnacl.c
[4/5] Write swift-version-5BDAB9E9C0126B9D.txt
[6/12] Compiling TweetNacl Constant.swift
[7/12] Compiling TweetNacl TweetNacl.swift
[8/12] Emitting module TweetNacl
[9/12] Compiling NWWebSocket WebSocketConnection.swift
[10/12] Compiling NWWebSocket NWWebSocket.swift
[11/12] Emitting module NWWebSocket
[12/12] Compiling NWWebSocket NWConnection+Extension.swift
[13/52] Compiling PusherSwift EventFactory.swift
[14/52] Compiling PusherSwift EventQueue.swift
[15/52] Compiling PusherSwift EventQueueDelegate.swift
[16/52] Compiling PusherSwift PusherDelegate.swift
[17/56] Compiling PusherSwift PusherPresenceChannelMember.swift
[18/56] Compiling PusherSwift QueuedClientEvent.swift
[19/56] Compiling PusherSwift AuthMethod+ObjectiveC.swift
[20/56] Compiling PusherSwift OCAuthMethod.swift
[21/56] Compiling PusherSwift PusherError+ObjectiveC.swift
[22/56] Compiling PusherSwift PusherHost+ObjectiveC.swift
[23/56] Compiling PusherSwift AuthRequestBuilderProtocol.swift
[24/56] Compiling PusherSwift Authorizer.swift
[25/56] Compiling PusherSwift Logger.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Models/ConnectionState.swift:10:16: warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | @objc public enum ConnectionState: Int {
   |                   `- note: consider making enum 'ConnectionState' conform to the 'Sendable' protocol
 4 |     case connecting
 5 |     case connected
   :
 8 |     case reconnecting
 9 |
10 |     static let connectionStates = [
   |                |- warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'connectionStates' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 |         connecting: "connecting",
12 |         connected: "connected",
[26/56] Compiling PusherSwift AuthError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Models/ConnectionState.swift:10:16: warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | @objc public enum ConnectionState: Int {
   |                   `- note: consider making enum 'ConnectionState' conform to the 'Sendable' protocol
 4 |     case connecting
 5 |     case connected
   :
 8 |     case reconnecting
 9 |
10 |     static let connectionStates = [
   |                |- warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'connectionStates' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 |         connecting: "connecting",
12 |         connected: "connected",
[27/56] Compiling PusherSwift AuthMethod.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Models/ConnectionState.swift:10:16: warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | @objc public enum ConnectionState: Int {
   |                   `- note: consider making enum 'ConnectionState' conform to the 'Sendable' protocol
 4 |     case connecting
 5 |     case connected
   :
 8 |     case reconnecting
 9 |
10 |     static let connectionStates = [
   |                |- warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'connectionStates' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 |         connecting: "connecting",
12 |         connected: "connected",
[28/56] Compiling PusherSwift ChannelsProtocolCloseCode.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Models/ConnectionState.swift:10:16: warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | @objc public enum ConnectionState: Int {
   |                   `- note: consider making enum 'ConnectionState' conform to the 'Sendable' protocol
 4 |     case connecting
 5 |     case connected
   :
 8 |     case reconnecting
 9 |
10 |     static let connectionStates = [
   |                |- warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'connectionStates' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 |         connecting: "connecting",
12 |         connected: "connected",
[29/56] Compiling PusherSwift ConnectionState.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Models/ConnectionState.swift:10:16: warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | @objc public enum ConnectionState: Int {
   |                   `- note: consider making enum 'ConnectionState' conform to the 'Sendable' protocol
 4 |     case connecting
 5 |     case connected
   :
 8 |     case reconnecting
 9 |
10 |     static let connectionStates = [
   |                |- warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'connectionStates' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 |         connecting: "connecting",
12 |         connected: "connected",
[30/56] Compiling PusherSwift PusherChannelType.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannels.swift:15:52: warning: capture of 'self' with non-sendable type 'PusherChannels' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | @objc open class PusherChannels: NSObject {
    |                  `- note: class 'PusherChannels' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user subscribes/unsubscribes to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 13 |         }
 14 |         set {
 15 |             channelsQueue.async(flags: .barrier) { self.channelsInternal = newValue }
    |                                                    `- warning: capture of 'self' with non-sendable type 'PusherChannels' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannels.swift:15:76: warning: capture of 'newValue' with non-sendable type '[String : PusherChannel]' in a `@Sendable` closure
 13 |         }
 14 |         set {
 15 |             channelsQueue.async(flags: .barrier) { self.channelsInternal = newValue }
    |                                                                            `- warning: capture of 'newValue' with non-sendable type '[String : PusherChannel]' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
[31/56] Compiling PusherSwift PusherChannels.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannels.swift:15:52: warning: capture of 'self' with non-sendable type 'PusherChannels' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | @objc open class PusherChannels: NSObject {
    |                  `- note: class 'PusherChannels' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user subscribes/unsubscribes to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 13 |         }
 14 |         set {
 15 |             channelsQueue.async(flags: .barrier) { self.channelsInternal = newValue }
    |                                                    `- warning: capture of 'self' with non-sendable type 'PusherChannels' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannels.swift:15:76: warning: capture of 'newValue' with non-sendable type '[String : PusherChannel]' in a `@Sendable` closure
 13 |         }
 14 |         set {
 15 |             channelsQueue.async(flags: .barrier) { self.channelsInternal = newValue }
    |                                                                            `- warning: capture of 'newValue' with non-sendable type '[String : PusherChannel]' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
[32/56] Compiling PusherSwift PusherClientOptions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannels.swift:15:52: warning: capture of 'self' with non-sendable type 'PusherChannels' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | @objc open class PusherChannels: NSObject {
    |                  `- note: class 'PusherChannels' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user subscribes/unsubscribes to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 13 |         }
 14 |         set {
 15 |             channelsQueue.async(flags: .barrier) { self.channelsInternal = newValue }
    |                                                    `- warning: capture of 'self' with non-sendable type 'PusherChannels' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannels.swift:15:76: warning: capture of 'newValue' with non-sendable type '[String : PusherChannel]' in a `@Sendable` closure
 13 |         }
 14 |         set {
 15 |             channelsQueue.async(flags: .barrier) { self.channelsInternal = newValue }
    |                                                                            `- warning: capture of 'newValue' with non-sendable type '[String : PusherChannel]' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
[33/56] Compiling PusherSwift PusherError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannels.swift:15:52: warning: capture of 'self' with non-sendable type 'PusherChannels' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | @objc open class PusherChannels: NSObject {
    |                  `- note: class 'PusherChannels' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user subscribes/unsubscribes to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 13 |         }
 14 |         set {
 15 |             channelsQueue.async(flags: .barrier) { self.channelsInternal = newValue }
    |                                                    `- warning: capture of 'self' with non-sendable type 'PusherChannels' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannels.swift:15:76: warning: capture of 'newValue' with non-sendable type '[String : PusherChannel]' in a `@Sendable` closure
 13 |         }
 14 |         set {
 15 |             channelsQueue.async(flags: .barrier) { self.channelsInternal = newValue }
    |                                                                            `- warning: capture of 'newValue' with non-sendable type '[String : PusherChannel]' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
[34/56] Compiling PusherSwift OCPusherHost.swift
[35/56] Compiling PusherSwift Pusher+ObjectiveC.swift
[36/56] Compiling PusherSwift PusherClientOptions+ObjectiveC.swift
[37/56] Compiling PusherSwift PusherConnection+ObjectiveC.swift
[38/56] Compiling PusherSwift PusherEvent.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[39/56] Compiling PusherSwift PusherGlobalChannel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[40/56] Compiling PusherSwift PusherHost.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[41/56] Compiling PusherSwift PusherPresenceChannel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[42/56] Emitting module PusherSwift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Models/ConnectionState.swift:10:16: warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | @objc public enum ConnectionState: Int {
   |                   `- note: consider making enum 'ConnectionState' conform to the 'Sendable' protocol
 4 |     case connecting
 5 |     case connected
   :
 8 |     case reconnecting
 9 |
10 |     static let connectionStates = [
   |                |- warning: static property 'connectionStates' is not concurrency-safe because non-'Sendable' type '[ConnectionState : String]' may have shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: annotate 'connectionStates' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 |         connecting: "connecting",
12 |         connected: "connected",
[43/56] Compiling PusherSwift Constants.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:86: warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                                                      `- warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/EventHandler.swift:3:15: note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct EventHandler {
  |               `- note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
4 |     let id: String
5 |     let callback: (PusherEvent) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:41:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 39 |         }
 40 |         set {
 41 |             decryptionKeyQueue.async(flags: .barrier) { self.decryptionKeyInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 42 |         }
 43 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[44/56] Compiling PusherSwift EventError.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:86: warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                                                      `- warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/EventHandler.swift:3:15: note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct EventHandler {
  |               `- note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
4 |     let id: String
5 |     let callback: (PusherEvent) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:41:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 39 |         }
 40 |         set {
 41 |             decryptionKeyQueue.async(flags: .barrier) { self.decryptionKeyInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 42 |         }
 43 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[45/56] Compiling PusherSwift EventHandler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:86: warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                                                      `- warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/EventHandler.swift:3:15: note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct EventHandler {
  |               `- note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
4 |     let id: String
5 |     let callback: (PusherEvent) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:41:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 39 |         }
 40 |         set {
 41 |             decryptionKeyQueue.async(flags: .barrier) { self.decryptionKeyInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 42 |         }
 43 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[46/56] Compiling PusherSwift PusherAuth.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:86: warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                                                      `- warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/EventHandler.swift:3:15: note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct EventHandler {
  |               `- note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
4 |     let id: String
5 |     let callback: (PusherEvent) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:41:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 39 |         }
 40 |         set {
 41 |             decryptionKeyQueue.async(flags: .barrier) { self.decryptionKeyInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 42 |         }
 43 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[47/56] Compiling PusherSwift PusherChannel.swift
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:15:86: warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 13 |         }
 14 |         set {
 15 |             eventHandlersQueue.async(flags: .barrier) { self.eventHandlersInternal = newValue }
    |                                                                                      `- warning: capture of 'newValue' with non-sendable type '[String : [EventHandler]]' in a `@Sendable` closure
 16 |         }
 17 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/EventHandler.swift:3:15: note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct EventHandler {
  |               `- note: consider making struct 'EventHandler' conform to the 'Sendable' protocol
4 |     let id: String
5 |     let callback: (PusherEvent) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:41:57: warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
    :
 39 |         }
 40 |         set {
 41 |             decryptionKeyQueue.async(flags: .barrier) { self.decryptionKeyInternal = newValue }
    |                                                         `- warning: capture of 'self' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 42 |         }
 43 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[48/56] Compiling PusherSwift PusherChannel+EncryptionHelpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[49/56] Compiling PusherSwift PusherConnection+WebsocketDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[50/56] Compiling PusherSwift URL+Pusher.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[51/56] Compiling PusherSwift Crypto.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[52/56] Compiling PusherSwift EventParser.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
[53/56] Compiling PusherSwift PusherSwift.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:13: warning: capture of 'self' with non-sendable type 'ChannelEventQueue' in a `@Sendable` closure
 1 | import Foundation
 2 |
 3 | class ChannelEventQueue: EventQueue {
   |       `- note: class 'ChannelEventQueue' does not conform to the 'Sendable' protocol
 4 |
 5 |     // MARK: - Properties
   :
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |             `- warning: capture of 'self' with non-sendable type 'ChannelEventQueue' in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:48: warning: capture of 'json' with non-sendable type 'ChannelEventPayload' (aka 'Dictionary<String, Any>') in a `@Sendable` closure
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                `- warning: capture of 'json' with non-sendable type 'ChannelEventPayload' (aka 'Dictionary<String, Any>') in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:63: warning: capture of 'channel' with non-sendable type 'PusherChannel?' in a `@Sendable` closure
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                               `- warning: capture of 'channel' with non-sendable type 'PusherChannel?' in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:63: warning: reference to captured var 'channel' in concurrently-executing code
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                               `- warning: reference to captured var 'channel' in concurrently-executing code
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:837:61: warning: capture of 'channel' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 835 |         let task = URLSession.dataTask(with: request, completionHandler: { data, response, sessionError in
 836 |             if let error = sessionError {
 837 |                 let message = "Error authorizing channel [\(channel.name)]: \(error)"
     |                                                             `- warning: capture of 'channel' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 838 |                 completionHandler(nil, AuthError(kind: .requestFailure,
 839 |                                                  message: message,
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:838:17: warning: capture of 'completionHandler' with non-sendable type '(PusherAuth?, AuthError?) -> Void' in a `@Sendable` closure
 836 |             if let error = sessionError {
 837 |                 let message = "Error authorizing channel [\(channel.name)]: \(error)"
 838 |                 completionHandler(nil, AuthError(kind: .requestFailure,
     |                 |- warning: capture of 'completionHandler' with non-sendable type '(PusherAuth?, AuthError?) -> Void' in a `@Sendable` closure
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 839 |                                                  message: message,
 840 |                                                  response: response,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:607:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 605 |         DispatchQueue.main.async {
 606 |             // TODO: Consider removing in favour of exclusively using delegate
 607 |             self.handleEvent(event: event)
     |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 608 |         }
 609 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:607:37: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
 605 |         DispatchQueue.main.async {
 606 |             // TODO: Consider removing in favour of exclusively using delegate
 607 |             self.handleEvent(event: event)
     |                                     |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
     |                                     `- note: task-isolated 'event' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 608 |         }
 609 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:960:42: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
 958 |         DispatchQueue.main.async {
 959 |             Logger.shared.debug(for: .unableToHandleIncomingMessage,
 960 |                                 context: payload)
     |                                          |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
     |                                          `- note: task-isolated 'payload' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 961 |         }
 962 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:968:32: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
 966 |                     forChannelName channelName: String) {
 967 |         DispatchQueue.main.async {
 968 |             if let eventName = payload[Constants.JSONKeys.event] as? String {
     |                                |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
     |                                `- note: task-isolated 'payload' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 969 |                 let data = payload[Constants.JSONKeys.data] as? String
 970 |                 self.delegate?.failedToDecryptEvent?(eventName: eventName, channelName: channelName, data: data)
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:970:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 968 |             if let eventName = payload[Constants.JSONKeys.event] as? String {
 969 |                 let data = payload[Constants.JSONKeys.data] as? String
 970 |                 self.delegate?.failedToDecryptEvent?(eventName: eventName, channelName: channelName, data: data)
     |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 971 |             }
 972 |             Logger.shared.debug(for: .skippedEventAfterDecryptionFailure,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:981:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 979 |                     forChannelName channelName: String?) {
 980 |         DispatchQueue.main.async {
 981 |             self.handleEvent(event: event)
     |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 982 |         }
 983 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:981:37: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
 979 |                     forChannelName channelName: String?) {
 980 |         DispatchQueue.main.async {
 981 |             self.handleEvent(event: event)
     |                                     |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
     |                                     `- note: task-isolated 'event' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 982 |         }
 983 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:997:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 995 |         // Schedule the loading of the key on the main thread
 996 |         DispatchQueue.main.async {
 997 |             _ = self.requestPusherAuthFromAuthMethod(channel: channel) { pusherAuth, error in
     |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 998 |                 if let pusherAuth = pusherAuth,
 999 |                     let decryptionKey = pusherAuth.sharedSecret,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:997:63: warning: sending 'channel' risks causing data races; this is an error in the Swift 6 language mode
 995 |         // Schedule the loading of the key on the main thread
 996 |         DispatchQueue.main.async {
 997 |             _ = self.requestPusherAuthFromAuthMethod(channel: channel) { pusherAuth, error in
     |                                                               |- warning: sending 'channel' risks causing data races; this is an error in the Swift 6 language mode
     |                                                               `- note: task-isolated 'channel' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 998 |                 if let pusherAuth = pusherAuth,
 999 |                     let decryptionKey = pusherAuth.sharedSecret,
[54/56] Compiling PusherSwift ChannelEventFactory.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:13: warning: capture of 'self' with non-sendable type 'ChannelEventQueue' in a `@Sendable` closure
 1 | import Foundation
 2 |
 3 | class ChannelEventQueue: EventQueue {
   |       `- note: class 'ChannelEventQueue' does not conform to the 'Sendable' protocol
 4 |
 5 |     // MARK: - Properties
   :
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |             `- warning: capture of 'self' with non-sendable type 'ChannelEventQueue' in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:48: warning: capture of 'json' with non-sendable type 'ChannelEventPayload' (aka 'Dictionary<String, Any>') in a `@Sendable` closure
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                `- warning: capture of 'json' with non-sendable type 'ChannelEventPayload' (aka 'Dictionary<String, Any>') in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:63: warning: capture of 'channel' with non-sendable type 'PusherChannel?' in a `@Sendable` closure
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                               `- warning: capture of 'channel' with non-sendable type 'PusherChannel?' in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:63: warning: reference to captured var 'channel' in concurrently-executing code
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                               `- warning: reference to captured var 'channel' in concurrently-executing code
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:837:61: warning: capture of 'channel' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 835 |         let task = URLSession.dataTask(with: request, completionHandler: { data, response, sessionError in
 836 |             if let error = sessionError {
 837 |                 let message = "Error authorizing channel [\(channel.name)]: \(error)"
     |                                                             `- warning: capture of 'channel' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 838 |                 completionHandler(nil, AuthError(kind: .requestFailure,
 839 |                                                  message: message,
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:838:17: warning: capture of 'completionHandler' with non-sendable type '(PusherAuth?, AuthError?) -> Void' in a `@Sendable` closure
 836 |             if let error = sessionError {
 837 |                 let message = "Error authorizing channel [\(channel.name)]: \(error)"
 838 |                 completionHandler(nil, AuthError(kind: .requestFailure,
     |                 |- warning: capture of 'completionHandler' with non-sendable type '(PusherAuth?, AuthError?) -> Void' in a `@Sendable` closure
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 839 |                                                  message: message,
 840 |                                                  response: response,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:607:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 605 |         DispatchQueue.main.async {
 606 |             // TODO: Consider removing in favour of exclusively using delegate
 607 |             self.handleEvent(event: event)
     |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 608 |         }
 609 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:607:37: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
 605 |         DispatchQueue.main.async {
 606 |             // TODO: Consider removing in favour of exclusively using delegate
 607 |             self.handleEvent(event: event)
     |                                     |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
     |                                     `- note: task-isolated 'event' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 608 |         }
 609 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:960:42: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
 958 |         DispatchQueue.main.async {
 959 |             Logger.shared.debug(for: .unableToHandleIncomingMessage,
 960 |                                 context: payload)
     |                                          |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
     |                                          `- note: task-isolated 'payload' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 961 |         }
 962 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:968:32: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
 966 |                     forChannelName channelName: String) {
 967 |         DispatchQueue.main.async {
 968 |             if let eventName = payload[Constants.JSONKeys.event] as? String {
     |                                |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
     |                                `- note: task-isolated 'payload' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 969 |                 let data = payload[Constants.JSONKeys.data] as? String
 970 |                 self.delegate?.failedToDecryptEvent?(eventName: eventName, channelName: channelName, data: data)
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:970:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 968 |             if let eventName = payload[Constants.JSONKeys.event] as? String {
 969 |                 let data = payload[Constants.JSONKeys.data] as? String
 970 |                 self.delegate?.failedToDecryptEvent?(eventName: eventName, channelName: channelName, data: data)
     |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 971 |             }
 972 |             Logger.shared.debug(for: .skippedEventAfterDecryptionFailure,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:981:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 979 |                     forChannelName channelName: String?) {
 980 |         DispatchQueue.main.async {
 981 |             self.handleEvent(event: event)
     |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 982 |         }
 983 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:981:37: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
 979 |                     forChannelName channelName: String?) {
 980 |         DispatchQueue.main.async {
 981 |             self.handleEvent(event: event)
     |                                     |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
     |                                     `- note: task-isolated 'event' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 982 |         }
 983 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:997:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 995 |         // Schedule the loading of the key on the main thread
 996 |         DispatchQueue.main.async {
 997 |             _ = self.requestPusherAuthFromAuthMethod(channel: channel) { pusherAuth, error in
     |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 998 |                 if let pusherAuth = pusherAuth,
 999 |                     let decryptionKey = pusherAuth.sharedSecret,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:997:63: warning: sending 'channel' risks causing data races; this is an error in the Swift 6 language mode
 995 |         // Schedule the loading of the key on the main thread
 996 |         DispatchQueue.main.async {
 997 |             _ = self.requestPusherAuthFromAuthMethod(channel: channel) { pusherAuth, error in
     |                                                               |- warning: sending 'channel' risks causing data races; this is an error in the Swift 6 language mode
     |                                                               `- note: task-isolated 'channel' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 998 |                 if let pusherAuth = pusherAuth,
 999 |                     let decryptionKey = pusherAuth.sharedSecret,
[55/56] Compiling PusherSwift ChannelEventQueue.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:13: warning: capture of 'self' with non-sendable type 'ChannelEventQueue' in a `@Sendable` closure
 1 | import Foundation
 2 |
 3 | class ChannelEventQueue: EventQueue {
   |       `- note: class 'ChannelEventQueue' does not conform to the 'Sendable' protocol
 4 |
 5 |     // MARK: - Properties
   :
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |             `- warning: capture of 'self' with non-sendable type 'ChannelEventQueue' in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:48: warning: capture of 'json' with non-sendable type 'ChannelEventPayload' (aka 'Dictionary<String, Any>') in a `@Sendable` closure
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                `- warning: capture of 'json' with non-sendable type 'ChannelEventPayload' (aka 'Dictionary<String, Any>') in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:63: warning: capture of 'channel' with non-sendable type 'PusherChannel?' in a `@Sendable` closure
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                               `- warning: capture of 'channel' with non-sendable type 'PusherChannel?' in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:63: warning: reference to captured var 'channel' in concurrently-executing code
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                               `- warning: reference to captured var 'channel' in concurrently-executing code
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:837:61: warning: capture of 'channel' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 835 |         let task = URLSession.dataTask(with: request, completionHandler: { data, response, sessionError in
 836 |             if let error = sessionError {
 837 |                 let message = "Error authorizing channel [\(channel.name)]: \(error)"
     |                                                             `- warning: capture of 'channel' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 838 |                 completionHandler(nil, AuthError(kind: .requestFailure,
 839 |                                                  message: message,
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:838:17: warning: capture of 'completionHandler' with non-sendable type '(PusherAuth?, AuthError?) -> Void' in a `@Sendable` closure
 836 |             if let error = sessionError {
 837 |                 let message = "Error authorizing channel [\(channel.name)]: \(error)"
 838 |                 completionHandler(nil, AuthError(kind: .requestFailure,
     |                 |- warning: capture of 'completionHandler' with non-sendable type '(PusherAuth?, AuthError?) -> Void' in a `@Sendable` closure
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 839 |                                                  message: message,
 840 |                                                  response: response,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:607:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 605 |         DispatchQueue.main.async {
 606 |             // TODO: Consider removing in favour of exclusively using delegate
 607 |             self.handleEvent(event: event)
     |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 608 |         }
 609 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:607:37: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
 605 |         DispatchQueue.main.async {
 606 |             // TODO: Consider removing in favour of exclusively using delegate
 607 |             self.handleEvent(event: event)
     |                                     |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
     |                                     `- note: task-isolated 'event' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 608 |         }
 609 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:960:42: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
 958 |         DispatchQueue.main.async {
 959 |             Logger.shared.debug(for: .unableToHandleIncomingMessage,
 960 |                                 context: payload)
     |                                          |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
     |                                          `- note: task-isolated 'payload' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 961 |         }
 962 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:968:32: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
 966 |                     forChannelName channelName: String) {
 967 |         DispatchQueue.main.async {
 968 |             if let eventName = payload[Constants.JSONKeys.event] as? String {
     |                                |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
     |                                `- note: task-isolated 'payload' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 969 |                 let data = payload[Constants.JSONKeys.data] as? String
 970 |                 self.delegate?.failedToDecryptEvent?(eventName: eventName, channelName: channelName, data: data)
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:970:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 968 |             if let eventName = payload[Constants.JSONKeys.event] as? String {
 969 |                 let data = payload[Constants.JSONKeys.data] as? String
 970 |                 self.delegate?.failedToDecryptEvent?(eventName: eventName, channelName: channelName, data: data)
     |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 971 |             }
 972 |             Logger.shared.debug(for: .skippedEventAfterDecryptionFailure,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:981:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 979 |                     forChannelName channelName: String?) {
 980 |         DispatchQueue.main.async {
 981 |             self.handleEvent(event: event)
     |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 982 |         }
 983 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:981:37: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
 979 |                     forChannelName channelName: String?) {
 980 |         DispatchQueue.main.async {
 981 |             self.handleEvent(event: event)
     |                                     |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
     |                                     `- note: task-isolated 'event' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 982 |         }
 983 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:997:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 995 |         // Schedule the loading of the key on the main thread
 996 |         DispatchQueue.main.async {
 997 |             _ = self.requestPusherAuthFromAuthMethod(channel: channel) { pusherAuth, error in
     |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 998 |                 if let pusherAuth = pusherAuth,
 999 |                     let decryptionKey = pusherAuth.sharedSecret,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:997:63: warning: sending 'channel' risks causing data races; this is an error in the Swift 6 language mode
 995 |         // Schedule the loading of the key on the main thread
 996 |         DispatchQueue.main.async {
 997 |             _ = self.requestPusherAuthFromAuthMethod(channel: channel) { pusherAuth, error in
     |                                                               |- warning: sending 'channel' risks causing data races; this is an error in the Swift 6 language mode
     |                                                               `- note: task-isolated 'channel' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 998 |                 if let pusherAuth = pusherAuth,
 999 |                     let decryptionKey = pusherAuth.sharedSecret,
[56/56] Compiling PusherSwift PusherConnection.swift
/Users/admin/builder/spi-builder-workspace/Sources/Helpers/Logger.swift:71:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
  2 |
  3 | /// Used for logging events for informational purposes
  4 | class Logger {
    |       `- note: class 'Logger' does not conform to the 'Sendable' protocol
  5 |
  6 |     // MARK: - Enum definitions
    :
 69 |     }
 70 |
 71 |     static let shared = Logger()
    |                |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'Logger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'shared' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 72 |
 73 |     weak var delegate: PusherDelegate?
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:13: warning: capture of 'self' with non-sendable type 'ChannelEventQueue' in a `@Sendable` closure
 1 | import Foundation
 2 |
 3 | class ChannelEventQueue: EventQueue {
   |       `- note: class 'ChannelEventQueue' does not conform to the 'Sendable' protocol
 4 |
 5 |     // MARK: - Properties
   :
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |             `- warning: capture of 'self' with non-sendable type 'ChannelEventQueue' in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:48: warning: capture of 'json' with non-sendable type 'ChannelEventPayload' (aka 'Dictionary<String, Any>') in a `@Sendable` closure
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                `- warning: capture of 'json' with non-sendable type 'ChannelEventPayload' (aka 'Dictionary<String, Any>') in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:63: warning: capture of 'channel' with non-sendable type 'PusherChannel?' in a `@Sendable` closure
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                               `- warning: capture of 'channel' with non-sendable type 'PusherChannel?' in a `@Sendable` closure
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
/Users/admin/builder/spi-builder-workspace/Sources/Services/ChannelEventQueue.swift:34:63: warning: reference to captured var 'channel' in concurrently-executing code
32 |
33 |         queue.async {
34 |             self.processEventWithRetries(json: json, channel: channel)
   |                                                               `- warning: reference to captured var 'channel' in concurrently-executing code
35 |         }
36 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:837:61: warning: capture of 'channel' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 835 |         let task = URLSession.dataTask(with: request, completionHandler: { data, response, sessionError in
 836 |             if let error = sessionError {
 837 |                 let message = "Error authorizing channel [\(channel.name)]: \(error)"
     |                                                             `- warning: capture of 'channel' with non-sendable type 'PusherChannel' in a `@Sendable` closure
 838 |                 completionHandler(nil, AuthError(kind: .requestFailure,
 839 |                                                  message: message,
/Users/admin/builder/spi-builder-workspace/Sources/Models/PusherChannel.swift:4:12: note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  2 |
  3 | @objcMembers
  4 | open class PusherChannel: NSObject {
    |            `- note: class 'PusherChannel' does not conform to the 'Sendable' protocol
  5 |     // Access via queue for thread safety if user binds/unbinds events to a channel off the main queue
  6 |     // (Concurrent reads are allowed. Writes using `.barrier` so queue waits for completion before continuing)
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:838:17: warning: capture of 'completionHandler' with non-sendable type '(PusherAuth?, AuthError?) -> Void' in a `@Sendable` closure
 836 |             if let error = sessionError {
 837 |                 let message = "Error authorizing channel [\(channel.name)]: \(error)"
 838 |                 completionHandler(nil, AuthError(kind: .requestFailure,
     |                 |- warning: capture of 'completionHandler' with non-sendable type '(PusherAuth?, AuthError?) -> Void' in a `@Sendable` closure
     |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 839 |                                                  message: message,
 840 |                                                  response: response,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:607:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 605 |         DispatchQueue.main.async {
 606 |             // TODO: Consider removing in favour of exclusively using delegate
 607 |             self.handleEvent(event: event)
     |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 608 |         }
 609 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:607:37: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
 605 |         DispatchQueue.main.async {
 606 |             // TODO: Consider removing in favour of exclusively using delegate
 607 |             self.handleEvent(event: event)
     |                                     |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
     |                                     `- note: task-isolated 'event' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 608 |         }
 609 |
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:960:42: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
 958 |         DispatchQueue.main.async {
 959 |             Logger.shared.debug(for: .unableToHandleIncomingMessage,
 960 |                                 context: payload)
     |                                          |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
     |                                          `- note: task-isolated 'payload' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 961 |         }
 962 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:968:32: warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
 966 |                     forChannelName channelName: String) {
 967 |         DispatchQueue.main.async {
 968 |             if let eventName = payload[Constants.JSONKeys.event] as? String {
     |                                |- warning: sending 'payload' risks causing data races; this is an error in the Swift 6 language mode
     |                                `- note: task-isolated 'payload' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 969 |                 let data = payload[Constants.JSONKeys.data] as? String
 970 |                 self.delegate?.failedToDecryptEvent?(eventName: eventName, channelName: channelName, data: data)
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:970:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 968 |             if let eventName = payload[Constants.JSONKeys.event] as? String {
 969 |                 let data = payload[Constants.JSONKeys.data] as? String
 970 |                 self.delegate?.failedToDecryptEvent?(eventName: eventName, channelName: channelName, data: data)
     |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 971 |             }
 972 |             Logger.shared.debug(for: .skippedEventAfterDecryptionFailure,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:981:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 979 |                     forChannelName channelName: String?) {
 980 |         DispatchQueue.main.async {
 981 |             self.handleEvent(event: event)
     |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 982 |         }
 983 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:981:37: warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
 979 |                     forChannelName channelName: String?) {
 980 |         DispatchQueue.main.async {
 981 |             self.handleEvent(event: event)
     |                                     |- warning: sending 'event' risks causing data races; this is an error in the Swift 6 language mode
     |                                     `- note: task-isolated 'event' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 982 |         }
 983 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:997:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 995 |         // Schedule the loading of the key on the main thread
 996 |         DispatchQueue.main.async {
 997 |             _ = self.requestPusherAuthFromAuthMethod(channel: channel) { pusherAuth, error in
     |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
     |                 `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 998 |                 if let pusherAuth = pusherAuth,
 999 |                     let decryptionKey = pusherAuth.sharedSecret,
/Users/admin/builder/spi-builder-workspace/Sources/Services/PusherConnection.swift:997:63: warning: sending 'channel' risks causing data races; this is an error in the Swift 6 language mode
 995 |         // Schedule the loading of the key on the main thread
 996 |         DispatchQueue.main.async {
 997 |             _ = self.requestPusherAuthFromAuthMethod(channel: channel) { pusherAuth, error in
     |                                                               |- warning: sending 'channel' risks causing data races; this is an error in the Swift 6 language mode
     |                                                               `- note: task-isolated 'channel' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
 998 |                 if let pusherAuth = pusherAuth,
 999 |                     let decryptionKey = pusherAuth.sharedSecret,
Build complete! (10.76s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "nwwebsocket",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.5.4",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/pusher/NWWebSocket.git"
    },
    {
      "identity" : "tweetnacl-swiftwrap",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/bitmark-inc/tweetnacl-swiftwrap"
    }
  ],
  "manifest_display_name" : "PusherSwift",
  "name" : "PusherSwift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "PusherSwift",
      "targets" : [
        "PusherSwift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "PusherSwiftTests",
      "module_type" : "SwiftTarget",
      "name" : "PusherSwiftTests",
      "path" : "Tests",
      "sources" : [
        "Extensions/String+Extensions.swift",
        "Extensions/XCTest+Assertions.swift",
        "Helpers/Helpers.swift",
        "Helpers/Mocks.swift",
        "Helpers/TestObjects.swift",
        "Integration/AuthenticationTests.swift",
        "Integration/PusherClientInitializationTests.swift",
        "Integration/PusherIncomingEventHandlingTests.swift",
        "Integration/PusherTopLevelAPITests.swift",
        "Unit/Helpers/ChannelEventFactory+DecryptionTests.swift",
        "Unit/Helpers/ChannelEventFactoryTests.swift",
        "Unit/Helpers/CryptoTests.swift",
        "Unit/Models/ClientEventTests.swift",
        "Unit/Models/PresenceChannelTests.swift",
        "Unit/Models/PrivateEncryptedChannelTests.swift",
        "Unit/Models/PusherChannelTests.swift",
        "Unit/Protocols/PusherConnectionDelegateTests.swift",
        "Unit/Services/ChannelEventQueue+DecryptionTests.swift",
        "Unit/Services/ChannelEventQueueTests.swift",
        "Unit/Services/PusherConnectionTests.swift"
      ],
      "target_dependencies" : [
        "PusherSwift"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PusherSwift",
      "module_type" : "SwiftTarget",
      "name" : "PusherSwift",
      "path" : "Sources",
      "product_dependencies" : [
        "NWWebSocket",
        "TweetNacl"
      ],
      "product_memberships" : [
        "PusherSwift"
      ],
      "sources" : [
        "Extensions/PusherChannel+EncryptionHelpers.swift",
        "Extensions/PusherConnection+WebsocketDelegate.swift",
        "Extensions/URL+Pusher.swift",
        "Helpers/Crypto.swift",
        "Helpers/EventParser.swift",
        "Helpers/Logger.swift",
        "Models/AuthError.swift",
        "Models/AuthMethod.swift",
        "Models/ChannelsProtocolCloseCode.swift",
        "Models/ConnectionState.swift",
        "Models/Constants.swift",
        "Models/EventError.swift",
        "Models/EventHandler.swift",
        "Models/PusherAuth.swift",
        "Models/PusherChannel.swift",
        "Models/PusherChannelType.swift",
        "Models/PusherChannels.swift",
        "Models/PusherClientOptions.swift",
        "Models/PusherError.swift",
        "Models/PusherEvent.swift",
        "Models/PusherGlobalChannel.swift",
        "Models/PusherHost.swift",
        "Models/PusherPresenceChannel.swift",
        "Models/PusherPresenceChannelMember.swift",
        "Models/QueuedClientEvent.swift",
        "ObjC/AuthMethod+ObjectiveC.swift",
        "ObjC/OCAuthMethod.swift",
        "ObjC/OCPusherHost.swift",
        "ObjC/Pusher+ObjectiveC.swift",
        "ObjC/PusherClientOptions+ObjectiveC.swift",
        "ObjC/PusherConnection+ObjectiveC.swift",
        "ObjC/PusherError+ObjectiveC.swift",
        "ObjC/PusherHost+ObjectiveC.swift",
        "Protocols/AuthRequestBuilderProtocol.swift",
        "Protocols/Authorizer.swift",
        "Protocols/EventFactory.swift",
        "Protocols/EventQueue.swift",
        "Protocols/EventQueueDelegate.swift",
        "Protocols/PusherDelegate.swift",
        "PusherSwift.swift",
        "Services/ChannelEventFactory.swift",
        "Services/ChannelEventQueue.swift",
        "Services/PusherConnection.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.0"
}
Done.