The Swift Package Index logo.Swift Package Index

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

Build Information

Successful build of Haversack, reference main (a02118), with Swift 6.1 for macOS (SPM) on 28 Apr 2025 05:22:19 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

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: true)
    |                                      `- 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: true)
    |                                                      `- 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/127] 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: true)
    |                                      `- 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: true)
    |                                                      `- 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 {
[102/127] 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: true)
    |                                      `- 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: true)
    |                                                      `- 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 {
[103/127] 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] {
[104/127] 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] {
[105/127] 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] {
[106/127] Compiling Haversack CertificateEntity.swift
[107/127] Compiling Haversack Data+X501Name.swift
[108/127] Compiling Haversack GenericPasswordEntity.swift
[109/127] Compiling Haversack IdentityEntity.swift
[110/127] 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 {
[111/127] 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 {
[112/127] 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 {
[113/127] Compiling Haversack Logs.swift
[114/127] Compiling Haversack CertificateBaseQuerying.swift
[115/127] Compiling Haversack CertificateQuery.swift
[116/127] Compiling Haversack GenericPasswordQuery.swift
[117/127] Compiling Haversack KeychainPortable.swift
[118/127] Compiling Haversack PassphraseStrategy.swift
[119/127] Compiling Haversack PrivateKeyImporting.swift
[120/127] Compiling Haversack KeyGenerationConfig.swift
[121/127] Compiling Haversack KeyQuery.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:120:24: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Fluent interface for searching the keychain for cryptographic keys.
    :
110 |
111 | /// Encapsulates the cryptographic key's class (public, private, or symmetric).
112 | public enum KeyClass {
    |             `- note: consider making enum 'KeyClass' conform to the 'Sendable' protocol
113 |     /// Represents a private key
114 |     case `private`
    :
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:15:23: warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
13 |
14 |     /// Get the metadata attributes for the item.
15 |     public static let attributes           = KeychainDataOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'attributes' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |     /// Get the raw unencrypted data for the item.
17 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:19:23: warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
17 |     ///
18 |     /// Using this will generate a user prompt on macOS if the data exists but your app does not have access to it.
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'data' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:21:23: warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'persistantReference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:23:23: warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
   |                       |- warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'reference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 |     /// Typically most apps will just want to read the secure data.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:26:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
24 |
25 |     /// Typically most apps will just want to read the secure data.
26 |     public static let `default`: KeychainDataOptions = [.data]
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 |     /// Get all of the possible data about the keychain item.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:29:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
27 |
28 |     /// Get all of the possible data about the keychain item.
29 |     public static let all: KeychainDataOptions = [.attributes, .data, .persistantReference, .reference]
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:41:23: warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
39 |
40 |     /// Compare strings without caring about the case of letters.
41 |     public static let caseInsensitive      = KeychainStringComparisonOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'caseInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:46:23: warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
44 |     /// Compare strings without caring about diacritical marks on letters; macOS only.
45 |     /// - Important: Available on macOS only.
46 |     public static let diacriticInsensitive = KeychainStringComparisonOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'diacriticInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:50:23: warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
49 |     /// - Important: Available on macOS only.
50 |     public static let widthInsensitive     = KeychainStringComparisonOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'widthInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | #endif
52 | }
[122/127] Compiling Haversack KeychainQueryOptions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:120:24: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Fluent interface for searching the keychain for cryptographic keys.
    :
110 |
111 | /// Encapsulates the cryptographic key's class (public, private, or symmetric).
112 | public enum KeyClass {
    |             `- note: consider making enum 'KeyClass' conform to the 'Sendable' protocol
113 |     /// Represents a private key
114 |     case `private`
    :
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:15:23: warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
13 |
14 |     /// Get the metadata attributes for the item.
15 |     public static let attributes           = KeychainDataOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'attributes' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |     /// Get the raw unencrypted data for the item.
17 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:19:23: warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
17 |     ///
18 |     /// Using this will generate a user prompt on macOS if the data exists but your app does not have access to it.
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'data' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:21:23: warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'persistantReference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:23:23: warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
   |                       |- warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'reference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 |     /// Typically most apps will just want to read the secure data.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:26:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
24 |
25 |     /// Typically most apps will just want to read the secure data.
26 |     public static let `default`: KeychainDataOptions = [.data]
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 |     /// Get all of the possible data about the keychain item.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:29:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
27 |
28 |     /// Get all of the possible data about the keychain item.
29 |     public static let all: KeychainDataOptions = [.attributes, .data, .persistantReference, .reference]
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:41:23: warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
39 |
40 |     /// Compare strings without caring about the case of letters.
41 |     public static let caseInsensitive      = KeychainStringComparisonOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'caseInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:46:23: warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
44 |     /// Compare strings without caring about diacritical marks on letters; macOS only.
45 |     /// - Important: Available on macOS only.
46 |     public static let diacriticInsensitive = KeychainStringComparisonOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'diacriticInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:50:23: warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
49 |     /// - Important: Available on macOS only.
50 |     public static let widthInsensitive     = KeychainStringComparisonOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'widthInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | #endif
52 | }
[123/127] Compiling Haversack KeychainQuerying.swift
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:120:24: warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        `- warning: static property 'translation' is not concurrency-safe because non-'Sendable' type '[CFString : KeyClass]' may have shared mutable state; this is an error in the Swift 6 language mode
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
CoreFoundation.CFString:1:14: note: class 'CFString' does not conform to the 'Sendable' protocol
1 | public class CFString : _CFObject {
  |              `- note: class 'CFString' does not conform to the 'Sendable' protocol
2 | }
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeyQuery.swift:4:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  2 | // Copyright 2023, Jamf
  3 |
  4 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CoreFoundation'
  5 |
  6 | /// Fluent interface for searching the keychain for cryptographic keys.
    :
110 |
111 | /// Encapsulates the cryptographic key's class (public, private, or symmetric).
112 | public enum KeyClass {
    |             `- note: consider making enum 'KeyClass' conform to the 'Sendable' protocol
113 |     /// Represents a private key
114 |     case `private`
    :
118 |     case symmetric
119 |
120 |     private static let translation: [CFString: KeyClass] = [
    |                        |- note: add '@MainActor' to make static property 'translation' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
121 |         kSecAttrKeyClassPrivate: .private,
122 |         kSecAttrKeyClassPublic: .public,
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:15:23: warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
13 |
14 |     /// Get the metadata attributes for the item.
15 |     public static let attributes           = KeychainDataOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'attributes' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'attributes' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 |     /// Get the raw unencrypted data for the item.
17 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:19:23: warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
17 |     ///
18 |     /// Using this will generate a user prompt on macOS if the data exists but your app does not have access to it.
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'data' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'data' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:21:23: warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
19 |     public static let data                 = KeychainDataOptions(rawValue: 1 << 1)
20 |     /// Get a persistent reference that can be stored outside of the keychain.
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'persistantReference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'persistantReference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:23:23: warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
21 |     public static let persistantReference  = KeychainDataOptions(rawValue: 1 << 2)
22 |     /// Get a reference to the keychain item.
23 |     public static let reference            = KeychainDataOptions(rawValue: 1 << 3)
   |                       |- warning: static property 'reference' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'reference' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 |
25 |     /// Typically most apps will just want to read the secure data.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:26:23: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
24 |
25 |     /// Typically most apps will just want to read the secure data.
26 |     public static let `default`: KeychainDataOptions = [.data]
   |                       |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 |
28 |     /// Get all of the possible data about the keychain item.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:29:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
 5 |
 6 | /// Options for what type of data to return from a keychain query.
 7 | public struct KeychainDataOptions: OptionSet {
   |               `- note: consider making struct 'KeychainDataOptions' conform to the 'Sendable' protocol
 8 |     public let rawValue: Int
 9 |
   :
27 |
28 |     /// Get all of the possible data about the keychain item.
29 |     public static let all: KeychainDataOptions = [.attributes, .data, .persistantReference, .reference]
   |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KeychainDataOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:41:23: warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
39 |
40 |     /// Compare strings without caring about the case of letters.
41 |     public static let caseInsensitive      = KeychainStringComparisonOptions(rawValue: 1 << 0)
   |                       |- warning: static property 'caseInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'caseInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |
43 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:46:23: warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
44 |     /// Compare strings without caring about diacritical marks on letters; macOS only.
45 |     /// - Important: Available on macOS only.
46 |     public static let diacriticInsensitive = KeychainStringComparisonOptions(rawValue: 1 << 1)
   |                       |- warning: static property 'diacriticInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'diacriticInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 |
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Queries/KeychainQueryOptions.swift:50:23: warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
31 |
32 | /// Options for how to compare strings in keychain queries.
33 | public struct KeychainStringComparisonOptions: OptionSet {
   |               `- note: consider making struct 'KeychainStringComparisonOptions' conform to the 'Sendable' protocol
34 |     public let rawValue: Int
35 |
   :
48 |     /// Compare strings without caring about ASCII/UTF8/UTF16 encoding differences; macOS only.
49 |     /// - Important: Available on macOS only.
50 |     public static let widthInsensitive     = KeychainStringComparisonOptions(rawValue: 1 << 2)
   |                       |- warning: static property 'widthInsensitive' is not concurrency-safe because non-'Sendable' type 'KeychainStringComparisonOptions' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: add '@MainActor' to make static property 'widthInsensitive' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
51 | #endif
52 | }
[124/127] Compiling Haversack HaversackError.swift
[125/127] Compiling Haversack HaversackStrategy.swift
[126/127] Compiling Haversack KeychainExportConfig.swift
[127/127] Compiling Haversack KeychainImportConfig.swift
[128/133] Compiling HaversackCryptoKit GenericPasswordConvertible+CryptoKit.swift
[129/133] Compiling HaversackCryptoKit SecKeyConvertible.swift
[130/133] Emitting module HaversackCryptoKit
[131/133] Compiling HaversackMock HaversackEphemeralStrategy.swift
[132/133] Emitting module HaversackMock
[133/133] Compiling HaversackMock HaversackEphemeralStrategy+mocking.swift
Build complete! (22.17s)
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.