Build Information
Failed to build Playwright, reference main (27fd48), with Swift 6.4 for iOS using Xcode 27.0 on 24 Sep 2026 18:38:17 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme Playwright-Package -destination generic/platform=iOSBuild Log
113 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:131:15: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
88 | }
89 |
90 | override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
| `- note: add '@available' attribute to enclosing initializer
91 | // The parent in the object tree is always the BrowserContext.
92 | // The main frame is already created and referenced by GUID in the initializer.
:
129 | on("close") { [weak self] _ in
130 | guard let self else { return }
131 | self.state.withLock {
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
132 | $0.isClosed = true
133 | $0.routeHandlers.removeAll()
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:273:23: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
270 | ///
271 | /// See: https://playwright.dev/docs/api/class-page#page-event-dialog
272 | public func onDialog(_ handler: @escaping @Sendable (Dialog) async -> Void) async {
| `- note: add '@available' attribute to enclosing instance method
273 | let isFirst = state.withLock { state in
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
274 | let wasEmpty = state.dialogHandlers.isEmpty
275 | state.dialogHandlers.append(handler)
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:284:24: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
281 |
282 | /// Called by BrowserContext when a dialog event is received for this page.
283 | func dispatchDialog(_ dialog: Dialog) {
| `- note: add '@available' attribute to enclosing instance method
284 | let handlers = state.withLock { $0.dialogHandlers }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
285 | if handlers.isEmpty {
286 | // Auto-dismiss: accept for beforeunload, dismiss for others
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:316:9: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
313 | ///
314 | /// See: https://playwright.dev/docs/api/class-page#page-event-download
315 | public func onDownload(_ handler: @escaping @Sendable (Download) async -> Void) {
| `- note: add '@available' attribute to enclosing instance method
316 | state.withLock { $0.downloadHandlers.append(handler) }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
317 | }
318 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:321:24: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
318 |
319 | /// Called when a download event is received for this page.
320 | func dispatchDownload(_ download: Download) {
| `- note: add '@available' attribute to enclosing instance method
321 | let handlers = state.withLock { $0.downloadHandlers }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
322 | for handler in handlers {
323 | Task<Void, Never> { await handler(download) }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:339:23: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
336 | ///
337 | /// See: https://playwright.dev/docs/api/class-page#page-event-console
338 | public func onConsole(_ handler: @escaping @Sendable (ConsoleMessage) -> Void) async {
| `- note: add '@available' attribute to enclosing instance method
339 | let isFirst = state.withLock { state in
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
340 | let wasEmpty = state.consoleHandlers.isEmpty
341 | state.consoleHandlers.append(handler)
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:350:24: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
347 |
348 | /// Called when a console event is received for this page.
349 | func dispatchConsole(_ message: ConsoleMessage) {
| `- note: add '@available' attribute to enclosing instance method
350 | let handlers = state.withLock { $0.consoleHandlers }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
351 |
352 | for handler in handlers {
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:370:9: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
366 | ///
367 | /// See: https://playwright.dev/docs/api/class-page#page-route
368 | public func route(_ url: String, handler: @escaping @Sendable (Route) async throws -> Void) async throws {
| `- note: add '@available' attribute to enclosing instance method
369 | let regex = try NSRegularExpression(pattern: Self.globToRegex(url))
370 | state.withLock { $0.routeHandlers.append(RouteHandler(pattern: url, regex: regex, handler: handler)) }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
371 | try await updateInterceptionPatterns()
372 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:378:9: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
375 | ///
376 | /// See: https://playwright.dev/docs/api/class-page#page-unroute
377 | public func unroute(_ url: String) async throws {
| `- note: add '@available' attribute to enclosing instance method
378 | state.withLock { $0.routeHandlers.removeAll { $0.pattern == url } }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
379 | try await updateInterceptionPatterns()
380 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:383:24: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
380 | }
381 |
382 | private func updateInterceptionPatterns() async throws {
| `- note: add '@available' attribute to enclosing instance method
383 | let patterns = state.withLock { $0.routeHandlers.map { ["glob": $0.pattern] } }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
384 | _ = try await send("setNetworkInterceptionPatterns", params: ["patterns": patterns])
385 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:389:24: error: 'withLock' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
386 |
387 | /// Called when a route event is received for this page.
388 | func dispatchRoute(_ route: Route) {
| `- note: add '@available' attribute to enclosing instance method
389 | let handlers = state.withLock { $0.routeHandlers }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
390 | let url = route.request?.url ?? ""
391 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Mouse.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/NavigationOptions.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile NavigationOptions.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Page.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Request.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Request.swift
SwiftCompile normal arm64 Compiling\ Frame.swift,\ Keyboard.swift,\ Locator.swift,\ LocatorFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift /Users/admin/builder/spi-builder-workspace/src/core/API/LocatorFactory.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:21:21: error: 'Mutex' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
19 | }
20 |
21 | private let state: Mutex<State>
| `- error: 'Mutex' is only available in iOS 18.0 or newer
22 |
23 | /// The frame's name attribute.
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:156:43: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
154 | /// See: https://playwright.dev/docs/api/class-frame#frame-goto
155 | @discardableResult
156 | public func goto(_ url: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil, referer: String? = nil) async throws -> Response? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
157 | var params: [String: Any] = [
158 | "url": url,
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:190:50: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
188 | ///
189 | /// See: https://playwright.dev/docs/api/class-frame#frame-set-content
190 | public func setContent(_ html: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
191 | var params: [String: Any] = [
192 | "html": html,
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:202:80: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
200 | // MARK: - Helpers
201 |
202 | private func selectorParams(_ selector: String, strict: Bool = true, timeout: Duration? = nil) -> [String: Any] {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
203 | ["selector": selector, "strict": strict, "timeout": timeoutMs(timeout)]
204 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:207:98: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
205 |
206 | /// Sends a simple action that only needs selector params (no extra parameters).
207 | private func selectorAction(_ method: String, _ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
208 | _ = try await send(method, params: selectorParams(selector, strict: strict, timeout: timeout))
209 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:212:97: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
210 |
211 | /// Sends a query and returns `result["value"]` cast to `T`, or `fallback` if missing.
212 | private func queryValue<T>(_ method: String, _ selector: String, strict: Bool = true, timeout: Duration? = nil, fallback: T) async throws -> T {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
213 | let result = try await send(method, params: selectorParams(selector, strict: strict, timeout: timeout))
214 | return result["value"] as? T ?? fallback
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:225:10: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
217 | // MARK: - Actions (internal, called by Locator)
218 |
219 | private func clickAction(
| `- note: add '@available' attribute to enclosing instance method
220 | _ method: String,
221 | _ selector: String,
:
223 | button: MouseButton? = nil,
224 | clickCount: Int? = nil,
225 | delay: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
226 | force: Bool? = nil,
227 | modifiers: [KeyboardModifier]? = nil,
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:229:12: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
217 | // MARK: - Actions (internal, called by Locator)
218 |
219 | private func clickAction(
| `- note: add '@available' attribute to enclosing instance method
220 | _ method: String,
221 | _ selector: String,
:
227 | modifiers: [KeyboardModifier]? = nil,
228 | position: Position? = nil,
229 | timeout: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
230 | trial: Bool? = nil
231 | ) async throws {
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:247:10: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
242 | }
243 |
244 | func click(
| `- note: add '@available' attribute to enclosing instance method
245 | _ selector: String, strict: Bool = true,
246 | button: MouseButton? = nil, clickCount: Int? = nil,
247 | delay: Duration? = nil, force: Bool? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
248 | modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
249 | timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:249:12: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
242 | }
243 |
244 | func click(
| `- note: add '@available' attribute to enclosing instance method
245 | _ selector: String, strict: Bool = true,
246 | button: MouseButton? = nil, clickCount: Int? = nil,
247 | delay: Duration? = nil, force: Bool? = nil,
248 | modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
249 | timeout: Duration? = nil, trial: Bool? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
250 | ) async throws {
251 | try await clickAction("click", selector, strict: strict, button: button, clickCount: clickCount, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:256:38: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
252 | }
253 |
254 | func dblclick(
| `- note: add '@available' attribute to enclosing instance method
255 | _ selector: String, strict: Bool = true,
256 | button: MouseButton? = nil, delay: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
257 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
258 | timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:258:12: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
252 | }
253 |
254 | func dblclick(
| `- note: add '@available' attribute to enclosing instance method
255 | _ selector: String, strict: Bool = true,
256 | button: MouseButton? = nil, delay: Duration? = nil,
257 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
258 | timeout: Duration? = nil, trial: Bool? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
259 | ) async throws {
260 | try await clickAction("dblclick", selector, strict: strict, button: button, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:263:97: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
261 | }
262 |
263 | func fill(_ selector: String, value: String, strict: Bool = true, force: Bool? = nil, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
264 | var params = selectorParams(selector, strict: strict, timeout: timeout)
265 | params["value"] = value
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:271:76: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
269 | }
270 |
271 | func press(_ selector: String, key: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
272 | var params = selectorParams(selector, strict: strict, timeout: timeout)
273 | params["key"] = key
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:278:89: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
276 | }
277 |
278 | func pressSequentially(_ selector: String, text: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
279 | var params = selectorParams(selector, strict: strict, timeout: timeout)
280 | params["text"] = text
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:285:63: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
283 | }
284 |
285 | func check(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
286 | try await selectorAction("check", selector, strict: strict, timeout: timeout)
287 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:289:65: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
287 | }
288 |
289 | func uncheck(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
290 | try await selectorAction("uncheck", selector, strict: strict, timeout: timeout)
291 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:293:83: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
291 | }
292 |
293 | func setChecked(_ selector: String, checked: Bool, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
294 | if checked { try await check(selector, strict: strict, timeout: timeout) }
295 | else { try await uncheck(selector, strict: strict, timeout: timeout) }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:298:63: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
296 | }
297 |
298 | func hover(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
299 | try await selectorAction("hover", selector, strict: strict, timeout: timeout)
300 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:302:63: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
300 | }
301 |
302 | func focus(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
303 | try await selectorAction("focus", selector, strict: strict, timeout: timeout)
304 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:306:62: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
304 | }
305 |
306 | func blur(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
307 | try await selectorAction("blur", selector, strict: strict, timeout: timeout)
308 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:310:88: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
308 | }
309 |
310 | func selectOption(_ selector: String, values: [String], strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
311 | var params = selectorParams(selector, strict: strict, timeout: timeout)
312 | params["options"] = values.map { ["valueOrLabel": $0] }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:317:61: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
315 | }
316 |
317 | func tap(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
318 | try await selectorAction("tap", selector, strict: strict, timeout: timeout)
319 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:323:69: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
321 | // MARK: - Queries (internal, called by Locator)
322 |
323 | func textContent(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
324 | let result = try await send("textContent", params: selectorParams(selector, strict: strict, timeout: timeout))
325 | return result["value"] as? String
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:328:67: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
326 | }
327 |
328 | func innerText(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
329 | try await queryValue("innerText", selector, strict: strict, timeout: timeout, fallback: "")
330 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:332:67: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
330 | }
331 |
332 | func innerHTML(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
333 | try await queryValue("innerHTML", selector, strict: strict, timeout: timeout, fallback: "")
334 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:336:84: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
334 | }
335 |
336 | func getAttribute(_ selector: String, name: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
337 | var params = selectorParams(selector, strict: strict, timeout: timeout)
338 | params["name"] = name
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:344:68: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
342 | }
343 |
344 | func inputValue(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
345 | try await queryValue("inputValue", selector, strict: strict, timeout: timeout, fallback: "")
346 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:358:67: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
356 | }
357 |
358 | func isEnabled(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> Bool {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
359 | try await queryValue("isEnabled", selector, strict: strict, timeout: timeout, fallback: false)
360 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:362:67: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
360 | }
361 |
362 | func isChecked(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> Bool {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
363 | try await queryValue("isChecked", selector, strict: strict, timeout: timeout, fallback: false)
364 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:366:68: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
364 | }
365 |
366 | func isEditable(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> Bool {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
367 | try await queryValue("isEditable", selector, strict: strict, timeout: timeout, fallback: false)
368 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:373:121: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
371 | ///
372 | /// See: https://playwright.dev/docs/api/class-frame#frame-wait-for-selector
373 | public func waitForSelector(_ selector: String, state: WaitForSelectorState = .visible, strict: Bool = false, timeout: Duration? = nil) async throws -> ElementHandle? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
374 | var params = selectorParams(selector, strict: strict, timeout: timeout)
375 | params["state"] = state.rawValue
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:401:40: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
399 | ///
400 | /// See: https://playwright.dev/docs/api/class-frame#frame-wait-for-timeout
401 | public func waitForTimeout(_ timeout: Duration) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
402 | _ = try await send("waitForTimeout", params: ["waitTimeout": timeout.milliseconds])
403 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:25:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
22 |
23 | /// The frame's name attribute.
24 | public var name: String {
| `- note: add '@available' attribute to enclosing property
25 | state.withLock { $0.name }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
26 | }
27 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:30:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
27 |
28 | /// The current URL of the frame.
29 | public var url: String {
| `- note: add '@available' attribute to enclosing property
30 | state.withLock { $0.url }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
31 | }
32 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:35:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
32 |
33 | /// The current load states of the frame.
34 | var loadStates: Set<String> {
| `- note: add '@available' attribute to enclosing property
35 | state.withLock { $0.loadStates }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
36 | }
37 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:40:15: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
37 |
38 | /// Back-reference to the owning page (set by Page after creation).
39 | public internal(set) var page: Page? {
| `- note: add '@available' attribute to enclosing property
40 | get { state.withLock { $0.page } }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
41 | set { state.withLock { $0.page = newValue } }
42 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:41:15: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
37 |
38 | /// Back-reference to the owning page (set by Page after creation).
39 | public internal(set) var page: Page? {
| `- note: add '@available' attribute to enclosing property
40 | get { state.withLock { $0.page } }
41 | set { state.withLock { $0.page = newValue } }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
42 | }
43 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:50:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
47 | ///
48 | /// See: https://playwright.dev/docs/api/class-frame#frame-parent-frame
49 | public var parentFrame: Frame? {
| `- note: add '@available' attribute to enclosing property
50 | state.withLock { $0.parentFrame }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
51 | }
52 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:57:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
54 | ///
55 | /// See: https://playwright.dev/docs/api/class-frame#frame-child-frames
56 | public var childFrames: [Frame] {
| `- note: add '@available' attribute to enclosing property
57 | state.withLock { $0.childFrames }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
58 | }
59 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:64:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
61 | ///
62 | /// See: https://playwright.dev/docs/api/class-frame#frame-is-detached
63 | public var isDetached: Bool {
| `- note: add '@available' attribute to enclosing property
64 | state.withLock { $0.isDetached }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
65 | }
66 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:69:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
66 |
67 | /// Marks this frame as detached (called when `frameDetached` event fires on the page).
68 | func markDetached() {
| `- note: add '@available' attribute to enclosing instance method
69 | state.withLock { $0.isDetached = true }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
70 | }
71 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:74:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
71 |
72 | /// Adds a child frame to this frame's child list.
73 | func addChildFrame(_ frame: Frame) {
| `- note: add '@available' attribute to enclosing instance method
74 | state.withLock { $0.childFrames.append(frame) }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
75 | }
76 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:79:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
76 |
77 | /// Removes a child frame from this frame's child list.
78 | func removeChildFrame(_ frame: Frame) {
| `- note: add '@available' attribute to enclosing instance method
79 | state.withLock { $0.childFrames.removeAll { $0 === frame } }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
80 | }
81 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:85:11: error: 'Mutex' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
80 | }
81 |
82 | override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
| `- note: add '@available' attribute to enclosing initializer
83 | let initialLoadStates = (initializer["loadStates"] as? [String]).map(Set.init) ?? []
84 |
85 | state = Mutex(State(
| |- error: 'Mutex' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
86 | url: initializer["url"] as? String ?? "",
87 | name: initializer["name"] as? String ?? "",
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:85:11: error: 'init(_:)' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
80 | }
81 |
82 | override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
| `- note: add '@available' attribute to enclosing initializer
83 | let initialLoadStates = (initializer["loadStates"] as? [String]).map(Set.init) ?? []
84 |
85 | state = Mutex(State(
| |- error: 'init(_:)' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
86 | url: initializer["url"] as? String ?? "",
87 | name: initializer["name"] as? String ?? "",
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:95:15: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
80 | }
81 |
82 | override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
| `- note: add '@available' attribute to enclosing initializer
83 | let initialLoadStates = (initializer["loadStates"] as? [String]).map(Set.init) ?? []
84 |
:
93 | on("navigated") { [weak self] params in
94 | guard let self else { return }
95 | self.state.withLock { state in
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
96 | if let url = params["url"] as? String { state.url = url }
97 | if let name = params["name"] as? String { state.name = name }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:106:26: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
80 | }
81 |
82 | override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
| `- note: add '@available' attribute to enclosing initializer
83 | let initialLoadStates = (initializer["loadStates"] as? [String]).map(Set.init) ?? []
84 |
:
104 | let remove = params["remove"] as? String
105 |
106 | let page = self.state.withLock { state -> Page? in
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
107 | if let add { state.loadStates.insert(add) }
108 | if let remove { state.loadStates.remove(remove) }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:130:9: error: 'withLock' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
121 | /// Child iframes have a `parentFrame` GUID in their initializer. We resolve
122 | /// the parent here and register ourselves as a child of that parent.
123 | override func didCreate(resolve: (String) -> ChannelOwner?) {
| `- note: add '@available' attribute to enclosing instance method
124 | guard
125 | let parentRef = initializer["parentFrame"] as? [String: Any],
:
128 | else { return }
129 |
130 | state.withLock { $0.parentFrame = parent }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
131 | parent.addChildFrame(self)
132 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:481:9: error: 'withLock' is only available in iOS 18.0 or newer
477 | }
478 |
479 | extension Frame: CustomStringConvertible {
| `- note: add '@available' attribute to enclosing extension
480 | public var description: String {
| `- note: add '@available' attribute to enclosing property
481 | state.withLock { $0.name.isEmpty ? "Frame(\($0.url))" : "Frame(\($0.name))" }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
482 | }
483 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift:21:42: error: 'Duration' is only available in iOS 16.0 or newer
6 | ///
7 | /// See: https://playwright.dev/docs/api/class-keyboard
8 | public final class Keyboard: Sendable {
| `- note: add '@available' attribute to enclosing class
9 | private let page: Page
10 |
:
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-keyboard#keyboard-type
21 | public func type(_ text: String, delay: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
22 | var params: [String: Any] = ["text": text]
23 | if let delay { params["delay"] = delay.milliseconds }
/Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift:34:42: error: 'Duration' is only available in iOS 16.0 or newer
6 | ///
7 | /// See: https://playwright.dev/docs/api/class-keyboard
8 | public final class Keyboard: Sendable {
| `- note: add '@available' attribute to enclosing class
9 | private let page: Page
10 |
:
32 | ///
33 | /// See: https://playwright.dev/docs/api/class-keyboard#keyboard-press
34 | public func press(_ key: String, delay: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
35 | var params: [String: Any] = ["key": key]
36 | if let delay { params["delay"] = delay.milliseconds }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:172:62: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
169 | ///
170 | /// See: https://playwright.dev/docs/api/class-locator#locator-click
171 | public func click(
| `- note: add '@available' attribute to enclosing instance method
172 | button: MouseButton? = nil, clickCount: Int? = nil, delay: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
173 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
174 | timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:174:12: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
169 | ///
170 | /// See: https://playwright.dev/docs/api/class-locator#locator-click
171 | public func click(
| `- note: add '@available' attribute to enclosing instance method
172 | button: MouseButton? = nil, clickCount: Int? = nil, delay: Duration? = nil,
173 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
174 | timeout: Duration? = nil, trial: Bool? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
175 | ) async throws {
176 | try await frame.click(selector, button: button, clickCount: clickCount, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:183:38: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
180 | ///
181 | /// See: https://playwright.dev/docs/api/class-locator#locator-dblclick
182 | public func dblclick(
| `- note: add '@available' attribute to enclosing instance method
183 | button: MouseButton? = nil, delay: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
184 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
185 | timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:185:12: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
180 | ///
181 | /// See: https://playwright.dev/docs/api/class-locator#locator-dblclick
182 | public func dblclick(
| `- note: add '@available' attribute to enclosing instance method
183 | button: MouseButton? = nil, delay: Duration? = nil,
184 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
185 | timeout: Duration? = nil, trial: Bool? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
186 | ) async throws {
187 | try await frame.dblclick(selector, button: button, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:193:65: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
191 | ///
192 | /// See: https://playwright.dev/docs/api/class-locator#locator-fill
193 | public func fill(_ value: String, force: Bool? = nil, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
194 | try await frame.fill(selector, value: value, force: force, timeout: timeout)
195 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:200:29: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
198 | ///
199 | /// See: https://playwright.dev/docs/api/class-locator#locator-clear
200 | public func clear(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
201 | try await frame.fill(selector, value: "", timeout: timeout)
202 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:207:44: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
205 | ///
206 | /// See: https://playwright.dev/docs/api/class-locator#locator-press
207 | public func press(_ key: String, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
208 | try await frame.press(selector, key: key, timeout: timeout)
209 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:214:57: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
212 | ///
213 | /// See: https://playwright.dev/docs/api/class-locator#locator-press-sequentially
214 | public func pressSequentially(_ text: String, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
215 | try await frame.pressSequentially(selector, text: text, timeout: timeout)
216 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:221:29: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
219 | ///
220 | /// See: https://playwright.dev/docs/api/class-locator#locator-check
221 | public func check(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
222 | try await frame.check(selector, timeout: timeout)
223 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:228:31: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
226 | ///
227 | /// See: https://playwright.dev/docs/api/class-locator#locator-uncheck
228 | public func uncheck(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
229 | try await frame.uncheck(selector, timeout: timeout)
230 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:235:51: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
233 | ///
234 | /// See: https://playwright.dev/docs/api/class-locator#locator-set-checked
235 | public func setChecked(_ checked: Bool, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
236 | try await frame.setChecked(selector, checked: checked, timeout: timeout)
237 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:242:29: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
240 | ///
241 | /// See: https://playwright.dev/docs/api/class-locator#locator-hover
242 | public func hover(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
243 | try await frame.hover(selector, timeout: timeout)
244 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:263:53: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
261 | ///
262 | /// See: https://playwright.dev/docs/api/class-locator#locator-select-option
263 | public func selectOption(_ value: String, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
264 | try await frame.selectOption(selector, values: [value], timeout: timeout)
265 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:268:56: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
266 |
267 | /// Selects multiple options in a `<select>` element by value.
268 | public func selectOption(_ values: [String], timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
269 | try await frame.selectOption(selector, values: values, timeout: timeout)
270 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:275:27: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
273 | ///
274 | /// See: https://playwright.dev/docs/api/class-locator#locator-tap
275 | public func tap(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
276 | try await frame.tap(selector, timeout: timeout)
277 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:284:35: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
282 | ///
283 | /// See: https://playwright.dev/docs/api/class-locator#locator-text-content
284 | public func textContent(timeout: Duration? = nil) async throws -> String? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
285 | try await frame.textContent(selector, timeout: timeout)
286 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:291:33: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
289 | ///
290 | /// See: https://playwright.dev/docs/api/class-locator#locator-inner-text
291 | public func innerText(timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
292 | try await frame.innerText(selector, timeout: timeout)
293 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:298:33: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
296 | ///
297 | /// See: https://playwright.dev/docs/api/class-locator#locator-inner-html
298 | public func innerHTML(timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
299 | try await frame.innerHTML(selector, timeout: timeout)
300 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:305:52: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
303 | ///
304 | /// See: https://playwright.dev/docs/api/class-locator#locator-get-attribute
305 | public func getAttribute(_ name: String, timeout: Duration? = nil) async throws -> String? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
306 | try await frame.getAttribute(selector, name: name, timeout: timeout)
307 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:312:34: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
310 | ///
311 | /// See: https://playwright.dev/docs/api/class-locator#locator-input-value
312 | public func inputValue(timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
313 | try await frame.inputValue(selector, timeout: timeout)
314 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:334:74: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
332 | ///
333 | /// See: https://playwright.dev/docs/api/class-locator#locator-evaluate
334 | public func evaluate<T>(_ expression: String, arg: Any? = nil, timeout: Duration? = nil) async throws -> T {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
335 | guard let result = try await evaluate(expression, arg: arg, timeout: timeout) as? T else {
336 | throw PlaywrightError.invalidArgument("Expected evaluate result of type \(T.self)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:355:71: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
353 | /// See: https://playwright.dev/docs/api/class-locator#locator-evaluate
354 | @_disfavoredOverload
355 | public func evaluate(_ expression: String, arg: Any? = nil, timeout: Duration? = nil) async throws -> Any? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
356 | guard let handle = try await frame.waitForSelector(selector, state: .attached, strict: true, timeout: timeout) else {
357 | throw PlaywrightError.serverError("Element not found for selector: \(selector)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:449:12: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
445 | ///
446 | /// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
448 | type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | timeout: Duration? = nil, path: String? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
450 | ) async throws -> Data {
451 | let deadline = ContinuousClock.now + (timeout ?? defaultTimeout)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:451:38: error: '+' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
445 | ///
446 | /// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
448 | type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | timeout: Duration? = nil, path: String? = nil
450 | ) async throws -> Data {
451 | let deadline = ContinuousClock.now + (timeout ?? defaultTimeout)
| |- error: '+' is only available in iOS 16.0 or newer
| `- note: add 'if #available' version check
452 | guard let handle = try await frame.waitForSelector(selector, state: .attached, strict: true, timeout: timeout) else {
453 | throw PlaywrightError.serverError("Element not found for selector: \(selector)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:451:18: error: 'ContinuousClock' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
445 | ///
446 | /// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
448 | type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | timeout: Duration? = nil, path: String? = nil
450 | ) async throws -> Data {
451 | let deadline = ContinuousClock.now + (timeout ?? defaultTimeout)
| |- error: 'ContinuousClock' is only available in iOS 16.0 or newer
| `- note: add 'if #available' version check
452 | guard let handle = try await frame.waitForSelector(selector, state: .attached, strict: true, timeout: timeout) else {
453 | throw PlaywrightError.serverError("Element not found for selector: \(selector)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:451:34: error: 'now' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
445 | ///
446 | /// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
448 | type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | timeout: Duration? = nil, path: String? = nil
450 | ) async throws -> Data {
451 | let deadline = ContinuousClock.now + (timeout ?? defaultTimeout)
| |- error: 'now' is only available in iOS 16.0 or newer
| `- note: add 'if #available' version check
452 | guard let handle = try await frame.waitForSelector(selector, state: .attached, strict: true, timeout: timeout) else {
453 | throw PlaywrightError.serverError("Element not found for selector: \(selector)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:455:19: error: conformance of 'Duration' to 'Comparable' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
445 | ///
446 | /// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
448 | type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | timeout: Duration? = nil, path: String? = nil
:
453 | throw PlaywrightError.serverError("Element not found for selector: \(selector)")
454 | }
455 | let remaining = max(deadline - .now, .zero)
| |- error: conformance of 'Duration' to 'Comparable' is only available in iOS 16.0 or newer
| `- note: add 'if #available' version check
456 |
457 | let result = try await handle.screenshot(type: type, quality: quality, omitBackground: omitBackground, timeout: remaining, path: path)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:455:32: error: '-' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
445 | ///
446 | /// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
448 | type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | timeout: Duration? = nil, path: String? = nil
:
453 | throw PlaywrightError.serverError("Element not found for selector: \(selector)")
454 | }
455 | let remaining = max(deadline - .now, .zero)
| |- error: '-' is only available in iOS 16.0 or newer
| `- note: add 'if #available' version check
456 |
457 | let result = try await handle.screenshot(type: type, quality: quality, omitBackground: omitBackground, timeout: remaining, path: path)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:455:35: error: 'now' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
445 | ///
446 | /// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
448 | type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | timeout: Duration? = nil, path: String? = nil
:
453 | throw PlaywrightError.serverError("Element not found for selector: \(selector)")
454 | }
455 | let remaining = max(deadline - .now, .zero)
| |- error: 'now' is only available in iOS 16.0 or newer
| `- note: add 'if #available' version check
456 |
457 | let result = try await handle.screenshot(type: type, quality: quality, omitBackground: omitBackground, timeout: remaining, path: path)
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Frame.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Keyboard.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Locator.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/LocatorFactory.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile LocatorFactory.swift
SwiftCompile normal arm64 Compiling\ Dialog.swift,\ Download.swift,\ ElementHandle.swift,\ EvaluateSerializer.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Dialog.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Download.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift /Users/admin/builder/spi-builder-workspace/src/core/API/EvaluateSerializer.swift (in target 'Playwright' from project 'Playwright')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Dialog.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Dialog.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Download.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Download.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile ElementHandle.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/EvaluateSerializer.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile EvaluateSerializer.swift
SwiftCompile normal arm64 Compiling\ Response.swift,\ Route.swift,\ Selectors.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Route.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Selectors.swift (in target 'Playwright' from project 'Playwright')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Response.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Route.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Route.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Selectors.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Selectors.swift
/Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift:38:22: error: 'Mutex' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-response
10 | public final class Response: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | /// The URL of the response.
12 | public let url: String
:
36 | }
37 |
38 | private let state = Mutex(State())
| `- error: 'Mutex' is only available in iOS 18.0 or newer
39 |
40 | override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
/Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift:38:22: error: 'init(_:)' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-response
10 | public final class Response: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | /// The URL of the response.
12 | public let url: String
:
36 | }
37 |
38 | private let state = Mutex(State())
| `- error: 'init(_:)' is only available in iOS 18.0 or newer
39 |
40 | override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
SwiftCompile normal arm64 Compiling\ Playwright.swift,\ ChannelOwner.swift,\ CloseGuard.swift /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:41:21: error: 'Mutex' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
39 | }
40 |
41 | private let state: Mutex<State>
| `- error: 'Mutex' is only available in iOS 18.0 or newer
42 |
43 | init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:48:11: error: 'Mutex' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
41 | private let state: Mutex<State>
42 |
43 | init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
| `- note: add '@available' attribute to enclosing initializer
44 | self.guid = guid
45 | self.type = type
46 | self.connection = connection
47 | self.initializer = initializer
48 | state = Mutex(State(parent: parent))
| |- error: 'Mutex' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
49 | }
50 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:48:11: error: 'init(_:)' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
41 | private let state: Mutex<State>
42 |
43 | init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
| `- note: add '@available' attribute to enclosing initializer
44 | self.guid = guid
45 | self.type = type
46 | self.connection = connection
47 | self.initializer = initializer
48 | state = Mutex(State(parent: parent))
| |- error: 'init(_:)' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
49 | }
50 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:64:9: error: 'withLock' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
61 |
62 | /// Parent in the object hierarchy.
63 | var parent: ChannelOwner? {
| `- note: add '@available' attribute to enclosing property
64 | state.withLock { $0.parent }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
65 | }
66 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:69:9: error: 'withLock' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
66 |
67 | /// Children in the object hierarchy, keyed by GUID.
68 | var children: [String: ChannelOwner] {
| `- note: add '@available' attribute to enclosing property
69 | state.withLock { $0.children }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
70 | }
71 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:74:9: error: 'withLock' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
71 |
72 | /// Looks up a single child by GUID.
73 | func child(forGuid guid: String) -> ChannelOwner? {
| `- note: add '@available' attribute to enclosing instance method
74 | state.withLock { $0.children[guid] }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
75 | }
76 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:78:9: error: 'withLock' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
75 | }
76 |
77 | func setParent(_ newParent: ChannelOwner?) {
| `- note: add '@available' attribute to enclosing instance method
78 | state.withLock { $0.parent = newParent }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
79 | }
80 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:89:9: error: 'withLock' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
86 | /// - Parameter event: The event name (e.g. `"close"`, `"page"`).
87 | /// - Parameter handler: The closure to invoke when the event is received.
88 | func on(_ event: String, handler: @escaping @Sendable ([String: Any]) -> Void) {
| `- note: add '@available' attribute to enclosing instance method
89 | state.withLock { $0.eventHandlers[event, default: []].append(handler) }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
90 | }
91 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:102:24: error: 'withLock' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
99 | /// no-ops. This prevents double-firing when `Connection.close()` emits
100 | /// on objects that already received a server-side close event.
101 | func emit(_ event: String, params: [String: Any]) {
| `- note: add '@available' attribute to enclosing instance method
102 | let handlers = state.withLock { state in
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
103 | if event == "close" {
104 | guard !state.closeEmitted else {
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:118:9: error: 'withLock' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
115 | }
116 |
117 | func addChild(_ child: ChannelOwner) {
| `- note: add '@available' attribute to enclosing instance method
118 | state.withLock { $0.children[child.guid] = child }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
119 | }
120 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:122:9: error: 'withLock' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
119 | }
120 |
121 | func removeChild(_ child: ChannelOwner) {
| `- note: add '@available' attribute to enclosing instance method
122 | state.withLock { _ = $0.children.removeValue(forKey: child.guid) }
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
123 | }
124 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:130:9: error: 'withLock' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
127 | /// Called by the connection during shutdown to break strong reference
128 | /// cycles between parent ↔ child maps.
129 | func dispose() {
| `- note: add '@available' attribute to enclosing instance method
130 | state.withLock { state in
| |- error: 'withLock' is only available in iOS 18.0 or newer
| `- note: add 'if #available' version check
131 | state.parent = nil
132 | state.children.removeAll()
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Playwright.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile ChannelOwner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CloseGuard.swift
SwiftCompile normal arm64 Compiling\ Connection.swift,\ Driver.swift,\ ObjectFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift:54:40: error: 'appending(path:directoryHint:)' is only available in iOS 16.0 or newer
7 | ///
8 | /// See: https://playwright.dev/docs/api/class-playwright
9 | enum Driver {
| `- note: add '@available' attribute to enclosing enum
10 | /// A resolved executable and its arguments for launching the Playwright server.
11 | struct Executable {
:
50 | /// SPM bundles it via `.copy("drivers")` into `Playwright_Playwright.bundle`.
51 | /// This bundle travels with the compiled binary, making the driver portable.
52 | private static func findInResourceBundle() -> Executable? {
| `- note: add '@available' attribute to enclosing static method
53 | if let driversURL = Bundle.module.url(forResource: "drivers", withExtension: nil) {
54 | return resolveDriver(in: driversURL.appending(path: "playwright-\(playwrightVersion)-\(platform)"))
| |- error: 'appending(path:directoryHint:)' is only available in iOS 16.0 or newer
| `- note: add 'if #available' version check
55 | }
56 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift:87:28: error: 'appending(path:directoryHint:)' is only available in iOS 16.0 or newer
7 | ///
8 | /// See: https://playwright.dev/docs/api/class-playwright
9 | enum Driver {
| `- note: add '@available' attribute to enclosing enum
10 | /// A resolved executable and its arguments for launching the Playwright server.
11 | struct Executable {
:
84 |
85 | /// Checks whether a driver directory contains the expected node binary and CLI script.
86 | private static func resolveDriver(in driverDir: URL) -> Executable? {
| `- note: add '@available' attribute to enclosing static method
87 | let nodePath = driverDir.appending(path: "node")
| |- error: 'appending(path:directoryHint:)' is only available in iOS 16.0 or newer
| `- note: add 'if #available' version check
88 | let cliPath = driverDir.appending(path: "package/cli.js")
89 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Connection.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Driver.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile ObjectFactory.swift
SwiftEmitModule normal arm64 Emitting\ module\ for\ Playwright (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift:31:22: error: 'Mutex' is only available in iOS 18.0 or newer
15 | ///
16 | /// See: https://playwright.dev/docs/api/class-browser
17 | public final class Browser: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
18 | /// The browser version string (e.g. `"131.0.6778.33"`).
19 | public let version: String
:
29 | }
30 |
31 | private let state = Mutex(State())
| `- error: 'Mutex' is only available in iOS 18.0 or newer
32 |
33 | /// Whether the browser is still connected to the server.
/Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift:31:22: error: 'init(_:)' is only available in iOS 18.0 or newer
15 | ///
16 | /// See: https://playwright.dev/docs/api/class-browser
17 | public final class Browser: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
18 | /// The browser version string (e.g. `"131.0.6778.33"`).
19 | public let version: String
:
29 | }
30 |
31 | private let state = Mutex(State())
| `- error: 'init(_:)' is only available in iOS 18.0 or newer
32 |
33 | /// Whether the browser is still connected to the server.
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:21:22: error: 'Mutex' is only available in iOS 18.0 or newer
12 | ///
13 | /// See: https://playwright.dev/docs/api/class-browsercontext
14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
15 | private struct State: ~Copyable {
16 | var pages: [Page] = []
:
19 | }
20 |
21 | private let state = Mutex(State())
| `- error: 'Mutex' is only available in iOS 18.0 or newer
22 |
23 | /// The pages open in this context.
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:21:22: error: 'init(_:)' is only available in iOS 18.0 or newer
12 | ///
13 | /// See: https://playwright.dev/docs/api/class-browsercontext
14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
15 | private struct State: ~Copyable {
16 | var pages: [Page] = []
:
19 | }
20 |
21 | private let state = Mutex(State())
| `- error: 'init(_:)' is only available in iOS 18.0 or newer
22 |
23 | /// The pages open in this context.
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:51:12: error: 'Duration' is only available in iOS 16.0 or newer
12 | ///
13 | /// See: https://playwright.dev/docs/api/class-browsertype
14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
15 | /// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
16 | public let name: String
:
45 | ///
46 | /// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch
47 | public func launch(
| `- note: add '@available' attribute to enclosing instance method
48 | headless: Bool? = nil,
49 | channel: String? = nil,
50 | args: [String]? = nil,
51 | timeout: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
52 | executablePath: String? = nil,
53 | env: [String: String]? = nil,
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:54:11: error: 'Duration' is only available in iOS 16.0 or newer
12 | ///
13 | /// See: https://playwright.dev/docs/api/class-browsertype
14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
15 | /// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
16 | public let name: String
:
45 | ///
46 | /// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch
47 | public func launch(
| `- note: add '@available' attribute to enclosing instance method
48 | headless: Bool? = nil,
49 | channel: String? = nil,
:
52 | executablePath: String? = nil,
53 | env: [String: String]? = nil,
54 | slowMo: Duration? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
55 | ) async throws -> Browser {
56 | var params: [String: Any] = [
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:98:11: error: 'Duration' is only available in iOS 16.0 or newer
12 | ///
13 | /// See: https://playwright.dev/docs/api/class-browsertype
14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
15 | /// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
16 | public let name: String
:
93 | ///
94 | /// See: https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp
95 | public func connectOverCDP(
| `- note: add '@available' attribute to enclosing instance method
96 | _ endpointURL: String,
97 | headers: [String: String]? = nil,
98 | slowMo: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
99 | timeout: Duration? = nil
100 | ) async throws -> Browser {
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:99:12: error: 'Duration' is only available in iOS 16.0 or newer
12 | ///
13 | /// See: https://playwright.dev/docs/api/class-browsertype
14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
15 | /// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
16 | public let name: String
:
93 | ///
94 | /// See: https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp
95 | public func connectOverCDP(
| `- note: add '@available' attribute to enclosing instance method
96 | _ endpointURL: String,
97 | headers: [String: String]? = nil,
98 | slowMo: Duration? = nil,
99 | timeout: Duration? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
100 | ) async throws -> Browser {
101 | guard name == "chromium" else {
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:152:12: error: 'Duration' is only available in iOS 16.0 or newer
12 | ///
13 | /// See: https://playwright.dev/docs/api/class-browsertype
14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
15 | /// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
16 | public let name: String
:
145 | ///
146 | /// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
147 | public func launchPersistentContext(
| `- note: add '@available' attribute to enclosing instance method
148 | userDataDir: String,
149 | headless: Bool? = nil,
150 | channel: String? = nil,
151 | args: [String]? = nil,
152 | timeout: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
153 | executablePath: String? = nil,
154 | env: [String: String]? = nil,
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:155:11: error: 'Duration' is only available in iOS 16.0 or newer
12 | ///
13 | /// See: https://playwright.dev/docs/api/class-browsertype
14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
15 | /// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
16 | public let name: String
:
145 | ///
146 | /// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
147 | public func launchPersistentContext(
| `- note: add '@available' attribute to enclosing instance method
148 | userDataDir: String,
149 | headless: Bool? = nil,
:
153 | executablePath: String? = nil,
154 | env: [String: String]? = nil,
155 | slowMo: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
156 | acceptDownloads: Bool? = nil,
157 | locale: String? = nil,
/Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift:23:12: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-elementhandle
13 | public final class ElementHandle: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// Captures a screenshot of this element.
15 | ///
:
17 | ///
18 | /// See: https://playwright.dev/docs/api/class-elementhandle#element-handle-screenshot
19 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
20 | type: ImageType? = nil,
21 | quality: Int? = nil,
22 | omitBackground: Bool? = nil,
23 | timeout: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
24 | path: String? = nil
25 | ) async throws -> Data {
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:21:21: error: 'Mutex' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
19 | }
20 |
21 | private let state: Mutex<State>
| `- error: 'Mutex' is only available in iOS 18.0 or newer
22 |
23 | /// The frame's name attribute.
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:156:43: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
154 | /// See: https://playwright.dev/docs/api/class-frame#frame-goto
155 | @discardableResult
156 | public func goto(_ url: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil, referer: String? = nil) async throws -> Response? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
157 | var params: [String: Any] = [
158 | "url": url,
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:190:50: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
188 | ///
189 | /// See: https://playwright.dev/docs/api/class-frame#frame-set-content
190 | public func setContent(_ html: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
191 | var params: [String: Any] = [
192 | "html": html,
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:202:80: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
200 | // MARK: - Helpers
201 |
202 | private func selectorParams(_ selector: String, strict: Bool = true, timeout: Duration? = nil) -> [String: Any] {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
203 | ["selector": selector, "strict": strict, "timeout": timeoutMs(timeout)]
204 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:207:98: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
205 |
206 | /// Sends a simple action that only needs selector params (no extra parameters).
207 | private func selectorAction(_ method: String, _ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
208 | _ = try await send(method, params: selectorParams(selector, strict: strict, timeout: timeout))
209 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:212:97: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
210 |
211 | /// Sends a query and returns `result["value"]` cast to `T`, or `fallback` if missing.
212 | private func queryValue<T>(_ method: String, _ selector: String, strict: Bool = true, timeout: Duration? = nil, fallback: T) async throws -> T {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
213 | let result = try await send(method, params: selectorParams(selector, strict: strict, timeout: timeout))
214 | return result["value"] as? T ?? fallback
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:225:10: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
217 | // MARK: - Actions (internal, called by Locator)
218 |
219 | private func clickAction(
| `- note: add '@available' attribute to enclosing instance method
220 | _ method: String,
221 | _ selector: String,
:
223 | button: MouseButton? = nil,
224 | clickCount: Int? = nil,
225 | delay: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
226 | force: Bool? = nil,
227 | modifiers: [KeyboardModifier]? = nil,
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:229:12: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
217 | // MARK: - Actions (internal, called by Locator)
218 |
219 | private func clickAction(
| `- note: add '@available' attribute to enclosing instance method
220 | _ method: String,
221 | _ selector: String,
:
227 | modifiers: [KeyboardModifier]? = nil,
228 | position: Position? = nil,
229 | timeout: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
230 | trial: Bool? = nil
231 | ) async throws {
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:247:10: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
242 | }
243 |
244 | func click(
| `- note: add '@available' attribute to enclosing instance method
245 | _ selector: String, strict: Bool = true,
246 | button: MouseButton? = nil, clickCount: Int? = nil,
247 | delay: Duration? = nil, force: Bool? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
248 | modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
249 | timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:249:12: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
242 | }
243 |
244 | func click(
| `- note: add '@available' attribute to enclosing instance method
245 | _ selector: String, strict: Bool = true,
246 | button: MouseButton? = nil, clickCount: Int? = nil,
247 | delay: Duration? = nil, force: Bool? = nil,
248 | modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
249 | timeout: Duration? = nil, trial: Bool? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
250 | ) async throws {
251 | try await clickAction("click", selector, strict: strict, button: button, clickCount: clickCount, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:256:38: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
252 | }
253 |
254 | func dblclick(
| `- note: add '@available' attribute to enclosing instance method
255 | _ selector: String, strict: Bool = true,
256 | button: MouseButton? = nil, delay: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
257 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
258 | timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:258:12: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
252 | }
253 |
254 | func dblclick(
| `- note: add '@available' attribute to enclosing instance method
255 | _ selector: String, strict: Bool = true,
256 | button: MouseButton? = nil, delay: Duration? = nil,
257 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
258 | timeout: Duration? = nil, trial: Bool? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
259 | ) async throws {
260 | try await clickAction("dblclick", selector, strict: strict, button: button, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:263:97: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
261 | }
262 |
263 | func fill(_ selector: String, value: String, strict: Bool = true, force: Bool? = nil, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
264 | var params = selectorParams(selector, strict: strict, timeout: timeout)
265 | params["value"] = value
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:271:76: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
269 | }
270 |
271 | func press(_ selector: String, key: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
272 | var params = selectorParams(selector, strict: strict, timeout: timeout)
273 | params["key"] = key
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:278:89: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
276 | }
277 |
278 | func pressSequentially(_ selector: String, text: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
279 | var params = selectorParams(selector, strict: strict, timeout: timeout)
280 | params["text"] = text
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:285:63: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
283 | }
284 |
285 | func check(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
286 | try await selectorAction("check", selector, strict: strict, timeout: timeout)
287 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:289:65: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
287 | }
288 |
289 | func uncheck(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
290 | try await selectorAction("uncheck", selector, strict: strict, timeout: timeout)
291 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:293:83: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
291 | }
292 |
293 | func setChecked(_ selector: String, checked: Bool, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
294 | if checked { try await check(selector, strict: strict, timeout: timeout) }
295 | else { try await uncheck(selector, strict: strict, timeout: timeout) }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:298:63: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
296 | }
297 |
298 | func hover(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
299 | try await selectorAction("hover", selector, strict: strict, timeout: timeout)
300 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:302:63: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
300 | }
301 |
302 | func focus(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
303 | try await selectorAction("focus", selector, strict: strict, timeout: timeout)
304 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:306:62: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
304 | }
305 |
306 | func blur(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
307 | try await selectorAction("blur", selector, strict: strict, timeout: timeout)
308 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:310:88: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
308 | }
309 |
310 | func selectOption(_ selector: String, values: [String], strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
311 | var params = selectorParams(selector, strict: strict, timeout: timeout)
312 | params["options"] = values.map { ["valueOrLabel": $0] }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:317:61: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
315 | }
316 |
317 | func tap(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
318 | try await selectorAction("tap", selector, strict: strict, timeout: timeout)
319 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:323:69: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
321 | // MARK: - Queries (internal, called by Locator)
322 |
323 | func textContent(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
324 | let result = try await send("textContent", params: selectorParams(selector, strict: strict, timeout: timeout))
325 | return result["value"] as? String
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:328:67: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
326 | }
327 |
328 | func innerText(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
329 | try await queryValue("innerText", selector, strict: strict, timeout: timeout, fallback: "")
330 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:332:67: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
330 | }
331 |
332 | func innerHTML(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
333 | try await queryValue("innerHTML", selector, strict: strict, timeout: timeout, fallback: "")
334 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:336:84: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
334 | }
335 |
336 | func getAttribute(_ selector: String, name: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
337 | var params = selectorParams(selector, strict: strict, timeout: timeout)
338 | params["name"] = name
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:344:68: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
342 | }
343 |
344 | func inputValue(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
345 | try await queryValue("inputValue", selector, strict: strict, timeout: timeout, fallback: "")
346 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:358:67: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
356 | }
357 |
358 | func isEnabled(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> Bool {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
359 | try await queryValue("isEnabled", selector, strict: strict, timeout: timeout, fallback: false)
360 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:362:67: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
360 | }
361 |
362 | func isChecked(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> Bool {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
363 | try await queryValue("isChecked", selector, strict: strict, timeout: timeout, fallback: false)
364 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:366:68: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
364 | }
365 |
366 | func isEditable(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> Bool {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
367 | try await queryValue("isEditable", selector, strict: strict, timeout: timeout, fallback: false)
368 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:373:121: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
371 | ///
372 | /// See: https://playwright.dev/docs/api/class-frame#frame-wait-for-selector
373 | public func waitForSelector(_ selector: String, state: WaitForSelectorState = .visible, strict: Bool = false, timeout: Duration? = nil) async throws -> ElementHandle? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
374 | var params = selectorParams(selector, strict: strict, timeout: timeout)
375 | params["state"] = state.rawValue
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:401:40: error: 'Duration' is only available in iOS 16.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-frame
10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | private struct State: ~Copyable {
12 | var url: String
:
399 | ///
400 | /// See: https://playwright.dev/docs/api/class-frame#frame-wait-for-timeout
401 | public func waitForTimeout(_ timeout: Duration) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
402 | _ = try await send("waitForTimeout", params: ["waitTimeout": timeout.milliseconds])
403 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift:21:42: error: 'Duration' is only available in iOS 16.0 or newer
6 | ///
7 | /// See: https://playwright.dev/docs/api/class-keyboard
8 | public final class Keyboard: Sendable {
| `- note: add '@available' attribute to enclosing class
9 | private let page: Page
10 |
:
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-keyboard#keyboard-type
21 | public func type(_ text: String, delay: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
22 | var params: [String: Any] = ["text": text]
23 | if let delay { params["delay"] = delay.milliseconds }
/Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift:34:42: error: 'Duration' is only available in iOS 16.0 or newer
6 | ///
7 | /// See: https://playwright.dev/docs/api/class-keyboard
8 | public final class Keyboard: Sendable {
| `- note: add '@available' attribute to enclosing class
9 | private let page: Page
10 |
:
32 | ///
33 | /// See: https://playwright.dev/docs/api/class-keyboard#keyboard-press
34 | public func press(_ key: String, delay: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
35 | var params: [String: Any] = ["key": key]
36 | if let delay { params["delay"] = delay.milliseconds }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:172:62: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
169 | ///
170 | /// See: https://playwright.dev/docs/api/class-locator#locator-click
171 | public func click(
| `- note: add '@available' attribute to enclosing instance method
172 | button: MouseButton? = nil, clickCount: Int? = nil, delay: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
173 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
174 | timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:174:12: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
169 | ///
170 | /// See: https://playwright.dev/docs/api/class-locator#locator-click
171 | public func click(
| `- note: add '@available' attribute to enclosing instance method
172 | button: MouseButton? = nil, clickCount: Int? = nil, delay: Duration? = nil,
173 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
174 | timeout: Duration? = nil, trial: Bool? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
175 | ) async throws {
176 | try await frame.click(selector, button: button, clickCount: clickCount, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:183:38: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
180 | ///
181 | /// See: https://playwright.dev/docs/api/class-locator#locator-dblclick
182 | public func dblclick(
| `- note: add '@available' attribute to enclosing instance method
183 | button: MouseButton? = nil, delay: Duration? = nil,
| `- error: 'Duration' is only available in iOS 16.0 or newer
184 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
185 | timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:185:12: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
180 | ///
181 | /// See: https://playwright.dev/docs/api/class-locator#locator-dblclick
182 | public func dblclick(
| `- note: add '@available' attribute to enclosing instance method
183 | button: MouseButton? = nil, delay: Duration? = nil,
184 | force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
185 | timeout: Duration? = nil, trial: Bool? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
186 | ) async throws {
187 | try await frame.dblclick(selector, button: button, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:193:65: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
191 | ///
192 | /// See: https://playwright.dev/docs/api/class-locator#locator-fill
193 | public func fill(_ value: String, force: Bool? = nil, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
194 | try await frame.fill(selector, value: value, force: force, timeout: timeout)
195 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:200:29: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
198 | ///
199 | /// See: https://playwright.dev/docs/api/class-locator#locator-clear
200 | public func clear(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
201 | try await frame.fill(selector, value: "", timeout: timeout)
202 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:207:44: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
205 | ///
206 | /// See: https://playwright.dev/docs/api/class-locator#locator-press
207 | public func press(_ key: String, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
208 | try await frame.press(selector, key: key, timeout: timeout)
209 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:214:57: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
212 | ///
213 | /// See: https://playwright.dev/docs/api/class-locator#locator-press-sequentially
214 | public func pressSequentially(_ text: String, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
215 | try await frame.pressSequentially(selector, text: text, timeout: timeout)
216 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:221:29: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
219 | ///
220 | /// See: https://playwright.dev/docs/api/class-locator#locator-check
221 | public func check(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
222 | try await frame.check(selector, timeout: timeout)
223 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:228:31: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
226 | ///
227 | /// See: https://playwright.dev/docs/api/class-locator#locator-uncheck
228 | public func uncheck(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
229 | try await frame.uncheck(selector, timeout: timeout)
230 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:235:51: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
233 | ///
234 | /// See: https://playwright.dev/docs/api/class-locator#locator-set-checked
235 | public func setChecked(_ checked: Bool, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
236 | try await frame.setChecked(selector, checked: checked, timeout: timeout)
237 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:242:29: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
240 | ///
241 | /// See: https://playwright.dev/docs/api/class-locator#locator-hover
242 | public func hover(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
243 | try await frame.hover(selector, timeout: timeout)
244 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:263:53: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
261 | ///
262 | /// See: https://playwright.dev/docs/api/class-locator#locator-select-option
263 | public func selectOption(_ value: String, timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
264 | try await frame.selectOption(selector, values: [value], timeout: timeout)
265 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:268:56: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
266 |
267 | /// Selects multiple options in a `<select>` element by value.
268 | public func selectOption(_ values: [String], timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
269 | try await frame.selectOption(selector, values: values, timeout: timeout)
270 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:275:27: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
273 | ///
274 | /// See: https://playwright.dev/docs/api/class-locator#locator-tap
275 | public func tap(timeout: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
276 | try await frame.tap(selector, timeout: timeout)
277 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:284:35: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
282 | ///
283 | /// See: https://playwright.dev/docs/api/class-locator#locator-text-content
284 | public func textContent(timeout: Duration? = nil) async throws -> String? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
285 | try await frame.textContent(selector, timeout: timeout)
286 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:291:33: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
289 | ///
290 | /// See: https://playwright.dev/docs/api/class-locator#locator-inner-text
291 | public func innerText(timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
292 | try await frame.innerText(selector, timeout: timeout)
293 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:298:33: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
296 | ///
297 | /// See: https://playwright.dev/docs/api/class-locator#locator-inner-html
298 | public func innerHTML(timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
299 | try await frame.innerHTML(selector, timeout: timeout)
300 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:305:52: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
303 | ///
304 | /// See: https://playwright.dev/docs/api/class-locator#locator-get-attribute
305 | public func getAttribute(_ name: String, timeout: Duration? = nil) async throws -> String? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
306 | try await frame.getAttribute(selector, name: name, timeout: timeout)
307 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:312:34: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
310 | ///
311 | /// See: https://playwright.dev/docs/api/class-locator#locator-input-value
312 | public func inputValue(timeout: Duration? = nil) async throws -> String {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
313 | try await frame.inputValue(selector, timeout: timeout)
314 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:334:74: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
332 | ///
333 | /// See: https://playwright.dev/docs/api/class-locator#locator-evaluate
334 | public func evaluate<T>(_ expression: String, arg: Any? = nil, timeout: Duration? = nil) async throws -> T {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
335 | guard let result = try await evaluate(expression, arg: arg, timeout: timeout) as? T else {
336 | throw PlaywrightError.invalidArgument("Expected evaluate result of type \(T.self)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:355:71: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
353 | /// See: https://playwright.dev/docs/api/class-locator#locator-evaluate
354 | @_disfavoredOverload
355 | public func evaluate(_ expression: String, arg: Any? = nil, timeout: Duration? = nil) async throws -> Any? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
356 | guard let handle = try await frame.waitForSelector(selector, state: .attached, strict: true, timeout: timeout) else {
357 | throw PlaywrightError.serverError("Element not found for selector: \(selector)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:449:12: error: 'Duration' is only available in iOS 16.0 or newer
19 | ///
20 | /// See: https://playwright.dev/docs/api/class-locator
21 | public struct Locator: LocatorFactory, Sendable {
| `- note: add '@available' attribute to enclosing struct
22 | package let frame: Frame
23 | package let selector: String
:
445 | ///
446 | /// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
448 | type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | timeout: Duration? = nil, path: String? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
450 | ) async throws -> Data {
451 | let deadline = ContinuousClock.now + (timeout ?? defaultTimeout)
/Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift:18:101: error: 'Duration' is only available in iOS 16.0 or newer
6 | ///
7 | /// See: https://playwright.dev/docs/api/class-mouse
8 | public final class Mouse: Sendable {
| `- note: add '@available' attribute to enclosing class
9 | private let page: Page
10 |
:
16 | ///
17 | /// See: https://playwright.dev/docs/api/class-mouse#mouse-click
18 | public func click(x: Double, y: Double, button: MouseButton? = nil, clickCount: Int? = nil, delay: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
19 | var params: [String: Any] = ["x": x, "y": y]
20 | if let button { params["button"] = button.rawValue }
/Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift:30:80: error: 'Duration' is only available in iOS 16.0 or newer
6 | ///
7 | /// See: https://playwright.dev/docs/api/class-mouse
8 | public final class Mouse: Sendable {
| `- note: add '@available' attribute to enclosing class
9 | private let page: Page
10 |
:
28 | ///
29 | /// See: https://playwright.dev/docs/api/class-mouse#mouse-dblclick
30 | public func dblclick(x: Double, y: Double, button: MouseButton? = nil, delay: Duration? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
31 | try await click(x: x, y: y, button: button, clickCount: 2, delay: delay)
32 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:51:22: error: 'Mutex' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
49 | }
50 |
51 | private let state = Mutex(State())
| `- error: 'Mutex' is only available in iOS 18.0 or newer
52 |
53 | /// The current URL of the page (delegates to main frame).
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:51:22: error: 'init(_:)' is only available in iOS 18.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
49 | }
50 |
51 | private let state = Mutex(State())
| `- error: 'init(_:)' is only available in iOS 18.0 or newer
52 |
53 | /// The current URL of the page (delegates to main frame).
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:189:43: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
187 | /// See: https://playwright.dev/docs/api/class-page#page-goto
188 | @discardableResult
189 | public func goto(_ url: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil, referer: String? = nil) async throws -> Response? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
190 | try await mainFrame.goto(url, timeout: timeout, waitUntil: waitUntil, referer: referer)
191 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:200:30: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
198 | ///
199 | /// See: https://playwright.dev/docs/api/class-page#page-reload
200 | public func reload(timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws -> Response? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
201 | try await navigateWithResponse("reload", timeout: timeout, waitUntil: waitUntil)
202 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:211:30: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
209 | ///
210 | /// See: https://playwright.dev/docs/api/class-page#page-go-back
211 | public func goBack(timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws -> Response? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
212 | try await navigateWithResponse("goBack", timeout: timeout, waitUntil: waitUntil)
213 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:222:33: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
220 | ///
221 | /// See: https://playwright.dev/docs/api/class-page#page-go-forward
222 | public func goForward(timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws -> Response? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
223 | try await navigateWithResponse("goForward", timeout: timeout, waitUntil: waitUntil)
224 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:226:63: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
224 | }
225 |
226 | private func navigateWithResponse(_ method: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws -> Response? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
227 | var params: [String: Any] = ["timeout": timeoutMs(timeout)]
228 | if let waitUntil { params["waitUntil"] = waitUntil.rawValue }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:254:50: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
252 | ///
253 | /// See: https://playwright.dev/docs/api/class-page#page-set-content
254 | public func setContent(_ html: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
255 | try await mainFrame.setContent(html, timeout: timeout, waitUntil: waitUntil)
256 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:508:121: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
506 | /// See: https://playwright.dev/docs/api/class-page#page-wait-for-selector
507 | @discardableResult
508 | public func waitForSelector(_ selector: String, state: WaitForSelectorState = .visible, strict: Bool = false, timeout: Duration? = nil) async throws -> ElementHandle? {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
509 | try await mainFrame.waitForSelector(selector, state: state, strict: strict, timeout: timeout)
510 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:515:40: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
513 | ///
514 | /// See: https://playwright.dev/docs/api/class-page#page-wait-for-timeout
515 | public func waitForTimeout(_ timeout: Duration) async throws {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing instance method
516 | try await mainFrame.waitForTimeout(timeout)
517 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:569:41: error: 'Duration' is only available in iOS 16.0 or newer
11 | ///
12 | /// See: https://playwright.dev/docs/api/class-page
13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
14 | /// The main frame of the page.
15 | package let mainFrame: Frame
:
565 | ///
566 | /// See: https://playwright.dev/docs/api/class-page#page-screenshot
567 | public func screenshot(
| `- note: add '@available' attribute to enclosing instance method
568 | fullPage: Bool = false, type: ImageType? = nil, quality: Int? = nil,
569 | omitBackground: Bool? = nil, timeout: Duration? = nil, path: String? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
570 | ) async throws -> Data {
571 | var params = try screenshotParams(type: type, quality: quality, omitBackground: omitBackground, timeout: timeout, path: path)
/Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift:38:22: error: 'Mutex' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-response
10 | public final class Response: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | /// The URL of the response.
12 | public let url: String
:
36 | }
37 |
38 | private let state = Mutex(State())
| `- error: 'Mutex' is only available in iOS 18.0 or newer
39 |
40 | override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
/Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift:38:22: error: 'init(_:)' is only available in iOS 18.0 or newer
8 | ///
9 | /// See: https://playwright.dev/docs/api/class-response
10 | public final class Response: ChannelOwner, @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
11 | /// The URL of the response.
12 | public let url: String
:
36 | }
37 |
38 | private let state = Mutex(State())
| `- error: 'init(_:)' is only available in iOS 18.0 or newer
39 |
40 | override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
/Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift:3:11: error: 'Duration' is only available in iOS 16.0 or newer
1 | import Foundation
2 |
3 | extension Duration {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing extension
4 | /// The total number of milliseconds represented by this duration, as a `Double`.
5 | package var milliseconds: Double {
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:41:21: error: 'Mutex' is only available in iOS 18.0 or newer
17 | ///
18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
19 | public class ChannelOwner: @unchecked Sendable {
| `- note: add '@available' attribute to enclosing class
20 | /// The protocol type name (e.g. "Browser", "Page", "BrowserType").
21 | let type: String
:
39 | }
40 |
41 | private let state: Mutex<State>
| `- error: 'Mutex' is only available in iOS 18.0 or newer
42 |
43 | init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift:17:23: error: cannot find type 'Process' in scope
15 | let messages: AsyncStream<Data>
16 |
17 | private let process: Process
| `- error: cannot find type 'Process' in scope
18 | private let stdinHandle: FileHandle
19 | private let stdoutHandle: FileHandle
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift:25:12: error: cannot find type 'Process' in scope
23 |
24 | private init(
25 | process: Process,
| `- error: cannot find type 'Process' in scope
26 | stdinHandle: FileHandle,
27 | stdoutHandle: FileHandle,
/Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift:4:21: error: 'Duration' is only available in iOS 16.0 or newer
2 |
3 | /// Default timeout for Playwright operations (30 seconds).
4 | let defaultTimeout: Duration = .seconds(30)
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing let
5 |
6 | /// Returns the timeout in milliseconds, falling back to the default timeout.
/Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift:4:33: error: 'seconds' is only available in iOS 16.0 or newer
2 |
3 | /// Default timeout for Playwright operations (30 seconds).
4 | let defaultTimeout: Duration = .seconds(30)
| | `- error: 'seconds' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing let
5 |
6 | /// Returns the timeout in milliseconds, falling back to the default timeout.
/Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift:7:27: error: 'Duration' is only available in iOS 16.0 or newer
5 |
6 | /// Returns the timeout in milliseconds, falling back to the default timeout.
7 | func timeoutMs(_ timeout: Duration? = nil) -> Double {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing global function
8 | (timeout ?? defaultTimeout).milliseconds
9 | }
/Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift:57:40: error: 'Duration' is only available in iOS 16.0 or newer
53 | ///
54 | /// When `type` is nil, infers the format from `path` (if provided), defaulting to PNG.
55 | func screenshotParams(
| `- note: add '@available' attribute to enclosing global function
56 | type explicitType: ImageType? = nil, quality: Int? = nil,
57 | omitBackground: Bool? = nil, timeout: Duration? = nil, path: String? = nil
| `- error: 'Duration' is only available in iOS 16.0 or newer
58 | ) throws -> [String: Any] {
59 | let type: ImageType
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ActionOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Artifact.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContextOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ConsoleMessage.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Dialog.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Download.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift /Users/admin/builder/spi-builder-workspace/src/core/API/EvaluateSerializer.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift /Users/admin/builder/spi-builder-workspace/src/core/API/LocatorFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift /Users/admin/builder/spi-builder-workspace/src/core/API/NavigationOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Request.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Route.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Selectors.swift /Users/admin/builder/spi-builder-workspace/src/core/Error.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Transport.swift /Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift -target arm64-apple-ios15.0 -module-can-import-version Darwin 428.0.10 0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/Objects-normal/arm64/Playwright-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -profile-generate -profile-coverage-mapping -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/iphoneos27.0-24A430-e829b21a6f8c9b70876ba0858053c04440ceaa042ed91876912b2eeea4e3aa14.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Playwright -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/Objects-normal/arm64/Playwright_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-ios27.0 -target-sdk-version 27.0 -target-sdk-name iphoneos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -emit-module-doc-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/Objects-normal/arm64/Playwright.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/Objects-normal/arm64/Playwright.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/Objects-normal/arm64/Playwright-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/Objects-normal/arm64/Playwright-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/Objects-normal/arm64/Playwright-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/Objects-normal/arm64/Playwright.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-iphoneos/Playwright-t.build/Objects-normal/arm64/Playwright.abi.json
SwiftCompile normal arm64 (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
SwiftCompile normal arm64 Compiling\ Error.swift,\ Array+RemoveByIdentity.swift,\ Duration+milliseconds.swift /Users/admin/builder/spi-builder-workspace/src/core/Error.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift:3:11: error: 'Duration' is only available in iOS 16.0 or newer
1 | import Foundation
2 |
3 | extension Duration {
| | `- error: 'Duration' is only available in iOS 16.0 or newer
| `- note: add '@available' attribute to enclosing extension
4 | /// The total number of milliseconds represented by this duration, as a `Double`.
5 | package var milliseconds: Double {
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Error.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Error.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Array+RemoveByIdentity.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift (in target 'Playwright' from project 'Playwright')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile Duration+milliseconds.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
2026-09-24 14:38:16.166 xcodebuild[828:5101] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
SwiftEmitModule normal arm64 Emitting\ module\ for\ Playwright (in target 'Playwright' from project 'Playwright')
SwiftCompile normal arm64 (in target 'Playwright' from project 'Playwright')
Building workspace Playwright with scheme Playwright-Package
(3 failures)
BUILD FAILURE 6.4 iOS