Build Information
Failed to build WealthsimpleDownloader, reference main (5a02f4
), with Swift 6.1 for Wasm on 8 Sep 2025 08:49:28 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Nef10/WealthsimpleDownloader.git
Reference: main
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/Nef10/WealthsimpleDownloader
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 5a02f44 Bump swiftlint to 0.61.0
Cloned https://github.com/Nef10/WealthsimpleDownloader.git
Revision (git rev-parse @):
5a02f446af8be06aa048ef555665e078cab21cd4
SUCCESS checkout https://github.com/Nef10/WealthsimpleDownloader.git at main
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.1
Building package at path: $PWD
https://github.com/Nef10/WealthsimpleDownloader.git
https://github.com/Nef10/WealthsimpleDownloader.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
],
"manifest_display_name" : "WealthsimpleDownloader",
"name" : "WealthsimpleDownloader",
"path" : "/host/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Wealthsimple",
"targets" : [
"Wealthsimple"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "WealthsimpleTests",
"module_type" : "SwiftTarget",
"name" : "WealthsimpleTests",
"path" : "Tests/WealthsimpleTests",
"sources" : [
"Extensions/XCTestCase.swift",
"ExtensionsTests/StringCamelCaseTests.swift",
"Helpers/DownloaderTestCase.swift",
"Helpers/MockAccount.swift",
"Helpers/MockCredentialStorage.swift",
"Helpers/MockURLProtocol.swift",
"TokenTests.swift",
"URLConfigurationTests.swift",
"WealthsimpleAccountTests.swift",
"WealthsimpleAssetTests.swift",
"WealthsimpleDownloaderTests.swift",
"WealthsimplePositionTests.swift",
"WealthsimpleTransactionTests.swift"
],
"target_dependencies" : [
"Wealthsimple"
],
"type" : "test"
},
{
"c99name" : "Wealthsimple",
"module_type" : "SwiftTarget",
"name" : "Wealthsimple",
"path" : "Sources/Wealthsimple",
"product_memberships" : [
"Wealthsimple"
],
"sources" : [
"Extensions/String+CamelCase.swift",
"Token.swift",
"URLConfiguration.swift",
"WealthsimpleAccount.swift",
"WealthsimpleAsset.swift",
"WealthsimpleDownloader.swift",
"WealthsimplePosition.swift",
"WealthsimpleTransaction.swift"
],
"type" : "library"
}
],
"tools_version" : "5.2"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:eb0758f51dbd6991fb9e51dedbfbcbec142ffc0d3b9b8ad91fa19d35e5136f0a
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-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/10] Compiling Wealthsimple String+CamelCase.swift
[4/10] Emitting module Wealthsimple
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:39:24: warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 | private static var url: URL { URLConfiguration.shared.urlObject(for: "oauth/token")! }
38 | private static var testUrl: URL { URLConfiguration.shared.urlObject(for: "oauth/token/info")! }
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
| |- warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clientId' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clientId' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
41 |
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:40:24: warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | private static var testUrl: URL { URLConfiguration.shared.urlObject(for: "oauth/token/info")! }
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
| |- warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'scope' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'scope' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 |
42 | private let accessToken: String
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:108:29: error: cannot find type 'URLRequest' in scope
106 | private static func sendTokenRequest(
107 | parameters json: [String: String],
108 | request urlRequest: URLRequest,
| `- error: cannot find type 'URLRequest' in scope
109 | credentialStorage: CredentialStorage,
110 | completion: @escaping (Result<Self, TokenError>) -> Void
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:128:19: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
126 | private static func handleTokenResponse(
127 | data: Data?,
128 | response: URLResponse?,
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
129 | error: Error?,
130 | credentialStorage: CredentialStorage,
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/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/URLConfiguration.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | /// Singleton class that manages the base URL configuration for all Wealthsimple API endpoints
11 | final class URLConfiguration {
| `- note: class 'URLConfiguration' does not conform to the 'Sendable' protocol
12 |
13 | private static let defaultBaseURL = "https://api.production.wealthsimple.com/v1/"
14 |
15 | /// Shared singleton instance
16 | static let shared = URLConfiguration()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | /// Base URL for all Wealthsimple API endpoints
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:109:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
107 | }
108 |
109 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Account], AccountError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
110 | guard let data else {
111 | if let 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/Wealthsimple/WealthsimplePosition.swift:51:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 | private static var baseUrl: URLComponents { URLConfiguration.shared.urlComponents(for: "positions")! }
50 |
51 | private static var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 | var dateFormatter = DateFormatter()
53 | dateFormatter.dateFormat = "yyyy-MM-dd"
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:112:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
110 | }
111 |
112 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Position], PositionError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
113 | guard let data else {
114 | if let 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/Wealthsimple/WealthsimpleTransaction.swift:145:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
143 | private static var baseUrl: URLComponents { URLConfiguration.shared.urlComponents(for: "transactions")! }
144 |
145 | private static var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
146 | var dateFormatter = DateFormatter()
147 | dateFormatter.dateFormat = "yyyy-MM-dd"
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:236:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
234 | }
235 |
236 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Transaction], TransactionError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
237 | guard let data else {
238 | if let 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
[5/10] Compiling Wealthsimple Token.swift
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:39:24: warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
37 | private static var url: URL { URLConfiguration.shared.urlObject(for: "oauth/token")! }
38 | private static var testUrl: URL { URLConfiguration.shared.urlObject(for: "oauth/token/info")! }
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
| |- warning: static property 'clientId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clientId' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clientId' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
41 |
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:40:24: warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
38 | private static var testUrl: URL { URLConfiguration.shared.urlObject(for: "oauth/token/info")! }
39 | private static var clientId = "4da53ac2b03225bed1550eba8e4611e086c7b905a3855e6ed12ea08c246758fa" // From the website
40 | private static var scope = "invest.read mfda.read mercer.read trade.read" // the clientId supports some write scopes, but as this library only reads we limit it for safety
| |- warning: static property 'scope' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'scope' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'scope' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
41 |
42 | private let accessToken: String
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:108:29: error: cannot find type 'URLRequest' in scope
106 | private static func sendTokenRequest(
107 | parameters json: [String: String],
108 | request urlRequest: URLRequest,
| `- error: cannot find type 'URLRequest' in scope
109 | credentialStorage: CredentialStorage,
110 | completion: @escaping (Result<Self, TokenError>) -> Void
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:128:19: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
126 | private static func handleTokenResponse(
127 | data: Data?,
128 | response: URLResponse?,
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
129 | error: Error?,
130 | credentialStorage: CredentialStorage,
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/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:69:23: error: cannot find 'URLRequest' in scope
67 |
68 | static func getToken(username: String, password: String, otp: String, credentialStorage: CredentialStorage, completion: @escaping (Result<Self, TokenError>) -> Void) {
69 | var request = URLRequest(url: url)
| `- error: cannot find 'URLRequest' in scope
70 | request.setValue(otp, forHTTPHeaderField: "x-wealthsimple-otp")
71 | let json = [
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:113:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
111 | ) {
112 | var request = urlRequest
113 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
114 | request.httpMethod = "POST"
115 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:141:43: warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
139 | return
140 | }
141 | guard let httpResponse = response as? HTTPURLResponse else {
| `- warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
142 | completion(.failure(TokenError.httpError(error: "No HTTPURLResponse")))
143 | return
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:141:47: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
139 | return
140 | }
141 | guard let httpResponse = response as? HTTPURLResponse else {
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
142 | completion(.failure(TokenError.httpError(error: "No HTTPURLResponse")))
143 | return
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:145:28: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
143 | return
144 | }
145 | guard httpResponse.statusCode == 200 else {
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
146 | completion(.failure(TokenError.httpError(error: "Status code \(httpResponse.statusCode)")))
147 | return
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:146:89: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
144 | }
145 | guard httpResponse.statusCode == 200 else {
146 | completion(.failure(TokenError.httpError(error: "Status code \(httpResponse.statusCode)")))
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
147 | return
148 | }
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:166:23: error: cannot find 'URLRequest' in scope
164 |
165 | private func testIfValid(completion: @escaping (Bool) -> Void) {
166 | var request = URLRequest(url: Self.testUrl)
| `- error: cannot find 'URLRequest' in scope
167 | let session = URLSession.shared
168 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:167:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
165 | private func testIfValid(completion: @escaping (Bool) -> Void) {
166 | var request = URLRequest(url: Self.testUrl)
167 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
168 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
169 | authenticateRequest(request) { request in
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:179:41: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
177 | return
178 | }
179 | completion(httpResponse.statusCode == 200)
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
180 | }
181 | task.resume()
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:204:23: error: cannot find 'URLRequest' in scope
202 |
203 | private func refresh(completion: @escaping (Result<Self, TokenError>) -> Void) {
204 | let request = URLRequest(url: Self.url)
| `- error: cannot find 'URLRequest' in scope
205 | let json = [
206 | "grant_type": "refresh_token",
[6/10] Compiling Wealthsimple WealthsimpleAccount.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:109:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
107 | }
108 |
109 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Account], AccountError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
110 | guard let data else {
111 | if let 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/Wealthsimple/WealthsimpleAccount.swift:98:23: error: cannot find 'URLRequest' in scope
96 |
97 | static func getAccounts(token: Token, completion: @escaping (Result<[Account], AccountError>) -> Void) {
98 | var request = URLRequest(url: url)
| `- error: cannot find 'URLRequest' in scope
99 | let session = URLSession.shared
100 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:99:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
97 | static func getAccounts(token: Token, completion: @escaping (Result<[Account], AccountError>) -> Void) {
98 | var request = URLRequest(url: url)
99 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
100 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
101 | token.authenticateRequest(request) { request in
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:118:43: warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
116 | return
117 | }
118 | guard let httpResponse = response as? HTTPURLResponse else {
| `- warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
119 | completion(.failure(AccountError.httpError(error: "No HTTPURLResponse")))
120 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:118:47: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
116 | return
117 | }
118 | guard let httpResponse = response as? HTTPURLResponse else {
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
119 | completion(.failure(AccountError.httpError(error: "No HTTPURLResponse")))
120 | return
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:122:28: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
120 | return
121 | }
122 | guard httpResponse.statusCode == 200 else {
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
123 | completion(.failure(AccountError.httpError(error: "Status code \(httpResponse.statusCode)")))
124 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:123:91: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
121 | }
122 | guard httpResponse.statusCode == 200 else {
123 | completion(.failure(AccountError.httpError(error: "Status code \(httpResponse.statusCode)")))
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
124 | return
125 | }
[7/10] Compiling Wealthsimple URLConfiguration.swift
/host/spi-builder-workspace/Sources/Wealthsimple/URLConfiguration.swift:16:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | /// Singleton class that manages the base URL configuration for all Wealthsimple API endpoints
11 | final class URLConfiguration {
| `- note: class 'URLConfiguration' does not conform to the 'Sendable' protocol
12 |
13 | private static let defaultBaseURL = "https://api.production.wealthsimple.com/v1/"
14 |
15 | /// Shared singleton instance
16 | static let shared = URLConfiguration()
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'URLConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 |
18 | /// Base URL for all Wealthsimple API endpoints
[8/11] Compiling Wealthsimple WealthsimpleAsset.swift
[9/11] Compiling Wealthsimple WealthsimpleDownloader.swift
[10/11] Compiling Wealthsimple WealthsimplePosition.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:51:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
49 | private static var baseUrl: URLComponents { URLConfiguration.shared.urlComponents(for: "positions")! }
50 |
51 | private static var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
52 | var dateFormatter = DateFormatter()
53 | dateFormatter.dateFormat = "yyyy-MM-dd"
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:112:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
110 | }
111 |
112 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Position], PositionError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
113 | guard let data else {
114 | if let 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/Wealthsimple/WealthsimplePosition.swift:101:23: error: cannot find 'URLRequest' in scope
99 | url.queryItems?.append(URLQueryItem(name: "date", value: dateFormatter.string(from: date)))
100 | }
101 | var request = URLRequest(url: url.url!)
| `- error: cannot find 'URLRequest' in scope
102 | let session = URLSession.shared
103 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:102:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
100 | }
101 | var request = URLRequest(url: url.url!)
102 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
103 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
104 | token.authenticateRequest(request) { request in
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:121:43: warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
119 | return
120 | }
121 | guard let httpResponse = response as? HTTPURLResponse else {
| `- warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
122 | completion(.failure(PositionError.httpError(error: "No HTTPURLResponse")))
123 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:121:47: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
119 | return
120 | }
121 | guard let httpResponse = response as? HTTPURLResponse else {
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
122 | completion(.failure(PositionError.httpError(error: "No HTTPURLResponse")))
123 | return
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:125:28: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
123 | return
124 | }
125 | guard httpResponse.statusCode == 200 else {
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
126 | completion(.failure(PositionError.httpError(error: "Status code \(httpResponse.statusCode)")))
127 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:126:92: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
124 | }
125 | guard httpResponse.statusCode == 200 else {
126 | completion(.failure(PositionError.httpError(error: "Status code \(httpResponse.statusCode)")))
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
127 | return
128 | }
[11/11] Compiling Wealthsimple WealthsimpleTransaction.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:145:24: warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
143 | private static var baseUrl: URLComponents { URLConfiguration.shared.urlComponents(for: "transactions")! }
144 |
145 | private static var dateFormatter: DateFormatter = {
| |- warning: static property 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
146 | var dateFormatter = DateFormatter()
147 | dateFormatter.dateFormat = "yyyy-MM-dd"
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:236:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
234 | }
235 |
236 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Transaction], TransactionError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
237 | guard let data else {
238 | if let 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/Wealthsimple/WealthsimpleTransaction.swift:225:23: error: cannot find 'URLRequest' in scope
223 | }
224 | url.queryItems?.append(URLQueryItem(name: "effective_date_end", value: dateFormatter.string(from: Calendar.current.date(byAdding: .day, value: 7, to: Date())!)))
225 | var request = URLRequest(url: url.url!)
| `- error: cannot find 'URLRequest' in scope
226 | let session = URLSession.shared
227 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:226:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
224 | url.queryItems?.append(URLQueryItem(name: "effective_date_end", value: dateFormatter.string(from: Calendar.current.date(byAdding: .day, value: 7, to: Date())!)))
225 | var request = URLRequest(url: url.url!)
226 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
227 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
228 | token.authenticateRequest(request) { request in
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:245:43: warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
243 | return
244 | }
245 | guard let httpResponse = response as? HTTPURLResponse else {
| `- warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
246 | completion(.failure(TransactionError.httpError(error: "No HTTPURLResponse")))
247 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:245:47: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
243 | return
244 | }
245 | guard let httpResponse = response as? HTTPURLResponse else {
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
246 | completion(.failure(TransactionError.httpError(error: "No HTTPURLResponse")))
247 | return
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:249:28: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
247 | return
248 | }
249 | guard httpResponse.statusCode == 200 else {
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
250 | completion(.failure(TransactionError.httpError(error: "Status code \(httpResponse.statusCode)")))
251 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:250:95: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
248 | }
249 | guard httpResponse.statusCode == 200 else {
250 | completion(.failure(TransactionError.httpError(error: "Status code \(httpResponse.statusCode)")))
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
251 | return
252 | }
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:eb0758f51dbd6991fb9e51dedbfbcbec142ffc0d3b9b8ad91fa19d35e5136f0a
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
[2/9] Compiling Wealthsimple URLConfiguration.swift
[3/10] Compiling Wealthsimple WealthsimplePosition.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:112:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
110 | }
111 |
112 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Position], PositionError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
113 | guard let data else {
114 | if let 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/Wealthsimple/WealthsimplePosition.swift:101:23: error: cannot find 'URLRequest' in scope
99 | url.queryItems?.append(URLQueryItem(name: "date", value: dateFormatter.string(from: date)))
100 | }
101 | var request = URLRequest(url: url.url!)
| `- error: cannot find 'URLRequest' in scope
102 | let session = URLSession.shared
103 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:102:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
100 | }
101 | var request = URLRequest(url: url.url!)
102 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
103 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
104 | token.authenticateRequest(request) { request in
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:121:43: warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
119 | return
120 | }
121 | guard let httpResponse = response as? HTTPURLResponse else {
| `- warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
122 | completion(.failure(PositionError.httpError(error: "No HTTPURLResponse")))
123 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:121:47: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
119 | return
120 | }
121 | guard let httpResponse = response as? HTTPURLResponse else {
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
122 | completion(.failure(PositionError.httpError(error: "No HTTPURLResponse")))
123 | return
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:125:28: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
123 | return
124 | }
125 | guard httpResponse.statusCode == 200 else {
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
126 | completion(.failure(PositionError.httpError(error: "Status code \(httpResponse.statusCode)")))
127 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimplePosition.swift:126:92: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
124 | }
125 | guard httpResponse.statusCode == 200 else {
126 | completion(.failure(PositionError.httpError(error: "Status code \(httpResponse.statusCode)")))
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
127 | return
128 | }
[4/10] Compiling Wealthsimple String+CamelCase.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[5/10] Emitting module Wealthsimple
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:108:29: error: cannot find type 'URLRequest' in scope
106 | private static func sendTokenRequest(
107 | parameters json: [String: String],
108 | request urlRequest: URLRequest,
| `- error: cannot find type 'URLRequest' in scope
109 | credentialStorage: CredentialStorage,
110 | completion: @escaping (Result<Self, TokenError>) -> Void
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:128:19: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
126 | private static func handleTokenResponse(
127 | data: Data?,
128 | response: URLResponse?,
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
129 | error: Error?,
130 | credentialStorage: CredentialStorage,
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/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:109:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
107 | }
108 |
109 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Account], AccountError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
110 | guard let data else {
111 | if let 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/Wealthsimple/WealthsimplePosition.swift:112:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
110 | }
111 |
112 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Position], PositionError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
113 | guard let data else {
114 | if let 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/Wealthsimple/WealthsimpleTransaction.swift:236:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
234 | }
235 |
236 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Transaction], TransactionError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
237 | guard let data else {
238 | if let 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
[6/10] Compiling Wealthsimple Token.swift
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:108:29: error: cannot find type 'URLRequest' in scope
106 | private static func sendTokenRequest(
107 | parameters json: [String: String],
108 | request urlRequest: URLRequest,
| `- error: cannot find type 'URLRequest' in scope
109 | credentialStorage: CredentialStorage,
110 | completion: @escaping (Result<Self, TokenError>) -> Void
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:128:19: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
126 | private static func handleTokenResponse(
127 | data: Data?,
128 | response: URLResponse?,
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
129 | error: Error?,
130 | credentialStorage: CredentialStorage,
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/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:69:23: error: cannot find 'URLRequest' in scope
67 |
68 | static func getToken(username: String, password: String, otp: String, credentialStorage: CredentialStorage, completion: @escaping (Result<Self, TokenError>) -> Void) {
69 | var request = URLRequest(url: url)
| `- error: cannot find 'URLRequest' in scope
70 | request.setValue(otp, forHTTPHeaderField: "x-wealthsimple-otp")
71 | let json = [
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:113:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
111 | ) {
112 | var request = urlRequest
113 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
114 | request.httpMethod = "POST"
115 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:141:43: warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
139 | return
140 | }
141 | guard let httpResponse = response as? HTTPURLResponse else {
| `- warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
142 | completion(.failure(TokenError.httpError(error: "No HTTPURLResponse")))
143 | return
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:141:47: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
139 | return
140 | }
141 | guard let httpResponse = response as? HTTPURLResponse else {
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
142 | completion(.failure(TokenError.httpError(error: "No HTTPURLResponse")))
143 | return
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:145:28: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
143 | return
144 | }
145 | guard httpResponse.statusCode == 200 else {
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
146 | completion(.failure(TokenError.httpError(error: "Status code \(httpResponse.statusCode)")))
147 | return
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:146:89: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
144 | }
145 | guard httpResponse.statusCode == 200 else {
146 | completion(.failure(TokenError.httpError(error: "Status code \(httpResponse.statusCode)")))
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
147 | return
148 | }
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:166:23: error: cannot find 'URLRequest' in scope
164 |
165 | private func testIfValid(completion: @escaping (Bool) -> Void) {
166 | var request = URLRequest(url: Self.testUrl)
| `- error: cannot find 'URLRequest' in scope
167 | let session = URLSession.shared
168 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:167:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
165 | private func testIfValid(completion: @escaping (Bool) -> Void) {
166 | var request = URLRequest(url: Self.testUrl)
167 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
168 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
169 | authenticateRequest(request) { request in
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:179:41: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
177 | return
178 | }
179 | completion(httpResponse.statusCode == 200)
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
180 | }
181 | task.resume()
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:204:23: error: cannot find 'URLRequest' in scope
202 |
203 | private func refresh(completion: @escaping (Result<Self, TokenError>) -> Void) {
204 | let request = URLRequest(url: Self.url)
| `- error: cannot find 'URLRequest' in scope
205 | let json = [
206 | "grant_type": "refresh_token",
[7/10] Compiling Wealthsimple WealthsimpleDownloader.swift
[8/10] Compiling Wealthsimple WealthsimpleAsset.swift
[9/10] Compiling Wealthsimple WealthsimpleAccount.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:109:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
107 | }
108 |
109 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Account], AccountError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
110 | guard let data else {
111 | if let 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/Wealthsimple/WealthsimpleAccount.swift:98:23: error: cannot find 'URLRequest' in scope
96 |
97 | static func getAccounts(token: Token, completion: @escaping (Result<[Account], AccountError>) -> Void) {
98 | var request = URLRequest(url: url)
| `- error: cannot find 'URLRequest' in scope
99 | let session = URLSession.shared
100 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:99:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
97 | static func getAccounts(token: Token, completion: @escaping (Result<[Account], AccountError>) -> Void) {
98 | var request = URLRequest(url: url)
99 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
100 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
101 | token.authenticateRequest(request) { request in
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:118:43: warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
116 | return
117 | }
118 | guard let httpResponse = response as? HTTPURLResponse else {
| `- warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
119 | completion(.failure(AccountError.httpError(error: "No HTTPURLResponse")))
120 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:118:47: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
116 | return
117 | }
118 | guard let httpResponse = response as? HTTPURLResponse else {
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
119 | completion(.failure(AccountError.httpError(error: "No HTTPURLResponse")))
120 | return
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:122:28: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
120 | return
121 | }
122 | guard httpResponse.statusCode == 200 else {
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
123 | completion(.failure(AccountError.httpError(error: "Status code \(httpResponse.statusCode)")))
124 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleAccount.swift:123:91: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
121 | }
122 | guard httpResponse.statusCode == 200 else {
123 | completion(.failure(AccountError.httpError(error: "Status code \(httpResponse.statusCode)")))
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
124 | return
125 | }
[10/10] Compiling Wealthsimple WealthsimpleTransaction.swift
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:236:63: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
234 | }
235 |
236 | private static func handleResponse(data: Data?, response: URLResponse?, error: Error?, completion: @escaping (Result<[Transaction], TransactionError>) -> Void) {
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
237 | guard let data else {
238 | if let 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/Wealthsimple/WealthsimpleTransaction.swift:225:23: error: cannot find 'URLRequest' in scope
223 | }
224 | url.queryItems?.append(URLQueryItem(name: "effective_date_end", value: dateFormatter.string(from: Calendar.current.date(byAdding: .day, value: 7, to: Date())!)))
225 | var request = URLRequest(url: url.url!)
| `- error: cannot find 'URLRequest' in scope
226 | let session = URLSession.shared
227 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:226:34: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
224 | url.queryItems?.append(URLQueryItem(name: "effective_date_end", value: dateFormatter.string(from: Calendar.current.date(byAdding: .day, value: 7, to: Date())!)))
225 | var request = URLRequest(url: url.url!)
226 | let session = URLSession.shared
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
227 | request.setValue("application/json", forHTTPHeaderField: "Content-Type")
228 | token.authenticateRequest(request) { request in
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:41: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/Token.swift:185:76: error: cannot find type 'URLRequest' in scope
183 | }
184 |
185 | func authenticateRequest(_ request: URLRequest, completion: @escaping (URLRequest) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
186 | var requestCopy = request
187 | requestCopy.setValue("Bearer \(self.accessToken)", forHTTPHeaderField: "Authorization")
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:245:43: warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
243 | return
244 | }
245 | guard let httpResponse = response as? HTTPURLResponse else {
| `- warning: conditional downcast from 'URLResponse?' (aka 'Optional<AnyObject>') to 'HTTPURLResponse' (aka 'AnyObject') does nothing
246 | completion(.failure(TransactionError.httpError(error: "No HTTPURLResponse")))
247 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:245:47: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
243 | return
244 | }
245 | guard let httpResponse = response as? HTTPURLResponse else {
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
246 | completion(.failure(TransactionError.httpError(error: "No HTTPURLResponse")))
247 | return
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:249:28: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
247 | return
248 | }
249 | guard httpResponse.statusCode == 200 else {
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
250 | completion(.failure(TransactionError.httpError(error: "Status code \(httpResponse.statusCode)")))
251 | return
/host/spi-builder-workspace/Sources/Wealthsimple/WealthsimpleTransaction.swift:250:95: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
248 | }
249 | guard httpResponse.statusCode == 200 else {
250 | completion(.failure(TransactionError.httpError(error: "Status code \(httpResponse.statusCode)")))
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
251 | return
252 | }
BUILD FAILURE 6.1 wasm