The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Haversack, reference main (adcec9), with Swift 6.1 for macOS (SPM) on 14 Jan 2026 20:29:51 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

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 makeSearchQuery(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:54: 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 makeSearchQuery(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 makeSearchQuery(query, singleItem: false)
    |                                      `- 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:54: 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 makeSearchQuery(query, singleItem: false)
    |                                                      `- 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:175: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
    :
173 |
174 |             do {
175 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                     `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
176 |                 result = nil
177 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:175:47: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
166 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
167 |     ///   block; a `nil` represents no error.
168 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
169 |                                             completionQueue: OperationQueue? = nil,
170 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
173 |
174 |             do {
175 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                                               `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
176 |                 result = nil
177 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:183:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
181 |             if let actualQueue = completionQueue {
182 |                 actualQueue.addOperation {
183 |                     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'
184 |                 }
185 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:183:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
181 |             if let actualQueue = completionQueue {
182 |                 actualQueue.addOperation {
183 |                     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'
184 |                 }
185 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:220: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
    :
218 |
219 |             do {
220 |                 let localQuery = try makeDeleteQuery(query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
221 |                 try self.configuration.strategy.delete(localQuery.query, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
222 |                 result = nil
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:220:54: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
211 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
212 |     ///   block; a `nil` represents no error.
213 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
214 |                                             completionQueue: OperationQueue? = nil,
215 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
218 |
219 |             do {
220 |                 let localQuery = try makeDeleteQuery(query)
    |                                                      `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
221 |                 try self.configuration.strategy.delete(localQuery.query, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
222 |                 result = nil
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:229:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
227 |             if let actualQueue = completionQueue {
228 |                 actualQueue.addOperation {
229 |                     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'
230 |                 }
231 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:229:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
227 |             if let actualQueue = completionQueue {
228 |                 actualQueue.addOperation {
229 |                     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'
230 |                 }
231 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:304: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
    :
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                               `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:304:71: warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                       `- warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } 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:304:93: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                                             `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } 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:310:37: warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
308 |             }
309 |
310 |             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'
311 |         }
312 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:402:17: warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
400 |         if let actualQueue = queue {
401 |             actualQueue.addOperation {
402 |                 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'
403 |             }
404 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:402:35: warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
396 | #endif
397 |
398 |     private func call<T>(completionHandler: @escaping (_ result: Result<T, Error>) -> Void,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
399 |                          onQueue queue: OperationQueue?, with result: Result<T, Error>) {
400 |         if let actualQueue = queue {
401 |             actualQueue.addOperation {
402 |                 completionHandler(result)
    |                                   `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
403 |             }
404 |         } else {
[98/126] 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 makeSearchQuery(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:54: 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 makeSearchQuery(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 makeSearchQuery(query, singleItem: false)
    |                                      `- 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:54: 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 makeSearchQuery(query, singleItem: false)
    |                                                      `- 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:175: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
    :
173 |
174 |             do {
175 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                     `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
176 |                 result = nil
177 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:175:47: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
166 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
167 |     ///   block; a `nil` represents no error.
168 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
169 |                                             completionQueue: OperationQueue? = nil,
170 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
173 |
174 |             do {
175 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                                               `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
176 |                 result = nil
177 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:183:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
181 |             if let actualQueue = completionQueue {
182 |                 actualQueue.addOperation {
183 |                     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'
184 |                 }
185 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:183:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
181 |             if let actualQueue = completionQueue {
182 |                 actualQueue.addOperation {
183 |                     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'
184 |                 }
185 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:220: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
    :
218 |
219 |             do {
220 |                 let localQuery = try makeDeleteQuery(query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
221 |                 try self.configuration.strategy.delete(localQuery.query, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
222 |                 result = nil
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:220:54: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
211 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
212 |     ///   block; a `nil` represents no error.
213 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
214 |                                             completionQueue: OperationQueue? = nil,
215 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
218 |
219 |             do {
220 |                 let localQuery = try makeDeleteQuery(query)
    |                                                      `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
221 |                 try self.configuration.strategy.delete(localQuery.query, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
222 |                 result = nil
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:229:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
227 |             if let actualQueue = completionQueue {
228 |                 actualQueue.addOperation {
229 |                     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'
230 |                 }
231 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:229:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
227 |             if let actualQueue = completionQueue {
228 |                 actualQueue.addOperation {
229 |                     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'
230 |                 }
231 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:304: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
    :
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                               `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:304:71: warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                       `- warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } 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:304:93: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                                             `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } 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:310:37: warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
308 |             }
309 |
310 |             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'
311 |         }
312 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:402:17: warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
400 |         if let actualQueue = queue {
401 |             actualQueue.addOperation {
402 |                 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'
403 |             }
404 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:402:35: warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
396 | #endif
397 |
398 |     private func call<T>(completionHandler: @escaping (_ result: Result<T, Error>) -> Void,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
399 |                          onQueue queue: OperationQueue?, with result: Result<T, Error>) {
400 |         if let actualQueue = queue {
401 |             actualQueue.addOperation {
402 |                 completionHandler(result)
    |                                   `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
403 |             }
404 |         } else {
[99/126] 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 makeSearchQuery(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:54: 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 makeSearchQuery(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 makeSearchQuery(query, singleItem: false)
    |                                      `- 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:54: 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 makeSearchQuery(query, singleItem: false)
    |                                                      `- 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:175: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
    :
173 |
174 |             do {
175 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                     `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
176 |                 result = nil
177 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:175:47: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
166 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
167 |     ///   block; a `nil` represents no error.
168 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
169 |                                             completionQueue: OperationQueue? = nil,
170 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
173 |
174 |             do {
175 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                                               `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
176 |                 result = nil
177 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:183:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
181 |             if let actualQueue = completionQueue {
182 |                 actualQueue.addOperation {
183 |                     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'
184 |                 }
185 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:183:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
181 |             if let actualQueue = completionQueue {
182 |                 actualQueue.addOperation {
183 |                     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'
184 |                 }
185 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:220: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
    :
218 |
219 |             do {
220 |                 let localQuery = try makeDeleteQuery(query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
221 |                 try self.configuration.strategy.delete(localQuery.query, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
222 |                 result = nil
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:220:54: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
211 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
212 |     ///   block; a `nil` represents no error.
213 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
214 |                                             completionQueue: OperationQueue? = nil,
215 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
218 |
219 |             do {
220 |                 let localQuery = try makeDeleteQuery(query)
    |                                                      `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
221 |                 try self.configuration.strategy.delete(localQuery.query, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
222 |                 result = nil
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:229:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
227 |             if let actualQueue = completionQueue {
228 |                 actualQueue.addOperation {
229 |                     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'
230 |                 }
231 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:229:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
227 |             if let actualQueue = completionQueue {
228 |                 actualQueue.addOperation {
229 |                     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'
230 |                 }
231 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:304: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
    :
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                               `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:304:71: warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                       `- warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } 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:304:93: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                                             `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } 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:310:37: warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
308 |             }
309 |
310 |             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'
311 |         }
312 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:402:17: warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
400 |         if let actualQueue = queue {
401 |             actualQueue.addOperation {
402 |                 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'
403 |             }
404 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:402:35: warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
396 | #endif
397 |
398 |     private func call<T>(completionHandler: @escaping (_ result: Result<T, Error>) -> Void,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
399 |                          onQueue queue: OperationQueue?, with result: Result<T, Error>) {
400 |         if let actualQueue = queue {
401 |             actualQueue.addOperation {
402 |                 completionHandler(result)
    |                                   `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
403 |             }
404 |         } else {
[100/126] 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 makeSearchQuery(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:54: 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 makeSearchQuery(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 makeSearchQuery(query, singleItem: false)
    |                                      `- 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:54: 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 makeSearchQuery(query, singleItem: false)
    |                                                      `- 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:175: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
    :
173 |
174 |             do {
175 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                     `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
176 |                 result = nil
177 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:175:47: warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
166 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
167 |     ///   block; a `nil` represents no error.
168 |     public func delete<T: KeychainStorable>(_ item: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
169 |                                             completionQueue: OperationQueue? = nil,
170 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
173 |
174 |             do {
175 |                 try self.unsynchronizedDelete(item, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
    |                                               `- warning: capture of 'item' with non-sendable type 'T' in a '@Sendable' closure
176 |                 result = nil
177 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:183:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
181 |             if let actualQueue = completionQueue {
182 |                 actualQueue.addOperation {
183 |                     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'
184 |                 }
185 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:183:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
181 |             if let actualQueue = completionQueue {
182 |                 actualQueue.addOperation {
183 |                     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'
184 |                 }
185 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:220: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
    :
218 |
219 |             do {
220 |                 let localQuery = try makeDeleteQuery(query)
    |                                      `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
221 |                 try self.configuration.strategy.delete(localQuery.query, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
222 |                 result = nil
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:220:54: warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
211 |     ///   - error: If an error occurs during the delete operation it will be given to the completion
212 |     ///   block; a `nil` represents no error.
213 |     public func delete<T: KeychainQuerying>(where query: T, treatNotFoundAsSuccess: Bool = true,
    |                        `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
214 |                                             completionQueue: OperationQueue? = nil,
215 |                                             completion: @escaping (_ error: Error?) -> Void) {
    :
218 |
219 |             do {
220 |                 let localQuery = try makeDeleteQuery(query)
    |                                                      `- warning: capture of 'query' with non-sendable type 'T' in a '@Sendable' closure
221 |                 try self.configuration.strategy.delete(localQuery.query, treatNotFoundAsSuccess: treatNotFoundAsSuccess)
222 |                 result = nil
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:229:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
227 |             if let actualQueue = completionQueue {
228 |                 actualQueue.addOperation {
229 |                     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'
230 |                 }
231 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:229:21: warning: capture of 'completion' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
227 |             if let actualQueue = completionQueue {
228 |                 actualQueue.addOperation {
229 |                     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'
230 |                 }
231 |             } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:304: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
    :
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                               `- warning: capture of 'self' with non-sendable type 'Haversack' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:304:71: warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                       `- warning: capture of 'config' with non-sendable type 'KeyGenerationConfig' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } 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:304:93: warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
302 |
303 |             do {
304 |                 let key = try unsynchronizedKeyGeneration(fromConfig: config, itemSecurity: itemSecurity)
    |                                                                                             `- warning: capture of 'itemSecurity' with non-sendable type 'ItemSecurity' in a '@Sendable' closure
305 |                 result = .success(key)
306 |             } 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:310:37: warning: capture of 'completion' with non-sendable type '(Result<SecKey, any Error>) -> Void' in a '@Sendable' closure
308 |             }
309 |
310 |             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'
311 |         }
312 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:402:17: warning: capture of 'completionHandler' with non-sendable type '(Result<T, any Error>) -> Void' in a '@Sendable' closure
400 |         if let actualQueue = queue {
401 |             actualQueue.addOperation {
402 |                 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'
403 |             }
404 |         } else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Haversack.swift:402:35: warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
396 | #endif
397 |
398 |     private func call<T>(completionHandler: @escaping (_ result: Result<T, Error>) -> Void,
    |                       `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
399 |                          onQueue queue: OperationQueue?, with result: Result<T, Error>) {
400 |         if let actualQueue = queue {
401 |             actualQueue.addOperation {
402 |                 completionHandler(result)
    |                                   `- warning: capture of 'result' with non-sendable type 'Result<T, any Error>' in a '@Sendable' closure
403 |             }
404 |         } else {
[101/126] Compiling Haversack KeychainPortable.swift
[102/126] Compiling Haversack PassphraseStrategy.swift
[103/126] Compiling Haversack PrivateKeyImporting.swift
[104/126] Compiling Haversack KeyGenerationConfig.swift
[105/126] Compiling Haversack IdentityQuery.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] {
[106/126] Compiling Haversack InternetPasswordQuery.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] {
[107/126] 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] {
[108/126] Compiling Haversack PasswordBaseQuerying.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/ItemSecurity.swift:13:23: warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'ItemSecurity' may have shared mutable state; this is an error in the Swift 6 language mode
  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.
    :
 11 |     /// The item is retrievable only when the device is unlocked and does NOT synchronize to other devices.
 12 |     /// The item is not part of any app group or keychain group.
 13 |     public static let standard = ItemSecurity().retrievableNoThrow(when: .simple(.unlockedThisDeviceOnly))
    |                       |- warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'ItemSecurity' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'standard' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |     /// The keychain query.  **Do not** manipulate this directly.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:31:23: warning: static property 'systemRootCertificates' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | /// Locking/unlocking the keychain file is logged at the `.info` level.
 25 | /// All errors are logged at the `.error` level.
 26 | public class KeychainFile {
    |              `- note: class 'KeychainFile' does not conform to the 'Sendable' protocol
 27 |     /// The path to the system keychain that contains the globally trusted root CA certificates.
 28 |     static let rootCertificatesKeychainPath = "/System/Library/Keychains/SystemRootCertificates.keychain"
 29 |
 30 |     /// An instance of ``KeychainFile`` that points at the system root certificates keychain
 31 |     public static let systemRootCertificates = KeychainFile(at: rootCertificatesKeychainPath)
    |                       |- warning: static property 'systemRootCertificates' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'systemRootCertificates' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     /// The path to the system keychain.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:37:23: warning: static property 'system' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | /// Locking/unlocking the keychain file is logged at the `.info` level.
 25 | /// All errors are logged at the `.error` level.
 26 | public class KeychainFile {
    |              `- note: class 'KeychainFile' does not conform to the 'Sendable' protocol
 27 |     /// The path to the system keychain that contains the globally trusted root CA certificates.
 28 |     static let rootCertificatesKeychainPath = "/System/Library/Keychains/SystemRootCertificates.keychain"
    :
 35 |
 36 |     /// An instance of ``KeychainFile`` that points at the system keychain
 37 |     public static let system: KeychainFile = {
    |                       |- warning: static property 'system' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'system' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |         let legacySystemKeychainPath = "/Library/Keychains/System.keychain"
 39 |         var searchList: CFArray?
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:41:13: warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated
 39 |         var searchList: CFArray?
 40 |         let status = withUnsafeMutablePointer(to: &searchList) {
 41 |             SecKeychainCopyDomainSearchList(.system, UnsafeMutablePointer($0))
    |             `- warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated
 42 |         }
 43 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:85:13: warning: 'SecKeychainGetPath' was deprecated in macOS 10.10: SecKeychain is deprecated
 83 |         let pathName = UnsafeMutablePointer<CChar>.allocate(capacity: Int(pathLength))
 84 |         let status = withUnsafeMutablePointer(to: &pathLength) { pathLength in
 85 |             SecKeychainGetPath(reference, pathLength, pathName)
    |             `- warning: 'SecKeychainGetPath' was deprecated in macOS 10.10: SecKeychain is deprecated
 86 |         }
 87 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:127:22: warning: 'SecKeychainOpen' was deprecated in macOS 10.10: SecKeychain is deprecated
125 |     func open() throws {
126 |         os_log("Attempting to open keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
127 |         let status = SecKeychainOpen(path, &reference)
    |                      `- warning: 'SecKeychainOpen' was deprecated in macOS 10.10: SecKeychain is deprecated
128 |         if status != errSecSuccess {
129 |             os_log("SecKeychainOpen returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:159:22: warning: 'SecKeychainCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
157 |
158 |         os_log("Attempting to create keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
159 |         let status = SecKeychainCreate(path, UInt32(rawPassword.count), rawPassword, false, nil, &reference)
    |                      `- warning: 'SecKeychainCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
160 |         if status != errSecSuccess {
161 |             os_log("SecKeychainCreate returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:170:22: warning: 'SecKeychainDelete' was deprecated in macOS 10.10: SecKeychain is deprecated
168 |     public func delete() throws {
169 |         os_log("Attempting to delete keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
170 |         let status = SecKeychainDelete(reference)
    |                      `- warning: 'SecKeychainDelete' was deprecated in macOS 10.10: SecKeychain is deprecated
171 |         if status != errSecSuccess {
172 |             os_log("SecKeychainDelete returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:186:22: warning: 'SecKeychainGetStatus' was deprecated in macOS 10.10: SecKeychain is deprecated
184 |
185 |         var rawStatus: SecKeychainStatus = .zero
186 |         let status = SecKeychainGetStatus(keychain, &rawStatus)
    |                      `- warning: 'SecKeychainGetStatus' was deprecated in macOS 10.10: SecKeychain is deprecated
187 |         if status == errSecSuccess {
188 |             let keychainStatus = KeychainStatusOptions(rawValue: rawStatus)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:206:22: warning: 'SecKeychainLock' was deprecated in macOS 10.10: SecKeychain is deprecated
204 |
205 |         os_log("Attempting to lock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
206 |         let status = SecKeychainLock(keychain)
    |                      `- warning: 'SecKeychainLock' was deprecated in macOS 10.10: SecKeychain is deprecated
207 |         if status != errSecSuccess {
208 |             os_log("SecKeychainLock returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:228:22: warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
226 |             // We can't unlock the system keychain with our password; prompt the user if needed.
227 |             os_log("Attempting to unlock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
228 |             status = SecKeychainUnlock(keychain, 0, nil, false)
    |                      `- warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
229 |         } else {
230 |             guard let passwordFunc = passwordProvider else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:238:22: warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
236 |             let rawPassword = passwordFunc(path)
237 |             os_log("Attempting to unlock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
238 |             status = SecKeychainUnlock(keychain, UInt32(rawPassword.count), rawPassword, true)
    |                      `- warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
239 |         }
240 |         if status != errSecSuccess {
[109/126] Compiling Haversack ItemSecurity.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/ItemSecurity.swift:13:23: warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'ItemSecurity' may have shared mutable state; this is an error in the Swift 6 language mode
  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.
    :
 11 |     /// The item is retrievable only when the device is unlocked and does NOT synchronize to other devices.
 12 |     /// The item is not part of any app group or keychain group.
 13 |     public static let standard = ItemSecurity().retrievableNoThrow(when: .simple(.unlockedThisDeviceOnly))
    |                       |- warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'ItemSecurity' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'standard' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |     /// The keychain query.  **Do not** manipulate this directly.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:31:23: warning: static property 'systemRootCertificates' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | /// Locking/unlocking the keychain file is logged at the `.info` level.
 25 | /// All errors are logged at the `.error` level.
 26 | public class KeychainFile {
    |              `- note: class 'KeychainFile' does not conform to the 'Sendable' protocol
 27 |     /// The path to the system keychain that contains the globally trusted root CA certificates.
 28 |     static let rootCertificatesKeychainPath = "/System/Library/Keychains/SystemRootCertificates.keychain"
 29 |
 30 |     /// An instance of ``KeychainFile`` that points at the system root certificates keychain
 31 |     public static let systemRootCertificates = KeychainFile(at: rootCertificatesKeychainPath)
    |                       |- warning: static property 'systemRootCertificates' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'systemRootCertificates' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     /// The path to the system keychain.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:37:23: warning: static property 'system' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | /// Locking/unlocking the keychain file is logged at the `.info` level.
 25 | /// All errors are logged at the `.error` level.
 26 | public class KeychainFile {
    |              `- note: class 'KeychainFile' does not conform to the 'Sendable' protocol
 27 |     /// The path to the system keychain that contains the globally trusted root CA certificates.
 28 |     static let rootCertificatesKeychainPath = "/System/Library/Keychains/SystemRootCertificates.keychain"
    :
 35 |
 36 |     /// An instance of ``KeychainFile`` that points at the system keychain
 37 |     public static let system: KeychainFile = {
    |                       |- warning: static property 'system' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'system' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |         let legacySystemKeychainPath = "/Library/Keychains/System.keychain"
 39 |         var searchList: CFArray?
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:41:13: warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated
 39 |         var searchList: CFArray?
 40 |         let status = withUnsafeMutablePointer(to: &searchList) {
 41 |             SecKeychainCopyDomainSearchList(.system, UnsafeMutablePointer($0))
    |             `- warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated
 42 |         }
 43 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:85:13: warning: 'SecKeychainGetPath' was deprecated in macOS 10.10: SecKeychain is deprecated
 83 |         let pathName = UnsafeMutablePointer<CChar>.allocate(capacity: Int(pathLength))
 84 |         let status = withUnsafeMutablePointer(to: &pathLength) { pathLength in
 85 |             SecKeychainGetPath(reference, pathLength, pathName)
    |             `- warning: 'SecKeychainGetPath' was deprecated in macOS 10.10: SecKeychain is deprecated
 86 |         }
 87 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:127:22: warning: 'SecKeychainOpen' was deprecated in macOS 10.10: SecKeychain is deprecated
125 |     func open() throws {
126 |         os_log("Attempting to open keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
127 |         let status = SecKeychainOpen(path, &reference)
    |                      `- warning: 'SecKeychainOpen' was deprecated in macOS 10.10: SecKeychain is deprecated
128 |         if status != errSecSuccess {
129 |             os_log("SecKeychainOpen returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:159:22: warning: 'SecKeychainCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
157 |
158 |         os_log("Attempting to create keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
159 |         let status = SecKeychainCreate(path, UInt32(rawPassword.count), rawPassword, false, nil, &reference)
    |                      `- warning: 'SecKeychainCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
160 |         if status != errSecSuccess {
161 |             os_log("SecKeychainCreate returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:170:22: warning: 'SecKeychainDelete' was deprecated in macOS 10.10: SecKeychain is deprecated
168 |     public func delete() throws {
169 |         os_log("Attempting to delete keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
170 |         let status = SecKeychainDelete(reference)
    |                      `- warning: 'SecKeychainDelete' was deprecated in macOS 10.10: SecKeychain is deprecated
171 |         if status != errSecSuccess {
172 |             os_log("SecKeychainDelete returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:186:22: warning: 'SecKeychainGetStatus' was deprecated in macOS 10.10: SecKeychain is deprecated
184 |
185 |         var rawStatus: SecKeychainStatus = .zero
186 |         let status = SecKeychainGetStatus(keychain, &rawStatus)
    |                      `- warning: 'SecKeychainGetStatus' was deprecated in macOS 10.10: SecKeychain is deprecated
187 |         if status == errSecSuccess {
188 |             let keychainStatus = KeychainStatusOptions(rawValue: rawStatus)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:206:22: warning: 'SecKeychainLock' was deprecated in macOS 10.10: SecKeychain is deprecated
204 |
205 |         os_log("Attempting to lock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
206 |         let status = SecKeychainLock(keychain)
    |                      `- warning: 'SecKeychainLock' was deprecated in macOS 10.10: SecKeychain is deprecated
207 |         if status != errSecSuccess {
208 |             os_log("SecKeychainLock returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:228:22: warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
226 |             // We can't unlock the system keychain with our password; prompt the user if needed.
227 |             os_log("Attempting to unlock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
228 |             status = SecKeychainUnlock(keychain, 0, nil, false)
    |                      `- warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
229 |         } else {
230 |             guard let passwordFunc = passwordProvider else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:238:22: warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
236 |             let rawPassword = passwordFunc(path)
237 |             os_log("Attempting to unlock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
238 |             status = SecKeychainUnlock(keychain, UInt32(rawPassword.count), rawPassword, true)
    |                      `- warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
239 |         }
240 |         if status != errSecSuccess {
[110/126] Compiling Haversack KeychainFile.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/ItemSecurity.swift:13:23: warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'ItemSecurity' may have shared mutable state; this is an error in the Swift 6 language mode
  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.
    :
 11 |     /// The item is retrievable only when the device is unlocked and does NOT synchronize to other devices.
 12 |     /// The item is not part of any app group or keychain group.
 13 |     public static let standard = ItemSecurity().retrievableNoThrow(when: .simple(.unlockedThisDeviceOnly))
    |                       |- warning: static property 'standard' is not concurrency-safe because non-'Sendable' type 'ItemSecurity' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'standard' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |     /// The keychain query.  **Do not** manipulate this directly.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:31:23: warning: static property 'systemRootCertificates' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | /// Locking/unlocking the keychain file is logged at the `.info` level.
 25 | /// All errors are logged at the `.error` level.
 26 | public class KeychainFile {
    |              `- note: class 'KeychainFile' does not conform to the 'Sendable' protocol
 27 |     /// The path to the system keychain that contains the globally trusted root CA certificates.
 28 |     static let rootCertificatesKeychainPath = "/System/Library/Keychains/SystemRootCertificates.keychain"
 29 |
 30 |     /// An instance of ``KeychainFile`` that points at the system root certificates keychain
 31 |     public static let systemRootCertificates = KeychainFile(at: rootCertificatesKeychainPath)
    |                       |- warning: static property 'systemRootCertificates' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'systemRootCertificates' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 |
 33 |     /// The path to the system keychain.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:37:23: warning: static property 'system' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
 24 | /// Locking/unlocking the keychain file is logged at the `.info` level.
 25 | /// All errors are logged at the `.error` level.
 26 | public class KeychainFile {
    |              `- note: class 'KeychainFile' does not conform to the 'Sendable' protocol
 27 |     /// The path to the system keychain that contains the globally trusted root CA certificates.
 28 |     static let rootCertificatesKeychainPath = "/System/Library/Keychains/SystemRootCertificates.keychain"
    :
 35 |
 36 |     /// An instance of ``KeychainFile`` that points at the system keychain
 37 |     public static let system: KeychainFile = {
    |                       |- warning: static property 'system' is not concurrency-safe because non-'Sendable' type 'KeychainFile' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'system' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |         let legacySystemKeychainPath = "/Library/Keychains/System.keychain"
 39 |         var searchList: CFArray?
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:41:13: warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated
 39 |         var searchList: CFArray?
 40 |         let status = withUnsafeMutablePointer(to: &searchList) {
 41 |             SecKeychainCopyDomainSearchList(.system, UnsafeMutablePointer($0))
    |             `- warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated
 42 |         }
 43 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:85:13: warning: 'SecKeychainGetPath' was deprecated in macOS 10.10: SecKeychain is deprecated
 83 |         let pathName = UnsafeMutablePointer<CChar>.allocate(capacity: Int(pathLength))
 84 |         let status = withUnsafeMutablePointer(to: &pathLength) { pathLength in
 85 |             SecKeychainGetPath(reference, pathLength, pathName)
    |             `- warning: 'SecKeychainGetPath' was deprecated in macOS 10.10: SecKeychain is deprecated
 86 |         }
 87 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:127:22: warning: 'SecKeychainOpen' was deprecated in macOS 10.10: SecKeychain is deprecated
125 |     func open() throws {
126 |         os_log("Attempting to open keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
127 |         let status = SecKeychainOpen(path, &reference)
    |                      `- warning: 'SecKeychainOpen' was deprecated in macOS 10.10: SecKeychain is deprecated
128 |         if status != errSecSuccess {
129 |             os_log("SecKeychainOpen returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:159:22: warning: 'SecKeychainCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
157 |
158 |         os_log("Attempting to create keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
159 |         let status = SecKeychainCreate(path, UInt32(rawPassword.count), rawPassword, false, nil, &reference)
    |                      `- warning: 'SecKeychainCreate' was deprecated in macOS 10.10: SecKeychain is deprecated
160 |         if status != errSecSuccess {
161 |             os_log("SecKeychainCreate returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:170:22: warning: 'SecKeychainDelete' was deprecated in macOS 10.10: SecKeychain is deprecated
168 |     public func delete() throws {
169 |         os_log("Attempting to delete keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
170 |         let status = SecKeychainDelete(reference)
    |                      `- warning: 'SecKeychainDelete' was deprecated in macOS 10.10: SecKeychain is deprecated
171 |         if status != errSecSuccess {
172 |             os_log("SecKeychainDelete returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:186:22: warning: 'SecKeychainGetStatus' was deprecated in macOS 10.10: SecKeychain is deprecated
184 |
185 |         var rawStatus: SecKeychainStatus = .zero
186 |         let status = SecKeychainGetStatus(keychain, &rawStatus)
    |                      `- warning: 'SecKeychainGetStatus' was deprecated in macOS 10.10: SecKeychain is deprecated
187 |         if status == errSecSuccess {
188 |             let keychainStatus = KeychainStatusOptions(rawValue: rawStatus)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:206:22: warning: 'SecKeychainLock' was deprecated in macOS 10.10: SecKeychain is deprecated
204 |
205 |         os_log("Attempting to lock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
206 |         let status = SecKeychainLock(keychain)
    |                      `- warning: 'SecKeychainLock' was deprecated in macOS 10.10: SecKeychain is deprecated
207 |         if status != errSecSuccess {
208 |             os_log("SecKeychainLock returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:228:22: warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
226 |             // We can't unlock the system keychain with our password; prompt the user if needed.
227 |             os_log("Attempting to unlock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
228 |             status = SecKeychainUnlock(keychain, 0, nil, false)
    |                      `- warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
229 |         } else {
230 |             guard let passwordFunc = passwordProvider else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:238:22: warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
236 |             let rawPassword = passwordFunc(path)
237 |             os_log("Attempting to unlock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
238 |             status = SecKeychainUnlock(keychain, UInt32(rawPassword.count), rawPassword, true)
    |                      `- warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated
239 |         }
240 |         if status != errSecSuccess {
[111/126] Compiling Haversack HaversackError.swift
[112/126] Compiling Haversack HaversackStrategy.swift
[113/126] Compiling Haversack KeychainExportConfig.swift
[114/126] Compiling Haversack KeychainImportConfig.swift
[115/126] 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 | }
[116/126] 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 | }
[117/126] 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 | }
[118/126] 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 | }
[119/126] Compiling Haversack Logs.swift
[120/126] Compiling Haversack CertificateBaseQuerying.swift
[121/126] Compiling Haversack CertificateQuery.swift
[122/126] Compiling Haversack GenericPasswordQuery.swift
[123/126] Compiling Haversack CertificateEntity.swift
[124/126] Compiling Haversack Data+X501Name.swift
[125/126] Compiling Haversack GenericPasswordEntity.swift
[126/126] Compiling Haversack IdentityEntity.swift
[127/132] Compiling HaversackCryptoKit GenericPasswordConvertible+CryptoKit.swift
[128/132] Emitting module HaversackCryptoKit
[129/132] Compiling HaversackCryptoKit SecKeyConvertible.swift
[130/132] Compiling HaversackMock HaversackEphemeralStrategy.swift
[131/132] Emitting module HaversackMock
[132/132] Compiling HaversackMock HaversackEphemeralStrategy+mocking.swift
Build complete! (29.75s)
Fetching https://github.com/apple/swift-docc-plugin
Fetching https://github.com/apple/swift-collections from cache
[1/2158] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin from cache (1.40s)
Fetched https://github.com/apple/swift-collections from cache (1.43s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.5 (4.45s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit from cache
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.86s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.49s)
Computing version for https://github.com/apple/swift-collections
Computed https://github.com/apple/swift-collections at 1.3.0 (0.60s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.5
Creating working copy for https://github.com/apple/swift-collections
Working copy of https://github.com/apple/swift-collections resolved at 1.3.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-collections",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-collections"
    },
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.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" : "visionos",
      "version" : "1.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+mocking.swift",
        "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"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Resources/PrivacyInfo.xcprivacy",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "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.9"
}
Done.