This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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

Failed to build KKBOXOpenAPISwift with Swift 6.0 for Linux.

Build Command

bash -c docker run --rm -v "checkouts-4609320-0":/host -w "$workDir" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/KKBOX/OpenAPI-Swift.git
Reference: master
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/KKBOX/OpenAPI-Swift
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 7e8c024 Updates CI settings.
Cloned https://github.com/KKBOX/OpenAPI-Swift.git
Revision (git rev-parse @):
7e8c024baa94238c8963312b20ffc7571d0b67de
SUCCESS checkout https://github.com/KKBOX/OpenAPI-Swift.git at master
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $workDir
https://github.com/KKBOX/OpenAPI-Swift.git
Running build ...
bash -c docker run --rm -v "checkouts-4609320-0":/host -w "$workDir" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/6] Compiling KKBOXOpenAPISwift KKBOXOpenAPIPrivateTypes.swift
[4/6] Compiling KKBOXOpenAPISwift KKBOXOpenAPITypes.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[5/6] Emitting module KKBOXOpenAPISwift
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:83:20: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 81 |
 82 | 	public let rawValue: Int
 83 | 	public static let none = KKSearchType(rawValue: 0)
    |                    |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'none' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 84 | 	/// Specify that we are searching for artists.
 85 | 	public static let artist = KKSearchType(rawValue: 1 << 0)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:83:20: warning: static property 'none' produces an empty option set
 81 |
 82 | 	public let rawValue: Int
 83 | 	public static let none = KKSearchType(rawValue: 0)
    |                    |- warning: static property 'none' produces an empty option set
    |                    `- note: use [] to silence this warning
 84 | 	/// Specify that we are searching for artists.
 85 | 	public static let artist = KKSearchType(rawValue: 1 << 0)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:85:20: warning: static property 'artist' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 83 | 	public static let none = KKSearchType(rawValue: 0)
 84 | 	/// Specify that we are searching for artists.
 85 | 	public static let artist = KKSearchType(rawValue: 1 << 0)
    |                    |- warning: static property 'artist' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'artist' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 | 	/// Specify that we are searching for albums.
 87 | 	public static let album = KKSearchType(rawValue: 1 << 1)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:87:20: warning: static property 'album' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 85 | 	public static let artist = KKSearchType(rawValue: 1 << 0)
 86 | 	/// Specify that we are searching for albums.
 87 | 	public static let album = KKSearchType(rawValue: 1 << 1)
    |                    |- warning: static property 'album' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'album' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 88 | 	/// Specify that we are searching for tracks.
 89 | 	public static let track = KKSearchType(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:89:20: warning: static property 'track' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 87 | 	public static let album = KKSearchType(rawValue: 1 << 1)
 88 | 	/// Specify that we are searching for tracks.
 89 | 	public static let track = KKSearchType(rawValue: 1 << 2)
    |                    |- warning: static property 'track' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'track' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 90 | 	/// Specify that we are searching for playlists.
 91 | 	public static let playlist = KKSearchType(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:91:20: warning: static property 'playlist' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 89 | 	public static let track = KKSearchType(rawValue: 1 << 2)
 90 | 	/// Specify that we are searching for playlists.
 91 | 	public static let playlist = KKSearchType(rawValue: 1 << 3)
    |                    |- warning: static property 'playlist' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'playlist' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 92 |
 93 | 	fileprivate func toString() -> String {
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:142:20: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
140 | 	public let rawValue: Int
141 | 	/// Your client does not request any additional permission.
142 | 	public static let none = KKScope(rawValue: 0)
    |                    |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'none' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
143 | 	/// Your client requests the permission to access user profiles.
144 | 	public static let userProfile = KKScope(rawValue: 1 << 0)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:142:20: warning: static property 'none' produces an empty option set
140 | 	public let rawValue: Int
141 | 	/// Your client does not request any additional permission.
142 | 	public static let none = KKScope(rawValue: 0)
    |                    |- warning: static property 'none' produces an empty option set
    |                    `- note: use [] to silence this warning
143 | 	/// Your client requests the permission to access user profiles.
144 | 	public static let userProfile = KKScope(rawValue: 1 << 0)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:144:20: warning: static property 'userProfile' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
142 | 	public static let none = KKScope(rawValue: 0)
143 | 	/// Your client requests the permission to access user profiles.
144 | 	public static let userProfile = KKScope(rawValue: 1 << 0)
    |                    |- warning: static property 'userProfile' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'userProfile' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
