Build Information
Failed to build KKBOXOpenAPISwift, reference master (7e8c02
), with Swift 6.0 for Linux on 31 Oct 2024 08:28:41 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" 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.56.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: $PWD
https://github.com/KKBOX/OpenAPI-Swift.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" 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
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/6] Compiling KKBOXOpenAPISwift KKBOXOpenAPIPrivateTypes.swift
[4/6] Compiling KKBOXOpenAPISwift KKBOXOpenAPITypes.swift
[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