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 Haversack, reference 1.1.1 (4d58a3), with Swift 6.1 for macOS (SPM) on 28 Apr 2025 05:22:25 UTC.

Swift 6 data race errors: 24

Build Command

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

Build Log

    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
415 |                 }
416 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:414:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
412 |             if let actualQueue = completionQueue {
413 |                 actualQueue.addOperation {
414 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
415 |                 }
416 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:459:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
457 |                 var localQuery: T
458 |                 #if os(macOS)
459 |                     localQuery = try self.addKeychain(to: query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
460 |                 #else
461 |                     localQuery = query
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:459:59: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
448 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
449 |     ///   block; a `nil` represents no error.
450 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
451 |                                             completionQueue: OperationQueue? = nil,
452 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
457 |                 var localQuery: T
458 |                 #if os(macOS)
459 |                     localQuery = try self.addKeychain(to: query)
    |                                                           `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
460 |                 #else
461 |                     localQuery = query
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:472:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
470 |             if let actualQueue = completionQueue {
471 |                 actualQueue.addOperation {
472 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
473 |                 }
474 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:472:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
470 |             if let actualQueue = completionQueue {
471 |                 actualQueue.addOperation {
472 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
473 |                 }
474 |             } else {
[79/96] Compiling Haversack Haversack+AsyncAwait.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:11:58: warning: converting a value of type '@Sendable (__shared sending Result<T.Entity, any Error>) -> ()' to type '(Result<T.Entity, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
 9 |     public func first<T: KeychainQuerying>(where query: T) async throws -> T.Entity {
10 |         try await withCheckedThrowingContinuation { continuation in
11 |             first(where: query, completion: continuation.resume)
   |                                                          |- warning: converting a value of type '@Sendable (__shared sending Result<T.Entity, any Error>) -> ()' to type '(Result<T.Entity, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                          `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
12 |         }
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:18:59: warning: converting a value of type '@Sendable (__shared sending Result<[T.Entity], any Error>) -> ()' to type '(Result<[T.Entity], any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
16 |     public func search<T: KeychainQuerying>(where query: T) async throws -> [T.Entity] {
17 |         try await withCheckedThrowingContinuation { continuation in
18 |             search(where: query, completion: continuation.resume)
   |                                                           |- warning: converting a value of type '@Sendable (__shared sending Result<[T.Entity], any Error>) -> ()' to type '(Result<[T.Entity], any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                           `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
19 |         }
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:26:109: warning: converting a value of type '@Sendable (__shared sending Result<T, any Error>) -> ()' to type '(Result<T, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
24 |     public func save<T: KeychainStorable>(_ item: T, itemSecurity: ItemSecurity, updateExisting: Bool) async throws -> T {
25 |         try await withCheckedThrowingContinuation { continuation in
26 |             save(item, itemSecurity: itemSecurity, updateExisting: updateExisting, completion: continuation.resume)
   |                                                                                                             |- warning: converting a value of type '@Sendable (__shared sending Result<T, any Error>) -> ()' to type '(Result<T, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                             `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
27 |         }
28 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:33:98: warning: converting a value of type '@Sendable (__shared sending Result<SecKey, any Error>) -> ()' to type '(Result<SecKey, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
31 |     public func generateKey(fromConfig config: KeyGenerationConfig, itemSecurity: ItemSecurity) async throws -> SecKey {
32 |         try await withCheckedThrowingContinuation { continuation in
33 |             generateKey(fromConfig: config, itemSecurity: itemSecurity, completion: continuation.resume)
   |                                                                                                  |- warning: converting a value of type '@Sendable (__shared sending Result<SecKey, any Error>) -> ()' to type '(Result<SecKey, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                  `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
34 |         }
35 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:40:107: warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
38 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true) async throws {
39 |         let error = try await withCheckedThrowingContinuation { continuation in
40 |             delete(where: query, treatNotFoundAsSuccess: treatNotFoundAsSuccess, completion: continuation.resume)
   |                                                                                                           |- warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                           `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
41 |         }
42 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:51:99: warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
49 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true) async throws {
50 |         let error = try await withCheckedThrowingContinuation { continuation in
51 |             delete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess, completion: continuation.resume)
   |                                                                                                   |- warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                   `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
52 |         }
53 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:46:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
 44 |             let result: Result<T.Entity, Error>
 45 |             do {
 46 |                 let localQuery = try precheckSearch(query, singleItem: true)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
 47 |
 48 |                 let entity = try self.configuration.strategy.searchForOne(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:46:53: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 39 |     ///   - completion: A function/block to be called when the search operation is completed.
 40 |     ///   - result: The item or an error will be given to the completion handler.
 41 |     public func first<T: KeychainQuerying>(where query: T, completionQueue: OperationQueue? = nil,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 42 |                                            completion: @escaping (_ result: Result<T.Entity, Error>) -> Void) {
 43 |         configuration.serialQueue.async {
 44 |             let result: Result<T.Entity, Error>
 45 |             do {
 46 |                 let localQuery = try precheckSearch(query, singleItem: true)
    |                                                     `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 47 |
 48 |                 let entity = try self.configuration.strategy.searchForOne(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:54:37: warning: capture of 'completion' with non-sendable type '(Result<T.Entity, any Error>) -> Void' in a '@Sendable' closure
 52 |             }
 53 |
 54 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<T.Entity, any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 55 |         }
 56 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:83:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
 81 |             let result: Result<[T.Entity], Error>
 82 |             do {
 83 |                 let localQuery = try precheckSearch(query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
 84 |
 85 |                 let entities = try self.configuration.strategy.search(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:83:53: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 76 |     ///   - completion: A function/block to be called when the search operation is completed.
 77 |     ///   - result: An array of items or an error will be given to the completion handler.
 78 |     public func search<T: KeychainQuerying>(where query: T, completionQueue: OperationQueue? = nil,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |                                             completion: @escaping (_ result: Result<[T.Entity], Error>) -> Void) {
 80 |         configuration.serialQueue.async {
 81 |             let result: Result<[T.Entity], Error>
 82 |             do {
 83 |                 let localQuery = try precheckSearch(query)
    |                                                     `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 84 |
 85 |                 let entities = try self.configuration.strategy.search(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:91:37: warning: capture of 'completion' with non-sendable type '(Result<[T.Entity], any Error>) -> Void' in a '@Sendable' closure
 89 |             }
 90 |
 91 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<[T.Entity], any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 92 |         }
 93 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:129:35: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
127 |
128 |             do {
129 |                 let theItem = try unsynchronizedSave(item, itemSecurity: itemSecurity, updateExisting: updateExisting)
    |                                   `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
130 |                 result = .success(theItem)
131 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:129:54: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
120 |     ///   - completion: A function/block to be called when the save operation is completed.
121 |     ///   - result: The original `item` that was saved or an error will be given to the completion handler.
122 |     public func save<T: KeychainStorable>(_ item: T, itemSecurity: ItemSecurity, updateExisting: Bool,
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
123 |                                           completionQueue: OperationQueue? = nil,
124 |                                           completion: @escaping (_ result: Result<T, Error>) -> Void) {
    :
127 |
128 |             do {
129 |                 let theItem = try unsynchronizedSave(item, itemSecurity: itemSecurity, updateExisting: updateExisting)
    |                                                      `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
130 |                 result = .success(theItem)
131 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:129:74: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
127 |
128 |             do {
129 |                 let theItem = try unsynchronizedSave(item, itemSecurity: itemSecurity, updateExisting: updateExisting)
    |                                                                          `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
130 |                 result = .success(theItem)
131 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/ItemSecurity.swift:7:15: note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  5 |
  6 | /// Specify the security of the keychain item
  7 | public struct ItemSecurity {
    |               `- note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  8 |
  9 |     /// The Haversack standard security for keychain items.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:135:37: warning: capture of 'completion' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
133 |             }
134 |
135 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
136 |         }
137 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:172:31: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
170 |
171 |             do {
172 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                               `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
173 |                 result = .success(key)
174 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:172:71: warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
170 |
171 |             do {
172 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                       `- warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
173 |                 result = .success(key)
174 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/KeyGenerationConfig.swift:10:15: note: consider making struct 'KeyGenerationConfig' conform to the 'Sendable' protocol
  8 | /// Create a `KeyGenerationConfig` and then pass it to ``Haversack/Haversack/generateKey(fromConfig:itemSecurity:)-1r4ki``
  9 | /// or one of it's asynchronous variants.
 10 | public struct KeyGenerationConfig {
    |               `- note: consider making struct 'KeyGenerationConfig' conform to the 'Sendable' protocol
 11 |     /// The keychain config query.
 12 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:172:93: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
170 |
171 |             do {
172 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                                             `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
173 |                 result = .success(key)
174 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/ItemSecurity.swift:7:15: note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  5 |
  6 | /// Specify the security of the keychain item
  7 | public struct ItemSecurity {
    |               `- note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  8 |
  9 |     /// The Haversack standard security for keychain items.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:178:37: warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
176 |             }
177 |
178 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
179 |         }
180 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:306:17: warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
304 |         if let actualQueue = queue {
305 |             actualQueue.addOperation {
306 |                 completionHandler(result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
307 |             }
308 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:306:35: warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
300 | #endif
301 |
302 |     private func call<T>(completionHandler: @escaping (_ result: Result<T, Error>) -> Void,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
303 |                          onQueue queue: OperationQueue?, with result: Result<T, Error>) {
304 |         if let actualQueue = queue {
305 |             actualQueue.addOperation {
306 |                 completionHandler(result)
    |                                   `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
307 |             }
308 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:406:21: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
404 |
405 |             do {
406 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                     `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
407 |                 result = nil
408 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:406:47: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
397 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
398 |     ///   block; a `nil` represents no error.
399 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
400 |                                             completionQueue: OperationQueue? = nil,
401 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
404 |
405 |             do {
406 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                                               `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
407 |                 result = nil
408 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:414:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
412 |             if let actualQueue = completionQueue {
413 |                 actualQueue.addOperation {
414 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
415 |                 }
416 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:414:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
412 |             if let actualQueue = completionQueue {
413 |                 actualQueue.addOperation {
414 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
415 |                 }
416 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:459:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
457 |                 var localQuery: T
458 |                 #if os(macOS)
459 |                     localQuery = try self.addKeychain(to: query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
460 |                 #else
461 |                     localQuery = query
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:459:59: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
448 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
449 |     ///   block; a `nil` represents no error.
450 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
451 |                                             completionQueue: OperationQueue? = nil,
452 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
457 |                 var localQuery: T
458 |                 #if os(macOS)
459 |                     localQuery = try self.addKeychain(to: query)
    |                                                           `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
460 |                 #else
461 |                     localQuery = query
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:472:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
470 |             if let actualQueue = completionQueue {
471 |                 actualQueue.addOperation {
472 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
473 |                 }
474 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:472:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
470 |             if let actualQueue = completionQueue {
471 |                 actualQueue.addOperation {
472 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
473 |                 }
474 |             } else {
[80/96] Compiling Haversack Haversack.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:11:58: warning: converting a value of type '@Sendable (__shared sending Result<T.Entity, any Error>) -> ()' to type '(Result<T.Entity, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
 9 |     public func first<T: KeychainQuerying>(where query: T) async throws -> T.Entity {
10 |         try await withCheckedThrowingContinuation { continuation in
11 |             first(where: query, completion: continuation.resume)
   |                                                          |- warning: converting a value of type '@Sendable (__shared sending Result<T.Entity, any Error>) -> ()' to type '(Result<T.Entity, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                          `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
12 |         }
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:18:59: warning: converting a value of type '@Sendable (__shared sending Result<[T.Entity], any Error>) -> ()' to type '(Result<[T.Entity], any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
16 |     public func search<T: KeychainQuerying>(where query: T) async throws -> [T.Entity] {
17 |         try await withCheckedThrowingContinuation { continuation in
18 |             search(where: query, completion: continuation.resume)
   |                                                           |- warning: converting a value of type '@Sendable (__shared sending Result<[T.Entity], any Error>) -> ()' to type '(Result<[T.Entity], any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                           `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
19 |         }
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:26:109: warning: converting a value of type '@Sendable (__shared sending Result<T, any Error>) -> ()' to type '(Result<T, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
24 |     public func save<T: KeychainStorable>(_ item: T, itemSecurity: ItemSecurity, updateExisting: Bool) async throws -> T {
25 |         try await withCheckedThrowingContinuation { continuation in
26 |             save(item, itemSecurity: itemSecurity, updateExisting: updateExisting, completion: continuation.resume)
   |                                                                                                             |- warning: converting a value of type '@Sendable (__shared sending Result<T, any Error>) -> ()' to type '(Result<T, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                             `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
27 |         }
28 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:33:98: warning: converting a value of type '@Sendable (__shared sending Result<SecKey, any Error>) -> ()' to type '(Result<SecKey, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
31 |     public func generateKey(fromConfig config: KeyGenerationConfig, itemSecurity: ItemSecurity) async throws -> SecKey {
32 |         try await withCheckedThrowingContinuation { continuation in
33 |             generateKey(fromConfig: config, itemSecurity: itemSecurity, completion: continuation.resume)
   |                                                                                                  |- warning: converting a value of type '@Sendable (__shared sending Result<SecKey, any Error>) -> ()' to type '(Result<SecKey, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                  `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
34 |         }
35 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:40:107: warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
38 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true) async throws {
39 |         let error = try await withCheckedThrowingContinuation { continuation in
40 |             delete(where: query, treatNotFoundAsSuccess: treatNotFoundAsSuccess, completion: continuation.resume)
   |                                                                                                           |- warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                           `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
41 |         }
42 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:51:99: warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
49 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true) async throws {
50 |         let error = try await withCheckedThrowingContinuation { continuation in
51 |             delete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess, completion: continuation.resume)
   |                                                                                                   |- warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                   `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
52 |         }
53 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:46:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
 44 |             let result: Result<T.Entity, Error>
 45 |             do {
 46 |                 let localQuery = try precheckSearch(query, singleItem: true)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
 47 |
 48 |                 let entity = try self.configuration.strategy.searchForOne(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:46:53: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 39 |     ///   - completion: A function/block to be called when the search operation is completed.
 40 |     ///   - result: The item or an error will be given to the completion handler.
 41 |     public func first<T: KeychainQuerying>(where query: T, completionQueue: OperationQueue? = nil,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 42 |                                            completion: @escaping (_ result: Result<T.Entity, Error>) -> Void) {
 43 |         configuration.serialQueue.async {
 44 |             let result: Result<T.Entity, Error>
 45 |             do {
 46 |                 let localQuery = try precheckSearch(query, singleItem: true)
    |                                                     `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 47 |
 48 |                 let entity = try self.configuration.strategy.searchForOne(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:54:37: warning: capture of 'completion' with non-sendable type '(Result<T.Entity, any Error>) -> Void' in a '@Sendable' closure
 52 |             }
 53 |
 54 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<T.Entity, any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 55 |         }
 56 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:83:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
 81 |             let result: Result<[T.Entity], Error>
 82 |             do {
 83 |                 let localQuery = try precheckSearch(query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
 84 |
 85 |                 let entities = try self.configuration.strategy.search(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:83:53: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 76 |     ///   - completion: A function/block to be called when the search operation is completed.
 77 |     ///   - result: An array of items or an error will be given to the completion handler.
 78 |     public func search<T: KeychainQuerying>(where query: T, completionQueue: OperationQueue? = nil,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |                                             completion: @escaping (_ result: Result<[T.Entity], Error>) -> Void) {
 80 |         configuration.serialQueue.async {
 81 |             let result: Result<[T.Entity], Error>
 82 |             do {
 83 |                 let localQuery = try precheckSearch(query)
    |                                                     `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 84 |
 85 |                 let entities = try self.configuration.strategy.search(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:91:37: warning: capture of 'completion' with non-sendable type '(Result<[T.Entity], any Error>) -> Void' in a '@Sendable' closure
 89 |             }
 90 |
 91 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<[T.Entity], any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 92 |         }
 93 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:129:35: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
127 |
128 |             do {
129 |                 let theItem = try unsynchronizedSave(item, itemSecurity: itemSecurity, updateExisting: updateExisting)
    |                                   `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
130 |                 result = .success(theItem)
131 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:129:54: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
120 |     ///   - completion: A function/block to be called when the save operation is completed.
121 |     ///   - result: The original `item` that was saved or an error will be given to the completion handler.
122 |     public func save<T: KeychainStorable>(_ item: T, itemSecurity: ItemSecurity, updateExisting: Bool,
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
123 |                                           completionQueue: OperationQueue? = nil,
124 |                                           completion: @escaping (_ result: Result<T, Error>) -> Void) {
    :
127 |
128 |             do {
129 |                 let theItem = try unsynchronizedSave(item, itemSecurity: itemSecurity, updateExisting: updateExisting)
    |                                                      `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
130 |                 result = .success(theItem)
131 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:129:74: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
127 |
128 |             do {
129 |                 let theItem = try unsynchronizedSave(item, itemSecurity: itemSecurity, updateExisting: updateExisting)
    |                                                                          `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
130 |                 result = .success(theItem)
131 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/ItemSecurity.swift:7:15: note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  5 |
  6 | /// Specify the security of the keychain item
  7 | public struct ItemSecurity {
    |               `- note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  8 |
  9 |     /// The Haversack standard security for keychain items.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:135:37: warning: capture of 'completion' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
133 |             }
134 |
135 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
136 |         }
137 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:172:31: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
170 |
171 |             do {
172 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                               `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
173 |                 result = .success(key)
174 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:172:71: warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
170 |
171 |             do {
172 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                       `- warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
173 |                 result = .success(key)
174 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/KeyGenerationConfig.swift:10:15: note: consider making struct 'KeyGenerationConfig' conform to the 'Sendable' protocol
  8 | /// Create a `KeyGenerationConfig` and then pass it to ``Haversack/Haversack/generateKey(fromConfig:itemSecurity:)-1r4ki``
  9 | /// or one of it's asynchronous variants.
 10 | public struct KeyGenerationConfig {
    |               `- note: consider making struct 'KeyGenerationConfig' conform to the 'Sendable' protocol
 11 |     /// The keychain config query.
 12 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:172:93: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
170 |
171 |             do {
172 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                                             `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
173 |                 result = .success(key)
174 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/ItemSecurity.swift:7:15: note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  5 |
  6 | /// Specify the security of the keychain item
  7 | public struct ItemSecurity {
    |               `- note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  8 |
  9 |     /// The Haversack standard security for keychain items.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:178:37: warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
176 |             }
177 |
178 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
179 |         }
180 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:306:17: warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
304 |         if let actualQueue = queue {
305 |             actualQueue.addOperation {
306 |                 completionHandler(result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
307 |             }
308 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:306:35: warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
300 | #endif
301 |
302 |     private func call<T>(completionHandler: @escaping (_ result: Result<T, Error>) -> Void,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
303 |                          onQueue queue: OperationQueue?, with result: Result<T, Error>) {
304 |         if let actualQueue = queue {
305 |             actualQueue.addOperation {
306 |                 completionHandler(result)
    |                                   `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
307 |             }
308 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:406:21: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
404 |
405 |             do {
406 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                     `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
407 |                 result = nil
408 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:406:47: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
397 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
398 |     ///   block; a `nil` represents no error.
399 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
400 |                                             completionQueue: OperationQueue? = nil,
401 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
404 |
405 |             do {
406 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                                               `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
407 |                 result = nil
408 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:414:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
412 |             if let actualQueue = completionQueue {
413 |                 actualQueue.addOperation {
414 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
415 |                 }
416 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:414:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
412 |             if let actualQueue = completionQueue {
413 |                 actualQueue.addOperation {
414 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
415 |                 }
416 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:459:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
457 |                 var localQuery: T
458 |                 #if os(macOS)
459 |                     localQuery = try self.addKeychain(to: query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
460 |                 #else
461 |                     localQuery = query
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:459:59: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
448 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
449 |     ///   block; a `nil` represents no error.
450 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
451 |                                             completionQueue: OperationQueue? = nil,
452 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
457 |                 var localQuery: T
458 |                 #if os(macOS)
459 |                     localQuery = try self.addKeychain(to: query)
    |                                                           `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
460 |                 #else
461 |                     localQuery = query
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:472:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
470 |             if let actualQueue = completionQueue {
471 |                 actualQueue.addOperation {
472 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
473 |                 }
474 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:472:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
470 |             if let actualQueue = completionQueue {
471 |                 actualQueue.addOperation {
472 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
473 |                 }
474 |             } else {
[81/96] Compiling Haversack HaversackConfiguration.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:11:58: warning: converting a value of type '@Sendable (__shared sending Result<T.Entity, any Error>) -> ()' to type '(Result<T.Entity, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
 9 |     public func first<T: KeychainQuerying>(where query: T) async throws -> T.Entity {
10 |         try await withCheckedThrowingContinuation { continuation in
11 |             first(where: query, completion: continuation.resume)
   |                                                          |- warning: converting a value of type '@Sendable (__shared sending Result<T.Entity, any Error>) -> ()' to type '(Result<T.Entity, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                          `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
12 |         }
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:18:59: warning: converting a value of type '@Sendable (__shared sending Result<[T.Entity], any Error>) -> ()' to type '(Result<[T.Entity], any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
16 |     public func search<T: KeychainQuerying>(where query: T) async throws -> [T.Entity] {
17 |         try await withCheckedThrowingContinuation { continuation in
18 |             search(where: query, completion: continuation.resume)
   |                                                           |- warning: converting a value of type '@Sendable (__shared sending Result<[T.Entity], any Error>) -> ()' to type '(Result<[T.Entity], any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                           `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
19 |         }
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:26:109: warning: converting a value of type '@Sendable (__shared sending Result<T, any Error>) -> ()' to type '(Result<T, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
24 |     public func save<T: KeychainStorable>(_ item: T, itemSecurity: ItemSecurity, updateExisting: Bool) async throws -> T {
25 |         try await withCheckedThrowingContinuation { continuation in
26 |             save(item, itemSecurity: itemSecurity, updateExisting: updateExisting, completion: continuation.resume)
   |                                                                                                             |- warning: converting a value of type '@Sendable (__shared sending Result<T, any Error>) -> ()' to type '(Result<T, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                             `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
27 |         }
28 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:33:98: warning: converting a value of type '@Sendable (__shared sending Result<SecKey, any Error>) -> ()' to type '(Result<SecKey, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
31 |     public func generateKey(fromConfig config: KeyGenerationConfig, itemSecurity: ItemSecurity) async throws -> SecKey {
32 |         try await withCheckedThrowingContinuation { continuation in
33 |             generateKey(fromConfig: config, itemSecurity: itemSecurity, completion: continuation.resume)
   |                                                                                                  |- warning: converting a value of type '@Sendable (__shared sending Result<SecKey, any Error>) -> ()' to type '(Result<SecKey, any Error>) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                  `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
34 |         }
35 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:40:107: warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
38 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true) async throws {
39 |         let error = try await withCheckedThrowingContinuation { continuation in
40 |             delete(where: query, treatNotFoundAsSuccess: treatNotFoundAsSuccess, completion: continuation.resume)
   |                                                                                                           |- warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                           `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
41 |         }
42 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack+AsyncAwait.swift:51:99: warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
49 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true) async throws {
50 |         let error = try await withCheckedThrowingContinuation { continuation in
51 |             delete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess, completion: continuation.resume)
   |                                                                                                   |- warning: converting a value of type '@Sendable (sending (any Error)?) -> ()' to type '((any Error)?) -> Void' risks causing data races; this is an error in the Swift 6 language mode
   |                                                                                                   `- note: converting a function typed value with a sending parameter to one without risks allowing actor-isolated values to escape their isolation domain as an argument to an invocation of value
52 |         }
53 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:46:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
 44 |             let result: Result<T.Entity, Error>
 45 |             do {
 46 |                 let localQuery = try precheckSearch(query, singleItem: true)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
 47 |
 48 |                 let entity = try self.configuration.strategy.searchForOne(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:46:53: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 39 |     ///   - completion: A function/block to be called when the search operation is completed.
 40 |     ///   - result: The item or an error will be given to the completion handler.
 41 |     public func first<T: KeychainQuerying>(where query: T, completionQueue: OperationQueue? = nil,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 42 |                                            completion: @escaping (_ result: Result<T.Entity, Error>) -> Void) {
 43 |         configuration.serialQueue.async {
 44 |             let result: Result<T.Entity, Error>
 45 |             do {
 46 |                 let localQuery = try precheckSearch(query, singleItem: true)
    |                                                     `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 47 |
 48 |                 let entity = try self.configuration.strategy.searchForOne(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:54:37: warning: capture of 'completion' with non-sendable type '(Result<T.Entity, any Error>) -> Void' in a '@Sendable' closure
 52 |             }
 53 |
 54 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<T.Entity, any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 55 |         }
 56 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:83:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
 81 |             let result: Result<[T.Entity], Error>
 82 |             do {
 83 |                 let localQuery = try precheckSearch(query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
 84 |
 85 |                 let entities = try self.configuration.strategy.search(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:83:53: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 76 |     ///   - completion: A function/block to be called when the search operation is completed.
 77 |     ///   - result: An array of items or an error will be given to the completion handler.
 78 |     public func search<T: KeychainQuerying>(where query: T, completionQueue: OperationQueue? = nil,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 79 |                                             completion: @escaping (_ result: Result<[T.Entity], Error>) -> Void) {
 80 |         configuration.serialQueue.async {
 81 |             let result: Result<[T.Entity], Error>
 82 |             do {
 83 |                 let localQuery = try precheckSearch(query)
    |                                                     `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
 84 |
 85 |                 let entities = try self.configuration.strategy.search(localQuery)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:91:37: warning: capture of 'completion' with non-sendable type '(Result<[T.Entity], any Error>) -> Void' in a '@Sendable' closure
 89 |             }
 90 |
 91 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<[T.Entity], any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 92 |         }
 93 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:129:35: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
127 |
128 |             do {
129 |                 let theItem = try unsynchronizedSave(item, itemSecurity: itemSecurity, updateExisting: updateExisting)
    |                                   `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
130 |                 result = .success(theItem)
131 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:129:54: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
120 |     ///   - completion: A function/block to be called when the save operation is completed.
121 |     ///   - result: The original `item` that was saved or an error will be given to the completion handler.
122 |     public func save<T: KeychainStorable>(_ item: T, itemSecurity: ItemSecurity, updateExisting: Bool,
    |                      `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
123 |                                           completionQueue: OperationQueue? = nil,
124 |                                           completion: @escaping (_ result: Result<T, Error>) -> Void) {
    :
127 |
128 |             do {
129 |                 let theItem = try unsynchronizedSave(item, itemSecurity: itemSecurity, updateExisting: updateExisting)
    |                                                      `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
130 |                 result = .success(theItem)
131 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:129:74: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
127 |
128 |             do {
129 |                 let theItem = try unsynchronizedSave(item, itemSecurity: itemSecurity, updateExisting: updateExisting)
    |                                                                          `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
130 |                 result = .success(theItem)
131 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/ItemSecurity.swift:7:15: note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  5 |
  6 | /// Specify the security of the keychain item
  7 | public struct ItemSecurity {
    |               `- note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  8 |
  9 |     /// The Haversack standard security for keychain items.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:135:37: warning: capture of 'completion' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
133 |             }
134 |
135 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
136 |         }
137 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:172:31: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
170 |
171 |             do {
172 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                               `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
173 |                 result = .success(key)
174 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:172:71: warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
170 |
171 |             do {
172 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                       `- warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
173 |                 result = .success(key)
174 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/KeyGenerationConfig.swift:10:15: note: consider making struct 'KeyGenerationConfig' conform to the 'Sendable' protocol
  8 | /// Create a `KeyGenerationConfig` and then pass it to ``Haversack/Haversack/generateKey(fromConfig:itemSecurity:)-1r4ki``
  9 | /// or one of it's asynchronous variants.
 10 | public struct KeyGenerationConfig {
    |               `- note: consider making struct 'KeyGenerationConfig' conform to the 'Sendable' protocol
 11 |     /// The keychain config query.
 12 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:172:93: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
170 |
171 |             do {
172 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                                             `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
173 |                 result = .success(key)
174 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/ItemSecurity.swift:7:15: note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  5 |
  6 | /// Specify the security of the keychain item
  7 | public struct ItemSecurity {
    |               `- note: consider making struct 'ItemSecurity' conform to the 'Sendable' protocol
  8 |
  9 |     /// The Haversack standard security for keychain items.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:178:37: warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
176 |             }
177 |
178 |             call(completionHandler: completion, onQueue: completionQueue, with: result)
    |                                     |- warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
    |                                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
179 |         }
180 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:306:17: warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
304 |         if let actualQueue = queue {
305 |             actualQueue.addOperation {
306 |                 completionHandler(result)
    |                 |- warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
307 |             }
308 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:306:35: warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
300 | #endif
301 |
302 |     private func call<T>(completionHandler: @escaping (_ result: Result<T, Error>) -> Void,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
303 |                          onQueue queue: OperationQueue?, with result: Result<T, Error>) {
304 |         if let actualQueue = queue {
305 |             actualQueue.addOperation {
306 |                 completionHandler(result)
    |                                   `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
307 |             }
308 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:406:21: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
404 |
405 |             do {
406 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                     `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
407 |                 result = nil
408 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:406:47: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
397 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
398 |     ///   block; a `nil` represents no error.
399 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
400 |                                             completionQueue: OperationQueue? = nil,
401 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
404 |
405 |             do {
406 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                                               `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
407 |                 result = nil
408 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:414:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
412 |             if let actualQueue = completionQueue {
413 |                 actualQueue.addOperation {
414 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
415 |                 }
416 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:414:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
412 |             if let actualQueue = completionQueue {
413 |                 actualQueue.addOperation {
414 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
415 |                 }
416 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:459:38: warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
  7 | ///
  8 | /// Contains keychain search functionality and the ability to add/update/delete items in the keychain.
  9 | public struct Haversack {
    |               `- note: consider making struct 'Haversack' conform to the 'Sendable' protocol
 10 |     /// The configuration that the Haversack was created with.
 11 |     public let configuration: HaversackConfiguration
    :
457 |                 var localQuery: T
458 |                 #if os(macOS)
459 |                     localQuery = try self.addKeychain(to: query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
460 |                 #else
461 |                     localQuery = query
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:459:59: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
448 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
449 |     ///   block; a `nil` represents no error.
450 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
451 |                                             completionQueue: OperationQueue? = nil,
452 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
457 |                 var localQuery: T
458 |                 #if os(macOS)
459 |                     localQuery = try self.addKeychain(to: query)
    |                                                           `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
460 |                 #else
461 |                     localQuery = query
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:472:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
470 |             if let actualQueue = completionQueue {
471 |                 actualQueue.addOperation {
472 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
473 |                 }
474 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:472:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
470 |             if let actualQueue = completionQueue {
471 |                 actualQueue.addOperation {
472 |                     completion(result)
    |                     |- warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
473 |                 }
474 |             } else {
[82/96] Compiling Haversack KeychainPortable.swift
[83/96] Compiling Haversack PassphraseStrategy.swift
[84/96] Compiling Haversack PrivateKeyImporting.swift
[85/96] Compiling Haversack KeyGenerationConfig.swift
[86/96] Compiling Haversack KeyBaseQuerying.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:49:23: warning: static property 'canEncrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 47 |     }
 48 |
 49 |     public static let canEncrypt    = KeyUsagePolicy(rawValue: 1 << 0)
    |                       |- warning: static property 'canEncrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canEncrypt' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:50:23: warning: static property 'canDecrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 48 |
 49 |     public static let canEncrypt    = KeyUsagePolicy(rawValue: 1 << 0)
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
    |                       |- warning: static property 'canDecrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canDecrypt' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:51:23: warning: static property 'canDerive' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 49 |     public static let canEncrypt    = KeyUsagePolicy(rawValue: 1 << 0)
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
    |                       |- warning: static property 'canDerive' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canDerive' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:52:23: warning: static property 'canSign' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
    |                       |- warning: static property 'canSign' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canSign' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:53:23: warning: static property 'canVerify' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
    |                       |- warning: static property 'canVerify' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canVerify' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
 55 |     public static let canUnwrap     = KeyUsagePolicy(rawValue: 1 << 6)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:54:23: warning: static property 'canWrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
    |                       |- warning: static property 'canWrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canWrap' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 55 |     public static let canUnwrap     = KeyUsagePolicy(rawValue: 1 << 6)
 56 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:55:23: warning: static property 'canUnwrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
 55 |     public static let canUnwrap     = KeyUsagePolicy(rawValue: 1 << 6)
    |                       |- warning: static property 'canUnwrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canUnwrap' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 56 |
 57 |     /// The default usage of a public key includes encryption, deriving other keys, and verifying digital signatures.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:58:23: warning: static property 'defaultPublicKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 56 |
 57 |     /// The default usage of a public key includes encryption, deriving other keys, and verifying digital signatures.
 58 |     public static let defaultPublicKey: KeyUsagePolicy = [.canEncrypt, .canDerive, .canVerify]
    |                       |- warning: static property 'defaultPublicKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultPublicKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 59 |
 60 |     /// The default usage of a private key includes decryption, digital signing, deriving other keys, and unwrapping other keys.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:61:23: warning: static property 'defaultPrivateKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 59 |
 60 |     /// The default usage of a private key includes decryption, digital signing, deriving other keys, and unwrapping other keys.
 61 |     public static let defaultPrivateKey: KeyUsagePolicy = [.canDecrypt, .canDerive, .canSign, .canUnwrap]
    |                       |- warning: static property 'defaultPrivateKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultPrivateKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |
 63 |     var securityFrameworkKeyArray: [CFString] {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:120:24: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Fluent interface for searching the keychain for cryptographic keys.
    :
110 |
111 | /// Encapsulates the cryptographic key's class (public, private, or symmetric).
112 | public enum KeyClass {
    |             `- note: consider making enum 'KeyClass' conform to the 'Sendable' protocol
113 |     /// Represents a private key
114 |     case `private`
    :
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:15:23: warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
13 |
14 |     /// Get the metadata attributes for the item.
15 |     public static let attributes           = KeychainDataOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'attributes' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |     /// Get the raw unencrypted data for the item.
17 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:19:23: warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
17 |     ///
18 |     /// Using this will generate a user prompt on macOS if the data exists but your app does not have access to it.
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'data' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:21:23: warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'persistantReference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:23:23: warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
   |                       |- warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'reference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 |     /// Typically most apps will just want to read the secure data.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:26:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
24 |
25 |     /// Typically most apps will just want to read the secure data.
26 |     public static let `default`: KeychainDataOptions = [.data]
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 |     /// Get all of the possible data about the keychain item.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:29:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
27 |
28 |     /// Get all of the possible data about the keychain item.
29 |     public static let all: KeychainDataOptions = [.attributes, .data, .persistantReference, .reference]
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:41:23: warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
39 |
40 |     /// Compare strings without caring about the case of letters.
41 |     public static let caseInsensitive      = KeychainStringComparisonOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'caseInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:46:23: warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
44 |     /// Compare strings without caring about diacritical marks on letters; macOS only.
45 |     /// - Important: Available on macOS only.
46 |     public static let diacriticInsensitive = KeychainStringComparisonOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'diacriticInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:50:23: warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
49 |     /// - Important: Available on macOS only.
50 |     public static let widthInsensitive     = KeychainStringComparisonOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'widthInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | #endif
52 | }
[87/96] Compiling Haversack KeyQuery.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:49:23: warning: static property 'canEncrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 47 |     }
 48 |
 49 |     public static let canEncrypt    = KeyUsagePolicy(rawValue: 1 << 0)
    |                       |- warning: static property 'canEncrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canEncrypt' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:50:23: warning: static property 'canDecrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 48 |
 49 |     public static let canEncrypt    = KeyUsagePolicy(rawValue: 1 << 0)
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
    |                       |- warning: static property 'canDecrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canDecrypt' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:51:23: warning: static property 'canDerive' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 49 |     public static let canEncrypt    = KeyUsagePolicy(rawValue: 1 << 0)
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
    |                       |- warning: static property 'canDerive' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canDerive' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:52:23: warning: static property 'canSign' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
    |                       |- warning: static property 'canSign' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canSign' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:53:23: warning: static property 'canVerify' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
    |                       |- warning: static property 'canVerify' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canVerify' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
 55 |     public static let canUnwrap     = KeyUsagePolicy(rawValue: 1 << 6)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:54:23: warning: static property 'canWrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
    |                       |- warning: static property 'canWrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canWrap' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 55 |     public static let canUnwrap     = KeyUsagePolicy(rawValue: 1 << 6)
 56 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:55:23: warning: static property 'canUnwrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
 55 |     public static let canUnwrap     = KeyUsagePolicy(rawValue: 1 << 6)
    |                       |- warning: static property 'canUnwrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canUnwrap' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 56 |
 57 |     /// The default usage of a public key includes encryption, deriving other keys, and verifying digital signatures.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:58:23: warning: static property 'defaultPublicKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 56 |
 57 |     /// The default usage of a public key includes encryption, deriving other keys, and verifying digital signatures.
 58 |     public static let defaultPublicKey: KeyUsagePolicy = [.canEncrypt, .canDerive, .canVerify]
    |                       |- warning: static property 'defaultPublicKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultPublicKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 59 |
 60 |     /// The default usage of a private key includes decryption, digital signing, deriving other keys, and unwrapping other keys.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:61:23: warning: static property 'defaultPrivateKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 59 |
 60 |     /// The default usage of a private key includes decryption, digital signing, deriving other keys, and unwrapping other keys.
 61 |     public static let defaultPrivateKey: KeyUsagePolicy = [.canDecrypt, .canDerive, .canSign, .canUnwrap]
    |                       |- warning: static property 'defaultPrivateKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultPrivateKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |
 63 |     var securityFrameworkKeyArray: [CFString] {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:120:24: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Fluent interface for searching the keychain for cryptographic keys.
    :
110 |
111 | /// Encapsulates the cryptographic key's class (public, private, or symmetric).
112 | public enum KeyClass {
    |             `- note: consider making enum 'KeyClass' conform to the 'Sendable' protocol
113 |     /// Represents a private key
114 |     case `private`
    :
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:15:23: warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
13 |
14 |     /// Get the metadata attributes for the item.
15 |     public static let attributes           = KeychainDataOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'attributes' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |     /// Get the raw unencrypted data for the item.
17 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:19:23: warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
17 |     ///
18 |     /// Using this will generate a user prompt on macOS if the data exists but your app does not have access to it.
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'data' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:21:23: warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'persistantReference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:23:23: warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
   |                       |- warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'reference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 |     /// Typically most apps will just want to read the secure data.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:26:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
24 |
25 |     /// Typically most apps will just want to read the secure data.
26 |     public static let `default`: KeychainDataOptions = [.data]
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 |     /// Get all of the possible data about the keychain item.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:29:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
27 |
28 |     /// Get all of the possible data about the keychain item.
29 |     public static let all: KeychainDataOptions = [.attributes, .data, .persistantReference, .reference]
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:41:23: warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
39 |
40 |     /// Compare strings without caring about the case of letters.
41 |     public static let caseInsensitive      = KeychainStringComparisonOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'caseInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:46:23: warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
44 |     /// Compare strings without caring about diacritical marks on letters; macOS only.
45 |     /// - Important: Available on macOS only.
46 |     public static let diacriticInsensitive = KeychainStringComparisonOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'diacriticInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:50:23: warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
49 |     /// - Important: Available on macOS only.
50 |     public static let widthInsensitive     = KeychainStringComparisonOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'widthInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | #endif
52 | }
[88/96] Compiling Haversack KeychainQueryOptions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:49:23: warning: static property 'canEncrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 47 |     }
 48 |
 49 |     public static let canEncrypt    = KeyUsagePolicy(rawValue: 1 << 0)
    |                       |- warning: static property 'canEncrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canEncrypt' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:50:23: warning: static property 'canDecrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 48 |
 49 |     public static let canEncrypt    = KeyUsagePolicy(rawValue: 1 << 0)
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
    |                       |- warning: static property 'canDecrypt' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canDecrypt' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:51:23: warning: static property 'canDerive' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 49 |     public static let canEncrypt    = KeyUsagePolicy(rawValue: 1 << 0)
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
    |                       |- warning: static property 'canDerive' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canDerive' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:52:23: warning: static property 'canSign' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 50 |     public static let canDecrypt    = KeyUsagePolicy(rawValue: 1 << 1)
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
    |                       |- warning: static property 'canSign' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canSign' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:53:23: warning: static property 'canVerify' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 51 |     public static let canDerive     = KeyUsagePolicy(rawValue: 1 << 2)
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
    |                       |- warning: static property 'canVerify' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canVerify' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
 55 |     public static let canUnwrap     = KeyUsagePolicy(rawValue: 1 << 6)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:54:23: warning: static property 'canWrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 52 |     public static let canSign       = KeyUsagePolicy(rawValue: 1 << 3)
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
    |                       |- warning: static property 'canWrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canWrap' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 55 |     public static let canUnwrap     = KeyUsagePolicy(rawValue: 1 << 6)
 56 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:55:23: warning: static property 'canUnwrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 53 |     public static let canVerify     = KeyUsagePolicy(rawValue: 1 << 4)
 54 |     public static let canWrap       = KeyUsagePolicy(rawValue: 1 << 5)
 55 |     public static let canUnwrap     = KeyUsagePolicy(rawValue: 1 << 6)
    |                       |- warning: static property 'canUnwrap' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'canUnwrap' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 56 |
 57 |     /// The default usage of a public key includes encryption, deriving other keys, and verifying digital signatures.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:58:23: warning: static property 'defaultPublicKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 56 |
 57 |     /// The default usage of a public key includes encryption, deriving other keys, and verifying digital signatures.
 58 |     public static let defaultPublicKey: KeyUsagePolicy = [.canEncrypt, .canDerive, .canVerify]
    |                       |- warning: static property 'defaultPublicKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultPublicKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 59 |
 60 |     /// The default usage of a private key includes decryption, digital signing, deriving other keys, and unwrapping other keys.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyBaseQuerying.swift:61:23: warning: static property 'defaultPrivateKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
 40 |
 41 | /// Encapsulates how cryptographic keys may be used.
 42 | public struct KeyUsagePolicy: OptionSet {
    |               `- note: consider making struct 'KeyUsagePolicy' conform to the 'Sendable' protocol
 43 |     public let rawValue: Int
 44 |
    :
 59 |
 60 |     /// The default usage of a private key includes decryption, digital signing, deriving other keys, and unwrapping other keys.
 61 |     public static let defaultPrivateKey: KeyUsagePolicy = [.canDecrypt, .canDerive, .canSign, .canUnwrap]
    |                       |- warning: static property 'defaultPrivateKey' is not concurrency-safe because non-'Sendable' type 'KeyUsagePolicy' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'defaultPrivateKey' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 62 |
 63 |     var securityFrameworkKeyArray: [CFString] {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:120:24: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Fluent interface for searching the keychain for cryptographic keys.
    :
110 |
111 | /// Encapsulates the cryptographic key's class (public, private, or symmetric).
112 | public enum KeyClass {
    |             `- note: consider making enum 'KeyClass' conform to the 'Sendable' protocol
113 |     /// Represents a private key
114 |     case `private`
    :
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:15:23: warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
13 |
14 |     /// Get the metadata attributes for the item.
15 |     public static let attributes           = KeychainDataOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'attributes' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |     /// Get the raw unencrypted data for the item.
17 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:19:23: warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
17 |     ///
18 |     /// Using this will generate a user prompt on macOS if the data exists but your app does not have access to it.
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'data' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:21:23: warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'persistantReference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:23:23: warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
   |                       |- warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'reference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 |     /// Typically most apps will just want to read the secure data.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:26:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
24 |
25 |     /// Typically most apps will just want to read the secure data.
26 |     public static let `default`: KeychainDataOptions = [.data]
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 |     /// Get all of the possible data about the keychain item.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:29:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
27 |
28 |     /// Get all of the possible data about the keychain item.
29 |     public static let all: KeychainDataOptions = [.attributes, .data, .persistantReference, .reference]
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:41:23: warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
39 |
40 |     /// Compare strings without caring about the case of letters.
41 |     public static let caseInsensitive      = KeychainStringComparisonOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'caseInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:46:23: warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
44 |     /// Compare strings without caring about diacritical marks on letters; macOS only.
45 |     /// - Important: Available on macOS only.
46 |     public static let diacriticInsensitive = KeychainStringComparisonOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'diacriticInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:50:23: warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
49 |     /// - Important: Available on macOS only.
50 |     public static let widthInsensitive     = KeychainStringComparisonOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'widthInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | #endif
52 | }
[89/96] Compiling Haversack CertificateEntity.swift
[90/96] Compiling Haversack Data+X501Name.swift
[91/96] Compiling Haversack GenericPasswordEntity.swift
[92/96] Compiling Haversack IdentityEntity.swift
[93/96] Compiling Haversack InternetPasswordEntity.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:53:28: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.NetworkProtocol]' may have shared mutable state; this is an error in the Swift 6 language mode
 51 |         case POP3S
 52 |
 53 |         private static let translation: [CFString: NetworkProtocol] = [
    |                            `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.NetworkProtocol]' may have shared mutable state; this is an error in the Swift 6 language mode
 54 |             kSecAttrProtocolFTP: FTP,
 55 |             kSecAttrProtocolFTPAccount: FTPAccount,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Represents a password to an account on another computer or website in the keychain.
    :
 18 |     /// A communications protocol for internet passwords.
 19 |     /// - Note: Mirrors the `kSecAttrProtocol...` constants.
 20 |     public enum NetworkProtocol {
    |                 `- note: consider making enum 'NetworkProtocol' conform to the 'Sendable' protocol
 21 |         case FTP
 22 |         case FTPAccount
    :
 51 |         case POP3S
 52 |
 53 |         private static let translation: [CFString: NetworkProtocol] = [
    |                            |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |             kSecAttrProtocolFTP: FTP,
 55 |             kSecAttrProtocolFTPAccount: FTPAccount,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:112:28: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.AuthenticationType]' may have shared mutable state; this is an error in the Swift 6 language mode
100 |     /// An authentication scheme for internet passwords.
101 |     /// - Note: Mirrors the `kSecAttrAuthenticationType...` constants.
102 |     public enum AuthenticationType {
    |                 `- note: consider making enum 'AuthenticationType' conform to the 'Sendable' protocol
103 |         case NTLM
104 |         case MSN
    :
110 |         case `default`
111 |
112 |         private static let translation: [CFString: AuthenticationType] = [
    |                            |- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.AuthenticationType]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                            |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
113 |             kSecAttrAuthenticationTypeNTLM: NTLM,
114 |             kSecAttrAuthenticationTypeMSN: MSN,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
[94/96] Compiling Haversack KeyEntity.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:53:28: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.NetworkProtocol]' may have shared mutable state; this is an error in the Swift 6 language mode
 51 |         case POP3S
 52 |
 53 |         private static let translation: [CFString: NetworkProtocol] = [
    |                            `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.NetworkProtocol]' may have shared mutable state; this is an error in the Swift 6 language mode
 54 |             kSecAttrProtocolFTP: FTP,
 55 |             kSecAttrProtocolFTPAccount: FTPAccount,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Represents a password to an account on another computer or website in the keychain.
    :
 18 |     /// A communications protocol for internet passwords.
 19 |     /// - Note: Mirrors the `kSecAttrProtocol...` constants.
 20 |     public enum NetworkProtocol {
    |                 `- note: consider making enum 'NetworkProtocol' conform to the 'Sendable' protocol
 21 |         case FTP
 22 |         case FTPAccount
    :
 51 |         case POP3S
 52 |
 53 |         private static let translation: [CFString: NetworkProtocol] = [
    |                            |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |             kSecAttrProtocolFTP: FTP,
 55 |             kSecAttrProtocolFTPAccount: FTPAccount,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:112:28: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.AuthenticationType]' may have shared mutable state; this is an error in the Swift 6 language mode
100 |     /// An authentication scheme for internet passwords.
101 |     /// - Note: Mirrors the `kSecAttrAuthenticationType...` constants.
102 |     public enum AuthenticationType {
    |                 `- note: consider making enum 'AuthenticationType' conform to the 'Sendable' protocol
103 |         case NTLM
104 |         case MSN
    :
110 |         case `default`
111 |
112 |         private static let translation: [CFString: AuthenticationType] = [
    |                            |- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.AuthenticationType]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                            |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
113 |             kSecAttrAuthenticationTypeNTLM: NTLM,
114 |             kSecAttrAuthenticationTypeMSN: MSN,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
[95/96] Compiling Haversack KeychainStorable.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:53:28: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.NetworkProtocol]' may have shared mutable state; this is an error in the Swift 6 language mode
 51 |         case POP3S
 52 |
 53 |         private static let translation: [CFString: NetworkProtocol] = [
    |                            `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.NetworkProtocol]' may have shared mutable state; this is an error in the Swift 6 language mode
 54 |             kSecAttrProtocolFTP: FTP,
 55 |             kSecAttrProtocolFTPAccount: FTPAccount,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Represents a password to an account on another computer or website in the keychain.
    :
 18 |     /// A communications protocol for internet passwords.
 19 |     /// - Note: Mirrors the `kSecAttrProtocol...` constants.
 20 |     public enum NetworkProtocol {
    |                 `- note: consider making enum 'NetworkProtocol' conform to the 'Sendable' protocol
 21 |         case FTP
 22 |         case FTPAccount
    :
 51 |         case POP3S
 52 |
 53 |         private static let translation: [CFString: NetworkProtocol] = [
    |                            |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |             kSecAttrProtocolFTP: FTP,
 55 |             kSecAttrProtocolFTPAccount: FTPAccount,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:112:28: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.AuthenticationType]' may have shared mutable state; this is an error in the Swift 6 language mode
100 |     /// An authentication scheme for internet passwords.
101 |     /// - Note: Mirrors the `kSecAttrAuthenticationType...` constants.
102 |     public enum AuthenticationType {
    |                 `- note: consider making enum 'AuthenticationType' conform to the 'Sendable' protocol
103 |         case NTLM
104 |         case MSN
    :
110 |         case `default`
111 |
112 |         private static let translation: [CFString: AuthenticationType] = [
    |                            |- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.AuthenticationType]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                            |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
113 |             kSecAttrAuthenticationTypeNTLM: NTLM,
114 |             kSecAttrAuthenticationTypeMSN: MSN,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
[96/96] Compiling Haversack PasswordBaseEntity.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:53:28: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.NetworkProtocol]' may have shared mutable state; this is an error in the Swift 6 language mode
 51 |         case POP3S
 52 |
 53 |         private static let translation: [CFString: NetworkProtocol] = [
    |                            `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.NetworkProtocol]' may have shared mutable state; this is an error in the Swift 6 language mode
 54 |             kSecAttrProtocolFTP: FTP,
 55 |             kSecAttrProtocolFTPAccount: FTPAccount,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Represents a password to an account on another computer or website in the keychain.
    :
 18 |     /// A communications protocol for internet passwords.
 19 |     /// - Note: Mirrors the `kSecAttrProtocol...` constants.
 20 |     public enum NetworkProtocol {
    |                 `- note: consider making enum 'NetworkProtocol' conform to the 'Sendable' protocol
 21 |         case FTP
 22 |         case FTPAccount
    :
 51 |         case POP3S
 52 |
 53 |         private static let translation: [CFString: NetworkProtocol] = [
    |                            |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 54 |             kSecAttrProtocolFTP: FTP,
 55 |             kSecAttrProtocolFTPAccount: FTPAccount,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Entities/InternetPasswordEntity.swift:112:28: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.AuthenticationType]' may have shared mutable state; this is an error in the Swift 6 language mode
100 |     /// An authentication scheme for internet passwords.
101 |     /// - Note: Mirrors the `kSecAttrAuthenticationType...` constants.
102 |     public enum AuthenticationType {
    |                 `- note: consider making enum 'AuthenticationType' conform to the 'Sendable' protocol
103 |         case NTLM
104 |         case MSN
    :
110 |         case `default`
111 |
112 |         private static let translation: [CFString: AuthenticationType] = [
    |                            |- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : InternetPasswordEntity.AuthenticationType]' may have shared mutable state; this is an error in the Swift 6 language mode
    |                            |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                            `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
113 |             kSecAttrAuthenticationTypeNTLM: NTLM,
114 |             kSecAttrAuthenticationTypeMSN: MSN,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
[97/101] Emitting module HaversackMock
[98/101] Compiling HaversackMock HaversackEphemeralStrategy.swift
[99/101] Compiling HaversackCryptoKit GenericPasswordConvertible+CryptoKit.swift
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:9:1: warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
 7 |
 8 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 9 | extension Curve25519.KeyAgreement.PrivateKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
10 |     public static func make(fromRaw data: Data) throws -> Self {
11 |         return try Self.init(rawRepresentation: data)
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:16:1: warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
14 |
15 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
16 | extension Curve25519.Signing.PrivateKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
17 |     public static func make(fromRaw data: Data) throws -> Self {
18 |         return try Self.init(rawRepresentation: data)
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:23:1: warning: extension declares a conformance of imported type 'SymmetricKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
21 |
22 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
23 | extension SymmetricKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'SymmetricKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
24 |     public static func make(fromRaw data: Data) throws -> Self {
25 |         return Self.init(data: data)
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:36:1: warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
34 |
35 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
36 | extension SecureEnclave.P256.KeyAgreement.PrivateKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
37 |     public static func make(fromRaw data: Data) throws -> Self {
38 |         return try Self.init(dataRepresentation: data)
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:47:1: warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
45 |
46 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
47 | extension SecureEnclave.P256.Signing.PrivateKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
48 |     public static func make(fromRaw data: Data) throws -> Self {
49 |         return try Self.init(dataRepresentation: data)
[100/101] Emitting module HaversackCryptoKit
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:9:1: warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
 7 |
 8 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 9 | extension Curve25519.KeyAgreement.PrivateKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
10 |     public static func make(fromRaw data: Data) throws -> Self {
11 |         return try Self.init(rawRepresentation: data)
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:16:1: warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
14 |
15 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
16 | extension Curve25519.Signing.PrivateKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
17 |     public static func make(fromRaw data: Data) throws -> Self {
18 |         return try Self.init(rawRepresentation: data)
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:23:1: warning: extension declares a conformance of imported type 'SymmetricKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
21 |
22 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
23 | extension SymmetricKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'SymmetricKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
24 |     public static func make(fromRaw data: Data) throws -> Self {
25 |         return Self.init(data: data)
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:36:1: warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
34 |
35 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
36 | extension SecureEnclave.P256.KeyAgreement.PrivateKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
37 |     public static func make(fromRaw data: Data) throws -> Self {
38 |         return try Self.init(dataRepresentation: data)
/Users/admin/builder/spi-builder-workspace/Sources/HaversackCryptoKit/GenericPasswordConvertible+CryptoKit.swift:47:1: warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
45 |
46 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
47 | extension SecureEnclave.P256.Signing.PrivateKey: GenericPasswordConvertible {
   | |- warning: extension declares a conformance of imported type 'PrivateKey' to imported protocol 'GenericPasswordConvertible'; this will not behave correctly if the owners of 'CryptoKit' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
48 |     public static func make(fromRaw data: Data) throws -> Self {
49 |         return try Self.init(dataRepresentation: data)
[101/101] Compiling HaversackCryptoKit SecKeyConvertible.swift
Build complete! (15.89s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-collections",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.4",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-collections"
    },
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "Haversack",
  "name" : "Haversack",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "5.0"
    }
  ],
  "products" : [
    {
      "name" : "Haversack",
      "targets" : [
        "Haversack"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "HaversackCryptoKit",
      "targets" : [
        "HaversackCryptoKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "HaversackMock",
      "targets" : [
        "HaversackMock"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "HaversackTests",
      "module_type" : "SwiftTarget",
      "name" : "HaversackTests",
      "path" : "Tests/HaversackTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/HaversackTests/TestResources",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "CertificateIntegrationTests.swift",
        "Data+X501NameTests.swift",
        "EphemeralStrategyTests.swift",
        "GenericPasswordConvertibleTests.swift",
        "GenericPasswordIntegrationTests.swift",
        "HaversackAsyncAwaitTests.swift",
        "HaversackTests.swift",
        "IdentityIntegrationTests.swift",
        "InternetPasswordIntegrationTests.swift",
        "KeyGenerationConfigTests.swift",
        "KeyGenerationIntegrationTests.swift",
        "KeychainExportConfigTests.swift",
        "KeychainExportIntegrationTests.swift",
        "KeychainFileIntegrationTests.swift",
        "KeychainImportConfigTests.swift",
        "KeychainImportIntegrationTests.swift",
        "QueryCertificateTests.swift",
        "QueryIdentityTests.swift",
        "QueryKeyTests.swift",
        "QueryPasswordTests.swift",
        "SystemKeychainIntegrationTests.swift",
        "XCTestCase+TestResources.swift"
      ],
      "target_dependencies" : [
        "HaversackMock"
      ],
      "type" : "test"
    },
    {
      "c99name" : "HaversackMock",
      "module_type" : "SwiftTarget",
      "name" : "HaversackMock",
      "path" : "Sources/HaversackMock",
      "product_memberships" : [
        "HaversackMock"
      ],
      "sources" : [
        "HaversackEphemeralStrategy.swift"
      ],
      "target_dependencies" : [
        "Haversack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "HaversackCryptoKit",
      "module_type" : "SwiftTarget",
      "name" : "HaversackCryptoKit",
      "path" : "Sources/HaversackCryptoKit",
      "product_memberships" : [
        "HaversackCryptoKit"
      ],
      "sources" : [
        "GenericPasswordConvertible+CryptoKit.swift",
        "SecKeyConvertible.swift"
      ],
      "target_dependencies" : [
        "Haversack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Haversack",
      "module_type" : "SwiftTarget",
      "name" : "Haversack",
      "path" : "Sources/Haversack",
      "product_dependencies" : [
        "OrderedCollections"
      ],
      "product_memberships" : [
        "Haversack",
        "HaversackCryptoKit",
        "HaversackMock"
      ],
      "sources" : [
        "Entities/CertificateEntity.swift",
        "Entities/Data+X501Name.swift",
        "Entities/GenericPasswordEntity.swift",
        "Entities/IdentityEntity.swift",
        "Entities/InternetPasswordEntity.swift",
        "Entities/KeyEntity.swift",
        "Entities/KeychainStorable.swift",
        "Entities/PasswordBaseEntity.swift",
        "GenericPasswordConvertible.swift",
        "Haversack+AsyncAwait.swift",
        "Haversack.swift",
        "HaversackConfiguration.swift",
        "HaversackError.swift",
        "HaversackStrategy.swift",
        "ImportExport/KeychainExportConfig.swift",
        "ImportExport/KeychainImportConfig.swift",
        "ImportExport/KeychainPortable.swift",
        "ImportExport/PassphraseStrategy.swift",
        "ImportExport/PrivateKeyImporting.swift",
        "KeyGenerationConfig.swift",
        "Logs.swift",
        "Queries/CertificateBaseQuerying.swift",
        "Queries/CertificateQuery.swift",
        "Queries/GenericPasswordQuery.swift",
        "Queries/IdentityQuery.swift",
        "Queries/InternetPasswordQuery.swift",
        "Queries/KeyBaseQuerying.swift",
        "Queries/KeyQuery.swift",
        "Queries/KeychainQueryOptions.swift",
        "Queries/KeychainQuerying.swift",
        "Queries/PasswordBaseQuerying.swift",
        "Security/ItemSecurity.swift",
        "Security/KeychainFile.swift",
        "Security/KeychainItemRetrievability.swift",
        "Security/RetrievabilityLevel.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Done.