145 | 	/// Your client requests the permission to access the territory where users are at.
146 | 	public static let userTerritory = KKScope(rawValue: 1 << 1)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:146:20: warning: static property 'userTerritory' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
144 | 	public static let userProfile = KKScope(rawValue: 1 << 0)
145 | 	/// Your client requests the permission to access the territory where users are at.
146 | 	public static let userTerritory = KKScope(rawValue: 1 << 1)
    |                    |- warning: static property 'userTerritory' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'userTerritory' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
147 | 	/// Your client requests the permission to access the status of accounts.
148 | 	public static let userAccountStatus = KKScope(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:148:20: warning: static property 'userAccountStatus' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
146 | 	public static let userTerritory = KKScope(rawValue: 1 << 1)
147 | 	/// Your client requests the permission to access the status of accounts.
148 | 	public static let userAccountStatus = KKScope(rawValue: 1 << 2)
    |                    |- warning: static property 'userAccountStatus' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'userAccountStatus' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
149 | 	/// Your client requests all permissions.
150 | 	public static let all: KKScope = [.userProfile, .userTerritory, .userAccountStatus]
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:150:20: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
148 | 	public static let userAccountStatus = KKScope(rawValue: 1 << 2)
149 | 	/// Your client requests all permissions.
150 | 	public static let all: KKScope = [.userProfile, .userTerritory, .userAccountStatus]
    |                    |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
151 |
152 | 	fileprivate func toString() -> String {
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:301:125: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
299 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
300 | 	/// - Throws: KKBOXOpenAPIError.failedToCreateClientCredential
301 | 	public func fetchAccessTokenByClientCredential(callback: @escaping (_ result: KKAPIResult<KKAccessToken>) -> ()) throws -> URLSessionTask {
    |                                                                                                                             `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
302 | 		func makeClientCredential() -> String? {
303 | 			let base = "\(self.clientID):\(self.clientSecret)"
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:335:146: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
333 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
334 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
335 | 	public func fetch(track ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKTrackInfo>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                  `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
336 | 		let urlString = "\(KKBOXAPIPath)tracks/\(escape(ID))?territory=\(territory.toString())"
337 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:356:146: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
354 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
355 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
356 | 	public func fetch(album ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKAlbumInfo>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                  `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
357 | 		let urlString = "\(KKBOXAPIPath)albums/\(escape(ID))?territory=\(territory.toString())"
358 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:372:154: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
370 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
371 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
372 | 	public func fetch(tracksInAlbum ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKTrackList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                          `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
373 | 		let urlString = "\(KKBOXAPIPath)albums/\(escape(ID))/tracks?territory=\(territory.toString())"
374 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:393:148: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
391 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
392 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
393 | 	public func fetch(artist ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKArtistInfo>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                    `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
394 | 		let urlString = "\(KKBOXAPIPath)artists/\(escape(ID))?territory=\(territory.toString())"
395 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:411:196: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
409 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
410 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
411 | 	public func fetch(albumsBelongToArtist ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 200, callback: @escaping (_ result: KKAPIResult<KKAlbumList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                    `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
412 | 		let urlString = "\(KKBOXAPIPath)artists/\(escape(ID))/albums?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
413 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:429:193: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
427 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
428 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
429 | 	public func fetch(topTracksOfArtist ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 200, callback: @escaping (_ result: KKAPIResult<KKTrackList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                 `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
430 | 		let urlString = "\(KKBOXAPIPath)artists/\(escape(ID))/top-tracks?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
431 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:447:198: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
445 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
446 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
447 | 	public func fetch(relatedArtistsOfArtist ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 20, callback: @escaping (_ result: KKAPIResult<KKArtistList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                      `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
448 | 		let urlString = "\(KKBOXAPIPath)artists/\(escape(ID))/related-artists?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
449 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:467:152: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
465 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
466 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
467 | 	public func fetch(playlist ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKPlaylistInfo>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                        `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
468 | 		let urlString = "\(KKBOXAPIPath)shared-playlists/\(escape(ID))?territory=\(territory.toString())"
469 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:485:191: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
483 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
484 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
485 | 	public func fetch(tracksInPlaylist ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 20, callback: @escaping (_ result: KKAPIResult<KKTrackList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                               `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
486 | 		let urlString = "\(KKBOXAPIPath)shared-playlists/\(escape(ID))/tracks?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
487 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:506:183: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
504 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
505 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
506 | 	public func fetchFeaturedPlaylists(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKPlaylistList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                       `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
507 | 		let urlString = "\(KKBOXAPIPath)featured-playlists?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
508 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:527:181: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
525 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
526 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
527 | 	public func fetchNewHitsPlaylists(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 10, callback: @escaping (_ result: KKAPIResult<KKPlaylistList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                     `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
528 | 		let urlString = "\(KKBOXAPIPath)new-hits-playlists?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
529 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:548:208: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
546 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
547 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
548 | 	public func fetchFeaturedPlaylistCategories(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKFeaturedPlaylistCategoryList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
549 | 		let urlString = "\(KKBOXAPIPath)featured-playlist-categories?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
550 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:566:217: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
564 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
565 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
566 | 	public func fetchFeaturedPlaylist(inCategory ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKFeaturedPlaylistCategory>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                         `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
567 | 		let urlString = "\(KKBOXAPIPath)featured-playlist-categories/\(escape(ID))?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
568 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:587:182: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
585 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
586 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
587 | 	public func fetchMoodStations(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKRadioStationList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                      `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
588 | 		let urlString = "\(KKBOXAPIPath)mood-stations?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
589 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:605:198: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
603 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
604 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
605 | 	public func fetch(tracksInMoodStation ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKRadioStation>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                      `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
606 | 		let urlString = "\(KKBOXAPIPath)mood-stations/\(escape(ID))?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
607 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:624:183: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
622 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
623 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
624 | 	public func fetchGenreStations(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKRadioStationList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                       `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
625 | 		let urlString = "\(KKBOXAPIPath)genre-stations?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
626 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:642:199: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
640 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
641 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
642 | 	public func fetch(tracksInGenreStation ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKRadioStation>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                       `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
643 | 		let urlString = "\(KKBOXAPIPath)genre-stations/\(escape(ID))?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
644 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:663:209: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
661 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
662 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
663 | 	public func fetchNewReleaseAlbumsCategories(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKNewReleasedAlbumsCategoryList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                 `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
664 | 		let urlString = "\(KKBOXAPIPath)new-release-categories?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
665 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:681:222: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
679 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
680 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
681 | 	public func fetch(newReleasedAlbumsUnderCategory ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKNewReleasedAlbumsCategory>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                              `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
682 | 		let urlString = "\(KKBOXAPIPath)new-release-categories/\(escape(ID))?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
683 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:702:171: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
700 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
701 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
702 | 	public func fetchCharts(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 50, callback: @escaping (_ result: KKAPIResult<KKPlaylistList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                           `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
703 | 		let urlString = "\(KKBOXAPIPath)charts?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
704 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:725:210: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
723 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
724 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
725 | 	public func search(with keyword: String, types: KKSearchType, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 50, callback: @escaping (_ result: KKAPIResult<KKSearchResults>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                  `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
726 | 		let urlString = "\(KKBOXAPIPath)search?q=\(escape_arg(keyword))&type=\(types.toString())&territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
727 | 		print(urlString)
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:794:91: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
792 |
793 | extension KKBOXOpenAPI {
794 | 	private func connectionHandler(callback: @escaping (KKAPIResult<Data>) -> ()) -> (Data?, URLResponse?, Error?) -> () {
    |                                                                                           `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
795 | 		return { data, response, error in
796 | 			if let error = error {
Foundation.URLResponse:2:18: note: 'URLResponse' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLResponse = AnyObject
  |                  `- note: 'URLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:823:143: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
821 | 	}
822 |
823 | 	private func post(url: URL, postParameters: [AnyHashable: Any], headers: [String: String], callback: @escaping (KKAPIResult<Data>) -> ()) -> URLSessionTask {
    |                                                                                                                                               `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
824 | 		var headers = headers
825 | 		headers["Content-type"] = "application/x-www-form-urlencoded"
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:832:120: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
830 | 	}
831 |
832 | 	private func post(url: URL, data: Data?, headers: [String: String], callback: @escaping (KKAPIResult<Data>) -> ()) -> URLSessionTask {
    |                                                                                                                        `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
833 | 		var request = URLRequest(url: url)
834 | 		request.httpMethod = "POST"
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:845:86: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
843 | 	}
844 |
845 | 	private func get(url: URL, callback: @escaping (KKAPIResult<Data>) -> ()) throws -> URLSessionTask {
    |                                                                                      `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
846 | 		guard let accessToken = self.accessToken else {
847 | 			throw KKBOXOpenAPIError.requireAccessToken
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
[6/6] Compiling KKBOXOpenAPISwift KKBOXOpenAPI.swift
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:83:20: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 81 |
 82 | 	public let rawValue: Int
 83 | 	public static let none = KKSearchType(rawValue: 0)
    |                    |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'none' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 84 | 	/// Specify that we are searching for artists.
 85 | 	public static let artist = KKSearchType(rawValue: 1 << 0)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:83:20: warning: static property 'none' produces an empty option set
 81 |
 82 | 	public let rawValue: Int
 83 | 	public static let none = KKSearchType(rawValue: 0)
    |                    |- warning: static property 'none' produces an empty option set
    |                    `- note: use [] to silence this warning
 84 | 	/// Specify that we are searching for artists.
 85 | 	public static let artist = KKSearchType(rawValue: 1 << 0)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:85:20: warning: static property 'artist' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 83 | 	public static let none = KKSearchType(rawValue: 0)
 84 | 	/// Specify that we are searching for artists.
 85 | 	public static let artist = KKSearchType(rawValue: 1 << 0)
    |                    |- warning: static property 'artist' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'artist' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 | 	/// Specify that we are searching for albums.
 87 | 	public static let album = KKSearchType(rawValue: 1 << 1)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:87:20: warning: static property 'album' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 85 | 	public static let artist = KKSearchType(rawValue: 1 << 0)
 86 | 	/// Specify that we are searching for albums.
 87 | 	public static let album = KKSearchType(rawValue: 1 << 1)
    |                    |- warning: static property 'album' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'album' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 88 | 	/// Specify that we are searching for tracks.
 89 | 	public static let track = KKSearchType(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:89:20: warning: static property 'track' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 87 | 	public static let album = KKSearchType(rawValue: 1 << 1)
 88 | 	/// Specify that we are searching for tracks.
 89 | 	public static let track = KKSearchType(rawValue: 1 << 2)
    |                    |- warning: static property 'track' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'track' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 90 | 	/// Specify that we are searching for playlists.
 91 | 	public static let playlist = KKSearchType(rawValue: 1 << 3)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:91:20: warning: static property 'playlist' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
 75 |
 76 | /// The desired search type.
 77 | public struct KKSearchType: OptionSet {
    |               `- note: consider making struct 'KKSearchType' conform to the 'Sendable' protocol
 78 | 	public init(rawValue: Int) {
 79 | 		self.rawValue = rawValue
    :
 89 | 	public static let track = KKSearchType(rawValue: 1 << 2)
 90 | 	/// Specify that we are searching for playlists.
 91 | 	public static let playlist = KKSearchType(rawValue: 1 << 3)
    |                    |- warning: static property 'playlist' is not concurrency-safe because non-'Sendable' type 'KKSearchType' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'playlist' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 92 |
 93 | 	fileprivate func toString() -> String {
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:142:20: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
140 | 	public let rawValue: Int
141 | 	/// Your client does not request any additional permission.
142 | 	public static let none = KKScope(rawValue: 0)
    |                    |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'none' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
143 | 	/// Your client requests the permission to access user profiles.
144 | 	public static let userProfile = KKScope(rawValue: 1 << 0)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:142:20: warning: static property 'none' produces an empty option set
140 | 	public let rawValue: Int
141 | 	/// Your client does not request any additional permission.
142 | 	public static let none = KKScope(rawValue: 0)
    |                    |- warning: static property 'none' produces an empty option set
    |                    `- note: use [] to silence this warning
143 | 	/// Your client requests the permission to access user profiles.
144 | 	public static let userProfile = KKScope(rawValue: 1 << 0)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:144:20: warning: static property 'userProfile' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
142 | 	public static let none = KKScope(rawValue: 0)
143 | 	/// Your client requests the permission to access user profiles.
144 | 	public static let userProfile = KKScope(rawValue: 1 << 0)
    |                    |- warning: static property 'userProfile' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'userProfile' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
145 | 	/// Your client requests the permission to access the territory where users are at.
146 | 	public static let userTerritory = KKScope(rawValue: 1 << 1)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:146:20: warning: static property 'userTerritory' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
144 | 	public static let userProfile = KKScope(rawValue: 1 << 0)
145 | 	/// Your client requests the permission to access the territory where users are at.
146 | 	public static let userTerritory = KKScope(rawValue: 1 << 1)
    |                    |- warning: static property 'userTerritory' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'userTerritory' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
147 | 	/// Your client requests the permission to access the status of accounts.
148 | 	public static let userAccountStatus = KKScope(rawValue: 1 << 2)
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:148:20: warning: static property 'userAccountStatus' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
146 | 	public static let userTerritory = KKScope(rawValue: 1 << 1)
147 | 	/// Your client requests the permission to access the status of accounts.
148 | 	public static let userAccountStatus = KKScope(rawValue: 1 << 2)
    |                    |- warning: static property 'userAccountStatus' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'userAccountStatus' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
149 | 	/// Your client requests all permissions.
150 | 	public static let all: KKScope = [.userProfile, .userTerritory, .userAccountStatus]
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:150:20: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
110 |
111 | /// The scope of your client ID.
112 | public struct KKScope: OptionSet, Codable {
    |               `- note: consider making struct 'KKScope' conform to the 'Sendable' protocol
113 | 	public init(rawValue: Int) {
114 | 		self.rawValue = rawValue
    :
148 | 	public static let userAccountStatus = KKScope(rawValue: 1 << 2)
149 | 	/// Your client requests all permissions.
150 | 	public static let all: KKScope = [.userProfile, .userTerritory, .userAccountStatus]
    |                    |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'KKScope' may have shared mutable state; this is an error in the Swift 6 language mode
    |                    |- note: annotate 'all' with '@MainActor' if property should only be accessed from the main actor
    |                    `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
151 |
152 | 	fileprivate func toString() -> String {
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:301:125: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
299 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
300 | 	/// - Throws: KKBOXOpenAPIError.failedToCreateClientCredential
301 | 	public func fetchAccessTokenByClientCredential(callback: @escaping (_ result: KKAPIResult<KKAccessToken>) -> ()) throws -> URLSessionTask {
    |                                                                                                                             `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
302 | 		func makeClientCredential() -> String? {
303 | 			let base = "\(self.clientID):\(self.clientSecret)"
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:335:146: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
333 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
334 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
335 | 	public func fetch(track ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKTrackInfo>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                  `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
336 | 		let urlString = "\(KKBOXAPIPath)tracks/\(escape(ID))?territory=\(territory.toString())"
337 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:356:146: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
354 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
355 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
356 | 	public func fetch(album ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKAlbumInfo>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                  `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
357 | 		let urlString = "\(KKBOXAPIPath)albums/\(escape(ID))?territory=\(territory.toString())"
358 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:372:154: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
370 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
371 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
372 | 	public func fetch(tracksInAlbum ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKTrackList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                          `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
373 | 		let urlString = "\(KKBOXAPIPath)albums/\(escape(ID))/tracks?territory=\(territory.toString())"
374 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:393:148: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
391 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
392 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
393 | 	public func fetch(artist ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKArtistInfo>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                    `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
394 | 		let urlString = "\(KKBOXAPIPath)artists/\(escape(ID))?territory=\(territory.toString())"
395 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:411:196: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
409 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
410 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
411 | 	public func fetch(albumsBelongToArtist ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 200, callback: @escaping (_ result: KKAPIResult<KKAlbumList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                    `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
412 | 		let urlString = "\(KKBOXAPIPath)artists/\(escape(ID))/albums?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
413 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:429:193: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
427 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
428 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
429 | 	public func fetch(topTracksOfArtist ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 200, callback: @escaping (_ result: KKAPIResult<KKTrackList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                 `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
430 | 		let urlString = "\(KKBOXAPIPath)artists/\(escape(ID))/top-tracks?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
431 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:447:198: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
445 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
446 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
447 | 	public func fetch(relatedArtistsOfArtist ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 20, callback: @escaping (_ result: KKAPIResult<KKArtistList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                      `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
448 | 		let urlString = "\(KKBOXAPIPath)artists/\(escape(ID))/related-artists?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
449 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:467:152: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
465 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
466 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
467 | 	public func fetch(playlist ID: String, territory: KKTerritory = .taiwan, callback: @escaping (_ result: KKAPIResult<KKPlaylistInfo>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                        `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
468 | 		let urlString = "\(KKBOXAPIPath)shared-playlists/\(escape(ID))?territory=\(territory.toString())"
469 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:485:191: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
483 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
484 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
485 | 	public func fetch(tracksInPlaylist ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 20, callback: @escaping (_ result: KKAPIResult<KKTrackList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                               `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
486 | 		let urlString = "\(KKBOXAPIPath)shared-playlists/\(escape(ID))/tracks?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
487 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:506:183: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
504 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
505 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
506 | 	public func fetchFeaturedPlaylists(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKPlaylistList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                       `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
507 | 		let urlString = "\(KKBOXAPIPath)featured-playlists?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
508 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:527:181: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
525 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
526 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
527 | 	public func fetchNewHitsPlaylists(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 10, callback: @escaping (_ result: KKAPIResult<KKPlaylistList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                     `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
528 | 		let urlString = "\(KKBOXAPIPath)new-hits-playlists?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
529 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:548:208: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
546 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
547 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
548 | 	public func fetchFeaturedPlaylistCategories(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKFeaturedPlaylistCategoryList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
549 | 		let urlString = "\(KKBOXAPIPath)featured-playlist-categories?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
550 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:566:217: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
564 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
565 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
566 | 	public func fetchFeaturedPlaylist(inCategory ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKFeaturedPlaylistCategory>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                         `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
567 | 		let urlString = "\(KKBOXAPIPath)featured-playlist-categories/\(escape(ID))?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
568 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:587:182: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
585 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
586 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
587 | 	public func fetchMoodStations(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKRadioStationList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                      `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
588 | 		let urlString = "\(KKBOXAPIPath)mood-stations?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
589 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:605:198: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
603 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
604 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
605 | 	public func fetch(tracksInMoodStation ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKRadioStation>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                      `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
606 | 		let urlString = "\(KKBOXAPIPath)mood-stations/\(escape(ID))?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
607 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:624:183: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
622 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
623 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
624 | 	public func fetchGenreStations(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKRadioStationList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                       `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
625 | 		let urlString = "\(KKBOXAPIPath)genre-stations?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
626 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:642:199: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
640 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
641 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
642 | 	public func fetch(tracksInGenreStation ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKRadioStation>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                       `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
643 | 		let urlString = "\(KKBOXAPIPath)genre-stations/\(escape(ID))?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
644 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:663:209: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
661 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
662 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
663 | 	public func fetchNewReleaseAlbumsCategories(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKNewReleasedAlbumsCategoryList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                 `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
664 | 		let urlString = "\(KKBOXAPIPath)new-release-categories?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
665 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:681:222: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
679 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
680 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
681 | 	public func fetch(newReleasedAlbumsUnderCategory ID: String, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 100, callback: @escaping (_ result: KKAPIResult<KKNewReleasedAlbumsCategory>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                              `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
682 | 		let urlString = "\(KKBOXAPIPath)new-release-categories/\(escape(ID))?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
683 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:702:171: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
700 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
701 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
702 | 	public func fetchCharts(territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 50, callback: @escaping (_ result: KKAPIResult<KKPlaylistList>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                           `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
703 | 		let urlString = "\(KKBOXAPIPath)charts?territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
704 | 		return try self.get(url: URL(string: urlString)!, callback: self.apiDataCallback(callback: callback))
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:725:210: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
723 | 	/// - Returns: A URLSessionTask that you can use it to cancel current fetch.
724 | 	/// - Throws: KKBOXOpenAPIError.requireAccessToken.
725 | 	public func search(with keyword: String, types: KKSearchType, territory: KKTerritory = .taiwan, offset: Int = 0, limit: Int = 50, callback: @escaping (_ result: KKAPIResult<KKSearchResults>) -> ()) throws -> URLSessionTask {
    |                                                                                                                                                                                                                  `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
726 | 		let urlString = "\(KKBOXAPIPath)search?q=\(escape_arg(keyword))&type=\(types.toString())&territory=\(territory.toString())&offset=\(offset)&limit=\(limit)"
727 | 		print(urlString)
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:794:91: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
792 |
793 | extension KKBOXOpenAPI {
794 | 	private func connectionHandler(callback: @escaping (KKAPIResult<Data>) -> ()) -> (Data?, URLResponse?, Error?) -> () {
    |                                                                                           `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
795 | 		return { data, response, error in
796 | 			if let error = error {
Foundation.URLResponse:2:18: note: 'URLResponse' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLResponse = AnyObject
  |                  `- note: 'URLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:823:143: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
821 | 	}
822 |
823 | 	private func post(url: URL, postParameters: [AnyHashable: Any], headers: [String: String], callback: @escaping (KKAPIResult<Data>) -> ()) -> URLSessionTask {
    |                                                                                                                                               `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
824 | 		var headers = headers
825 | 		headers["Content-type"] = "application/x-www-form-urlencoded"
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:832:120: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
830 | 	}
831 |
832 | 	private func post(url: URL, data: Data?, headers: [String: String], callback: @escaping (KKAPIResult<Data>) -> ()) -> URLSessionTask {
    |                                                                                                                        `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
833 | 		var request = URLRequest(url: url)
834 | 		request.httpMethod = "POST"
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:845:86: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
843 | 	}
844 |
845 | 	private func get(url: URL, callback: @escaping (KKAPIResult<Data>) -> ()) throws -> URLSessionTask {
    |                                                                                      `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
846 | 		guard let accessToken = self.accessToken else {
847 | 			throw KKBOXOpenAPIError.requireAccessToken
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSessionTask = AnyObject
  |                  `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:774:7: warning: capture of 'callback' with non-sendable type '(KKAPIResult<T>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
772 | 					let customError = NSError(domain: KKErrorDomain, code: decodedError.error.code, userInfo: [NSLocalizedDescriptionKey: decodedError.error.message ?? ""])
773 | 					DispatchQueue.main.async {
774 | 						callback(.error(customError))
    |       |- warning: capture of 'callback' with non-sendable type '(KKAPIResult<T>) -> ()' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |       `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
775 | 					}
776 | 					return
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:802:25: warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
800 | 				return
801 | 			}
802 | 			let code = (response as? HTTPURLResponse)?.statusCode ?? 200
    |                         `- warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
803 | 			if code != 200 {
804 | 				let error = NSError(domain: KKErrorDomain, code: code, userInfo: [NSLocalizedDescriptionKey: "API call failed with status code \(code)"])
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:802:47: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
800 | 				return
801 | 			}
802 | 			let code = (response as? HTTPURLResponse)?.statusCode ?? 200
    |                                               `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
803 | 			if code != 200 {
804 | 				let error = NSError(domain: KKErrorDomain, code: code, userInfo: [NSLocalizedDescriptionKey: "API call failed with status code \(code)"])
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:833:17: error: cannot find 'URLRequest' in scope
831 |
832 | 	private func post(url: URL, data: Data?, headers: [String: String], callback: @escaping (KKAPIResult<Data>) -> ()) -> URLSessionTask {
833 | 		var request = URLRequest(url: url)
    |                 `- error: cannot find 'URLRequest' in scope
834 | 		request.httpMethod = "POST"
835 | 		for (k, v) in headers {
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:840:25: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
838 | 		request.setValue(KKUserAgent, forHTTPHeaderField: "User-Agent")
839 | 		request.httpBody = data
840 | 		let task = URLSession.shared.dataTask(with: request, completionHandler: self.connectionHandler(callback: callback))
    |                         `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
841 | 		task.resume()
842 | 		return task
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:849:17: error: cannot find 'URLRequest' in scope
847 | 			throw KKBOXOpenAPIError.requireAccessToken
848 | 		}
849 | 		var request = URLRequest(url: url)
    |                 `- error: cannot find 'URLRequest' in scope
850 | 		request.httpMethod = "GET"
851 | 		request.setValue(KKUserAgent, forHTTPHeaderField: "User-Agent")
/host/spi-builder-workspace/Sources/KKBOXOpenAPISwift/KKBOXOpenAPI.swift:853:25: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
851 | 		request.setValue(KKUserAgent, forHTTPHeaderField: "User-Agent")
852 | 		request.setValue("Bearer \(accessToken.accessToken)", forHTTPHeaderField: "Authorization")
853 | 		let task = URLSession.shared.dataTask(with: request, completionHandler: self.connectionHandler(callback: callback))
    |                         `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
854 | 		task.resume()
855 | 		return task
BUILD FAILURE 6.0 linux
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.