The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of Media, reference master (0139f8), with Swift 6.0 for macOS (SPM) on 26 Feb 2025 12:24:32 UTC.

Swift 6 data race errors: 35

Build Command

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

Build Log

169 |                     }
170 |                 }
[106/121] Compiling MediaCore Video.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:17:16: warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
 17 |     static var videoManager: VideoManager = PHImageManager.default()
    |                |- warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'videoManager' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'videoManager' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |
 19 |     private var phAsset: PHAsset? { phAssetWrapper.value }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:148:13: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
146 |     func previewImage(at requestedTime: CMTime = .init(seconds: 1, preferredTimescale: 60), _ completion: @escaping (Result<UniversalImage, Swift.Error>) -> Void) {
147 |         DispatchQueue.global(qos: .userInitiated).async {
148 |             avAsset { avAssetResult in
    |             `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
149 |                 switch avAssetResult {
150 |                 case let .success(asset):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:244:56: warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
242 |             } else if let exportSession = exportSession {
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
    |                                                        `- warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
245 |                         completion(.failure(Error.unsupportedFileType))
246 |                         return
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video+ExportOptions.swift:19:19: note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
17 |     /// Represents the options for a `Video` export
18 |     ///
19 |     public struct ExportOptions {
   |                   `- note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
20 |         let outputURL: Media.URL<Video>
21 |         let quality: VideoExportQualityType
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:245:25: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
245 |                         completion(.failure(Error.unsupportedFileType))
    |                         |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
246 |                         return
247 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:249:21: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
247 |                     }
248 |
249 |                     exportSession.outputURL = exportOptions.outputURL.value
    |                     `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:33: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:80: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                                                                |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:256:32: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
254 |
255 |                     exportSession.exportAsynchronously {
256 |                         switch exportSession.status {
    |                                `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:258:29: warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
256 |                         switch exportSession.status {
257 |                         case .completed:
258 |                             timer.invalidate()
    |                             `- warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
259 |                             completion(.success(()))
260 |                         case .failed:
Foundation.Timer:1:12: note: class 'Timer' does not conform to the 'Sendable' protocol
 1 | open class Timer : NSObject {
   |            `- note: class 'Timer' does not conform to the 'Sendable' protocol
 2 |     public /*not inherited*/ init(timeInterval ti: TimeInterval, invocation: NSInvocation, repeats yesOrNo: Bool)
 3 |     @available(*, unavailable, renamed: "init(timeInterval:invocation:repeats:)", message: "Not available in Swift")
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:259:29: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
259 |                             completion(.success(()))
    |                             |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
260 |                         case .failed:
261 |                             timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:17: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:62: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                                                              `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:357:57: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
356 |                                               timer: timer,
357 |                                               progress: progress)
    |                                                         |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
358 |             }
359 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:18:23: warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     ///
17 |     @FetchAssets(sort: [Media.Sort(key: .creationDate, ascending: false)])
18 |     public static var all: [Video]
   |                       |- warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'all' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 |     /// All streams in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:25:23: warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
23 |     @FetchAssets(filter: [.mediaSubtypes([.streamed])],
24 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
25 |     public static var streams: [Video]
   |                       |- warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'streams' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'streams' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     /// All high frame rate videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:32:23: warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |     @FetchAssets(filter: [.mediaSubtypes([.highFrameRate])],
31 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
32 |     public static var highFrameRates: [Video]
   |                       |- warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'highFrameRates' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'highFrameRates' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// All timelapse videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:39:23: warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |     @FetchAssets(filter: [.mediaSubtypes([.timelapse])],
38 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
39 |     public static var timelapses: [Video]
   |                       |- warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'timelapses' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'timelapses' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | }
41 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:16:14: warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
14 |     enum Error: Swift.Error {
15 |         /// Thrown if the given input could not be added
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
   |              `- warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
AVFoundation.AVCaptureDeviceInput:2:12: note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureDeviceInput : AVCaptureInput {
   |            `- note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable, message: "superseded by import of -[AVCaptureDeviceInput initWithDevice:error:]")
 4 |     public convenience init(device: AVCaptureDevice) throws
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 6 | //
 7 |
 8 | import AVFoundation
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 9 |
10 | @available(iOS 10, *)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:18:14: warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
   |              `- warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
19 |         /// Thrown if there is no default audio device
20 |         case noDefaultAudioDevice
AVFoundation.AVCaptureOutput:2:12: note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureOutput : NSObject {
   |            `- note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:36: warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                                    |- warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'copyCGImageResult' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:168:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
166 |                 case let .failure(error):
167 |                     DispatchQueue.main.async {
168 |                         completion(.failure(error))
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
169 |                     }
170 |                 }
[107/121] Compiling MediaCore Videos.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:17:16: warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
 17 |     static var videoManager: VideoManager = PHImageManager.default()
    |                |- warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'videoManager' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'videoManager' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |
 19 |     private var phAsset: PHAsset? { phAssetWrapper.value }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:148:13: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
146 |     func previewImage(at requestedTime: CMTime = .init(seconds: 1, preferredTimescale: 60), _ completion: @escaping (Result<UniversalImage, Swift.Error>) -> Void) {
147 |         DispatchQueue.global(qos: .userInitiated).async {
148 |             avAsset { avAssetResult in
    |             `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
149 |                 switch avAssetResult {
150 |                 case let .success(asset):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:244:56: warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
242 |             } else if let exportSession = exportSession {
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
    |                                                        `- warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
245 |                         completion(.failure(Error.unsupportedFileType))
246 |                         return
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video+ExportOptions.swift:19:19: note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
17 |     /// Represents the options for a `Video` export
18 |     ///
19 |     public struct ExportOptions {
   |                   `- note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
20 |         let outputURL: Media.URL<Video>
21 |         let quality: VideoExportQualityType
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:245:25: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
245 |                         completion(.failure(Error.unsupportedFileType))
    |                         |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
246 |                         return
247 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:249:21: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
247 |                     }
248 |
249 |                     exportSession.outputURL = exportOptions.outputURL.value
    |                     `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:33: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:80: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                                                                |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:256:32: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
254 |
255 |                     exportSession.exportAsynchronously {
256 |                         switch exportSession.status {
    |                                `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:258:29: warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
256 |                         switch exportSession.status {
257 |                         case .completed:
258 |                             timer.invalidate()
    |                             `- warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
259 |                             completion(.success(()))
260 |                         case .failed:
Foundation.Timer:1:12: note: class 'Timer' does not conform to the 'Sendable' protocol
 1 | open class Timer : NSObject {
   |            `- note: class 'Timer' does not conform to the 'Sendable' protocol
 2 |     public /*not inherited*/ init(timeInterval ti: TimeInterval, invocation: NSInvocation, repeats yesOrNo: Bool)
 3 |     @available(*, unavailable, renamed: "init(timeInterval:invocation:repeats:)", message: "Not available in Swift")
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:259:29: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
259 |                             completion(.success(()))
    |                             |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
260 |                         case .failed:
261 |                             timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:17: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:62: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                                                              `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:357:57: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
356 |                                               timer: timer,
357 |                                               progress: progress)
    |                                                         |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
358 |             }
359 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:18:23: warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     ///
17 |     @FetchAssets(sort: [Media.Sort(key: .creationDate, ascending: false)])
18 |     public static var all: [Video]
   |                       |- warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'all' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 |     /// All streams in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:25:23: warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
23 |     @FetchAssets(filter: [.mediaSubtypes([.streamed])],
24 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
25 |     public static var streams: [Video]
   |                       |- warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'streams' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'streams' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     /// All high frame rate videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:32:23: warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |     @FetchAssets(filter: [.mediaSubtypes([.highFrameRate])],
31 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
32 |     public static var highFrameRates: [Video]
   |                       |- warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'highFrameRates' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'highFrameRates' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// All timelapse videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:39:23: warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |     @FetchAssets(filter: [.mediaSubtypes([.timelapse])],
38 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
39 |     public static var timelapses: [Video]
   |                       |- warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'timelapses' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'timelapses' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | }
41 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:16:14: warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
14 |     enum Error: Swift.Error {
15 |         /// Thrown if the given input could not be added
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
   |              `- warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
AVFoundation.AVCaptureDeviceInput:2:12: note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureDeviceInput : AVCaptureInput {
   |            `- note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable, message: "superseded by import of -[AVCaptureDeviceInput initWithDevice:error:]")
 4 |     public convenience init(device: AVCaptureDevice) throws
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 6 | //
 7 |
 8 | import AVFoundation
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 9 |
10 | @available(iOS 10, *)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:18:14: warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
   |              `- warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
19 |         /// Thrown if there is no default audio device
20 |         case noDefaultAudioDevice
AVFoundation.AVCaptureOutput:2:12: note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureOutput : NSObject {
   |            `- note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:36: warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                                    |- warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'copyCGImageResult' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:168:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
166 |                 case let .failure(error):
167 |                     DispatchQueue.main.async {
168 |                         completion(.failure(error))
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
169 |                     }
170 |                 }
[108/121] Compiling MediaCore AVCaptureDevice+Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:17:16: warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
 17 |     static var videoManager: VideoManager = PHImageManager.default()
    |                |- warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'videoManager' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'videoManager' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |
 19 |     private var phAsset: PHAsset? { phAssetWrapper.value }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:148:13: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
146 |     func previewImage(at requestedTime: CMTime = .init(seconds: 1, preferredTimescale: 60), _ completion: @escaping (Result<UniversalImage, Swift.Error>) -> Void) {
147 |         DispatchQueue.global(qos: .userInitiated).async {
148 |             avAsset { avAssetResult in
    |             `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
149 |                 switch avAssetResult {
150 |                 case let .success(asset):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:244:56: warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
242 |             } else if let exportSession = exportSession {
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
    |                                                        `- warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
245 |                         completion(.failure(Error.unsupportedFileType))
246 |                         return
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video+ExportOptions.swift:19:19: note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
17 |     /// Represents the options for a `Video` export
18 |     ///
19 |     public struct ExportOptions {
   |                   `- note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
20 |         let outputURL: Media.URL<Video>
21 |         let quality: VideoExportQualityType
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:245:25: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
245 |                         completion(.failure(Error.unsupportedFileType))
    |                         |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
246 |                         return
247 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:249:21: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
247 |                     }
248 |
249 |                     exportSession.outputURL = exportOptions.outputURL.value
    |                     `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:33: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:80: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                                                                |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:256:32: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
254 |
255 |                     exportSession.exportAsynchronously {
256 |                         switch exportSession.status {
    |                                `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:258:29: warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
256 |                         switch exportSession.status {
257 |                         case .completed:
258 |                             timer.invalidate()
    |                             `- warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
259 |                             completion(.success(()))
260 |                         case .failed:
Foundation.Timer:1:12: note: class 'Timer' does not conform to the 'Sendable' protocol
 1 | open class Timer : NSObject {
   |            `- note: class 'Timer' does not conform to the 'Sendable' protocol
 2 |     public /*not inherited*/ init(timeInterval ti: TimeInterval, invocation: NSInvocation, repeats yesOrNo: Bool)
 3 |     @available(*, unavailable, renamed: "init(timeInterval:invocation:repeats:)", message: "Not available in Swift")
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:259:29: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
259 |                             completion(.success(()))
    |                             |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
260 |                         case .failed:
261 |                             timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:17: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:62: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                                                              `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:357:57: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
356 |                                               timer: timer,
357 |                                               progress: progress)
    |                                                         |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
358 |             }
359 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:18:23: warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     ///
17 |     @FetchAssets(sort: [Media.Sort(key: .creationDate, ascending: false)])
18 |     public static var all: [Video]
   |                       |- warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'all' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 |     /// All streams in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:25:23: warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
23 |     @FetchAssets(filter: [.mediaSubtypes([.streamed])],
24 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
25 |     public static var streams: [Video]
   |                       |- warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'streams' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'streams' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     /// All high frame rate videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:32:23: warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |     @FetchAssets(filter: [.mediaSubtypes([.highFrameRate])],
31 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
32 |     public static var highFrameRates: [Video]
   |                       |- warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'highFrameRates' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'highFrameRates' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// All timelapse videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:39:23: warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |     @FetchAssets(filter: [.mediaSubtypes([.timelapse])],
38 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
39 |     public static var timelapses: [Video]
   |                       |- warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'timelapses' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'timelapses' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | }
41 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:16:14: warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
14 |     enum Error: Swift.Error {
15 |         /// Thrown if the given input could not be added
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
   |              `- warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
AVFoundation.AVCaptureDeviceInput:2:12: note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureDeviceInput : AVCaptureInput {
   |            `- note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable, message: "superseded by import of -[AVCaptureDeviceInput initWithDevice:error:]")
 4 |     public convenience init(device: AVCaptureDevice) throws
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 6 | //
 7 |
 8 | import AVFoundation
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 9 |
10 | @available(iOS 10, *)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:18:14: warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
   |              `- warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
19 |         /// Thrown if there is no default audio device
20 |         case noDefaultAudioDevice
AVFoundation.AVCaptureOutput:2:12: note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureOutput : NSObject {
   |            `- note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:36: warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                                    |- warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'copyCGImageResult' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:168:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
166 |                 case let .failure(error):
167 |                     DispatchQueue.main.async {
168 |                         completion(.failure(error))
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
169 |                     }
170 |                 }
[109/121] Compiling MediaCore AVCaptureSession+Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:17:16: warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
 17 |     static var videoManager: VideoManager = PHImageManager.default()
    |                |- warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'videoManager' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'videoManager' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |
 19 |     private var phAsset: PHAsset? { phAssetWrapper.value }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:148:13: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
146 |     func previewImage(at requestedTime: CMTime = .init(seconds: 1, preferredTimescale: 60), _ completion: @escaping (Result<UniversalImage, Swift.Error>) -> Void) {
147 |         DispatchQueue.global(qos: .userInitiated).async {
148 |             avAsset { avAssetResult in
    |             `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
149 |                 switch avAssetResult {
150 |                 case let .success(asset):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:244:56: warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
242 |             } else if let exportSession = exportSession {
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
    |                                                        `- warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
245 |                         completion(.failure(Error.unsupportedFileType))
246 |                         return
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video+ExportOptions.swift:19:19: note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
17 |     /// Represents the options for a `Video` export
18 |     ///
19 |     public struct ExportOptions {
   |                   `- note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
20 |         let outputURL: Media.URL<Video>
21 |         let quality: VideoExportQualityType
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:245:25: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
245 |                         completion(.failure(Error.unsupportedFileType))
    |                         |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
246 |                         return
247 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:249:21: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
247 |                     }
248 |
249 |                     exportSession.outputURL = exportOptions.outputURL.value
    |                     `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:33: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:80: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                                                                |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:256:32: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
254 |
255 |                     exportSession.exportAsynchronously {
256 |                         switch exportSession.status {
    |                                `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:258:29: warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
256 |                         switch exportSession.status {
257 |                         case .completed:
258 |                             timer.invalidate()
    |                             `- warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
259 |                             completion(.success(()))
260 |                         case .failed:
Foundation.Timer:1:12: note: class 'Timer' does not conform to the 'Sendable' protocol
 1 | open class Timer : NSObject {
   |            `- note: class 'Timer' does not conform to the 'Sendable' protocol
 2 |     public /*not inherited*/ init(timeInterval ti: TimeInterval, invocation: NSInvocation, repeats yesOrNo: Bool)
 3 |     @available(*, unavailable, renamed: "init(timeInterval:invocation:repeats:)", message: "Not available in Swift")
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:259:29: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
259 |                             completion(.success(()))
    |                             |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
260 |                         case .failed:
261 |                             timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:17: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:62: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                                                              `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:357:57: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
356 |                                               timer: timer,
357 |                                               progress: progress)
    |                                                         |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
358 |             }
359 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:18:23: warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     ///
17 |     @FetchAssets(sort: [Media.Sort(key: .creationDate, ascending: false)])
18 |     public static var all: [Video]
   |                       |- warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'all' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 |     /// All streams in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:25:23: warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
23 |     @FetchAssets(filter: [.mediaSubtypes([.streamed])],
24 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
25 |     public static var streams: [Video]
   |                       |- warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'streams' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'streams' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     /// All high frame rate videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:32:23: warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |     @FetchAssets(filter: [.mediaSubtypes([.highFrameRate])],
31 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
32 |     public static var highFrameRates: [Video]
   |                       |- warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'highFrameRates' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'highFrameRates' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// All timelapse videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:39:23: warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |     @FetchAssets(filter: [.mediaSubtypes([.timelapse])],
38 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
39 |     public static var timelapses: [Video]
   |                       |- warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'timelapses' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'timelapses' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | }
41 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:16:14: warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
14 |     enum Error: Swift.Error {
15 |         /// Thrown if the given input could not be added
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
   |              `- warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
AVFoundation.AVCaptureDeviceInput:2:12: note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureDeviceInput : AVCaptureInput {
   |            `- note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable, message: "superseded by import of -[AVCaptureDeviceInput initWithDevice:error:]")
 4 |     public convenience init(device: AVCaptureDevice) throws
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 6 | //
 7 |
 8 | import AVFoundation
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 9 |
10 | @available(iOS 10, *)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:18:14: warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
   |              `- warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
19 |         /// Thrown if there is no default audio device
20 |         case noDefaultAudioDevice
AVFoundation.AVCaptureOutput:2:12: note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureOutput : NSObject {
   |            `- note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:36: warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                                    |- warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'copyCGImageResult' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:168:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
166 |                 case let .failure(error):
167 |                     DispatchQueue.main.async {
168 |                         completion(.failure(error))
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
169 |                     }
170 |                 }
[110/121] Compiling MediaCore PhotoCaptureProcessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:17:16: warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
 17 |     static var videoManager: VideoManager = PHImageManager.default()
    |                |- warning: static property 'videoManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'videoManager' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'videoManager' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |
 19 |     private var phAsset: PHAsset? { phAssetWrapper.value }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:148:13: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
146 |     func previewImage(at requestedTime: CMTime = .init(seconds: 1, preferredTimescale: 60), _ completion: @escaping (Result<UniversalImage, Swift.Error>) -> Void) {
147 |         DispatchQueue.global(qos: .userInitiated).async {
148 |             avAsset { avAssetResult in
    |             `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
149 |                 switch avAssetResult {
150 |                 case let .success(asset):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<UniversalImage, any Error>) -> Void' (aka '(Result<NSImage, any Error>) -> ()') in an isolated closure; this is an error in the Swift 6 language mode
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:244:56: warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
242 |             } else if let exportSession = exportSession {
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
    |                                                        `- warning: capture of 'exportOptions' with non-sendable type 'Video.ExportOptions' in a `@Sendable` closure
245 |                         completion(.failure(Error.unsupportedFileType))
246 |                         return
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video+ExportOptions.swift:19:19: note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
17 |     /// Represents the options for a `Video` export
18 |     ///
19 |     public struct ExportOptions {
   |                   `- note: consider making struct 'ExportOptions' conform to the 'Sendable' protocol
20 |         let outputURL: Media.URL<Video>
21 |         let quality: VideoExportQualityType
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:245:25: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
243 |                 exportSession.determineCompatibleFileTypes { compatibleFileTypes in
244 |                     guard compatibleFileTypes.contains(exportOptions.outputURL.fileType.avFileType) else {
245 |                         completion(.failure(Error.unsupportedFileType))
    |                         |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
246 |                         return
247 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:249:21: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
247 |                     }
248 |
249 |                     exportSession.outputURL = exportOptions.outputURL.value
    |                     `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:33: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:252:80: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
250 |                     exportSession.outputFileType = exportOptions.outputURL.fileType.avFileType
251 |
252 |                     let timer = self.createTimer(for: exportSession, progress: progress)
    |                                                                                |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                                                `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 |                     RunLoop.main.add(timer, forMode: .common)
254 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:256:32: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
254 |
255 |                     exportSession.exportAsynchronously {
256 |                         switch exportSession.status {
    |                                `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:258:29: warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
256 |                         switch exportSession.status {
257 |                         case .completed:
258 |                             timer.invalidate()
    |                             `- warning: capture of 'timer' with non-sendable type 'Timer' in a `@Sendable` closure
259 |                             completion(.success(()))
260 |                         case .failed:
Foundation.Timer:1:12: note: class 'Timer' does not conform to the 'Sendable' protocol
 1 | open class Timer : NSObject {
   |            `- note: class 'Timer' does not conform to the 'Sendable' protocol
 2 |     public /*not inherited*/ init(timeInterval ti: TimeInterval, invocation: NSInvocation, repeats yesOrNo: Bool)
 3 |     @available(*, unavailable, renamed: "init(timeInterval:invocation:repeats:)", message: "Not available in Swift")
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:259:29: warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
257 |                         case .completed:
258 |                             timer.invalidate()
259 |                             completion(.success(()))
    |                             |- warning: capture of 'completion' with non-sendable type 'ResultVoidCompletion' (aka '(Result<(), any Error>) -> ()') in a `@Sendable` closure
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
260 |                         case .failed:
261 |                             timer.invalidate()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:17: warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
 12 | /// `video`
 13 | ///
 14 | public struct Video: MediaProtocol {
    |               `- note: consider making struct 'Video' conform to the 'Sendable' protocol
 15 |     public typealias ProgressHandler = (Video.ExportProgress) -> Void
 16 |
    :
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                 `- warning: capture of 'self' with non-sendable type 'Video' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:355:62: warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
353 |         if #available(iOS 10, macOS 10.13, tvOS 10, *) {
354 |             timer = Timer(timeInterval: 1, repeats: true) { timer in
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
    |                                                              `- warning: capture of 'exportSession' with non-sendable type 'AVAssetExportSession' in a `@Sendable` closure
356 |                                               timer: timer,
357 |                                               progress: progress)
AVFoundation.AVAssetExportSession:2:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVAssetExportSession : NSObject {
   |            `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public convenience init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:357:57: warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
355 |                 self.handleProgressTimerFired(exportSession: exportSession,
356 |                                               timer: timer,
357 |                                               progress: progress)
    |                                                         |- warning: capture of 'progress' with non-sendable type 'Video.ProgressHandler' (aka '(Video.ExportProgress) -> ()') in a `@Sendable` closure
    |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
358 |             }
359 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:18:23: warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
16 |     ///
17 |     @FetchAssets(sort: [Media.Sort(key: .creationDate, ascending: false)])
18 |     public static var all: [Video]
   |                       |- warning: static property 'all' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'all' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 |     /// All streams in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:25:23: warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
23 |     @FetchAssets(filter: [.mediaSubtypes([.streamed])],
24 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
25 |     public static var streams: [Video]
   |                       |- warning: static property 'streams' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'streams' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'streams' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
26 |
27 |     /// All high frame rate videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:32:23: warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
30 |     @FetchAssets(filter: [.mediaSubtypes([.highFrameRate])],
31 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
32 |     public static var highFrameRates: [Video]
   |                       |- warning: static property 'highFrameRates' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'highFrameRates' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'highFrameRates' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 |
34 |     /// All timelapse videos in the library
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Videos.swift:39:23: warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 |     @FetchAssets(filter: [.mediaSubtypes([.timelapse])],
38 |                  sort: [Media.Sort(key: .creationDate, ascending: false)])
39 |     public static var timelapses: [Video]
   |                       |- warning: static property 'timelapses' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'timelapses' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: annotate 'timelapses' with '@MainActor' if property should only be accessed from the main actor
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | }
41 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:16:14: warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
14 |     enum Error: Swift.Error {
15 |         /// Thrown if the given input could not be added
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
   |              `- warning: associated value 'cannotAddInput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureDeviceInput'; this is an error in the Swift 6 language mode
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
AVFoundation.AVCaptureDeviceInput:2:12: note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureDeviceInput : AVCaptureInput {
   |            `- note: class 'AVCaptureDeviceInput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable, message: "superseded by import of -[AVCaptureDeviceInput initWithDevice:error:]")
 4 |     public convenience init(device: AVCaptureDevice) throws
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 6 | //
 7 |
 8 | import AVFoundation
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
 9 |
10 | @available(iOS 10, *)
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/internal/Capture/Extensions/AVCaptureSession+Error.swift:18:14: warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
16 |         case cannotAddInput(_ input: AVCaptureDeviceInput)
17 |         /// Thrown if the given output could not be added
18 |         case cannotAddOutput(_ output: AVCaptureOutput)
   |              `- warning: associated value 'cannotAddOutput' of 'Sendable'-conforming enum 'Error' has non-sendable type 'AVCaptureOutput'; this is an error in the Swift 6 language mode
19 |         /// Thrown if there is no default audio device
20 |         case noDefaultAudioDevice
AVFoundation.AVCaptureOutput:2:12: note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.7, *)
 2 | open class AVCaptureOutput : NSObject {
   |            `- note: class 'AVCaptureOutput' does not conform to the 'Sendable' protocol
 3 |     @available(*, unavailable)
 4 |     public init()
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:164:36: warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
162 |
163 |                     DispatchQueue.main.async {
164 |                         completion(copyCGImageResult)
    |                                    |- warning: sending 'copyCGImageResult' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: task-isolated 'copyCGImageResult' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
165 |                     }
166 |                 case let .failure(error):
/Users/admin/builder/spi-builder-workspace/Sources/MediaCore/API/Video/Video.swift:168:25: warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
166 |                 case let .failure(error):
167 |                     DispatchQueue.main.async {
168 |                         completion(.failure(error))
    |                         |- warning: sending 'completion' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: task-isolated 'completion' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
169 |                     }
170 |                 }
[111/121] Compiling MediaCore CaptureProcessor.swift
[112/121] Compiling MediaCore CaptureProcessorDelegate.swift
[113/121] Compiling MediaCore VideoRecorder.swift
[114/121] Compiling MediaCore OptionalString+compare.swift
[115/121] Compiling MediaCore CustomPatternMatching.swift
[116/121] Compiling MediaCore Pattern+mismatchs.swift
[117/121] Compiling MediaCore Pattern+unsupportedPathExtension.swift
[118/121] Compiling MediaCore PHAsset+anyMedia.swift
[119/121] Compiling MediaCore PHAssetChangeRequest+AssetChangeRequest.swift
[120/121] Compiling MediaCore PHFetchOptions.swift
[121/121] Compiling MediaCore PHImageManager+ImageManager.swift
[122/155] Compiling MediaSwiftUI MediaPicker.swift
[123/155] Compiling MediaSwiftUI MediaPickerValue.swift
[124/155] Compiling MediaSwiftUI PhotoView.swift
[125/155] Compiling MediaSwiftUI Video+SwiftUI.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
[126/155] Compiling MediaSwiftUI CameraViewCreator.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
[127/155] Compiling MediaSwiftUI AVCaptureVideoPreview.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
[128/155] Compiling MediaSwiftUI CameraView.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
[129/155] Compiling MediaSwiftUI PhotosUILivePhotoView.swift
[130/155] Compiling MediaSwiftUI Media+SwiftUI.swift
[131/155] Compiling MediaSwiftUI MediaSwiftUIAliases.swift
[132/155] Compiling MediaSwiftUI BrowserResult.swift
[133/158] Emitting module MediaSwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/internal/Models/Garbage.swift:11:16: warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | struct Garbage {
11 |     static var cancellables: [AnyCancellable] = []
   |                |- warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'cancellables' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'cancellables' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | }
13 |
[134/158] Compiling MediaSwiftUI MediaPicker+Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:18:47: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
16 |     public func loadLivePhoto() -> AnyPublisher<PHLivePhoto, Swift.Error> {
17 |         Future { promise in
18 |             guard self.canLoadObject(ofClass: PHLivePhoto.self) else {
   |                                               `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
19 |                 promise(.failure(Error.couldNotLoadObject(underlying: Error.unknown)))
20 |                 return
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:23:38: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
21 |             }
22 |
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
   |                                      `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:25:21: warning: capture of 'promise' with non-sendable type '(Result<PHLivePhoto, any Error>) -> Void' in a `@Sendable` closure
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
   |                     |- warning: capture of 'promise' with non-sendable type '(Result<PHLivePhoto, any Error>) -> Void' in a `@Sendable` closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
26 |                 } else if let livePhoto = livePhoto {
27 |                     promise(.success(livePhoto as! PHLivePhoto))
[135/158] Compiling MediaSwiftUI NSItemProvider+Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:18:47: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
16 |     public func loadLivePhoto() -> AnyPublisher<PHLivePhoto, Swift.Error> {
17 |         Future { promise in
18 |             guard self.canLoadObject(ofClass: PHLivePhoto.self) else {
   |                                               `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
19 |                 promise(.failure(Error.couldNotLoadObject(underlying: Error.unknown)))
20 |                 return
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:23:38: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
21 |             }
22 |
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
   |                                      `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:25:21: warning: capture of 'promise' with non-sendable type '(Result<PHLivePhoto, any Error>) -> Void' in a `@Sendable` closure
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
   |                     |- warning: capture of 'promise' with non-sendable type '(Result<PHLivePhoto, any Error>) -> Void' in a `@Sendable` closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
26 |                 } else if let livePhoto = livePhoto {
27 |                     promise(.success(livePhoto as! PHLivePhoto))
[136/158] Compiling MediaSwiftUI NSItemProvider+loadImage.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:18:47: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
16 |     public func loadLivePhoto() -> AnyPublisher<PHLivePhoto, Swift.Error> {
17 |         Future { promise in
18 |             guard self.canLoadObject(ofClass: PHLivePhoto.self) else {
   |                                               `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
19 |                 promise(.failure(Error.couldNotLoadObject(underlying: Error.unknown)))
20 |                 return
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:23:38: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
21 |             }
22 |
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
   |                                      `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:25:21: warning: capture of 'promise' with non-sendable type '(Result<PHLivePhoto, any Error>) -> Void' in a `@Sendable` closure
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
   |                     |- warning: capture of 'promise' with non-sendable type '(Result<PHLivePhoto, any Error>) -> Void' in a `@Sendable` closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
26 |                 } else if let livePhoto = livePhoto {
27 |                     promise(.success(livePhoto as! PHLivePhoto))
[137/158] Compiling MediaSwiftUI NSItemProvider+loadLivePhoto.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:18:47: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
16 |     public func loadLivePhoto() -> AnyPublisher<PHLivePhoto, Swift.Error> {
17 |         Future { promise in
18 |             guard self.canLoadObject(ofClass: PHLivePhoto.self) else {
   |                                               `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
19 |                 promise(.failure(Error.couldNotLoadObject(underlying: Error.unknown)))
20 |                 return
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:23:38: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
21 |             }
22 |
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
   |                                      `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:25:21: warning: capture of 'promise' with non-sendable type '(Result<PHLivePhoto, any Error>) -> Void' in a `@Sendable` closure
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
   |                     |- warning: capture of 'promise' with non-sendable type '(Result<PHLivePhoto, any Error>) -> Void' in a `@Sendable` closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
26 |                 } else if let livePhoto = livePhoto {
27 |                     promise(.success(livePhoto as! PHLivePhoto))
[138/158] Compiling MediaSwiftUI ActivityIndicatorView.swift
[139/158] Compiling MediaSwiftUI LivePhotoView.swift
[140/158] Compiling MediaSwiftUI MediaPicker+Coordinator.swift
[141/158] Compiling MediaSwiftUI VideoPreview.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/internal/Models/Garbage.swift:11:16: warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | struct Garbage {
11 |     static var cancellables: [AnyCancellable] = []
   |                |- warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'cancellables' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'cancellables' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | }
13 |
[142/158] Compiling MediaSwiftUI Garbage.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/internal/Models/Garbage.swift:11:16: warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | struct Garbage {
11 |     static var cancellables: [AnyCancellable] = []
   |                |- warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'cancellables' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'cancellables' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | }
13 |
[143/158] Compiling MediaSwiftUI ReferenceWrapper.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/internal/Models/Garbage.swift:11:16: warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | struct Garbage {
11 |     static var cancellables: [AnyCancellable] = []
   |                |- warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'cancellables' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'cancellables' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | }
13 |
[144/158] Compiling MediaSwiftUI ViewState.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/internal/Models/Garbage.swift:11:16: warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 9 |
10 | struct Garbage {
11 |     static var cancellables: [AnyCancellable] = []
   |                |- warning: static property 'cancellables' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'cancellables' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: annotate 'cancellables' with '@MainActor' if property should only be accessed from the main actor
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | }
13 |
[145/158] Compiling MediaSwiftUI NSItemProvider+loadVideo.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadVideo.swift:43:21: warning: capture of 'promise' with non-sendable type '(Result<URL, any Error>) -> Void' in a `@Sendable` closure
41 |                         return targetLocation
42 |                     }
43 |                     promise(result)
   |                     |- warning: capture of 'promise' with non-sendable type '(Result<URL, any Error>) -> Void' in a `@Sendable` closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
44 |                 } else {
45 |                     let error = error ?? Error.unknown
[146/158] Compiling MediaSwiftUI PHPicker.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadVideo.swift:43:21: warning: capture of 'promise' with non-sendable type '(Result<URL, any Error>) -> Void' in a `@Sendable` closure
41 |                         return targetLocation
42 |                     }
43 |                     promise(result)
   |                     |- warning: capture of 'promise' with non-sendable type '(Result<URL, any Error>) -> Void' in a `@Sendable` closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
44 |                 } else {
45 |                     let error = error ?? Error.unknown
[147/158] Compiling MediaSwiftUI Photo+Camera+Result.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadVideo.swift:43:21: warning: capture of 'promise' with non-sendable type '(Result<URL, any Error>) -> Void' in a `@Sendable` closure
41 |                         return targetLocation
42 |                     }
43 |                     promise(result)
   |                     |- warning: capture of 'promise' with non-sendable type '(Result<URL, any Error>) -> Void' in a `@Sendable` closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
44 |                 } else {
45 |                     let error = error ?? Error.unknown
[148/158] Compiling MediaSwiftUI Photo+SwiftUI.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadVideo.swift:43:21: warning: capture of 'promise' with non-sendable type '(Result<URL, any Error>) -> Void' in a `@Sendable` closure
41 |                         return targetLocation
42 |                     }
43 |                     promise(result)
   |                     |- warning: capture of 'promise' with non-sendable type '(Result<URL, any Error>) -> Void' in a `@Sendable` closure
   |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
44 |                 } else {
45 |                     let error = error ?? Error.unknown
[149/158] Compiling MediaSwiftUI Camera+Error.swift
[150/158] Compiling MediaSwiftUI Camera+Result.swift
[151/158] Compiling MediaSwiftUI Camera.swift
[152/158] Compiling MediaSwiftUI LivePhoto+SwiftUI.swift
[153/158] Compiling MediaSwiftUI ViewWrapper.swift
[154/158] Compiling MediaSwiftUI WeakObjectWrapper.swift
[155/158] Compiling MediaSwiftUI ViewCreator.swift
[156/158] Compiling MediaSwiftUI UniversalProgressView.swift
[157/158] Compiling MediaSwiftUI AVPlayerView.swift
[158/158] Compiling MediaSwiftUI VideoView.swift
Build complete! (22.68s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Media",
  "name" : "Media",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "MediaCore",
      "targets" : [
        "MediaCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MediaSwiftUI",
      "targets" : [
        "MediaCore",
        "MediaSwiftUI"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MediaTests",
      "module_type" : "SwiftTarget",
      "name" : "MediaTests",
      "path" : "Tests/MediaTests",
      "sources" : [
        "Capture/AVCaptureDeviceTests.swift",
        "Capture/VideoRecorderTests.swift",
        "Errors/PermissionErrorTests.swift",
        "Extensions/CFString+MediaTypesTests.swift",
        "Extensions/FileManagerTests.swift",
        "Extensions/OptionalString+compareTests.swift",
        "Extensions/PHAsset+anyMediaTests.swift",
        "Extensions/PHAuthorizationStatus+PermissionErrorTests.swift",
        "Extensions/PHFetchOptions+ConvenienceTests.swift",
        "Extensions/PhotoKitDictionaryTests.swift",
        "Extensions/UIImagePickerController+MediaTypeTests.swift",
        "Extensions/UIImagePickerController+supportedMediaTypesTests.swift",
        "Mocks/MockAVAssetExportSession.swift",
        "Mocks/MockAVCaptureMovieFileOutput.swift",
        "Mocks/MockAVMetadataItem.swift",
        "Mocks/MockCaptureProcessor.swift",
        "Mocks/MockCaptureProcessorDelegate.swift",
        "Mocks/MockImage.swift",
        "Mocks/MockImageManager.swift",
        "Mocks/MockLivePhotoManager.swift",
        "Mocks/MockPHAsset.swift",
        "Mocks/MockPHAssetChangeRequest.swift",
        "Mocks/MockPHAssetCollection.swift",
        "Mocks/MockPHAssetCollectionFetchResult.swift",
        "Mocks/MockPHAssetsFetchResult.swift",
        "Mocks/MockPHChange.swift",
        "Mocks/MockPHContentEditingInput.swift",
        "Mocks/MockPHLivePhoto.swift",
        "Mocks/MockPHObjectChangeDetails.swift",
        "Mocks/MockPHObjectPlaceholder.swift",
        "Mocks/MockPhotoLibrary.swift",
        "Mocks/MockPhotoLibraryChangeObserver.swift",
        "Mocks/MockPropertyWrapperExample.swift",
        "Mocks/MockUIImagePickerController.swift",
        "Mocks/MockVideoManager.swift",
        "Models/Album/AlbumFilterTests.swift",
        "Models/Album/AlbumIdentifierTests.swift",
        "Models/Album/AlbumTests.swift",
        "Models/Album/AlbumTypeTests.swift",
        "Models/Album/AlbumsTests.swift",
        "Models/Album/LazyAlbumTests.swift",
        "Models/AnyMedia+EquatableTests.swift",
        "Models/AnyMediaIdentifierTests.swift",
        "Models/AnyMediaTests.swift",
        "Models/Audio/AudioFileTypeTests.swift",
        "Models/Audio/AudioSubtypeTests.swift",
        "Models/Audio/AudioTests.swift",
        "Models/Audio/AudiosTests.swift",
        "Models/Audio/LazyAudiosTests.swift",
        "Models/Camera/CameraTests.swift",
        "Models/Enums/PhotoSubtypeTests.swift",
        "Models/LivePhoto/LazyLivePhotosTests.swift",
        "Models/LivePhoto/LivePhotoFileTypeTests.swift",
        "Models/LivePhoto/LivePhotoSubtypeTests.swift",
        "Models/LivePhoto/LivePhotoTests.swift",
        "Models/Media/MediaFilterTests.swift",
        "Models/Media/MediaIdentifierTests.swift",
        "Models/Media/MediaSwiftUITests.swift",
        "Models/Media/MediaTests.swift",
        "Models/Media/MediaURLTests.swift",
        "Models/PatternTests.swift",
        "Models/Photo/LazyPhotosTests.swift",
        "Models/Photo/PhotoFileTypeTests.swift",
        "Models/Photo/PhotoTests.swift",
        "Models/Photo/PhotosTests.swift",
        "Models/Video/LazyVideosTests.swift",
        "Models/Video/Video+ExportOptionsTests.swift",
        "Models/Video/Video+PropertiesTests.swift",
        "Models/Video/VideoExportQualityTests.swift",
        "Models/Video/VideoFileTypeTests.swift",
        "Models/Video/VideoSubtypeTests.swift",
        "Models/Video/VideoTests.swift",
        "Models/Video/VideosTests.swift",
        "Property wrappers/FetchAlbumTests.swift",
        "Property wrappers/FetchAssetTests.swift",
        "Services/AlbumFetcherTests.swift",
        "Services/CustomPhotoLibraryChangeObserverTests.swift",
        "Services/PHAssetChangerTests.swift",
        "Services/PHAssetFetcherTests.swift",
        "Services/PHChangerTests.swift",
        "Services/ViewCreatorTests.swift",
        "TimerWrapperTests.swift",
        "Views/MediaPickerCoordinatorTests.swift",
        "Views/MediaPickerTests.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "MediaSwiftUI"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MediaSwiftUI",
      "module_type" : "SwiftTarget",
      "name" : "MediaSwiftUI",
      "path" : "Sources/MediaSwiftUI",
      "product_memberships" : [
        "MediaSwiftUI"
      ],
      "sources" : [
        "API/Camera/Camera+Error.swift",
        "API/Camera/Camera+Result.swift",
        "API/Camera/Camera.swift",
        "API/LivePhoto/LivePhoto+SwiftUI.swift",
        "API/LivePhoto/PhotosUILivePhotoView.swift",
        "API/Media/Media+SwiftUI.swift",
        "API/MediaSwiftUIAliases.swift",
        "API/Models/BrowserResult.swift",
        "API/Models/Errors/MediaPicker+Error.swift",
        "API/PHPicker/NSItemProvider+Error.swift",
        "API/PHPicker/NSItemProvider+loadImage.swift",
        "API/PHPicker/NSItemProvider+loadLivePhoto.swift",
        "API/PHPicker/NSItemProvider+loadVideo.swift",
        "API/PHPicker/PHPicker.swift",
        "API/Photo/Photo+Camera+Result.swift",
        "API/Photo/Photo+SwiftUI.swift",
        "API/Video/Video+SwiftUI.swift",
        "internal/Capture/CameraViewCreator.swift",
        "internal/Capture/Views/AVCaptureVideoPreview.swift",
        "internal/Capture/Views/CameraView.swift",
        "internal/Capture/Views/VideoPreview.swift",
        "internal/Models/Garbage.swift",
        "internal/Models/ReferenceWrapper.swift",
        "internal/Models/ViewState.swift",
        "internal/Models/ViewWrapper.swift",
        "internal/Models/WeakObjectWrapper.swift",
        "internal/Services/ViewCreator.swift",
        "internal/Views/ActivityIndicatorView.swift",
        "internal/Views/LivePhoto/LivePhotoView.swift",
        "internal/Views/MediaPicker/MediaPicker+Coordinator.swift",
        "internal/Views/MediaPicker/MediaPicker.swift",
        "internal/Views/MediaPicker/MediaPickerValue.swift",
        "internal/Views/Photo/PhotoView.swift",
        "internal/Views/UniversalProgressView.swift",
        "internal/Views/Video/AVPlayerView.swift",
        "internal/Views/Video/VideoView.swift"
      ],
      "target_dependencies" : [
        "MediaCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MediaCore",
      "module_type" : "SwiftTarget",
      "name" : "MediaCore",
      "path" : "Sources/MediaCore",
      "product_memberships" : [
        "MediaCore",
        "MediaSwiftUI"
      ],
      "sources" : [
        "API/Album/Album+Error.swift",
        "API/Album/Album+Filter.swift",
        "API/Album/Album+Identifier.swift",
        "API/Album/Album+Metadata.swift",
        "API/Album/Album+SortKey.swift",
        "API/Album/Album.swift",
        "API/Album/AlbumType.swift",
        "API/Album/Albums.swift",
        "API/Album/LazyAlbum.swift",
        "API/Album/LazyAlbums.swift",
        "API/Audio/Audio+FileType.swift",
        "API/Audio/Audio+Metadata.swift",
        "API/Audio/Audio+Subtype.swift",
        "API/Audio/Audio.swift",
        "API/Audio/Audios.swift",
        "API/Audio/LazyAudios.swift",
        "API/Capture/Extensions/AVCaptureDevice+devices.swift",
        "API/Capture/Extensions/AVCaptureSession+add.swift",
        "API/Capture/Photograph.swift",
        "API/Extensions/AuthorizationStatus+PermissionError.swift",
        "API/Extensions/CoreServices/CFString+MediaTypes.swift",
        "API/Extensions/FileManager+directories.swift",
        "API/Extensions/PhotoKit/Dictionary+PhotoKit.swift",
        "API/Extensions/UIImagePickerController/UIImagePickerController+MediaType.swift",
        "API/Extensions/UIImagePickerController/UIImagePickerController+availableSourceType.swift",
        "API/Extensions/UIImagePickerController/UIImagePickerController+supportedMediaTypes.swift",
        "API/LivePhoto/LazyLivePhotos.swift",
        "API/LivePhoto/LivePhoto+FileType.swift",
        "API/LivePhoto/LivePhoto+Metadata.swift",
        "API/LivePhoto/LivePhoto+Subtype.swift",
        "API/LivePhoto/LivePhoto.swift",
        "API/LivePhoto/LivePhotos.swift",
        "API/LivePhoto/PHLivePhotoProtocol.swift",
        "API/Media/Media+DisplayRepresentation.swift",
        "API/Media/Media+Error.swift",
        "API/Media/Media+Identifier.swift",
        "API/Media/Media+URL+Error.swift",
        "API/Media/Media+URL.swift",
        "API/Media/Media.swift",
        "API/MediaCoreAliases.swift",
        "API/Models/AnyMedia/AnyMedia+Equatable.swift",
        "API/Models/AnyMedia/AnyMedia+Identifier+Equatable.swift",
        "API/Models/AnyMedia/AnyMedia+Identifier.swift",
        "API/Models/AnyMedia/AnyMedia.swift",
        "API/Models/Capture/LivePhotoData.swift",
        "API/Models/Errors/PermissionError.swift",
        "API/Models/Media+Filter.swift",
        "API/Models/Media+Quality.swift",
        "API/Models/Media+Sort.swift",
        "API/Models/Media+SortKey.swift",
        "API/Models/PHAssetWrapper.swift",
        "API/Models/UniversalImage.swift",
        "API/Photo/Media+LazyPhotos.swift",
        "API/Photo/Photo+Error.swift",
        "API/Photo/Photo+FileType.swift",
        "API/Photo/Photo+Metadata.swift",
        "API/Photo/Photo+Properties.swift",
        "API/Photo/Photo+Subtype.swift",
        "API/Photo/Photo.swift",
        "API/Photo/Photos.swift",
        "API/PropertyWrappers/FetchAlbum.swift",
        "API/PropertyWrappers/FetchAlbums.swift",
        "API/PropertyWrappers/FetchAllAssets.swift",
        "API/PropertyWrappers/FetchAsset.swift",
        "API/PropertyWrappers/FetchAssets.swift",
        "API/Protocols/AssetChangeRequest.swift",
        "API/Protocols/MediaProtocol.swift",
        "API/Protocols/MediaSubtypeProvider.swift",
        "API/Protocols/PathExtensionsProvider.swift",
        "API/Video/LazyVideos.swift",
        "API/Video/Video+Error.swift",
        "API/Video/Video+ExportOptions.swift",
        "API/Video/Video+ExportProgress.swift",
        "API/Video/Video+ExportQuality.swift",
        "API/Video/Video+ExportQualityMac.swift",
        "API/Video/Video+FileType.swift",
        "API/Video/Video+Metadata.swift",
        "API/Video/Video+Properties.swift",
        "API/Video/Video+Subtype.swift",
        "API/Video/Video.swift",
        "API/Video/Videos.swift",
        "internal/Capture/Extensions/AVCaptureDevice+Error.swift",
        "internal/Capture/Extensions/AVCaptureSession+Error.swift",
        "internal/Capture/PhotoCaptureProcessor.swift",
        "internal/Capture/Protocols/CaptureProcessor.swift",
        "internal/Capture/Protocols/CaptureProcessorDelegate.swift",
        "internal/Capture/VideoRecorder.swift",
        "internal/Extensions/OptionalString+compare.swift",
        "internal/Extensions/PatternMatching/CustomPatternMatching.swift",
        "internal/Extensions/PatternMatching/Pattern+mismatchs.swift",
        "internal/Extensions/PatternMatching/Pattern+unsupportedPathExtension.swift",
        "internal/Extensions/PhotoKit/PHAsset+anyMedia.swift",
        "internal/Extensions/PhotoKit/PHAssetChangeRequest+AssetChangeRequest.swift",
        "internal/Extensions/PhotoKit/PHFetchOptions.swift",
        "internal/Extensions/PhotoKit/PHImageManager+ImageManager.swift",
        "internal/Extensions/PhotoKit/PHImageManager+LivePhotoManager.swift",
        "internal/Extensions/PhotoKit/PHImageManager+VideoManager.swift",
        "internal/Extensions/PhotoKit/PHImageManager+handlePotentialDegradedResult.swift",
        "internal/Extensions/PhotoKit/PHImageManager+handleResult.swift",
        "internal/Extensions/PhotoKit/PHLivePhoto+PHLivePhotoProtocol.swift",
        "internal/Extensions/PhotoKit/PHPhotoLibrary+PhotoLibrary.swift",
        "internal/Extensions/UIImagePickerController/UIImagePickerController+MediaTypeError.swift",
        "internal/Models/PHAssetCollectionWrapper.swift",
        "internal/Models/Pattern.swift",
        "internal/Protocols/AVAssetExportPresetProvider.swift",
        "internal/Protocols/AnyMetadata.swift",
        "internal/Protocols/ImageManager.swift",
        "internal/Protocols/LivePhotoManager.swift",
        "internal/Protocols/PhotoLibrary.swift",
        "internal/Protocols/PhotoLibraryChangeObserver.swift",
        "internal/Protocols/VideoManager.swift",
        "internal/Services/AlbumFetcher.swift",
        "internal/Services/CustomPhotoLibraryChangeObserver.swift",
        "internal/Services/PHAssetChanger.swift",
        "internal/Services/PHAssetFetcher.swift",
        "internal/Services/PHChanger.swift",
        "internal/TimerWrapper.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
✅  Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path:  $PWD/.docs/chris-swift-dev/media/master
Repository:               chris-swift-dev/Media
Swift version used:       6.0
Target:                   MediaCore
Extracting symbol information for 'MediaCore'...
Finished extracting symbol information for 'MediaCore'. (6.72s)
Building documentation for 'MediaCore'...
warning: Parameter 'url' not found in type method declaration
   --> Sources/MediaCore/API/Photo/Photo.swift:254:11-254:45
252 |     ///
253 |     /// - Parameters:
254 +     ///   - url: the URL to the media object
    |           ╰─suggestion: Remove 'url' parameter documentation
255 |     ///   - completion: a closure which gets a `Result` (`Photo` on `success` or `Error` on `failure`)
256 |     ///
warning: Parameter 'mediaURL' is missing documentation
   --> Sources/MediaCore/API/Photo/Photo.swift:255:103-255:103
253 |     /// - Parameters:
254 |     ///   - url: the URL to the media object
255 +     ///   - completion: a closure which gets a `Result` (`Photo` on `success` or `Error` on `failure`)
    |           ╰─suggestion: Document 'mediaURL' parameter
256 |     ///
257 |     @available(iOS 11, macOS 10.15, tvOS 11, *)
warning: Parameter 'fileType' not found in initializer declaration
  --> Sources/MediaCore/API/Video/Video+ExportOptions.swift:28:15-28:76
26 |         /// - Parameters:
27 |         ///   - url: a destination URL
28 +         ///   - fileType: specifies the `Video.FileType` at the given `URL`
   |               ╰─suggestion: Remove 'fileType' parameter documentation
29 |         ///   - quality: definies the desired quality for the export
30 |         ///
warning: Parameter 'deliveryMode' is missing documentation
  --> Sources/MediaCore/API/Video/Video+ExportOptions.swift:29:69-29:69
27 |         ///   - url: a destination URL
28 |         ///   - fileType: specifies the `Video.FileType` at the given `URL`
29 +         ///   - quality: definies the desired quality for the export
   |                                                                     ╰─suggestion: Document 'deliveryMode' parameter
30 |         ///
31 |         public init(url: Media.URL<Video>, quality: VideoExportQualityType, deliveryMode: PHVideoRequestOptionsDeliveryMode = .automatic) {
warning: Parameter 'deliveryMode' is missing documentation
   --> Sources/MediaCore/API/Video/Video.swift:177:109-177:109
175 |     /// Creates a `AVPlayerItem` representation of the receiver
176 |     ///
177 +     /// - Parameter completion: a closure which gets an `AVPlayerItem` on `success` and `Error` on `failure`
    |         ╰─suggestion: Document 'deliveryMode' parameter
178 |     ///
179 |     func playerItem(deliveryMode: PHVideoRequestOptionsDeliveryMode = .automatic, _ completion: @escaping ResultAVPlayerItemCompletion) {
warning: Parameter 'deliveryMode' is missing documentation
   --> Sources/MediaCore/API/Video/Video.swift:196:104-196:104
194 |     /// Creates a `AVAsset` representation of the receiver
195 |     ///
196 +     /// - Parameter completion: a closure which gets an `AVAsset` on `success` and `Error` on `failure`
    |         ╰─suggestion: Document 'deliveryMode' parameter
197 |     ///
198 |     func avAsset(deliveryMode: PHVideoRequestOptionsDeliveryMode = .automatic, _ completion: @escaping ResultAVAssetCompletion) {
warning: Parameter 'url' not found in type method declaration
   --> Sources/MediaCore/API/Video/Video.swift:305:11-305:34
303 |     ///
304 |     /// - Parameters:
305 +     ///   - url: URL to the media
    |           ╰─suggestion: Remove 'url' parameter documentation
306 |     ///   - completion: a closure which gets `Video` on `success` and `Error` on `failure`
307 |     ///
warning: Parameter 'mediaURL' is missing documentation
   --> Sources/MediaCore/API/Video/Video.swift:306:91-306:91
304 |     /// - Parameters:
305 |     ///   - url: URL to the media
306 +     ///   - completion: a closure which gets `Video` on `success` and `Error` on `failure`
    |           ╰─suggestion: Document 'mediaURL' parameter
307 |     ///
308 |     static func save(_ mediaURL: Media.URL<Self>, _ completion: @escaping ResultVideoCompletion) {Finished building documentation for 'MediaCore' (0.56s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/chris-swift-dev/media/master
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2050] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.25s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.4.3 (0.54s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3314] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.14s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.57s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.4.3
Building for debugging...
[0/8] Write sources
[2/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version-5BDAB9E9C0126B9D.txt
[6/53] Emitting module SymbolKit
[7/57] Compiling SymbolKit Mixin+Equals.swift
[8/57] Compiling SymbolKit Mixin+Hash.swift
[9/57] Compiling SymbolKit Mixin.swift
[10/57] Compiling SymbolKit LineList.swift
[11/57] Compiling SymbolKit Position.swift
[12/57] Compiling Snippets SnippetParser.swift
[13/57] Emitting module Snippets
[14/57] Compiling Snippets Snippet.swift
[15/57] Compiling SymbolKit DeclarationFragments.swift
[16/57] Compiling SymbolKit Fragment.swift
[17/57] Compiling SymbolKit FragmentKind.swift
[18/57] Compiling SymbolKit FunctionParameter.swift
[19/57] Compiling SymbolKit FunctionSignature.swift
[20/57] Compiling SymbolKit SemanticVersion.swift
[21/57] Compiling SymbolKit AccessControl.swift
[22/57] Compiling SymbolKit Availability.swift
[23/57] Compiling SymbolKit AvailabilityItem.swift
[24/57] Compiling SymbolKit Domain.swift
[25/57] Compiling SymbolKit GenericConstraint.swift
[26/57] Compiling SymbolKit GenericParameter.swift
[27/57] Compiling SymbolKit Generics.swift
[28/57] Compiling SymbolKit Namespace.swift
[29/57] Compiling SymbolKit Names.swift
[30/57] Compiling SymbolKit SPI.swift
[31/57] Compiling SymbolKit Snippet.swift
[32/57] Compiling SymbolKit Extension.swift
[33/57] Compiling SymbolKit Symbol.swift
[34/57] Compiling SymbolKit SymbolKind.swift
[35/57] Compiling SymbolKit SymbolGraph.swift
[36/57] Compiling SymbolKit GraphCollector.swift
[37/57] Compiling SymbolKit SourceRange.swift
[38/57] Compiling SymbolKit Metadata.swift
[39/57] Compiling SymbolKit Module.swift
[40/57] Compiling SymbolKit OperatingSystem.swift
[41/57] Compiling SymbolKit Platform.swift
[42/57] Compiling SymbolKit Identifier.swift
[43/57] Compiling SymbolKit KindIdentifier.swift
[44/57] Compiling SymbolKit Location.swift
[45/57] Compiling SymbolKit Mutability.swift
[46/57] Compiling SymbolKit Relationship.swift
[47/57] Compiling SymbolKit RelationshipKind.swift
[48/57] Compiling SymbolKit SourceOrigin.swift
[49/57] Compiling SymbolKit GenericConstraints.swift
[50/57] Compiling SymbolKit Swift.swift
[51/57] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[52/57] Compiling SymbolKit UnifiedSymbol.swift
[53/57] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[54/57] Compiling SymbolKit UnifiedSymbolGraph.swift
[55/61] Compiling snippet_extract URL+Status.swift
[56/61] Compiling snippet_extract SymbolGraph+Snippet.swift
[57/61] Compiling snippet_extract SnippetBuildCommand.swift
[58/61] Emitting module snippet_extract
[58/61] Write Objects.LinkFileList
[59/61] Linking snippet-extract-tool
[60/61] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.84s)
Building for debugging...
[0/1] Write swift-version-5BDAB9E9C0126B9D.txt
[2/108] Compiling MediaCore PHImageManager+LivePhotoManager.swift
[3/108] Compiling MediaCore PHImageManager+VideoManager.swift
[4/108] Compiling MediaCore PHImageManager+handlePotentialDegradedResult.swift
[5/108] Compiling MediaCore PHImageManager+handleResult.swift
[6/108] Compiling MediaCore PHLivePhoto+PHLivePhotoProtocol.swift
[7/108] Compiling MediaCore PHPhotoLibrary+PhotoLibrary.swift
[8/108] Compiling MediaCore UIImagePickerController+MediaTypeError.swift
[9/108] Compiling MediaCore PHAssetCollectionWrapper.swift
[10/108] Compiling MediaCore Pattern.swift
[11/108] Compiling MediaCore AVAssetExportPresetProvider.swift
[12/108] Compiling MediaCore AnyMetadata.swift
[13/119] Emitting module MediaCore
[14/119] Compiling MediaCore UIImagePickerController+availableSourceType.swift
[15/119] Compiling MediaCore UIImagePickerController+supportedMediaTypes.swift
[16/119] Compiling MediaCore LazyLivePhotos.swift
[17/119] Compiling MediaCore LivePhoto+FileType.swift
[18/119] Compiling MediaCore LivePhoto+Metadata.swift
[19/119] Compiling MediaCore LivePhoto+Subtype.swift
[20/119] Compiling MediaCore LivePhoto.swift
[21/119] Compiling MediaCore LivePhotos.swift
[22/119] Compiling MediaCore PHLivePhotoProtocol.swift
[23/119] Compiling MediaCore Media+DisplayRepresentation.swift
[24/119] Compiling MediaCore Media+Error.swift
[25/119] Compiling MediaCore Media+Identifier.swift
[26/119] Compiling MediaCore Audio+Subtype.swift
[27/119] Compiling MediaCore Audio.swift
[28/119] Compiling MediaCore Audios.swift
[29/119] Compiling MediaCore LazyAudios.swift
[30/119] Compiling MediaCore AVCaptureDevice+devices.swift
[31/119] Compiling MediaCore AVCaptureSession+add.swift
[32/119] Compiling MediaCore Photograph.swift
[33/119] Compiling MediaCore AuthorizationStatus+PermissionError.swift
[34/119] Compiling MediaCore CFString+MediaTypes.swift
[35/119] Compiling MediaCore FileManager+directories.swift
[36/119] Compiling MediaCore Dictionary+PhotoKit.swift
[37/119] Compiling MediaCore UIImagePickerController+MediaType.swift
[38/119] Compiling MediaCore FetchAlbum.swift
[39/119] Compiling MediaCore FetchAlbums.swift
[40/119] Compiling MediaCore FetchAllAssets.swift
[41/119] Compiling MediaCore FetchAsset.swift
[42/119] Compiling MediaCore FetchAssets.swift
[43/119] Compiling MediaCore AssetChangeRequest.swift
[44/119] Compiling MediaCore MediaProtocol.swift
[45/119] Compiling MediaCore MediaSubtypeProvider.swift
[46/119] Compiling MediaCore PathExtensionsProvider.swift
[47/119] Compiling MediaCore LazyVideos.swift
[48/119] Compiling MediaCore Video+Error.swift
[49/119] Compiling MediaCore Video+ExportOptions.swift
[50/119] Compiling MediaCore Media+URL+Error.swift
[51/119] Compiling MediaCore Media+URL.swift
[52/119] Compiling MediaCore Media.swift
[53/119] Compiling MediaCore MediaCoreAliases.swift
[54/119] Compiling MediaCore AnyMedia+Equatable.swift
[55/119] Compiling MediaCore AnyMedia+Identifier+Equatable.swift
[56/119] Compiling MediaCore AnyMedia+Identifier.swift
[57/119] Compiling MediaCore AnyMedia.swift
[58/119] Compiling MediaCore LivePhotoData.swift
[59/119] Compiling MediaCore PermissionError.swift
[60/119] Compiling MediaCore Media+Filter.swift
[61/119] Compiling MediaCore Media+Quality.swift
[62/119] Compiling MediaCore CaptureProcessor.swift
[63/119] Compiling MediaCore CaptureProcessorDelegate.swift
[64/119] Compiling MediaCore VideoRecorder.swift
[65/119] Compiling MediaCore OptionalString+compare.swift
[66/119] Compiling MediaCore CustomPatternMatching.swift
[67/119] Compiling MediaCore Pattern+mismatchs.swift
[68/119] Compiling MediaCore Pattern+unsupportedPathExtension.swift
[69/119] Compiling MediaCore PHAsset+anyMedia.swift
[70/119] Compiling MediaCore PHAssetChangeRequest+AssetChangeRequest.swift
[71/119] Compiling MediaCore PHFetchOptions.swift
[72/119] Compiling MediaCore PHImageManager+ImageManager.swift
[73/119] Compiling MediaCore Media+Sort.swift
[74/119] Compiling MediaCore Media+SortKey.swift
[75/119] Compiling MediaCore PHAssetWrapper.swift
[76/119] Compiling MediaCore UniversalImage.swift
[77/119] Compiling MediaCore Media+LazyPhotos.swift
[78/119] Compiling MediaCore Photo+Error.swift
[79/119] Compiling MediaCore Photo+FileType.swift
[80/119] Compiling MediaCore Photo+Metadata.swift
[81/119] Compiling MediaCore Photo+Properties.swift
[82/119] Compiling MediaCore Photo+Subtype.swift
[83/119] Compiling MediaCore Photo.swift
[84/119] Compiling MediaCore Photos.swift
[85/119] Compiling MediaCore Album+Error.swift
[86/119] Compiling MediaCore Album+Filter.swift
[87/119] Compiling MediaCore Album+Identifier.swift
[88/119] Compiling MediaCore Album+Metadata.swift
[89/119] Compiling MediaCore Album+SortKey.swift
[90/119] Compiling MediaCore Album.swift
[91/119] Compiling MediaCore AlbumType.swift
[92/119] Compiling MediaCore Albums.swift
[93/119] Compiling MediaCore LazyAlbum.swift
[94/119] Compiling MediaCore LazyAlbums.swift
[95/119] Compiling MediaCore Audio+FileType.swift
[96/119] Compiling MediaCore Audio+Metadata.swift
[97/119] Compiling MediaCore Video+ExportProgress.swift
[98/119] Compiling MediaCore Video+ExportQuality.swift
[99/119] Compiling MediaCore Video+ExportQualityMac.swift
[100/119] Compiling MediaCore Video+FileType.swift
[101/119] Compiling MediaCore Video+Metadata.swift
[102/119] Compiling MediaCore Video+Properties.swift
[103/119] Compiling MediaCore Video+Subtype.swift
[104/119] Compiling MediaCore Video.swift
[105/119] Compiling MediaCore Videos.swift
[106/119] Compiling MediaCore AVCaptureDevice+Error.swift
[107/119] Compiling MediaCore AVCaptureSession+Error.swift
[108/119] Compiling MediaCore PhotoCaptureProcessor.swift
[109/119] Compiling MediaCore ImageManager.swift
[110/119] Compiling MediaCore LivePhotoManager.swift
[111/119] Compiling MediaCore PhotoLibrary.swift
[112/119] Compiling MediaCore PhotoLibraryChangeObserver.swift
[113/119] Compiling MediaCore VideoManager.swift
[114/119] Compiling MediaCore AlbumFetcher.swift
[115/119] Compiling MediaCore CustomPhotoLibraryChangeObserver.swift
[116/119] Compiling MediaCore PHAssetChanger.swift
[117/119] Compiling MediaCore PHAssetFetcher.swift
[118/119] Compiling MediaCore PHChanger.swift
[119/119] Compiling MediaCore TimerWrapper.swift
Build of target: 'MediaCore' complete! (1.84s)
Target:                   MediaSwiftUI
Extracting symbol information for 'MediaSwiftUI'...
Finished extracting symbol information for 'MediaSwiftUI'. (1.91s)
Building documentation for 'MediaSwiftUI'...
Finished building documentation for 'MediaSwiftUI' (0.05s)
Generated documentation archive at:
  /Users/admin/builder/spi-builder-workspace/.docs/chris-swift-dev/media/master
Building for debugging...
[0/3] Write swift-version-5BDAB9E9C0126B9D.txt
Build of product 'snippet-extract' complete! (0.19s)
Building for debugging...
[0/1] Write swift-version-5BDAB9E9C0126B9D.txt
[2/35] Emitting module MediaSwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
[3/38] Compiling MediaSwiftUI Camera+Error.swift
[4/38] Compiling MediaSwiftUI Camera+Result.swift
[5/38] Compiling MediaSwiftUI Camera.swift
[6/38] Compiling MediaSwiftUI LivePhoto+SwiftUI.swift
[7/38] Compiling MediaSwiftUI ActivityIndicatorView.swift
[8/38] Compiling MediaSwiftUI LivePhotoView.swift
[9/38] Compiling MediaSwiftUI MediaPicker+Coordinator.swift
[10/38] Compiling MediaSwiftUI VideoPreview.swift
[11/38] Compiling MediaSwiftUI Garbage.swift
[12/38] Compiling MediaSwiftUI ReferenceWrapper.swift
[13/38] Compiling MediaSwiftUI ViewState.swift
[14/38] Compiling MediaSwiftUI Video+SwiftUI.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
[15/38] Compiling MediaSwiftUI CameraViewCreator.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
[16/38] Compiling MediaSwiftUI AVCaptureVideoPreview.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
[17/38] Compiling MediaSwiftUI CameraView.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:14:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 12 | import SwiftUI
 13 |
 14 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 15 | public extension Video {
 16 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Video/Video+SwiftUI.swift:24:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 22 |
 23 | #if !os(tvOS)
 24 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 25 | public extension Video {
 26 |     /// Alias for a completion block getting a `Result` containing a `<Media.URL<Video>`
[18/38] Compiling MediaSwiftUI MediaPicker.swift
[19/38] Compiling MediaSwiftUI MediaPickerValue.swift
[20/38] Compiling MediaSwiftUI PhotoView.swift
[21/38] Compiling MediaSwiftUI NSItemProvider+loadVideo.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
[22/38] Compiling MediaSwiftUI PHPicker.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
[23/38] Compiling MediaSwiftUI Photo+Camera+Result.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
[24/38] Compiling MediaSwiftUI Photo+SwiftUI.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:16:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 14 |
 15 | #if !os(tvOS)
 16 | @available (iOS 13, macOS 10.15, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 17 | public extension Photo {
 18 |     typealias ResultPhotoCameraResultCompletion = (Result<Camera.Result, Swift.Error>) -> Void
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/Photo/Photo+SwiftUI.swift:151:2: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
149 | #endif
150 |
151 | @available (iOS 13, macOS 10.15, tvOS 13, *)
    |  `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
152 | public extension Photo {
153 |     /// Creates a ready-to-use `SwiftUI` view representation of the receiver
[25/38] Compiling MediaSwiftUI ViewWrapper.swift
[26/38] Compiling MediaSwiftUI WeakObjectWrapper.swift
[27/38] Compiling MediaSwiftUI ViewCreator.swift
[28/38] Compiling MediaSwiftUI MediaPicker+Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:18:47: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
16 |     public func loadLivePhoto() -> AnyPublisher<PHLivePhoto, Swift.Error> {
17 |         Future { promise in
18 |             guard self.canLoadObject(ofClass: PHLivePhoto.self) else {
   |                                               `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
19 |                 promise(.failure(Error.couldNotLoadObject(underlying: Error.unknown)))
20 |                 return
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:23:38: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
21 |             }
22 |
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
   |                                      `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
[29/38] Compiling MediaSwiftUI NSItemProvider+Error.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:18:47: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
16 |     public func loadLivePhoto() -> AnyPublisher<PHLivePhoto, Swift.Error> {
17 |         Future { promise in
18 |             guard self.canLoadObject(ofClass: PHLivePhoto.self) else {
   |                                               `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
19 |                 promise(.failure(Error.couldNotLoadObject(underlying: Error.unknown)))
20 |                 return
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:23:38: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
21 |             }
22 |
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
   |                                      `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
[30/38] Compiling MediaSwiftUI NSItemProvider+loadImage.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:18:47: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
16 |     public func loadLivePhoto() -> AnyPublisher<PHLivePhoto, Swift.Error> {
17 |         Future { promise in
18 |             guard self.canLoadObject(ofClass: PHLivePhoto.self) else {
   |                                               `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
19 |                 promise(.failure(Error.couldNotLoadObject(underlying: Error.unknown)))
20 |                 return
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:23:38: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
21 |             }
22 |
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
   |                                      `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
[31/38] Compiling MediaSwiftUI NSItemProvider+loadLivePhoto.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:18:47: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
16 |     public func loadLivePhoto() -> AnyPublisher<PHLivePhoto, Swift.Error> {
17 |         Future { promise in
18 |             guard self.canLoadObject(ofClass: PHLivePhoto.self) else {
   |                                               `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
19 |                 promise(.failure(Error.couldNotLoadObject(underlying: Error.unknown)))
20 |                 return
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
/Users/admin/builder/spi-builder-workspace/Sources/MediaSwiftUI/API/PHPicker/NSItemProvider+loadLivePhoto.swift:23:38: warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
21 |             }
22 |
23 |             self.loadObject(ofClass: PHLivePhoto.self) { livePhoto, error in
   |                                      `- warning: conformance of 'PHLivePhoto' to 'NSItemProviderReading' is unavailable in macOS; this is an error in the Swift 6 language mode
24 |                 if let error = error {
25 |                     promise(.failure(Error.couldNotLoadObject(underlying: error)))
Photos.PHLivePhoto:2:11: note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
1 | @available(macOS, unavailable)
2 | extension PHLivePhoto : NSItemProviderReading {
  |           `- note: conformance of 'PHLivePhoto' to 'NSItemProviderReading' has been explicitly marked unavailable here
3 |     @available(macOS 10.13, *)
4 |     open class var readableTypeIdentifiersForItemProvider: [String] { get }
[32/38] Compiling MediaSwiftUI PhotosUILivePhotoView.swift
[33/38] Compiling MediaSwiftUI Media+SwiftUI.swift
[34/38] Compiling MediaSwiftUI MediaSwiftUIAliases.swift
[35/38] Compiling MediaSwiftUI BrowserResult.swift
[36/38] Compiling MediaSwiftUI UniversalProgressView.swift
[37/38] Compiling MediaSwiftUI AVPlayerView.swift
[38/38] Compiling MediaSwiftUI VideoView.swift
Build of target: 'MediaSwiftUI' complete! (1.22s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/chris-swift-dev/media/master/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/chris-swift-dev/media/master/linkable-paths.json
    1228
7	/Users/admin/builder/spi-builder-workspace/.docs/chris-swift-dev/media/master
✅  Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/chris-swift-dev/media/master
File count: 1228
Doc size:   7.0MB
Preparing doc bundle ...
Uploading prod-chris-swift-dev-media-master-98cb432c.zip to s3://spi-docs-inbox/prod-chris-swift-dev-media-master-98cb432c.zip
Copying... [12%]
Copying... [24%]
Copying... [31%]
Copying... [43%]
Copying... [51%]
Copying... [63%]
Copying... [71%]
Copying... [82%]
Copying... [90%]
Copying... [100%]
Done.