The Swift Package Index logo.Swift Package Index

Build Information

Successful build of PubNubSDK, reference master (ff5294), with Swift 6.1 for macOS (SPM) on 24 Apr 2026 02:01:51 UTC.

Swift 6 data race errors: 44

Build Command

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

Build Log

 85 |   case connectionStatusChanged(ConnectionStatus)
 86 |   /// A change in the subscribed channels or groups has occurred
 87 |   case subscriptionChanged(SubscriptionChangeEvent)
    |                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 88 |   /// A presence change has been received
 89 |   case presenceChanged(PubNubPresenceChange)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:161:46: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
159 |   public var didReceiveSubscription: ((SubscriptionEvent) -> Void)?
160 |   /// Receiver for changes in the subscribe/unsubscribe status of channels/groups
161 |   public var didReceiveSubscriptionChange: ((SubscriptionChangeEvent) -> Void)?
    |                                              `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
162 |   /// Receiver for status (Connection & Error) events
163 |   public var didReceiveStatus: ((StatusEvent) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:42: warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |                                          `- warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:37: warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |                                     `- warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:7: warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
346 | }
347 |
348 | open class PubNubEntityListener: BaseSubscriptionListener {
    |            `- note: class 'PubNubEntityListener' does not conform to the 'Sendable' protocol
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |       `- warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:26: warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |                          `- warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Networking/Routers/SubscribeRouter.swift:283:15: note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
281 | }
282 |
283 | public struct SubscribeMessagePayload: Codable, Hashable, CustomStringConvertible {
    |               `- note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
284 |   public let shard: String
285 |   public let subscription: String?
[213/253] Compiling PubNubSDK LegacySubscriptionSessionStrategy+Presence.swift
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:149:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
147 |     if !diff.addedChannels.isEmpty || !diff.addedChannelGroups.isEmpty {
148 |       notify {
149 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
150 |           .subscribed(
151 |             channels: diff.addedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:178:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
176 |       // and channel groups
177 |       notify {
178 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
179 |           .unsubscribed(
180 |             channels: diff.removedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:219:27: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
217 |     // and channel groups
218 |     notify {
219 |       $0.emit(subscribe: .subscriptionChanged(
    |                           `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
220 |         .unsubscribed(
221 |           channels: currentInput.channelNames(withPresence: true).map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:13: warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |             `- warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/API/EventListener.swift:26:14: note: class 'StatusListener' does not conform to the 'Sendable' protocol
 24 |
 25 | /// Defines additional status listener that can be attached to `Subscription` or `SubscriptionSet`
 26 | public class StatusListener: StatusListenerInterface {
    |              `- note: class 'StatusListener' does not conform to the 'Sendable' protocol
 27 |   public let uuid: UUID
 28 |   public let queue: DispatchQueue
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:48: warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |                                                `- warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/ConnectionStatus.swift:14:13: note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
12 |
13 | /// Status of a connection to a remote system
14 | public enum ConnectionStatus: Equatable {
   |             `- note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
15 |   /// Successfully connected to a remote system
16 |   case connected
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:332:44: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
330 |   }
331 |
332 |   func unsubscribeCleanup(subscribeChange: SubscriptionChangeEvent) {
    |                                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
333 |     // Call Leave on channels/groups
334 |     if !configuration.supressLeaveEvents {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:101:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 99 |     at cursor: SubscribeCursor?
100 |   ) {
101 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
102 |       .subscribed(
103 |         channels: channels.map { PubNubChannel(channel: $0) }.filter { state.channels.insert($0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:108:36: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
106 |     }
107 |     if subscribeChange.didChange {
108 |       notify { $0.emit(subscribe: .subscriptionChanged(subscribeChange)) }
    |                                    `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
109 |     }
110 |     if subscribeChange.didChange || !connectionStatus.isActive {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:206:39: warning: 'responseReceived' is deprecated: This case will be removed in future versions
204 |             }
205 |
206 |             listener.emit(subscribe: .responseReceived(
    |                                       `- warning: 'responseReceived' is deprecated: This case will be removed in future versions
207 |               SubscribeResponseHeader(
208 |                 channels: pubnubChannels.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:207:15: warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
205 |
206 |             listener.emit(subscribe: .responseReceived(
207 |               SubscribeResponseHeader(
    |               `- warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
208 |                 channels: pubnubChannels.values.map { $0 },
209 |                 groups: pubnubGroups.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:276:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
274 |
275 |   func unsubscribe(from channels: [String], and channelGroups: [String]) {
276 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
277 |       .unsubscribed(
278 |         channels: channels.compactMap {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:297:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
295 |     if subscribeChange.didChange {
296 |       notify {
297 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
298 |       }
299 |       // Call unsubscribe to cleanup remaining state items
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:307:71: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
305 |   func unsubscribeAll() {
306 |     // Remove All Channels & Groups
307 |     let subscribeChange = internalState.lockedWrite { mutableState -> SubscriptionChangeEvent in
    |                                                                       `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
308 |
309 |       let removedChannels = mutableState.channels
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:323:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
321 |     if subscribeChange.didChange {
322 |       notify {
323 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
324 |       }
325 |       // Cancel previous subscribe request.
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:87:28: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 85 |   case connectionStatusChanged(ConnectionStatus)
 86 |   /// A change in the subscribed channels or groups has occurred
 87 |   case subscriptionChanged(SubscriptionChangeEvent)
    |                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 88 |   /// A presence change has been received
 89 |   case presenceChanged(PubNubPresenceChange)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:161:46: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
159 |   public var didReceiveSubscription: ((SubscriptionEvent) -> Void)?
160 |   /// Receiver for changes in the subscribe/unsubscribe status of channels/groups
161 |   public var didReceiveSubscriptionChange: ((SubscriptionChangeEvent) -> Void)?
    |                                              `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
162 |   /// Receiver for status (Connection & Error) events
163 |   public var didReceiveStatus: ((StatusEvent) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:42: warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |                                          `- warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:37: warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |                                     `- warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:7: warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
346 | }
347 |
348 | open class PubNubEntityListener: BaseSubscriptionListener {
    |            `- note: class 'PubNubEntityListener' does not conform to the 'Sendable' protocol
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |       `- warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:26: warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |                          `- warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Networking/Routers/SubscribeRouter.swift:283:15: note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
281 | }
282 |
283 | public struct SubscribeMessagePayload: Codable, Hashable, CustomStringConvertible {
    |               `- note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
284 |   public let shard: String
285 |   public let subscription: String?
[214/253] Compiling PubNubSDK LegacySubscriptionSessionStrategy.swift
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:149:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
147 |     if !diff.addedChannels.isEmpty || !diff.addedChannelGroups.isEmpty {
148 |       notify {
149 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
150 |           .subscribed(
151 |             channels: diff.addedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:178:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
176 |       // and channel groups
177 |       notify {
178 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
179 |           .unsubscribed(
180 |             channels: diff.removedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:219:27: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
217 |     // and channel groups
218 |     notify {
219 |       $0.emit(subscribe: .subscriptionChanged(
    |                           `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
220 |         .unsubscribed(
221 |           channels: currentInput.channelNames(withPresence: true).map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:13: warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |             `- warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/API/EventListener.swift:26:14: note: class 'StatusListener' does not conform to the 'Sendable' protocol
 24 |
 25 | /// Defines additional status listener that can be attached to `Subscription` or `SubscriptionSet`
 26 | public class StatusListener: StatusListenerInterface {
    |              `- note: class 'StatusListener' does not conform to the 'Sendable' protocol
 27 |   public let uuid: UUID
 28 |   public let queue: DispatchQueue
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:48: warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |                                                `- warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/ConnectionStatus.swift:14:13: note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
12 |
13 | /// Status of a connection to a remote system
14 | public enum ConnectionStatus: Equatable {
   |             `- note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
15 |   /// Successfully connected to a remote system
16 |   case connected
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:332:44: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
330 |   }
331 |
332 |   func unsubscribeCleanup(subscribeChange: SubscriptionChangeEvent) {
    |                                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
333 |     // Call Leave on channels/groups
334 |     if !configuration.supressLeaveEvents {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:101:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 99 |     at cursor: SubscribeCursor?
100 |   ) {
101 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
102 |       .subscribed(
103 |         channels: channels.map { PubNubChannel(channel: $0) }.filter { state.channels.insert($0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:108:36: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
106 |     }
107 |     if subscribeChange.didChange {
108 |       notify { $0.emit(subscribe: .subscriptionChanged(subscribeChange)) }
    |                                    `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
109 |     }
110 |     if subscribeChange.didChange || !connectionStatus.isActive {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:206:39: warning: 'responseReceived' is deprecated: This case will be removed in future versions
204 |             }
205 |
206 |             listener.emit(subscribe: .responseReceived(
    |                                       `- warning: 'responseReceived' is deprecated: This case will be removed in future versions
207 |               SubscribeResponseHeader(
208 |                 channels: pubnubChannels.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:207:15: warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
205 |
206 |             listener.emit(subscribe: .responseReceived(
207 |               SubscribeResponseHeader(
    |               `- warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
208 |                 channels: pubnubChannels.values.map { $0 },
209 |                 groups: pubnubGroups.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:276:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
274 |
275 |   func unsubscribe(from channels: [String], and channelGroups: [String]) {
276 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
277 |       .unsubscribed(
278 |         channels: channels.compactMap {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:297:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
295 |     if subscribeChange.didChange {
296 |       notify {
297 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
298 |       }
299 |       // Call unsubscribe to cleanup remaining state items
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:307:71: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
305 |   func unsubscribeAll() {
306 |     // Remove All Channels & Groups
307 |     let subscribeChange = internalState.lockedWrite { mutableState -> SubscriptionChangeEvent in
    |                                                                       `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
308 |
309 |       let removedChannels = mutableState.channels
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:323:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
321 |     if subscribeChange.didChange {
322 |       notify {
323 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
324 |       }
325 |       // Cancel previous subscribe request.
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:87:28: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 85 |   case connectionStatusChanged(ConnectionStatus)
 86 |   /// A change in the subscribed channels or groups has occurred
 87 |   case subscriptionChanged(SubscriptionChangeEvent)
    |                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 88 |   /// A presence change has been received
 89 |   case presenceChanged(PubNubPresenceChange)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:161:46: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
159 |   public var didReceiveSubscription: ((SubscriptionEvent) -> Void)?
160 |   /// Receiver for changes in the subscribe/unsubscribe status of channels/groups
161 |   public var didReceiveSubscriptionChange: ((SubscriptionChangeEvent) -> Void)?
    |                                              `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
162 |   /// Receiver for status (Connection & Error) events
163 |   public var didReceiveStatus: ((StatusEvent) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:42: warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |                                          `- warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:37: warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |                                     `- warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:7: warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
346 | }
347 |
348 | open class PubNubEntityListener: BaseSubscriptionListener {
    |            `- note: class 'PubNubEntityListener' does not conform to the 'Sendable' protocol
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |       `- warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:26: warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |                          `- warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Networking/Routers/SubscribeRouter.swift:283:15: note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
281 | }
282 |
283 | public struct SubscribeMessagePayload: Codable, Hashable, CustomStringConvertible {
    |               `- note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
284 |   public let shard: String
285 |   public let subscription: String?
[215/253] Compiling PubNubSDK PubNubEntityEvent.swift
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:149:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
147 |     if !diff.addedChannels.isEmpty || !diff.addedChannelGroups.isEmpty {
148 |       notify {
149 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
150 |           .subscribed(
151 |             channels: diff.addedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:178:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
176 |       // and channel groups
177 |       notify {
178 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
179 |           .unsubscribed(
180 |             channels: diff.removedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:219:27: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
217 |     // and channel groups
218 |     notify {
219 |       $0.emit(subscribe: .subscriptionChanged(
    |                           `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
220 |         .unsubscribed(
221 |           channels: currentInput.channelNames(withPresence: true).map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:13: warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |             `- warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/API/EventListener.swift:26:14: note: class 'StatusListener' does not conform to the 'Sendable' protocol
 24 |
 25 | /// Defines additional status listener that can be attached to `Subscription` or `SubscriptionSet`
 26 | public class StatusListener: StatusListenerInterface {
    |              `- note: class 'StatusListener' does not conform to the 'Sendable' protocol
 27 |   public let uuid: UUID
 28 |   public let queue: DispatchQueue
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:48: warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |                                                `- warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/ConnectionStatus.swift:14:13: note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
12 |
13 | /// Status of a connection to a remote system
14 | public enum ConnectionStatus: Equatable {
   |             `- note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
15 |   /// Successfully connected to a remote system
16 |   case connected
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:332:44: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
330 |   }
331 |
332 |   func unsubscribeCleanup(subscribeChange: SubscriptionChangeEvent) {
    |                                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
333 |     // Call Leave on channels/groups
334 |     if !configuration.supressLeaveEvents {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:101:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 99 |     at cursor: SubscribeCursor?
100 |   ) {
101 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
102 |       .subscribed(
103 |         channels: channels.map { PubNubChannel(channel: $0) }.filter { state.channels.insert($0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:108:36: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
106 |     }
107 |     if subscribeChange.didChange {
108 |       notify { $0.emit(subscribe: .subscriptionChanged(subscribeChange)) }
    |                                    `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
109 |     }
110 |     if subscribeChange.didChange || !connectionStatus.isActive {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:206:39: warning: 'responseReceived' is deprecated: This case will be removed in future versions
204 |             }
205 |
206 |             listener.emit(subscribe: .responseReceived(
    |                                       `- warning: 'responseReceived' is deprecated: This case will be removed in future versions
207 |               SubscribeResponseHeader(
208 |                 channels: pubnubChannels.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:207:15: warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
205 |
206 |             listener.emit(subscribe: .responseReceived(
207 |               SubscribeResponseHeader(
    |               `- warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
208 |                 channels: pubnubChannels.values.map { $0 },
209 |                 groups: pubnubGroups.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:276:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
274 |
275 |   func unsubscribe(from channels: [String], and channelGroups: [String]) {
276 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
277 |       .unsubscribed(
278 |         channels: channels.compactMap {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:297:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
295 |     if subscribeChange.didChange {
296 |       notify {
297 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
298 |       }
299 |       // Call unsubscribe to cleanup remaining state items
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:307:71: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
305 |   func unsubscribeAll() {
306 |     // Remove All Channels & Groups
307 |     let subscribeChange = internalState.lockedWrite { mutableState -> SubscriptionChangeEvent in
    |                                                                       `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
308 |
309 |       let removedChannels = mutableState.channels
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:323:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
321 |     if subscribeChange.didChange {
322 |       notify {
323 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
324 |       }
325 |       // Cancel previous subscribe request.
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:87:28: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 85 |   case connectionStatusChanged(ConnectionStatus)
 86 |   /// A change in the subscribed channels or groups has occurred
 87 |   case subscriptionChanged(SubscriptionChangeEvent)
    |                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 88 |   /// A presence change has been received
 89 |   case presenceChanged(PubNubPresenceChange)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:161:46: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
159 |   public var didReceiveSubscription: ((SubscriptionEvent) -> Void)?
160 |   /// Receiver for changes in the subscribe/unsubscribe status of channels/groups
161 |   public var didReceiveSubscriptionChange: ((SubscriptionChangeEvent) -> Void)?
    |                                              `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
162 |   /// Receiver for status (Connection & Error) events
163 |   public var didReceiveStatus: ((StatusEvent) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:42: warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |                                          `- warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:37: warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |                                     `- warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:7: warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
346 | }
347 |
348 | open class PubNubEntityListener: BaseSubscriptionListener {
    |            `- note: class 'PubNubEntityListener' does not conform to the 'Sendable' protocol
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |       `- warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:26: warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |                          `- warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Networking/Routers/SubscribeRouter.swift:283:15: note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
281 | }
282 |
283 | public struct SubscribeMessagePayload: Codable, Hashable, CustomStringConvertible {
    |               `- note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
284 |   public let shard: String
285 |   public let subscription: String?
[216/253] Compiling PubNubSDK SubscriptionState.swift
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:149:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
147 |     if !diff.addedChannels.isEmpty || !diff.addedChannelGroups.isEmpty {
148 |       notify {
149 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
150 |           .subscribed(
151 |             channels: diff.addedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:178:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
176 |       // and channel groups
177 |       notify {
178 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
179 |           .unsubscribed(
180 |             channels: diff.removedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:219:27: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
217 |     // and channel groups
218 |     notify {
219 |       $0.emit(subscribe: .subscriptionChanged(
    |                           `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
220 |         .unsubscribed(
221 |           channels: currentInput.channelNames(withPresence: true).map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:13: warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |             `- warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/API/EventListener.swift:26:14: note: class 'StatusListener' does not conform to the 'Sendable' protocol
 24 |
 25 | /// Defines additional status listener that can be attached to `Subscription` or `SubscriptionSet`
 26 | public class StatusListener: StatusListenerInterface {
    |              `- note: class 'StatusListener' does not conform to the 'Sendable' protocol
 27 |   public let uuid: UUID
 28 |   public let queue: DispatchQueue
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:48: warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |                                                `- warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/ConnectionStatus.swift:14:13: note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
12 |
13 | /// Status of a connection to a remote system
14 | public enum ConnectionStatus: Equatable {
   |             `- note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
15 |   /// Successfully connected to a remote system
16 |   case connected
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:332:44: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
330 |   }
331 |
332 |   func unsubscribeCleanup(subscribeChange: SubscriptionChangeEvent) {
    |                                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
333 |     // Call Leave on channels/groups
334 |     if !configuration.supressLeaveEvents {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:101:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 99 |     at cursor: SubscribeCursor?
100 |   ) {
101 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
102 |       .subscribed(
103 |         channels: channels.map { PubNubChannel(channel: $0) }.filter { state.channels.insert($0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:108:36: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
106 |     }
107 |     if subscribeChange.didChange {
108 |       notify { $0.emit(subscribe: .subscriptionChanged(subscribeChange)) }
    |                                    `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
109 |     }
110 |     if subscribeChange.didChange || !connectionStatus.isActive {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:206:39: warning: 'responseReceived' is deprecated: This case will be removed in future versions
204 |             }
205 |
206 |             listener.emit(subscribe: .responseReceived(
    |                                       `- warning: 'responseReceived' is deprecated: This case will be removed in future versions
207 |               SubscribeResponseHeader(
208 |                 channels: pubnubChannels.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:207:15: warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
205 |
206 |             listener.emit(subscribe: .responseReceived(
207 |               SubscribeResponseHeader(
    |               `- warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
208 |                 channels: pubnubChannels.values.map { $0 },
209 |                 groups: pubnubGroups.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:276:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
274 |
275 |   func unsubscribe(from channels: [String], and channelGroups: [String]) {
276 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
277 |       .unsubscribed(
278 |         channels: channels.compactMap {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:297:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
295 |     if subscribeChange.didChange {
296 |       notify {
297 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
298 |       }
299 |       // Call unsubscribe to cleanup remaining state items
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:307:71: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
305 |   func unsubscribeAll() {
306 |     // Remove All Channels & Groups
307 |     let subscribeChange = internalState.lockedWrite { mutableState -> SubscriptionChangeEvent in
    |                                                                       `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
308 |
309 |       let removedChannels = mutableState.channels
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:323:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
321 |     if subscribeChange.didChange {
322 |       notify {
323 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
324 |       }
325 |       // Cancel previous subscribe request.
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:87:28: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 85 |   case connectionStatusChanged(ConnectionStatus)
 86 |   /// A change in the subscribed channels or groups has occurred
 87 |   case subscriptionChanged(SubscriptionChangeEvent)
    |                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 88 |   /// A presence change has been received
 89 |   case presenceChanged(PubNubPresenceChange)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:161:46: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
159 |   public var didReceiveSubscription: ((SubscriptionEvent) -> Void)?
160 |   /// Receiver for changes in the subscribe/unsubscribe status of channels/groups
161 |   public var didReceiveSubscriptionChange: ((SubscriptionChangeEvent) -> Void)?
    |                                              `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
162 |   /// Receiver for status (Connection & Error) events
163 |   public var didReceiveStatus: ((StatusEvent) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:42: warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |                                          `- warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:37: warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |                                     `- warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:7: warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
346 | }
347 |
348 | open class PubNubEntityListener: BaseSubscriptionListener {
    |            `- note: class 'PubNubEntityListener' does not conform to the 'Sendable' protocol
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |       `- warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:26: warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |                          `- warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Networking/Routers/SubscribeRouter.swift:283:15: note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
281 | }
282 |
283 | public struct SubscribeMessagePayload: Codable, Hashable, CustomStringConvertible {
    |               `- note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
284 |   public let shard: String
285 |   public let subscription: String?
[217/253] Compiling PubNubSDK SubscriptionStream.swift
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:149:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
147 |     if !diff.addedChannels.isEmpty || !diff.addedChannelGroups.isEmpty {
148 |       notify {
149 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
150 |           .subscribed(
151 |             channels: diff.addedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:178:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
176 |       // and channel groups
177 |       notify {
178 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
179 |           .unsubscribed(
180 |             channels: diff.removedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:219:27: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
217 |     // and channel groups
218 |     notify {
219 |       $0.emit(subscribe: .subscriptionChanged(
    |                           `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
220 |         .unsubscribed(
221 |           channels: currentInput.channelNames(withPresence: true).map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:13: warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |             `- warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/API/EventListener.swift:26:14: note: class 'StatusListener' does not conform to the 'Sendable' protocol
 24 |
 25 | /// Defines additional status listener that can be attached to `Subscription` or `SubscriptionSet`
 26 | public class StatusListener: StatusListenerInterface {
    |              `- note: class 'StatusListener' does not conform to the 'Sendable' protocol
 27 |   public let uuid: UUID
 28 |   public let queue: DispatchQueue
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:48: warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |                                                `- warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/ConnectionStatus.swift:14:13: note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
12 |
13 | /// Status of a connection to a remote system
14 | public enum ConnectionStatus: Equatable {
   |             `- note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
15 |   /// Successfully connected to a remote system
16 |   case connected
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:332:44: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
330 |   }
331 |
332 |   func unsubscribeCleanup(subscribeChange: SubscriptionChangeEvent) {
    |                                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
333 |     // Call Leave on channels/groups
334 |     if !configuration.supressLeaveEvents {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:101:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 99 |     at cursor: SubscribeCursor?
100 |   ) {
101 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
102 |       .subscribed(
103 |         channels: channels.map { PubNubChannel(channel: $0) }.filter { state.channels.insert($0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:108:36: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
106 |     }
107 |     if subscribeChange.didChange {
108 |       notify { $0.emit(subscribe: .subscriptionChanged(subscribeChange)) }
    |                                    `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
109 |     }
110 |     if subscribeChange.didChange || !connectionStatus.isActive {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:206:39: warning: 'responseReceived' is deprecated: This case will be removed in future versions
204 |             }
205 |
206 |             listener.emit(subscribe: .responseReceived(
    |                                       `- warning: 'responseReceived' is deprecated: This case will be removed in future versions
207 |               SubscribeResponseHeader(
208 |                 channels: pubnubChannels.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:207:15: warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
205 |
206 |             listener.emit(subscribe: .responseReceived(
207 |               SubscribeResponseHeader(
    |               `- warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
208 |                 channels: pubnubChannels.values.map { $0 },
209 |                 groups: pubnubGroups.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:276:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
274 |
275 |   func unsubscribe(from channels: [String], and channelGroups: [String]) {
276 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
277 |       .unsubscribed(
278 |         channels: channels.compactMap {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:297:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
295 |     if subscribeChange.didChange {
296 |       notify {
297 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
298 |       }
299 |       // Call unsubscribe to cleanup remaining state items
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:307:71: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
305 |   func unsubscribeAll() {
306 |     // Remove All Channels & Groups
307 |     let subscribeChange = internalState.lockedWrite { mutableState -> SubscriptionChangeEvent in
    |                                                                       `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
308 |
309 |       let removedChannels = mutableState.channels
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:323:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
321 |     if subscribeChange.didChange {
322 |       notify {
323 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
324 |       }
325 |       // Cancel previous subscribe request.
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:87:28: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 85 |   case connectionStatusChanged(ConnectionStatus)
 86 |   /// A change in the subscribed channels or groups has occurred
 87 |   case subscriptionChanged(SubscriptionChangeEvent)
    |                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 88 |   /// A presence change has been received
 89 |   case presenceChanged(PubNubPresenceChange)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:161:46: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
159 |   public var didReceiveSubscription: ((SubscriptionEvent) -> Void)?
160 |   /// Receiver for changes in the subscribe/unsubscribe status of channels/groups
161 |   public var didReceiveSubscriptionChange: ((SubscriptionChangeEvent) -> Void)?
    |                                              `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
162 |   /// Receiver for status (Connection & Error) events
163 |   public var didReceiveStatus: ((StatusEvent) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:42: warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |                                          `- warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:37: warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |                                     `- warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:7: warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
346 | }
347 |
348 | open class PubNubEntityListener: BaseSubscriptionListener {
    |            `- note: class 'PubNubEntityListener' does not conform to the 'Sendable' protocol
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |       `- warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:26: warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |                          `- warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Networking/Routers/SubscribeRouter.swift:283:15: note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
281 | }
282 |
283 | public struct SubscribeMessagePayload: Codable, Hashable, CustomStringConvertible {
    |               `- note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
284 |   public let shard: String
285 |   public let subscription: String?
[218/253] Compiling PubNubSDK SubscribeMessagePayload+PubNubEvent.swift
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:149:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
147 |     if !diff.addedChannels.isEmpty || !diff.addedChannelGroups.isEmpty {
148 |       notify {
149 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
150 |           .subscribed(
151 |             channels: diff.addedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:178:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
176 |       // and channel groups
177 |       notify {
178 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
179 |           .unsubscribed(
180 |             channels: diff.removedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:219:27: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
217 |     // and channel groups
218 |     notify {
219 |       $0.emit(subscribe: .subscriptionChanged(
    |                           `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
220 |         .unsubscribed(
221 |           channels: currentInput.channelNames(withPresence: true).map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:13: warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |             `- warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/API/EventListener.swift:26:14: note: class 'StatusListener' does not conform to the 'Sendable' protocol
 24 |
 25 | /// Defines additional status listener that can be attached to `Subscription` or `SubscriptionSet`
 26 | public class StatusListener: StatusListenerInterface {
    |              `- note: class 'StatusListener' does not conform to the 'Sendable' protocol
 27 |   public let uuid: UUID
 28 |   public let queue: DispatchQueue
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:48: warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |                                                `- warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/ConnectionStatus.swift:14:13: note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
12 |
13 | /// Status of a connection to a remote system
14 | public enum ConnectionStatus: Equatable {
   |             `- note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
15 |   /// Successfully connected to a remote system
16 |   case connected
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:332:44: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
330 |   }
331 |
332 |   func unsubscribeCleanup(subscribeChange: SubscriptionChangeEvent) {
    |                                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
333 |     // Call Leave on channels/groups
334 |     if !configuration.supressLeaveEvents {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:101:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 99 |     at cursor: SubscribeCursor?
100 |   ) {
101 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
102 |       .subscribed(
103 |         channels: channels.map { PubNubChannel(channel: $0) }.filter { state.channels.insert($0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:108:36: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
106 |     }
107 |     if subscribeChange.didChange {
108 |       notify { $0.emit(subscribe: .subscriptionChanged(subscribeChange)) }
    |                                    `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
109 |     }
110 |     if subscribeChange.didChange || !connectionStatus.isActive {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:206:39: warning: 'responseReceived' is deprecated: This case will be removed in future versions
204 |             }
205 |
206 |             listener.emit(subscribe: .responseReceived(
    |                                       `- warning: 'responseReceived' is deprecated: This case will be removed in future versions
207 |               SubscribeResponseHeader(
208 |                 channels: pubnubChannels.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:207:15: warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
205 |
206 |             listener.emit(subscribe: .responseReceived(
207 |               SubscribeResponseHeader(
    |               `- warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
208 |                 channels: pubnubChannels.values.map { $0 },
209 |                 groups: pubnubGroups.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:276:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
274 |
275 |   func unsubscribe(from channels: [String], and channelGroups: [String]) {
276 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
277 |       .unsubscribed(
278 |         channels: channels.compactMap {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:297:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
295 |     if subscribeChange.didChange {
296 |       notify {
297 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
298 |       }
299 |       // Call unsubscribe to cleanup remaining state items
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:307:71: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
305 |   func unsubscribeAll() {
306 |     // Remove All Channels & Groups
307 |     let subscribeChange = internalState.lockedWrite { mutableState -> SubscriptionChangeEvent in
    |                                                                       `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
308 |
309 |       let removedChannels = mutableState.channels
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:323:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
321 |     if subscribeChange.didChange {
322 |       notify {
323 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
324 |       }
325 |       // Cancel previous subscribe request.
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:87:28: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 85 |   case connectionStatusChanged(ConnectionStatus)
 86 |   /// A change in the subscribed channels or groups has occurred
 87 |   case subscriptionChanged(SubscriptionChangeEvent)
    |                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 88 |   /// A presence change has been received
 89 |   case presenceChanged(PubNubPresenceChange)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:161:46: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
159 |   public var didReceiveSubscription: ((SubscriptionEvent) -> Void)?
160 |   /// Receiver for changes in the subscribe/unsubscribe status of channels/groups
161 |   public var didReceiveSubscriptionChange: ((SubscriptionChangeEvent) -> Void)?
    |                                              `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
162 |   /// Receiver for status (Connection & Error) events
163 |   public var didReceiveStatus: ((StatusEvent) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:42: warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |                                          `- warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:37: warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |                                     `- warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:7: warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
346 | }
347 |
348 | open class PubNubEntityListener: BaseSubscriptionListener {
    |            `- note: class 'PubNubEntityListener' does not conform to the 'Sendable' protocol
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |       `- warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:26: warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |                          `- warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Networking/Routers/SubscribeRouter.swift:283:15: note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
281 | }
282 |
283 | public struct SubscribeMessagePayload: Codable, Hashable, CustomStringConvertible {
    |               `- note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
284 |   public let shard: String
285 |   public let subscription: String?
[219/253] Compiling PubNubSDK resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:149:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
147 |     if !diff.addedChannels.isEmpty || !diff.addedChannelGroups.isEmpty {
148 |       notify {
149 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
150 |           .subscribed(
151 |             channels: diff.addedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:178:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
176 |       // and channel groups
177 |       notify {
178 |         $0.emit(subscribe: .subscriptionChanged(
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
179 |           .unsubscribed(
180 |             channels: diff.removedChannels.map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift:219:27: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
217 |     // and channel groups
218 |     notify {
219 |       $0.emit(subscribe: .subscriptionChanged(
    |                           `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
220 |         .unsubscribed(
221 |           channels: currentInput.channelNames(withPresence: true).map { PubNubChannel(channel: $0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:13: warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |             `- warning: capture of 'listener' with non-sendable type 'StatusListener?' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/API/EventListener.swift:26:14: note: class 'StatusListener' does not conform to the 'Sendable' protocol
 24 |
 25 | /// Defines additional status listener that can be attached to `Subscription` or `SubscriptionSet`
 26 | public class StatusListener: StatusListenerInterface {
    |              `- note: class 'StatusListener' does not conform to the 'Sendable' protocol
 27 |   public let uuid: UUID
 28 |   public let queue: DispatchQueue
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/SubscriptionSession.swift:66:48: warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 64 |         self?.listenersContainer.statusListeners.forEach { listener in
 65 |           listener.queue.async { [weak listener] in
 66 |             listener?.onConnectionStateChange?(newStatus)
    |                                                `- warning: capture of 'newStatus' with non-sendable type 'ConnectionStatus' in a '@Sendable' closure
 67 |           }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Core/ConnectionStatus.swift:14:13: note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
12 |
13 | /// Status of a connection to a remote system
14 | public enum ConnectionStatus: Equatable {
   |             `- note: consider making enum 'ConnectionStatus' conform to the 'Sendable' protocol
15 |   /// Successfully connected to a remote system
16 |   case connected
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:332:44: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
330 |   }
331 |
332 |   func unsubscribeCleanup(subscribeChange: SubscriptionChangeEvent) {
    |                                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
333 |     // Call Leave on channels/groups
334 |     if !configuration.supressLeaveEvents {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:101:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 99 |     at cursor: SubscribeCursor?
100 |   ) {
101 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
102 |       .subscribed(
103 |         channels: channels.map { PubNubChannel(channel: $0) }.filter { state.channels.insert($0) }.consolidated(),
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:108:36: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
106 |     }
107 |     if subscribeChange.didChange {
108 |       notify { $0.emit(subscribe: .subscriptionChanged(subscribeChange)) }
    |                                    `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
109 |     }
110 |     if subscribeChange.didChange || !connectionStatus.isActive {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:206:39: warning: 'responseReceived' is deprecated: This case will be removed in future versions
204 |             }
205 |
206 |             listener.emit(subscribe: .responseReceived(
    |                                       `- warning: 'responseReceived' is deprecated: This case will be removed in future versions
207 |               SubscribeResponseHeader(
208 |                 channels: pubnubChannels.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:207:15: warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
205 |
206 |             listener.emit(subscribe: .responseReceived(
207 |               SubscribeResponseHeader(
    |               `- warning: 'SubscribeResponseHeader' is deprecated: This struct will be removed in future versions
208 |                 channels: pubnubChannels.values.map { $0 },
209 |                 groups: pubnubGroups.values.map { $0 },
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:276:64: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
274 |
275 |   func unsubscribe(from channels: [String], and channelGroups: [String]) {
276 |     let subscribeChange = internalState.lockedWrite { state -> SubscriptionChangeEvent in
    |                                                                `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
277 |       .unsubscribed(
278 |         channels: channels.compactMap {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:297:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
295 |     if subscribeChange.didChange {
296 |       notify {
297 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
298 |       }
299 |       // Call unsubscribe to cleanup remaining state items
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:307:71: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
305 |   func unsubscribeAll() {
306 |     // Remove All Channels & Groups
307 |     let subscribeChange = internalState.lockedWrite { mutableState -> SubscriptionChangeEvent in
    |                                                                       `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
308 |
309 |       let removedChannels = mutableState.channels
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift:323:29: warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
321 |     if subscribeChange.didChange {
322 |       notify {
323 |         $0.emit(subscribe: .subscriptionChanged(subscribeChange))
    |                             `- warning: 'subscriptionChanged' is deprecated: This case will be removed in future versions
324 |       }
325 |       // Cancel previous subscribe request.
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:87:28: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 85 |   case connectionStatusChanged(ConnectionStatus)
 86 |   /// A change in the subscribed channels or groups has occurred
 87 |   case subscriptionChanged(SubscriptionChangeEvent)
    |                            `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
 88 |   /// A presence change has been received
 89 |   case presenceChanged(PubNubPresenceChange)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:161:46: warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
159 |   public var didReceiveSubscription: ((SubscriptionEvent) -> Void)?
160 |   /// Receiver for changes in the subscribe/unsubscribe status of channels/groups
161 |   public var didReceiveSubscriptionChange: ((SubscriptionChangeEvent) -> Void)?
    |                                              `- warning: 'SubscriptionChangeEvent' is deprecated: This enumeration will be removed in future versions
162 |   /// Receiver for status (Connection & Error) events
163 |   public var didReceiveStatus: ((StatusEvent) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:246:42: warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
244 |     queue.async { [weak self] in
245 |       // We also want to filter out cancellation errors
246 |       self?.didReceiveBatchSubscription?(batch.filter { !($0.isCancellationError && supressCancellationErrors) })
    |                                          `- warning: capture of 'batch' with non-sendable type '[SubscriptionEvent]' (aka 'Array<PubNubCoreEvent>') in a '@Sendable' closure
247 |
248 |       for event in batch {
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:7: warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
124 |
125 | /// Listener capable of emitting batched and single PubNubCoreEvent objects
126 | public final class CoreListener: BaseSubscriptionListener {
    |                    `- note: class 'CoreListener' does not conform to the 'Sendable' protocol
127 |   /// The type of action the Message Action event represents
128 |   public enum MessageActionEvent: CaseAccessible {
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |       `- warning: capture of 'self' with non-sendable type 'CoreListener?' in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:262:37: warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
 77 |
 78 | /// The Core PubNub Events found within the PubNub module
 79 | public enum PubNubCoreEvent {
    |             `- note: consider making enum 'PubNubCoreEvent' conform to the 'Sendable' protocol
 80 |   /// A message has been received
 81 |   case messageReceived(PubNubMessage)
    :
260 |     queue.async { [weak self] in
261 |       // Emit Master Event
262 |       self?.didReceiveSubscription?(event)
    |                                     `- warning: capture of 'event' with non-sendable type 'SubscriptionEvent' (aka 'PubNubCoreEvent') in a '@Sendable' closure
263 |
264 |       // Emit Granular Event
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:7: warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
346 | }
347 |
348 | open class PubNubEntityListener: BaseSubscriptionListener {
    |            `- note: class 'PubNubEntityListener' does not conform to the 'Sendable' protocol
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |       `- warning: capture of 'self' with non-sendable type 'PubNubEntityListener?' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Subscribe/Legacy/SubscriptionStream.swift:351:26: warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
349 |   override public final func emit(batch: [SubscribeMessagePayload]) {
350 |     queue.async { [weak self] in
351 |       self?.emit(entity: batch.compactMap { event in
    |                          `- warning: capture of 'batch' with non-sendable type '[SubscribeMessagePayload]' in a '@Sendable' closure
352 |         if event.messageType == .object {
353 |           return try? event.payload.decode(PubNubEntityEvent.self)
/Users/admin/builder/spi-builder-workspace/Sources/PubNub/Networking/Routers/SubscribeRouter.swift:283:15: note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
281 | }
282 |
283 | public struct SubscribeMessagePayload: Codable, Hashable, CustomStringConvertible {
    |               `- note: consider making struct 'SubscribeMessagePayload' conform to the 'Sendable' protocol
284 |   public let shard: String
285 |   public let subscription: String?
[220/263] Compiling PubNubUser User+PubNub.swift
/Users/admin/builder/spi-builder-workspace/PubNubUser/Sources/User+PubNub.swift:241:67: warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
239 |     let router = ObjectsUserRouter(
240 |       .fetch(
241 |         metadataId: userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid),
    |                                                                   `- warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
242 |         include: PubNub.UserIncludeFields(custom: includeCustom).includeFields
243 |       ),
/Users/admin/builder/spi-builder-workspace/PubNubUser/Sources/User+PubNub.swift:241:89: warning: 'uuid' is deprecated: renamed to 'userId'
239 |     let router = ObjectsUserRouter(
240 |       .fetch(
241 |         metadataId: userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid),
    |                                                                                         |- warning: 'uuid' is deprecated: renamed to 'userId'
    |                                                                                         `- note: use 'userId' instead
242 |         include: PubNub.UserIncludeFields(custom: includeCustom).includeFields
243 |       ),
/Users/admin/builder/spi-builder-workspace/PubNubUser/Sources/User+PubNub.swift:274:69: warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
272 |       .set(
273 |         metadata: PubNubUserMetadataBase(
274 |           metadataId: userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid),
    |                                                                     `- warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
275 |           name: name,
276 |           type: type,
/Users/admin/builder/spi-builder-workspace/PubNubUser/Sources/User+PubNub.swift:274:91: warning: 'uuid' is deprecated: renamed to 'userId'
272 |       .set(
273 |         metadata: PubNubUserMetadataBase(
274 |           metadataId: userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid),
    |                                                                                           |- warning: 'uuid' is deprecated: renamed to 'userId'
    |                                                                                           `- note: use 'userId' instead
275 |           name: name,
276 |           type: type,
/Users/admin/builder/spi-builder-workspace/PubNubUser/Sources/User+PubNub.swift:313:61: warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
311 |   ) {
312 |     createUser(
313 |       userId: userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid),
    |                                                             `- warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
314 |       name: name,
315 |       type: type,
/Users/admin/builder/spi-builder-workspace/PubNubUser/Sources/User+PubNub.swift:313:83: warning: 'uuid' is deprecated: renamed to 'userId'
311 |   ) {
312 |     createUser(
313 |       userId: userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid),
    |                                                                                   |- warning: 'uuid' is deprecated: renamed to 'userId'
    |                                                                                   `- note: use 'userId' instead
314 |       name: name,
315 |       type: type,
/Users/admin/builder/spi-builder-workspace/PubNubUser/Sources/User+PubNub.swift:333:73: warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
331 |   ) {
332 |     let router = ObjectsUserRouter(
333 |       .remove(metadataId: userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid)),
    |                                                                         `- warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
334 |       configuration: requestConfig.customConfiguration ?? configuration
335 |     )
/Users/admin/builder/spi-builder-workspace/PubNubUser/Sources/User+PubNub.swift:333:95: warning: 'uuid' is deprecated: renamed to 'userId'
331 |   ) {
332 |     let router = ObjectsUserRouter(
333 |       .remove(metadataId: userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid)),
    |                                                                                               |- warning: 'uuid' is deprecated: renamed to 'userId'
    |                                                                                               `- note: use 'userId' instead
334 |       configuration: requestConfig.customConfiguration ?? configuration
335 |     )
[221/263] Compiling PubNubUser PubNubUser.swift
[222/263] Compiling PubNubUser PubNubUserEvent.swift
[223/263] Emitting module PubNubSpace
[224/263] Compiling PubNubSpace PubNubSpace.swift
[225/263] Compiling PubNubSpace Space+PubNub.swift
[226/263] Compiling PubNubSpace PubNubSpaceEvent.swift
[227/263] Compiling PubNubSpace Patcher+PubNubSpace.swift
[228/263] Emitting module PubNubUser
[229/263] Compiling PubNubUser Patcher+PubNubUser.swift
[230/268] Compiling PubNubMembership PubNubMembership.swift
/Users/admin/builder/spi-builder-workspace/PubNubMembership/Sources/PubNubMembership.swift:321:13: warning: 'uuid' is deprecated: renamed to 'user'
319 |   func convert() -> PubNubMembership {
320 |     return PubNubMembership(
321 |       user: uuid?.convert() ?? PubNubUser(id: uuidMetadataId),
    |             |- warning: 'uuid' is deprecated: renamed to 'user'
    |             `- note: use 'user' instead
322 |       space: channel?.convert() ?? PubNubSpace(id: channelMetadataId),
323 |       status: status,
/Users/admin/builder/spi-builder-workspace/PubNubMembership/Sources/PubNubMembership.swift:321:47: warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
319 |   func convert() -> PubNubMembership {
320 |     return PubNubMembership(
321 |       user: uuid?.convert() ?? PubNubUser(id: uuidMetadataId),
    |                                               |- warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
    |                                               `- note: use 'userMetadataId' instead
322 |       space: channel?.convert() ?? PubNubSpace(id: channelMetadataId),
323 |       status: status,
[231/268] Compiling PubNubMembership Patcher+PubNubMembership.swift
[232/268] Compiling PubNubMembership PubNubMembershipEvent.swift
[233/268] Compiling PubNubMembership Membership+PubNub.swift
/Users/admin/builder/spi-builder-workspace/PubNubMembership/Sources/Membership+PubNub.swift:246:72: warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
244 |     completion: @escaping ((Result<(memberships: [PubNubMembership], next: PubNubHashedPage?), Error>) -> Void)
245 |   ) {
246 |     let computedUserId = userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid)
    |                                                                        `- warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
247 |
248 |     let router = ObjectsMembershipsRouter(
/Users/admin/builder/spi-builder-workspace/PubNubMembership/Sources/Membership+PubNub.swift:246:94: warning: 'uuid' is deprecated: renamed to 'userId'
244 |     completion: @escaping ((Result<(memberships: [PubNubMembership], next: PubNubHashedPage?), Error>) -> Void)
245 |   ) {
246 |     let computedUserId = userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid)
    |                                                                                              |- warning: 'uuid' is deprecated: renamed to 'userId'
    |                                                                                              `- note: use 'userId' instead
247 |
248 |     let router = ObjectsMembershipsRouter(
/Users/admin/builder/spi-builder-workspace/PubNubMembership/Sources/Membership+PubNub.swift:382:72: warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
380 |     completion: ((Result<Void, Error>) -> Void)?
381 |   ) {
382 |     let computedUserId = userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid)
    |                                                                        `- warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
383 |
384 |     let router = ObjectsMembershipsRouter(
/Users/admin/builder/spi-builder-workspace/PubNubMembership/Sources/Membership+PubNub.swift:382:94: warning: 'uuid' is deprecated: renamed to 'userId'
380 |     completion: ((Result<Void, Error>) -> Void)?
381 |   ) {
382 |     let computedUserId = userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid)
    |                                                                                              |- warning: 'uuid' is deprecated: renamed to 'userId'
    |                                                                                              `- note: use 'userId' instead
383 |
384 |     let router = ObjectsMembershipsRouter(
/Users/admin/builder/spi-builder-workspace/PubNubMembership/Sources/Membership+PubNub.swift:482:72: warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
480 |     completion: ((Result<Void, Error>) -> Void)?
481 |   ) {
482 |     let computedUserId = userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid)
    |                                                                        `- warning: 'uuid' is deprecated: uuid is deprecated. Use userId instead
483 |
484 |     let router = ObjectsMembershipsRouter(
/Users/admin/builder/spi-builder-workspace/PubNubMembership/Sources/Membership+PubNub.swift:482:94: warning: 'uuid' is deprecated: renamed to 'userId'
480 |     completion: ((Result<Void, Error>) -> Void)?
481 |   ) {
482 |     let computedUserId = userId ?? (requestConfig.customConfiguration?.uuid ?? configuration.uuid)
    |                                                                                              |- warning: 'uuid' is deprecated: renamed to 'userId'
    |                                                                                              `- note: use 'userId' instead
483 |
484 |     let router = ObjectsMembershipsRouter(
[234/268] Emitting module PubNubMembership
[235/288] Emitting module subscribe_unsubscribe_old
[236/288] Compiling pubnub pubnub.swift
[237/288] Emitting module pubnub
[238/288] Compiling subscribe_unsubscribe_old subscribe-unsubscribe-old.swift
[239/288] Emitting module logging
/Users/admin/builder/spi-builder-workspace/Snippets/Logging/logging.swift:128:1: warning: result of 'PubNubLogger' initializer is unused
126 | // Enable all logging levels - this captures everything including debug information
127 | // Useful during development to see all SDK operations
128 | PubNubLogger(levels: [.all])
    | `- warning: result of 'PubNubLogger' initializer is unused
129 | // snippet.end
130 |
/Users/admin/builder/spi-builder-workspace/Snippets/Logging/logging.swift:134:1: warning: result of 'PubNubLogger' initializer is unused
132 | // Enable only error logging - captures only critical errors
133 | // Useful for production environments where you only want to know about serious issues
134 | PubNubLogger(levels: [.error])
    | `- warning: result of 'PubNubLogger' initializer is unused
135 | // snippet.end
136 |
/Users/admin/builder/spi-builder-workspace/Snippets/Logging/logging.swift:145:1: warning: result of 'PubNubLogger' initializer is unused
143 | // - .event: Significant event notifications
144 | // - .info: Informational messages
145 | PubNubLogger(levels: [.error, .warn, .event, .info])
    | `- warning: result of 'PubNubLogger' initializer is unused
146 | // snippet.end
147 |
[240/288] Compiling logging logging.swift
/Users/admin/builder/spi-builder-workspace/Snippets/Logging/logging.swift:128:1: warning: result of 'PubNubLogger' initializer is unused
126 | // Enable all logging levels - this captures everything including debug information
127 | // Useful during development to see all SDK operations
128 | PubNubLogger(levels: [.all])
    | `- warning: result of 'PubNubLogger' initializer is unused
129 | // snippet.end
130 |
/Users/admin/builder/spi-builder-workspace/Snippets/Logging/logging.swift:134:1: warning: result of 'PubNubLogger' initializer is unused
132 | // Enable only error logging - captures only critical errors
133 | // Useful for production environments where you only want to know about serious issues
134 | PubNubLogger(levels: [.error])
    | `- warning: result of 'PubNubLogger' initializer is unused
135 | // snippet.end
136 |
/Users/admin/builder/spi-builder-workspace/Snippets/Logging/logging.swift:145:1: warning: result of 'PubNubLogger' initializer is unused
143 | // - .event: Significant event notifications
144 | // - .info: Informational messages
145 | PubNubLogger(levels: [.error, .warn, .event, .info])
    | `- warning: result of 'PubNubLogger' initializer is unused
146 | // snippet.end
147 |
/Users/admin/builder/spi-builder-workspace/Snippets/Logging/logging.swift:31:9: warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 29 |   if #available(iOS 14.0, macOS 11.0, watchOS 7.0, tvOS 14.0, *) {
 30 |     // snippet.os-log-writer
 31 |     let pubnub = PubNub(
    |         `- warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 32 |       configuration: .init(
 33 |         publishKey: "demo",
/Users/admin/builder/spi-builder-workspace/Snippets/Logging/logging.swift:90:7: warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 88 | func customLogWriterUsageExample() {
 89 |   // snippet.custom-log-writer-usage
 90 |   let pubnub = PubNub(
    |       `- warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 91 |     configuration: .init(
 92 |       publishKey: "demo",
/Users/admin/builder/spi-builder-workspace/Snippets/Logging/logging.swift:107:9: warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
105 |   if #available(iOS 14.0, macOS 11.0, watchOS 7.0, tvOS 14.0, *) {
106 |     // snippet.combined-log-writers
107 |     let pubnub = PubNub(
    |         `- warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
108 |       configuration: .init(
109 |         publishKey: "demo",
[241/288] Emitting module push_notifications
[242/288] Compiling push_notifications push-notifications.swift
[243/288] Emitting module message_actions
[244/288] Emitting module misc
[245/288] Compiling message_actions message-actions.swift
[246/288] Compiling misc misc.swift
/Users/admin/builder/spi-builder-workspace/Snippets/Misc/misc.swift:36:7: warning: immutable value 'encryptedMessage' was never used; consider replacing with '_' or removing it
34 |   let messageToEncrypt = Data("this is message".utf8)
35 |   // Encrypt the message
36 |   let encryptedMessage: Data = try cryptoModule.encrypt(data: messageToEncrypt).get()
   |       `- warning: immutable value 'encryptedMessage' was never used; consider replacing with '_' or removing it
37 |   // Proceed with encrypted message
38 | }
/Users/admin/builder/spi-builder-workspace/Snippets/Misc/misc.swift:49:7: warning: immutable value 'decryptedData' was never used; consider replacing with '_' or removing it
47 |   let encryptedMessage = try cryptoModule.encrypt(data: messageToEncrypt).get()
48 |   // Decrypt data
49 |   let decryptedData: Data = try cryptoModule.decrypt(data: encryptedMessage).get()
   |       `- warning: immutable value 'decryptedData' was never used; consider replacing with '_' or removing it
50 |   // Proceed with decrypted data
51 | }
[247/288] Emitting module presence
<unknown>:0: note: 'success' declared here
/Users/admin/builder/spi-builder-workspace/Snippets/Presence/presence.swift:121:20: warning: enum case 'success' has one associated value that is a tuple of 2 elements
119 | ) { result in
120 |   switch result {
121 |   case let .success(uuid, stateByChannel):
    |                    `- warning: enum case 'success' has one associated value that is a tuple of 2 elements
122 |     print("The UUID `\(uuid)` has the following presence state \(stateByChannel)")
123 |   case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Snippets/Presence/presence.swift:116:29: warning: 'uuid' is deprecated: renamed to 'userId'
114 | // Get the presence state for a channel and channel group
115 | pubnub.getPresenceState(
116 |   for: pubnub.configuration.uuid,
    |                             |- warning: 'uuid' is deprecated: renamed to 'userId'
    |                             `- note: use 'userId' instead
117 |   on: ["channelSwift"],
118 |   and: ["demo"]
/Users/admin/builder/spi-builder-workspace/Snippets/Presence/presence.swift:137:45: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
135 |   switch result {
136 |   case let .success(presenceSet):
137 |     print("The String value for `New` is: \(presenceSet.codableValue[rawValue: "new"] as? String)")
    |                                             |                                         |- note: use 'String(describing:)' to silence this warning
    |                                             |                                         `- note: provide a default value to avoid this warning
    |                                             `- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
138 |   case let .failure(error):
139 |     print("Failed Set State Response: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Snippets/Presence/presence.swift:157:44: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
155 |   switch result {
156 |   case let .success(presenceSet):
157 |     print("The Object representation is: \(try? presenceSet.codableValue.decode(MyPresenceState.self))")
    |                                            |                             |- note: use 'String(describing:)' to silence this warning
    |                                            |                             `- note: provide a default value to avoid this warning
    |                                            `- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
158 |   case let .failure(error):
159 |     print("Failed Set State Response: \(error.localizedDescription)")
[248/288] Compiling presence presence.swift
<unknown>:0: note: 'success' declared here
/Users/admin/builder/spi-builder-workspace/Snippets/Presence/presence.swift:121:20: warning: enum case 'success' has one associated value that is a tuple of 2 elements
119 | ) { result in
120 |   switch result {
121 |   case let .success(uuid, stateByChannel):
    |                    `- warning: enum case 'success' has one associated value that is a tuple of 2 elements
122 |     print("The UUID `\(uuid)` has the following presence state \(stateByChannel)")
123 |   case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Snippets/Presence/presence.swift:116:29: warning: 'uuid' is deprecated: renamed to 'userId'
114 | // Get the presence state for a channel and channel group
115 | pubnub.getPresenceState(
116 |   for: pubnub.configuration.uuid,
    |                             |- warning: 'uuid' is deprecated: renamed to 'userId'
    |                             `- note: use 'userId' instead
117 |   on: ["channelSwift"],
118 |   and: ["demo"]
/Users/admin/builder/spi-builder-workspace/Snippets/Presence/presence.swift:137:45: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
135 |   switch result {
136 |   case let .success(presenceSet):
137 |     print("The String value for `New` is: \(presenceSet.codableValue[rawValue: "new"] as? String)")
    |                                             |                                         |- note: use 'String(describing:)' to silence this warning
    |                                             |                                         `- note: provide a default value to avoid this warning
    |                                             `- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
138 |   case let .failure(error):
139 |     print("Failed Set State Response: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Snippets/Presence/presence.swift:157:44: warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
155 |   switch result {
156 |   case let .success(presenceSet):
157 |     print("The Object representation is: \(try? presenceSet.codableValue.decode(MyPresenceState.self))")
    |                                            |                             |- note: use 'String(describing:)' to silence this warning
    |                                            |                             `- note: provide a default value to avoid this warning
    |                                            `- warning: string interpolation produces a debug description for an optional value; did you mean to make this explicit?
158 |   case let .failure(error):
159 |     print("Failed Set State Response: \(error.localizedDescription)")
[249/288] Compiling subscriptions subscriptions.swift
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:31:22: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 26 | // snippet.end
 27 |
 28 | func subscriptionBasicExample() {
    |      `- note: add '@MainActor' to make global function 'subscriptionBasicExample()' part of global actor 'MainActor'
 29 |   // snippet.basic-usage
 30 |   // Create a subscription for an example channel entity
 31 |   let subscription = pubnub.channel("channel").subscription(options: ReceivePresenceEvents())
    |                      `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 32 |   // Triggers the subscription
 33 |   subscription.subscribe()
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:40:30: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 35 | }
 36 |
 37 | func subscriptionSetAddRemoveExample() {
    |      `- note: add '@MainActor' to make global function 'subscriptionSetAddRemoveExample()' part of global actor 'MainActor'
 38 |   // snippet.subscription-set-add-remove
 39 |   // Create a reference to example channel entity
 40 |   let weatherChannelEntity = pubnub.channel("weather-updates")
    |                              `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 41 |   // Create a reference to example channel group entity
 42 |   let newsGroupEntity = pubnub.channelGroup("news-feed")
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:42:25: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 35 | }
 36 |
 37 | func subscriptionSetAddRemoveExample() {
    |      `- note: add '@MainActor' to make global function 'subscriptionSetAddRemoveExample()' part of global actor 'MainActor'
 38 |   // snippet.subscription-set-add-remove
 39 |   // Create a reference to example channel entity
 40 |   let weatherChannelEntity = pubnub.channel("weather-updates")
 41 |   // Create a reference to example channel group entity
 42 |   let newsGroupEntity = pubnub.channelGroup("news-feed")
    |                         `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 43 |
 44 |   // Create a SubscriptionSet object from entities above
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:45:25: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 35 | }
 36 |
 37 | func subscriptionSetAddRemoveExample() {
    |      `- note: add '@MainActor' to make global function 'subscriptionSetAddRemoveExample()' part of global actor 'MainActor'
 38 |   // snippet.subscription-set-add-remove
 39 |   // Create a reference to example channel entity
    :
 43 |
 44 |   // Create a SubscriptionSet object from entities above
 45 |   let subscriptionSet = pubnub.subscription(entities: [weatherChannelEntity, newsGroupEntity])
    |                         `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 46 |
 47 |   // Create a subscription for another channel entity to demonstrate
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:49:28: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 35 | }
 36 |
 37 | func subscriptionSetAddRemoveExample() {
    |      `- note: add '@MainActor' to make global function 'subscriptionSetAddRemoveExample()' part of global actor 'MainActor'
 38 |   // snippet.subscription-set-add-remove
 39 |   // Create a reference to example channel entity
    :
 47 |   // Create a subscription for another channel entity to demonstrate
 48 |   // adding and removing to/from a SubscriptionSet
 49 |   let sportsSubscription = pubnub.channel("sports-scores").subscription()
    |                            `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 50 |
 51 |   // An example of how to add/remove a `sportsSubscription` to/from a SubscriptionSet
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:70:7: warning: initialization of immutable value 'clonedSubscriptionSet' was never used; consider replacing with assignment to '_' or removing it
 68 |     .subscription()
 69 |
 70 |   let clonedSubscriptionSet = subscriptionSet.clone()
    |       `- warning: initialization of immutable value 'clonedSubscriptionSet' was never used; consider replacing with assignment to '_' or removing it
 71 |   let clonedSubscription = subscription.clone()
 72 |   // snippet.end
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:71:7: warning: initialization of immutable value 'clonedSubscription' was never used; consider replacing with assignment to '_' or removing it
 69 |
 70 |   let clonedSubscriptionSet = subscriptionSet.clone()
 71 |   let clonedSubscription = subscription.clone()
    |       `- warning: initialization of immutable value 'clonedSubscription' was never used; consider replacing with assignment to '_' or removing it
 72 |   // snippet.end
 73 | }
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:62:25: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 58 | }
 59 |
 60 | func cloneExample() {
    |      `- note: add '@MainActor' to make global function 'cloneExample()' part of global actor 'MainActor'
 61 |   // snippet.clone
 62 |   let subscriptionSet = pubnub.subscription(
    |                         `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 63 |     entities: [pubnub.channel("channel"), pubnub.channelGroup("channelGroup")],
 64 |     options: ReceivePresenceEvents()
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:63:16: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 58 | }
 59 |
 60 | func cloneExample() {
    |      `- note: add '@MainActor' to make global function 'cloneExample()' part of global actor 'MainActor'
 61 |   // snippet.clone
 62 |   let subscriptionSet = pubnub.subscription(
 63 |     entities: [pubnub.channel("channel"), pubnub.channelGroup("channelGroup")],
    |                `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 64 |     options: ReceivePresenceEvents()
 65 |   )
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:63:43: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 58 | }
 59 |
 60 | func cloneExample() {
    |      `- note: add '@MainActor' to make global function 'cloneExample()' part of global actor 'MainActor'
 61 |   // snippet.clone
 62 |   let subscriptionSet = pubnub.subscription(
 63 |     entities: [pubnub.channel("channel"), pubnub.channelGroup("channelGroup")],
    |                                           `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 64 |     options: ReceivePresenceEvents()
 65 |   )
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:66:22: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 58 | }
 59 |
 60 | func cloneExample() {
    |      `- note: add '@MainActor' to make global function 'cloneExample()' part of global actor 'MainActor'
 61 |   // snippet.clone
 62 |   let subscriptionSet = pubnub.subscription(
    :
 64 |     options: ReceivePresenceEvents()
 65 |   )
 66 |   let subscription = pubnub
    |                      `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 67 |     .channel("channelName")
 68 |     .subscription()
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:76:25: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 73 | }
 74 |
 75 | func unsubscribeExample() {
    |      `- note: add '@MainActor' to make global function 'unsubscribeExample()' part of global actor 'MainActor'
 76 |   let subscriptionSet = pubnub.subscription(
    |                         `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 77 |     entities: [pubnub.channel("channel"), pubnub.channelGroup("channelGroup")],
 78 |     options: ReceivePresenceEvents()
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:77:16: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 73 | }
 74 |
 75 | func unsubscribeExample() {
    |      `- note: add '@MainActor' to make global function 'unsubscribeExample()' part of global actor 'MainActor'
 76 |   let subscriptionSet = pubnub.subscription(
 77 |     entities: [pubnub.channel("channel"), pubnub.channelGroup("channelGroup")],
    |                `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 78 |     options: ReceivePresenceEvents()
 79 |   )
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:77:43: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 73 | }
 74 |
 75 | func unsubscribeExample() {
    |      `- note: add '@MainActor' to make global function 'unsubscribeExample()' part of global actor 'MainActor'
 76 |   let subscriptionSet = pubnub.subscription(
 77 |     entities: [pubnub.channel("channel"), pubnub.channelGroup("channelGroup")],
    |                                           `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 78 |     options: ReceivePresenceEvents()
 79 |   )
/Users/admin/builder/spi-builder-workspace/Snippets/SubscribeNew/subscriptions.swift:80:22: warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 16 | // snippet.pubnub
 17 | // Initializes a PubNub object with the configuration
 18 | let pubnub = PubNub(
    |     `- note: let declared here
 19 |   configuration: PubNubConfiguration(
 20 |     publishKey: "demo",
    :
 73 | }
 74 |
 75 | func unsubscribeExample() {
    |      `- note: add '@MainActor' to make global function 'unsubscribeExample()' part of global actor 'MainActor'
 76 |   let subscriptionSet = pubnub.subscription(
 77 |     entities: [pubnub.channel("channel"), pubnub.channelGroup("channelGroup")],
 78 |     options: ReceivePresenceEvents()
 79 |   )
 80 |   let subscription = pubnub
    |                      `- warning: main actor-isolated let 'pubnub' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
 81 |     .channel("channelName")
 82 |     .subscription()
[250/288] Emitting module subscriptions
[250/288] Write Objects.LinkFileList
[253/302] Emitting module publish
[254/302] Compiling publish publish.swift
[255/302] Compiling listeners_old listeners-old.swift
/Users/admin/builder/spi-builder-workspace/Snippets/ListenersOld/listeners-old.swift:134:63: warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
132 |
133 |     case .membershipMetadataSet(let membership):
134 |       print("Membership established between UUID \(membership.uuidMetadataId) and channel \(membership.channelMetadataId).")
    |                                                               |- warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
    |                                                               `- note: use 'userMetadataId' instead
135 |
136 |     case .membershipMetadataRemoved(let membership):
/Users/admin/builder/spi-builder-workspace/Snippets/ListenersOld/listeners-old.swift:137:59: warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
135 |
136 |     case .membershipMetadataRemoved(let membership):
137 |       print("Membership removed between UUID \(membership.uuidMetadataId) and channel \(membership.channelMetadataId).")
    |                                                           |- warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
    |                                                           `- note: use 'userMetadataId' instead
138 |
139 |     case .messageActionAdded(let messageAction):
/Users/admin/builder/spi-builder-workspace/Snippets/ListenersOld/listeners-old.swift:76:47: warning: immutable value 'groups' was never used; consider replacing with '_' or removing it
 74 |     case .connectionStatusChanged(let connectionChange):
 75 |       switch connectionChange {
 76 |       case let .subscriptionChanged(channels, groups):
    |                                               `- warning: immutable value 'groups' was never used; consider replacing with '_' or removing it
 77 |         print("The SDK has subscribed to new channels or channel groups after the initial connection")
 78 |         print("Currently subscribed channels: \(channels)")
[256/302] Emitting module listeners_old
/Users/admin/builder/spi-builder-workspace/Snippets/ListenersOld/listeners-old.swift:134:63: warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
132 |
133 |     case .membershipMetadataSet(let membership):
134 |       print("Membership established between UUID \(membership.uuidMetadataId) and channel \(membership.channelMetadataId).")
    |                                                               |- warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
    |                                                               `- note: use 'userMetadataId' instead
135 |
136 |     case .membershipMetadataRemoved(let membership):
/Users/admin/builder/spi-builder-workspace/Snippets/ListenersOld/listeners-old.swift:137:59: warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
135 |
136 |     case .membershipMetadataRemoved(let membership):
137 |       print("Membership removed between UUID \(membership.uuidMetadataId) and channel \(membership.channelMetadataId).")
    |                                                           |- warning: 'uuidMetadataId' is deprecated: renamed to 'userMetadataId'
    |                                                           `- note: use 'userMetadataId' instead
138 |
139 |     case .messageActionAdded(let messageAction):
/Users/admin/builder/spi-builder-workspace/Snippets/ListenersOld/listeners-old.swift:76:47: warning: immutable value 'groups' was never used; consider replacing with '_' or removing it
 74 |     case .connectionStatusChanged(let connectionChange):
 75 |       switch connectionChange {
 76 |       case let .subscriptionChanged(channels, groups):
    |                                               `- warning: immutable value 'groups' was never used; consider replacing with '_' or removing it
 77 |         print("The SDK has subscribed to new channels or channel groups after the initial connection")
 78 |         print("Currently subscribed channels: \(channels)")
[256/302] Write Objects.LinkFileList
[259/302] Emitting module entities
/Users/admin/builder/spi-builder-workspace/Snippets/Entities/entities.swift:22:8: warning: result of call to 'channel' is unused
20 |
21 | // snippet.channel-entity
22 | pubnub.channel("channelName")
   |        `- warning: result of call to 'channel' is unused
23 | // snippet.end
24 |
/Users/admin/builder/spi-builder-workspace/Snippets/Entities/entities.swift:26:8: warning: result of call to 'channelGroup' is unused
24 |
25 | // snippet.channel-group-entity
26 | pubnub.channelGroup("channelGroupName")
   |        `- warning: result of call to 'channelGroup' is unused
27 | // snippet.end
28 |
/Users/admin/builder/spi-builder-workspace/Snippets/Entities/entities.swift:30:8: warning: result of call to 'channelMetadata' is unused
28 |
29 | // snippet.channel-metadata-entity
30 | pubnub.channelMetadata("channelMetadataName")
   |        `- warning: result of call to 'channelMetadata' is unused
31 | // snippet.end
32 |
/Users/admin/builder/spi-builder-workspace/Snippets/Entities/entities.swift:34:8: warning: result of call to 'userMetadata' is unused
32 |
33 | // snippet.user-metadata-entity
34 | pubnub.userMetadata("userMetadataName")
   |        `- warning: result of call to 'userMetadata' is unused
35 | // snippet.end
36 |
[260/302] Compiling entities entities.swift
/Users/admin/builder/spi-builder-workspace/Snippets/Entities/entities.swift:22:8: warning: result of call to 'channel' is unused
20 |
21 | // snippet.channel-entity
22 | pubnub.channel("channelName")
   |        `- warning: result of call to 'channel' is unused
23 | // snippet.end
24 |
/Users/admin/builder/spi-builder-workspace/Snippets/Entities/entities.swift:26:8: warning: result of call to 'channelGroup' is unused
24 |
25 | // snippet.channel-group-entity
26 | pubnub.channelGroup("channelGroupName")
   |        `- warning: result of call to 'channelGroup' is unused
27 | // snippet.end
28 |
/Users/admin/builder/spi-builder-workspace/Snippets/Entities/entities.swift:30:8: warning: result of call to 'channelMetadata' is unused
28 |
29 | // snippet.channel-metadata-entity
30 | pubnub.channelMetadata("channelMetadataName")
   |        `- warning: result of call to 'channelMetadata' is unused
31 | // snippet.end
32 |
/Users/admin/builder/spi-builder-workspace/Snippets/Entities/entities.swift:34:8: warning: result of call to 'userMetadata' is unused
32 |
33 | // snippet.user-metadata-entity
34 | pubnub.userMetadata("userMetadataName")
   |        `- warning: result of call to 'userMetadata' is unused
35 | // snippet.end
36 |
[261/302] Compiling access_manager access-manager.swift
/Users/admin/builder/spi-builder-workspace/Snippets/AccessManager/access-manager.swift:35:8: warning: result of call to 'parse(token:)' is unused
33 | // snippet.parse-token
34 | // Parse an existing token
35 | pubnub.parse(token: "#yourAuthToken")
   |        `- warning: result of call to 'parse(token:)' is unused
36 | // snippet.end
37 |
[262/302] Emitting module access_manager
/Users/admin/builder/spi-builder-workspace/Snippets/AccessManager/access-manager.swift:35:8: warning: result of call to 'parse(token:)' is unused
33 | // snippet.parse-token
34 | // Parse an existing token
35 | pubnub.parse(token: "#yourAuthToken")
   |        `- warning: result of call to 'parse(token:)' is unused
36 | // snippet.end
37 |
[263/302] Emitting module configuration
[264/302] Compiling configuration configuration.swift
/Users/admin/builder/spi-builder-workspace/Snippets/Configuration/configuration.swift:27:7: warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 25 |
 26 |   // Creates a PubNub instance with the configuration specified above
 27 |   let pubnub = PubNub(
    |       `- warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 28 |     configuration: configuration
 29 |   )
/Users/admin/builder/spi-builder-workspace/Snippets/Configuration/configuration.swift:36:7: warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 34 |   // snippet.crypto-module
 35 |   // Uses 256-bit AES-CBC encryption (recommended) with backward compatibility for legacy encryption
 36 |   let pubnub = PubNub(
    |       `- warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 37 |     configuration: PubNubConfiguration(
 38 |       publishKey: "demo",
/Users/admin/builder/spi-builder-workspace/Snippets/Configuration/configuration.swift:50:7: warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 48 |   // snippet.legacy-crypto-module
 49 |   // Uses a legacy encryption mechanism (128-bit cipher key entropy) that is no longer recommended
 50 |   let pubnub = PubNub(
    |       `- warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 51 |     configuration: PubNubConfiguration(
 52 |       publishKey: "demo",
/Users/admin/builder/spi-builder-workspace/Snippets/Configuration/configuration.swift:83:7: warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 81 |
 82 |   // Creates a PubNub instance with retry mechanism enabled
 83 |   let pubnub = PubNub(
    |       `- warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
 84 |     configuration: PubNubConfiguration(
 85 |       publishKey: "demo",
/Users/admin/builder/spi-builder-workspace/Snippets/Configuration/configuration.swift:102:7: warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
100 |   )
101 |
102 |   let pubnub = PubNub(
    |       `- warning: initialization of immutable value 'pubnub' was never used; consider replacing with assignment to '_' or removing it
103 |     configuration: config
104 |   )
/Users/admin/builder/spi-builder-workspace/Snippets/Configuration/configuration.swift:140:7: warning: initialization of immutable value 'newPubNub' was never used; consider replacing with assignment to '_' or removing it
138 |   config.userId = "my_new_userId"
139 |   // Creating a new PubNub instance with the modified configuration
140 |   let newPubNub = PubNub(configuration: config)
    |       `- warning: initialization of immutable value 'newPubNub' was never used; consider replacing with assignment to '_' or removing it
141 |   // snippet.end
142 | }
[264/302] Write Objects.LinkFileList
[267/302] Compiling channel_group channel-group.swift
[268/302] Emitting module channel_group
[268/302] Write Objects.LinkFileList
[271/302] Compiling history history.swift
[272/302] Emitting module history
[273/302] Emitting module files
/Users/admin/builder/spi-builder-workspace/Snippets/Files/files.swift:43:22: warning: immutable value 'task' was never used; consider replacing with '_' or removing it
 41 | } completion: { result in
 42 |   switch result {
 43 |   case let .success((task, file, publishedAt)):
    |                      `- warning: immutable value 'task' was never used; consider replacing with '_' or removing it
 44 |     print("The file with an ID of \(file.fileId) was uploaded at \(publishedAt) timetoken)")
 45 |   case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Snippets/Files/files.swift:141:21: warning: 'init()' was deprecated in macOS 10.15: Please use NSURLSessionConfiguration.defaultSessionConfiguration or other class methods to create instances
139 |   ),
140 |   fileSession: URLSession(
141 |     configuration: .init(),
    |                     `- warning: 'init()' was deprecated in macOS 10.15: Please use NSURLSessionConfiguration.defaultSessionConfiguration or other class methods to create instances
142 |     delegate: FileSessionManager(),
143 |     delegateQueue: nil
[274/302] Compiling files files.swift
/Users/admin/builder/spi-builder-workspace/Snippets/Files/files.swift:43:22: warning: immutable value 'task' was never used; consider replacing with '_' or removing it
 41 | } completion: { result in
 42 |   switch result {
 43 |   case let .success((task, file, publishedAt)):
    |                      `- warning: immutable value 'task' was never used; consider replacing with '_' or removing it
 44 |     print("The file with an ID of \(file.fileId) was uploaded at \(publishedAt) timetoken)")
 45 |   case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Snippets/Files/files.swift:141:21: warning: 'init()' was deprecated in macOS 10.15: Please use NSURLSessionConfiguration.defaultSessionConfiguration or other class methods to create instances
139 |   ),
140 |   fileSession: URLSession(
141 |     configuration: .init(),
    |                     `- warning: 'init()' was deprecated in macOS 10.15: Please use NSURLSessionConfiguration.defaultSessionConfiguration or other class methods to create instances
142 |     delegate: FileSessionManager(),
143 |     delegateQueue: nil
[274/302] Write Objects.LinkFileList
[277/302] Emitting module app_context
[278/302] Compiling app_context app-context.swift
[278/302] Linking subscribe-unsubscribe-old
[279/302] Write Objects.LinkFileList
[281/302] Linking subscriptions
[282/302] Linking push-notifications
[283/302] Write Objects.LinkFileList
[285/302] Linking pubnub
[286/302] Linking presence
[286/302] Write Objects.LinkFileList
[290/302] Linking publish
[291/302] Linking misc
[292/302] Linking logging
[293/302] Linking message-actions
[294/302] Linking listeners-old
[295/302] Linking history
[296/302] Linking files
[297/302] Linking entities
[298/302] Linking channel-group
[299/302] Linking configuration
[300/302] Linking app-context
[301/302] Linking access-manager
Build complete! (13.98s)
warning: 'spi-builder-workspace': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Sources/PubNub/PubNub_Info.plist
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "PubNubSDK",
  "name" : "PubNubSDK",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "4.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "PubNubSDK",
      "targets" : [
        "PubNubSDK"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "PubNubUser",
      "targets" : [
        "PubNubUser"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "PubNubSpace",
      "targets" : [
        "PubNubSpace"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "PubNubMembership",
      "targets" : [
        "PubNubMembership"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "misc",
      "targets" : [
        "misc"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "configuration",
      "targets" : [
        "configuration"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "subscribe-unsubscribe-old",
      "targets" : [
        "subscribe-unsubscribe-old"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "access-manager",
      "targets" : [
        "access-manager"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "listeners-old",
      "targets" : [
        "listeners-old"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "pubnub",
      "targets" : [
        "pubnub"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "push-notifications",
      "targets" : [
        "push-notifications"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "publish",
      "targets" : [
        "publish"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "presence",
      "targets" : [
        "presence"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "history",
      "targets" : [
        "history"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "app-context",
      "targets" : [
        "app-context"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "files",
      "targets" : [
        "files"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "channel-group",
      "targets" : [
        "channel-group"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "subscriptions",
      "targets" : [
        "subscriptions"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "logging",
      "targets" : [
        "logging"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "entities",
      "targets" : [
        "entities"
      ],
      "type" : {
        "snippet" : null
      }
    },
    {
      "name" : "message-actions",
      "targets" : [
        "message-actions"
      ],
      "type" : {
        "snippet" : null
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "PubNubUser",
      "module_type" : "SwiftTarget",
      "name" : "PubNubUser",
      "path" : "PubNubUser/Sources",
      "product_memberships" : [
        "PubNubUser",
        "PubNubMembership",
        "misc",
        "configuration",
        "subscribe-unsubscribe-old",
        "access-manager",
        "listeners-old",
        "pubnub",
        "push-notifications",
        "publish",
        "presence",
        "history",
        "app-context",
        "files",
        "channel-group",
        "subscriptions",
        "logging",
        "entities",
        "message-actions"
      ],
      "sources" : [
        "Patcher+PubNubUser.swift",
        "PubNubUser.swift",
        "PubNubUserEvent.swift",
        "User+PubNub.swift"
      ],
      "target_dependencies" : [
        "PubNubSDK"
      ],
      "type" : "library"
    },
    {
      "c99name" : "PubNubTests",
      "module_type" : "SwiftTarget",
      "name" : "PubNubTests",
      "path" : "Tests/PubNubUnitTests",
      "sources" : [
        "EventEngine/DispatcherTests.swift",
        "EventEngine/EventEngineSubscriptionSessionStrategyTests.swift",
        "EventEngine/EventEngineTests.swift",
        "EventEngine/Presence/HeartbeatEffectTests.swift",
        "EventEngine/Presence/LeaveEffectTests.swift",
        "EventEngine/Presence/PresenceInputTests.swift",
        "EventEngine/Presence/PresenceTransitionTests.swift",
        "EventEngine/Presence/WaitEffectTests.swift",
        "EventEngine/Subscribe/EmitMessagesTests.swift",
        "EventEngine/Subscribe/EmitStatusTests.swift",
        "EventEngine/Subscribe/SubscribeEffectsTests.swift",
        "EventEngine/Subscribe/SubscribeInputTests.swift",
        "EventEngine/Subscribe/SubscribeTransitionTests.swift",
        "Extensions/Bool+PubNubTests.swift",
        "Extensions/Collection+PubNubTests.swift",
        "Extensions/Data+PubNubTests.swift",
        "Extensions/DateFormatter+PubNubTests.swift",
        "Extensions/DispatchQueue+PubNub.swift",
        "Extensions/Error+PubNubTests.swift",
        "Extensions/HTTPURLResponse+PubNubTests.swift",
        "Extensions/Int+PubNubTests.swift",
        "Extensions/OperationQueue+PubNubTests.swift",
        "Extensions/Set+PubNubTests.swift",
        "Extensions/String+PubNubTests.swift",
        "Extensions/URL+PubNubTests.swift",
        "Extensions/URLQueryItem+PubNubTests.swift",
        "Extensions/URLRequest+PubNubTests.swift",
        "Extensions/URLSessionConfiguration+PubNubTests.swift",
        "Helpers/AtomicTests.swift",
        "Helpers/ConstantsTests.swift",
        "Helpers/CryptoTests.swift",
        "Helpers/PAMTokenTests.swift",
        "Helpers/ValidatedTests.swift",
        "Helpers/WeakBoxTests.swift",
        "Helpers/XMLCodingTests.swift",
        "JSON/AnyJSON+CodableTests.swift",
        "JSON/AnyJSONTests.swift",
        "JSON/FlatJSONCodable+Test.swift",
        "Networking/Operators/AutomaticRetryTests.swift",
        "Networking/Operators/RequestIdOperatorTests.swift",
        "Networking/Operators/RequestMutatorTests.swift",
        "Networking/Operators/RequestRetrierTests.swift",
        "Networking/Routers/ChannelGroupEndpointTests.swift",
        "Networking/Routers/FileManagementRouterTests.swift",
        "Networking/Routers/HistoryRouterTests.swift",
        "Networking/Routers/MessageActionsRouterTests.swift",
        "Networking/Routers/ObjectsChannelRouterTests.swift",
        "Networking/Routers/ObjectsMembershipsRouterTests.swift",
        "Networking/Routers/ObjectsUserRouterTests.swift",
        "Networking/Routers/PresenceRouterTests.swift",
        "Networking/Routers/PublishRouterTests.swift",
        "Networking/Routers/PushRouterTests.swift",
        "Networking/Routers/SubscribeRouterTests.swift",
        "Networking/Routers/TimeRouterTests.swift",
        "Networking/Session+EndpointErrorTests.swift",
        "Networking/Session+URLErrorTests.swift",
        "PubNubConfigurationTests.swift",
        "PubNubTests.swift",
        "Push/PubNubPushTargetTests.swift",
        "Subscribe/API/SubscriptionSetTests.swift",
        "Subscribe/API/SubscriptionTests.swift",
        "Subscribe/Core/SessionStreamTests.swift",
        "Subscribe/Core/SubscribeSessionFactoryTests.swift",
        "Subscribe/Core/SubscriptionSessionTests.swift",
        "Subscribe/Legacy/EventStreamTests.swift",
        "Subscribe/Legacy/SubscriptionStreamTests.swift",
        "Subscribe/Mapping/SubscribeMessagesGeneratorTests.swift",
        "Support/EffectInvocation+Equatable.swift",
        "Support/ImportTestResource.swift",
        "Support/MockRequestOperators.swift",
        "Support/MockURLSession.swift",
        "Support/SessionStreamAwait.swift",
        "Support/TestLogWriter.swift",
        "Support/TestSetup.swift",
        "Support/XMLEncoder.swift"
      ],
      "target_dependencies" : [
        "PubNubSDK"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PubNubSpace",
      "module_type" : "SwiftTarget",
      "name" : "PubNubSpace",
      "path" : "PubNubSpace/Sources",
      "product_memberships" : [
        "PubNubSpace",
        "PubNubMembership",
        "misc",
        "configuration",
        "subscribe-unsubscribe-old",
        "access-manager",
        "listeners-old",
        "pubnub",
        "push-notifications",
        "publish",
        "presence",
        "history",
        "app-context",
        "files",
        "channel-group",
        "subscriptions",
        "logging",
        "entities",
        "message-actions"
      ],
      "sources" : [
        "Patcher+PubNubSpace.swift",
        "PubNubSpace.swift",
        "PubNubSpaceEvent.swift",
        "Space+PubNub.swift"
      ],
      "target_dependencies" : [
        "PubNubSDK"
      ],
      "type" : "library"
    },
    {
      "c99name" : "PubNubSDK",
      "module_type" : "SwiftTarget",
      "name" : "PubNubSDK",
      "path" : "Sources/PubNub",
      "product_memberships" : [
        "PubNubSDK",
        "PubNubUser",
        "PubNubSpace",
        "PubNubMembership",
        "misc",
        "configuration",
        "subscribe-unsubscribe-old",
        "access-manager",
        "listeners-old",
        "pubnub",
        "push-notifications",
        "publish",
        "presence",
        "history",
        "app-context",
        "files",
        "channel-group",
        "subscriptions",
        "logging",
        "entities",
        "message-actions"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/PubNub/PrivacyInfo.xcprivacy",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "APIs/ChannelGroups+PubNub.swift",
        "APIs/Crypto+PubNub.swift",
        "APIs/File+PubNub.swift",
        "APIs/History+PubNub.swift",
        "APIs/MessageActions+PubNub.swift",
        "APIs/Objects+PubNub.swift",
        "APIs/PAM+PubNub.swift",
        "APIs/Presence+PubNub.swift",
        "APIs/Publish+PubNub.swift",
        "APIs/Push+PubNub.swift",
        "APIs/Time+PubNub.swift",
        "DependencyContainer/DependencyContainer.swift",
        "Errors/ErrorDescription.swift",
        "Errors/PubNubError.swift",
        "EventEngine/Core/Dispatcher.swift",
        "EventEngine/Core/EffectHandler.swift",
        "EventEngine/Core/EventEngine.swift",
        "EventEngine/Core/TransitionProtocol.swift",
        "EventEngine/Presence/Effects/HeartbeatEffect.swift",
        "EventEngine/Presence/Effects/LeaveEffect.swift",
        "EventEngine/Presence/Effects/PresenceEffectFactory.swift",
        "EventEngine/Presence/Effects/WaitEffect.swift",
        "EventEngine/Presence/Helpers/PresenceHeartbeatRequest.swift",
        "EventEngine/Presence/Helpers/PresenceInput.swift",
        "EventEngine/Presence/Helpers/PresenceLeaveRequest.swift",
        "EventEngine/Presence/Presence.swift",
        "EventEngine/Presence/PresenceTransition.swift",
        "EventEngine/Presence/PubNubPresenceStateContainer.swift",
        "EventEngine/Subscribe/Effects/EmitMessagesEffect.swift",
        "EventEngine/Subscribe/Effects/EmitStatusEffect.swift",
        "EventEngine/Subscribe/Effects/SubscribeEffectFactory.swift",
        "EventEngine/Subscribe/Effects/SubscribeEffects.swift",
        "EventEngine/Subscribe/Helpers/SubscribeInput.swift",
        "EventEngine/Subscribe/Helpers/SubscribeRequest.swift",
        "EventEngine/Subscribe/Subscribe.swift",
        "EventEngine/Subscribe/SubscribeTransition.swift",
        "Extensions/Bool+PubNub.swift",
        "Extensions/Collection+PubNub.swift",
        "Extensions/Data+PubNub.swift",
        "Extensions/DateFormatter+PubNub.swift",
        "Extensions/DecodingError+PubNub.swift",
        "Extensions/DispatchQueue+PubNub.swift",
        "Extensions/Encodable+PubNub.swift",
        "Extensions/Error+PubNub.swift",
        "Extensions/FileManager+PubNub.swift",
        "Extensions/Float32+PubNub.swift",
        "Extensions/HTTPURLResponse+PubNub.swift",
        "Extensions/InputStream+PubNub.swift",
        "Extensions/Int+PubNub.swift",
        "Extensions/NSLocking+PubNub.swift",
        "Extensions/NSNumber+PubNub.swift",
        "Extensions/OperationQueue+PubNub.swift",
        "Extensions/Set+PubNub.swift",
        "Extensions/String+PubNub.swift",
        "Extensions/Thread+PubNub.swift",
        "Extensions/URL+PubNub.swift",
        "Extensions/URLQueryItem+PubNub.swift",
        "Extensions/URLRequest+PubNub.swift",
        "Extensions/URLSessionConfiguration+PubNub.swift",
        "Helpers/Atomic.swift",
        "Helpers/CBOR/CBORDecoder.swift",
        "Helpers/CBOR/CBORSerialization.swift",
        "Helpers/CaseAccessible.swift",
        "Helpers/Constants.swift",
        "Helpers/Crypto/Crypto.swift",
        "Helpers/Crypto/CryptoModule.swift",
        "Helpers/Crypto/Cryptors/AESCBCCryptor.swift",
        "Helpers/Crypto/Cryptors/Cryptor.swift",
        "Helpers/Crypto/Cryptors/LegacyCryptor.swift",
        "Helpers/Crypto/Header/CryptorHeader.swift",
        "Helpers/Crypto/Header/CryptorHeaderWithinStreamFinder.swift",
        "Helpers/Crypto/Miscellaneous/CryptoInputStream.swift",
        "Helpers/Crypto/Miscellaneous/CryptoStream.swift",
        "Helpers/Crypto/Miscellaneous/CryptorUtils.swift",
        "Helpers/Crypto/Miscellaneous/CryptorVector.swift",
        "Helpers/Crypto/Miscellaneous/Data+CommonCrypto.swift",
        "Helpers/OptionalChange.swift",
        "Helpers/PAMToken.swift",
        "Helpers/Streams/MultipartInputStream.swift",
        "Helpers/Typealias+PubNub.swift",
        "Helpers/Validated.swift",
        "Helpers/WeakBox.swift",
        "Helpers/XML/XMLDecoder.swift",
        "Helpers/XML/XMLSerialization.swift",
        "JSON/AnyJSON.swift",
        "JSON/AnyJSONType.swift",
        "JSON/FlatJSONCodable.swift",
        "JSON/JSONCodable.swift",
        "KMP/Helpers/Dictionary+ObjCRepresentable.swift",
        "KMP/Helpers/Int+NSNumber.swift",
        "KMP/Helpers/PubNub+URL.swift",
        "KMP/KMPPubNub+AppContext.swift",
        "KMP/KMPPubNub+ChannelGroups.swift",
        "KMP/KMPPubNub+Files.swift",
        "KMP/KMPPubNub+History.swift",
        "KMP/KMPPubNub+Listeners.swift",
        "KMP/KMPPubNub+MessageActions.swift",
        "KMP/KMPPubNub+Presence.swift",
        "KMP/KMPPubNub+Publish.swift",
        "KMP/KMPPubNub+Push.swift",
        "KMP/KMPPubNub+Subscribe.swift",
        "KMP/KMPPubNub+Time.swift",
        "KMP/KMPPubNub.swift",
        "KMP/Wrappers/KMPAnyJSON.swift",
        "KMP/Wrappers/KMPAppContextEventResult.swift",
        "KMP/Wrappers/KMPAppContextIncludeFields.swift",
        "KMP/Wrappers/KMPEntity.swift",
        "KMP/Wrappers/KMPError.swift",
        "KMP/Wrappers/KMPEventListener.swift",
        "KMP/Wrappers/KMPFetchMessagesResult.swift",
        "KMP/Wrappers/KMPFileChangeEvent.swift",
        "KMP/Wrappers/KMPHashedPage.swift",
        "KMP/Wrappers/KMPHereNowResult.swift",
        "KMP/Wrappers/KMPLogLevel.swift",
        "KMP/Wrappers/KMPMessage.swift",
        "KMP/Wrappers/KMPMessageAction.swift",
        "KMP/Wrappers/KMPPAMToken.swift",
        "KMP/Wrappers/KMPPresenceChange.swift",
        "KMP/Wrappers/KMPStatusListener.swift",
        "KMP/Wrappers/KMPSubscription.swift",
        "KMP/Wrappers/KMPUploadable.swift",
        "Logging/LogMessage.swift",
        "Logging/LogMessageConvertible.swift",
        "Logging/LogWriter.swift",
        "Logging/OSLogger+PubNub.swift",
        "Logging/PubNubLogger.swift",
        "Models/PubNubAPNSPayload.swift",
        "Models/PubNubChannelMetadata.swift",
        "Models/PubNubFCMPayload/FCMAndroidPayload.swift",
        "Models/PubNubFCMPayload/FCMWebpushPayload.swift",
        "Models/PubNubFCMPayload/PubNubFCMPayload.swift",
        "Models/PubNubFile.swift",
        "Models/PubNubMembershipMetadata.swift",
        "Models/PubNubMessage.swift",
        "Models/PubNubMessageAction.swift",
        "Models/PubNubObjectMetadataPatcher.swift",
        "Models/PubNubPage.swift",
        "Models/PubNubPresence.swift",
        "Models/PubNubPushMessage.swift",
        "Models/PubNubUserMetadata.swift",
        "Networking/Convertibles+PubNub.swift",
        "Networking/HTTPFileTask.swift",
        "Networking/HTTPRouter.swift",
        "Networking/HTTPSession.swift",
        "Networking/HTTPSessionDelegate.swift",
        "Networking/Replaceables+PubNub.swift",
        "Networking/Request/Operators/AutomaticRetry.swift",
        "Networking/Request/Operators/InstanceIdOperator.swift",
        "Networking/Request/Operators/RequestIdOperator.swift",
        "Networking/Request/Request.swift",
        "Networking/Request/RequestOperator.swift",
        "Networking/Response/EndpointResponse.swift",
        "Networking/Response/GenericServicePayloadResponse.swift",
        "Networking/Response/ResponseOperator.swift",
        "Networking/Routers/ChannelGroupsRouter.swift",
        "Networking/Routers/FileManagementRouter.swift",
        "Networking/Routers/HistoryRouter.swift",
        "Networking/Routers/MessageActionsRouter.swift",
        "Networking/Routers/ObjectsChannelRouter.swift",
        "Networking/Routers/ObjectsMembershipsRouter.swift",
        "Networking/Routers/ObjectsUserRouter.swift",
        "Networking/Routers/PresenceRouter.swift",
        "Networking/Routers/PublishRouter.swift",
        "Networking/Routers/PushRouter.swift",
        "Networking/Routers/Subscribe Payloads/SubscribeMessageActionPayload.swift",
        "Networking/Routers/Subscribe Payloads/SubscribeObjectPayload.swift",
        "Networking/Routers/Subscribe Payloads/SubscribePresencePayload.swift",
        "Networking/Routers/SubscribeRouter.swift",
        "Networking/Routers/TimeRouter.swift",
        "Networking/Session/SessionStream.swift",
        "PropertyWrappers/BoundedValue.swift",
        "PubNub.swift",
        "PubNubConfiguration.swift",
        "Subscribe/API/EntityCreator.swift",
        "Subscribe/API/EntitySubscribable.swift",
        "Subscribe/API/EventListener.swift",
        "Subscribe/API/PubNubEvent.swift",
        "Subscribe/API/Subscribable.swift",
        "Subscribe/API/Subscription.swift",
        "Subscribe/API/SubscriptionListenersContainer.swift",
        "Subscribe/API/SubscriptionOptions.swift",
        "Subscribe/API/SubscriptionSet.swift",
        "Subscribe/Core/ConnectionStatus.swift",
        "Subscribe/Core/EventEngineSubscriptionSessionStrategy.swift",
        "Subscribe/Core/PubNubChannel.swift",
        "Subscribe/Core/SubscriptionSession.swift",
        "Subscribe/Core/SubscriptionSessionStrategy.swift",
        "Subscribe/Legacy/EventStream.swift",
        "Subscribe/Legacy/LegacySubscriptionSessionStrategy+Presence.swift",
        "Subscribe/Legacy/LegacySubscriptionSessionStrategy.swift",
        "Subscribe/Legacy/PubNubEntityEvent.swift",
        "Subscribe/Legacy/SubscriptionState.swift",
        "Subscribe/Legacy/SubscriptionStream.swift",
        "Subscribe/Mapping/SubscribeMessagePayload+PubNubEvent.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "PubNubMembership",
      "module_type" : "SwiftTarget",
      "name" : "PubNubMembership",
      "path" : "PubNubMembership/Sources",
      "product_memberships" : [
        "PubNubMembership",
        "misc",
        "configuration",
        "subscribe-unsubscribe-old",
        "access-manager",
        "listeners-old",
        "pubnub",
        "push-notifications",
        "publish",
        "presence",
        "history",
        "app-context",
        "files",
        "channel-group",
        "subscriptions",
        "logging",
        "entities",
        "message-actions"
      ],
      "sources" : [
        "Membership+PubNub.swift",
        "Patcher+PubNubMembership.swift",
        "PubNubMembership.swift",
        "PubNubMembershipEvent.swift"
      ],
      "target_dependencies" : [
        "PubNubSDK",
        "PubNubUser",
        "PubNubSpace"
      ],
      "type" : "library"
    },
    {
      "c99name" : "misc",
      "module_type" : "SwiftTarget",
      "name" : "misc",
      "path" : "Snippets/Misc",
      "product_memberships" : [
        "misc"
      ],
      "sources" : [
        "misc.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "configuration",
      "module_type" : "SwiftTarget",
      "name" : "configuration",
      "path" : "Snippets/Configuration",
      "product_memberships" : [
        "configuration"
      ],
      "sources" : [
        "configuration.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "subscribe_unsubscribe_old",
      "module_type" : "SwiftTarget",
      "name" : "subscribe-unsubscribe-old",
      "path" : "Snippets/SubscribeOld",
      "product_memberships" : [
        "subscribe-unsubscribe-old"
      ],
      "sources" : [
        "subscribe-unsubscribe-old.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "access_manager",
      "module_type" : "SwiftTarget",
      "name" : "access-manager",
      "path" : "Snippets/AccessManager",
      "product_memberships" : [
        "access-manager"
      ],
      "sources" : [
        "access-manager.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "listeners_old",
      "module_type" : "SwiftTarget",
      "name" : "listeners-old",
      "path" : "Snippets/ListenersOld",
      "product_memberships" : [
        "listeners-old"
      ],
      "sources" : [
        "listeners-old.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "pubnub",
      "module_type" : "SwiftTarget",
      "name" : "pubnub",
      "path" : "Snippets/PubNub",
      "product_memberships" : [
        "pubnub"
      ],
      "sources" : [
        "pubnub.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "push_notifications",
      "module_type" : "SwiftTarget",
      "name" : "push-notifications",
      "path" : "Snippets/Push",
      "product_memberships" : [
        "push-notifications"
      ],
      "sources" : [
        "push-notifications.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "publish",
      "module_type" : "SwiftTarget",
      "name" : "publish",
      "path" : "Snippets/Publish",
      "product_memberships" : [
        "publish"
      ],
      "sources" : [
        "publish.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "presence",
      "module_type" : "SwiftTarget",
      "name" : "presence",
      "path" : "Snippets/Presence",
      "product_memberships" : [
        "presence"
      ],
      "sources" : [
        "presence.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "history",
      "module_type" : "SwiftTarget",
      "name" : "history",
      "path" : "Snippets/History",
      "product_memberships" : [
        "history"
      ],
      "sources" : [
        "history.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "app_context",
      "module_type" : "SwiftTarget",
      "name" : "app-context",
      "path" : "Snippets/AppContext",
      "product_memberships" : [
        "app-context"
      ],
      "sources" : [
        "app-context.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "files",
      "module_type" : "SwiftTarget",
      "name" : "files",
      "path" : "Snippets/Files",
      "product_memberships" : [
        "files"
      ],
      "sources" : [
        "files.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "channel_group",
      "module_type" : "SwiftTarget",
      "name" : "channel-group",
      "path" : "Snippets/ChannelGroup",
      "product_memberships" : [
        "channel-group"
      ],
      "sources" : [
        "channel-group.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "subscriptions",
      "module_type" : "SwiftTarget",
      "name" : "subscriptions",
      "path" : "Snippets/SubscribeNew",
      "product_memberships" : [
        "subscriptions"
      ],
      "sources" : [
        "subscriptions.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "logging",
      "module_type" : "SwiftTarget",
      "name" : "logging",
      "path" : "Snippets/Logging",
      "product_memberships" : [
        "logging"
      ],
      "sources" : [
        "logging.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "entities",
      "module_type" : "SwiftTarget",
      "name" : "entities",
      "path" : "Snippets/Entities",
      "product_memberships" : [
        "entities"
      ],
      "sources" : [
        "entities.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    },
    {
      "c99name" : "message_actions",
      "module_type" : "SwiftTarget",
      "name" : "message-actions",
      "path" : "Snippets/MessageActions",
      "product_memberships" : [
        "message-actions"
      ],
      "sources" : [
        "message-actions.swift"
      ],
      "target_dependencies" : [
        "PubNubUser",
        "PubNubSpace",
        "PubNubSDK",
        "PubNubMembership"
      ],
      "type" : "snippet"
    }
  ],
  "tools_version" : "5.9"
}
Done.